このページでは、ゾーン永続ブートディスクとセカンダリ(非ブート)ゾーン永続ディスクの両方のサイズを変更する方法について説明します。また、インスタンス上に新しいゾーン永続ディスクを追加してフォーマットする方法についても説明します。
ゾーン永続ディスクのサイズは大きくすることができますが、小さくすることはできません。
予期しないデータ損失を防ぐため、スナップショットを使用してディスクをバックアップすることをおすすめします。
ゾーン永続ディスクには、標準のハードディスク ドライブ(HDD)またはソリッド ステート ドライブ(SSD)が使用できます。ゾーン永続ディスクの概要と使用可能な永続ディスクの種類については、永続ディスクの概要を参照してください。
ゾーン永続ディスクの背後で Compute Engine がハードウェアを管理しているため、ストライピングや冗長性を処理せずにディスクの追加やサイズ変更を行うことができます。予備ディスクとして大容量の 1 台を接続しておいて追加容量が必要になったときにサイズを変更することも、複数の小容量ディスクを接続してデータを複数のボリュームに分割することもできます。
イメージからディスクを作成する場合を除き、新しいゾーン永続ディスクはデータやファイル システムなしで作成します。これらのディスクは、インスタンスに接続した後に自分でフォーマットする必要があります。
ゾーン標準永続ディスクでも SSD 永続ディスクでもパフォーマンス要件や柔軟性要件が満たされない場合は、インスタンスにその他のストレージ オプションを追加できます。
作成したすべての永続ディスクには、デフォルトの物理ブロックサイズ(4 KB)が設定されます。データベース アプリケーションで物理ブロックサイズを増やす必要がある場合は、ディスクの作成時に 16 KB を選択できます。この機能はブートディスクでは使用できません。既存のディスクの物理ブロックサイズを変更する場合は、ディスクのスナップショットを作成してから新しいディスクを作成する必要があります。永続ディスクの物理ブロックサイズを直接編集することはできません。
始める前に
- このガイドのコマンドラインの例を使用する場合、以下を行ってください。
- gcloud コマンドライン ツールの最新バージョンをインストールするか、最新バージョンに更新します。
- デフォルトのリージョンとゾーンを設定します。
- このガイドの API の例を使用する場合は API アクセスを設定します。
- 異なるタイプの永続ディスクの違いを確認します。
インスタンスへのゾーン永続ディスクの追加
ゾーン標準永続ディスクまたは SSD 永続ディスクを作成し、それを既存のインスタンスに追加します。インスタンスがない場合は、新しいインスタンスを作成して起動します。インスタンスの作成時に、最大 127 個のセカンダリ(非ブート)ゾーン永続ディスクを接続し、アプリケーション、データファイル、データベース、ログを別々のボリュームに保存できます。合計接続容量は 1 インスタンスあたり 257 TB です。大容量のボリュームでパフォーマンスを最大限に高める方法については、大容量論理ボリュームのパフォーマンスを参照してください。
Google Cloud Platform Console、gcloud
ツール、API でゾーン永続ディスクを作成して接続します。
Console
Google Cloud Platform Console でゾーン永続ディスクを作成して接続します。
- [VM インスタンス] ページに移動します。
- チェックボックスをオンにして、ディスクを追加するインスタンスの名前をクリックします。
- [VM インスタンスの詳細] ページの上部にある [編集] をクリックします。
- [追加ディスク] で、[新しいディスクを追加] をクリックします。
ディスクの名前を指定して、ディスクのプロパティを構成し、ディスクの [ソースの種類] を指定します。
必要に応じて、物理ブロックサイズ(KB)を選択できます。ディスクのデフォルトのサイズは 4 KB です。ただし、プルダウン メニューから 16 KB を選択して、ディスクの物理ブロックサイズを増やすことができます。
[完了] をクリックしてディスクの構成を完了してください。
[VM インスタンスの詳細] ページの下部にある、[保存] をクリックしてインスタンスに変更を適用し、新しいディスクを追加します。
新しいディスクを作成してインスタンスに接続したら、ディスクをフォーマットしてマウントする必要があります。こうすることで、オペレーティング システムが保存容量を使用できるようになります。
gcloud
gcloud
ツールでゾーン永続ディスクを作成して接続します。
gcloud beta compute disks create
コマンドを使用してゾーン永続ディスクを作成します。スループットや IOPS を上げるためにゾーン SSD 永続ディスクが必要な場合は、--type
フラグでpd-ssd
を指定します。--physical-block-size
フラグを追加して、物理ブロックサイズを設定することもできます。gcloud beta compute disks create [DISK_NAME] / --size [DISK_SIZE] / --type [DISK_TYPE] / --physical-block-size [BLOCK_SIZE]
ここで
[DISK_NAME]
は、新しいディスクの名前です。[DISK_SIZE]
は、新しいディスクのサイズ(GB)です。[DISK_TYPE]
は、永続ディスクのタイプ(pd-standard
またはpd-ssd
のいずれか)です。[BLOCK_SIZE]
は、4096
(4 KB)または16384
(16 KB)のいずれかです。4 KB がデフォルトの物理ブロックサイズです。16 KB は増加後の物理ブロックサイズです。
ディスクを作成したら、実行中または停止しているインスタンスに接続します。
gcloud compute instances attach-disk
コマンドを実行します。gcloud compute instances attach-disk [INSTANCE_NAME] / --disk [DISK_NAME]
ここで
[INSTANCE_NAME]
は、新しいゾーン永続ディスクを追加するインスタンスの名前です。[DISK_NAME]
は、インスタンスに接続する新しいディスクの名前です。
新しいディスクを作成してインスタンスに接続したら、ディスクをフォーマットしてマウントする必要があります。こうすることで、オペレーティング システムが保存容量を使用できるようになります。
gcloud beta compute disks describe
コマンドを使用して、ディスクの説明を表示します。レスポンスには、ディスクの物理ブロックサイズが含まれます。
API
API では、
disks.insert
メソッドを使用してPOST
リクエストを作成し、ゾーン永続ディスクを作成します。name
、sizeGb
、type
プロパティを含めます。新しいディスクを空のフォーマットされていない非ブートディスクとして作成する場合、このディスクにソースイメージやソース スナップショットを指定しないでください。必要に応じて、physicalBlockSizeBytes
プロパティを使用して、物理ブロックサイズを設定します。POST https://www.googleapis.com/compute/beta/projects/[PROJECT_ID]/zones/[ZONE]/disks { "name": "[DISK_NAME]", "sizeGb": "[DISK_SIZE]", "type": "zones/[ZONE]/diskTypes/[DISK_TYPE]" "physicalBlockSizeBytes": "[BLOCK_SIZE]" }
ここで
[PROJECT_ID]
は、プロジェクト ID です。[ZONE]
は、インスタンスと新しいディスクが配置されるゾーンです。[DISK_NAME]
は、新しいディスクの名前です。[DISK_SIZE]
は、新しいディスクのサイズ(GB)です。[DISK_TYPE]
は、永続ディスクの種類です。pd-standard
またはpd-ssd
を指定します。[BLOCK_SIZE]
は、4096
(4 KB)または16384
(16 KB)のいずれかです。4 KB がデフォルトの物理ブロックサイズです。16 KB は増加後の物理ブロックサイズです。
compute.instances.attachDisk
メソッドに対する POST リクエストを作成し、作成したゾーン永続ディスクへの URL をリクエスト本文に含めます。POST https://www.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]
は、プロジェクト ID です。[ZONE]
は、インスタンスと新しいディスクが配置されるゾーンです。[INSTANCE_NAME]
は、新しい永続ディスクを追加するインスタンスの名前です。[DISK_NAME]
は、新しいディスクの名前です。
新しいディスクを作成してインスタンスに接続したら、ディスクをフォーマットしてマウントする必要があります。こうすることで、オペレーティング システムが保存容量を使用できるようになります。
ゾーン永続ディスクのフォーマットとマウント
新しいゾーン永続ディスクはデータやファイル システムなしで作成します。このディスクは、インスタンスに接続した後に自分でフォーマットする必要があります。フォーマットのプロセスは Linux インスタンスと Windows インスタンスで異なります。
Linux インスタンス
Linux インスタンスで新しいディスクをフォーマットしてマウントします。パーティションのフォーマットや構成は任意ですが、パーティション テーブルのない単一の ext4
ファイル システムがおすすめです。追加のストレージ容量が必要な場合に、後からディスクのサイズ変更ができます。
[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
が新しいゾーン永続ディスクのデバイス ID です。ディスクをフォーマットします。ファイル形式は任意ですが、パーティション テーブルのない単一の
ext4
ファイル システムがおすすめです。こうすると、後でゾーン永続ディスクのサイズを変更する場合に、ディスク パーティションを変更することなく、ファイル システムのサイズを変更するだけで対応できます。mkfs
ツールを使用してディスクをフォーマットします。このコマンドを実行すると、指定したディスクからすべてのデータが削除されます。正しいディスク デバイスを指定してください。ディスクのパフォーマンスを最大限に引き出すには、-E
フラグで推奨フォーマット オプションを使用します。このセカンダリ ディスクではルート用に領域を確保する必要はありません。-m 0
を指定して、使用可能なディスク容量をすべて使用します。$ sudo mkfs.ext4 -m 0 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/[DEVICE_ID]
[DEVICE_ID]
は、フォーマットするゾーン永続ディスクのデバイス ID です。この例では、sdb
を指定し、パーティション テーブルを作成せずにディスク全体をフォーマットします。新しいディスクのマウント ポイントにするディレクトリを作成します。任意のディレクトリを使用できます。次の例では、
/mnt/disks/
の下にディレクトリを作成します。$ sudo mkdir -p /mnt/disks/[MNT_DIR]
ここで、
[MNT_DIR]
はゾーン永続ディスクをマウントするディレクトリです。mount ツールを使用してインスタンスにディスクをマウントし、
discard
オプションを有効にします。$ sudo mount -o discard,defaults /dev/[DEVICE_ID] /mnt/disks/[MNT_DIR]
ここで
[DEVICE_ID]
は、マウントするゾーン永続ディスクのデバイス ID です。[MNT_DIR]
は、ゾーン永続ディスクをマウントするディレクトリです。
デバイスに読み取り権限と書き込み権限を構成します。この例では、デバイスへの書き込みアクセス権をすべてのユーザーに付与します。
$ sudo chmod a+w /mnt/disks/[MNT_DIR]
[MNT_DIR]
は、ゾーン永続ディスクをマウントしたディレクトリです。
任意で、ゾーン永続ディスクを /etc/fstab
ファイルに追加して、インスタンスの再起動時にデバイスが自動的にマウントされるようにすることもできます。
現在の
/etc/fstab
ファイルのバックアップを作成します。$ sudo cp /etc/fstab /etc/fstab.backup
blkid
コマンドを使用して、ゾーン永続ディスクの UUID を確認します。この UUID はディスクのフォーマット時にシステムによって生成されます。システム間でディスクを移動しても UUID は変更されないため、ゾーン永続ディスクのマウントには UUID を使用します。$ sudo blkid /dev/[DEVICE_ID] /dev/[DEVICE_ID]: UUID="[UUID_VALUE]" TYPE="ext4"
ここで
[DEVICE_ID]
は、自動マウントするゾーン永続ディスクのデバイス ID です。ディスクにパーティション テーブルを作成した場合は、マウントするパーティションを指定します。[UUID_VALUE]
は、ゾーン永続ディスクの UUID であり、/etc/fstab
ファイルに含める必要があります。
/etc/fstab
ファイルをテキスト エディタで開き、UUID を含めたエントリを作成します。nofail
オプションを指定して、この永続ディスクが利用できない場合でもシステムを起動できるようにします。例:UUID=[UUID_VALUE] /mnt/disks/[MNT_DIR] ext4 discard,defaults,nofail 0 2
ここで
[UUID_VALUE]
は、ゾーン永続ディスクの UUID であり、/etc/fstab
ファイルに含める必要があります。[MNT_DIR]
は、ゾーン永続ディスクをマウントしたディレクトリです。[NOFAIL_OPTION]
は、ブート時にゾーン永続ディスクをマウントできない場合のオペレーティング システムの動作を指定する変数です。ゾーン永続ディスクをマウントできなくてもシステムが起動を継続できるようにするには、このオプションを指定します。ほとんどのディストリビューションでは、nofail
オプションを指定します。Ubuntu 12.04 または Ubuntu 14.04 では、nobootwait
オプションを指定します。
この手順は 1 つのコマンドで実行することもできます。たとえば次のコマンドは、エントリを
/etc/fstab
に作成し、/mnt/disks/disk-1
の/dev/sdb
ゾーン永続ディスクをその UUID を使用してマウントします。$ echo UUID=`sudo blkid -s UUID -o value /dev/sdb` /mnt/disks/disk-1 ext4 discard,defaults,nofail 0 2 | sudo tee -a /etc/fstab UUID=c994cf26-1853-48ab-a6a5-9d7c0250fed4 /mnt/disks/disk-1 ext4 discard,defaults,nofail 0 2
cat
コマンドを使用して、/etc/fstab
エントリが正しいことを確認します。$ cat /etc/fstab LABEL=cloudimg-rootfs / ext4 defaults 0 0 UUID=d761bdc5-7e2a-4529-a393-b9aefdb623b6 /mnt/disks/disk-1 ext4 discard,defaults,nofail 0 2
このゾーン永続ディスクを接続解除する場合や、このインスタンスのブートディスクからスナップショットを作成する場合は、/etc/fstab
ファイルを編集し、このゾーン永続ディスクのエントリを削除します。nofail
オプションを使用する場合でも、インスタンスに接続されているデバイスとの /etc/fstab
ファイルの同期を維持し、ブートディスクのスナップショットを作成する前やゾーン永続ディスクを接続解除する際に、これらのエントリを削除します。
Windows インスタンス
Windows の [ディスクの管理] を使用して、Windows インスタンス上の新しいディスクをフォーマットしてマウントします。
[VM インスタンス] ページに移動します。
サイズを変更したディスクが含まれるインスタンスの横にある [RDP] ボタンをクリックします。ブラウザ上でインスタンスに対する RDP 接続が開きます。
Windows [スタート] ボタンを右クリックして [ディスクの管理] を選択します。
ゾーン永続ディスクがまだ初期化されていない場合、新しいディスクのパーティショニング スキームを選択するように求められます。[GPT] を選択して、[OK] をクリックします。
ディスクが初期化されたら、未割り当てディスク領域を右クリックして、[新しいシンプル ボリューム] を選択します。
[新しいシンプル ボリューム ウィザード] の指示に従って新しいボリュームを構成します。任意のパーティション形式を使用できますが、この例では
NTFS
を選択します。[クイック フォーマットする] にもチェックを入れて、フォーマット処理を高速化します。必要に応じて、[アロケーション ユニット サイズ] フィールドでクラスタのサイズを設定します。クラスタのサイズによってパーティションの最大サイズが制限されます。ゾーン永続ディスクとこのパーティションのサイズを後で変更するのであれば、この点に注意してください。ウィザードが完了してボリュームのフォーマットが終了したら、接続されたディスクのリストで
Status
列を調べて、新しいディスクがHealthy
ステータスとなっていることを確認します。
これで、ファイルをゾーン永続ディスクに書き込むことができます。
ゾーン永続ディスクのサイズ変更
インスタンスに追加のストレージ容量が必要な場合、ゾーン永続ディスクのサイズを変更できます。データを固有のパーティションに分割する必要がある場合にのみ、複数のセカンダリ ディスクを接続します。
実行中のインスタンスに接続しているかどうにかかわらず、いつでもサイズを変更できます。
ディスクのサイズを変更してもディスクデータは削除または変更されませんが、おすすめの方法として、変更を加える前にディスクのスナップショットを作成してください。
Console
- [ディスク] ページに移動して、プロジェクトのゾーン永続ディスクのリストを表示します。
- サイズを変更するディスクの名前をクリックします。
- ディスク詳細ページの上部で、[編集] をクリックします。
- [サイズ] フィールドに、ディスクの新しいサイズを入力します。MBR パーティション テーブルがあるブートディスクとセカンダリ ディスクのサイズは、最大 2 TB にまでしか変更できません。
- ディスク詳細ページの下部にある [保存] をクリックして、変更内容をディスクに適用します。
- ディスクをサイズ変更したら、オペレーティング システムが追加の容量にアクセスできるように、ファイル システムをサイズ変更する必要があります。
gcloud
gcloud
ツールで、disks resize
コマンドを使用して --size
フラグを指定し、必要なディスクサイズを GB 単位で設定します。
gcloud compute disks resize [DISK_NAME] --size [DISK_SIZE]
ここで
[DISK_NAME]
は、サイズを変更するディスクの名前です。[DISK_SIZE]
は、ディスクの新しいサイズ(GB)です。MBR パーティション テーブルがあるブートディスクとセカンダリ ディスクのサイズは、最大 2 TB にまでしか変更できません。
ディスクをサイズ変更したら、オペレーティング システムが追加の容量にアクセスできるように、ファイル システムをサイズ変更する必要があります。
API
API で、compute.disks.resize
メソッドに対して POST
リクエストを作成します。リクエストの本文で sizeGb
パラメータを指定し、それをディスクサイズ(GB)に設定します。
POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks/[DISK_NAME]/resize
{
"sizeGb": "[DISK_SIZE]"
}
ここで
[PROJECT_ID]
は、プロジェクト ID です。[ZONE]
は、ディスクが配置されるゾーンです。[DISK_NAME]
は、サイズを変更するディスクの名前です。[DISK_SIZE]
は、ディスクの新しいサイズ(GB)です。MBR パーティション テーブルがあるブートディスクとセカンダリ ディスクのサイズは、最大 2 TB にまでしか変更できません。
ディスクをサイズ変更したら、オペレーティング システムが追加の容量にアクセスできるように、ファイル システムをサイズ変更する必要があります。
ゾーン永続ディスク上のファイル システムとパーティションのサイズを変更する
ゾーン永続ディスクのサイズを変更したら、追加のディスク容量を使用するようにディスク上のファイル システムを構成する必要があります。ディスクにブートディスクなどのパーティション テーブルがある場合は、パーティションを拡張し、そのパーティション上のファイル システムのサイズを変更する必要があります。ゾーン永続ディスクにファイル システムのみが含まれ、パーティション テーブルが存在しない場合は、ファイル システムのサイズを変更することしかできません。
代わりに、最新版の公開イメージを使用するインスタンスでは、システムの再起動後にパーティションとファイル システムのサイズを自動的に変更できます。この機能をサポートしていない公開イメージは、SUSE Linux Enterprise Server(SLES)公開イメージのみです。
ゾーン永続ディスク上のファイル システムを変更する前に、スナップショットを作成してください。
Linux インスタンス
Linux インスタンスでは、インスタンスに接続し、追加したディスク容量を使用するようにパーティションとファイル システムのサイズを手動で変更します。この手動によるプロセスを完了した後、インスタンスを再起動する必要はありません。
- [VM インスタンス] ページに移動します。
新たにディスクを接続したインスタンスの横にある [SSH] ボタンをクリックします。ブラウザが開き、インスタンスに対するターミナル接続が表示されます。
サイズを変更するファイル システムとパーティションがあるディスクを特定します。ディスクがすでにマウントされている場合、
df
コマンドとlsblk
コマンドを使用してファイル システムのサイズを比較し、ディスク ID を特定します。この例において、/dev/sda1
パーティションは 20 GB にサイズが変更されたブートディスク上にありますが、パーティション テーブルとファイル システムによりオペレーティング システムに提供される容量は 9.7 GB にとどまっています。さらに、/dev/sdb
セカンダリ ディスクにはパーティション テーブルはありませんが、ディスク上のファイル システムはオペレーティング システムに 250 GB しか容量を提供していません。$ sudo df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 9.7G 1.2G 8.5G 12% / /dev/sdb 250G 60M 250G 1% /mnt/disks/disk-1
$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk └─sda1 8:1 0 10G 0 part / sdb 8:16 0 500G 0 disk /mnt/disks/disk-1
この例では、
df
コマンドによって、/dev/sda1
パーティションがルート ファイル システムとしてマウントされ、/dev/sdb
ディスクが/mnt/disks/disk-1
セカンダリ ディスクとしてマウントされていることが示されています。ディスクにファイル システムが書き込まれていて、パーティション テーブルがない場合は、
growpart
ユーティリティのインストール方法とパーティションの拡張方法についてのステップ 4 をスキップできます。サイズを変更するディスクにパーティション テーブルがある場合は、ファイル システムのサイズを変更する前にパーティションを拡張する必要があります。
growpart
を使用してイメージ パーティションのサイズを変更します。Debian サーバーに
growpart
をインストールするには、次を実行します。$ sudo apt -y install cloud-guest-utils
CentOS サーバーに
growpart
をインストールするには、次を実行します。$ sudo yum -y install cloud-utils-growpart
インストール後のツールのヘルプについては、
growpart -h
を実行します。growpart
ツールをインストールした後、パーティションを拡張できます。$ sudo growpart /dev/[DEVICE_ID] [PARTITION_NUMBER]
[DEVICE_ID]
はデバイス ID、[PARTITION_NUMBER]
はそのデバイスのパーティション番号です。たとえばsudo growpart /dev/sda 1
となります。デバイス ID とパーティション番号の間にスペースが必要な点に注意してください。
追加された容量を使用するために、ディスク上またはパーティション上のファイル システムを拡張します。
ext4
を使用している場合、resize2fs
コマンドを実行します。ディスク上のパーティションを拡張した場合は、そのパーティションを指定します。ディスクにパーティション テーブルがない場合は、ディスク ID のみを指定します。$ sudo resize2fs /dev/[DEVICE_ID][PARTITION_NUMBER]
ここで、
[DEVICE_ID]
はファイル システムのサイズを変更するデバイスのデバイス ID、[PARTITION_NUMBER]
はパーティション番号です。たとえば、/dev/sda
はディスクを指し、/dev/sda1
はそのディスクの最初のパーティションを指します。xfs
を使用している場合は、xfs_growfs
コマンドを使用してファイル システムを拡張し、デバイス ID の代わりにマウント ポイントを指定します。$ sudo xfs_growfs /mnt/disks/disk-1
disk-1 はマウント ポイントです。
必要に応じて、
df
コマンドを使用してファイル システムのサイズが変更されていることを確認します。$ df -h /dev/[DEVICE_ID] Filesystem Size Used Avail Use% Mounted on /dev/[DEVICE_ID] 493G 70M 492G 1% /mnt/disks/disk-1
ここで、
[DEVICE_ID]
はファイル システム構成を表示する対象のディスクのデバイス ID です。
Windows インスタンス
Windows インスタンスでは、Windows の [ディスクの管理] ツールを使用してパーティションのサイズを変更します。
- [VM インスタンス] ページに移動します。
- サイズを変更したディスクが含まれるインスタンスの横にある [RDP] ボタンをクリックします。ブラウザ上でインスタンスに対する RDP 接続が開きます。
Windows の [スタート] ボタンを右クリックし、[ディスクの管理] を選択してディスク管理ツールを開きます。
ディスク管理ツールを更新して、ゾーン永続ディスクの追加容量を認識できるようにします。[ディスクの管理] ウィンドウの上部にある [操作] をクリックして [最新の情報に更新] を選択します。
サイズを変更したディスクで、フォーマットされたパーティションを右クリックし、[ボリュームの拡張] を選択します。
[ボリュームの拡張ウィザード] の指示に従って、追加のディスク容量を含むように既存のパーティションを拡張します。既存のパーティションが NTFS でフォーマットされている場合、パーティションの最大サイズはクラスタサイズの設定によって制限されます。
ウィザードが完了してボリュームのフォーマットが終了したら、接続されたディスクのリストで
Status
列を調べて、新しいディスクがHealthy
ステータスとなっていることを確認します。
これで、拡張した永続ディスクの容量を使用してデータを保存できるようになります。
アクセスできないインスタンスや完全なブートディスクの復元
インスタンスのディスク容量が完全に不足している場合や、Linux ゲスト環境を実行していない場合には、ファイルシステムを構成する永続ディスクのサイズを増加させた後でも、ルート ファイルシステムのサイズを自動変更することはできません。インスタンスに接続できない場合、あるいはブートディスクがいっぱいでサイズを変更できない場合は、新しいインスタンスを作成し、ブートディスクをスナップショットから再作成してサイズを変更します。
再作成するブートディスクのサイズを確認する必要があります。Compute Engine コンソールでディスクのサイズを確認します。
- [VM インスタンス] ページに移動します。
- 接続できないインスタンスの横にあるチェックボックスをオンにします。
- インスタンス名をクリックして、[VM インスタンスの詳細] ページを開きます。
- [VM インスタンスの詳細] ページ上部にある [停止] をクリックしてインスタンスを停止します。
- [ブートディスク] セクションまでスクロールし、ブートディスクのサイズを確認します。
- [ディスク] ページに移動して、プロジェクトの永続ディスクのリストを表示します。
- そのインスタンスのブートディスクをリストから選択します。
- [スナップショットを作成] をクリックしてディスクのスナップショットを取得します。
- Google Cloud Platform Console で [スナップショット] ページに移動します。
[スナップショット] ページに移動- スナップショットの名前を入力します。
- [ソースディスク] プルダウン メニューからディスクを選択します。
- ディスクの詳細を入力します。
- [VM インスタンス] ページに移動します。
- インスタンスの詳細を入力します。
- ブートディスクを変更します。
- [スナップショット] を選択します。
- ブートディスクのスナップショットを選択します。
- [ブートディスクの種類] を選択します。
- ディスクの新しいサイズを入力します。
- [選択] をクリックします。
- [作成] をクリックします。
- ディスクをマウントしてフォーマットします。
ゾーン永続ディスクの自動削除状態を設定する
読み取り / 書き込み可能なゾーン永続ディスクは、接続されている仮想マシン インスタンスの削除時に自動的に削除できます。この動作は、ゾーン永続ディスクが接続されている仮想マシン インスタンスの autoDelete
プロパティで制御されていて、いつでも変更できます。同様に、autoDelete
値を false にすることで、ゾーン永続ディスクの削除を防ぐことができます。
Console
- [VM インスタンス] ページに移動します。
- 接続されているディスクを含むインスタンスの横にあるチェックボックスをオンにします。
- インスタンス名をクリックします。
- [VM インスタンスの詳細] ページが表示されます。
- ページ上部の [編集] をクリックします。
- [追加ディスク] までスクロールします。
- 鉛筆アイコンをクリックして、ディスクの [削除ルール] を編集します。
- [完了] をクリックして変更を保存します。
- [保存] をクリックしてインスタンスを更新します。
gcloud
ゾーン永続ディスクの自動削除状態を設定するには、gcloud compute instances set-disk-auto-delete
コマンドを使用します。
gcloud compute instances set-disk-auto-delete example-instance \
[--auto-delete|--no-auto-delete] \
--disk example-disk
API
API を使用する場合は、次の URI に POST
リクエストを送信します。
https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/example-instance/setDiskAutoDelete?deviceName=deviceName,autoDelete=true
クライアント ライブラリを使用している場合は、instances().setDiskAutoDelete
メソッドを使います。
def setAutoDelete(gce_service, auth_http):
request = gce_service.instances().setDiskAutoDelete(project=example-project, zone=us-central1-f, deviceName=my-new-device, instance=example-instance, autoDelete=True)
response = request.execute(http=auth_http)
print response
複数のインスタンス間でゾーン永続ディスクを共有する
非ブート永続ディスクを複数の仮想マシン インスタンスに読み取り専用モードで接続し、複数インスタンス間で静的データを共有できます。1 つの永続ディスクの静的データを複数インスタンスで共有することは、個別インスタンス固有のディスクにデータをレプリケートするよりもコストがかかりません。
永続ディスクを複数のインスタンスに接続する場合、すべてのインスタンスが永続ディスクを読み取り専用モードで接続する必要があります。複数のインスタンスに読み取り / 書き込みモードで永続ディスクを接続することはできません。複数のインスタンスで動的記憶領域を共有する必要がある場合は、次のいずれかのオプションを使用できます。
- インスタンスを Cloud Storage に接続する
- インスタンスを Cloud Filestore に接続する
- Compute Engine 上にネットワーク ファイル サーバーを作成する
複数のインスタンスで共有したいデータを含む永続ディスクがある場合は、読み取り / 書き込みインスタンスとの接続を切断し、1 つ以上のインスタンスと読み取り専用モードで接続します。
Console
- [ VM インスタンス] ページに移動して、プロジェクト内のインスタンスのリストを表示します。
- [名前] 列で、ディスクを接続するインスタンスの名前をクリックします。[VM インスタンスの詳細] ページが開きます。
- インスタンス詳細ページの一番上で [編集] をクリックします。
- [追加ディスク] セクションで、次のいずれかをクリックします。
- ディスクを追加でディスクを読み取り専用モードでインスタンスに追加します。
- 既存のディスクを接続で既存のディスクを選択し、読み取り専用モードでインスタンスに接続します。
- ディスクのその他のオプションを指定します。
- [完了] をクリックして変更を適用します。
- VM インスタンスの詳細ページの一番下にある [保存] をクリックして、変更内容をインスタンスに適用します。
- インスタンスに接続して、ディスクをマウントします。
- このプロセスを繰り返して、他のインスタンスに読み取り専用モードでディスクを追加します。
gcloud
gcloud
ツールで compute instances attach-disk
コマンドを実行し、ro
オプションで --mode
フラグを指定します。
gcloud compute instances attach-disk [INSTANCE_NAME] \
--disk [DISK_NAME] \
--mode ro
ここで
[INSTANCE_NAME]
は、ゾーン永続ディスクを接続するインスタンスの名前です。[DISK_NAME]
は、接続するディスクの名前です。
ディスクを接続した後、インスタンスに接続してディスクをマウントします。
読み取り専用モードでディスクを追加するインスタンスごとに、このコマンドを繰り返します。
API
API で、compute.instances.attachDisk
メソッドに対して POST
リクエストを作成します。リクエストの本文で、mode
パラメータに READ_ONLY
を指定します。
POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/attachDisk
{
"source": "zones/[ZONE]/disks/[DISK_NAME]",
"mode": "READ_ONLY"
}
ここで
[INSTANCE_NAME]
は、ゾーン永続ディスクを接続するインスタンスの名前です。[PROJECT_ID]
は、プロジェクト ID です。[ZONE]
は、ディスクが配置されるゾーンです。[DISK_NAME]
は、接続するディスクの名前です。
ディスクを接続した後、インスタンスに接続してディスクをマウントします。
読み取り専用モードでディスクを追加するインスタンスごとに、このリクエストを繰り返します。