|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
卷克隆
使用YAML克隆
克隆CSI快照
要克隆CSI快照,请参考关于从快照创建卷的文档。
使用v2数据引擎克隆卷
假设您有一个`StorageClass`,名为`longhorn-v2`:
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: longhorn-v2
provisioner: driver.longhorn.io
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
parameters:
dataEngine: "v2"
numberOfReplicas: "1"
staleReplicaTimeout: "2880"
同时,您已从该卷创建了一个名为`source-pvc-v2`的持久卷声明(PVC):
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: source-pvc-v2
spec:
storageClassName: longhorn-v2
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
使用`full-copy`模式克隆
通过应用以下YAML创建一个与`source-pvc-v2`内容相同的新PVC。SUSE Storage将从源PVC复制数据到新PVC。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: cloned-pvc-v2
spec:
storageClassName: longhorn-v2
dataSource:
name: source-pvc-v2
kind: PersistentVolumeClaim
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
使用`linked-clone`模式克隆
`full-copy`模式创建一个与源PVC完全独立的新PVC。然而,复制数据需要时间和资源。
有时,您需要快速创建一个与源内容相同的临时PVC,而不复制数据。例如,像*Velero*或*Kasten*这样的备份解决方案可以利用此功能快速创建一个临时PVC以读取数据并将其上传到S3存储桶。
在这种情况下,请使用`linked-clone`模式。此模式创建一个与源PVC共享相同数据块的新PVC。
请遵循以下步骤:
-
创建一个`StorageClass`,将`cloneMode`设置为`linked-clone`。
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: longhorn-v2-linked-clone provisioner: driver.longhorn.io reclaimPolicy: Delete volumeBindingMode: Immediate parameters: dataEngine: "v2" cloneMode: "linked-clone" numberOfReplicas: "1" staleReplicaTimeout: "2880" -
创建一个新PVC,使用您创建的`StorageClass`并在`dataSource`字段中引用源PVC。
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: cloned-pvc-v2-linked-clone spec: storageClassName: longhorn-v2-linked-clone dataSource: name: source-pvc-v2 kind: PersistentVolumeClaim accessModes: - ReadWriteOnce resources: requests: storage: 10Gi
|
有关 linked-clone 模式的更多示例,请参见博客文章: 使用 Velero 备份带有 Longhorn V2 卷的应用程序。