Paralleles Lustre-Dateisystem auf der GCP bereitstellen

1. Übersicht

Willkommen beim Google Codelab zum Ausführen eines Lustre-Parallel-Dateisystemclusters auf der Google Cloud Platform!

d51beef5f729cbe9.png

Daten sind für das Hochleistungs-Computing von zentraler Bedeutung. Der Zugriff auf große Datenmengen mit extrem hoher Geschwindigkeit und niedriger Latenz war schon immer eine der Hauptherausforderungen beim Ausführen von HPC-Arbeitslasten. Diese Anforderung an Hochleistungsspeicher hat sich in der Cloud nicht geändert. Tatsächlich ist die Möglichkeit, große Mengen an Speicherplatz schnell und einfach zu nutzen, von entscheidender Bedeutung.

HPC-Zentren erfüllen diese Anforderung schon lange lokal mithilfe von Technologien wie dem parallelen Lustre-Dateisystem. Lustre ist eine der beliebtesten Open-Source-Hochleistungsspeicherlösungen und wird seit Juni 2005 regelmäßig von mindestens der Hälfte der zehn schnellsten und mehr als 60 der 100 schnellsten Supercomputer der Welt eingesetzt. Lustre kann auf bis zu Hunderte von PB Kapazität skalieren und die maximale Leistung für HPC-Jobs mit Systemen bieten, die einen Durchsatz von TB/s in einem einzelnen Namespace liefern.

Um der Nachfrage nach Speicherplatz gerecht zu werden, verfolgt Google Cloud zwei Ansätze. Als Erstes hat sich die GCP mit DDN zusammengetan, um die unterstützte DDN EXAScaler Lustre-Software der Enterprise-Klasse im GCP Marketplace zur Verfügung zu stellen. Zweitens haben unsere Entwickler bei Google Cloud eine Reihe von Skripts entwickelt und als Open Source zur Verfügung gestellt, um mit Google Cloud Deployment Manager auf einfache Weise einen Lustre-Speichercluster in Google Compute Engine zu konfigurieren und bereitzustellen.

Lustre ist auf der Google Cloud Platform gleichermaßen in der Lage, die maximale Leistung der Infrastruktur zu liefern, auf der es ausgeführt wird. Die Leistung in der GCP ist so gut, dass es 2019 mit unserem Partner DDN den 8. Platz im IO-500-Speichersystem-Benchmark belegte. Damit ist es das bestplatzierte cloudbasierte Dateisystem im IO-500. Heute zeigen wir Ihnen, wie Sie die Open-Source-Deployment Manager-Scripts für Lustre bereitstellen. Wenn Sie an einem Enterprise, gehärtetem Lustre-Erlebnis, mit Lustre-Experten-Unterstützung für Ihren Lustre-Cluster sowie an Funktionen wie einer Verwaltung und Überwachung von GUI oder Lustre-Abstimmungen interessiert sind, empfehlen wir Ihnen, sich über das DDN EXAScaler Marketplace-Angebot zu informieren.

Lerninhalte

  • GCP Deployment Manager verwenden
  • Hier erfahren Sie, wie Sie ein Lustre-Dateisystem auf der GCP konfigurieren und bereitstellen.
  • Informationen zum Konfigurieren von Striping und zum Testen einfacher E/A-Vorgänge für das Lustre-Dateisystem.

Vorbereitung

  • Google Cloud Platform-Konto und Projekt mit Abrechnung
  • Linux-Basis

2. Einrichtung

Umgebung für das selbstbestimmte Lernen einrichten

Projekt erstellen

Wenn Sie noch kein Google-Konto (Gmail oder G Suite) haben, müssen Sie ein Konto erstellen. Melden Sie sich in der Google Cloud Platform Console an ( console.cloud.google.com) und öffnen Sie die Seite Ressourcen verwalten:

359c06e07e6d699f.png

Klicken Sie auf Projekt erstellen.

25c23d651abb837b.png

Geben Sie einen Projektnamen ein. Merken Sie sich die Projekt-ID (im Screenshot oben rot hervorgehoben). Die Projekt-ID muss in allen Google Cloud-Projekten eindeutig sein. Wenn Ihr Projektname nicht eindeutig ist, generiert Google Cloud eine zufällige Projekt-ID auf Basis des Projektnamens.

