|
Dies ist eine unveröffentlichte Dokumentation für SUSE® Storage 1.12 (Dev). |
CSI-VolumeSnapshot, der mit einem SUSE® Storage BackingImage verbunden ist
Das BackingImage in Longhorn ist ein Objekt, das ein QCOW2- oder RAW-Image darstellt, das als das Backing-/Basis-Image eines Longhorn-Volumes festgelegt werden kann.
Anstatt direkt die Longhorn-BackingImage-Ressource für die Verwaltung des BackingImages zu verwenden. Sie können auch 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 werden. Wenn Ihre Kubernetes-Distribution den Kubernetes-Snapshot-Controller sowie die Snapshot-bezogenen benutzerdefinierten Ressourcenbeschreibungen nicht bereitstellt, müssen Sie diese manuell bereitstellen. Für weitere Informationen siehe Aktivieren Sie die Unterstützung für CSI-Snapshots.
Erstellen Sie einen CSI-VolumeSnapshot, der mit Longhorn-BackingImage verbunden ist
Um einen CSI-VolumeSnapshot zu erstellen, der mit einem Longhorn-BackingImage verbunden ist, müssen Sie zunächst ein VolumeSnapshotClass-Objekt erstellen, bei dem der Parameter type auf bi wie folgt gesetzt ist:
kind: VolumeSnapshotClass
apiVersion: snapshot.storage.k8s.io/v1
metadata:
name: longhorn-snapshot-vsc
driver: driver.longhorn.io
deletionPolicy: Delete
parameters:
type: bi
# export-type default to raw if it is not given
export-type: qcow2
Für weitere Informationen zu VolumeSnapshotClass siehe die Kubernetes-Dokumentation für VolumeSnapshotClasses.
Danach erstellen Sie ein Kubernetes-VolumeSnapshot-Objekt, bei dem volumeSnapshotClassName auf den Namen des VolumeSnapshotClass (longhorn-snapshot-vsc) verweist und source auf das PVC des Longhorn-Volumes, von dem ein Longhorn-BackingImage exportiert werden soll.
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
name: test-csi-volume-snapshot-longhorn-backing-image
spec:
volumeSnapshotClassName: longhorn-snapshot-vsc
source:
persistentVolumeClaimName: test-vol
Ergebnis:
Ein Longhorn-BackingImage wird erstellt. Die Erstellung des VolumeSnapshot-Objekts führt zur Erstellung eines VolumeSnapshotContent-Kubernetes-Objekts.
Das VolumeSnapshotContent verweist in seinem VolumeSnapshotContent.snapshotHandle-Feld auf ein Longhorn-BackingImage mit dem Namen bi://backing?backingImageDataSourceType=export-from-volume&backingImage=${GENERATED_SNAPSHOT_NAME}&volume-name=test-vol&export-type=qcow2.
Anzeigen des Longhorn-BackingImages
Um das BackingImage zu sehen, klicken Sie in der oberen Navigationsleiste und klicken Sie auf das im VolumeSnapshotContent.snapshotHandle erwähnte BackingImage.
Wie der CSI-Mechanismus in diesem Szenario funktioniert
Wenn das VolumeSnapshot-Objekt mit kubectl erstellt wird, wird das VolumeSnapshot.uuid-Feld verwendet, um ein Longhorn-BackingImage und das zugehörige VolumeSnapshotContent-Objekt zu identifizieren.
Dies erstellt ein neues Longhorn BackingImage 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.
Stellen Sie das PVC aus dem CSI-VolumeSnapshot, das mit einem Longhorn-BackingImage verbunden ist, wieder her.
Erstellen Sie ein PersistentVolumeClaim-Objekt, bei dem das dataSource-Feld auf ein vorhandenes VolumeSnapshot-Objekt verweist, das mit einem Longhorn-BackingImage verbunden ist.
Der csi-provisioner wird dies aufnehmen und den Longhorn CSI-Treiber anweisen, ein neues Volume unter Verwendung des zugehörigen Longhorn-BackingImage bereitzustellen.
Ein Beispiel PersistentVolumeClaim finden Sie 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-backing-image
kind: VolumeSnapshot
apiGroup: snapshot.storage.k8s.io
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
Stellen Sie ein Longhorn-BackingImage wieder her, das kein zugehöriges VolumeSnapshot hat (pre-provision).
Sie können den CSI-Mechanismus verwenden, um ein Longhorn-BackingImage wiederherzustellen, das nicht über den CSI-Mechanismus erstellt wurde.
Um ein Longhorn-BackingImage wiederherzustellen, das nicht über den CSI-Mechanismus erstellt wurde, müssen Sie zuerst manuell ein VolumeSnapshot- und VolumeSnapshotContent-Objekt für das Longhorn-BackingImage erstellen.
Erstellen Sie ein VolumeSnapshotContent-Objekt mit dem snapshotHandle-Feld, das auf bi://backing?backingImageDataSourceType=${TYPE}&backingImage=${BACKINGIMAGE_NAME}&backingImageChecksum=${backingImageChecksum}&${OTHER_PARAMETERS} gesetzt ist, das auf ein vorhandenes Longhorn-BackingImage verweist.
-
Benutzer müssen die folgenden Abfrageparameter in
snapshotHandlezu Validierungszwecken angeben:-
backingImageDataSourceType:sourceTypedes vorhandenen Longhorn-BackingImage, z. B.export-from-volume,download -
backingImage: Name des Longhorn-BackingImage -
backingImageChecksum: Optional. Prüfsumme des Longhorn-BackingImage. -
Sie sollten auch die
sourceParametersdes vorhandenen Longhorn-BackingImage imsnapshotHandlebasierend auf dembackingImageDataSourceTypeangeben.-
export-from-volume:-
volume-name: Volume, von dem exportiert werden soll. -
export-type: qcow2 oder raw.
-
-
download:-
url: URL des Longhorn-BackingImage. -
checksum: optional.
-
-
-
Die Parameter können von der Seite in der Longhorn-Benutzeroberfläche abgerufen werden.
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotContent
metadata:
name: test-existing-backing
spec:
volumeSnapshotClassName: longhorn-snapshot-vsc
driver: driver.longhorn.io
deletionPolicy: Delete
source:
snapshotHandle: bi://backing?backingImageDataSourceType=download&backingImage=test-bi&url=https%3A%2F%2Flonghorn-backing-image.s3-us-west-1.amazonaws.com%2Fparrot.qcow2&backingImageChecksum=bd79ab9e6d45abf4f3f0adf552a868074dd235c4698ce7258d521160e0ad79ffe555b94e7d4007add6e1a25f4526885eb25c53ce38f7d344dd4925b9f2cb5d3b
volumeSnapshotRef:
name: test-snapshot-existing-backing
namespace: default
Erstellen Sie das zugehörige VolumeSnapshot Objekt mit dem name Feld, das auf test-snapshot-existing-backing gesetzt ist, wobei das source Feld auf ein VolumeSnapshotContent Objekt über das volumeSnapshotContentName Feld verweist.
Dies unterscheidet sich von der Erstellung eines Longhorn-BackingImage, bei dem das source-Feld auf ein PerstistentVolumeClaim über das persistentVolumeClaimName-Feld verweist.
Es kann nur ein Typ von Referenz für ein VolumeSnapshot Objekt festgelegt werden.
apiVersion: snapshot.storage.k8s.io/v1beta1
kind: VolumeSnapshot
metadata:
name: test-snapshot-existing-backing
spec:
volumeSnapshotClassName: longhorn-snapshot-vsc
source:
volumeSnapshotContentName: test-existing-backing
Jetzt können Sie ein PerstistantVolumeClaim Objekt erstellen, das auf das neu erstellte VolumeSnapshot Objekt verweist.
Für ein Beispiel siehe Wiederherstellung PVC von CSI-VolumeSnapshot, das mit Longhorn-BackingImage verbunden ist oben.
Stellen Sie ein Longhorn-BackingImage wieder her, das nicht erstellt wurde (on-demand Bereitstellung).
Sie können den CSI-Mechanismus verwenden, um ein Longhorn-BackingImage wiederherzustellen, das noch nicht erstellt wurde. Dieser Mechanismus unterstützt nur die folgenden 2 Arten von Longhorn-BackingImage-Datenquellen.
-
download: Laden Sie eine Datei von einer URL als Longhorn-BackingImage herunter. -
export-from-volume: Exportieren Sie ein vorhandenes In-Cluster-Volume als Longhorn-BackingImage.
Benutzer müssen das VolumeSnapshotContent mit einem zugehörigen VolumeSnapshot erstellen. Das snapshotHandle des VolumeSnapshotContent muss die Parameter der Datenquelle bereitstellen. Beispiel unten für ein nicht vorhandenes Longhorn-BackingImage test-bi mit zwei verschiedenen Datenquellen.
-
download: Benutzer müssen die folgenden Parameter bereitstellen.-
backingImageDataSourceType:downloadfür den On-Demand-Download. -
backingImage: Name des Longhorn-BackingImage -
url: Laden Sie die Datei von einer URL als Longhorn-BackingImage herunter. -
backingImageChecksum: Optional. Verwendet zur Validierung der Datei. -
Beispiel-YAML:
apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotContent metadata: name: test-on-demand-backing spec: volumeSnapshotClassName: longhorn-snapshot-vsc driver: driver.longhorn.io deletionPolicy: Delete source: # NOTE: change this to provide the correct parameters snapshotHandle: bi://backing?backingImageDataSourceType=download&backingImage=test-bi&url=https%3A%2F%2Flonghorn-backing-image.s3-us-west-1.amazonaws.com%2Fparrot.qcow2&backingImageChecksum=bd79ab9e6d45abf4f3f0adf552a868074dd235c4698ce7258d521160e0ad79ffe555b94e7d4007add6e1a25f4526885eb25c53ce38f7d344dd4925b9f2cb5d3b volumeSnapshotRef: name: test-snapshot-on-demand-backing namespace: default
-
-
export-from-volume: Benutzer müssen die folgenden Parameter bereitstellen.-
backingImageDataSourceType:export-form-volumefür den On-Demand-Export. -
backingImage: Name des Longhorn-BackingImage -
volume-name: Volumen, das für das Longhorn-BackingImage exportiert werden soll. -
export-type: Derzeit unterstützt Longhornrawoderqcow2 -
Beispiel-YAML:
apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotContent metadata: name: test-on-demand-backing spec: volumeSnapshotClassName: longhorn-snapshot-vsc driver: driver.longhorn.io deletionPolicy: Delete source: # NOTE: change this to provide the correct parameters snapshotHandle: bi://backing?backingImageDataSourceType=export-from-volume&backingImage=test-bi&volume-name=vol-export-src&export-type=qcow2 volumeSnapshotRef: name: test-snapshot-on-demand-backing namespace: default
-
Erstellen Sie das zugehörige VolumeSnapshot Objekt mit dem name Feld, das auf test-snapshot-on-demand-backing gesetzt ist, wobei das source Feld auf ein VolumeSnapshotContent Objekt über das volumeSnapshotContentName Feld verweist.
Dies unterscheidet sich von der Erstellung eines Longhorn-BackingImage, bei dem das source-Feld auf ein PerstistentVolumeClaim über das persistentVolumeClaimName-Feld verweist.
Es kann nur ein Typ von Referenz für ein VolumeSnapshot Objekt festgelegt werden.
apiVersion: snapshot.storage.k8s.io/v1beta1
kind: VolumeSnapshot
metadata:
name: test-snapshot-on-demand-backing
spec:
volumeSnapshotClassName: longhorn-snapshot-vsc
source:
volumeSnapshotContentName: test-on-demand-backing
Jetzt können Sie ein PerstistantVolumeClaim Objekt erstellen, das auf das neu erstellte VolumeSnapshot Objekt verweist.
Longhorn wird das Longhorn-BackingImage mit den in snapshotHandle angegebenen Parametern erstellen.
Ein Beispiel finden Sie oben unter Wiederherstellung PVC aus CSI VolumeSnapshot, das mit Longhorn-BackingImage verbunden ist.