リージョン永続ディスクの追加またはサイズ変更

このページでは、リージョン永続ディスク ストレージ リソースを追加および管理する方法について説明します。リージョン ディスクのステータスを確認するには、compute disks describe DISK_NAME コマンドで --region NEW_DISK_REGION フラグを指定するか、compute.regionDisks.list コマンドを使用します。

始める前に

制限事項

リージョン永続ディスクには、次の制限があります。

  • リージョン永続ディスクはブートディスクとして使用できません。
  • リージョン永続ディスクは、スナップショットからは作成できる一方、イメージからは作成できません。
  • リージョン標準永続ディスクの最小サイズは 200 GB です。
  • メモリ最適化マシンタイプまたはコンピューティング最適化マシンタイプではリージョン永続ディスクを使用できません。
  • リージョン永続ディスクは、ゾーン障害が発生した場合に、別の仮想マシン(VM)インスタンスへの強制接続をサポートします。障害シナリオをご覧ください。
  • リージョン永続ディスクをサイズ変更する場合、大きくすることだけが可能です。永続ディスクのサイズを小さくすることはできません。
  • ゾーン永続ディスクのパフォーマンスには違いがあります。詳細については、ブロック ストレージのパフォーマンスをご覧ください。

インスタンスへのリージョン永続ディスクの追加

リージョン永続ディスクを作成し、インスタンスに接続します。インスタンスがない場合は、まず新しいインスタンスを作成して起動する必要があります。インスタンスは、ディスクと同じリージョンに作成する必要があります。

Console

まずリージョン永続ディスクを作成してから、既存のインスタンスに接続する必要があります。リージョン永続ディスクはフェイルオーバー中に強制接続できないため、ブートディスクとしては作成できません。

リージョン永続ディスクを作成します。

  1. Google Cloud Console で、[ディスク] ページに移動します。

    [ディスク] に移動

  2. プロジェクトを選択します。

  3. [ディスクを作成] をクリックします。

  4. [名前] でディスクの名前を指定します。

  5. [タイプ] でディスクのタイプを選択します。

  6. [リージョン内でこのディスクを複製] チェックボックスをオンにします。

  7. リージョンを選択します。

    インスタンスの作成時に同じリージョンを選択する必要があるため、リージョンをメモしておきます。

  8. そのリージョン内の 2 つのゾーンを選択し、[OK] をクリックします。

    ゾーンは 2 つ選択する必要があります。いずれかのゾーンのインスタンスにディスクを接続する必要があるため、選択したゾーンをメモしておきます。

  9. [ソースの種類] を選択します。

  10. [暗号化] を選択します。

  11. [作成] をクリックしてディスクの作成を終了します。

リージョン永続ディスクを作成したら、それをインスタンスに接続します。

インスタンスにディスクを接続するとき、ディスクがすでに別のインスタンスに接続されている場合はエラー メッセージが表示されることがあります。場合によっては、[既存のディスクを接続] をクリックした後に [ディスクを強制接続する] チェックボックスをオンにして、ディスクをインスタンスに強制接続する必要があります。

新しいディスクをインスタンスに接続したら、ディスクをフォーマットしてマウントする必要があります。こうすることで、オペレーティング システムが保存容量を使用できるようになります。

gcloud

gcloud コマンドライン ツールを使用して、リージョン永続ディスクを作成して接続します。

  1. リージョン永続ディスクを作成するには、compute disks create コマンドを使用します。スループットや IOPS を上げるためにリージョン SSD 永続ディスクが必要な場合は、--type フラグで pd-ssd を指定します。

    gcloud compute disks create DISK_NAME \
        --size DISK_SIZE \
        --type DISK_TYPE \
        --region REGION \
        --replica-zones ZONE1,ZONE2
    

    以下を置き換えます。

    • DISK_NAME: 新しいディスクの名前。
    • DISK_SIZE: 新しいディスクのサイズ(GB)。
    • DISK_TYPE: 永続ディスクの種類。例: pd-ssd
    • REGION: リージョン ディスクが配置されるリージョン。例: europe-west1
    • ZONE1ZONE2: 2 つのディスク レプリカが配置されるリージョン内のゾーン。
      ゾーンは 2 つ選択する必要があります。例: europe-west1-a,europe-west1-b
  2. ディスクを作成したら、実行中または停止しているインスタンスに接続します。compute instances attach-disk コマンドを使用して、--disk フラグを指定します。

    gcloud compute instances attach-disk INSTANCE_NAME \
        --disk DISK_NAME
    

    以下を置き換えます。

    • INSTANCE_NAME: 新しいリージョン永続ディスクを追加するインスタンスの名前。
    • DISK_NAME: インスタンスに接続する新しいディスクの名前。

    新しいディスクを作成してインスタンスに接続したら、ディスクをフォーマットしてマウントする必要があります。こうすることで、オペレーティング システムが保存容量を使用できるようになります。

