使用DRBD和心跳安装和配置Openfiler
介绍
Openfiler是一款适用于SAN / NAS设备的高性能操作系统。 此配置将使两台Openfiler设备工作在主动/被动高可用性场景中。
要求
硬件
- 2个xbox符合Openfiler硬件规格的最低规格。
- 每个框中有2个以太网接口
- Openfiler 2.3安装介质。
- 两个框应该具有相同大小的驱动器,以避免任何复制不一致。
软件
使用以下磁盘设置在两个盒子上安装Openfiler 2.3:
- 3 GB根(“/”)分区
- 2 GB“交换”分区
- 512 MB“/ meta”分区(用于DRBD0)
- 数据分区配置为未安装的LVM(用于DRBD1)
组态
网络
每个Openfiler设备都有两个NIC:一个用于与LAN进行通信,另一个用于与该通信
其他SAN(通过直接电缆)。 第一个将用于管理,直接与每个节点通信。
心跳服务使用第三个“虚拟”界面,是LAN上的计算机使用的。
以下是使用的内容:
filer01
- LAN接口(eth0)192.168.1.18
- 复制接口(eth1)10.188.188.1
filer02
- LAN接口(eth0)192.168.1.19
- 复制接口(eth1)10.188.188.2
HA NAS / SAN地址(eth0)192.168.1.17
- 这在
cluster.xml
文件中配置(不要尝试在其他地方进行配置)
主机名设置
为了使两个节点能够通过名称彼此识别,请在每台计算机上配置主机文件。
修改我们的/ etc / hosts
(在filer01上):
# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 filer01 localhost.localdomain localhost 10.188.188.2 filer02
修改我们的/ etc / hosts
(在filer02上):
# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 filer02 localhost.localdomain localhost 10.188.188.1 filer01
SSH共享密钥
要允许两台Openfiler设备相互通信,无需使用密码,请使用SSH共享密钥。
在filer01上:
root@filer01 ~# ssh-keygen -t dsa
在提示符下输入(不要在密钥上设置密码)。
在filer02上
root@filer02 ~# ssh-keygen -t dsa
在提示符下输入(不要在密钥上设置密码)。
上述命令将在〜/ .ssh /
中生成一个名为“id_dsa.pub”的文件,该文件是需要复制的公钥
另一个节点:
root@filer01 ~# scp .ssh/id_dsa.pub root@filer02:~/.ssh/authorized_keys2
root@filer02 ~# scp .ssh/id_dsa.pub root@filer01:~/.ssh/authorized_keys2
配置DRBD
DRBD将保持两个节点之间的数据一致。
在filer01上:
root@filer01 ~# mv /etc/drbd.conf /etc/drbd.conf.org
然后根据以下内容修改drbd.conf
(版本8):
global { # minor-count 64; # dialog-refresh 5; # 5 seconds # disable-ip-verification; usage-count ask; } common { syncer { rate 100M; } } resource cluster_metadata { protocol C; 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"; # outdate-peer "/usr/sbin/drbd-peer-outdater"; } startup { # wfc-timeout 0; degr-wfc-timeout 120; # 2 minutes. } disk { on-io-error detach; } net { after-sb-0pri disconnect; after-sb-1pri disconnect; after-sb-2pri disconnect; rr-conflict disconnect; } syncer { # rate 10M; # after "r2"; al-extents 257; } on filer01 { device /dev/drbd0; disk /dev/sda3; address 10.188.188.1:7788; meta-disk internal; } on filer02 { device /dev/drbd0; disk /dev/sda3; address 10.188.188.2:7788; meta-disk internal; } } resource vg0drbd { protocol C; startup { wfc-timeout 0; ## Infinite! degr-wfc-timeout 120; ## 2 minutes. } disk { on-io-error detach; } net { # timeout 60; # connect-int 10; # ping-int 10; # max-buffers 2048; # max-epoch-size 2048; } syncer { after "cluster_metadata"; } on filer01 { device /dev/drbd1; disk /dev/sda5; address 10.188.188.1:7789; meta-disk internal; } on filer02 { device /dev/drbd1; disk /dev/sda5; address 10.188.188.2:7789; meta-disk internal; } }
两个主机都需要相同的drbd.conf,所以来自filer01的drbd.conf文件将被复制到filer02:
root@filer01 ~# scp /etc/drbd.conf root@filer02:/etc/drbd.conf
两个节点上的/ dev / drbd0
(cluster_metadata)和/ dev / drbd1
(vg0drbd)上的初始化元数据:
root@filer01 ~# drbdadm create-md cluster_metadata
root@filer01 ~# drbdadm create-md vg0drbd
root@filer02 ~# drbdadm create-md cluster_metadata
root@filer02 ~# drbdadm create-md vg0drbd
注意:如果上面的命令生成关于需要清除文件系统的错误,请使用以下命令:
root@filer01 ~# dd if=/dev/zero of=/dev/sda3
请注意此命令,并确保它在正确的驱动器上。
在启动DRBD服务之前,请确保drbd0(在drbd.conf
文件中的cluster_metadata资源中)中使用的分区
尚未挂载(默认情况下,如果在安装过程中创建该分区)。
root@filer01 ~# umount /dev/sda3
现在,在两台主机上启动DRBD:
root@filer01 ~# service drbd start
root@filer02 ~# service drbd start
如果一切顺利,他们应该连接并运行“service drbd status”应该输出类似于以下内容:
root@filer1 /# service drbd status
drbd driver loaded OK; device status:
version: 8.0.12 (api:86/proto:86)
GIT-hash: 5c9f89594553e32adb87d9638dce591782f947e3 build by phil@mescal, 2008-04-24 13:29:44
m:res cs st ds p mounted fstype
0:cluster_metadata Connected Secondary/Secondary Inconsistent/Inconsistent C
1:vg0drbd Connected Secondary/Secondary Inconsistent/Inconsistent C
一旦drbd资源连接并且两个节点处于辅助状态(如上所述),请设置主节点:
root@filer01 ~# drbdsetup /dev/drbd0 primary -o
root@filer01 ~# drbdsetup /dev/drbd1 primary -o
这应该给你一个状态结果如下:
root@filer1 /# service drbd status
drbd driver loaded OK; device status:
version: 8.0.12 (api:86/proto:86)
GIT-hash: 5c9f89594553e32adb87d9638dce591782f947e3 build by phil@mescal, 2008-04-24 13:29:44
m:res cs st ds p mounted fstype
... sync'ed: 17.9% (247232/297152)K
0:cluster_metadata SyncSource? Primary/Secondary UpToDate/Inconsistent C
1:vg0drbd PausedSyncS? Primary/Secondary UpToDate/Inconsistent C
注意:如果vg0drbd LVM很大,则需要很长时间来同步(可能是一夜之间)。
启动DRBD启动时启动:
root@filer01 ~# chkconfig --level 2345 drbd on
root@filer02 ~# chkconfig --level 2345 drbd on
现在创建cluster_metadata文件系统。 使用此512 MB分区来保留所有Openfiler配置数据和HA中可用的服务(例如NFS,iSCSI,SMB)的数据。
root@filer01 ~# mkfs.ext3 /dev/drbd0
不要将此分区添加到/ etc / fstab中
,因为这是由Heartbeat管理的(将很快配置)。