Zum Inhalt springenZur Seitennavigation springen: vorherige Seite [Zugriffstaste p]/nächste Seite [Zugriffstaste n]
Bezieht sich auf SUSE Enterprise Storage 5

13 Exportieren eines CephFS mittels Samba

In diesem Abschnitt wird beschrieben, wie ein CephFS mittels Samba/CIFS-Freigabe exportiert wird. Samba-Freigaben können bei Windows* Clients verwendet werden.

Warnung
Warnung: Technology Preview

Ab SUSE Enterprise Storage 5 wird der Export von Samba-Freigaben als Technology Preview betrachtet und nicht unterstützt.

13.1 Installationsbeispiel

Das Exportieren eines CephFS ist ein Technology Preview und wird nicht unterstützt. Zum Exportieren einer Samba-Freigabe müssen Sie Samba manuell in einem Cluster Node installieren und konfigurieren. Die Failover-Funktionalität kann mit CTDB und mit der SUSE Linux Enterprise High Availability Extension zur Verfügung gestellt werden.

  1. Vergewissern Sie sich, dass sich in Ihrem Cluster bereits ein funktionierendes CephFS befindet. Weitere Informationen finden Sie in Kapitel 11, Installation des CephFS.

  2. Erstellen Sie einen für Samba Gateway spezifischen Schlüsselbund auf dem Salt Master und kopieren Sie ihn in den Samba Gateway Node:

    root@master # ceph auth get-or-create client.samba.gw mon 'allow r' \
        osd 'allow *' mds 'allow *' -o ceph.client.samba.gw.keyring
    root@master # scp ceph.client.samba.gw.keyring SAMBA_NODE:/etc/ceph/

    Ersetzen Sie SAMBA_NODE durch den Namen des Samba Gateway Node.

  3. Die folgenden Schritte werden im Samba Gateway Node ausgeführt. Installieren Sie den Samba Daemon im Samba Gateway Node:

    root # zypper in samba samba-ceph
  4. Bearbeiten Sie die Datei /etc/samba/smb.conf und fügen Sie den folgenden Abschnitt hinzu:

    [SHARE_NAME]
            path = /
            vfs objects = ceph
            ceph:config_file = /etc/ceph/ceph.conf
            ceph: user_id = samba.gw
            read only = no
  5. Starten und aktivieren Sie den Samba Daemon:

    root # systemctl start smb.service
    root # systemctl enable smb.service
    root # systemctl start nmb.service
    root # systemctl enable nmb.service

13.2 Hochverfügbarkeitskonfiguration

In diesem Abschnitt finden Sie ein Beispiel, wie eine Hochverfügbarkeitskonfiguration aus Samba-Servern mit zwei Nodes eingerichtet wird. Für die Einrichtung ist die SUSE Linux Enterprise High Availability Extension erforderlich. Die beiden Nodes werden earth (192.168.1.1) und mars (192.168.1.2) genannt.

Detaillierte Informationen zu SUSE Linux Enterprise High Availability Extension finden Sie unter https://www.suse.com/documentation/sle-ha-12/.

Außerdem können Clients über zwei virtuelle IP-Adressen nach dem Floating-IP-Prinzip eine Verbindung mit dem Service herstellen, und zwar unabhängig davon, auf welchem physischen Node er ausgeführt wird. 192.168.1.10 wird für die Cluster-Verwaltung mit Hawk2 verwendet und 192.168.2.1 exklusiv für die CIFS-Exporte. Dies erleichtert später die Anwendung von Sicherheitsbeschränkungen.

