Bereitstellung von PVCs im Dateispeicher mit Lustre Service
Erfahren Sie, wie Sie Persistent Volume Claims für Cluster bereitstellen, die Sie mit Kubernetes Engine (OKE) erstellt haben, indem Sie Dateisysteme aus dem File Storage mit Lustre-Service mounten.
Der Oracle Cloud Infrastructure File Storage with Lustre-Service ist ein vollständig verwalteter Speicherservice, der den Anforderungen von KI/ML-Training und -Inferenz sowie High Performance Computing gerecht wird. Mit dem Lustre CSI-Plug-in können Sie Cluster mit Dateisystemen im File Storage with Lustre-Service verbinden.
Mit dem File Storage with Lustre-Service können Sie Persistent Volume Claims (PVCs) auf zwei Arten bereitstellen:
- Definieren und erstellen Sie eine neue Speicherklasse, definieren und erstellen Sie dann ein PVC, das diese Speicherklasse referenziert. Wenn Sie das PVC erstellen, erstellt das Lustre CSI-Plugin dynamisch sowohl ein neues Lustre-Dateisystem als auch ein neues persistentes Volume, das vom neuen Dateisystem unterstützt wird. Siehe PVC mit dem CSI-Volume-Plug-in in einem neuen Lustre File System bereitstellen.
- Indem Sie manuell ein Dateisystem im File Storage with Lustre-Service erstellen, dann ein persistentes Volume (PV) definieren und erstellen, das vom neuen Dateisystem gesichert wird, und schließlich ein neues PVC definieren. Wenn Sie den PVC erstellen, bindet Kubernetes Engine den PVC an den PV, der vom File Storage with Lustre-Service unterstützt wird. Siehe PVC in einem vorhandenen Lustre File System bereitstellen
Der Lustre CSI-Treiber ist die Gesamtsoftware, mit der Lustre-Dateisysteme über die Container Storage Interface (CSI) mit Kubernetes verwendet werden können. Das Lustre CSI-Plugin ist eine spezifische Komponente innerhalb des Treibers, die für die Interaktion mit dem Kubernetes-API-Server und die Verwaltung des Lebenszyklus von Lustre-Volumes verantwortlich ist.
Beachten Sie Folgendes:
- Wenn Sie das Lustre CSI-Plug-in zum dynamischen Erstellen eines neuen Dateisystems verwenden, aktualisieren oder löschen Sie das persistente Volume oder die Lustre-Dateisystemobjekte nicht manuell, die das CSI-Plug-in erstellt.
- Alle Lustre-Dateisysteme, die dynamisch vom CSI-Volume-Plug-in erstellt werden, erhalten Namen, die mit
csi-lustre-beginnen. - Alle Lustre-Dateisysteme, die dynamisch vom CSI-Volume-Plug-in erstellt werden, werden in der Konsole angezeigt. Verwenden Sie jedoch nicht die Konsole (oder die Oracle Cloud Infrastructure-CLI oder -API), um diese dynamisch erstellten Ressourcen zu ändern. Änderungen an Oracle Cloud Infrastructure-Ressourcen, die dynamisch vom CSI-Volume-Plug-in erstellt werden, werden nicht mit Kubernetes-Objekten abgestimmt.
- Einige erweiterte Funktionen wie Volume-Erweiterung, Snapshot und Klon sind derzeit nicht für dynamisch bereitgestellte Lustre-Dateisysteme verfügbar.
- Wenn Sie einen an einen PV gebundenen PVC löschen, der von einem Dateisystem unterstützt wird, das vom CSI-Volume-Plug-in erstellt wurde, und die Rückforderungs-Policy auf "Löschen" gesetzt ist, werden sowohl das PV- als auch das Lustre-Dateisystem gelöscht. Wenn die Rückforderungs-Policy "Beibehalten" lautet, wird der PV nicht gelöscht.
- Die Verwendung des Lustre CSI-Treibers zum Provisioning eines PVCs in einem dynamisch erstellten Lustre-Dateisystem wird auf Clustern unterstützt, die von Kubernetes Engine erstellt wurden und Kubernetes Version 1.32 oder höher ausführen. Die Verwendung des Lustre CSI-Treibers zum Provisioning eines PVCs in einem vorhandenen Lustre-Dateisystem wird auf Clustern unterstützt, die von Kubernetes Engine erstellt wurden und Kubernetes Version 1.29 oder höher ausführen.
- Der Lustre CSI-Treiber wird unter Oracle Linux 8 x86 und unter Ubuntu x86 22.04 unterstützt.
- Um ein Lustre-Dateisystem mit einem von der Kubernetes Engine erstellten Cluster zu verwenden, muss das Lustre-Clientpackage auf Worker-Knoten installiert werden, die das Dateisystem mounten müssen. Weitere Informationen zu Lustre-Clients finden Sie unter Mounten und Zugreifen auf ein Lustre File System.
- Daten werden im Ruhezustand mit Verschlüsselungsschlüsseln verschlüsselt, die entweder von Oracle oder von Ihnen verwaltet werden.
- Oracle Cloud Infrastructure File Storage with Lustre ist nur in den Regionen verfügbar, die in der File Storage with Lustre-Dokumentation unter Verfügbarkeit angezeigt werden.
PVC mit dem CSI-Volume-Plug-in auf einem neuen Lustre File System bereitstellen
Die folgenden Voraussetzungen gelten beim Provisioning eines PVCs in einem neuen Lustre-Dateisystem, das dynamisch vom CSI-Volume-Plug-in erstellt wird:
- Cluster müssen Kubernetes 1.32 oder höher ausführen, um ein PVC auf einem neuen Dateisystem bereitzustellen, das dynamisch vom CSI-Volume-Plug-in erstellt wird.
-
Es müssen entsprechende IAM-Policys vorhanden sein, damit das CSI-Volume-Plug-in Lustre-Ressourcen erstellen und verwalten kann. Beispiel:
ALLOW any-user to manage lustre-file-family in compartment <compartment-name> where request.principal.type = 'cluster' ALLOW any-user to use virtual-network-family in compartment <compartment-name> where request.principal.type = 'cluster' -
Wenn sich das Compartment, zu dem ein Knotenpool, Subnetz oder Dateisystem gehört, von dem Compartment unterscheidet, zu dem ein Cluster gehört, müssen IAM-Policys vorhanden sein, damit das CSI-Volume-Plug-in auf den entsprechenden Speicherort zugreifen kann. Beispiel:
ALLOW any-user to manage lustre-file-family in TENANCY where request.principal.type = 'cluster'ALLOW any-user to use virtual-network-family in TENANCY where request.principal.type = 'cluster' -
Um einen bestimmten vom Benutzer verwalteten Masterverschlüsselungsschlüssel aus dem Vault-Service zur Verschlüsselung von Daten im Ruhezustand anzugeben, müssen entsprechende IAM-Policys vorhanden sein, damit der File Storage with Lustre-Service auf diesen Masterverschlüsselungsschlüssel zugreifen kann. Siehe Dateisystemverschlüsselung aktualisieren.
- Das Lustre-Clientpackage muss auf allen Worker-Knoten installiert sein, die das Lustre-Dateisystem mounten müssen.
So stellen Sie ein PVC dynamisch in einem neuen Lustre-Dateisystem bereit, das dynamisch vom CSI-Volume-Plug-in im File Storage with Lustre-Service erstellt wird:
- Erstellen Sie Sicherheitsregeln in einer Netzwerksicherheitsgruppe (empfohlen) oder einer Sicherheitsliste sowohl für das Lustre-Dateisystem als auch für das Worker-Knoten-Subnetz des Clusters.
Die zu erstellenden Sicherheitsregeln hängen von den relativen Netzwerkverzeichnissen des Lustre-Dateisystems und den Worker-Knoten ab, die als Client fungieren, gemäß den folgenden Szenarios:
- Option 1: Client und Lustre in verschiedenen Subnetzen
- Option 2: Client und Lustre im selben Subnetz
Diese Szenarios, die zu erstellenden Sicherheitsregeln und die Stelle, an der sie erstellt werden sollen, sind in der Dokumentation zum File Storage with Lustre-Service ausführlich beschrieben (siehe Erforderliche VCN-Sicherheitsregeln).
- Definieren Sie eine neue Speicherklasse, die den
lustre.csi.oraclecloud.com-Provisioner verwendet:- Erstellen Sie eine Manifestdatei (z.B. in einer Datei namens lustre-dyn-st-class.yaml), geben Sie einen Namen für die neue Speicherklasse an, und geben Sie Werte für erforderliche und optionale Parameter an:
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: <storage-class-name> provisioner: lustre.csi.oraclecloud.com parameters: availabilityDomain: <ad-name> compartmentId: <compartment-ocid> # optional subnetId: <subnet-ocid> performanceTier: <value> fileSystemName: <name> # optional kmsKeyId: <key-ocid> # optional nsgIds: '["<nsg-ocid>"]' # optional rootSquashEnabled: "<true | false>" # optional rootSquashUid: "<value>" # optional rootSquashGid: "<value>" # optional rootSquashClientExceptions: '["<ip-address>"]' # optional oci.oraclecloud.com/initial-defined-tags-override: '{"<tag-namespace>": {"<tag-key>": "<tag-value>"}}' oci.oraclecloud.com/initial-freeform-tags-override: '{"<tag-key>": "<tag-value>"}' setupLnet: "<true | false>" # optional lustreSubnetCidr: "<cidr-block>" # optional lustrePostMountParameters: '[{"<parameter1>": <value>},{"<parameter2>": <value>}]' # optionalHierbei gilt:
name: <storage-class-name>: Erforderlich. Ein Name Ihrer Wahl für die Speicherklasse.availabilityDomain: <ad-name>: Erforderlich. Der Name der Availability-Domain, in der das neue Lustre-Dateisystem erstellt werden soll. Beispiel:availabilityDomain: US-ASHBURN-AD-1. Um den zu verwendenden Availability-Domainnamen zu ermitteln, führen Sie den CLI-Befehloci iam availability-domain listaus (oder verwenden Sie den Vorgang ListAvailabilityDomains). Weitere Informationen finden Sie unter Availability-Domainnamen Ihres Mandanten.compartmentId: <compartment-ocid>: Optional. Die OCID des Compartments, zu dem das neue Lustre-Dateisystem gehören soll. Wenn keine Angabe gemacht wird, wird standardmäßig dasselbe Compartment wie das Cluster verwendet. Beispiel:compartmentId: ocid1.compartment.oc1..aaa______t6qsubnetId: <subnet-ocid>: Erforderlich. Die OCID des Subnetzes, in dem das neue Lustre-Dateisystem gemountet werden soll. Beispiel:subnetId: ocid1.subnet.oc1.iad.aaaa______kfaperformanceTier: <value>: Erforderlich. Die Performanceebene des Lustre-Dateisystems. Zulässige WerteMBPS_PER_TB_125MBPS_PER_TB_250MBPS_PER_TB_500MBPS_PER_TB_1000
fileSystemName: <name>: Optional. Der Name des Lustre-Dateisystems, bis zu 8 Zeichen. Wenn kein Wert angegeben wird, wird ein Standardwert zufällig generiert und verwendet. Beispiel:fileSystemName: aiworkfskmsKeyId: <key-ocid>: Optional. Die OCID eines von Ihnen verwalteten Masterverschlüsselungsschlüssels, mit dem Daten im Ruhezustand verschlüsselt werden. Wenn keine Angabe gemacht wird, werden die Daten im Ruhezustand mit Verschlüsselungsschlüsseln verschlüsselt, die von Oracle verwaltet werden. Beispiel:kmsKeyId: ocid1.key.oc1.iad.ann______usjnsgIds: '["<nsg-ocid>"]': Optional. Ein JSON-Array mit bis zu fünf Netzwerksicherheitsgruppen-OCIDs, die mit dem Lustre-Dateisystem verknüpft werden sollen. Beispiel:nsgIds: '["ocid1.nsg.oc1.iad.aab______fea"]'rootSquashEnabled: "<true | false>": Optional. Setzen Sie diesen Wert auftrue, um den Root-Zugriff von Clients einzuschränken. Standard istfalse.rootSquashUid: "<value>": Optional. Wenn Root Squash aktiviert ist, werden Root-Vorgänge dieser UID zugeordnet. Standard ist65534.rootSquashGid: "<value>": Optional. Wenn Root Squash aktiviert ist, werden Root-Vorgänge dieser GID zugeordnet. Standard ist65534.rootSquashClientExceptions: '["<ip-address>"]': Optional. Ein JSON-Array mit IP-Adressen oder CIDR-Blöcken, die keinem Root-Squash unterliegen (maximal 10 Einträge). Beispiel:rootSquashClientExceptions: '["10.0.2.4"]'.oci.oraclecloud.com/initial-defined-tags-override: '{"<tag-namespace>": {"<tag-key>": "<tag-value>"}}'Optional. Gibt ein definiertes Tag für das neue Dateisystem an. Beispiel:oci.oraclecloud.com/initial-defined-tags-override: '{"Org": {"CostCenter": "AI"}}'Um definierte Tags aus einem Tag-Namespace, der zu einem Compartment gehört, auf eine Dateisystemressource anzuwenden, die zu einem anderen Compartment gehört, müssen Sie eine Policy-Anweisung hinzufügen, damit das Cluster den Tag-Namespace verwenden kann. Siehe Zusätzliche IAM-Policy, wenn sich ein Cluster und ein Tag-Namespace in verschiedenen Compartments befinden.
oci.oraclecloud.com/initial-freeform-tags-override: '{"<tag-key>": "<tag-value>"}'Optional. Gibt ein Freiformtag für das neue Dateisystem an. Beispiel:oci.oraclecloud.com/initial-freeform-tags-override: '{"Project": "ML"}'setupLnet: "<true | false>": Optional. Setzen Sie diesen Wert auftrue, wenn der Lustre CSI-Treiber vor dem Einhängen das Setup von Lustre Network (LNet) durchführen soll. Es wird dringend empfohlen, den ParametersetupLneteinzuschließen und"true"festzulegen.lustreSubnetCidr: "<cidr-block>": Optional. Legen Sie den Quellnetzwerkbereich des Worker-Knotens fest, der für Lustre-Traffic verwendet wird:- Verwendungszeitpunkt: Geben Sie nur einen Netzwerkbereich an, wenn Worker-Knoten eine sekundäre VNIC verwenden, um eine Verbindung zum Lustre-Dateisystem herzustellen. Dieses CIDR muss mit dem Subnetzblock dieser sekundären VNIC übereinstimmen (Beispiel:
10.0.2.0/24). - Auslassungszeitpunkt: Geben Sie keinen Netzwerkbereich an, wenn Worker-Knoten ihre primäre VNIC (Standardschnittstelle) für Lustre-Konnektivität verwenden.
- Wichtig: Dieser Parameter unterscheidet sich vom Parameter
subnetIddes Lustre-Dateisystems, der definiert, wo sich das Lustre-Dateisystem selbst befindet.
- Verwendungszeitpunkt: Geben Sie nur einen Netzwerkbereich an, wenn Worker-Knoten eine sekundäre VNIC verwenden, um eine Verbindung zum Lustre-Dateisystem herzustellen. Dieses CIDR muss mit dem Subnetzblock dieser sekundären VNIC übereinstimmen (Beispiel:
lustrePostMountParameters: '[{"<parameter1>": <value>},{"<parameter2>": <value>}]': Optional. JSON-Array mit erweiterten Lustre-Clientparametern, die nach dem Einhängen festgelegt werden. Beispiel:lustrePostMountParameters: '[{"*.*.*MDT*.lru_size": 11200},{"at_history": 600}]'
Beispiel:
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: lustre-dyn-storage provisioner: lustre.csi.oraclecloud.com parameters: availabilityDomain: US-ASHBURN-AD-1 compartmentId: ocid1.compartment.oc1..aaa______t6q # optional subnetId: ocid1.subnet.oc1.iad.aaaa______kfa performanceTier: MBPS_PER_TB_250 fileSystemName: aiworkfs # optional kmsKeyId: ocid1.key.oc1.iad.ann______usj # optional nsgIds: '["ocid1.nsg.oc1.iad.aab______fea"]' # optional oci.oraclecloud.com/initial-defined-tags-override: '{"Org": {"CostCenter": "AI"}}' oci.oraclecloud.com/initial-freeform-tags-override: '{"Project": "ML"}' setupLnet: "true" # optional - Erstellen Sie die Speicherklasse aus der Manifestdatei, indem Sie Folgendes eingeben:
kubectl create -f <filename>Beispiel:
kubectl create -f lustre-dyn-st-class.yaml
- Erstellen Sie eine Manifestdatei (z.B. in einer Datei namens lustre-dyn-st-class.yaml), geben Sie einen Namen für die neue Speicherklasse an, und geben Sie Werte für erforderliche und optionale Parameter an:
- Erstellen Sie wie folgt eine PVC, die vom neuen Dateisystem im File Storage with Lustre-Service bereitgestellt werden soll:
- Erstellen Sie eine Manifestdatei, um den PVC zu definieren:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: <pvc-name> spec: accessModes: - <ReadWriteMany|ReadOnlyOncePod> storageClassName: "<storage-class-name>" resources: requests: storage: <capacity>Hierbei gilt:
-
name: <pvc-name>: Erforderlich. Beispiel:lustre-dynamic-claim -
storageClassName: "<storage-class-name>": Erforderlich. Der Name der zuvor definierten Speicherklasse. Beispiel:lustre-dyn-storage. -
accessModes: - <ReadWriteMany|ReadOnlyOncePod>: Erforderlich. Gibt an, wie das Dateisystem gemountet und von Pods gemeinsam genutzt werden soll. Derzeit werdenReadWriteManyundReadOnlyOncePodunterstützt. Beispiel:ReadWriteMany. -
storage: <capacity>: Erforderlich. Dieser Wert muss mindestens31.2T(oder31200G) sein. Sie können eine größere Kapazität angeben, müssen jedoch bestimmte von der Kapazität abhängige Inkremente verwenden (siehe Increasing File System Capacity). Beispiel:31.2T.
Beispiel: Die folgende Manifestdatei (mit dem Namen
lustre-dyn-claim.yaml) definiert einen PVC namenslustre-dynamic-claim, der vom Dateisystem bereitgestellt wird, das in der Speicherklasselustre-dyn-storagedefiniert ist:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: lustre-dynamic-claim spec: accessModes: - ReadWriteMany storageClassName: "lustre-dyn-storage" resources: requests: storage: 31.2T -
- Erstellen Sie das PVC aus der Manifestdatei, indem Sie Folgendes eingeben:
kubectl create -f <filename>Beispiel:kubectl create -f lustre-dyn-claim.yaml
Es entsteht ein neues PVC. Das CSI-Volume-Plug-in erstellt ein neues persistentes Volume (PV) und ein neues Dateisystem im File Storage with Lustre-Service. Das Erstellen eines neuen Lustre-Dateisystems dauert mindestens 10 Minuten und kann je nach Größe des Dateisystems länger dauern. Über die Konsole oder die CLI können Sie bestätigen, dass das neue Lustre-Dateisystem erstellt wurde (siehe Dateisysteme auflisten).
Das neue PVC ist an die neue PV gebunden. Daten werden im Ruhezustand mit Verschlüsselungsschlüsseln verschlüsselt, die entweder von Oracle oder von Ihnen verwaltet werden.
- Erstellen Sie eine Manifestdatei, um den PVC zu definieren:
-
Prüfen Sie, ob der PVC an das neue Persistent Volume gebunden wurde, indem Sie Folgendes eingeben:
kubectl get pvcBeispielausgabe:
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE lustre-dynamic-claim Bound csi-lustre-<unique_ID> 30468750000Ki RWX lustre-dyn-storage 4m -
Verwenden Sie das neue PVC, wenn Sie andere Objekte wie Pods erstellen. Beispiel: Sie können einen neuen Pod aus der folgenden Poddefinition erstellen:
apiVersion: v1 kind: Pod metadata: name: lustre-dynamic-app spec: containers: - name: aiworkload image: busybox:latest command: ["sleep", "3600"] volumeMounts: - name: lustre-vol mountPath: /mnt/lustre volumes: - name: lustre-vol persistentVolumeClaim: claimName: lustre-dynamic-claim -
Nachdem Sie einen neuen Pod erstellt haben, wie im Beispiel im vorherigen Schritt beschrieben, können Sie prüfen, ob der Pod den neuen PVC verwendet, indem Sie Folgendes eingeben:
kubectl describe pod lustre-dynamic-app
Wenn Sie eine häufige Anforderung zum dynamischen Erstellen neuer PVs und neuer Dateisysteme beim Erstellen von PVCs voraussehen, können Sie angeben, dass die neu erstellte Speicherklasse als Standardspeicherklasse für das Provisioning neuer PVCs verwendet werden soll. Weitere Informationen finden Sie in der Kubernetes-Dokumentation.
Daten im Ruhezustand in einem neuen Lustre File System verschlüsseln
Der File Storage with Lustre-Service verschlüsselt immer Daten im Ruhezustand, wobei standardmäßig von Oracle verwaltete Verschlüsselungsschlüssel verwendet werden. Sie haben jedoch die Möglichkeit, die Verschlüsselung im Ruhezustand mit Ihren eigenen Masterverschlüsselungsschlüsseln anzugeben, die Sie selbst im Vault-Service verwalten.
Je nachdem, wie Sie Daten im Ruhezustand verschlüsseln möchten, befolgen Sie die folgenden Anweisungen:
- Um mit dem CSI-Volume-Plug-in dynamisch ein neues Lustre-Dateisystem zu erstellen, das von Oracle verwaltete Verschlüsselungsschlüssel verwendet, um Daten im Ruhezustand zu verschlüsseln, führen Sie die Schritte unter PVC auf einem neuen Lustre File System mit dem CSI-Volume-Plug-in bereitstellen aus, und nehmen Sie den Parameter
kmsKeyId: <key-ocid>nicht in die Speicherklassendefinition auf. Daten werden im Ruhezustand mit von Oracle verwalteten Verschlüsselungsschlüsseln verschlüsselt. - Um mit dem CSI-Volume-Plug-in dynamisch ein neues Lustre-Dateisystem zu erstellen, das Masterverschlüsselungsschlüssel verwendet, die Sie zur Verschlüsselung von Daten im Ruhezustand verwalten, führen Sie die Schritte unter Provisioning durchführen einen PVC in einem neuen Lustre File System mit dem CSI-Volume-Plug-in, nehmen Sie den Parameter
kmsKeyId: <key-ocid>in die Speicherklassendefinition auf, und geben Sie die OCID des Masterverschlüsselungsschlüssels im Vault-Service an. Daten werden im Ruhezustand mit dem angegebenen Verschlüsselungsschlüssel verschlüsselt.
PVC auf einem vorhandenen Lustre File System bereitstellen
So erstellen Sie einen PVC in einem vorhandenen Dateisystem im File Storage with Lustre-Service (mit von Oracle verwalteten Verschlüsselungsschlüsseln zur Verschlüsselung von Daten im Ruhezustand):
- Erstellen Sie ein Dateisystem im File Storage with Lustre-Service, und wählen Sie die Verschlüsselungsoption Mit von Oracle verwalteten Schlüsseln verschlüsseln aus. Siehe Lustre File System erstellen.
- Erstellen Sie Sicherheitsregeln in einer Netzwerksicherheitsgruppe (empfohlen) oder einer Sicherheitsliste sowohl für das Lustre-Dateisystem als auch für das Worker-Knoten-Subnetz des Clusters.Die zu erstellenden Sicherheitsregeln hängen von den relativen Netzwerkspeicherorten des Lustre-Dateisystems und den Worker-Knoten ab, die als Client fungieren. Dabei gelten folgende Szenarios:
Diese Szenarios, die zu erstellenden Sicherheitsregeln und deren Erstellung werden in der Dokumentation zum File Storage with Lustre-Service ausführlich beschrieben (siehe Erforderliche VCN-Sicherheitsregeln).
- Erstellen Sie wie folgt eine PV, die vom Dateisystem im File Storage with Lustre-Service gesichert wird:
-
Erstellen Sie eine Manifestdatei, um eine PV zu definieren, und legen Sie im Abschnitt
csi:Folgendes fest:-
driverbislustre.csi.oraclecloud.com -
volumeHandlebis<MGSAddress>@<LNetName>:/<MountName>Hierbei gilt:
-
<MGSAddress>ist die Management-Serviceadresse für das Dateisystem im File Storage with Lustre-Service -
<LNetName>ist der Netzwerkname LNet für das Dateisystem im File Storage with Lustre-Service. -
<MountName>ist der Mountname, der beim Erstellen des Dateisystems im File Storage with Lustre-Service verwendet wird.
Beispiel:
10.0.2.6@tcp:/testlustrefs -
-
fsTypebislustre - (optional, aber empfohlen)
volumeAttributes.setupLnetbis"true", wenn der Lustre CSI-Treiber vor dem Mounten des Dateisystems lnet (Lustre Network) einrichten soll. - (Optional)
volumeAttributes.lustreSubnetCidrzum Quellnetzwerkbereich des Worker-Knotens, der für Lustre-Traffic verwendet wird:- Verwendungszeitpunkt: Geben Sie nur einen Netzwerkbereich an, wenn Worker-Knoten eine sekundäre VNIC verwenden, um eine Verbindung zum Lustre-Dateisystem herzustellen. Dieses CIDR muss mit dem Subnetzblock dieser sekundären VNIC übereinstimmen (Beispiel:
10.0.2.0/24). - Auslassungszeitpunkt: Geben Sie keinen Netzwerkbereich an, wenn Worker-Knoten ihre primäre VNIC (Standardschnittstelle) für Lustre-Konnektivität verwenden.
- Wichtig: Dieser Parameter unterscheidet sich vom Parameter
subnetIddes Lustre-Dateisystems, der definiert, wo sich das Lustre-Dateisystem selbst befindet.
- Verwendungszeitpunkt: Geben Sie nur einen Netzwerkbereich an, wenn Worker-Knoten eine sekundäre VNIC verwenden, um eine Verbindung zum Lustre-Dateisystem herzustellen. Dieses CIDR muss mit dem Subnetzblock dieser sekundären VNIC übereinstimmen (Beispiel:
- (Optional)
volumeAttributes.lustrePostMountParameters, um Lustre-Parameter festzulegen. Beispiel:... volumeAttributes: lustrePostMountParameters: '[{"*.*.*MDT*.lru_size": 11200},{"at_history" : 600}]'
Beispiel: Die folgende Manifestdatei (benannt lustre-PV-example.yaml) definiert ein PV namens
lustre-pv-example, das von einem Lustre-Dateisystem unterstützt wird:apiVersion: v1 kind: PersistentVolume metadata: name: lustre-pv-example spec: capacity: storage: 31.2T volumeMode: Filesystem accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain csi: driver: lustre.csi.oraclecloud.com volumeHandle: "10.0.2.6@tcp:/testlustrefs" fsType: lustre volumeAttributes: setupLnet: "true" -
- Erstellen Sie die PV aus der Manifestdatei, indem Sie Folgendes eingeben:
kubectl apply -f <filename>Beispiel:
kubectl apply -f lustre-pv-example.yaml -
Prüfen Sie, ob die PV erfolgreich erstellt wurde, indem Sie Folgendes eingeben:
kubectl get pv <pv-name>Beispiel:
kubectl get pv lustre-pv-exampleBeispielausgabe:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE lustre-pv-example 30468750000Ki RWX Retain Bound 56m
-
- Erstellen Sie wie folgt ein PVC, das von der von Ihnen erstellten PV bereitgestellt wird:
- Erstellen Sie eine Manifestdatei, um das PVC zu definieren und festzulegen:
-
storageClassNamezu""Beachten Sie, dass Sie einen leeren Wert fürstorageClassNameangeben müssen, auch wenn die Speicherklasse beim statischen Provisioning des persistenten Speichers nicht anwendbar ist. Wenn Sie keinen leeren Wert fürstorageClassNameangeben, wird die Standardspeicherklasse (oci-bv) verwendet, die einen Fehler verursacht. -
volumeNamefür den Namen des von Ihnen erstellten PV (Beispiel:lustre-pv-example)
Beispiel: Die folgende Manifestdatei (benannt lüster-PVC-example.yaml) definiert ein PVC namens
lustre-pvc-example, das an ein PV namenslustre-pv-examplegebunden wird:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: lustre-pvc-example spec: accessModes: - ReadWriteMany storageClassName: "" volumeName: lustre-pv-example resources: requests: storage: 31.2TBeachten Sie, dass das Element
requests: storage:in der Manifestdatei des PVC vorhanden sein muss und sein Wert mit dem Wert übereinstimmen muss, der für das Elementcapacity: storage:in der Manifestdatei des PV angegeben wurde. Abgesehen davon wird der Wert des Elementsrequests: storage:ignoriert. -
- Erstellen Sie den PVC aus der Manifestdatei, indem Sie Folgendes eingeben:
kubectl apply -f <filename>Beispiel:kubectl apply -f lustre-pvc-example.yaml -
Prüfen Sie, ob der PVC erfolgreich erstellt und an den PV gebunden wurde, indem Sie:
kubectl get pvc <pvc-name>Beispiel:
kubectl get pvc lustre-pvc-exampleBeispielausgabe:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE lustre-pvc-example Bound lustre-pv-example 30468750000Ki RWX 57m
Das PVC ist an das PV gebunden, das durch das File Storage with Lustre Service-Dateisystem gesichert wird. Die Daten werden im Ruhezustand mit von Oracle verwalteten Verschlüsselungsschlüsseln verschlüsselt.
- Erstellen Sie eine Manifestdatei, um das PVC zu definieren und festzulegen:
- Verwenden Sie das neue PVC, wenn Sie andere Objekte wie Deployments erstellen. Beispiel:
- Erstellen Sie wie folgt ein Manifest namens lustre-app-example-deployment.yaml, um ein Deployment namens
lustre-app-example-deploymentzu definieren, das den PVClustre-pvc-exampleverwendet:apiVersion: apps/v1 kind: Deployment metadata: name: lustre-app-example-deployment spec: selector: matchLabels: app: lustre-app-example replicas: 2 template: metadata: labels: app: lustre-app-example spec: containers: - args: - -c - while true; do echo $(date -u) >> /lustre/data/out.txt; sleep 60; done command: - /bin/sh image: busybox:latest imagePullPolicy: Always name: lustre-app-example volumeMounts: - mountPath: /lustre/data name: lustre-volume restartPolicy: Always volumes: - name: lustre-volume persistentVolumeClaim: claimName: lustre-pvc-example - Erstellen Sie das Deployment aus der Manifestdatei, indem Sie Folgendes eingeben:
kubectl apply -f lustre-app-example-deployment.yaml - Prüfen Sie, ob die Deployment-Pods erfolgreich erstellt wurden und ausgeführt werden, indem Sie Folgendes eingeben:
kubectl get podsBeispielausgabe:
NAME READY STATUS RESTARTS AGE lustre-app-example-deployment-7767fdff86-nd75n 1/1 Running 0 8h lustre-app-example-deployment-7767fdff86-wmxlh 1/1 Running 0 8h
- Erstellen Sie wie folgt ein Manifest namens lustre-app-example-deployment.yaml, um ein Deployment namens
PVC auf einem vorhandenen Lustre File System mit Mount-Optionen bereitstellen
Sie können die Performance optimieren und den Zugriff auf ein vorhandenes Lustre-Dateisystem steuern, indem Sie Mount-Optionen für das PV angeben. Durch die Angabe von Mountoptionen können Sie die Interaktion von Pods mit dem Dateisystem optimieren.
So schließen Sie Einhängeoptionen ein:
- Befolgen Sie zunächst die Anweisungen unter Provisioning eines PVC auf einem vorhandenen Lustre File System.
- Fügen Sie im PV-Manifest, das unter Provisioning eines PVC auf einem vorhandenen Lustre File System beschrieben wird, das Feld
spec.mountOptionshinzu, mit dem Sie angeben können, wie der PV von Pods gemountet werden soll.Beispiel: In der Manifestdatei lustre-pv-example.yaml, die unter Provisioning eines PVCs auf einem vorhandenen Lustre File System angezeigt wird, können Sie das Feld
mountOptionswie folgt aufnehmen:apiVersion: v1 kind: PersistentVolume metadata: name: lustre-pv-example spec: capacity: storage: 31.2T volumeMode: Filesystem accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain mountOptions: - ro csi: driver: lustre.csi.oraclecloud.com volumeHandle: "10.0.2.6@tcp:/testlustrefs" fsType: lustre volumeAttributes: setupLnet: "true"In diesem Beispiel ist das Feld
mountOptionsaufrogesetzt. Dies gibt an, dass Pods schreibgeschützten Zugriff auf das Dateisystem haben sollen. Weitere Informationen zu PV-Mountoptionen finden Sie unter Persistente Volumes in der Kubernetes-Dokumentation.
Daten im Ruhezustand in einem vorhandenen Lustre File System verschlüsseln
Der File Storage with Lustre-Service verschlüsselt Daten immer im Ruhezustand und verwendet standardmäßig von Oracle verwaltete Verschlüsselungsschlüssel. Sie haben jedoch die Möglichkeit, die Verschlüsselung im Ruhezustand mit Ihren eigenen Masterverschlüsselungsschlüsseln anzugeben, die Sie im Vault-Service selbst verwalten.
Weitere Informationen zu File Storage with Lustre-Dateisystemen, die von Oracle verwaltete Verschlüsselungsschlüssel oder Ihre eigenen Masterverschlüsselungsschlüssel verwenden, die Sie selbst verwalten, finden Sie unter Dateisystemverschlüsselung aktualisieren.