使用GFS和DRBD(CentOS 5.5)设置主动/主动Samba CTDB群集
本文介绍如何使用GFS和DRBD设置主动/主动Samba CTDB群集。 由BRLink Servidor Linux团队的Rafael Marangoni编写。
介绍
我们使用两个节点,两个节点都是活动节点,并且请求负载平衡。 要在使用DRBD的节点之间复制数据。 对于主动/主动群集,我们必须使用ClusterFS(在本例中为GFS),以使两个节点同时在DRBD资源上写入。
1初步说明
Linux发行版:
我们正在使用CentOS 5.5(64位)分发版,但可能适用于Fedora(和Red Hat)。 CentOS的安装非常简单和古典,选择您喜欢/需要的基础包和其他东西。 必须记住的一个问题是,我们使用DRBD在节点之间复制数据,那么您需要具有专用于DRBD的磁盘或分区。 在CentOS安装分区磁盘之前,请记住这一点。
网络硬件/拓扑:
我们每个节点使用两个千兆网卡,一个(eth0)连接到网络(LAN),另一个(eth1)连接两个节点的交叉电缆。
必须使用交叉电缆来提高系统的性能和可靠性,因为DRBD不会依赖于网络交换机或任何其他方式在节点之间复制数据。
在本教程中,我们将使用物理节点node1.clusterbr.int
和node2.clusterbr.int
:
node1.clustersmb.int
:使用IP 10.0.0.181
(LAN)和IP 172.16.0.1
(交叉)
node2.clustersmb.int
:使用IP 10.0.0.182
(LAN)和IP 172.16.0.2
(交叉)
vip1.clustersmb.int
:它是Cluster IP,来自node1 10.0.0.183
。
vip2.clustersmb.int
:它是Cluster IP,来自node2 10.0.0.184
。
磁盘:
两个节点都有两个磁盘:
/ dev / sda
:系统操作系统;
/ dev / sdb
:到DRBD。
如前所述,如果将一个分区专用于DRBD,则只能使用一个磁盘。
CTDB:
它是TDB的集群实现,与Samba一起在集群文件系统上使用。 我们需要它具有主动/主动集群,那么smb服务都可以应答网络请求。 有关http://ctdb.samba.org的更多信息。
2准备节点
禁用SELINUX
我们需要禁用SELINUX:
vi /etc/selinux/config
只改变这一行(让别的东西不变):
SELINUX=disabled
设置主机名
我们需要更改节点的主机名和网关:
vi /etc/sysconfig/network
node1:
NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=node1.clustersmb.int GATEWAY=10.0.0.9
node2:
NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=node2.clustersmb.int GATEWAY=10.0.0.9
配置网络接口
接下来,我们将配置网络接口:
node1:
LAN接口:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 BOOTPROTO=static IPADDR=10.0.0.181 NETMASK=255.255.255.0 ONBOOT=yes HWADDR=a6:1e:3d:67:66:78
交叉/ DRBD接口:
vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1 BOOTPROTO=static IPADDR=172.16.0.1 NETMASK=255.255.255.0 ONBOOT=yes HWADDR=ee:ef:ff:9a:9a:57
node2:
LAN接口:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 BOOTPROTO=static IPADDR=10.0.0.182 NETMASK=255.255.255.0 ONBOOT=yes HWADDR=52:52:a1:1a:62:32
交叉/ DRBD接口:
vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1 BOOTPROTO=static IPADDR=172.16.0.2 NETMASK=255.255.255.0 ONBOOT=yes HWADDR=1a:18:b2:50:96:1e
设置DNS配置
在两个节点上设置DNS配置(根据您的网络):
vi /etc/resolv.conf
search clustersmb.int nameserver 10.0.0.9
配置基本主机名解析
配置/ etc / hosts
(两个节点上的相同配置):
vi /etc/hosts
127.0.0.1 localhost.localdomain localhost 10.0.0.191 node1.clustersmb.int node1 10.0.0.192 node2.clustersmb.int node2
PS:您可能想要在此文件上设置另一行,以指向网络的其他地址。
检查网络连接
我们来检查一切是否正常:
node1:
Pinging node2(通过LAN接口):
[root@node1 ~]# ping -c 2 node2
[root@node1 ~]# ping -c 2 node2
PING node2 (10.0.0.182) 56(84) bytes of data.
64 bytes from node2 (10.0.0.182): icmp_seq=1 ttl=64 time=0.089 ms
64 bytes from node2 (10.0.0.182): icmp_seq=2 ttl=64 time=0.082 ms
--- node2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.082/0.085/0.089/0.009 ms
Pinging node2(通过交叉接口):
[root@node1 ~]# ping -c 2 172.16.0.2
[root@node1 ~]# ping -c 2 172.16.0.2
PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data.
64 bytes from 172.16.0.2: icmp_seq=1 ttl=64 time=0.083 ms
64 bytes from 172.16.0.2: icmp_seq=2 ttl=64 time=0.083 ms
--- 172.16.0.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.083/0.083/0.083/0.000 ms
node2:
Pinging node1(通过LAN接口):
[root@node2 ~]# ping -c 2 node1
[root@node2 ~]# ping -c 2 node1
PING node1 (10.0.0.181) 56(84) bytes of data.
64 bytes from node1 (10.0.0.181): icmp_seq=1 ttl=64 time=0.068 ms
64 bytes from node1 (10.0.0.181): icmp_seq=2 ttl=64 time=0.063 ms
--- node1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.063/0.065/0.068/0.008 ms
Pinging node1(通过交叉接口):
[root@node2 ~]# ping -c 2 172.16.0.1
[root@node2 ~]# ping -c 2 172.16.0.1
PING 172.16.0.1 (172.16.0.1) 56(84) bytes of data.
64 bytes from 172.16.0.1: icmp_seq=1 ttl=64 time=1.36 ms
64 bytes from 172.16.0.1: icmp_seq=2 ttl=64 time=0.075 ms
--- 172.16.0.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.075/0.722/1.369/0.647 ms
配置初始化选项
我喜欢将运行级别设置为3。
vi /etc/inittab
只改变这一行(让别的东西不变):
id:3:initdefault:
我喜欢从一些自动初始化中删除一些服务,只保留真正使用的服务。
这些是我们需要的活动服务:
[root@node1 ~]# chkconfig --list | grep 3:sim
[root@node1 ~]# chkconfig --list | grep 3:sim
acpid 0:não 1:não 2:sim 3:sim 4:sim 5:sim 6:não
anacron 0:não 1:não 2:sim 3:sim 4:sim 5:sim 6:não
apmd 0:não 1:não 2:sim 3:sim 4:sim 5:sim 6:não
atd 0:não 1:não 2:não 3:sim 4:sim 5:sim 6:não
cpuspeed 0:não 1:sim 2:sim 3:sim 4:sim 5:sim 6:não
crond 0:não 1:não 2:sim 3:sim 4:sim 5:sim 6:não
irqbalance 0:não 1:não 2:sim 3:sim 4:sim 5:sim 6:não
kudzu 0:não 1:não 2:não 3:sim 4:sim 5:sim 6:não
network 0:não 1:não 2:sim 3:sim 4:sim 5:sim 6:não
rawdevices 0:não 1:não 2:não 3:sim 4:sim 5:sim 6:não
sshd 0:não 1:não 2:sim 3:sim 4:sim 5:sim 6:não
syslog 0:não 1:não 2:sim 3:sim 4:sim 5:sim 6:não
此时,我们需要重新启动两个节点才能应用配置。
reboot