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

11 Installation des CephFS

Das Ceph-Dateisystem (CephFS) ist ein POSIX-fähiges Dateisystem, das seine Daten in einem Ceph Storage Cluster speichert. CephFS verwendet dasselbe Cluster-System wie Ceph-Blockgeräte, Ceph-Objektspeicher mit seinen S3 und Swift APIs, oder systemeigene Bindungen (librados).

Zur Verwendung eines CephFS muss ein Ceph Storage Cluster und mindestens ein Ceph Metadata Server ausgeführt werden.

11.1 Unterstützte CephFS-Szenarios und Anleitungen

Mit SUSE Enterprise Storage führt SUSE den offiziellen Support für viele Szenarios ein, in denen die dezentrale Scale-Out-Komponente CephFS verwendet wird. Dieser Eintrag beschreibt klare Grenzen und stellt Anleitungen für die vorgeschlagenen Anwendungsfälle zur Verfügung.

Eine unterstützte CephFS-Bereitstellung muss die folgenden Anforderungen erfüllen:

  • Mindestens einen Metadatenserver. SUSE empfiehlt die Bereitstellung von mehreren Nodes mit der MDS-Rolle. Nur einer davon ist "aktiv", die anderen sind "passiv". Denken Sie daran, alle MDS Nodes im Kommando mount anzugeben, wenn Sie das CephFS von einem Client aus einhängen.

  • CephFS Snapshots sind deaktiviert (Standardeinstellung) und werden in dieser Version nicht unterstützt.

  • Clients basieren auf SUSE Linux Enterprise Server 12 SP2 oder SP3 und verwenden den Kernel-Modultreiber cephfs. Das FUSE-Modul wird nicht unterstützt.

  • CephFS-Quoten werden in SUSE Enterprise Storage nicht unterstützt. Die Unterstützung für Quoten ist nur im FUSE Client implementiert.

  • CephFS unterstützt Änderungen des Datei-Layouts wie unter http://docs.ceph.com/docs/jewel/cephfs/file-layouts/ dokumentiert. Weil das Dateisystem jedoch von einem beliebigen Client aus eingehängt wird, werden neue Daten-Pools möglicherweise nicht zu einem bestehenden CephFS-Dateisystem hinzugefügt (ceph mds add_data_pool). Sie dürfen nur hinzugefügt werden, wenn das Dateisystem ausgehängt ist.

11.2 Ceph Metadata Server

Der Ceph Metadata Server (MDS) speichert Metadaten für das CephFS. Ceph-Blockgeräte und Ceph-Objektspeicher verwenden keinen MDS. MDSs ermöglichen es Benutzern eines POSIX-Dateisystems, einfache Kommandos auszuführen wie ls oder find, ohne dass der Ceph Storage Cluster übermäßig belastet wird.

11.2.1 Hinzufügen eines Metadatenservers

Einen MDS stellen Sie im Zug der ersten Cluster-Bereitstellung bereit. Eine Beschreibung hierzu finden Sie in Abschnitt 4.3, „Cluster-Bereitstellung“. Alternativ können Sie ihn auch zu einem bereits bereitgestellten Cluster hinzufügen wie in Abschnitt 1.1, „Hinzufügen neuer Cluster Nodes“ beschrieben.

Nach der Bereitstellung des MDS müssen Sie den Ceph OSD/MDS-Service in den Firewall-Einstellungen des Servers zulassen, auf dem der MDS bereitgestellt ist: Starten Sie yast, navigieren Sie zuSecurity and Users (Sicherheit und Benutzer) › Firewall › Allowed Services (Zugelassene Services) und wählen Sie im Dropdown-Menü Service to Allow (Zuzulassender Service) die Option Ceph OSD/MDS aus. Wenn im Ceph MDS Node kein umfassender Datenverkehr zugelassen ist, tritt beim Einhängen eines Dateisystems ein Fehler auf, auch wenn andere Operationen ordnungsgemäß funktionieren.

11.2.2 Konfigurieren eines Metadata Server

Sie können das Verhalten des MDS durch Einfügen relevanter Optionen in der ceph.conf-Konfigurationsdatei weiter anpassen.

Größe des MDS Cache
mds cache memory limit

Das Softlimit des Arbeitsspeichers (in Byte), das der MDS für seinen Cache erzwingt. Administratoren sollten dies anstelle der alten Einstellung mds cache size verwenden. Der Standardwert beträgt 1 GB.

