ディスクタイプを変更する


このドキュメントでは、ディスクに対して特定のタスクを実行する方法について説明します。次のいずれかのタスクを実行するには、新しいディスクを作成する必要があります。ディスクに対して次の変更を行うことはできません。

  • ディスクのタイプを変更する。たとえば、Hyperdisk Throughput ボリュームから Hyperdisk Balanced ボリュームへの変更などです。
  • ディスクの暗号化タイプを変更する。たとえば、ディスクの暗号化を Google 生成の鍵から顧客管理の暗号鍵(CMEK)に変更することなどです。
  • ディスクを Hyperdisk ストレージ プールとの間で移動する。

前述のタスクを実行する手順は次のとおりです。

  1. 既存のディスクのスナップショットを作成します。
  2. スナップショットをディスクのデータソースとして使用して、正しいタイプまたはストレージ プール(「プレースメント」)内に新しいディスクを作成します。
  3. 新しいディスクを確認したら、元のディスクを削除できます。

始める前に

必要なロールと権限

ディスクタイプを変更するために必要な権限を取得するには、プロジェクトに関する次の IAM ロールを付与するように管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

これらの事前定義ロールには、ディスクタイプを変更するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

ディスクタイプを変更するには、次の権限が必要です。

  • ディスクのスナップショットを作成するには:
    • プロジェクトに対する compute.snapshots.create
    • ディスクに対する compute.disks.createSnapshot
  • 新しいディスクを作成するには: プロジェクトに対する compute.disks.create
  • ストレージ プールにディスクを作成するには:
    • プロジェクトに対する compute.storagePools.use
    • プロジェクトに対する compute.disks.create
  • ディスクを VM にアタッチするには:
    • VM に対する compute.instances.attachDisk
    • VM にアタッチするボリュームに対する compute.disks.use
  • ディスクを削除する: プロジェクトに対する compute.disks.delete

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

ディスクのタイプまたはプレースメントを変更する

Persistent Disk ボリュームを Hyperdisk に移行する場合、またはストレージ プール内外でディスクを再作成する場合は、ディスクのスナップショットを作成し、そのスナップショットを新しいディスクの作成時に使用します。

新しい Hyperdisk ボリュームを作成する場合は、スタンドアロン ディスクとして作成することも、ストレージ プール(存在する場合)にディスクを作成することもできます。

コンソール

  1. ディスク スナップショットの作成の準備を行います。

    重要: スナップショットを作成する前にアプリケーションを一時停止した場合は、スナップショット リソースが UPLOADING ステータスになった後にのみ、ワークロードを再開します。

    詳しくは、アプリケーション整合性のあるスナップショットを手動で作成するの表をご覧ください。

  2. 既存のディスクのスナップショットを作成します。

  3. 省略可: ストレージ プールに新しい Hyperdisk を作成するには、ストレージ プールを作成する必要があります(存在しない場合)。
  4. [ディスク] ページに移動します。

    [ディスク] に移動
  5. [+ ディスクを作成] をクリックします。
  6. [ディスクタイプ] で、[Hyperdisk Extreme]、[Hyperdisk Throughput]、または [バランス Hyperdisk] を選択します。

    省略可: ストレージ プールを使用するには、バランス Hyperdisk または Hyperdisk Throughput を選択します。

  7. [ディスクソースのタイプ] で [スナップショット] を選択し、復元するスナップショットの名前を選択します。
  8. 新しいディスクのサイズ(GiB 単位)を選択します。この数は、スナップショットの元のソースディスク以上である必要があります。
  9. 省略可: ディスクタイプを変更する場合は、デフォルトの値を変更します。

    • バランス Hyperdisk: [プロビジョニングされた IOPS] の値と [プロビジョニングされたスループット] の値を変更します。
    • Hyperdisk Extreme: [プロビジョニングされた IOPS] の値を変更します。
    • Hyperdisk Throughput: [プロビジョニングされたスループット] の値を変更します。
  10. 省略可: ストレージ プールに新しいディスクを作成するには:

    1. [ストレージ プール] セクションで、[ストレージ プールを有効にする] を選択します。
    2. ディスクを作成するストレージ プールの名前を選択します。

      選択したゾーンに存在するストレージ プールのみがリストに表示されます。

  11. [作成] をクリックして新しいディスクを作成します。
  12. ディスクの作成後、実行中または停止中のコンピューティング インスタンスにディスクをアタッチできます。

