高可用系統架構下drbd的共享存儲實現方案


上次文章在兩臺主機實現heartbeat高可用後,這篇文章詳述了高可用系統架構下drbd的共享存儲實現方案。html


drbd 工做原理 mysql

DRBD是一種塊設備,能夠被用於高可用(HA)之中.它相似於一個網絡RAID-1功能.當你將數據寫入本地 文件系統時,數據還將會被髮送到網絡中另外一臺主機上.以相同的形式記錄在一個文件系統中。 本地(主節點)與遠程主機(備節點)的數據能夠保證明時同步.當本地系統出現故障時,遠程主機上還會 保留有一份相同的數據,能夠繼續使用.在高可用(HA)中使用DRBD功能,能夠代替使用一個共享盤陣.由於數據同時存在於本地主機和遠程主機上,切換時,遠程主機只要使用它上面的那份備份數據,就能夠繼續進行服務了。linux


Rhel6 drbd 配置sql

系統環境:rhel6 x86_64 selinux and iptables disabled網絡

軟件下載:http://oss.linbit.com/drbd架構

Primary:172.25.28.7 vm7.example.comflex

Secondary:172.25.28.8 vm8.example.comui

#######################################################spa

yum install gcc flex rpm-build kernel-devel -y   解決軟件依賴性htm

[root@vm7 drbd-8.4.3]# tar zxf drbd-8.4.3.tar.gz

[root@vm7 drbd-8.4.3]# ./configure --enable-spec --with-km

[root@vm7 drbd-8.4.3]# cp ~/drbd-8.4.3.tar.gz /root/rpmbuild/SOURCE 在家目錄生成 rpmbuild 編譯所需路徑

[root@vm7 drbd-8.4.3]# rpmbuild  -bb drbd.spec  #編譯生成 drbd rpm

rpmbuild -bb drbd-km.spec      #編譯 drbd 內核模塊

[root@vm7 x86_64]# cd /root/rpmbuild/RPMS/x86_64

[root@vm7 x86_64]# rpm -ivh *.rpm

拷貝生成的 rpm 包到另外一主機,並安裝軟件包:

[root@vm7 x86_64]# scp *.rpm 172.25.28.8:

[root@vm8 ~]# rpm -ivh drbd-*    secondary安裝ruanjianbao

如下配置在兩臺主機上完成:

編輯/etc/drbd.d/drbd.res,修改以下:

resource mysqldata {

meta-disk internal;

device /dev/drbd1;

syncer {

verify-alg sha1;

}

on vm1.example.com {

disk /dev/vdb;

address 172.25.28.7:7789;

}

on vm4.example.com{

disk /dev/vdb;

address 172.25.28.8:7789;

}

}

在兩臺主機上分別執行如下命令:

drbdadm create-md mysqldata

/etc/init.d/drbd start

在兩臺主機上查看同步狀態:

watch cat /proc/drbd

數據同步結束後建立文件系統:

mkfs.ext4 /dev/drbd1

drbdsetup /dev/drbd1 primary

掛載文件系統:

mount /dev/drbd1 /var/www/html

效果:兩臺主機實現共同存儲數據在/dev/drbd1設備裏面

注意:兩臺主機上的/dev/drbd1 不能同時掛載,只有狀態爲 primary ,才能被掛載使用,而此時另外一方的狀態爲 secondary。這個實驗要添加一塊磁盤/dev/vdb

Heartbeatdrbd存儲整合:在這裏認爲高可用主機爲vm7vm8

兩臺高可用主機/etc/ha.d/haresources添加以下內容

Vm7.example.com IPaddr::172.25.28.100/24/eth0 drbddisk::mysqldata Filesystem::/dev/drbd1::/var/lib/mysql::ext4 mysqld

Vm8.example.com IPaddr::172.25.28.100/24/eth0 drbddisk::mysqldata Filesystem::/dev/drbd1::/var/lib/mysql::ext4 mysqld

相關文章
相關標籤/搜索