Ubuntu 程序员 Firefox Android shell 微软 google wordpress mysql 编程 java Python 开源 php apache linux 云计算 centos nginx Windows

3.2 DRDB的安裝與配置

3.2 DRDB的安裝與配置

3.2.1 安裝環境說明
操作系統統一采用CentOS5.5-x86-64,安裝環境如表3-1所示。


image

其中,主用節點和備用節點兩塊磁盤/dev/sdb1是未經格式化的物理磁盤分區,大小均為10GB。為了不浪費磁盤空間,建議主用節點和備用節點的鏡像磁盤大小保持一致。
DRBD安裝的基本拓撲信息如圖3-2所示。

image

3.2.2 DRBD的安裝部署
DRBD的安裝非常簡單,可以通過源碼和yum源方式進行安裝。簡單起見,我們直接使用yum源方式來安裝,其他系統基本類似。下面介紹具體的安裝過程。
通過yum安裝DRBD服務,執行如下命令:

[root@master-drbd ~]# yum -y install kmod-drbd83 drbd83

加载DRBD模块到内核:

[root@master-drbd ~]# modprobe  drbd

检查DRBD是否安装成功:

[root@master-drbd ~]# lsmod | grep -i drbd
drbd                  300440  0

查看drbd.ko安装的路径:

[root@master-drbd ~]# modprobe -l | grep -i drbd
/lib/modules/2.6.18-194.el5/weak-updates/drbd83/drbd.ko

安裝成功之後drbd相關工具(drbdadm,drbdsetup)被安裝在/sbin目錄下面,並且會建立/etc/init.d/drbd啟動腳本。
3.2.3 快速配置一個DRBD鏡像系統
DRBD的配置文件主要分三個部分:global、common和resource。在運行時默認讀取配置文件的路徑是/etc/drbd.conf,這個文件描述了DRBD的一些配置參數以及DRBD設備與硬盤分區的映射關系,在默認情況下這個文件是空的,不過在DRBD的源代碼包中包含了配置文件的樣例。如果DRBD是通過yum源方式安裝的,可以到對應的樣例目錄下去復制一份到/etc目錄下。在本書的環境下,樣例目錄是/usr/share/doc/drbd83-8.3.13/。drbd.conf配置文件包含的內容如下:

include "/etc/drbd.d/global_common.conf";
include "/etc/drbd.d/*.res";

一般情況下,global_common.conf文件僅包含DRBD的global和common配置部分,而在/etc/drbd.d目錄下還可以創建*.res的資源文件,只要所創建的文件是以文件名res結尾的,DRBD在啟動的時候就會自動讀取。將配置文件每個部分獨立出來,這樣做的好處是便於管理和維護。其實將DRBD所有配置部分都整合到一個單獨的drbd.conf文件中也是可以的,不過,對於需要配置的資源比較多的情況,這樣做就會變得混亂,難於管理。
為了講述方便,下面我們將DRBD的所有配置都集中到一個配置文件中。下面是兩臺DRBD主機節點配置文件drbd.conf的簡單示例。

[root@master-drbd ~]# cat /etc/drbd.conf
# drbd.conf
global {
usage-count no;    #是否参加DRBD使用者统计,默认参加
}
common {
syncer { rate 200M; }    #设置主用节点和备用节点同步时的网络速率最大值,单位是字节

}
resource r0 {    #资源名字为r0
protocol C;    #使用DRBD的第三种同步协议,表示收到远程主机的写入确认后认为写入完成
handlers {
pri-on-incon-degr "echo o > /proc/sysrq-trigger ; halt -f";
pri-lost-after-sb "echo o > /proc/sysrq-trigger ; halt -f";
local-io-error "echo o > /proc/sysrq-trigger ; halt -f";
fence-peer "/usr/lib64/heartbeat/drbd-peer-outdater -t 5";
pri-lost "echo pri-lost. Have a look at the log files. | mail -s 'DRBD Alert' root";
split-brain "/usr/lib/drbd/notify-split-brain.sh root";
out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";
}
net {
cram-hmac-alg "sha1";        # DRBD同步时使用的验证方式和密码信息
shared-secret "mysql-HA";
}
disk {        # 使用dpod功能(drbd outdate-peer daemon)保证在数
        # 据不同步时不进行切换
on-io-error detach;
fencing resource-only;
}
startup {
wfc-timeout 120;
degr-wfc-timeout 120;
}
device /dev/drbd0;
on master-drbd {        # 每个主机的说明以on开头,后面是hostnameuname -n),
        # 再后面的{}中为这个主机的配置
disk /dev/sdb1;        # /dev/drbd0使用的磁盘分区是/dev/sdb1
address 192.168.12.181:7788;    #设置DRBD的监听端口,用于与另一台主机通信
meta-disk internal;
}
on slave-drbd {
disk /dev/sdb1;        # /dev/drbd0使用的磁盘分区是/dev/sdb1
address 192.168.12.182:7788;    #设置DRBD的监听端口,用于与另一台主机通信
meta-disk internal;         # DRBD的元数据存放方式
}
}

將上面這個drbd.conf文件分別復制到兩臺主機的/etc目錄下。drbd.conf的配置參數很多,有興趣的讀者可以使用命令“man drbd.conf”來查看了解更多的參數說明。

延伸阅读

    评论