CSI 磁碟區複製

本文件說明在 Kubernetes 中複製現有 CSI 磁碟區的概念。建議您先熟悉磁碟區

簡介

CSI 磁碟區複製功能新增了指定現有 PVCdataSource 欄位中的支援,以指示使用者想要複製磁碟區

複製定義為現有 Kubernetes 磁碟區的副本,可以像任何標準磁碟區一樣使用。唯一的區別在於,在佈建時,後端裝置不是建立「新」的空磁碟區,而是建立指定磁碟區的精確副本。

從 Kubernetes API 的角度來看,複製的實作新增了在建立新 PVC 期間將現有 PVC 指定為 dataSource 的能力。來源 PVC 必須已綁定且可用 (未使用中)。

使用此功能時,使用者需要注意以下事項

  • 複製支援 (VolumePVCDataSource) 僅適用於 CSI 驅動程式。
  • 複製支援僅適用於動態佈建器。
  • CSI 驅動程式可能已實作或未實作磁碟區複製功能。
  • 您只能在 PVC 存在於與目的地 PVC 相同的命名空間時複製 PVC (來源和目的地必須在相同的命名空間中)。
  • 使用不同的儲存類別支援複製。
    • 目的地磁碟區可以是與來源相同的儲存類別,也可以是不同的儲存類別。
    • 可以使用預設儲存類別,並且可以在 spec 中省略 storageClassName。
  • 複製只能在兩個使用相同 VolumeMode 設定的磁碟區之間執行 (如果您請求區塊模式磁碟區,則來源也必須是區塊模式)

佈建

複製的佈建方式與任何其他 PVC 相同,但新增了參考相同命名空間中現有 PVC 的 dataSource 除外。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
    name: clone-of-pvc-1
    namespace: myns
spec:
  accessModes:
  - ReadWriteOnce
  storageClassName: cloning
  resources:
    requests:
      storage: 5Gi
  dataSource:
    kind: PersistentVolumeClaim
    name: pvc-1

結果是一個新的 PVC,名稱為 clone-of-pvc-1,其內容與指定的來源 pvc-1 完全相同。

用法

在新的 PVC 可用後,複製的 PVC 的使用方式與其他 PVC 相同。此時也預期新建立的 PVC 是一個獨立的物件。它可以獨立使用、複製、建立快照或刪除,而無需考慮其原始 dataSource PVC。這也表示來源未以任何方式連結到新建立的複製,來源也可以修改或刪除,而不會影響新建立的複製。

上次修改時間為太平洋標準時間 2023 年 6 月 1 日下午 9:14:調整 storage/ 中的換行 (2886944017)