天天看點

heartbeat+drbd

heartbeat簡介:Heartbeat 項目是 Linux-HA 工程的一個組成部分,它實作了一個高可用叢集系統。心跳服務和叢集通信是高可用叢集的兩個關鍵元件,在 Heartbeat 項目裡,由 heartbeat 子產品實作了這兩個功能。下面描述了 heartbeat 子產品的可靠消息通信機制,并對其實作原理做了一些介紹。

hartbeat原理:heartbeat (Linux-HA)的工作原理:heartbeat最核心的包括兩個部分,心跳監測部分和資源接管部分,心跳監測可以通過網絡鍊路和序列槽進行,而且支援冗 餘鍊路,它們之間互相發送封包來告訴對方自己目前的狀态,如果在指定的時間内未收到對方發送的封包,那麼就認為對方失效,這時需啟動資源接管子產品來接管運 行在對方主機上的資源或者服務。

實驗環境:

                server1:172.25.45.1

                server2:172.25.45.2

iptables off and selinux disabled

所需軟體包:heartbeat-3.0.4-2.el6.x86_64.rpm heartbeat-libs-3.0.4-2.el6.x86_64.rpm ldirectord-3.9.5-3.1.x86_64.rpm heartbeat-devel-3.0.4-2.el6.x86_64.rpm

所需環境:若有其它叢集,要先關閉相關程序

【server1/server2】

1 rpm -ivh heartbeat-3.0.4-2.el6.x86_64.rpm heartbeat-devel-3.0.4-2.el6.x86_64.rpm heartbeat-libs-3.0.4-2.el6.x86_64.rpm ldirectord-3.9.5-3.1.x86_64.rpm

需要先解決依賴性如下圖:

heartbeat+drbd

 可以直接yum install

如果是純淨的虛拟機還需要安裝以下服務

2

yum install -y mysql-server 

yum install -y iscsi-initiator-utils

【server3】

yum install -y scsi-target-utils

添加一個硬碟  /dev/vdb

vim /etc/tgt/targets.conf

<target iqn.2016-07.com.example:server.target1>

    backing-store /dev/vdb

    initiator-address 172.25.45.1

    initiator-address 172.25.45.2

</target>

/etc/init.d/tgtd start

iscsiadm -t st -m discovery -p 172.25.45.3

iscsiadm -m node -l

增加一個分區/dev/sda1,并格式化。

【server1】

3

cd /usr/share/doc/heartbeat-3.0.4/

cp haresources ha.cf authkeys /etc/ha.d/

cd /etc/ha.d/

vim ha.cf

将48行、56行、61行、71行、76行、91行、211行、212行、220行、253行、259行的注釋取消

将71行的initdead的值改為60

将211行node後改為server1.example.com

将212行node後改為server2.example.com

将220行ping的IP改為172.25.45.250

将253行的目錄改為/usr/lib64/heartbeat/ipfail

vim haresources

在最後添上以下内容:

server1.example.com IPaddr::172.25.45.100/24/eth0 mysqld

vim authkeys

将23行、24行的注釋取消

chmod 600 authkeys

scp ha.cf haresources authkeys  172.25.45.2:/etc/ha.d/

/etc/init.d/heartbeat start

tail -f /var/log/message

heartbeat+drbd

【server2】

ip addr show
heartbeat+drbd

關閉server1的heartbeat的服務,vip切到server2上,但把server1的heartbeat服務打開,vip會切回server1上

修改最後一行的内容為以下:

server1.example.com IPaddr::172.25.45.100/24/eth0 Filesystem::/dev/sda1::/var/lib/mysql::ext4  mysqld

scp haresources  172.25.45.2:/etc/ha.d/
/etc/init.d/mysqld stop

4

5

6

7

8

mount /dev/sda1 /mnt

cd /var/lib/mysql/

cp -rp * /mnt/

chown mysql.mysql /mnt/

umount /mnt

/etc/init.d/heartbeat stop

/etc/init.d/heartbeat start    ##在server2上
heartbeat+drbd
heartbeat+drbd
heartbeat+drbd
ip addr show    ##在server2上
heartbeat+drbd
heartbeat+drbd

将server1上的heartbeat服務再次打開,則server2上的vip和挂載都會切回server1

##drbd##

為server1和server2都添加一個4G的虛拟硬碟

/etc/init.d/iscsi stop
fdisk -l
heartbeat+drbd

所需軟體包:drbd-8.4.3.tar.gz

tar zxf drbd-8.4.3.tar.gz

cd drbd-8.4.3

./configure --enable-spec --with-km

yum install -y gcc flex rpm-build    ##解決依賴性
rpmbuild -bb drbd.spec    ##報錯

cd

cp drbd-8.4.3.tar.gz rpmbuild/SOURCES/

cd -

rpmbuild -bb drbd.spec

rpmbuild -bb drbd-km.spec    ##解決依賴性: yum install -y kernel-devel

cd /root/rpmbuild/RPMS/x86_64

ls

heartbeat+drbd
rpm -ivh *
scp * 172.25.45.2:
rpm -ivh drbd-*

cd /etc/drbd.d/

vim example.res

添加以下内容:

resource sqldata {

meta-disk internal;

device /dev/drbd1;

syncer {

verify-alg sha1;

}

on server1.example.com {

disk /dev/vdb;

address 172.25.45.1:7789;

on server2.example.com {

address 172.25.45.2:7789;

scp example.res 172.25.45.2:/etc/drbd.d/

drbdadm create-md sqldata

/etc/init.d/drbd start

cat /proc/drbd
heartbeat+drbd
drbdadm primary sqldata --force
heartbeat+drbd
watch cat /proc/drbd
heartbeat+drbd
heartbeat+drbd

mkfs.ext4 /dev/drbd1

mount /dev/drbd1 /mnt

chown mysql.mysql /mnt
drbdadm secondary sqldata
heartbeat+drbd
drbdadm primary sqldata
heartbeat+drbd
cd /mnt
heartbeat+drbd
vim /etc/ha.d/haresources

修改内容為以下:

server1.example.com IPaddr::172.25.45.100/24/eth0 drbddisk::sqldata  Filesystem::/dev/drbd1::/var/lib/mysql::ext4  mysqld

scp /etc/ha.d/haresources 172.25.45.2:/etc/ha.d/
cat /proc/drbd    ##此時ro:Secondary/Secondary
tail -f /var/log/messages
heartbeat+drbd
heartbeat+drbd
heartbeat+drbd
heartbeat+drbd
heartbeat+drbd
heartbeat+drbd

繼續閱讀