Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zum Registrieren eines kostenlosen Accounts finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Wenn Sie Ihre Übung abgeschlossen haben, ersetzen Sie diese Werte durch spezifische Werte für Ihre Cloud-Umgebung.
HA-Samba-Cluster mit Windows Active Directory auf OCI bereitstellen
Einführung
In diesem Kurs wird erläutert, wie Sie High Availability (HA) mit automatischem Failover von Samba auf Ubuntu-Instanzen in Oracle Cloud Infrastructure (OCI) konfigurieren. Diese Lösung ist eine robuste und zuverlässige Dateiserverinfrastruktur, die das Potenzial eines geclusterten Server Message Block (SMB)-Setups nutzt und vollständig lizenzfrei ist. Die Kosten beziehen sich nur auf den Verbrauch (oCPU und Block-Volume-Größe).
Die Implementierung eines geclusterten SMB-Dateiserverservice in einer Organisation bietet folgende Vorteile:
-
Zuverlässigkeit: Die geclusterte Konfiguration stellt High Availability sicher, minimiert das Risiko von Ausfallzeiten und stellt konstanten Zugriff auf kritische Dateien sicher.
-
Fehlertoleranz: Im Falle eines Serverausfalls bietet das geclusterte Setup ein automatisches Failover, das einen unterbrechungsfreien Zugriff auf Dateien gewährleistet und die Geschäftskontinuität aufrechterhält.
-
Ressourcenauslastung: Eine effiziente Ressourcenzuteilung gewährleistet eine optimale Auslastung der Serverressourcen, maximiert die Produktivität und minimiert gleichzeitig die Betriebskosten.
-
Hohe Performance: Die Implementierung eines geclusterten SMB-Dateiservers ist ein strategischer Schritt zur Schaffung einer resilienten, leistungsstarken IT-Umgebung, die auf die sich entwickelnden Geschäftsanforderungen zugeschnitten ist.
Architektur
Zielsetzung
- Stellen Sie einen zuverlässigen Dateiserver in HA bereit, der das SMB-Protokoll unterstützt, das in Windows Active Directory integriert ist.
Voraussetzungen
-
Zugriff auf einen OCI-Mandanten.
-
Zwei Linux-Ubuntu-VMs.
-
Ein Block-Volume.
Aufgabe 1: Umgebung einrichten
-
Erstellen Sie zwei Ubuntu 22.04-Compute-Instanzen.
-
Richten Sie auf beiden Compute-Instanzen das Verzeichnis ein, in dem Sie Dateien speichern möchten, und konfigurieren Sie den Samba-Server. Beispiel:
/mnt/smb
. -
Erstellen Sie ein Block-Volume mit der erforderlichen Größe für Ihren SMB-Datenspeicher, und hängen Sie es an beide Compute-Instanzen an (iSCSI, Lese-/Schreibzugriff - gemeinsam nutzbar). Weitere Informationen finden Sie unter Volumes an mehrere Instanzen anhängen.
-
Notieren Sie sich den Entwicklungsnamen, der dem angehängten Block-Volume mit dem folgenden Befehl zugewiesen ist.
sudo lsblk
-
Weisen Sie auf dem ersten Knoten eine sekundäre private IP-Adresse zu. Dies ist eine schwebende IP-Adresse. Beispiel:
10.10.1.254
. -
Aktualisieren Sie die Datei
/etc/hosts
auf beiden Ubuntu-Instanzen, sodass sie die IP-Adressen und Hostnamen aller Knoten enthält, einschließlich des Windows Active Directory-Servers, der für die Benutzerauthentifizierung verwendet wird. Beispiel:10.10.1.60 smb1
,10.10.1.29 smb2
,10.10.1.59 ad.testad.oci testad.oci AD
. -
Konfigurieren Sie die
iptables
auf beiden Ubuntu-Instanzen entsprechend den Anforderungen.Hinweis: Ubuntu-Instanzen werden mit vorkonfigurierten iptables-Instanzen geliefert. Die sechste Regel im INPUT-Abschnitt lehnt alles andere ab, sodass Sie entweder die Regel löschen oder bestimmte Protokolle und Ports hinzufügen können, die vor dieser Regel zulässig sind.
-
Installieren und konfigurieren Sie die Oracle Cloud Infrastructure-Befehlszeilenschnittstelle (OCI-CLI) auf beiden Ubuntu-Instanzen. Weitere Informationen finden Sie unter OCI-CLI installieren und konfigurieren (Konfigurationsbefehl: OCI-Setupkonfiguration).
Hinweis: Installieren Sie die OCI-CLI in
/usr/bin
oder in Ihrem Benutzerpfad, um Berechtigungsprobleme zu vermeiden. Standardmäßig ist sie root.bash -c "$(curl -L https://raw.githubusercontent.com/oracle/ocicli/master/scripts/install/install.sh)"
Aufgabe 2: Oracle Cluster-Dateisystemversion 2 konfigurieren (OCFS2)
Oracle Cluster File System Version 2 (OCFS2) ist ein General-Purpose-Shared Disk-Dateisystem, das von der Oracle Corporation entwickelt und unter der GNU General Public License veröffentlicht wurde.
Um ein freigegebenes schreibbares Block-Volume zu verwalten, müssen Sie OCFS2 bereitstellen. Weitere Informationen finden Sie unter Eine einfache Anleitung zu Oracle Cluster File System (OCFS2) mit iSCSI auf Oracle Cloud Infrastructure.
-
Führen Sie den folgenden Befehl auf beiden Knoten aus.
sudo apt-get install ocfs2-tools -y
-
Aktualisieren Sie den Wert von
O2CB_ENABLED
von false auf true in der Datei/etc/default/o2cb
.O2CB_ENABLED=true
-
Geben Sie den folgenden Code in die Datei
/etc/ocfs2/cluster.conf
ein.Hinweis: Achten Sie auf die Einrückung und das Format der Datei.
cluster: name = ocfs2 heartbeat_mode = local node_count = 2 node: cluster = ocfs2 number = 0 ip_port = 7777 ip_address = 10.10.1.60 name = smb1 node: cluster = ocfs2 number = 1 ip_port = 7777 ip_address = 10.10.1.29 name = smb2
-
Starten Sie jetzt den
o2cb
-Service.sudo /etc/init.d/o2cb start
-
Formatieren Sie das Block-Volume-Gerät mit dem Dateisystem OCFS2. Führen Sie den folgenden Befehl nur auf dem ersten Knoten aus.
Hinweis: Der Pfad des Geräts, den Sie in Schritt 3 notiert haben.
sudo mkfs.ocfs2 "MyOCFS2Cluster" /dev/sd*
-
Registrieren Sie das Cluster mit dem folgenden Befehl.
sudo o2cb register-cluster ocfs2
-
Hängen Sie das Block-Volume in das Verzeichnis ein, das für den Samba-Server zugewiesen ist. Beispiel:
/mnt/smb
.sudo mount /dev/sd* /mnt/smb
-
Prüfen Sie den Clusterstatus mit dem folgenden Befehl.
sudo o2cb list-nodes ocfs2
-
Aktivieren Sie die Services mit dem folgenden Befehl.
sudo systemctl enable o2cb sudo systemctl enable ocfs2
-
Aktualisieren Sie
fstab
in/etc/fstab
, um das Block-Volume beim Hochfahren automatisch zu mounten.Hinweis: Passen Sie das Gerät
/dev/sd\*
an Ihren Gerätenamen an./dev/sd* /mnt/smb ocfs2 _netdev,defaults 0 0
Aufgabe 3: Samba-Cluster einrichten
Samba ermöglicht die Datei- und Druckfreigabe zwischen Computern, die unter Microsoft Windows und Unix ausgeführt werden. Es handelt sich um eine Implementierung von Dutzenden von Diensten und Protokollen, darunter: NetBIOS über TCP/IP (NBT) und SMB - manchmal auch als Common Internet File System (CIFS) bezeichnet.
-
Installieren Sie Samba und Cluster Trivial Database (CTDB) auf beiden Knoten mit dem folgenden Befehl.
sudo apt-get install ctdb samba samba-common winbind smbclient -y
-
Bearbeiten Sie die Samba-Konfigurationsdatei.
sudo nano /etc/samba/smb.conf
Kopieren Sie die folgenden Parameter, und fügen Sie sie ein.
Hinweis:
- Sie müssen es entsprechend Ihrer Umgebung und den Fenstern
domain/workgroup
konfigurieren. - Der Parameter
netbios name
muss für alle Knoten identisch sein.
[global] server string = samba_server workgroup = TESTAD password server = ad.testad.oci realm = testad.oci winbind enum groups = yes winbind enum users = yes winbind use default domain = yes security = ADS debuglevel = 2 wins support = no idmap config TESTAD : backend = rid idmap config TESTAD : range = 10000 - 50000 idmap config * : backend = tdb idmap config * : range = 1000-9999 template shell = /bin/false winbind offline logon = false interfaces = lo ens3 clustering = yes guest ok = yes bind interfaces only = no disable netbios = no netbios name = sambacluster1 smb ports = 445 log file = /var/log/samba/smb.log max log size = 10000 veto files = /._*/.DS_Store/.Trashes/.TemporaryItems/ delete veto files = yes nt acl support = yes inherit acls = yes map acl inherit = yes map archive = yes map hidden = yes map read only = yes map system = yes store dos attributes = yes inherit permissions = yes unix extensions = no [samba_test] path = /mnt/smb browseable = yes writeable = yes read only = no public = yes inherit acls = no admin users = "testad.oci\administrator" create mask = 0744 directory mask = 0755
- Sie müssen es entsprechend Ihrer Umgebung und den Fenstern
-
Um das Cluster einzurichten, bearbeiten Sie die CTDB-Konfigurationsdatei.
sudo nano /etc/ctdb/ctdb.conf
Kopieren Sie die folgenden Parameter, und fügen Sie sie ein.
CTDB_NODES=/etc/ctdb/nodes CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses CTDB_RECOVERY_LOCK="/mnt/Samba/ctdb/.ctdb.lock" CTDB_MANAGES_SAMBA=yes CTDB_MANAGES_WINBIND=yes CTDB_SERVICE_SMB=smbd
-
Bearbeiten Sie die Knotenkonfigurationsdatei für die Konfiguration des Clusters.
sudo nano /etc/ctdb/nodes
Fügen Sie die IP-Adressen Ihrer Knoten hinzu.
10.10.1.60 10.10.1.29
-
Bearbeiten Sie die Konfigurationsdatei der öffentlichen CTDB-Adresse (die Floating-IP-Adresse).
Sudo nano /etc/ctdb/public_addresses
Fügen Sie eine variable IP-Adresse hinzu.
10.10.1.254/0 ens3
-
Wir müssen das Skript hinzufügen, um die Floating-IP-Adresse auf OCI-Ebene zu verwalten und sie im Falle eines Failovers automatisch zu migrieren.
Sudo nano /etc/ctdb/functions
Fügen Sie den folgenden Code nach dem Abschnitt add_ip_to_iface () hinzu.
Hinweis: Ändern Sie die Oracle Cloud-ID (OCID) und den Hostnamen mit der VNIC-OCID und dem Hostnamen der Knoten.
##### OCI vNIC variables server="`hostname -s`" smb1vnic="ocid1.vnic.oc1.eu-frankfurt-1.YOUR_NODE1_VNIC_OCID" smb2vnic="ocid1.vnic.oc1.eu-frankfurt-1.YOUR_NODE2_VNIC_OCID" vnicip="10.10.1.254" #export LC_ALL=C.UTF-8 #export LANG=C.UTF-8 #touch /tmp/vip.log ##### OCI/IPaddr Integration if [ $server = "smb1" ]; then /usr/bin/oci network vnic assign-private-ip --unassign-if-already-assigned --vnic-id $smb1vnic --ip-address $vnicip 2>/dev/null else /usr/bin/oci network vnic assign-private-ip --unassign-if-already-assigned --vnic-id $smb2vnic --ip-address $vnicip 2>/dev/null fi
-
Verwenden Sie den folgenden Befehl, um Fehler bei der Migration von Floating-IP-Adressen zu beheben, falls dies nicht funktioniert.
sudo journalctl -u ctdb.service
Aufgabe 4: Windows Active Directory integrieren
-
Um den Benutzerzugriff in den Windows Active Directory-Server zu integrieren, müssen wir Kerberos auf beiden Knoten installieren.
sudo apt -y install winbind libpam-winbind libnss-winbind krb5-config samba-dsdb-modules samba-vfs-modules
-
Mit dem folgenden Befehl können Sie Kerberos konfigurieren:
sudo nano /etc/krb5.conf
-
Prüfen Sie die Konfigurationsdatei mit dem folgenden Code.
Hinweis: Denken Sie daran, die in Ihrer Umgebung konfigurierte Windows-Domain/Realm zu verwenden.
[libdefaults] default_realm = TESTAD.OCI # The following krb5.conf variables are only for MIT Kerberos. kdc_timesync = 1 ccache_type = 4 forwardable = true proxiable = true # The following encryption type specification will be used by MIT Kerberos. # if uncommented. In general, the defaults in the MIT Kerberos code are # correct and overriding these specifications only serves to disable new # encryption types as they are added, creating interoperability problems. # The only time when you might need to uncomment these lines and change # the enctypes is if you have local software that will break on ticket # caches containing ticket encryption types it doesn't know about (such as # old versions of Sun Java). # default_tgs_enctypes = des3-hmac-sha1 # default_tkt_enctypes = des3-hmac-sha1 # permitted_enctypes = des3-hmac-sha1 # The following libdefaults parameters are only for Heimdal Kerberos. fcc-mit-ticketflags = true [realms] TESTAD.OCI = { kdc = ad.testad.oci admin_server = ad.testad.oci
-
Der letzte Schritt besteht darin, beide Hosts mit dem folgenden Befehl mit der Windows-Domain zu verbinden.
Sudo net ads join -U Administrator -S testad.oci
Versuchen Sie nun, den Client mit der Floating-IP-Adresse und den Windows Active Directory-Benutzern (z.B. //10.10.1.254/samba_test
) mit dem Samba-Server zu verbinden, und testen Sie die Geschäftskontinuität, wenn ein Knoten heruntergefahren oder neu gestartet wird.
Der neue Samba-Cluster ist jetzt fertig!
Verwandte Links
Danksagungen
- Autor - Marco Santucci (EMEA Enterprise Cloud Solution Architect)
Weitere Lernressourcen
Lernen Sie andere Übungen auf docs.oracle.com/learn kennen, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube Channel zu. Außerdem können Sie education.oracle.com/learning-explorer besuchen, um Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Deploy an HA Samba Cluster with Windows Active Directory on OCI
F92339-02
February 2024
Copyright © 2024, Oracle and/or its affiliates.