gcloud

  1. ディスク スナップショットの作成の準備を行います。

    重要: スナップショットを作成する前にアプリケーションを一時停止した場合は、スナップショット リソースが UPLOADING ステータスになった後にのみ、ワークロードを再開します。

    詳しくは、アプリケーション整合性のあるスナップショットを手動で作成するの表をご覧ください。

  2. 既存のディスクのスナップショットを作成します。

  3. disks create コマンドを使用して、スナップショットから Hyperdisk ボリュームを作成します。

    gcloud compute disks create DISK_NAME \
     --zone=ZONE \
     --storage-pool=STORAGE_POOL_NAME \
     --size=SIZE \
     --source-snapshot=SNAPSHOT_NAME \
     --type=DISK_TYPE \
     --provisioned-iops=PROVISIONED_IOPS \
     --provisioned-throughput=PROVISIONED_THROUGHPUT
    

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

    • DISK_NAME: ディスクの一意の名前。スペースで区切られたディスク名のリストを指定して、同じ属性を持つ複数のディスクを作成できます。
    • ZONE: ディスクを作成するゾーンストレージ プールにディスクを作成する場合は、ストレージ プールを配置するゾーンを指定する必要があります。この値は、リージョン ゾーン形式(us-central1-a など)で指定します。
    • STORAGE_POOL_NAME: 省略可。ディスクを作成するストレージ プールの名前。このパラメータを指定しない場合、スタンドアロンの Hyperdisk が作成されます。
    • SIZE: 省略可。新しいディスクのプロビジョニングされる容量。サイズは、ソース Persistent Disk のサイズ以上にする必要があります。この値は整数で、その後に GB(ギビバイト)または TB(テビバイト)のサイズ単位が続きます。サイズが指定されていない場合、デフォルト値として 100 GB が使用されます。
    • SNAPSHOT_NAME: 元のディスクから作成したスナップショットの名前。
    • DISK_TYPE: 作成するディスクのタイプ。ストレージ プールにディスクを作成する場合、この値は Hyperdisk ストレージ プールのタイプ(hyperdisk-balanced または hyperdisk-throughput)と一致する必要があります。
    • PROVISIONED_IOPS: 省略可。ディスクのプロビジョニングされる IOPS。このパラメータを使用できるのは、Hyperdisk Balanced ディスクまたは Hyperdisk Extreme ディスクを作成する場合のみです。
    • PROVISIONED_THROUGHPUT: 省略可。Hyperdisk Balanced ディスクと Hyperdisk Throughput ディスクの場合に、ディスクのプロビジョニングされるスループット(MB/秒)。値には正の整数を指定してください。
  4. ディスクの作成後、実行中または停止中のコンピューティング インスタンスにディスクをアタッチできます。