Als Nächstes müssen Sie in der Developers Console die Abrechnung aktivieren, um Google Cloud-Ressourcen nutzen zu können.

Die Ausführung dieses Codelabs sollte Sie nicht mehr als ein paar Dollar kosten, aber es könnte mehr sein, wenn Sie sich für mehr Ressourcen entscheiden oder wenn Sie sie laufen lassen (siehe Abschnitt „Fazit“ am Ende dieses Dokuments). Den Google Cloud Platform-Preisrechner finden Sie hier.

Neuen Nutzern der Google Cloud Platform steht eine kostenlose Testversion mit einem Guthaben von 300 $ zur Verfügung.

Google Cloud Shell

Sie können Google Cloud zwar per Fernzugriff von Ihrem Laptop aus nutzen, in diesem Codelab verwenden wir jedoch Google Cloud Shell, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.

Google Cloud Shell starten

Klicken Sie in der GCP Console oben rechts in der Symbolleiste auf das Cloud Shell-Symbol:

dbad104cef962719.png

Klicken Sie dann auf Cloud Shell starten:

4e50db320508ac88.png

Die Bereitstellung und Verbindung mit der Umgebung dauert nur einen Moment:

20b0aa80492144d.png

Diese virtuelle Maschine verfügt über sämtliche Entwicklertools, die Sie benötigen. Es bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und wird in Google Cloud ausgeführt. Dadurch wird die Netzwerkleistung erheblich verbessert und die Authentifizierung vereinfacht. Die meisten, wenn nicht alle Aufgaben in diesem Lab können Sie mit einem Webbrowser oder einem Google Chromebook erledigen.

Sobald Sie mit Cloud Shell verbunden sind, sollten Sie sehen, dass Sie bereits authentifiziert sind und dass das Projekt bereits auf Ihre PROJECT_ID eingestellt ist:

$ gcloud auth list

Befehlsausgabe:

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
$ gcloud config list project

Befehlsausgabe:

[core]
project = <PROJECT_ID>

Wenn die Projekt-ID nicht richtig festgelegt ist, können Sie sie mit diesem Befehl festlegen:

$ gcloud config set project <PROJECT_ID>

Befehlsausgabe:

Updated property [core/project].

3. Lustre-Bereitstellungskonfiguration vorbereiten und prüfen

Deployment Manager-Skripts aus Lustre herunterladen

Führen Sie in der Cloud Shell-Sitzung den folgenden Befehl aus, um das Git-Repository zu klonen (herunterzuladen), das die Deployment Manager-Dateien für Lustre für die Google Cloud-Plattform enthält:

git clone https://github.com/GoogleCloudPlatform/deploymentmanager-samples.git

Wechseln Sie mit dem folgenden Befehl zum Verzeichnis mit der Lustre-Bereitstellungskonfiguration:

cd deploymentmanager-samples/community/lustre/

Lustre-Bereitstellungs-YAML konfigurieren

Deployment Manager verwendet eine YAML-Datei, um die Bereitstellungskonfiguration anzugeben. Diese YAML-Datei enthält Details zur Bereitstellungskonfiguration, z. B. die zu implementierende Lustre-Version und die zu implementierenden Maschineninstanzentypen. Die Datei ist standardmäßig so konfiguriert, dass sie in einem neuen Projekt ohne Kontingenterhöhungen bereitgestellt wird. Sie können jedoch den Maschinentyp oder die Kapazität für dieses Codelab ändern. Dieses Codelab wurde für diese Standardeinstellungen geschrieben. Wenn Sie Änderungen vornehmen, müssen Sie diese Änderungen in diesem Codelab übernehmen, um Fehler zu vermeiden. In der Produktion empfehlen wir je nach Speicherkapazität und -typ mindestens eine Instanz mit 32 vCPUs für den MDS-Knoten und mindestens eine Instanz mit 8 oder 16 vCPUs für die OSS-Knoten.

