Linux OS を使用する仮想マシン(VM)にディスクをアタッチすると、Google Cloud によってディスクのシンボリック リンクが自動的に作成されます。Linux VM の Persistent Disk ボリュームまたはローカル SSD ディスクにアクセスするには、シンボリック リンクを使用します。これらのシンボリック リンクは予測可能で、リブート後も整合性が維持されます。Google Cloud は、VM にアタッチされているすべてのディスクのシンボリック リンクを /dev/disk/by-id
以下に作成します。
このドキュメントでは、VM にアタッチされているディスクの正しいシンボリック リンクを特定する方法について説明します。
シンボリック リンクの形式
シンボリック リンクは、VM の作成中または作成後にディスクが VM にアタッチされると /dev/disk/by-id
に作成されます。シンボリック リンク名は次のように作成されます。
Persistent Disk と Google Cloud Hyperdisk
シンボリック リンクは次のルールを使用して作成されます。
- ディスクの作成時にカスタム デバイス名を指定した場合:
google-DEVICE_NAME
- ディスクの作成時にカスタム デバイス名を指定しなかった場合:
- ブートディスク:
google-VM_NAME
- 非ブートディスク:
google-DISK_NAME
- ブートディスク:
ディスクをフォーマットすると、名前の末尾に -partN
がついたシンボリック リンクが追加されます。ここで、N はパーティション番号です(例: google-data-disk-part1
)。
ローカル SSD ディスク
ローカル SSD のシンボリック リンクの形式は、ディスク インターフェースによって異なります。
- SCSI:
- ディスクの作成時にカスタム デバイス名を指定した場合:
google-DEVICE_NAME
- ディスクの作成時にカスタム デバイス名を指定しなかった場合:
google-local-ssd-N
。ここで、N は 0 から始まるローカル SSD ディスク番号です。
- ディスクの作成時にカスタム デバイス名を指定した場合:
- NVMe: シンボリック リンクの名前は
google-local-nvme-ssd-N
のようになります。ここで、N は 0 から始まる SSD 番号です。
ローカル SSD ディスクをフォーマットすると、シンボリック リンクが -partN
とともに追加されます。ここで、N はパーティション番号です(例: google-local-nvme-ssd-0-part1
)。
デバイスのシンボリック リンク
Compute Engine は、ディスクタイプとインターフェースに基づいて、ディレクトリに追加のシンボリック リンクを作成します(例: scsi-0Google_PersistentDisk_DEVICE_NAME
)。これらのリンクは、前述のシンボリック リンクと同じ機能を実行します。
例 1: ローカル SSD がアタッチされた C3 VM
次のプロパティを持つ VM を作成したとします。
- VM 名:
instance-1
- マシンシリーズ: C3
- ディスク インターフェース タイプ: Persistent Disk とローカル SSD の両方の NVMe
- 追加ディスク: なし
- アタッチされたローカル SSD ディスク: 2
- 使用されているカスタム デバイス名: なし
Compute Engine は、その VM に次のシンボリック リンクを作成します。
ls -l /dev/disk/by-id/google-*
google-instance-1 -> ../../nvme2n1
google-instance-1-part1 -> ../../nvme2n1p1
google-instance-1-part14 -> ../../nvme2n1p14
google-instance-1-part15 -> ../../nvme2n1p15
google-local-nvme-ssd-0 -> ../../nvme0n1
google-local-nvme-ssd-1 -> ../../nvme1n1
この例では、Persistent Disk のブートディスクのシンボリック リンクは google-instance-1
で、VM 名に基づいています。ブートディスクがフォーマットされ、オペレーティング システムがインストールされています。ブートディスクには、part1、part14、part 15 の 3 つのパーティションがあります。
アタッチされたローカル SSD ディスクはフォーマットされていないため、ローカル SSD ディスクごとに 1 つのシンボリック リンクのみが作成されました。
例 2: NVMe ローカル SSD と追加の Persistent Disk がアタッチされた N2 VM
次のプロパティを持つ VM を作成したとします。
- VM 名:
instance-2
- マシンシリーズ: N2
- ディスク インターフェース タイプ: Persistent Disk は SCSI、ローカル SSD は NVMe
- 追加のディスク:
extra-scsi-disk
という名前の 1 つの Persistent Disk - アタッチされたローカル SSD ディスク: 2
- 使用されているカスタム デバイス名: なし
その VM に次のシンボリック リンクが作成されます。
ls -l /dev/disk/by-id/google-*
google-extra-scsi-disk -> ../../sdb
google-instance-2 -> ../../sda
google-instance-2-part1 -> ../../sda1
google-instance-2-part14 -> ../../sda14
google-instance-2-part15 -> ../../sda15
google-local-nvme-ssd-0 -> ../../nvme0n1
google-local-nvme-ssd-0-part1 -> ../../nvme0n1p1
google-local-nvme-ssd-1 -> ../../nvme0n2
この例では、Persistent Disk のブートディスクのシンボリック リンクは google-instance-2
で、VM 名に基づいています。ブートディスクがフォーマットされ、OS イメージがインストールされています。ブートディスクには、part1、part14、part 15 の 3 つのパーティションがあります。
最初のローカル SSD ディスクも単一のパーティションでパーティション分割されているため、そのディスク パーティション用に作成されたシンボリック リンクがあります。
VM に追加された Persistent Disk には、ディスク名に基づくシンボリック リンク google-extra-scsi-disk
があります。追加の Persistent Disk と 2 番目のローカル SSD ディスクはフォーマットされていないため、これらのディスクには 1 つのシンボリック リンクのみ表示されます。
次のステップ
- 永続的なデバイス名を使用する方法を学習する。
- Linux VM または Windows VM に新しいディスクをフォーマットしてマウントする。
- ベンチマークで Persistent Disk のパフォーマンスを評価する方法を学習する。