永続ディスクを VM に追加する


空の永続ディスクを作成することも、データソースからディスクを作成することもできます。永続ディスクは、仮想マシン(VM)インスタンスのブートディスクとして使用するか、VM にアタッチするデータディスクとして使用できます。

このドキュメントでは、次の方法について説明します。

  • 空の非ブートゾーン永続ディスクを作成し、VM にアタッチする。

後で VM の作成に使用できるブートディスクを作成する場合は、カスタマイズされたブートディスクを作成するをご覧ください。

Google Cloud Hyperdisk ディスクを VM に追加する場合は、VM に Hyperdisk ストレージを追加するをご覧ください。

VM で永続ディスクをフォーマットまたはマウントする必要がある場合は、以下をご覧ください。

Persistent Disk に関する一般的な情報と使用可能なディスクタイプについては、Persistent Disk の概要をご覧ください。

始める前に

  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    コンソール

    Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。

    gcloud

    1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    Terraform

    このページの Terraform サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。

    1. Google Cloud CLI をインストールします。
    2. gcloud CLI を初期化するには:

      gcloud init
    3. Google アカウントのローカル認証情報を作成します。

      gcloud auth application-default login

    詳細については、 ローカル開発環境の認証の設定 をご覧ください。

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init

制限事項

  • VM の作成時に、最大 127 個のセカンダリ(非ブート)ゾーン永続ディスクをアタッチできます。
  • アタッチできる合計容量は VM あたり 257 TB です。大容量のボリュームでパフォーマンスを最大限に高める方法については、論理ボリューム サイズをご覧ください。

VM に非ブートディスクを追加する

Google Cloud コンソールGoogle Cloud CLI、または REST を使用して、非ブート ゾーンディスクを作成してアタッチします。

Google Cloud コンソールでディスクを作成する場合、デフォルトのディスクタイプpd-balanced です。gcloud CLI または REST を使用してディスクを作成する場合、デフォルトのディスクタイプは pd-standard です。

ディスクを VM にアタッチするときに、カスタム デバイス名を指定する必要があります。指定した名前は、ゲスト OS でディスクのシンボリック リンクを生成するために使用されます。これにより、識別が容易になります。

Console

  1. [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. ディスクを追加する VM の名前をクリックします。

  3. 詳細ページで [編集] をクリックします。

  4. [追加ディスク] で、[新しいディスクを追加] をクリックします。

  5. ディスクの名前を指定して、ディスクのプロパティを構成し、[ソースの種類] として [空白] を選択します。

  6. オプション: [デバイス名] という見出しで、[カスタム デバイス名を使用する] オプションを選択します。入力した名前は、ディスクのシンボリック リンクを生成するために使用されます。これにより、ディスクを識別しやすくなります。

  7. [完了] をクリックしてディスクの構成を完了します。

  8. [保存] をクリックして変更を VM に適用し、新しいディスクを追加します。

gcloud

  1. Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。

    Cloud Shell をアクティブにする

    Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。

  2. gcloud compute disks create コマンドを使用してゾーン永続ディスクを作成します。

    gcloud compute disks create DISK_NAME \
      --size DISK_SIZE \
      --type DISK_TYPE
    

    次のように置き換えます。

    • DISK_NAME: 新しいディスクの名前。
    • DISK_SIZE: 新しいディスクのサイズ(ギガバイト単位)。使用できるサイズは、1 GB 単位で 10~65,536 GB の範囲です。
    • DISK_TYPE: 永続ディスクのタイプの完全な URL または部分的な URL。例: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd
  3. ディスクを作成したら、実行中または停止している VM にアタッチします。gcloud compute instances attach-disk コマンドを実行します。

    gcloud compute instances attach-disk VM_NAME \
      --disk DISK_NAME --device-name=DEVICE_NAME
    

    次のように置き換えます。

    • VM_NAME: 新しいゾーン永続ディスクを追加する VM の名前
    • DISK_NAME: VM にアタッチする新しいディスクの名前
    • DEVICE_NAME: オプション。ゲスト OS がディスクの識別に使用する名前
  4. gcloud compute disks describe コマンドを使用して、ディスクの説明を表示します。

Terraform

ディスクを作成するには、google_compute_disk リソースを使用します。

# Using pd-standard because it's the default for Compute Engine

resource "google_compute_disk" "default" {
  name = "disk-data"
  type = "pd-standard"
  zone = "us-west1-a"
  size = "5"
}

ディスクを VM にアタッチするには、google_compute_instance リソースを使用します。

resource "google_compute_instance" "test_node" {
  name         = "test-node"
  machine_type = "f1-micro"
  zone         = "us-west1-a"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }
  attached_disk {
    source      = google_compute_disk.default.id
    device_name = google_compute_disk.default.name
  }

  network_interface {
    network = "default"
    access_config {
      # Ephemeral IP
    }
  }

  # Ignore changes for persistent disk attachments
  lifecycle {
    ignore_changes = [attached_disk]
  }


}

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

REST

  1. disks.insert メソッドを使用して、POST リクエストを作成し、ゾーン永続ディスクを作成します。namesizeGbtype プロパティを含めます。このディスクを空のフォーマットされていない非ブートディスクとして作成する場合、ソースイメージやソース スナップショットを指定しないでください。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks
    
    {
     "name": "DISK_NAME",
     "sizeGb": "DISK_SIZE",
     "type": "DISK_TYPE"
    }
    

    次のように置き換えます。

    • PROJECT_ID: プロジェクト ID。
    • ZONE: VM と新しいディスクが配置されるゾーン。
    • DISK_NAME: 新しいディスクの名前。
    • DISK_SIZE: 新しいディスクのサイズ(ギガバイト単位)。使用できるサイズは、1 GB 単位で 10~65,536 GB の範囲です。
    • DISK_TYPE: 永続ディスクのタイプの完全な URL または部分的な URL。例: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd
  2. compute.instances.attachDisk メソッドに対する POST リクエストを作成し、作成したゾーン永続ディスクへの URL を含めます。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/attachDisk
    
    {
     "source": "/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME",
     "deviceName": DEVICE_NAME
    }
    

    次のように置き換えます。

    • PROJECT_ID: プロジェクト ID
    • ZONE: VM と新しいディスクが配置されるゾーン
    • VM_NAME: 新しい永続ディスクを追加する VM の名前
    • DISK_NAME: 新しいディスクの名前
    • DEVICE_NAME: オプション。ゲスト OS がディスクの識別に使用する名前

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

次のステップ