DRBDhtml
節點1:Server1.example.com 172.25.23.1 linux
節點2:Server2.example.com 172.25.23.2vim
VIP:172.25.23.100curl
Selinux和iptables處於disabled狀態 redhat 6.5版本ide
一.安裝drbd工具
將源碼作成rpm包 並安裝測試
下載的安裝包爲drbd-8.4.2.tar.gzflex
[root@server1 ~]# yum install rpm-build -y #作rpm包的工具ui
[root@server1 ~]# tar zxf drbd-8.4.2.tar.gz url
[root@server1 ~]# cd drbd-8.4.2
[root@server1 drbd-8.4.2]# ./configure --enable-spec --with-km(內核編譯)
[root@server1 drbd-8.4.2]# yum install -y gcc flex#解決依賴性
[root@server1 drbd-8.4.2]# ./configure --enable-spec --with-km
#編譯成功後生成三個文件 drbd.spec drbd-km.spec drbd-kernel.spec
[root@server1 drbd-8.4.2]# rpmbuild -bb drbd.spec
#編譯生成drbd rpm包
cp ~/drbd-8.4.2.tar.gz /root/rpmbuild/SOURCES/
#在家目錄生成 rpmbuild 編譯所需路徑 即將源代碼拷到 rpmbuild的路徑下
[root@server1 drbd-8.4.2]# rpmbuild -bb drbd.spec
[root@server1 drbd-8.4.2]# rpmbuild -bb drbd-km.spec
#編譯生成drbd的內核模塊
[root@server1 drbd-8.4.2]# yum install kernel-devel -y
#安裝kernel-devel,再從新編譯
[root@server1 drbd-8.4.2]# rpmbuild -bb drbd-km.spec
[root@server1 drbd-8.4.2]# cd /root/rpmbuild/RPMS/x86_64/
#生成的安裝包在這裏/root/rpmbuild/RPMS/x86_64/
[root@server1 x86_64]# rpm -ivh *
[root@server1 x86_64]# scp * 172.25.23.2:
#將生成的安裝包複製到server2,並安裝
二.配置drbd
1.serveer1 server2 上各新加一個磁盤4G的便可
2.編輯配置文件
[root@server1 x86_64]# cd /etc/drbd.d/
[root@server1 drbd.d]# cat /etc/drbd.conf
# You can find an example in /usr/share/doc/drbd.../drbd.conf.example
include "drbd.d/global_common.conf";
include "drbd.d/*.res"; #配置文件都是以res結尾
[root@server1 drbd.d]# vim example.res
# device /dev/drbd1 設備/dev/drbd1,名稱必須是drbd*
# disk /dev/vda 爲新增的磁盤名稱
[root@server1 drbd.d]# scp example.res root@172.25.23.2:/etc/drbd.d/
3. 建立
[root@server1 drbd.d]# drbdadm create-md example
# example是配置文件中的資源名
......
[root@server2 drbd.d]# drbdadm create-md example
4.啓動,設置主從
[root@server1 x86_64]# /etc/init.d/drbd start
# server2也同時啓動,否則server1會一直等待,直到另一個主機開啓服務爲止
# 剛啓動的設備都是secondary且沒有創建鏈接inconsistent
[root@server1 x86_64]# drbdadm primary example --force
# 強制將該設備設爲primary,兩邊會開始同步
[root@server1 x86_64]# watch cat /proc/drbd
# 可查看兩邊同步的進度
5.掛載測試
# 只能格式化/dev/drbd1 並只用在主設備格式化
[root@server1 ~]# mkfs.ext4 /dev/drbd1
[root@server1 ~]# mount /dev/drbd1 /mnt
[root@server1 ~]# cd /mnt
[root@server1 mnt]# cp /etc/passwd /mnt
[root@server1 ~]# umount /mnt
[root@server2 ~]# mount /dev/drbd1 /mnt
# 兩臺設備不能同時掛載,而且只能在primary上掛載
[root@server1 ~]# drbdadm secondary example
# 將server1設爲secondary
[root@server2 ~]# drbdadm primary example
# server2設爲primary ,再次掛載,成功
[root@server2 ~]# mount /dev/drbd1 /mnt
[root@server2 ~]# cd /mnt
# 能夠看到在server1掛載時添加的數據,若再將server2 設爲secondary , server1設爲primary , 再掛載,會看到在server2中修改的數據。肯定數據能夠同步。
6.常見的任務管理語句
drbd-overview #查看狀態
drbdadm down example
drbdadm up example
drbdadm disconnect example
drbdadm connect example
drbdadm connect --discard-my-data example #放棄數據,鏈接
三.把drbd掛載到httpd默認發佈目錄上(drbd+heartbeat)
1.編寫配置文件
[root@server1 ~]# /etc/init.d/heartbeat stop
[root@server1 ~]# cd /etc/ha.d
[root@server1 ha.d]# vim haresources
server1.example.com #主節點,兩邊都是主節點的主機名
IPaddr::172.25.23.100/24/eth0 #vip
drbddisk::example #由於只有primary才能掛載,轉換身份爲primary
Filesystem::/dev/drbd1::/var/www/html #掛載點
httpd #服務
[root@server1 ha.d]# scp haresources 172.25.23.2:/etc/ha.d
[root@server1 ~]# etc/init.d/heartbeat start
[root@server1 ~]# echo www.example.com > /var/www/html/index.html
2.測試
[root@server1 ~]# curl localhost
#會自動掛載
[root@server1 ~]# /etc/init.d/heartbeat stop
#發現已經卸載,並在server2上發現掛載
[root@server1 ~]# /etc/init.d/heartbeat start
#從新掛載到server1上