使用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.vbseamall.com】 |