API

  1. API で、POST リクエストを作成してリージョン永続ディスクを作ります。compute.regionDisks.insert リクエストの本文で、ディスクの namereplicaZones プロパティを指定して新しいディスクを初期化します。空のディスクを作成するには、イメージやスナップショットのソースを指定しないでください。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks
    
    {
     "name": "DISK_NAME",
     "replicaZones": [
       "projects/PROJECT_ID/zones/ZONE1",
       "projects/PROJECT_ID/zones/ZONE2"
       ],
     }
    

    以下を置き換えます。

    • PROJECT_ID: プロジェクト ID
    • DISK_NAME: 新しいディスクの名前
    • [ZONE1ZONE2: 新しいディスクのレプリカが配置されるゾーン。
  2. API で compute.instances.attachDisk メソッドに対する POST リクエストを作成し、作成した永続ディスクへの URL をリクエストの本文に含めます。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk
    
    {
     "source": "/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME"
    }
    

    以下を置き換えます。

    • PROJECT_ID: プロジェクト ID
    • ZONE: インスタンスの場所
    • INSTANCE_NAME: 新しい永続ディスクを追加するインスタンスの名前
    • DISK_NAME: 新しいディスクの名前

新しいディスクを作成してインスタンスに接続したら、ディスクをフォーマットしてマウントする必要があります。こうすることで、オペレーティング システムが保存容量を使用できるようになります。

リージョン永続ディスクのサイズ変更

リージョン永続ディスクを持つインスタンスで追加の保存容量、IOPS、スループットが必要な場合は、ディスクのサイズを変更できます。データを固有のボリュームに分離する必要がある場合は、インスタンス用に複数のセカンダリ ディスクを作成します。実行中のインスタンスに接続しているかどうかにかかわらず、いつでもディスクをサイズ変更できます。

リージョン永続ディスクをサイズ変更するためのコマンドは、標準永続ディスクのサイズ変更のコマンドと同じですが、リージョン用の追加のフラグがあります。

Console

リージョン永続ディスクのサイズを変更します。

  1. Google Cloud Console で、[ディスク] ページに移動します。

    [ディスク] に移動

  2. サイズを変更するディスクを選択します。

  3. ページ上部の [編集] をクリックします。

  4. ディスクのサイズを GB 単位で入力します。

    ディスクサイズの拡張のみ行えます。ディスクサイズの縮小はできません。

  5. [保存] をクリックします。

  6. ディスクをサイズ変更したら、オペレーティング システムが追加の容量にアクセスできるように、ファイル システムをサイズ変更する必要があります。

    ディスクのリストに新しいディスクサイズが表示されます。

gcloud

gcloud ツールで、compute disks resize コマンドを使用します。--size フラグには必要なディスクサイズ(GB)、--region フラグにはディスクが配置されるリージョンを指定します。

gcloud compute disks resize DISK_NAME \
    --region REGION  \
    --size DISK_SIZE

以下を置き換えます。

  • DISK_NAME: サイズ変更するディスクの名前
  • REGION: ディスクが配置されるリージョン
  • DISK_SIZE: ディスクの新しいサイズ(GB)

ディスクをサイズ変更したら、オペレーティング システムが追加の容量にアクセスできるように、ファイル システムをサイズ変更する必要があります。

API

API で、compute.regionDisks.resize メソッドに対して POST リクエストを作成します。リクエストの本文で sizeGb パラメータを指定し、必要なディスクサイズ(GB 単位)に設定します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME/resize

{
 "sizeGb": "DISK_SIZE"
}

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • REGION: ディスクが配置されるリージョン
  • DISK_NAME: サイズ変更するディスクの名前
  • DISK_SIZE: ディスクの新しいサイズ(GB)

ディスクをサイズ変更したら、オペレーティング システムが追加の容量にアクセスできるように、ファイル システムをサイズ変更する必要があります。

複数のインスタンスでリージョン永続ディスクを共有

非ブート永続ディスクを複数の仮想マシン インスタンスに読み取り専用モードで接続し、複数インスタンス間で静的データを共有できます。1 つの永続ディスクの静的データを複数インスタンスで共有することは、個別インスタンス固有のディスクにデータをレプリケートするよりもコストがかかりません。

永続ディスクを複数のインスタンスにアタッチする場合、すべてのインスタンスが永続ディスクを読み取り専用モードでアタッチする必要があります。複数のインスタンスに読み取り / 書き込みモードで永続ディスクをアタッチすることはできません。複数のインスタンスで動的記憶領域を共有する必要がある場合は、次のいずれかのオプションを使用できます。

複数のインスタンスで共有したいデータを含む永続ディスクがある場合は、読み取り / 書き込みインスタンスとのアタッチを切断し、1 つ以上のインスタンスと読み取り専用モードでアタッチします。

Console

  1. Google Cloud Console で、[インスタンス] ページに移動します。

    [インスタンス] に移動

  2. ディスクを接続するインスタンスの名前をクリックします。インスタンスの詳細ページが開きます。

  3. インスタンス詳細ページの一番上で [編集] をクリックします。

  4. [追加ディスク] セクションで、[既存のディスクを接続] をクリックします。

  5. リストからリージョン永続ディスクを選択します。

  6. [モード] セクションで、[読み取り専用] を選択します。

  7. [完了] をクリックします。

  8. インスタンスの詳細ページの一番下にある [保存] をクリックして変更内容をインスタンスに適用します。

  9. インスタンスに接続して、ディスクをマウントします。

  10. このプロセスを繰り返して、他のインスタンスに読み取り専用モードでディスクを追加します。

gcloud

gcloud ツールで compute instances attach-disk コマンドを実行し、ro オプションで --mode フラグを指定します。

gcloud beta compute instances attach-disk INSTANCE_NAME --disk DISK_NAME \
    --disk-scope regional --mode ro

以下を置き換えます。

  • INSTANCE_NAME: 永続ディスクを接続するインスタンスの名前
  • DISK_NAME: 接続するディスクの名前

ディスクを接続した後、インスタンスに接続してディスクをマウントします。

読み取り専用モードでディスクを追加するインスタンスごとに、このコマンドを繰り返します。

API

API で、compute.instances.attachDisk メソッドに対して POST リクエストを作成します。リクエストの本文で、mode パラメータに READ_ONLY を指定します。

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk

{
 "source": "regions/REGION/disks/DISK_NAME",
 "mode": "READ_ONLY"
}

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • ZONE: インスタンスのゾーン
  • INSTANCE_NAME: 永続ディスクを接続するインスタンスの名前
  • REGION: ディスクが配置されるリージョン
  • DISK_NAME: 接続するディスクの名前

ディスクを接続した後、インスタンスに接続してディスクをマウントします。

ディスクを読み取り専用モードで追加するインスタンスごとにこのリクエストを繰り返します。

ゾーン永続ディスクのリージョン永続ディスクへの移行

既存のゾーン永続ディスクをリージョン永続ディスクに変換するには、現在の永続ディスクのスナップショットを作成し、スナップショットからリージョン永続ディスクを作成します。

gcloud

gcloud ツールで、compute disks snapshot コマンドを使用し、--zone フラグと --snapshot-names フラグを指定します。

gcloud compute disks snapshot DISK_NAME \
    --zone ZONE \
    --snapshot-names SNAPSHOT_DISK_NAME

以下を置き換えます。

  • DISK_NAME: スナップショットを作成するディスクの名前
  • ZONE: ソース ゾーンディスクが配置されている場所
  • SNAPSHOT_DISK_NAME: 新しいスナップショットが作成されるディスクの名前

compute disks create を使用して、ゾーンディスクのスナップショットからリージョン ディスクを作成します。ディスク名、--region--replica-zones--source-snapshot の各フラグを指定します。

gcloud compute disks create DISK_NAME \
    --region REGION \
    --replica-zones ZONE1,ZONE2 \
    --source-snapshot SNAPSHOT_DISK_NAME

以下を置き換えます。

  • DISK_NAME: 新しいディスクの名前
  • REGION: ディスクが配置されるリージョン
  • ZONE1ZONE2: 新しいリージョン永続ディスクのレプリカが存在するゾーン
  • SNAPSHOT_DISK_NAME: ソース スナップショット ディスクの名前

同じ方法を使用して、リージョン ディスクをゾーンディスクに移行できます。

API

API で、compute.disk.createSnapshot メソッドに対して POST リクエストを作成して、ディスクのスナップショットを作ります。リクエストの本文で、ディスクが存在する場所の zone、スナップショットを作成する disk の名前、createSnapshot を指定します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME/createSnapshot

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • ZONE: ディスクが配置されるゾーン
  • DISK_NAME: スナップショットを作成するディスクの名前

API で、POST リクエストを作成してリージョン永続ディスクを作ります。compute.regionDisks.insert リクエストの本文で、新しいディスクを初期化して、ディスク名とレプリカのゾーンのプロパティを指定します。これはデータディスクのため、空のディスクを作成する sourceImage プロパティは含めないでください。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks

{
 "name": "DISK_NAME",
 "sourceSnapshot": "global/snapshots/SNAPSHOT_NAME",
 "replicaZones": [
 "projects/PROJECT_ID/zones/ZONE1",
 "projects/PROJECT_ID/zones/ZONE2"
 ],
}

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • REGION: ディスクが配置されるリージョン
  • DISK_NAME: 新しいディスクの名前
  • SNAPSHOT_NAME: 復元するスナップショット
  • ZONE1ZONE2: 新しいリージョン永続ディスクのレプリカが存在するゾーン

次のステップ