Öffnen Sie die YAML-Konfigurationsdatei für die Bereitstellungskonfiguration Lustre-cluster.yaml, um die YAML-Datei in der Cloud Shell-Sitzung zu überprüfen oder zu bearbeiten. Sie können den Inhalt der Datei entweder mit Ihrem bevorzugten Befehlszeileneditor (z. B. vi, nano oder emacs) oder mit dem Code-Editor der Cloud Console aufrufen:

11efd5af658f1842.png

Der Inhalt der Datei sieht so aus:

# [START cluster_yaml]
imports:
- path: lustre.jinja

resources:
- name: lustre
  type: lustre.jinja
  properties:
    ## Cluster Configuration
    cluster_name            : lustre
    zone                    : us-central1-f
    cidr                    : 10.20.0.0/16
    external_ips            : True
    ### Use these fields to deploy Lustre in an existing VPC, Subnet, and/or Shared VPC
    #vpc_net                 : < VPC Network Name >
    #vpc_subnet              : < VPC Subnet Name >
    #shared_vpc_host_proj    : < Shared VPC Host Project name >

    ## Filesystem Configuration
    fs_name                 : lustre
    ### Review https://downloads.whamcloud.com/public/ to determine version naming
    lustre_version          : latest-release
    e2fs_version            : latest

    ## Lustre MDS/MGS Node Configuration
    #mds_node_count          : 1
    mds_ip_address          : 10.20.0.2
    mds_machine_type        : n1-standard-8
    ### MDS/MGS Boot disk
    mds_boot_disk_type      : pd-standard
    mds_boot_disk_size_gb   : 10
    ### Lustre MetaData Target disk
    mdt_disk_type           : pd-ssd
    mdt_disk_size_gb        : 1000

    ## Lustre OSS Configuration
    oss_node_count          : 4
    oss_ip_range_start      : 10.20.0.5
    oss_machine_type        : n1-standard-4
    ### OSS Boot disk
    oss_boot_disk_type      : pd-standard
    oss_boot_disk_size_gb   : 10
    ### Lustre Object Storage Target disk
    ost_disk_type           : pd-standard
    ost_disk_size_gb        : 5000
#  [END cluster_yaml]

Diese YAML-Datei enthält mehrere Felder. Die Felder unten mit einem Sternchen (*) sind Pflichtfelder. Zu diesen Feldern gehören:

Clusterkonfiguration

  • cluster_name*: Name des Lustre-Clusters, wird allen bereitgestellten Ressourcen vorangestellt
  • zone*: Zone, in der der Cluster bereitgestellt werden soll
  • cidr* – IP-Bereich im CIDR-Format
  • External_ips* – Wahr/Falsch, Lustre-Knoten haben externe IP-Adressen. Wenn „false“, wird ein Cloud NAT-Gateway als NAT-Gateway eingerichtet
  • vpc_net: Definieren Sie dieses Feld und das Feld „vpc_subnet“, um den Lustre-Cluster in einem vorhandenen VPC bereitzustellen.
  • vpc_subnet – Vorhandenes VPC-Subnetz zum Bereitstellen des Lustre-Clusters
  • Shared_vpc_host_proj – Definieren Sie dieses Feld sowie die Felder "vpc_net" und "vpc_subnet", um den Cluster in einer freigegebenen VPC bereitzustellen.

Dateisystemkonfiguration

  • fs_name – Name des Lustre-Dateisystems
  • lustre_version: Zu implementierende Lustre-Version. Verwenden Sie „latest-release“, um den neuesten Branch von https://downloads.whamcloud.com/public/lustre/ zu implementieren, oder „lustre-X.X.X“, um andere Versionen zu implementieren.
  • e2fs_version – bereitzustellende Version von E2fsprogs. Verwenden Sie "latest", um den aktuellen Zweig von https://downloads.whamcloud.com/public/e2fsprogs/ oder X.XX.X.wcX bereitzustellen, um andere Versionen bereitzustellen.

