使用GFS和DRBD在CentOS 5.5上进行Samba CTDB集群部署 |
发布时间: 2012/6/28 16:59:42 |
我们使用了两个节点,都是活动节点,要求是要实现负载均衡,为了复制节点间的数据,我们使用的是DRBD,为了实现主动/主动集群,我们必须使用ClusterFS(这里使用GFS),以便让两个节点可以同时在DEBD资源上执行写操作。 1、初步说明 Linux发行版:我们使用的是CentOS 5.5 64位发行版,当然本文介绍的方法一样适用于Fedora和Red Hat Enterprise Linux,CentOS的安装很简单,安装时选择基础包和其它你需要的软件包,值得注意的是,我们使用DRBD复制节点之间的数据,它需要独占一个磁盘或分区,因此在安装CentOS时注意预留好空间或直接为DRBD创建好一个分区。 网络硬件和拓扑结构:在每个节点上,我们使用了两块千兆网卡,一个(eth0)连接到网络(LAN),另一个(eth1)通过交叉线实现两个节点间的连接,DRBD在两个节点之间复制数据时,是不会通过网络交换机或其它网络设备的,而是直接走交叉线。
磁盘:两个节点均配备了两块磁盘,/dev/sda安装操作系统,/dev/sdb供DRBD使用,正如前面提到的,只使用一块磁盘也是可以的,只需要为DRBD分配一个独立的分区即可。 CTDB:它是TDB的集群实现,为了在集群文件系统上使用Samba,我们需要一个主动/主动集群,让两边的smb服务都能响应网络请求,详细信息请参考http://ctdb.samba.org/。 2、准备节点 首先,我们需要禁用SELinux,用vi打开selinux配置文件: vi /etc/selinux/config 修改下面这一行内容,其它内容不变: SELINUX=disabled 接下来需要修改主机名和节点的网关。 vi /etc/sysconfig/network 节点1: NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=node1.clustersmb.int GATEWAY=10.0.0.9 节点2: NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=node2.clustersmb.int GATEWAY=10.0.0.9 接下来配置网络接口。 节点1 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 节点1交叉/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 节点2 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 节点2交叉/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配置。 vi /etc/resolv.conf 内容如下: search clustersmb.int nameserver 10.0.0.9 接下来配置基本的主机名解析,打开/etc/hosts文件: vi /etc/hosts 内容如下: 127.0.0.1localhost.localdomain localhost 10.0.0.191 node1.clustersmb.intnode1 10.0.0.192 node2.clustersmb.intnode2 Ps:这里根据你的实际情况可以添加更多类似的快速解析条目。 设置好后,检查一下网络连接是否正常,首先在节点1上通过LAN接口ping节点2。 [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 然后通过交叉接口ping节点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 一切正常,然后在节点2上通过LAN接口ping节点1。 [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 接下来通过交叉接口ping节点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: 我喜欢将多余的启动服务去掉,只留下真正需要的服务,下面是我需要的服务列表。
现在需要重启两个节点,让配置生效。 Reboot 本文出自:亿恩科技【www.enkj.com】 |