DRBD+heartbeat+nfs

DRBD+heartbeat+nfs

 

說明:DRBD實現存儲同步,只有主存儲角色才能實現讀寫、掛載和可執行。

      Heartbeat實現存儲的高可用性和DRBD的資源管理,自動轉換DRBD主備角色。

      Nfs實現文件共享,把磁盤共享出來讓客戶端訪問。

Node1.sh.com: eth0  192.168.10.100

               eth1  192.168.2.101  (心跳線地址)

Node2.sh.com   eth0   192.168.10.101

               eth1  192.168.2.100  (心跳線地址)

虛擬地址(vip) 192.168.10.200   

客戶端          192.168.10.110

一、DRBD的配置

1.兩節點的主機名要能相互解析,在這裏通過修改hosts文件實現,且保證兩hosts文件一致

[root@node1 ~]# vim /etc/hosts

[root@node1 ~]# scp /etc/hosts  node2.sh.com:/etc/   //hosts文件複製給node2節點

2.新建磁盤分區  (節點2 node2.sh.com做同樣操作,分區要一模一樣)

[root@node1 ~]# fdisk /dev/hdb

[root@node1 ~]# partprobe /dev/hdb  //加載顯示磁盤分區

[root@node1 ~]# fdisk -l   //查看磁盤分區

3.上傳所需rpm包並安裝  (節點2同樣操作)

[root@node1 ~]# rpm -ivh drbd83-8.3.8-1.el5.centos.i386.rpm

[root@node1 ~]# rpm -ivh kmod-drbd83-8.3.8-1.el5.centos.i686.rpm 

4.配置DRBD---分佈式複製塊存儲設備

[root@node1 drbd.d]# vim /etc/drbd.conf

[root@node1 drbd.d]# cp -p global_common.conf global_common.conf.bak

[root@node1 drbd.d]# vim global_common.conf   //修改爲以下內容

global {

        usage-count yes;

        # minor-count dialog-refresh disable-ip-verification

}

common {

        protocol C;

        startup {

                wfc-timeout  120;   

                degr-wfc-timeout 120;

         }

        disk {

                  on-io-error detach;

                  fencing resource-only;

          }

        net {

                cram-hmac-alg "sha1";

                shared-secret  "mydrbdlab";

         }

        syncer {

                         rate  100M;   //同步速率

         }

}

[root@node1 drbd.d]# touch  web.res   //創建資源文件

[root@node1 drbd.d]# vim web.res      //編輯資源文件,如下

resource  web {

        on node1.sh.com {

        device   /dev/drbd0;

        disk    /dev/hdb1;

        address  192.168.10.100:7789;

        meta-disk       internal;

        }   

        on node2.sh.com {

        device   /dev/drbd0;

        disk    /dev/hdb1;

        address  192.168.10.101:7789;

        meta-disk       internal;

        }   

}

[root@node1 drbd.d]# scp global_common.conf   node2.sh.com:/etc/drbd.d/   //把文件拷給節點2,保持數據一致性

[root@node1 drbd.d]# scp web.res   node2.sh.com:/etc/drbd.d/

[root@node1 drbd.d]# scp /etc/drbd.conf  node2.sh.com:/etc/

5.初始化並啓動DRBD(兩個節點要同時進行)

[root@node1 drbd.d]# drbdadm create-md web  //初始化

[root@node1 drbd.d]# service drbd start

6.查看節點1和節點2drbd狀態

[root@node1 drbd.d]# drbdadm -- --overwrite-data-of-peer primary web  //執行該條命令,把節點設爲主節點

[root@node2 drbd.d]#  watch  -n 1 'cat /proc/drbd'    //在備份節點上查看同步進程

再次查看節點狀態

7.測試drbd

[root@node1 ~]# mkfs -t ext3 -L drbdweb  /dev/drbd0  //格式化分區,—L爲卷標,drbdweb爲卷標名,節點2做同樣操作

[root@node1 ~]# mkdir /mnt/web   //創建掛載點

[root@node1 ~]# mount /dev/drbd0 /mnt/web

[root@node1 ~]# cd /mnt/web 

[root@node1 web]# echo "I am drbd" >./file   //建一測試文件,在node2上查看

[root@node1 ~]# umount /mnt/web  //先卸載

[root@node1 ~]# drbdadm secondary web  //把節點1設爲備份

[root@node2 drbd.d]# drbdadm primary web  //把節點2設爲主

查看節點12身份

[root@node2 drbd.d]# mkdir /mnt/web  //在節點2上創建掛載點

[root@node2 ~]# mount /dev/drbd0 /mnt/web

[root@node2 ~]# cd /mnt/web

 

二、nfs服務器配置  (節點2上同樣操作

[root@node1 ~]# vim /etc/exports   //編輯內容如下

/mnt/web    *(rw,sync)

[root@node1 ~]# service portmap restart

Stopping portmap:                                          [  OK  ]

Starting portmap:                                          [  OK  ]

[root@node1 ~]# chkconfig portmap on

[root@node1 ~]# service nfs start

[root@node1 ~]# chkconfig nfs on

三、heartbeat服務搭建

上傳所需文件

[root@node1 ~]# mount /dev/cdrom /mnt/cdrom

[root@node1 ~]# yum -y localinstall 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

[root@node1 ~]# cp -p /usr/share/doc/heartbeat-2.1.4/ha.cf  /etc/ha.d/

[root@node1 ~]# cp -p /usr/share/doc/heartbeat-2.1.4/authkeys  /etc/ha.d/

[root@node1 ~]# cp -p /usr/share/doc/heartbeat-2.1.4/haresources  /etc/ha.d/

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

[root@node1 ha.d]# vim ha.cf   //編輯內容如下

    logfile /var/log/ha-log  //日誌文件  

    keepalive 2    //保持時間

deadtime 10    //死亡時間
    warntime 5    //警告時間
    initdead 120   //啓動時間
    udpport 694    //使用udp的端口
    bcast eth0     //心跳接口
    auto_failback on  //失敗自動退回

ucast eth0 192.168.2.100  //要使用單播,指向節點2心跳地址

node  node1.sh.com

node  node2.sh.com

[root@node1 ha.d]# vim authkeys  //修改驗證文件

    auth 1

    1 crc

[root@node1 ha.d]# chmod 600 authkeys

[root@node1 ha.d]# vim haresources  //編輯資源文件

 node1.sh.coIPaddr::192.168.10.200/24/eth0 drbddisk::web Filesystem::/dev/drbd0::/mnt/web::ext3 

[root@node1 ha.d]# scp ha.cf authkeys haresources node2.sh.com:/etc/ha.d/  //把這三個文件複製給節點2

[root@node1 ha.d]# service heartbeat start   //啓動heartbeat

查看資源

四、客戶端操作

[root@localhost ~]# service portmap start  //必須先啓動portmap服務

[root@localhost ~]# service nfs start

[root@localhost ~]# showmount -e 192.168.10.200

Export list for 192.168.10.200:

/mnt/web *

[root@localhost ~]# mount 192.168.10.200:/mnt/web  /mnt/1

查看掛載

[root@localhost ~]# cd /mnt/1

五、模擬節點1失效,查看客戶端訪問情況

[root@node1 ~]# cd /mnt/web   

[root@node1 web]# touch f{1,2,3}   //創建測試文件

[root@node1 ~]# cd /usr/lib/heartbeat/

[root@node1 heartbeat]# ./hb_standby   //使節點1成爲備份

在節點2上查看

在客戶端查看

 

 

 

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