Mit der neuen Version 4.2 von Samba 4 wurde, neben vielen Änderungen an der Konfiguration, auch CTDB (Cluster Trivia Data Base) als Bestandteil aufgenommen. Vor der Version 4.2 war CTDB ein eigenständiges Produkt, das der Nutzer zusätzlich installieren musste. Bevor wir uns mit den Thema Samba 4 und CTDB auseinandersetzen, wollen wir zunächst einen Blick auf die wichtigen Änderungen zu den Vorgängerversionen werfen.
Mit Erscheinen der Version 4.2 werden keine Updates für die Version 3.6.x mehr bereitgestellt. Das heißt jedoch nicht, dass Sie zusammen mit openLDAP keine "NT-like"-Domäne mehr einrichten können. Samba 4 unterstützt weiterhin diese Art der Domänenverwaltung neben der Verwaltung als Active Directory. Die folgenden Änderungen kommen mit der Version 4.2 zum Tragen:
- Auf dem ADDC wird jetzt, wie schon beim Fileserver, der "winbindd" als eigenständiger Daemon für das ID-Mapping verwendet. Durch diese Änderung haben die Entwickler den ersten Schritt in Richtung Domain-Trusts gemacht.
- Einige Sicherheitsparameter wurden neu hinzugefügt oder der Standardwert wurde angepasst. Dadurch ist es jetzt ohne Änderung an den Parametern nicht mehr möglich, eine Verbindung zum Samba-Server mit Windows NT-Clients oder Samba-Clients mit einer Version kleiner 3.0.27 herzustellen.
- Neu ist ferner der "Bad Password Lockout" am ADDC. Für die Domänencontroller ist es jetzt möglich, Passwortrichtlinien einzurichten. Die Werte lassen sich mit mit dem Kommando» samba-tool domain passwortsettings set
«
anpassen.
- Eine der größten Neuerungen in der Version 4.2 ist der Cluster-Support, um den es in diesem Artikel gehen soll.
Wir wollen im Workshop zeigen, wie schnell Sie einen Filesystem-Cluster mit HA-Funktion und Loadbalancing einrichten. Für die Installation des Clusters benötigen wir zwei Debian-Systeme (samba42-fs1 und samba42-fs2), die jeweils mit einer zusätzlichen Festplatte für das Clusterdateisystem eingerichtet sind. Bei der Installation der Systeme darf wirklich nur das Grundsystem installiert sein und nicht schon die Samba-Pakete, da diese später zu Konflikten führen.
Später sollen beide Knoten des Cluster beschreibbar sein, daher muss ein Dateisystem zum Einsatz kommen, das das Locking über alle Systeme durchführt. Dateisysteme wie Ext4 oder XFS sind hierzu alleine nicht in der Lage. Für einen Cluster ist ein Clusterdateisystem zwingende Voraussetzung, das das Locking der Dateien übernimmt. Wir wollen hier GlusterFS verwenden, da es schnell und einfach einzurichten und dabei sehr zuverlässig und flexibel ist.
Listing 1: Einrichten der GlusterFS-Partitionen
root@samba42-fs1:~# fdisk /dev/sdb root@samba42-fs1:~# mkfs.xfs /dev/sdb1 root@samba42-fs1:~# mkdir /gluster root@samba42-fs1:~# mount /dev/sdb1 /gluster/ root@samba42-fs1:~# mkdir /gluster/brick root@samba42-fs1:~# echo "/dev/sdb1 /gluster xfs defaults,_netdev 0 0" > /etc/fstab
Achten Sie stets darauf, immer die aktuellste Version von GlusterFS zu verwenden. Zum Zeitpunkt des Redaktionsschlusses dieser Ausgabe war dies die Version 3.6.2. Auf den zwei Debian 7-Grundsystemen legen wir dazu in /»etc/apt/sources. list.d/gluster.list
«
folgenden Eintrag an:
root@samba42-fs1:~# echo deb http://download.gluster.org/pub/gluster/glusterfs/3.6/3.6.2/Debian/wheezy/apt wheezy main > /etc/apt/sources.list.d/gluster.list
Im Anschluss installieren Sie den Public Key von »gluster.org
«
mit dem Kommando
wget -O
http://download.gluster.org/pub/gluster/glusterfs/3.5/3.5.0/Debian/pubkey.gpg | apt-key add
Nach einem »apt-get update
«
spielen Sie dann die benötigten Pakete auf:
root@samba42-fs1:~# apt-get install glusterfs-server xfsprogs acl attr
Um die Namensauflösung korrekt durchführen zu können, empfiehlt es sich, die IP-Adressen beider Systeme in die Datei »/etc/hosts
«
einzutragen.
Nach der Installation der Pakete und der Erweiterung der »hosts
«
-Datei können wir sofort mit der Konfiguration des Clusters beginnen. Wir wollen hier einen "replicated"-Cluster für die Daten erzeugen, um diese im Cluster redundant vorzuhalten. Mit GlusterFS gibt es verschiedene Möglichkeiten, einen Cluster aufzubauen – neben der Replikation ist es auch möglich "distributed" und "striped" Cluster zu schaffen. Auch die Kombination aus verschiedenen Varianten ist möglich.
Im nächsten Schritt machen wir die Knoten für den Cluster auf den Systemen bekannt:
root@samba42-fs1:~# gluster peer probe samba42-2
Probe successful
root@samba42-fs2:~# gluster peer probe samba42-1
Probe successful
Jetzt richten wir wie in Listing 1 die Partitionen für das Gluster-Dateisystem ein und mounten diese – diesen Vorgang müssen Sie auf beiden Systemen identisch durchführen. Als Dateisystem kommt das von Gluster bevorzugte XFS zum Einsatz.
Erst jetzt können wir das eigentliche Volume erstellen, auf das später die Daten geschrieben werden. Das Volume müssen Sie nur auf einen der beiden Knoten schaffen und starten. Das dazu nötige Kommando und die entsprechende Ausgabe sehen folgendermaßen aus:
root@samba42-fs1:~# gluster volume create gv0 replica 2 samba42-1:/gluster/brick\samba42-2:/gluster/brick
Creation of volume gv0 has been successful. Please start the volume to access data.
root@samba42-fs1:~# gluster volume start gv0
volume start: gv0: success
Nach dem Erstellen und dem Start können wir das Volume mit folgendem Kommando überprüfen:
root@samba42-fs1:~# gluster volume info
Listing 2 zeigt das Ergebnis dieser Überprüfung. Wichtig ist hier, dass bei Status "Started" angegeben ist, denn nur dann können wir das Volume verwenden. Das Kommando »gluster volume status
«
zeigt die Statusinformationen des Volumes an. Hier ist auch zu sehen, dass GlusterFS gleich auch einen NFS-Server bereitstellt. Etwaige Tasks, wie zum Beispiel eine laufende Replikation beim Austausch eines Bricks, würden hier ebenfalls erscheinen.
Listing 2: Testergebnis des Gluster-Volumes
Volume Name: gv0 Type: Replicate Volume ID: 5e57b9bd-6d4b-4910-b232-2d10103752db Status: Started Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: samba42-1:/gluster/brick Brick2: samba42-2:/gluster/brick root@samba42-fs1:~# gluster volume status Status of volume: gv0 Gluster process Port Online Pid ------------------------------------------------------------------------------ Brick samba42-1:/gluster/brick 49153 Y 27867 Brick samba42-2:/gluster/brick 49155 Y 28879 NFS Server on localhost 2049 Y 27881 Self-heal Daemon on localhost N/A Y 27886 NFS Server on samba42-2 2049 Y 28893 Self-heal Daemon on samba42-2 N/A Y 28898 Task Status of Volume gv0 ------------------------------------------------------------------------------ There are no active volume tasks