將 Filestore 執行個體掛接至 Cloud TPU VM

Filestore 是 Compute Engine 專用的全代管網路附加儲存裝置 (NAS)。Filestore 可順暢相容於現有企業應用程式,並支援任何 NFSv3 相容用戶端。

事前準備

如要在 Cloud TPU VM 上掛接 Filestore 執行個體,請將 Filestore 角色 (Cloud Filestore 編輯者或 Cloud Filestore 檢視者) 新增至與 Cloud TPU VM 相關聯的服務帳戶。如果您在建立 Cloud TPU VM 時未指定自訂服務帳戶,Cloud TPU VM 會使用預設的 Compute Engine 服務帳戶。如要進一步瞭解如何建立 Cloud TPU VM 時指定服務帳戶,請參閱「設定 Cloud TPU 環境」。如要進一步瞭解如何建立服務帳戶,請參閱「建立服務帳戶」。

將 Filestore 編輯者角色新增至服務帳戶

本節說明如何將 Cloud Filestore 編輯者角色新增至預設的 Compute Engine 服務帳戶。請按照這些操作說明,將 Cloud Filestore 編輯器角色新增至任何服務帳戶。在步驟 2 中,搜尋並使用自訂服務帳戶,而非預設的 Compute Engine 服務帳戶。

  1. 前往 IAM 控制台

  2. 選取「依主體檢視」分頁標籤,然後在「篩選器」欄位中輸入 Name:Compute Engine default service account

  3. 按一下服務帳戶旁的「編輯」。 IAM 控制台會顯示對話方塊,列出指派給預設 Compute Engine 服務帳戶的角色。

  4. 按一下「新增」即可新增其他角色。

  5. 展開「選取角色」選單,在篩選器中輸入 Filestore,然後選取「Cloud Filestore 編輯者」

  6. 按一下「儲存」即可關閉對話方塊。您已將 Filestore 編輯者角色新增至預設的 Compute Engine 服務帳戶。

如要進一步瞭解服務帳戶,請參閱「服務帳戶總覽」。如要進一步瞭解 IAM 角色,請參閱「角色和權限」。

建立 Filestore 執行個體

按照「建立 Filestore 執行個體」一文中的操作說明,建立 Filestore 執行個體。

在 Cloud TPU VM 上掛接 Filestore 執行個體

在 Cloud TPU VM 上掛接 Filestore 執行個體的指令,取決於您使用的是單一 Cloud TPU VM 還是 Cloud TPU 節點。

在單一 Cloud TPU VM 上掛接 Filestore 執行個體

  1. 使用 SSH 連線至 Cloud TPU VM。

    gcloud compute ssh TPU_NAME \
      --zone=ZONE
    

    替換下列預留位置:

    • TPU_NAME:TPU VM 的名稱。
    • ZONE:TPU VM 的可用區。
  2. 安裝 nfs-common 套件。

    sudo apt-get update --allow-releaseinfo-change \
      && sudo apt-get -y update \
      && sudo apt-get -y install nfs-common
    
  3. 建立要掛接 NFS 的目錄。

    sudo mkdir -p MOUNT_DIR \
      && sudo chmod ugo+rw MOUNT_DIR
    

    請替換下列預留位置:

    • MOUNT_DIR:要掛接 Filestore 執行個體的目錄。
  4. 找出 Filestore 的 IP 位址。

    gcloud filestore instances describe FILESTORE_INSTANCE_NAME \
      --location FILESTORE_REGION
    

    替換下列預留位置:

    • FILESTORE_INSTANCE_NAME:Filestore 執行個體的名稱。
    • FILESTORE_REGION:Filestore 執行個體所在的區域。
  5. 將 Cloud TPU VM 上的 Filestore 執行個體掛接到掛接目錄。

    sudo mount FILESTORE_IP:FILE_SHARE_NAME MOUNT_DIR
    

    替換下列預留位置:

    • FILESTORE_IP:Filestore 執行個體的 IP 位址。
    • FILE_SHARE_NAME:Filestore 執行個體上的檔案共用名稱。
    • MOUNT_DIR:要掛接 Filestore 執行個體的目錄。

在 Cloud TPU 配量上掛接 Filestore 執行個體

Cloud TPU 節點是做為 Compute Engine 代管執行個體群組 (MIG) 佈建。由於 MIG 會在運算容量中分配 VM,請使用附加至執行個體範本的啟動指令碼,將 Filestore 執行個體掛接到切片中的所有機器。這樣一來,每當建立或自動修復執行個體時,掛接點就會自動可用。

  1. 找出 Filestore 執行個體的 IP 位址。

    gcloud filestore instances describe FILESTORE_INSTANCE_NAME \
      --location FILESTORE_REGION
    

    替換下列預留位置:

    • FILESTORE_INSTANCE_NAME:Filestore 執行個體的名稱。
    • FILESTORE_REGION:Filestore 執行個體所在的區域。
  2. 建立開機指令碼。這個指令碼會安裝 nfs-common 套件、建立掛接目錄,並附加 Filestore 執行個體。將下列程式碼儲存為名為 mount-filestore.sh 的本機檔案。

    #!/bin/bash
    sudo apt-get update --allow-releaseinfo-change && sudo apt-get -y update && sudo apt-get -y install nfs-common
    sudo mkdir -p MOUNT_DIR
    sudo chmod ugo+rw MOUNT_DIR
    sudo mount FILESTORE_IP:FILE_SHARE_NAME MOUNT_DIR
    

    替換下列預留位置:

    • FILESTORE_IP:Filestore 執行個體的 IP 位址。
    • FILE_SHARE_NAME:Filestore 執行個體上的檔案共用名稱。
    • MOUNT_DIR:要掛接 Filestore 執行個體的目錄。
  3. 將開機指令碼套用至執行個體範本。 為 MIG 建立執行個體範本時,請使用 --metadata-from-file 旗標提供指令碼。

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
      --metadata-from-file=startup-script=mount-filestore.sh \
      ...
    

    替換下列預留位置:

    • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。

將資料寫入 Filestore 執行個體

授予 Linux 讀取和寫入權限,存取掛接 Filestore 執行個體的目錄。然後,您就可以像使用本機檔案系統一樣使用該目錄。