HA 高可用性--(Heartbeat+DRBD+NFS)

一、基礎知識:

1 簡介:

    Distributed Replicated Block Device(DRBD)是一個用軟件實現的、無共享的、服務器之間鏡像塊設備內容的存儲複製解決方案。

2 原理:

DRBD的核心功能通過Linux的內核實現,最接近系統的IO棧,但它不能神奇地添加上層的功能比如檢測到EXT3文件系統的崩潰。

3 DRBD的工具:

3.1 drbdadm:高級管理工具,管理/etc/drbd.conf,向drbdsetup和drbdmeta發送指令;

3.2 drbdsetup:配置裝載進kernel的DRBD模塊,平時很少直接用;

3.3 drbdmeta:管理META數據結構,平時很少直接用;

4 DRBD的模式:

4.1 單主模式:典型的高可靠性集羣方案。

4.2 復主模式:需要採用共享cluster文件系統,如GFS和OCFS2。用於需要從2個節點併發訪問數據的場合,需要特別配置。

5 複製模式:3種模式:

5.1 協議A:異步複製協議。本地寫成功後立即返回,數據放在發送buffer中,可能丟失。

5.2 協議B:內存同步(半同步)複製協議。本地寫成功並將數據發送到對方後立即返回,如果雙機掉電,數據可能丟失。

5.3 協議C:同步複製協議。本地和對方寫成功確認後返回。如果雙機掉電或磁盤同時損壞,則數據可能丟失。

一般用協議C。選擇協議將影響流量,從而影響網絡時延。

二、案例:

1 拓撲圖:

wps_clip_image-11790

2 案例說明:

    通過heartbeat實現HA高可用性羣集,通過DRBD實現存儲複製來達到存儲的高可用性,通過NFS實現網絡文件系統共享;

3 配置步驟:

3.1 Heartbeat高可用性羣集搭建:

3.1.1(1) 配置director1羣集服務器:

配置director1的網卡地址:

外出接口網卡:

wps_clip_image-29498

心跳網卡:

wps_clip_image-16424

重啓網絡服務:

wps_clip_image-8761

同步時鐘:

# hwclock -s

配置director1的主機名:

# vim /etc/sysconfig/network

wps_clip_image-1766

# hostname dir1.abc.com //配置後需要註銷一次;

wps_clip_image-18414

配置director1的本地DNS解析:

# vim /etc/hosts

wps_clip_image-18584

將heartbeat的安裝包使用ftp導入director1:

wps_clip_image-2183

wps_clip_image-7016

掛載光盤:

# mkdir /mnt/cdrom

# mount /dev/cdrom /mnt/cdrom

使用yum安裝heartbeat相應的軟件包:

# yum localinstall -y heartbeat-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm --nogpgcheck

wps_clip_image-24940

拷貝heartheat的配置文件到相應的位置:

# cd /usr/share/doc/heartbeat-2.1.4/

# cp ha.cf /etc/ha.d/

# cp haresources /etc/ha.d/

# cp authkeys /etc/ha.d/

編輯心跳探測配置文件ha.cf:

# cd /etc/ha.d/

# vim ha.cf

wps_clip_image-28508

//定義心跳網卡;

wps_clip_image-20932

//聲明羣集的節點;

配置驗證鑰匙(爲了實現雙方身份驗證):

# vim authkeys

wps_clip_image-16724

改變authkeys的權限:

# chmod 600 authkeys

3.1.1(2) 配置director2羣集服務器:

配置director2的網卡地址:

外出接口網卡:

wps_clip_image-15357

心跳網卡:

wps_clip_image-1768

重啓網絡服務:

wps_clip_image-28838

同步時鐘:

# hwclock -s
配置director2的主機名:

# vim /etc/sysconfig/network

wps_clip_image-8793

# hostname dir2.abc.com //配置後需要註銷一次;

wps_clip_image-5416

配置director2的本地DNS解析:

# vim /etc/hosts

wps_clip_image-26357

將heartbeat的安裝包使用ftp導入director1:

wps_clip_image-27924

wps_clip_image-14740

掛載光盤:

# mkdir /mnt/cdrom

# mount /dev/cdrom /mnt/cdrom

使用yum安裝heartbeat相應的軟件包:

# yum localinstall -y heartbeat-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm --nogpgcheck

wps_clip_image-808

拷貝heartheat的配置文件到相應的位置:

# cd /usr/share/doc/heartbeat-2.1.4/

# cp ha.cf /etc/ha.d/

# cp haresources /etc/ha.d/

# cp authkeys /etc/ha.d/

編輯心跳探測配置文件ha.cf:

# cd /etc/ha.d/

# vim ha.cf

wps_clip_image-30243

//定義心跳網卡;

wps_clip_image-22329

//聲明羣集的節點;

配置驗證鑰匙(爲了實現雙方身份驗證):

# vim authkeys

wps_clip_image-19028

改變authkeys的權限:

# chmod 600 authkeys

3.2 DRBD服務搭建:

3.2.1(1) 在dir1.abc.com主機中創建一個NFS共性分區:

從sda硬盤中劃分一個分區:

# fdisk /dev/sda

創建一個擴展分區:

wps_clip_image-8350

創建一個擴展分區:

wps_clip_image-30435

查看分區表:

wps_clip_image-28888

保存並退出:

wps_clip_image-13344

通過內核從新讀取分區表:

# partprobe /dev/sda

3.2.1(2) 在dir2.abc.com主機中創建一個NFS共性分區:

從sda硬盤中劃分一個分區:

# fdisk /dev/sda

創建一個擴展分區:

wps_clip_image-8324

創建一個擴展分區:

wps_clip_image-7060

查看分區表:

wps_clip_image-223

保存並退出:

wps_clip_image-18427

通過內核從新讀取分區表:

