Filestore インスタンスを Cloud TPU VM にマウントする

Filestore は、Compute Engine 向けのフルマネージド ネットワーク接続ストレージ(NAS)です。Filestore ではネイティブで既存のエンタープライズ アプリケーションに対応し、NFSv3 互換のクライアントがサポートされています。

始める前に

Cloud TPU VM に Filestore インスタンスをマウントするには、Cloud TPU VM に関連付けられているサービス アカウントに Filestore ロール(Cloud Filestore 編集者または Cloud Filestore 閲覧者)を追加します。Cloud TPU VM の作成時にカスタム サービス アカウントを指定しない場合、Cloud TPU VM はデフォルトの Compute Engine サービス アカウントを使用します。Cloud TPU VM の作成時にサービス アカウントを指定する方法の詳細については、 Cloud TPU 環境を設定するをご覧ください。 サービス アカウントの作成の詳細については、 サービス アカウントを作成するをご覧ください。

Filestore 編集者ロールをサービス アカウントに追加する

このセクションでは、デフォルトの Compute Engine サービス アカウントに Cloud Filestore 編集者ロールを追加する方法について説明します。次の手順に沿って、任意のサービス アカウントに Cloud Filestore 編集者ロールを追加できます。手順 2 で、デフォルトの Compute Engine サービス アカウントの代わりに、カスタム サービス アカウントを検索して使用します。

  1. IAM コンソールに移動 します。

  2. [**プリンシパル別に表示**] を選択し、Name:Compute Engine default service account を [**フィルタ**] フィールドに入力します。

  3. サービス アカウントの横にある [編集] をクリックします。 IAM コンソールに、デフォルトの Compute Engine サービス アカウントに割り当てられたロールの一覧を示すダイアログが表示されます。

  4. [追加] をクリックして、別のロールを追加します。

  5. [ロールを選択] メニューを開き、フィルタに「Filestore」と入力して、[Cloud Filestore 編集者] を選択します。

  6. [保存] をクリックしてダイアログを閉じます。デフォルトの Compute Engine サービス アカウントに Filestore 編集者ロールを追加しました。

サービス アカウントの詳細については、サービス アカウントの概要をご覧ください。 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 インスタンスへのデータの書き込み

Filestore インスタンスをマウントするディレクトリに対する読み取り権限と書き込み権限を Linux に付与します。このディレクトリは、ローカル ファイル システムの場合と同様に使用できます。