Workshop: CTDB unter Samba 4.2

Häuptling aller Cluster

Die rasant ansteigende Flut an Daten und
immer höhere Ansprüche an deren Verfügbarkeit verlangen nach immer
ausgefeilteren
Technologien. Trotzdem soll die Technik leicht
beherrschbar und einfach zu warten sein. Mit CTDB als neuer Bestandteil von
Samba 4.2 steht
eine Cluster-Lösung zur Verfügung, die sowohl
Hochverfügbarkeit als auch Loadbalancing bietet. In unserem Workshop setzen wir
in kürzester Zeit einen Samba 4 CTDB-Cluster zusammen mit GlusterFS und zwei
Debian-Systemen mit Loadbalancing und Failover auf.
Open Source-Software findet in immer mehr Unternehmen und Behörden ihren Einsatz. Im Juli widmet IT-Administrator daher seinen Heftschwerpunkt der quelloffenen ... (mehr)

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.

Änderungen in Samba 4.2

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.

Einrichten von GlusterFS

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 

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Loadtests ohne Server

Für Loadtests der eigenen Server bietet sich die Cloud an, denn kurz getaktet lassen sich dort viele Rechnerinstanzen starten, die das eigene Budget nur wenig belasten. Noch flexibler, günstiger und besser skalierbar sind Tests mit einer Serverless-Infrastruktur wie AWS Lambda. Wir führen vor, wie Sie dort mit Serverless Artillery eigene Loadtests starten. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Container

Wie setzen Sie Container ein?

  • Gar nicht
  • Docker standalone
  • Docker mit Kubernetes
  • Docker mit Swarm
  • Docker mit anderem Management
  • LXC/LXD
  • Rocket
  • CRI-O auf Kubernetes
  • Container auf vSphere
  • Andere (siehe Kommentare auf der Ergebnisseite)

Google+

Ausgabe /2018

Microsite