Open Source-Software findet in immer mehr Unternehmen und Behörden ihren Einsatz. Im Juli widmet IT-Administrator daher seinen Heftschwerpunkt der quelloffenen ... (mehr)

Konfiguration von Samba

Da alle Knoten eine einheitliche Konfiguration besitzen müssen, kann die Konfiguration von Samba nicht mehr über die Datei »/etc/samba/smb.conf« erfolgen, sondern ist über die Registry von Samba vorzunehmen. In »smb.conf« steht dann nur noch der Verweis auf die Registry und dass Samba im Clustermodus arbeiten soll:

 

[global]
     
clustering = yes
     
include =registry

Über das Kommando net schreiben wir jetzt die Konfiguration in die Registry. Listing 5 stellt die dazu benötigten Kommandos zusammen. Neben den globalen Parametern richten wir hier auch gleich eine erste Freigabe ein. An dieser Stelle dürfen wir nicht vergessen, das Verzeichnis für die Freigabe im Clusterdateisystem anzulegen – wenn der Pfad nicht vorhanden ist, startet CTDB den smbd nicht.

 Listing 5: Konfiguration von Samba

 root@samba42-fs1:~# net conf setparm global "workgroup" "example" 
 root@samba42-fs1:~# net conf setparm global "netbios name" "cluster-42" 
 root@samba42-fs1:~# net conf setparm global "security" "ads" 
 root@samba42-fs1:~# net conf setparm global "realm" "EXAMPLE.NET" 
 root@samba42-fs1:~# net conf setparm global "idmap config *:range" "10000-19999" 
 root@samba42-fs1:~# net conf setparm global "idmap config samba-ad:backend" "rid" 
 root@samba42-fs1:~# net conf setparm global "idmap config samba-ad:range" "1000000-1999999" 
 root@samba42-fs1:~# net conf setparm global "winbind enum users" "yes" 
 root@samba42-fs1:~# net conf setparm global "winbind enum groups" "yes" 
 root@samba42-fs1:~# net conf setparm global "winbind use default domain" "yes" 
 root@samba42-fs1:~# net conf setparm global "winbind refresh tickets" "yes" 
 root@samba42-fs1:~# net conf setparm global "store dos attributes" "yes" 
 root@samba42-fs1:~# net conf setparm global "map acl inherit" "yes" 
 root@samba42-fs1:~# net conf setparm global "vfs objects" "acl_xattr" 
 root@samba42-fs1:~# net conf setparm global "template shell" "/bin/bash" 
 root@samba42-fs1:~# net conf setparm global "wins server" "192.168.123.121" 
 
 root@samba42-fs1:~# net conf addshare daten /glusterfs/daten writeable=yes guest_ok=n "Daten im Cluster" 

Die Parameter "winbind enum users" und "winbind enum groups" sollten Sie in Umgebungen mit vielen Benutzern auf jeden Fall auf "no" setzen, da sonst immer alle IDs der Benutzer und Gruppen errechnet werden müssen, was zu Einbrüchen der Performance führen kann. Wir haben den Wert im Listing auf "yes" gesetzt, um zu zeigen, wie das ID-Mapping durchgeführt wird.

Damit in Zukunft CTDB die Kontrolle über die Samba-Dienste übernehmen kann, müssen Sie die init-Skripte der Dienste noch aus den Runleveln austragen – dieser Vorgang ist auf allen Knoten des Clusters durchzuführen:

root@samba42-fs1:~# insserv -r 
sernet-samba-winbindd
root@samba42-fs1:~# insserv -r 
sernet-samba-nmbd
root@samba42-fs1:~# insserv -r 
sernet-samba-smbd

Anschließend setzen Sie noch in der Datei » /etc/default/sernet-samba« die Variable "SAMBA_START_MODE" auf "classic", da sonst die Dienste nicht starten.

Bevor wir Samba an CTDB übergeben können, müssen wir den Cluster in die Domäne aufnehmen:

root@samba42-fs1:~# net ads join EXAMPLE -U administrator
Enter administrator's password:
Joined domain EXAMPLE.
root@samba42-fs1:~# net rpc testjoin
Join to 'EXAMPLE' is OK
 