REST

  1. disks.insert メソッドを使用して、ゾーン Hyperdisk を作成する POST リクエストを作成します。 namesizeGbtypesourceSnapshot プロパティを含めます。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks
    {
       "name": "DISK_NAME",
       "sizeGb": "DISK_SIZE",
       "type": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE",
       "sourceSnapshot": "SNAPSHOT_NAME",
       "provisionedIops": "IOPS_LIMIT",
       "provisionedThroughput": "THROUGHPUT_LIMIT",
       "accessMode": "DISK_ACCESS_MODE"
    }
    

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

    • PROJECT_ID: プロジェクト ID
    • ZONE: コンピューティング インスタンスと新しいディスクが配置されるゾーン
    • DISK_NAME: 新しいディスクの名前
    • DISK_SIZE: 省略可。新しいディスクのサイズ。この値は整数で、その後に GiB(ギビバイト)または TiB(テビバイト)のサイズ単位が続きます。
    • DISK_TYPE: ディスクのタイプ。Hyperdisk ボリュームを作成するには、次のいずれかの値を使用します。hyperdisk-balancedhyperdisk-extremehyperdisk-ml、または hyperdisk-throughput
    • IOPS_LIMIT: 省略可。Hyperdisk Balanced と Hyperdisk Extreme の場合、これはディスクが処理できる 1 秒あたりの I/O オペレーションの数です。
    • THROUGHPUT_LIMIT: 省略可。Hyperdisk Balanced ボリューム、Hyperdisk ML ボリューム、または Hyperdisk Throughput ボリュームの場合、これはディスクが処理できるスループット(MiB/秒で測定)を表す整数です。
    • DISK_ACCESS_MODE: コンピューティング インスタンスがディスク上のデータにアクセスする方法。サポートされている値は次のとおりです。

      • READ_WRITE_SINGLE: 1 つのインスタンスからの読み取り / 書き込みアクセス。これがデフォルト値です。
      • READ_WRITE_MANY: 複数のインスタンスからの読み取り / 書き込みアクセス。
      • READ_ONLY_MANY: 複数のインスタンスからの読み取り専用アクセス。

      アクセスモードは、次のディスクタイプに設定できます。

      • Hyperdisk Balanced
      • Hyperdisk ML
      • Hyperdisk Balanced High Availability(プレビュー
  2. 省略可: compute.disks.get メソッドを使用して、ディスクの説明を表示します。

  3. ディスクの作成後、実行中または停止中のコンピューティング インスタンスにディスクをアタッチできます。

ゾーンディスクをリージョン Hyperdisk Balanced High Availability ディスクに変更する

ゾーンディスクを Hyperdisk Balanced High Availability ディスクに変更するには、ゾーンディスクのスナップショットを作成し、リージョン ディスクの作成時にそのスナップショットをソースとして使用します。

コンソール

  1. ディスク スナップショットの作成の準備を行います。

    重要: スナップショットを作成する前にアプリケーションを一時停止した場合は、スナップショット リソースが UPLOADING ステータスになった後にのみ、ワークロードを再開します。

    詳しくは、アプリケーション整合性のあるスナップショットを手動で作成するの表をご覧ください。

  2. 既存のディスクのスナップショットを作成します。

  3. [ディスク] ページに移動します。

    [ディスク] に移動
  4. [+ ディスクを作成] をクリックします。
  5. ディスクの名前を指定します。
  6. [ロケーション] フィールドで [リージョン] を選択します。
  7. [リージョン] フィールドと [ゾーン] フィールドに、ディスクのプライマリ ゾーンを指定します。

    ディスクは、アタッチするコンピューティング インスタンスと同じリージョンに存在している必要があります。

  8. [レプリカのゾーン] フィールドにセカンダリ ゾーンを指定します。
  9. [ディスクソースのタイプ] で [スナップショット] を選択し、復元するスナップショットの名前を選択します。
  10. [ディスクタイプ] で [Hyperdisk Balanced の高可用性] を選択します。

    リストに Hyperdisk Balanced High Availability ディスクタイプが表示されない場合は、Hyperdisk Balanced High Availability ディスクが提供されているリージョンを選択する必要があります。

  11. 新しいディスクのサイズ(GiB 単位)を選択します。この数は、スナップショットの元のソースディスク以上である必要があります。
  12. 省略可: 新しいディスクの [プロビジョニングされた IOPS] と [プロビジョニングされたスループット] のデフォルト値を変更します。

  13. [作成] をクリックして新しいディスクを作成します。
  14. ディスクの作成後、実行中または停止中のコンピューティング インスタンスにディスクをアタッチできます。

gcloud

  1. ディスク スナップショットの作成の準備を行います。

    重要: スナップショットを作成する前にアプリケーションを一時停止した場合は、スナップショット リソースが UPLOADING ステータスになった後にのみ、ワークロードを再開します。

    詳しくは、アプリケーション整合性のあるスナップショットを手動で作成するの表をご覧ください。

  2. 既存のディスクのスナップショットを作成します。

  3. disks create コマンドを使用して、スナップショットから Hyperdisk Balanced High Availability ディスクを作成します。

    gcloud compute disks create DISK_NAME \
     --size=SIZE \
     --type=hyperdisk-balanced-high-availability \
     --source-snapshot=SNAPSHOT_NAME \
     --provisioned-iops=PROVISIONED_IOPS \
     --provisioned-throughput=PROVISIONED_THROUGHPUT \
     --region=REGION \
     --replica-zones=ZONE1,ZONE2
    

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

    • DISK_NAME: ディスクの一意の名前。
    • SIZE: 省略可。新しいディスクのプロビジョニングされる容量。サイズは、ソースディスクのサイズ以上にする必要があります。この値は整数で、その後に GiB(ギビバイト)または TiB(テビバイト)のサイズ単位が続きます。
    • SNAPSHOT_NAME: 元のディスクから作成したスナップショットの名前。
    • PROVISIONED_IOPS: 省略可。ディスクのプロビジョニングされる IOPS。
    • PROVISIONED_THROUGHPUT: 省略可。ディスクのプロビジョニングされるスループット。単位は MB(メガバイト)/秒です。
    • REGION: リージョン ディスクを配置するリージョン(例: europe-west1
    • ZONE1ZONE2: 2 つのディスク レプリカが配置されるリージョン内のゾーン(例: europe-west1-b,europe-west1-c

Terraform

Hyperdisk Balanced High Availability ボリュームを作成するには、次の例に示すように google_compute_region_disk リソースを使用しますが、ディスクタイプを pd-ssd から hyperdisk-balanced-high-availability に変更します。

resource "google_compute_region_disk" "regiondisk" {
  name                      = "region-disk-name"
  snapshot                  = google_compute_snapshot.snapdisk.id
  type                      = "pd-ssd"
  region                    = "us-central1"
  physical_block_size_bytes = 4096
  size                      = 11

  replica_zones = ["us-central1-a", "us-central1-f"]
}

REST

Hyperdisk Balanced High Availability ボリュームを作成するには、compute.regionDisks.insert メソッドPOST リクエストを作成します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks
{
  "name": "DISK_NAME",
  "sourceSnapshot": "SNAPSHOT_NAME",
  "region": "projects/PROJECT_ID/regions/REGION",
  "replicaZones": [
    "projects/PROJECT_ID/zones/ZONE1",
    "projects/PROJECT_ID/zones/ZONE2"
  ],
  "sizeGb": "DISK_SIZE",
  "type": "projects/PROJECT_ID/regions/REGION/diskTypes/hyperdisk-balanced-high-availability"
}

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

  • PROJECT_ID: プロジェクト ID
  • REGION: リージョン ディスクを配置するリージョン(例: europe-west1
  • DISK_NAME: 新しいディスクの名前
  • SNAPSHOT_NAME: 元のディスクから作成したスナップショットの名前。
  • ZONE1ZONE2: 新しいディスクのレプリカが配置されるゾーン(例: europe-west1-b,europe-west1-c
  • DISK_SIZE: 新しいディスクのサイズ(GiB)

VM インスタンスから新しいディスクにアクセスできるようにする

ディスクの作成後、使用する前にコンピュート インスタンスにディスクをアタッチするか、コンピュート インスタンスにリージョン ディスクをアタッチする必要があります。

作成した新しいディスクは空のディスクではないため、インスタンスにアタッチしたディスクは、マウントするだけでオペレーティング システムで使用できるようになります。

ディスクのマウント方法については、以下をご覧ください。

元のディスクを削除する

新しいディスクを確認したら、次のことが可能です。

次のステップ