Das folgende Verfahren beschreibt das Installationsbeispiel. Weitere Informationen finden Sie unter https://www.suse.com/documentation/sle-ha-12/install-quick/data/install-quick.html.

  1. Erstellen Sie einen für das Samba Gateway spezifischen Schlüsselbund auf dem Salt Master und kopieren Sie ihn in beide Nodes:

    root@master # ceph auth get-or-create client.samba.gw mon 'allow r' \
        osd 'allow *' mds 'allow *' -o ceph.client.samba.gw.keyring
    root@master # scp ceph.client.samba.gw.keyring earth:/etc/ceph/
    root@master # scp ceph.client.samba.gw.keyring mars:/etc/ceph/
  2. Bereiten Sie earth und mars darauf vor, den Samba Service zu hosten:

    1. Vergewissern Sie sich, dass die folgenden Pakete installiert sind, bevor Sie fortfahren: ctdb, tdb-tools und samba (für smb- und nmb-Ressourcen erforderlich).

      root # zypper in ctdb tdb-tools samba samba-ceph
    2. Vergewissern Sie sich, dass die Services ctdb, smb und nmb gestoppt und deaktiviert wurden:

      root # systemctl disable ctdb
      root # systemctl disable smb
      root # systemctl disable nmb
      root # systemctl stop smb
      root # systemctl stop nmb
    3. Öffnen Sie Port 4379 Ihrer Firewall in allen Nodes. Dies ist erforderlich, damit CTDB mit anderen Cluster Nodes kommunizieren kann.

    4. Erstellen Sie ein Verzeichnis für die CTDB-Sperre auf dem freigegebenen Dateisystem:

      root # mkdir -p /srv/samba/
  3. Erstellen Sie in earth die Konfigurationsdateien für Samba. Diese werden später automatisch mit mars synchronisiert.

    1. Fügen Sie in /etc/ctdb/nodes alle Nodes ein, die alle privaten IP-Adressen der einzelnen Nodes im Cluster enthalten:

      192.168.1.1
      192.168.1.2
    2. Konfigurieren Sie Samba. Fügen Sie die folgenden Zeilen im Abschnitt [global] von /etc/samba/smb.conf hinzu. Wählen Sie den gewünschten Hostnamen anstelle von "CTDB-SERVER" (alle Nodes im Cluster werden sinnvollerweise als ein großer Node mit diesem Namen angezeigt):

      [global]
          netbios name = CTDB-SERVER
          clustering = yes
          idmap config * : backend = tdb2
          passdb backend = tdbsam
          ctdbd socket = /var/lib/ctdb/ctdb.socket

      Weitere Informationen zu csync2 finden Sie unter https://www.suse.com/documentation/sle-ha-12/singlehtml/book_sleha/book_sleha.html#pro.ha.installation.setup.csync2.start.

  4. Installieren Sie den SUSE Linux Enterprise High Availability Cluster und führen Sie ein Bootstrap durch.

    1. Registrieren Sie die SUSE Linux Enterprise High Availability Extension in earth und mars.

      root@earth # SUSEConnect -r ACTIVATION_CODE -e E_MAIL
      root@mars # SUSEConnect -r ACTIVATION_CODE -e E_MAIL
    2. Installieren Sie ha-cluster-bootstrap in beiden Nodes:

      root@earth # zypper in ha-cluster-bootstrap
      root@mars # zypper in ha-cluster-bootstrap
    3. Initialisieren Sie den Cluster in earth:

      root@earth # ha-cluster-init
    4. Lassen Sie mars dem Cluster beitreten:

      root@mars # ha-cluster-join -c earth
  5. Prüfen Sie den Status des Clusters. Sie sollten zwei Nodes sehen, die im Cluster hinzugefügt wurden:

    root@earth # crm status
    2 nodes configured
    1 resource configured
    
    Online: [ earth mars ]
    
    Full list of resources:
    
     admin-ip       (ocf::heartbeat:IPaddr2):       Started earth
  6. Führen Sie die folgenden Kommandos in earth aus, um die CTDB-Ressource zu konfigurieren:

    root@earth # crm configure
    crm(live)configure# primitive ctdb ocf:heartbeat:CTDB params \
        ctdb_manages_winbind="false" \
        ctdb_manages_samba="false" \
        ctdb_recovery_lock="!/usr/lib64/ctdb/ctdb_mutex_ceph_rados_helper
            ceph client.samba.gw cephfs_metadata ctdb-mutex"
        ctdb_socket="/var/lib/ctdb/ctdb.socket" \
            op monitor interval="10" timeout="20" \
            op start interval="0" timeout="90" \
            op stop interval="0" timeout="100"
    crm(live)configure# primitive nmb systemd:nmb \
        op start timeout="60" interval="0" \
        op stop timeout="60" interval="0" \
        op monitor interval="60" timeout="60"
    crm(live)configure# primitive smb systemd:smb \
        op start timeout="60" interval="0" \
        op stop timeout="60" interval="0" \
        op monitor interval="60" timeout="60"
    crm(live)configure# group g-ctdb ctdb nmb smb
    crm(live)configure# clone cl-ctdb g-ctdb meta interleave="true"
    crm(live)configure# commit

    Die Binärdatei /usr/lib64/ctdb/ctdb_mutex_ceph_rados_helper in der Konfigurationsoption ctdb_recovery_lock enthält die Parameter CLUSTER_NAME CEPHX_USER CEPH_POOL CEPHX_USER in dieser Reihenfolge.

  7. Fügen Sie eine geclusterte IP-Adresse hinzu:

    crm(live)configure# primitive ip ocf:heartbeat:IPaddr2 params ip=192.168.2.1 \
        unique_clone_address="true" \
        op monitor interval="60" \
        meta resource-stickiness="0"
    crm(live)configure# clone cl-ip ip \
        meta interleave="true" clone-node-max="2" globally-unique="true"
    crm(live)configure# colocation col-with-ctdb 0: cl-ip cl-ctdb
    crm(live)configure# order o-with-ctdb 0: cl-ip cl-ctdb
    crm(live)configure# commit

    Wenn unique_clone_address auf true festgelegt ist, fügt der Ressourcenagent IPaddr2 eine Klon-ID zur angegebenen Adresse hinzu, was zu drei verschiedenen IP-Adressen führt. Diese werden normalerweise nicht benötigt, sind jedoch nützlich beim Lastausgleich. Weitere Informationen zu diesem Thema finden Sie unter https://www.suse.com/documentation/sle-ha-12/book_sleha/data/cha_ha_lb.html.

  8. Überprüfen Sie das Ergebnis:

    root@earth # crm status
    Clone Set: base-clone [dlm]
         Started: [ factory-1 ]
         Stopped: [ factory-0 ]
     Clone Set: cl-ctdb [g-ctdb]
         Started: [ factory-1 ]
         Started: [ factory-0 ]
     Clone Set: cl-ip [ip] (unique)
         ip:0       (ocf:heartbeat:IPaddr2):       Started factory-0
         ip:1       (ocf:heartbeat:IPaddr2):       Started factory-1
  9. Testen Sie es an einem Client-Rechner. Führen Sie auf einem Linux Client das folgende Kommando aus, um zu sehen, ob Sie Dateien vom und zum System kopieren können:

    root # smbclient //192.168.2.1/myshare
Diese Seite drucken