DRBD

DRBDhtml

節點1Server1.example.com  172.25.23.1 linux

節點2Server2.example.com  172.25.23.2vim

VIP172.25.23.100curl

Selinuxiptables處於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

wKioL1feBQfDOf7MAAAk4mSL_4s021.png 

#編譯成功後生成三個文件  drbd.spec drbd-km.spec drbd-kernel.spec

[root@server1 drbd-8.4.2]# rpmbuild -bb drbd.spec 

#編譯生成drbd rpm

wKiom1feBQjQVwETAAA_4-k7ed8855.png 

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的內核模塊

wKioL1feBQjB2LebAAAok8ZF8e0945.png

[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/

wKioL1feBQrAUONyAACz8MlszQo098.png 

[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

wKiom1feBQuS6xoLAAByK0f3vsQ234.png 

# 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是配置文件中的資源名

......

wKiom1feBQzSuUV9AABOYQ6e_mQ269.png 

[root@server2 drbd.d]# drbdadm create-md example

4.啓動,設置主從

[root@server1 x86_64]# /etc/init.d/drbd start  

# server2也同時啓動,否則server1會一直等待,直到另一個主機開啓服務爲止

wKioL1feBQ3DueE4AABw1RACohw393.png# 剛啓動的設備都是secondary且沒有創建鏈接inconsistent

[root@server1 x86_64]# drbdadm primary example --force

wKioL1feBQ-xWquRAACiOmqhTz8759.png 

# 強制將該設備設爲primary,兩邊會開始同步

[root@server1 x86_64]# watch cat /proc/drbd  

# 可查看兩邊同步的進度

5.掛載測試

wKiom1feBRDDso7aAABB_Ed0cdc462.png 

# 只能格式化/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 mnt]# cd

[root@server1 ~]# umount /mnt

[root@server2 ~]# mount /dev/drbd1 /mnt

wKioL1feBRCRxSntAAAbyy_Pask456.png 

# 兩臺設備不能同時掛載,而且只能在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  

wKiom1feBRGQCMQkAAATykF1Kf0689.png 

# 能夠看到在server1掛載時添加的數據,若再將server2 設爲secondary , server1設爲primary , 再掛載,會看到在server2中修改的數據。肯定數據能夠同步。

6.常見的任務管理語句

wKioL1feBRGBhTqaAAAhpRGhqSA255.png 

drbd-overview  #查看狀態

drbdadm down example

drbdadm up example

drbdadm disconnect example

drbdadm connect example

drbdadm connect --discard-my-data example #放棄數據,鏈接

wKiom1feBRLQ1Uz2AAAqWTU6d8c947.png 

wKioL1feBRPCo5gCAABNPn18n8M310.png 

 

wKiom1feBRSSjKIoAABbD-RXw6U260.png 

wKiom1feBRXiaOsOAAAO_NI9PvU809.png 

 

wKioL1feBRXwjy-OAAAjqB0weQo634.png 

 

三.drbd掛載到httpd默認發佈目錄上(drbd+heartbeat

1.編寫配置文件

[root@server1 ~]# /etc/init.d/heartbeat stop

[root@server1 ~]# cd /etc/ha.d

[root@server1 ha.d]# vim haresources

wKiom1feBRajTbomAABHkiBmJFY464.png 

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

wKioL1feBRaBuDGmAAAWB-t61rI685.png 

wKiom1feBRbhrURBAAAYSn5vKCo251.png 

wKioL1feBRaTD4FsAABuw9l×××c055.png 

#會自動掛載

[root@server1 ~]# /etc/init.d/heartbeat stop

[root@server1 ~]# df

#發現已經卸載,並在server2上發現掛載

[root@server1 ~]# /etc/init.d/heartbeat start

[root@server1 ~]# df

#從新掛載到server1

相關文章
相關標籤/搜索