mds cache reservation

Die Cache-Reservierung (Arbeitsspeicher oder Inode) für den MDS Cache, die beibehalten werden soll. Wenn der MDS seinen reservierten Cache nahezu auslastet, stellt er den Client-Zustand vorübergehend wieder her, bis sich die Größe des Cache so weit verringert hat, dass die Reservierung wiederhergestellt wird. Der Standardwert ist 0,05.

Eine detaillierte Liste der MDS-Konfigurationsoptionen finden Sie unter http://docs.ceph.com/docs/master/cephfs/mds-config-ref/.

Eine detaillierte Liste der Konfigurationsoptionen der MDS-Journalerstellung finden Sie unter http://docs.ceph.com/docs/master/cephfs/journaler/.

11.3 CephFS

Wenn Ihr Ceph Storage Cluster mit mindestens einem Ceph Metadata Server ordnungsgemäß funktioniert, können Sie Ihr Ceph-Dateisystem erstellen und einhängen. Stellen Sie sicher, dass Ihr Client mit dem Netzwerk verbunden ist und über einen ordnungsgemäßen Schlüsselbund zur Authentifizierung verfügt.

11.3.1 Erstellen eines CephFS

Ein CephFS benötigt mindestens zwei RADOS-Pools: einen für Daten und einen für Metadaten. Beim Konfigurieren dieser Pools sollten Sie Folgendes in Erwägung ziehen:

  • Eine höhere Reproduktionsstufe für den Metadaten-Pool, da jeglicher Datenverlust in diesem Pool dazu führen kann, dass auf das gesamte Dateisystem nicht mehr zugegriffen werden kann.

  • Ein Speicher mit geringerer Latenz für den Metadaten-Pool wie SSDs, weil dadurch die beobachtete Latenz der Dateisystemoperationen an Clients verbessert wird.

Bei der Zuweisung eines role-mds in Datei policy.cfg werden die erforderlichen Pools automatisch erstellt. Sie können vor dem Einrichten des Metadata Server die Pools cephfs_data und cephfs_metadata manuell erstellen, um die Leistung manuell anzupassen. Diese Pools werden von DeepSea nicht erstellt, wenn sie bereits vorhanden sind.

Weitere Informationen zur Verwaltung von Pools finden Sie im Kapitel 7, Verwalten von Speicher-Pools.

Führen Sie die folgenden Kommandos aus, um die beiden erforderlichen Pools (z. B. "cephfs_data" und "cephfs_metadata") mit Standardeinstellungen für das CephFS zu erstellen:

root # ceph osd pool create cephfs_data pg_num
root # ceph osd pool create cephfs_metadata pg_num

Es ist möglich, EC-Pools anstelle von reproduzierten Pools zu verwenden. Wir empfehlen, EC-Pools nur für geringe Leistungsanforderungen und gelegentlichen zufälligen Zugriff zu verwenden, beispielsweise für Cold Storage, Sicherungen oder Archivierung. Für die Aktivierung von CephFS in EC-Pools ist BlueStore erforderlich und die Option allow_ec_overwrite muss für den Pool festgelegt sein. Diese Option kann durch Ausführung des Kommandos ceph osd pool set ec_pool allow_ec_overwrites true festgelegt werden.

Ein Erasure Coding (EC) vergrößert erheblich den Overhead für Dateisystemoperationen, insbesondere kleine Updates. Dieser Overhead entsteht zwangsläufig, wenn Erasure Coding als Fehlertoleranzmechanismus verwendet wird. Diese Einbuße ist der Ausgleich für einen erheblich reduzierten Speicherplatz-Overhead.

Wenn die Pools erstellt sind, können Sie das Dateisystem mit dem Kommando ceph fs new aktivieren:

root # ceph fs new fs_name metadata_pool_name data_pool_name

Beispiel:

root # ceph fs new cephfs cephfs_metadata cephfs_data

Durch Auflisten aller verfügbarer CephFSs prüfen Sie, ob das Dateisystem erstellt wurde:

root # ceph fs ls
 name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]

Wenn das Dateisystem erstellt wurde, kann der MDS den Zustand aktiv annehmen. Beispielsweise in einem einzelnen MDS-System:

root # ceph mds stat
e5: 1/1/1 up
Tipp
Tipp: Weitere Themen