root@samba42-fs2:~# net rpc testjoin
Join to 'EXAMPLE' is OK

Jetzt übergeben wir die Kontrolle der Samba-Dienste an CTDB. Dazu passen wir die Datei »/etc/default/sernet-samba-ctdb« folgendermaßen an:

# What services should CTDB manage? Default is none.
CTDB_MANAGES_SAMBA=yes
CTDB_MANAGES_WINBIND=yes

Endlich ist es so weit – wir können den CTDB-Dienst neu starten. Wenn das Kommando »ctdb status« wieder für alle Knoten den Status "OK" zeigt, hat CTDB die Dienste alle hochgefahren. Mit dem Befehl » ps ax | egrep 'mbd|winbind'« sind jetzt die Prozesse der Dienste zu sehen.

Mit dem Kommado »ip a l eth1« prüfen wir jetzt, ob jeder Knoten eine IP-Adresse aus der Datei » /etc/ctdb/public_addresses« erhalten hat. Verwenden Sie an dieser Stelle nie das Kommando »ifconfig« , da damit die durch CTDB vergebenen IP-Adressen nicht angezeigt werden.

 Listing 6: Prüfen des CTDB-Clusters

 root@samba42-fs1:~# ctdb uptime 
 Current time of node: Wed Apr 1 15:25:52 2015 
 Ctdbd start time: (028 01:45:56) Wed Mar 4 12:39:56 2015 
 Time of last recovery/failover: (000 03:34:44) Wed Apr 1 11:51:08 2015 
 Duration of last recovery/failover: 5.160447 seconds 
 
 root@samba42-fs1:~# ctdb ping -n all 
 response from 0 time=0.000067 sec (11 clients) 
 response from 1 time=0.001287 sec (10 clients) 
 
 root@samba42-fs1:~# ctdb ip 
 Public IPs on node 0 
 192.168.123.125 1 
 192.168.123.126 0 
 
 root@samba42-fs1:~# ctdb ipinfo 192.168.123.125 
 Public IP[192.168.123.125] info on node 0 
 IP:192.168.123.125 
 CurrentNode:1 
 NumInterfaces:1 
 Interface[1]: Name:eth1 Link:up References:1 

Prüfen des Clusters

Mit folgendem Kommando stellt CTDB eine Möglichkeit zum Testen des Clusters bereit, deren Ausgabe Sie in Listing 6 sehen. Dieses Kommando zeigt an, ob alle Dienste gestartet wurden. Sollte ein Dienst nicht ordnungsgemäß laufen, würde am Ende der Liste der Grund angezeigt.

root@samba42-fs1:~# ctdb 

 

scriptstatus

Mit dem Kommando » ctdb uptime« prüfen Sie, wie lang der Cluster bereits läuft, und, viel wichtiger, wann das letzte Mal ein "recover" oder ein "failover" durchgeführt wurde. Mit »ctdb ping -n« all bringen Sie die Pingzeiten zwischen den Knoten auf den Bildschirm und prüfen, ob überhaupt alle Knoten im Cluster aktiv sind. » ctdb ip« zeigt an, welche virtuelle IP-Adresse gerade an welchen Knoten vergeben wurde und mit einer Eingabe wie »ctdb ipinfo 192.168.123.125« kommen Sie an genauere Informationen zu einer virtuellen IP-Adresse.

Nachdem der Cluster jetzt Mitglied der Domäne ist und alle Knoten den Status "OK" haben, können wir mit den Kommandos »wbinfo –u« und »wbinfo –g« testen, ob die Benutzer und Gruppen aus der Domäne bekannt sind. Erst nach der Anpassung der Datei »/etc/nsswitch.conf « lassen sich die Benutzer und Gruppen der Domäne zur Vergabe der Berechtigungen nutzen:

passwd: compat winbind
group: compat winbind

Abschließend testen Sie mit »getent passwd« und »getent group« noch, ob alle Benutzer und Gruppen über das ID-Mapping bereitgestellt werden.

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023