空の永続ディスクを作成するか、データソースからディスクを作成できます。永続ディスクは、仮想マシン(VM)インスタンスのブートディスクとして使用できます。または、VM にアタッチするデータディスクとして使用することもできます。このドキュメントでは、次の操作を行う方法について説明します。
- 空の非ブートゾーン永続ディスクを作成し、VM インスタンスにアタッチします。
- このディスクはデータやファイル システムが存在しない状態で起動するため、フォーマットしてマウントします。
永続ディスクに関する一般的な情報と使用可能なディスクタイプについては、永続ディスクの概要をご覧ください。
始める前に
- このガイドのコマンドラインの例を使用する場合は、次の操作を行います。
- Google Cloud CLI の最新バージョンをインストールするか、最新バージョンに更新します。
- デフォルトのリージョンとゾーンを設定します。
- このガイドの API の例を使用する場合、API アクセスを設定します。
制限事項
- インスタンスの作成時に、最大 127 個のセカンダリ(非ブート)ゾーン永続ディスクをアタッチできます。
- 合計接続容量は 1 インスタンスあたり 257 TB です。大容量のボリュームでパフォーマンスを最大限に高める方法については、論理ボリューム サイズをご覧ください。
VM に非ブートディスクを追加する
Google Cloud コンソール、Google Cloud CLI、または Compute Engine API を使用して、非ブート ゾーンディスクを作成してアタッチします。
Google Cloud コンソール でディスクを作成する場合、デフォルトのディスクタイプは pd-balanced
です。gcloud CLI または Compute Engine API を使用してディスクを作成する場合、デフォルトのディスクタイプは pd-standard
です。
Console
[VM インスタンス] ページに移動します。
このチェックボックスをオンにして、ディスクを追加するインスタンス名をクリックします。
[VM インスタンスの詳細] ページで、[編集] をクリックします。
[追加ディスク] で、[新しいディスクを追加] をクリックします。
ディスクの名前を指定して、ディスクのプロパティを構成し、[ソースの種類] として [空白] を選択します。
[完了] をクリックしてディスクの構成を完了します。
[保存] をクリックして変更をインスタンスに適用し、新しいディスクを追加します。
gcloud
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
ディスクを作成したら、実行中または停止しているインスタンスにアタッチします。
gcloud compute instances attach-disk
コマンドを使用します。gcloud compute instances attach-disk INSTANCE_NAME \ --disk DISK_NAME
次のように置き換えます。
INSTANCE_NAME
: 新しいゾーン永続ディスクを追加するインスタンスの名前。DISK_NAME
: インスタンスにアタッチする新しいディスクの名前。
gcloud compute disks describe
コマンドを使用して、ディスクの説明を表示します。
Terraform
ディスクを作成するには、google_compute_disk
リソースを使用します。
ディスクを VM にアタッチするには、google_compute_instance
リソースを使用します。
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
API
API で、
disks.insert
メソッドを使用してPOST
リクエストを作成し、ゾーン永続ディスクを作成します。name
、sizeGb
、type
プロパティを含めます。このディスクを空のフォーマットされていない非ブートディスクとして作成する場合、ソースイメージやソース スナップショットを指定しないでください。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
: インスタンスと新しいディスクが配置されるゾーン。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
compute.instances.attachDisk
メソッドに対する POST リクエストを作成し、作成したゾーン永続ディスクへの URL をリクエスト本文に含めます。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk { "source": "/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME" }
次のように置き換えます。
PROJECT_ID
: プロジェクト IDZONE
: インスタンスと新しいディスクが配置されるゾーン。INSTANCE_NAME
: 新しい永続ディスクを追加するインスタンスの名前。DISK_NAME
: 新しいディスクの名前
新しいディスクを作成して VM にアタッチしたら、ディスクをフォーマットしてマウントする必要があります。この操作を行うことで、オペレーティング システムが保存容量を使用できるようになります。
Linux VM に非ブートディスクをフォーマットしてマウントする
VM への接続
[VM インスタンス] ページに移動します。
新たにディスクをアタッチしたインスタンスの横にある [SSH] ボタンをクリックします。ブラウザが開き、インスタンスに対するターミナル接続が表示されます。
ディスクのフォーマット
ターミナルで、
lsblk
コマンドを使用してインスタンスにアタッチされているディスクを一覧表示し、フォーマットしてマウントするディスクを探します。$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 10G 0 disk └─sda1 8:1 0 10G 0 part / sdb 8:16 0 250G 0 disk
この例では、
sdb
が新しい空の永続ディスクのデバイス名です。mkfs
ツールを使用してディスクをフォーマットします。このコマンドを実行すると、指定したディスクからすべてのデータが削除されます。正しいディスク デバイスを指定してください。ファイル形式は任意ですが、パーティション分割テーブルのない単一の
ext4
ファイル システムがおすすめです。ディスク パーティションを変更しなくても、後でディスクのサイズを増やすことができます。ディスクのパフォーマンスを最大限に引き出すには、
-E
フラグで推奨フォーマット オプションを使用します。このセカンダリ ディスクではルート ボリューム用に領域を確保する必要はありません。-m 0
を指定して、使用可能なディスク容量をすべて使用します。$ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/DEVICE_NAME
DEVICE_NAME
をフォーマットするディスクのデバイス名に置き換えます。この例では、sdb
を指定し、パーティション分割テーブルを作成せずにディスク全体をフォーマットします。
ディスクのマウント
VM 上の新しいディスクのマウント ポイントにするディレクトリを作成します。任意のディレクトリを使用できます。次の例では、
/mnt/disks/
の下にディレクトリを作成します。$ sudo mkdir -p /mnt/disks/MOUNT_DIR
MOUNT_DIR
は、ディスクをマウントするディレクトリに置き換えます。mount ツールを使用してインスタンスにディスクをマウントし、
discard
オプションを有効にします。$ sudo mount -o discard,defaults /dev/DEVICE_NAME /mnt/disks/MOUNT_DIR
次のように置き換えます。
DEVICE_NAME
: マウントするディスクのデバイス名。MOUNT_DIR
: ディスクをマウントするディレクトリ。
ディスクに読み取り権限と書き込み権限を構成します。この例では、ディスクへの書き込みアクセス権をすべてのユーザーに付与します。
$ sudo chmod a+w /mnt/disks/MOUNT_DIR
MOUNT_DIR
は、ディスクをマウントしたディレクトリに置き換えます。
VM 再起動時に自動マウントを構成する
ディスクを /etc/fstab
ファイルに追加して、VM の再起動時にディスクが自動的にマウントされるようにします。Linux オペレーティング システムでは、再起動するたびにデバイス名が変わることがありますが、ディスクをシステム間で移動してもデバイス UUID は常に同じボリュームを指します。このため、デバイス名の代わりにデバイスの UUID を使用して、VM の再起動時に自動マウントを構成することをおすすめします。
現在の
/etc/fstab
ファイルのバックアップを作成します。$ sudo cp /etc/fstab /etc/fstab.backup
blkid
コマンドを使用して、ディスクの UUID を一覧表示します。$ sudo blkid /dev/DEVICE_NAME
次のように置き換えます。
DEVICE_NAME
: 自動的にマウントするディスクのデバイス名。ディスクにパーティション分割テーブルを作成した場合は、デバイス名に接尾辞を追加して、マウントするパーティションを指定します。たとえば、sdb
がディスクのデバイス名の場合、sdb1
はパーティションの名前です。
/etc/fstab
ファイルをテキスト エディタで開き、UUID を含むエントリを作成します。次に例を示します。UUID=UUID_VALUE /mnt/disks/MOUNT_DIR ext4 discard,defaults,MOUNT_OPTION 0 2
次のように置き換えます。
UUID_VALUE
: 前の手順の出力に示されているディスクの UUIDMOUNT_DIR
: ディスクをマウントしたディレクトリMOUNT_OPTION
: ブート時にゾーン永続ディスクをマウントできない場合のオペレーティング システムの動作を指定します。有効な値については、Linuxfstab
のドキュメントの 4 番目のフィールドをご覧ください。ディスクが使用できない場合でもシステムを起動できるようにするには、nofail
マウント オプションを使用します。
cat
コマンドを使用して、/etc/fstab
エントリが正しいことを確認します。$ cat /etc/fstab LABEL=cloudimg-rootfs / ext4 defaults 0 0 UUID=d761bdc5-7e2a-4529-a393-b9aefdb623b6 /mnt/disks/MOUNT_DIR ext4 discard,defaults,MOUNT_OPTION 0 2
このディスクを切断する場合、またはこの VM のブートディスクからスナップショットを作成する場合は、/etc/fstab
ファイルを編集して、このディスクのエントリを削除します。MOUNT_OPTION
が nofail
または nobootwait
に設定されている場合でも、VM に接続されているデバイスとの /etc/fstab
ファイルの同期を維持してください。ブートディスクのスナップショットを作成する前、またはディスクを切断する前に、これらのエントリを削除してください。
Windows VM に非ブートディスクをフォーマットしてマウントする
Windows ディスク管理ユーティリティを使用して、Windows VM 上の新しいディスクをフォーマットしてマウントします。
[VM インスタンス] ページに移動します。
新しい空のディスクがアタッチされている VM の横にある [RDP] ボタンをクリックします。ブラウザ上でインスタンスに対する RDP 接続が開きます。
Windows [スタート] ボタンを右クリックして [ディスクの管理] を選択します。
新しいディスクのパーティショニング スキームを選択するように求められます。[GPT] を選択して、[OK] をクリックします。
ディスクが初期化されたら、未割り当てディスク領域を右クリックして、[新しいシンプル ボリューム] を選択します。
新しいシンプル ボリューム ウィザードの指示に従って新しいボリュームを構成します。任意のパーティション形式を使用できますが、この例では
NTFS
を選択します。[クイック フォーマットする] にもチェックを入れて、フォーマット処理を高速化します。必要に応じて、[アロケーション ユニット サイズ] フィールドでクラスタのサイズを設定します。クラスタのサイズによってパーティションの最大サイズが制限されます。ゾーン永続ディスクとこのパーティションのサイズを後で変更するのであれば、この点に注意してください。ウィザードが完了してボリュームのフォーマットが終了したら、接続されたディスクのリストで
Status
列を調べて、新しいディスクがHealthy
ステータスとなっていることを確認します。
これで、ディスクにファイルを書き込むことができます。
次のステップ
- 永続ディスクのサイズを変更する方法を確認する。
- 予期しないデータ損失を回避するため、定期的にスナップショットを使用してディスクをバックアップする方法を確認する。
- 2 つのゾーン間の同期レプリケーションに、リージョン永続ディスクを使用する。