MDS/MGS-Konfiguration

  • mds_ip_address - Interne IP-Adresse, die für den Budgetmanager/MGS-Knoten angegeben werden soll.
  • mds_machine_type: Maschinentyp für MDS-/MGS-Knoten (siehe https://cloud.google.com/compute/docs/machine-types)
  • mds_boot_disk_type: Laufwerktyp für das MDS-/MGS-Bootlaufwerk (pd-standard, pd-ssd)
  • mds_boot_disk_size_gb – Größe des MDS-Bootlaufwerks in GB
  • mdt_disk_type*: Laufwerkstyp, der für das MDT-Laufwerk (Metadatenziel) verwendet werden soll (pd-standard, pd-ssd, local-ssd)
  • mdt_disk_size_gb*: Größe des MDT-Laufwerks in GB

OSS-Konfiguration

  • oss_node_count*: Anzahl der zu erstellenden Objektspeicherserver-Knoten (Object Storage Server, OSS)
  • oss_ip_range_start – Start des IP-Bereichs für die OSS-Knoten. Wenn nicht angegeben, automatische IP-Zuweisung verwenden
  • oss_machine_type – Maschinentyp für OSS-Knoten
  • oss_boot_disk_type – Laufwerkstyp, der für das OSS-Bootlaufwerk verwendet werden soll (pd-standard, pd-ssd)
  • oss_boot_disk_size_gb – Größe des MDS-Bootlaufwerks in GB
  • ost_disk_type* – Laufwerktyp für das OST-Laufwerk (Object Storage Target, Objektspeicherziel) (pd-standard, pd-ssd, local-ssd)
  • ost_disk_size_gb* – Größe des OST-Laufwerks in GB

4. Konfiguration bereitstellen und prüfen

Konfiguration bereitstellen

Führen Sie in der Cloud Shell-Sitzung im Ordner Lustre-gcp den folgenden Befehl aus:

gcloud deployment-manager deployments create lustre --config lustre.yaml

Mit diesem Befehl wird ein Deployment mit dem Namen Lustre erstellt. Der Vorgang kann 10 bis 20 Minuten dauern. Wir bitten Sie daher um etwas Geduld.

Nach Abschluss der Bereitstellung sehen Sie eine Ausgabe ähnlich der folgenden:

Create operation operation-1572410719018-5961966591cad-e25384f6-d4c905f8 completed successfully.
NAME                                TYPE                   STATE      ERRORS  INTENT
lustre-all-internal-firewall-rule  compute.v1.firewall    COMPLETED  []
lustre-lustre-network              compute.v1.network     COMPLETED  []
lustre-lustre-subnet               compute.v1.subnetwork  COMPLETED  []
lustre-mds1                        compute.v1.instance    COMPLETED  []
lustre-oss1                        compute.v1.instance    COMPLETED  []
lustre-oss2                        compute.v1.instance    COMPLETED  []
lustre-oss3                        compute.v1.instance    COMPLETED  []
lustre-oss4                        compute.v1.instance    COMPLETED  []
lustre-ssh-firewall-rule           compute.v1.firewall    COMPLETED  []

Deployment prüfen

5f2a0557d3f2476f.png

So rufen Sie die Bereitstellung in der Google Cloud Platform Console auf:

  • Öffnen Sie in der Cloud Console das Dreistrich-Menü Produkte und Dienste oben links.
  • Klicken Sie auf Deployment Manager.
  • Klicken Sie auf Lustre, um die Details der Bereitstellung aufzurufen.
  • Klicken Sie auf Übersicht – Lustre. Im Bereich Bereitstellungseigenschaften wird die gesamte Bereitstellungskonfiguration angezeigt.
  • Klicken Sie im Attribut Konfiguration auf Ansicht. Im Bereich Config (Konfiguration) wird der Inhalt der zuvor geänderten YAML-Datei für die Bereitstellungskonfiguration angezeigt. Überprüfen Sie, ob der Inhalt korrekt ist, bevor Sie fortfahren. Wenn Sie eine Bereitstellungskonfiguration ändern möchten, löschen Sie die Bereitstellung einfach gemäß den Schritten unter „Bereitstellung bereinigen“ und starten Sie die Bereitstellung gemäß den Schritten unter „YAML-Datei für Lustre-Bereitstellung konfigurieren“ neu.
  • Optional: Klicken Sie im Abschnitt Lustre-Cluster auf die einzelnen Ressourcen, die mit der Vorlage „Lustre.jinja“ erstellt wurden, und sehen Sie sich die Details an.

Nachdem die Konfiguration der Bereitstellung überprüft wurde, prüfen wir, ob die Instanzen des Clusters gestartet wurden. Klicken Sie in der Cloud Platform Console im Menü Produkte und Dienste auf Compute Engine > VM-Instanzen.

aec8498e04a3c334.png

Sehen Sie sich auf der Seite VM-Instanzen die fünf virtuellen Maschineninstanzen an, die vom Bereitstellungsmanager erstellt wurden. Dazu gehören lustre-mds1, lustre-oss1, lustre-oss2, lustre-oss3 und lustre-oss4.

5. Auf Lustre-Cluster zugreifen

Installation im Blick behalten

Klicken Sie auf der Seite „VM-Instanzen“ auf lustre-mds1, um die Seite „Instanzdetails“ zu öffnen.

ba0bea7acdbb9527.png

Klicken Sie auf Serieller Port 1 (Konsole), um die Ausgabeseite der seriellen Konsole zu öffnen. Mit dieser seriellen Ausgabe überwachen wir den Installationsprozess der Budgetmanager-Instanz und warten, bis das Startskript abgeschlossen ist. Klicken Sie oben auf der Seite auf die Schaltfläche „Aktualisieren“, um die serielle Ausgabe zu aktualisieren. Der Knoten wird einmal neu gestartet, um den Lustre-Kernel zu starten, und es werden Meldungen wie die folgenden angezeigt:

Startup finished in 838ms (kernel) + 6.964s (initrd) + 49.302s (userspace) = 57.105s.
Lustre: lustre-MDT0000: Connection restored to 374e2d80-0b31-0cd7-b2bf-de35b8119534 (at 0@lo)

Das bedeutet, dass Lustre im Lustre-Cluster installiert ist und das Dateisystem einsatzbereit ist.

Auf Lustre-Cluster zugreifen

Klicken Sie in der Cloud Shell-Sitzung in der Google Cloud Console neben der Instanz lustre-mds1 auf die Schaltfläche SSH. Alternativ können Sie den folgenden Befehl in Cloud Shell ausführen und dabei <ZONE> durch die Zone des Knotens „lustre-mds1“ ersetzen:

gcloud compute ssh lustre-mds1 --zone=<ZONE>

Mit diesem Befehl melden Sie sich auf der virtuellen Maschine „lustre-mds1“ an. Dies ist die MTS-Instanz Lustre Metadata Server, die auch als Lustre Management Server (MGS) fungiert. Diese Instanz verarbeitet alle Authentifizierungs- und Metadatenanfragen für das Dateisystem.

Wir stellen das Dateisystem auf unserer Instanz „lustre-mds1“ bereit, damit wir es später testen können. Führen Sie die folgenden Befehle aus:

sudo mkdir /mnt/lustre
sudo mount -t lustre lustre-mds1:/lustre /mnt/lustre
cd /mnt/lustre

Mit diesen drei Befehlen werden drei Dinge ausgeführt. Der erste Befehl erstellt ein lokales Verzeichnis, das wir als Bereitstellungspunkt unter "/mnt/lustre" verwenden. Der zweite Befehl führt den Befehl „mount“ aus, um das Dateisystem vom Typ „lustre“ bereitzustellen, das sich auf dem Server „lustre-mds1“ befindet und dessen Name „lustre“ ist, also „/lustre“. Mit dem Befehl „mount“ wird das Lustre-Dateisystem im lokalen Verzeichnis „/mnt/lustre“ bereitgestellt. Mit dem dritten Befehl wird das Verzeichnis „/mnt/lustre“ in das Verzeichnis „/mnt/lustre“ geändert, in dem Lustre bereitgestellt ist.

Sie haben jetzt das Lustre-Dateisystem unter /mnt/lustre bereitgestellt. Sehen wir uns an, was wir mit diesem Dateisystem tun können.

6. Lustre-Befehlszeilentools

Wenn Sie mit Lustre und seinen Tools nicht vertraut sind, werden hier einige wichtige Befehle erläutert.

Das untergeordnete Tool von Lustre für die Clusterverwaltung ist „lctl“. Mit lctl können wir den Lustre-Cluster konfigurieren und verwalten sowie die Dienste des Lustre-Clusters aufrufen. Um die Dienste und Instanzen in unserem neuen Lustre-Cluster anzuzeigen, führen Sie Folgendes aus:

sudo lctl dl

Je nachdem, welche Änderungen Sie an der Lustre-YAML-Konfigurationsdatei vorgenommen haben, wird eine Ausgabe ähnlich der folgenden angezeigt:

  0 UP osd-ldiskfs lustre-MDT0000-osd lustre-MDT0000-osd_UUID 11
  1 UP mgs MGS MGS 12
  2 UP mgc MGC10.128.15.2@tcp 374e2d80-0b31-0cd7-b2bf-de35b8119534 4
  3 UP mds MDS MDS_uuid 2
  4 UP lod lustre-MDT0000-mdtlov lustre-MDT0000-mdtlov_UUID 3
  5 UP mdt lustre-MDT0000 lustre-MDT0000_UUID 12
  6 UP mdd lustre-MDD0000 lustre-MDD0000_UUID 3
  7 UP qmt lustre-QMT0000 lustre-QMT0000_UUID 3
  8 UP lwp lustre-MDT0000-lwp-MDT0000 lustre-MDT0000-lwp-MDT0000_UUID 4
  9 UP osp lustre-OST0000-osc-MDT0000 lustre-MDT0000-mdtlov_UUID 4
 10 UP osp lustre-OST0002-osc-MDT0000 lustre-MDT0000-mdtlov_UUID 4
 11 UP osp lustre-OST0001-osc-MDT0000 lustre-MDT0000-mdtlov_UUID 4
 12 UP osp lustre-OST0003-osc-MDT0000 lustre-MDT0000-mdtlov_UUID 4

Wir sehen unseren Lustre Management Server (MGS) als Element 1, unseren Lustre Metadata Server (MDS) als Element 3, unser Lustre Metadata Target (MDT) als Element 5 und unsere vier Lustre Object Storage Server (OSS) als Elemente 8 bis 12. Weitere Informationen zu den anderen Diensten finden Sie im Lustre-Handbuch.

Das Dateisystemkonfigurationstool von Lustre ist „lfs“. Mit lfs können wir das Striping von Dateien auf unseren Lustre Object Storage Servers (OSS) und ihren jeweiligen Object Storage Targets (OST) verwalten sowie gängige Dateisystemvorgänge wie „find“, „df“ und die Kontingentverwaltung ausführen.

Mit Striping können wir konfigurieren, wie eine Datei in unserem Lustre-Cluster verteilt wird, um die bestmögliche Leistung zu erzielen. Obwohl das Striping einer großen Datei über möglichst viele OSSs hinweg bei Parallelisierung der E/A häufig die beste Leistung liefert, kann das Striping einer kleinen Datei zu einer schlechteren Leistung führen, als wenn diese Datei nur in eine einzige Instanz geschrieben würde.

Testen wir das anhand von zwei Verzeichnissen: eines mit einer Stripe-Anzahl von einem Objektspeicher und eines mit einer Stripe-Anzahl von „-1“, was bedeutet, dass die in diesem Verzeichnis geschriebenen Dateien auf so viele Objektspeicher wie möglich verteilt werden sollen. Verzeichnisse können Striping-Konfigurationen enthalten, die von darin erstellten Dateien übernommen werden. Unterverzeichnisse und einzelne Dateien in diesem Verzeichnis können dann jedoch nach Bedarf so konfiguriert werden, dass sie anders gestriped werden. Um diese beiden Verzeichnisse zu erstellen, führen Sie die folgenden Befehle im Verzeichnis „/mnt/lustre“ aus:

sudo mkdir stripe_one
sudo mkdir stripe_all
sudo lfs setstripe -c 1 stripe_one/
sudo lfs setstripe -c -1 stripe_all/

Mit lfs getstripe können Sie die Stripe-Einstellungen einer Datei oder eines Verzeichnisses aufrufen:

sudo lfs getstripe stripe_all/

Die Ausgabe zeigt, dass die Anzahl der Streifen auf -1 festgelegt ist:

stripe_all/
stripe_count:  -1 stripe_size:   1048576 pattern:    raid0 stripe_offset: -1

Jetzt sind wir bereit, die Leistungsverbesserungen zu testen, die durch das Schreiben einer großen Datei, die über mehrere OSSs verteilt ist, möglich sind.

7. Lustre-E/A testen

Wir führen zwei einfache Tests des Lustre-IO durch, um die möglichen Leistungsvorteile und Skalierungsfunktionen des Lustre-Dateisystems zu demonstrieren. Zunächst führen wir mit dem Dienstprogramm "dd" einen einfachen Test durch, um eine 5-GB-Datei in das Verzeichnis "stripe_one" zu schreiben. Führen Sie den folgenden Befehl aus:

sudo dd if=/dev/zero of=stripe_one/test bs=1M count=5000

Der Vorgang zum Schreiben von 5 GB Daten in das Dateisystem dauert durchschnittlich etwa 27 Sekunden, wobei in eine einzelne persistente Festplatte auf einem einzelnen Objektspeicherserver (OSS) geschrieben wird.

Wenn wir das Striping über mehrere OSSs und damit über mehrere PDs hinweg testen möchten, müssen wir einfach das Ausgabeverzeichnis ändern, in das wir schreiben. Führen Sie folgenden Befehl aus:

sudo dd if=/dev/zero of=stripe_all/test bs=1M count=5000

Beachten Sie, dass wir „of=stripe_one/test“ in „of=stripe_all/test“ geändert haben. So können wir die Schreibvorgänge über alle Object Storage-Server verteilen und sie in durchschnittlich 5,5 Sekunden abschließen, also etwa viermal so schnell wie mit vier OSSs.

Diese Leistung nimmt weiter zu, wenn Sie Objektspeicherserver hinzufügen. Sie können OSSs online mit dem Dateisystem hinzufügen und mit dem Datenstriping beginnen, um die Kapazität und Leistung online zu erhöhen. Mit Lustre auf der Google Cloud Platform sind die Möglichkeiten endlos. Wir sind gespannt, was Sie entwickeln können und welche Probleme Sie lösen können.

8. Fazit

Herzlichen Glückwunsch, Sie haben einen Lustre-Cluster in der Google Cloud Platform erstellt. Sie können diese Skripts als Ausgangspunkt verwenden, um Ihren eigenen Lustre-Cluster zu erstellen und ihn in Ihren cloudbasierten Computing-Cluster zu integrieren.

Bereitstellung bereinigen

Melden Sie sich vom Lustre-Knoten ab:

exit

Sie können die Bereitstellung einfach bereinigen, nachdem wir fertig sind. Führen Sie dazu den folgenden Befehl in Google Cloud Shell aus, nachdem Sie sich vom Lustre-Cluster abgemeldet haben:

gcloud deployment-manager deployments delete lustre

Geben Sie bei entsprechender Aufforderung Y ein, um fortzufahren. Dieser Vorgang kann einige Zeit dauern.

Projekt löschen

Zur Bereinigung löschen wir unser Projekt einfach.

  • Wählen Sie im Navigationsmenü „IAM und Verwaltung“ aus.
  • Klicken Sie dann im Untermenü auf „Einstellungen“.
  • Klicken Sie auf das Papierkorbsymbol mit dem Text „Projekt löschen“.
  • Folgen Sie der Anleitung

Behandelte Themen

  • GCP Deployment Manager-Dienst verwenden
  • Hier erfahren Sie, wie Sie ein Lustre-Dateisystem auf der GCP konfigurieren und bereitstellen.
  • Informationen zum Konfigurieren von Striping und zum Testen einfacher E/A-Vorgänge für das Lustre-Dateisystem.

Support kontaktieren

Erstellen Sie mit den Deployment Manager-Skripts Lustre etwas Cooles? Hast du Fragen? Chatten Sie mit uns im Google Cloud Lustre-Forum. Wenn du Funktionen anfragen, Feedback geben oder Fehler melden möchtest, verwende bitte dieses Formular. Du kannst auch den Code ändern und einen Pull-Request senden. Möchten Sie mit einem Google Cloud-Experten sprechen? Kontaktieren Sie das Google Cloud-Team noch heute über die Google Cloud-Website für Hochleistungs-Computing.

Weitere Informationen

Feedback

Bitte senden Sie uns Ihr Feedback zu diesem Codelab über diesen Link. Das Feedback dauert weniger als 5 Minuten. Vielen Dank!