# partprobe /dev/sda

3.2.2(1) 在dir1.abc.com中安裝DRBD相關軟件包:
導入DRBD相應的安裝包:

wps_clip_image-24162

安裝drbd服務:

# rpm -ivh drbd83-8.3.8-1.el5.centos.i386.rpm

安裝drbd的內核模塊:

# rpm -ivh kmod-drbd83-8.3.8-1.el5.centos.i686.rpm

3.2.2(2) 在dir2.abc.com中安裝DRBD相關軟件包:

導入DRBD相應的安裝包:

wps_clip_image-9708

安裝drbd服務:

# rpm -ivh drbd83-8.3.8-1.el5.centos.i386.rpm

安裝drbd的內核模塊:

# rpm -ivh kmod-drbd83-8.3.8-1.el5.centos.i686.rpm

3.2.3(1) 在dir1.abc.com編輯drbd文檔:

編輯drbd主配置文件:

# vim /etc/drbd.conf

讀取樣例文件內容:底行模式

wps_clip_image-1342

wps_clip_image-742

編輯通用資源:

# vim /etc/drbd.d/global_common.conf

wps_clip_image-16068

編輯詳細資源:

# vim /etc/drbd.d/web.res

wps_clip_image-5530

初始化drbd:

# drbdadm create-md web

wps_clip_image-14073

3.2.3(2) 在dir2.abc.com編輯drbd文檔:

編輯drbd主配置文件:

# vim /etc/drbd.conf

讀取樣例文件內容:底行模式

wps_clip_image-20903

wps_clip_image-29675

編輯通用資源:

# vim /etc/drbd.d/global_common.conf

wps_clip_image-10793

編輯詳細資源:

# vim /etc/drbd.d/web.res

wps_clip_image-5244

初始化drbd:

# drbdadm create-md web

wps_clip_image-16841

3.2.4(1) 啓動dir1.abc.com的DRBD服務:

# service drbd start

3.2.4(1) 啓動dir2.abc.com的DRBD服務:

# service drbd start

3.2.5(1) 查看dir1.abc.com的設備狀態:

# drbd-overview

wps_clip_image-31427

3.2.5(2) 查看dir2.abc.com的設備狀態:

# drbd-overview

wps_clip_image-15400

3.2.6 將dir1.abc.com的設備調整爲主設備:

# drbdadm -- --overwrite-data-of-peer primary web

wps_clip_image-26160

wps_clip_image-17380

3.2.7 格式化/dev/drbd0:

# mkfs -t ext3 -L drbdweb /dev/drbd0

3.2.8(1) 在dir1.abc.com上對/dev/drbd0進行掛載:

創建掛載點:

# mkdir /public

掛載:

# mount /dev/drbd0 /public/

3.2.8(2) 在dir1.abc.com上對/dev/drbd0進行掛載:

創建掛載點:

# mkdir /public

3.2.9(1) 查看dir1.abc.com的drbd當前狀態:

wps_clip_image-25621

3.2.9(2) 查看dir2.abc.com的drbd當前狀態

wps_clip_image-12680

3.3 NFS搭建

3.3.1(1) 配置dir1.abc.com的NFS server:

NFS服務是默認安裝的,使用時直接啓動即可;

# service nfs start

# service portmap start

編寫共享清單:

# vim /etc/exports

wps_clip_image-29003

導出共享清單:

# exportfs -rv

exporting 192.168.10.0/24:/public

-r 導出;

-v 詳細信息;

修改nfs啓動腳本:

# vim /etc/init.d/nfs

wps_clip_image-25374

3.3.1(2) 配置dir2.abc.com的NFS server:

NFS服務是默認安裝的,使用時直接啓動即可;

# service nfs start

# service portmap start

編寫共享清單:

# vim /etc/exports

wps_clip_image-15870

導出共享清單:

# exportfs -rv

exporting 192.168.10.0/24:/public

-r 導出;

-v 詳細信息;

修改nfs啓動腳本:

# vim /etc/init.d/nfs

wps_clip_image-4421

3.4 編輯heartbeat資源文件:

3.4.1(1) 在dir1.abc.com節點上heartbeat資源配置:

# vim /etc/ha.d/haresources

wps_clip_image-19692

創建nfs服務的資源控制文件:

# vim /etc/ha.d/resource.d/killnfsd

wps_clip_image-5618

改變nfs服務的資源控制文件的權限:

# chmod 755 /etc/ha.d/resource.d/killnfsd

3.4.1(2) 在dir2.abc.com節點上heartbeat資源配置:

# vim /etc/ha.d/haresources

wps_clip_image-12704

創建nfs服務的資源控制文件:

# vim /etc/ha.d/resource.d/killnfsd

wps_clip_image-31305

改變nfs服務的資源控制文件的權限:

# chmod 755 /etc/ha.d/resource.d/killnfsd

3.4.2(1) 啓動dir1.abc.com節點的heartbeat的服務:

# service heartbeat start

3.4.2(2) 啓動dir2.abc.com節點的heartbeat的服務:

# service heartbeat start

3.4.3 查看heartbeat兩節點的狀態:

wps_clip_image-3431

wps_clip_image-3120

4 測試:

4.1 開啓一個客戶端:

配置一個臨時地址:

# ifconfig eth0 192.168.10.20

創建一個掛載點:

# mkdir /mnt/nfs

# mount 192.168.10.10:/public /mnt/nfs

查看掛載的狀態:

wps_clip_image-10519

4.2 當heartbeat正常運行時:

查看NFS網絡文件系統:

wps_clip_image-397

4.3 在dir1.abc.com中將heartbeat服務關閉:

# service heartbeat stop

wps_clip_image-14813

此時NFS網絡文件系統仍然可以使用:

wps_clip_image-11794

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章