分类: LINUX
2011-10-16 22:34:31
DRBD(磁盘镜像技术)
一 DRBD简介
DRBD 是由内核模块和相关脚本而构成,用以构建高可用性的集群。其实现方式是通过网络来镜像整个设备。可以把它看作是一种网络RAID 1
DRBD 负责接收数据,把数据写到本地磁盘,然后发送给另一个主机。另一个主机再将数据存到自己的磁盘中
二 安装前的准备
1 Selinux与iptables为disabled
2 软件的下载
源码包下载地址为 :
3 预备的虚拟机主机: desktop30 192.168.0.30 /dev/vdb(附加磁盘)
desktop50 192.168.0.50 /dev/vdb (附加磁盘)
需为虚拟机主机添加虚拟磁盘vbd,可从真机的物理分区中加入到虚拟机
三 安装与设置
1 安装
首先确保两台主机必要的依赖软件已安装
desktop30 desktop50 上执行:
#yum install gcc flex rpm-build kernel-devel -y
desktop30上执行:
#tar zxf drbd-8.4.0.tar.gz
#cd drbd-8.4.0
#./configure
#make rpm //生成drbd RPM安装包
#make km-rpm //生成drbd内核模块安装包
#cd ~/rpmbuild/RPMS/x86_64/ //该目录下即为产生的rpm安装包
#rpm -ivh *.rpm
将生成的RPM包拷贝到另一主机上,并安装
#scp ~/rpmbuild/RPMS/x86_64/* desktop50.example.com:/root
# ssh 'rpm -ivh /root/drbd-*.rpm'
#cat /etc/drbd.conf //该文件指明了配置的模板,以及具体配置文件的路径
//文件指出在/etc/drbd.d/目录下,以.res结尾的即可为配置 //文件
拷贝模板
#cp /usr/share/doc/drbd-utils-8.4.0/drbd.conf.example /etc/drbd.d/drbd.res
注:亦可执行
#echo 'include "drbd.d/drbd.conf.example";' >> /etc/drbd.conf
使其含有配置文件的路径
2 配置
desktop30上执行:
#vi /etc/drbd.d/drbd.res
修改内容如下:
resource example { //example为资源名
...... //此处含有的volume 0的设置为二者共同的 //设置,用于二者用于存储的磁盘相同分区 //相同的的情况,全局设置
on desktop30.example.com {
address 192.168.0.30:7780;
volume 0 {
device minor 0;
disk /dev/vdb1; //此为vdb磁盘上的分区,此为单独的设置, //用于二者分区不同的情况
meta-disk internal;
}
}
on desktop50.example.com {
address 192.168.0.50:7780;
volume 0 {
device minor 0;
disk /dev/vdb1;
meta-disk internal;
}
}
}
设置解析
因使用了hostname,为防止同步时出错,故最好在解析文件中做好设置
#vi /etc/hosts
添加如下:
192.168.0.30 desktop30.example.com
192.168.0.50 desktop50.example.com
将配置文件复制到另一主机
#scp /etc/drbd.d/drbd.res 192.168.0.50:/etc/drbd.d/
注:两台主机亦可分别复制模板,在分别进行设置,但设置内容需相同即可
desktop30 desktop50上执行:
#drbdadm create-md example //此处example及为 资源名
#/etc/init.d/drbd start
将desktop30设置为primary节点(主节点),并同步数据
#drbdsetup /dev/drbd0 primary --force //drbd0为系统自行产生,也可能不 //同,需视具体情况而定
在两台主机上查看同步状态:
#watch cat /proc/drbd
内容如下:
version: 8.4.0 (api:1/proto:86-100)
GIT-hash: 28753f559ab51b549d16bcf487fe625d5919c49c build by root@server36.example.com,
2011-08-14 09:44:01
0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
ns:126192 nr:0 dw:0 dr:126856 al:0 bm:7 lo:0 pe:145 ua:0 ap:0 ep:1 wo:d oos:922896
[=>..................] sync'ed: 12.2% (922896/1048508)K
finish: 0:02:41 speed: 5,692 (4,484) K/sec
注:以上标注地区为同步进度
同步数据后,创建文件系统:
#mkfs.ext4 /dev/drbd0 //注:只需在一台主机上创建即可
挂载文件系统:
#mount /dev/drbd0 /mnt
存储数据:
#cp -r /boot/* /mnt
卸载文件系统:
#umount /dev/drbd0
将desktop30设置为secondary节点:
#drbdadm secondary example
将desktop50设置为primary节点
desktop50上执行:
#drbdadm primary example
挂载文件系统:
#mount /dev/drbd0 /mnt
注:两台主机上的/dev/drbd0 不能同时挂载,只有状态为 primary 时,才能被挂载
使用,而此时另一方的状态为 secondary