使用GFS和DRBD(CentOS 5.5)设置主动/主动Samba CTDB群集

使用GFS和DRBD(CentOS 5.5)设置主动/主动Samba CTDB群集 本文介绍如何设置主动/主动Samba CTDB ...

使用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.intnode2.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