|
Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar. |
CSI-Volume-Snapshot, das mit einem SUSE® Storage-Snapshot verknüpft ist
Ein Snapshot in Longhorn ist ein Objekt, das den Inhalt eines Longhorn-Volumes zu einem bestimmten Zeitpunkt darstellt. Es wird im Cluster gespeichert.
Um programmgesteuert Longhorn-Snapshots zu erstellen, können Sie den generischen Kubernetes-CSI-VolumeSnapshot-Mechanismus verwenden. Um mehr über den CSI-VolumeSnapshot-Mechanismus zu erfahren, klicken Sie hier.
Voraussetzung: Die Unterstützung für CSI-Snapshots muss in Ihrem Cluster aktiviert sein. Wenn Ihre Kubernetes-Distribution den Kubernetes-Snapshot-Controller sowie die benutzerdefinierten Ressourcenbeschreibungen für Snapshots nicht bereitstellt, müssen Sie diese manuell bereitstellen. Für weitere Informationen siehe Aktivieren Sie die CSI-Snapshot-Unterstützung.
Erstellen Sie einen CSI-VolumeSnapshot, der mit einem Longhorn-Snapshot verbunden ist
Um einen CSI-VolumeSnapshot zu erstellen, der mit einem Longhorn-Snapshot verbunden ist, müssen Sie zunächst ein VolumeSnapshotClass-Objekt erstellen, bei dem der Parameter type auf snap gesetzt ist, wie folgt:
kind: VolumeSnapshotClass
apiVersion: snapshot.storage.k8s.io/v1
metadata:
name: longhorn-snapshot-vsc
driver: driver.longhorn.io
deletionPolicy: Delete
parameters:
type: snap
Für weitere Informationen zu VolumeSnapshotClass siehe die Kubernetes-Dokumentation für VolumeSnapshotClasses.
Erstellen Sie anschließend ein Kubernetes-VolumeSnapshot-Objekt, bei dem volumeSnapshotClassName auf den Namen des VolumeSnapshotClass (longhorn-snapshot-vsc) verweist und source auf das PVC des Longhorn-Volumes, für das ein Longhorn-Snapshot erstellt werden soll.
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
name: test-csi-volume-snapshot-longhorn-snapshot
spec:
volumeSnapshotClassName: longhorn-snapshot-vsc
source:
persistentVolumeClaimName: test-vol
Ergebnis:
Ein Longhorn-Snapshot wird erstellt. Die Erstellung des VolumeSnapshot-Objekts führt zur Erstellung eines VolumeSnapshotContent-Kubernetes-Objekts.
Das VolumeSnapshotContent verweist in seinem VolumeSnapshotContent.snapshotHandle-Feld auf einen Longhorn-Snapshot mit dem Namen snap://volume-name/snapshot-name.
Anzeigen des Longhorn-Snapshots
Um den Snapshot anzuzeigen, klicken Sie in der oberen Navigationsleiste auf Volume und klicken Sie auf das im VolumeSnapshotContent.snapshotHandle erwähnte Volume. Scrollen Sie nach unten, um die Liste aller Volume-Snapshots zu sehen.
Wie der CSI-Mechanismus in diesem Szenario funktioniert
Wenn das VolumeSnapshot-Objekt mit kubectl erstellt wird, wird das VolumeSnapshot.uuid-Feld verwendet, um einen Longhorn-Snapshot und das zugehörige VolumeSnapshotContent-Objekt zu identifizieren.
Dies erstellt einen neuen Longhorn-Snapshot mit dem Namen snapshot-uuid und die CSI-Anfrage wird zurückgegeben.
Anschließend wird ein VolumeSnapshotContent-Objekt mit dem Namen snapcontent-uuid erstellt, wobei das VolumeSnapshotContent.readyToUse-Flag auf true gesetzt ist.
Wiederherstellung des PVC aus einem CSI-VolumeSnapshot, das mit einem Longhorn-Snapshot verbunden ist
Erstellen Sie ein PersistentVolumeClaim-Objekt, bei dem das dataSource-Feld auf ein vorhandenes VolumeSnapshot-Objekt verweist, das mit dem Longhorn-Snapshot verbunden ist.
Der csi-provisioner wird dies aufnehmen und den Longhorn CSI-Treiber anweisen, ein neues Volume mit den Daten aus dem zugehörigen Longhorn-Snapshot bereitzustellen.
Ein Beispiel PersistentVolumeClaim ist unten. Das dataSource-Feld muss auf ein vorhandenes VolumeSnapshot-Objekt verweisen.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-restore-pvc
spec:
storageClassName: longhorn
dataSource:
name: test-csi-volume-snapshot-longhorn-snapshot
kind: VolumeSnapshot
apiGroup: snapshot.storage.k8s.io
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
Weitere Informationen finden Sie unter der Dokumentation für V2 Volume Clone Support. |