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=disabled

Festlegen des Hostnamens

Wir müssen den Hostnamen und das Gateway der Knoten ändern:

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

Konfigurieren der Netzwerkschnittstellen

Als nächstes werden wir die Netzwerkschnittstellen konfigurieren:

node1:

Die LAN-Schnittstelle:

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 

Die Crossover/DRBD-Schnittstelle:

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:

Die LAN-Schnittstelle:

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

Die Crossover/DRBD-Schnittstelle:

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-Konfiguration festlegen

Festlegen der DNS-Konfiguration auf beiden Knoten (entsprechend Ihrem Netzwerk):

vi /etc/resolv.conf
search clustersmb.int
nameserver 10.0.0.9

Grundlegende Hostnamenauflösung konfigurieren

Konfigurieren von /etc/hosts (gleiche Konfiguration auf beiden Knoten):

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: 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.

reboot
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.