遷移資料

本頁面說明如何執行資料遷移作業,將檔案從本機複製到目標叢集中的永久性磁碟區聲明 (PVC)。

這是選用步驟。

自訂資料遷移設定

完成分析後,「Migrate to Containers」CLI 可能會在指定的分析輸出目錄中建立名為 dataConfig.yaml 的資料設定檔。這表示您必須執行資料遷移作業,才能完成遷移。

您也可以手動建立這個資料設定檔,用於資料遷移,並提供目標資料量或資料聲明的相關資訊。

以下是資料設定檔的範例:

volumes:
- deploymentPvcName: my-pvc1
  existingPvc:
    name: my-pvc1
  folders:
  - /bin
  - /opt
- deploymentPvcName: my-pvc2
  newPvc:
   spec:
    accessModes:
    - ReadWriteOnce
    resources:
      requests:
        storage: 10G
  folders:
  - /bin
  - /opt

其中:

  • deploymentPvcName:Migrate to Containers 在部署工作負載時,用於存取此磁碟區的 PVC 名稱。

  • existingPvc

    • name:現有永久磁碟區要求 (PVC) 的名稱。定義是否要將資料磁碟區遷移至現有的 PVC。
  • newPvc:定義是否要將資料磁碟區遷移至新的 PVC。您可以使用標準 PVC 規格語法定義 PVC。

    如要進一步瞭解 Kubernetes PVC 規格,請參閱 Kubernetes 說明文件。

  • folders:您要從 VM 遷移至 PVC 的資料夾。這些資料夾會複製到相同路徑的 PVC。

您可以編輯資料設定檔,以便執行多種資料遷移用途,包括:

使用現有的 PVC

如果您已為要遷移的資料分配儲存空間,並且有 PVC 可用來儲存資料,則可以使用現有的 PVC 遷移資料。

在資料設定檔 dataConfig.yaml 中定義現有的 PVC,方法是傳遞 existingPvc 欄位中的現有磁碟區。在這種情況下,資料設定檔會如下所示:

volumes:
- deploymentPvcName: my-pvc
  existingPvc:
    name: my-pvc
    subpath: /subpath
  folders:
  - /bin
  - /opt

在前述範例中,existingPvc 項目可包含選用的 subPath,用於將資料遷移至 PVC 的子路徑,如圖所示。

在已遷移的 VM 上建立新的資料磁碟區

如果您尚未預先分配儲存空間,但希望在遷移程序期間建立儲存空間,可以傳遞空白的 existingPvc 欄位,並在 newPvc 欄位中指定要建立的儲存空間:

volumes:
- deploymentPvcName: my-pvc
  newPvc:
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 10G
  folders:
  - /bin
  - /opt

遷移多個包含多個檔案路徑的 PVC

您可以為資料設定檔 dataConfig.yaml 中列出的每個 PVC,在 volume 清單中每個項目的 folders 清單欄位下指定目錄組合:

volumes:
- deploymentPvcName: my-pvc1
  existingPvc:
    name: my-pvc1
  folders:
  - /bin
  - /opt
- deploymentPvcName: my-pvc2
  newPvc:
   spec:
    accessModes:
    - ReadWriteOnce
    resources:
     requests:
       storage: 10G
  folders:
  - /bin
  - /opt

您在資料設定檔中 folders 下列出的路徑會複製至目標 PVC 中的相同路徑。

執行資料遷移

自訂資料設定檔 dataConfig.yaml 後,如要將資料磁碟區遷移至目標叢集中的 PVC,請執行下列指令:

./m2c migrate-data  -i ANALYSIS_OUTPUT_PATH -n NAMESPACE

更改下列內容:

  • ANALYSIS_OUTPUT_PATH:儲存包含 dataConfig.yaml 檔案的分析輸出內容路徑
  • NAMESPACE:已部署網路的目標 Kubernetes 叢集命名空間

後續步驟