Samba クラスタ · 2 min read · Jan 29, 2026
GFSとDRBDを使用したアクティブ/アクティブSamba CTDBクラスタの設定 (CentOS 5.5)
GFSとDRBDを使用したアクティブ/アクティブSamba CTDBクラスタの設定 (CentOS 5.5)
この記事では、GFSとDRBDを使用してアクティブ/アクティブSamba CTDBクラスタを設定する方法を説明します。\nBRLink Linuxチームのラファエル・マランゴーニによって準備されました。
はじめに
私たちは2つのノードを使用し、両方がアクティブノードであり、リクエストは負荷分散されます。ノード間でデータを複製するためにDRBDを使用します。アクティブ/アクティブクラスタを実現するためには、ClusterFS(この場合はGFS)を使用して、2つのノードが同時にDRBDリソースに書き込む必要があります。
1 前提条件
Linuxディストリビューション:
私たちはCentOS 5.5(64ビット)ディストリビューションを使用していますが、Fedora(およびRed Hatでも確実に)で動作する可能性があります。CentOSのインストールは非常に簡単で、基本パッケージや必要なものを選択するだけです。覚えておくべき問題は、ノード間でデータを複製するためにDRBDを使用するため、DRBD専用のディスクまたはパーティションが必要です。CentOSのインストール時にディスクをパーティション分割する前にこれを覚えておいてください。
ネットワークハードウェア/トポロジー:
各ノードに2つのギガビットNICを使用します。1つ(eth0)はネットワーク(LAN)に接続し、もう1つ(eth1)はクロスオーバーケーブルで両方のノードを接続します。\nクロスオーバーケーブルは、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: ノード1のクラスタIP 10.0.0.183。 vip2.clustersmb.int: ノード2のクラスタIP 10.0.0.184。
ディスク:
両方のノードには2つのディスクがあります: /dev/sda: システムOS用; /dev/sdb: DRBD用。 前述のように、DRBD専用のパーティションを残すことで、1つのディスクのみを使用することもできます。
CTDB:
CTDBは、クラスタファイルシステム上でSambaと共に使用するためのTDBのクラスタ実装です。アクティブ/アクティブクラスタを持つために必要であり、両方のsmbサービスがネットワークリクエストに応答できるようになります。詳細はhttp://ctdb.samba.orgをご覧ください。
2 ノードの準備
SELINUXの無効化
SELINUXを無効にする必要があります:
vi /etc/selinux/configこの行だけを変更します(他はそのままにしておきます):
SELINUX=disabledホスト名の設定
ノードのホスト名とゲートウェイを変更する必要があります:
vi /etc/sysconfig/networknode1:
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=node1.clustersmb.int
GATEWAY=10.0.0.9node2:
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=node2.clustersmb.int
GATEWAY=10.0.0.9ネットワークインターフェースの設定
次に、ネットワークインターフェースを設定します:
node1:
LANインターフェース:
vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=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-eth1DEVICE=eth1
BOOTPROTO=static
IPADDR=172.16.0.1
NETMASK=255.255.255.0
ONBOOT=yes
HWADDR=ee:ef:ff:9a:9a:57node2:
LANインターフェース:
vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=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-eth1DEVICE=eth1
BOOTPROTO=static
IPADDR=172.16.0.2
NETMASK=255.255.255.0
ONBOOT=yes
HWADDR=1a:18:b2:50:96:1eDNS設定の設定
両方のノードでDNS設定を行います(ネットワークに応じて):
vi /etc/resolv.confsearch clustersmb.int
nameserver 10.0.0.9基本的なホスト名解決の設定
/etc/hostsを設定します(両方のノードで同じ設定):
vi /etc/hosts127.0.0.1 localhost.localdomain localhost
10.0.0.191 node1.clustersmb.int node1
10.0.0.192 node2.clustersmb.int node2PS: このファイルに他のネットワークアドレスを指す行を追加したいと思うかもしれません。
ネットワーク接続の確認
すべてが正常かどうか確認しましょう:
node1:
LANインターフェースを介してnode2にpingを送信します:
[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
クロスオーバーインターフェースを介してnode2にpingを送信します:
[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:
LANインターフェースを介してnode1にpingを送信します:
[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
クロスオーバーインターフェースを介してnode1にpingを送信します:
[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
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。