drbd详解
来源:互联网 发布:巧手十字绣软件 编辑:程序博客网 时间:2024/05/16 23:57
文章包含理论和实践两部分,各位可有选择的阅读。
七、metadata2、准备实验环境
服务器A:
主机名:primary
操作系统:CentOS6.6 64位
eth0网卡地址:172.16.87.148
eth1网卡地址:172.16.254.48
服务器B:
主机名:secondary
操作系统:CentOS6.6 64位
eth0网卡地址:172.16.87.168
eth1网卡地址:172.16.254.68
eth0网卡用于管理及对外提供服务,eth1网卡用于节点直接的心跳。
3、设置主机名
primary节点设置hostname
hostname primaryvim /etc/sysconfig/network编辑配置文件:HOSTNAME=primary
secondary节点设置hostname
# hostname secondary# vim /etc/sysconfig/network编辑配置文件:HOSTNAME=secondary
4、关闭防火墙和selinux(2台节点都要操作)
关闭iptables
# service iptables stop
# chkconfig iptables off
关闭selinux:
# setenforce 0# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
5、配置hosts文件(2台节点都操作)
# vim /etc/hosts增加内容如下:172.16.87.148 primary172.16.87.168 secondary
6、添加一块2G硬盘sdb作为DRBD,分区为sdb1,大小2G,并在本地系统创建/drbd-data目录,不做挂载操作。(2台都操作)
# fdisk /dev/sdb----------------
n-p-1-1-"+2G"-w
----------------
#partprobe
# mkdir /drbd-data
7、通过yum安装DRBD(2台都操作)
# cd /usr/local/src/
# rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
# yum -y install drbd83-utils kmod-drbd83
8、加载并查看DRBD模块 (2台都操作)
# modprobe drbd
# modprobe -l | grep drbd
# lsmod | grep drbd
安装成功后,在/sbin目录下有drbdadm,drbdmeta,drbdsetup命令,以及/etc/init.d/drbd启动脚本。
7、配置DRBD(2台都操作)
DRBD的配置文件主要分三个部分:global、common和resource。
在运行的时候默认读取配置文件的路径是/etc/drbd.conf,这个文件描述了DRBD的一些配置参数以及设备与硬盘分区的映射关系,默认情况下是空的,不过在DRBD的源代码包中包含了配置文件的样例)。
一般情况下global_common.conf(本次实验文件所在目录/etc/drbd.d/)文件仅包含global和common部分配置(理解为全局配置),在/etc/drbd.d/*.res的文件定义于一个资源(理解为主机定义)。
其实可以将DRBD配置整合到drbd.conf文件中,不过这样做在资源比较多的情况下会变得混乱。
配置global_common.conf
#cd /etc/drbd.d/
# cp global_common.conf global_common.conf.bk
# vi global_common.conf
配置说明:
global {
usage-count no; #是否参加DRBD使用者统计,默认为yes
}
common {
protocol C; # 使用什么协议两台主机的同步方式为完全同步
handlers {
#定义处理机制程序,/usr/lib/drbd/ 里有大量的程序脚本,但是不一定靠谱
}
startup {
#定义启动超时等
}
disk {
#磁盘相关公共设置,比如I/O,磁盘故障了怎么办
}
net {
#定义网络传输、加密算法等
}
syncer {
rate 1000M; #定义网络传输速率
}
}
----------------------------------------------------------------------------------------------------------定义资源(*.res)
vi /etc/drbd.d/web.res
resource web {
on primary{
device /dev/drbd0;
disk /dev/sdb1;
address 172.16.87.148:7789;
meta-disk internal;
}
on secondary {
device /dev/drbd0;
disk /dev/sdb1;
address 172.16.87.168:7789;
meta-disk internal;
}
}
配置说明:
[root@ZhongH100 drbd.d]
# vi web.res #写入下面的内容,具体视情况做更改
resource web {
#这个web是定义资源的名字
on node1
{
#on开头,后面是主机名称
device
/dev/drbd0
;
#drbd设备名称
disk
/dev/sdb1
;
#drbd0使用的磁盘分区为sdb1
address x.x.x.x:7789;
#设置drbd监听地址与端口
meta-disk internal;
}
on node2 {
#on开头,后面是主机名称
device
/dev/drbd0
;
#drbd设备名称
disk
/dev/sdb1
;
#drbd0使用的磁盘分区为sdb1
address x.x.x.x:7789;
#设置drbd监听地址与端口
meta-disk internal;
}
}
将配置文件拷贝到另一台主机,两台主机的配置文件是一模一样的
# scp -p /etc/drbd.d/* secondary:/etc/drbd.d/
1、初始化资源
# drbdadm create-md web
创建meta data ,名称为web ,需要与资源名称相同。
2、启动服务及查看运行状态
启动服务 service drbd start
查看启动状态 cat /proc/drbd
此刻两台设备都处于Secondary/Secondary状态,下面登录在148主设备上,执行如下命令。
# drbdadm primary all #这台设备成为所有资源的主。
如果命令失败,执行下一条
# drbdadm -- --overwrite-data-of-peer primary all #把此节点设置为主节点,且从头开始同步数据
# watch -n1 'cat /proc/drbd' 对于同步的数据,可以开启新的窗口,监控数据同步状态。
ds是磁盘状态信息 dw是磁盘写信息 dr是磁盘读信息。
9、格式化并挂载DRBD设备(主设备)
注意:所有的读写操作,包括对DRBD设备的格式化及挂载都必须在Primary主机进行,即primary;Secondary主机不能进行任何操作,即使读操作也不可以,连格式化和挂载也不可以。
1、格式化drbd
# mkfs.ext4 /dev/drbd0
##备用节点会进行DRBD设备格式化的同步
##千万不要再在备用节点去进行DRBD设备的格式化
2、挂载drbd
# mount /dev/drbd0 /drbd-data
[root@primary ~]
# cd /drbd-data/
[root@primary drbd-data]
# ll
total 16
drwx------ 2 root root 16384 Jun 29 08:13 lost+found
[root@primary drbd-data]
# touch file{1..5}
[root@primary drbd-data]
# ll
total 16
-rw-r--r-- 1 root root 0 Jun 29 10:25 file1
-rw-r--r-- 1 root root 0 Jun 29 10:25 file2
-rw-r--r-- 1 root root 0 Jun 29 10:25 file3
-rw-r--r-- 1 root root 0 Jun 29 10:25 file4
-rw-r--r-- 1 root root 0 Jun 29 10:25 file5
drwx------ 2 root root 16384 Jun 29 08:13 lost+found
[root@primary ~]
# umount /dev/drbd-data #卸载/dev/drbd0
[root@primary ~]
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
19G 1.1G 17G 7% /
tmpfs 58M 0 58M 0%
/dev/shm
/dev/sda1
477M 43M 409M 10%
/boot
[root@primary ~]
# drbdadm secondary web #将148设置为Secondary状态
[root@primary ~]
# cat /proc/drbd | grep ro
version: 8.3.16 (api:88
/proto
:86-97)
0: cs:Connected ro:Secondary
/Secondary
ds:UpToDate
/UpToDate
C r-----
[root@slave ~]
# drbdadm primary web #将148设置为Primary状态
[root@slave ~]
# cat /proc/drbd | grep ro
version: 8.3.16 (api:88
/proto
:86-97)
0: cs:Connected ro:Primary
/Secondary
ds:UpToDate
/UpToDate
C r-----
[root@slave ~]
# mount /dev/drbd0 /drbd-data/ #挂载/dev/drbd0
###注意:此时的/dev/drbd0千万不要再去格式化,主备两台主机从头至尾只需要格式化一次,即:在一开始的Primary主机格式化一次
[root@slave ~]
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
19G 1.1G 17G 6% /
tmpfs 58M 0 58M 0%
/dev/shm
/dev/sda1
477M 43M 409M 10%
/boot
/dev/drbd0
8.8G 21M 8.3G 1%
/drbd-data
[root@slave ~]
# cd /drbd-data/
[root@slave drbd-data]
# ll #查看数据有没有同步
total 16
-rw-r--r-- 1 root root 0 Jun 29 10:25 file1
-rw-r--r-- 1 root root 0 Jun 29 10:25 file2
-rw-r--r-- 1 root root 0 Jun 29 10:25 file3
-rw-r--r-- 1 root root 0 Jun 29 10:25 file4
-rw-r--r-- 1 root root 0 Jun 29 10:25 file5
drwx------ 2 root root 16384 Jun 29 08:13 lost+found
[root@primary ~]
# /etc/init.d/drbd stop #将148的drbd服务stop掉
Stopping all DRBD resources:
.
[root@primary ~]
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
19G 1.1G 17G 7% /
tmpfs 58M 0 58M 0%
/dev/shm
/dev/sda1
477M 43M 409M 10%
/boot
[root@slave ~]
# drbdadm -- --overwrite-data-of-peer primary all #将168设置为Primary
[root@slave ~]
# mount /dev/drbd0 /drbd-data/ #挂载
[root@slave ~]
# cd /drbd-data/
[root@slave drbd-data]
# ll
total 16
-rw-r--r-- 1 root root 0 Jun 29 10:25 file1
-rw-r--r-- 1 root root 0 Jun 29 10:25 file2
-rw-r--r-- 1 root root 0 Jun 29 10:25 file3
-rw-r--r-- 1 root root 0 Jun 29 10:25 file4
-rw-r--r-- 1 root root 0 Jun 29 10:25 file5
drwx------ 2 root root 16384 Jun 29 08:13 lost+found
【完】
- drbd详解
- DRBD详解
- drbd详解
- drbd 配置详解
- DRBD概念详解及配置
- DRBD状态信息参数详解
- drbd
- DRBD
- DRBD
- drbd
- drbd
- HA之DRBD详解(基于CentOS7.0)
- Linux 高可用(HA)集群之DRBD详解
- DRBD 及 DRBD配置
- DRBD试用
- DRBD介绍
- DRBD部署
- drbd 学习心得
- tomcat核心组件及server.xml配置讲解
- MongoDB副本集和分片模式安装
- CodeForces 489E Hiking
- 静态成员、静态方法、静态类、实例成员及区别
- Gson转换的一些方式
- drbd详解
- git使用命令
- C++ 声明整型变量,输入字符常量
- 关于mybatis “org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)” 错误的问题
- hdu5001-概率dp&经典&tooyoung-Walk
- spring boot application.properties 配置参数详情
- 孔令贤博客部分摘录
- 如何使用Opencv计算PSNR
- Python-Python安装与配置