Cluster Setup · 4 min read · Jan 29, 2026
Einrichten eines Active/Active Samba CTDB Clusters mit GFS & DRBD (CentOS 5.5)
Einrichten eines Active/Active Samba CTDB Clusters mit GFS & DRBD (CentOS 5.5)
Dieser Artikel erklärt, wie man ein Active/Active Samba CTDB Cluster mit GFS und DRBD einrichtet.\nVorbereitet von Rafael Marangoni, vom BRLink Servidor Linux Team.
Einführung
Wir verwenden zwei Knoten, beide sind aktive Knoten, und die Anfragen werden lastbalanciert. Um Daten zwischen den Knoten zu replizieren, verwenden wir DRBD. Für ein Active/Active-Cluster müssen wir ein ClusterFS (in diesem Fall GFS) verwenden, damit die beiden Knoten gleichzeitig auf die DRBD-Ressource schreiben können.
1 Vorbemerkung
Linux-Distribution:
Wir verwenden die CentOS 5.5 (64-Bit) Distribution, die wahrscheinlich auch auf Fedora (und Red Hat, auf jeden Fall) funktionieren wird. Die Installation von CentOS ist sehr einfach und klassisch, wählen Sie die Basis-Pakete und andere Dinge, die Sie mögen/brauchen. Ein Punkt, der beachtet werden muss, ist, dass wir DRBD verwenden, um Daten zwischen den Knoten zu replizieren, daher müssen Sie eine Festplatte oder Partition haben, die ausschließlich für DRBD vorgesehen ist. Denken Sie daran, bevor Sie Festplatten bei der CentOS-Installation partitionieren.
Netzwerkhardware/-topologie:
Wir verwenden zwei Gigabit NICs pro Knoten, eine (eth0) verbindet sich mit dem Netzwerk (LAN) und die andere (eth1) mit einem Crossover-Kabel, das beide Knoten verbindet.\nDas Crossover-Kabel muss verwendet werden, um die Leistung und Zuverlässigkeit des Systems zu verbessern, da DRBD nicht von Netzwerkswitches oder ähnlichem abhängt, um Daten zwischen den Knoten zu replizieren.\n\nIn diesem Tutorial verwenden wir die physischen Knoten node1.clusterbr.int und node2.clusterbr.int:\nnode1.clustersmb.int: Verwendet IP 10.0.0.181 (LAN) und IP 172.16.0.1 (Crossover)\nnode2.clustersmb.int: Verwendet IP 10.0.0.182 (LAN) und IP 172.16.0.2 (Crossover)\nvip1.clustersmb.int: Es ist die Cluster-IP von node1 10.0.0.183.\nvip2.clustersmb.int: Es ist die Cluster-IP von node2 10.0.0.184.
Festplatten:
Beide Knoten haben zwei Festplatten:\n/dev/sda: für das Betriebssystem;\n/dev/sdb: für DRBD.\nWie bereits erwähnt, können Sie nur eine Festplatte verwenden, wenn Sie eine Partition ausschließlich für DRBD lassen.
CTDB:
Es ist eine Cluster-Implementierung von TDB, die mit Samba auf Cluster-Dateisystemen verwendet wird. Wir benötigen es, um ein Active/Active-Cluster zu haben, damit beide smb-Dienste die Netzwerk-Anfragen beantworten können. Weitere Informationen unter http://ctdb.samba.org.
2 Vorbereitung der Knoten
Deaktivieren von SELINUX
Wir müssen SELINUX deaktivieren:
vi /etc/selinux/configÄndern Sie nur diese Zeile (alles andere unverändert lassen):
SELINUX=disabledFestlegen des Hostnamens
Wir müssen den Hostnamen und das Gateway der Knoten ändern:
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.9Konfigurieren der Netzwerkschnittstellen
Als nächstes werden wir die Netzwerkschnittstellen konfigurieren:
node1:
Die LAN-Schnittstelle:
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 Die Crossover/DRBD-Schnittstelle:
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:
Die LAN-Schnittstelle:
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:32Die Crossover/DRBD-Schnittstelle:
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-Konfiguration festlegen
Festlegen der DNS-Konfiguration auf beiden Knoten (entsprechend Ihrem Netzwerk):
vi /etc/resolv.confsearch clustersmb.int
nameserver 10.0.0.9Grundlegende Hostnamenauflösung konfigurieren
Konfigurieren von /etc/hosts (gleiche Konfiguration auf beiden Knoten):
vi /etc/hosts127.0.0.1 localhost.localdomain localhost
10.0.0.191 node1.clustersmb.int node1
10.0.0.192 node2.clustersmb.int node2
PS: Sie möchten wahrscheinlich weitere Zeilen in dieser Datei hinzufügen, um auf andere Adressen Ihres Netzwerks zu verweisen.
Überprüfen der Netzwerkverbindung
Lassen Sie uns überprüfen, ob alles in Ordnung ist:
node1:
Ping node2 (über LAN-Schnittstelle):
[root@node1 ~]# ping -c 2 node2[root@node1 ~]# ping -c 2 node2
PING node2 (10.0.0.182) 56(84) Bytes Daten.
64 Bytes von node2 (10.0.0.182): icmp_seq=1 ttl=64 Zeit=0.089 ms
64 Bytes von node2 (10.0.0.182): icmp_seq=2 ttl=64 Zeit=0.082 ms
— node2 Ping-Statistiken —
2 Pakete gesendet, 2 empfangen, 0% Paketverlust, Zeit 999ms
rtt min/avg/max/mdev = 0.082/0.085/0.089/0.009 ms
Ping node2 (über Crossover-Schnittstelle):
[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 Daten.
64 Bytes von 172.16.0.2: icmp_seq=1 ttl=64 Zeit=0.083 ms
64 Bytes von 172.16.0.2: icmp_seq=2 ttl=64 Zeit=0.083 ms
— 172.16.0.2 Ping-Statistiken —
2 Pakete gesendet, 2 empfangen, 0% Paketverlust, Zeit 999ms
rtt min/avg/max/mdev = 0.083/0.083/0.083/0.000 ms
node2:
Ping node1 (über LAN-Schnittstelle):
[root@node2 ~]# ping -c 2 node1[root@node2 ~]# ping -c 2 node1
PING node1 (10.0.0.181) 56(84) Bytes Daten.
64 Bytes von node1 (10.0.0.181): icmp_seq=1 ttl=64 Zeit=0.068 ms
64 Bytes von node1 (10.0.0.181): icmp_seq=2 ttl=64 Zeit=0.063 ms
— node1 Ping-Statistiken —
2 Pakete gesendet, 2 empfangen, 0% Paketverlust, Zeit 999ms
rtt min/avg/max/mdev = 0.063/0.065/0.068/0.008 ms
Ping node1 (über Crossover-Schnittstelle):
[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 Daten.
64 Bytes von 172.16.0.1: icmp_seq=1 ttl=64 Zeit=1.36 ms
64 Bytes von 172.16.0.1: icmp_seq=2 ttl=64 Zeit=0.075 ms
— 172.16.0.1 Ping-Statistiken —
2 Pakete gesendet, 2 empfangen, 0% Paketverlust, Zeit 1001ms
rtt min/avg/max/mdev = 0.075/0.722/1.369/0.647 ms
Konfigurieren der Initialisierungsoptionen
Ich mag es, den Runlevel auf 3 zu setzen.
vi /etc/inittabÄndern Sie nur diese Zeile (alles andere unverändert lassen):
id:3:initdefault:Ich möchte einige Dienste von der automatischen Initialisierung entfernen, um nur die Dienste zu behalten, die wirklich verwendet werden.
Dies sind die aktiven Dienste, die wir benötigen:
[root@node1 ~]# chkconfig --list | grep 3:sim[root@node1 ~]# chkconfig –list | grep 3:sim
acpid 0:nicht 1:nicht 2:ja 3:ja 4:ja 5:ja 6:nicht
anacron 0:nicht 1:nicht 2:ja 3:ja 4:ja 5:ja 6:nicht
apmd 0:nicht 1:nicht 2:ja 3:ja 4:ja 5:ja 6:nicht
atd 0:nicht 1:nicht 2:nicht 3:ja 4:ja 5:ja 6:nicht
cpu speed 0:nicht 1:ja 2:ja 3:ja 4:ja 5:ja 6:nicht
crond 0:nicht 1:nicht 2:ja 3:ja 4:ja 5:ja 6:nicht
irqbalance 0:nicht 1:nicht 2:ja 3:ja 4:ja 5:ja 6:nicht
kudzu 0:nicht 1:nicht 2:nicht 3:ja 4:ja 5:ja 6:nicht
network 0:nicht 1:nicht 2:ja 3:ja 4:ja 5:ja 6:nicht
rawdevices 0:nicht 1:nicht 2:nicht 3:ja 4:ja 5:ja 6:nicht
sshd 0:nicht 1:nicht 2:ja 3:ja 4:ja 5:ja 6:nicht
syslog 0:nicht 1:nicht 2:ja 3:ja 4:ja 5:ja 6:nicht
An diesem Punkt müssen wir beide Knoten neu starten, um die Konfiguration anzuwenden.
rebootErhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.