Weitere Informationen zu spezifischen Aufgaben (beispielsweise Einhängen, Aushängen und erweiterte CephFS-Einrichtung) finden Sie im Kapitel 13, Cluster-Dateisystem.

11.3.2 Größe des MDS Clusters

Eine CephFS-Instanz kann von mehreren aktiven MDS Daemons bedient werden. Alle aktiven MDS Daemons, die einer CephFS-Instanz zugewiesen sind, teilen den Verzeichnisbaum des Dateisystems unter sich auf. Dadurch wird die Last gleichmäßig auf die gleichzeitig ausgeführten Clients verteilt. Zum Hinzufügen eines aktiven MDS Daemon zu einer CephFS-Instanz ist eine zusätzliche Standby-Instanz erforderlich. Starten Sie entweder einen zusätzlichen Daemon oder verwenden Sie eine vorhandene Standby-Instanz.

Durch das folgende Kommando wird die aktuelle Anzahl der aktiven und passiven MDS Daemons angezeigt.

root # ceph mds stat

Durch die folgenden Kommandos wird die Anzahl der aktiven MDSs auf zwei pro Dateisysteminstanz festgelegt.

root # ceph fs set fs_name max_mds 2

Sie müssen zwei Schritte ausführen, um den MDS Cluster vor einem Update zu verkleinern. Legen Sie zunächst max_mds fest, damit nur noch eine Instanz vorhanden ist:

root # ceph fs set fs_name max_mds 1

Deaktivieren Sie danach explizit die anderen MDS Daemons:

root # ceph mds deactivate fs_name:rank

Dabei bezeichnet rank die Nummer eines aktiven MDS Daemons einer Dateisysteminstanz im Bereich von 0 bis max_mds-1. Weitere Informationen hierzu finden Sie unter http://docs.ceph.com/docs/luminous/cephfs/multimds/.

11.3.3 MDS Cluster und Updates

Bei Ceph Updates ändern sich möglicherweise die Feature-Einstellungen (normalerweise durch Hinzufügen neuer Features). Nicht kompatible Daemons (wie die älteren Versionen) funktionieren nicht bei einem nicht kompatiblen Feature-Satz und starten nicht. Dies bedeutet, dass durch das Update und den Neustart eines Daemons alle anderen noch nicht aktualisierten Daemons möglicherweise anhalten und nicht mehr starten. Aus diesem Grund empfehlen wir, vor einem Update von Ceph den aktiven MDS Cluster auf die Größe einer Instanz zu verkleinern und alle Standby Daemons anzuhalten. Die manuellen Schritte für diesen Update-Vorgang sind wie folgt:

  1. Aktualisieren Sie die auf Ceph bezogenen Pakete mithilfe von zypper.

  2. Verkleinern Sie den MDS Cluster wie oben beschrieben auf eine Instanz und halten Sie alle MDS Standby Daemons an. Verwenden Sie dazu deren systemd-Einheiten in allen anderen Nodes:

    root # systemctl stop ceph-mds\*.service ceph-mds.target
  3. Starten Sie erst dann den einzig verbleibenden MDS Daemon und verursachen Sie seinen Neustart anhand der aktualisierten Binärdatei.

    root # systemctl restart ceph-mds\*.service ceph-mds.target
  4. Starten Sie alle anderen MDS Daemons neu und legen Sie die gewünschte Einstellung max_mds neu fest.

    root # systemctl start ceph-mds.target

Wenn Sie DeepSea verwenden, führt es diesen Vorgang aus, falls das ceph -Paket in Phase 0 und 4 aktualisiert wurde. Es ist möglich, diesen Vorgang auszuführen, während bei Clients die CephFS-Instanz eingehängt ist und E/A weiterhin ausgeführt wird. Beachten Sie jedoch, dass es beim Neustart des aktiven MDS eine kurze E/A-Pause gibt. Die Clients werden automatisch wiederhergestellt.

Es hat sich bewährt, vor dem Aktualisieren eines MDS Clusters die E/A-Last so weit wie möglich zu reduzieren. Ein inaktiver MDS Cluster durchläuft diesen Update-Vorgang schneller. Umgekehrt ist es auf einem sehr ausgelasteten Cluster mit mehreren MDS Daemons sehr wichtig, die Last vorher zu reduzieren, um zu verhindern, dass ein einzelner MDS Daemon durch fortlaufende E/A-Vorgänge überlastet wird.

Diese Seite drucken