ローカル SSD の追加

Compute Engine では、常に暗号化されたローカルなソリッドステート ドライブ(SSD)のブロック ストレージが仮想マシン(VM)インスタンスに提供されます。各ローカル SSD のサイズは 375 GB ですが、インスタンスごとに最大 8 個のローカル SSD デバイスを接続して、合計 3 TB のローカル SSD ストレージ容量を利用できます。オプションで、単一の論理ボリュームに複数のローカル SSD デバイスをフォーマットしてマウントすることができます。

永続ディスクとは異なり、ローカル SSD は VM インスタンスをホストするサーバーに物理的に接続されます。この緊密な結合により、永続ディスクに比べて、優れたパフォーマンス、非常に高い 1 秒間の入力 / 出力オペレーション数(IOPS)、非常に低いレイテンシが実現されます。詳細については、ブロック ストレージのパフォーマンスをご覧ください。

ローカル SSD は、キャッシュ、処理空間、低価値データなどとして一時的に記憶する場合のみに適しています。ローカル SSD デバイスに重要なデータを保存する場合は、同じデータを、耐久性に優れたストレージ オプションに格納する必要があります。

ローカル SSD を使用するインスタンスを停止すると再起動することはできません。ゲスト オペレーティング システムを介してローカル SSD を使用するインスタンスをシャットダウンすると、インスタンスを再起動することはできまず、ローカル SSD 上のデータは失われます。

ローカル SSD が冗長性または柔軟性の要件を満たさない場合は、ローカル SSD を他のインスタンス ストレージ オプションと組み合わせて使用できます。

始める前に

ローカル SSD データの永続性

ローカル SSD を使用してインスタンスを作成する前に、ローカル SSD のデータがどのようなイベントで保持され、どのようなイベントで回復不能になるかを理解する必要があります。

ローカル SSD 上のデータは、次のイベントを介してのみ存続します。

  • ゲスト オペレーティング システムを再起動した場合。
  • インスタンスをライブ マイグレーション用に設定し、インスタンスにホスト メンテナンス イベントが適用される場合。
  • ホストシステムでホストエラーが発生した場合、Compute Engine は可能な限り VM に再接続を試み、ローカル SSD のデータを保持しようとしますが、この処理が成功するとは限りません。成功した場合、VM が自動的に再起動します。再接続に失敗した場合、VM はデータなしで再起動します。

ローカル SSD のデータは、次のイベントでは保持されません。

  • インスタンスを手動で終了した場合。
  • ゲスト オペレーティング システムをシャットダウンし、インスタンスを強制的に停止した場合。
  • インスタンスをプリエンプティブルとして設定し、インスタンスにプリエンプション処理が適用される場合。
  • ホスト メンテナンス イベントで終了するようにインスタンスを設定し、そのインスタンスにホスト メンテナンス イベントが発生した場合。
  • ホストシステムにホストエラーが発生し、基礎となるドライブが 60 分以内に復旧しなかった場合。Compute Engine はローカル SSD のデータを保持しようと試みません。
  • ローカル SSD を、誤って到達不能になるような設定にした場合。
  • プロジェクト課金を無効にした場合。インスタンスは停止し、データが失われます。

ローカル SSD を使用するインスタンスを作成する

ローカル SSD は、仮想マシン インスタンスが実行されている物理マシン上に配置されるので、インスタンスの作成プロセスでのみ作成できます。ローカル SSD を起動デバイスとして使用することはできません。

ローカル SSD を作成した後は、使用する前に、デバイスをフォーマットしてマウントする必要があります。

ローカル SSD を使用するインスタンスを作成するには、Google Cloud Platform Consolegcloudツール、または Compute Engine API を使います。

Console

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

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

  2. [インスタンスを作成] をクリックします。
  3. [新しいインスタンスの作成] ページで、インスタンスのプロパティを入力します。
  4. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] を展開します。
  5. [ディスク] をクリックし、[追加ディスク] の [新しいディスクを追加] をクリックします。
  6. [名前] フィールドに、新しいディスクの名前を入力します。
  7. [タイプ] として [ローカル SSD スクラッチ ディスク(最大 8 ディスク)] を選択します。
  8. [完了] をクリックします。
  9. [作成] をクリックしてインスタンスを作成します。
  10. ローカル SSD を作成した後は、使用する前に、デバイスをフォーマットしてマウントする必要があります。

gcloud

ローカル SSD が接続された VM インスタンスを作成するには、--local-ssd フラグを使用してインスタンスを作成するの手順に従います。これにより、ローカル SSD デバイスが作成されて接続されます。複数のローカル SSD デバイスを作成するには、--local-ssd フラグを追加します。必要に応じて、インターフェースの値と各 --local-ssd フラグのデバイス名を設定することもできます。

同様に、SCSI インターフェースを使用する 2 個のローカル SSD を含むインスタンスは次のようにして作成できます。

gcloud compute instances create example-instance \
    --machine-type n1-standard-8 \
    --local-ssd interface=[INTERFACE_TYPE] \
    --local-ssd interface=[INTERFACE_TYPE] \
    --image-project [IMAGE_PROJECT] \
    --image-family [IMAGE_FAMILY]

ここで

必要に応じて、さまざまなデバイス用に nvmescsi を組み合わせたものを使用した単一のインスタンスにローカル SSD デバイスを接続できます。nvme デバイスのパフォーマンスは、インスタンスのブートディスク イメージにより異なります。

ローカル SSD を作成した後は、使用する前に、デバイスをフォーマットしてマウントする必要があります。

API

API から、initializeParams プロパティを使って仮想マシン インスタンスを作成するときに、ローカル SSD デバイスを作成できます。次のプロパティも指定する必要があります。

  • diskType : ローカル SSD に設定します。
  • autoDelete: true に設定します。
  • type: SCRATCH に設定します。

次のプロパティは、ローカル SSD インスタンスには設定できません。

  • diskName
  • sourceImage プロパティ
  • diskSizeGb

起動ディスクとローカル SSD デバイスを含むインスタンスを作成するリクエストのペイロードの例を次に示します。

{
   "machineType":"zones/us-central1-f/machineTypes/n1-standard-8",
   "name":"local-ssd-instance",
   "disks":[
      {
         "type":"PERSISTENT",
         "initializeParams":{
            "sourceImage":"projects/ubuntu-os-cloud/global/images/family/ubuntu-1604-lts"
         },
         "boot":true
      },
      {
         "type":"SCRATCH",
         "initializeParams":{
            "diskType":"zones/us-central1-f/diskTypes/local-ssd"
         },
         "autoDelete":true,
         "interface": "NVME"
      }
   ],
   "networkInterfaces":[
      {
         "network":"global/networks/default"
      }
   ]
 }

ローカル SSD を作成した後は、使用する前に、デバイスをフォーマットしてマウントする必要があります。

API でインスタンスを作成する方法の詳細については、Compute Engine API をご覧ください。

NVMe インターフェースまたは SCSI インターフェースを選択する

NVMe インターフェースまたは SCSI インターフェースを使用して、ローカル SSD をインスタンスに接続できます。NVMe と SCSI ドライバは、ほとんどの公開イメージに含まれています。ただし一部には、NVMe でインスタンスが最高のパフォーマンスを実現できるように最適化されたドライバが含まれているイメージや、SCSI インターフェースで最高のパフォーマンスを実現できるようにマルチキュー SCSI に対応しているイメージもあります。

  • NVMe 用に最適化された公開イメージ
    • Ubuntu 14.04 LTS イメージ ubuntu-1404-trusty-v20170110 以降またはイメージ ファミリー ubuntu-1404-lts
    • Ubuntu 16.04 LTS イメージ ubuntu-1604-xenial-v20170113 以降またはイメージ ファミリー ubuntu-1604-lts
    • Ubuntu 17.10 イメージ ファミリー ubuntu-1710
    • Ubuntu 18.04 LTS イメージ ファミリー ubuntu-1804-lts
  • マルチキュー SCSI 対応の公開イメージ
    • Debian 9 Stretch イメージ、またはイメージ ファミリー debian-9
    • Ubuntu 14.04 LTS イメージ ubuntu-1404-trusty-v20170807 以降またはイメージ ファミリーubuntu-1404-lts
    • Ubuntu 16.04 LTS イメージ ubuntu-1604-xenial-v20170803 以降またはイメージ ファミリー ubuntu-1604-lts
    • Ubuntu 17.10 イメージ ファミリー ubuntu-1710
    • Ubuntu 18.04 LTS イメージ ファミリー ubuntu-1804-lts
    • すべての Windows Server イメージ
    • すべての SQL Server イメージ

必要に応じて、プロジェクトにインポートするカスタム イメージのマルチキュー SCSI を有効にできます。詳しくは、マルチキュー SCSI を有効にするをご覧ください。

有効な数のローカル SSD を選択する

複数のローカル SSD を単一の VM インスタンスに接続する場合、VM インスタンスのマシンタイプに応じて、接続できるローカル SSD の有効な数に関して特定の制約があります。これらについて詳しくは、ローカル SSD およびマシンタイプの制限をご覧ください。

ローカル SSD デバイスのフォーマットとマウント

ローカル SSD デバイスを個別にフォーマットしてマウントする

ローカル SSD をインスタンスに接続する最も簡単な方法は、各デバイスを単一パーティションでフォーマットしてマウントすることです。または、複数のデバイスを単一の論理ボリュームに組み合わせることもできます。

Linux インスタンス

Linux インスタンスで新しいローカル SSD をフォーマットしてマウントします。必要に応じて任意のパーティション フォーマットと構成を使用できます。この例では、ext4 パーティションを 1 つ作成します。

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

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

  2. 新しいローカル SSD を接続したインスタンスの隣にある [SSH] ボタンをクリックします。ブラウザが開き、インスタンスに対するターミナル接続が表示されます。

  3. ターミナルでは、lsblk コマンドを使用して、マウントするローカル SSD を識別します。

    $ lsblk
    

    SCSI モードのローカル SSD には、sdb といった標準の名前が割り当てられています。NVMe モードのローカル SSD には、nvme0n1 といった名前が割り当てられて、次の出力の NAME 列に表示されます。

    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda       8:0    0   10G  0 disk
    └─sda1    8:1    0   10G  0 part /
    nvme0n1 259:0    0  375G  0 disk
    
  4. ローカル SSD を ext4 ファイル システムでフォーマットします。次のコマンドを使用すると、ローカル SSD から既存のデータがすべて削除されます。

    $ sudo mkfs.ext4 -F /dev/[SSD_NAME]
    

    [SSD_NAME] をフォーマットするローカル SSD の ID に置き換えます。たとえば、インスタンスの最初の NVMe ローカル SSD をフォーマットするには nvme0n1 を指定します。

  5. デバイスをマウントできるディレクトリを作成するには、mkdir コマンドを使用します。

    $ sudo mkdir -p /mnt/disks/[MNT_DIR]
    

    ここで、[MNT_DIR] はローカル SSD をマウントするディレクトリです。

  6. ローカル SSD をインスタンスにマウントします。必要に応じて、書き込みキャッシュのフラッシュを無効化すると、書き込みパフォーマンスを向上させることができます。ただし、無効化すると最大 2 秒間、キャッシュされたデータの書き込みの耐久性が低下する危険性があります。

    $ sudo mount /dev/[SSD_NAME] /mnt/disks/[MNT_DIR]
    

    ここで

    • [SSD_NAME] は、マウントするローカル SSD の ID です。
    • [MNT_DIR] は、ローカル SSD をマウントするディレクトリです。
  7. デバイスに対する読み取り / 書き込みアクセス権を構成します。この例では、デバイスへの書き込みアクセス権をすべてのユーザーに付与します。

    $ sudo chmod a+w /mnt/disks/[MNT_DIR]
    

    ここでは、[MNT_DIR] はローカル SSD をマウントするディレクトリです。

ローカル SSD を /etc/fstab ファイルに追加して、インスタンスの再起動時にデバイスが自動的にマウントされるようにすることもできます。このエントリは、インスタンスが停止または終了した場合、ローカル SSD 上のデータを保持しません。ローカル SSD データの永続性の詳細は、ローカル SSD データの永続性の理解を参照してください。

/etc/fstab ファイルのエントリを指定する場合は、必ず nofail オプションを含め、ローカル SSD が存在しない場合でも、インスタンスが起動できるようにします。たとえば、ブートディスクのスナップショットを取り、どのようなローカル SSD も接続しないで新しいインスタンスを作成した場合、インスタンスが起動プロセスを続行することができ、無期限に一時停止することはありません。

  1. /etc/fstab エントリを作成します。blkid コマンドを使用して、デバイス上のファイル システムの UUID を検索し、UUID をマウント オプションとともに含めるように /etc/fstab ファイルを編集します。この手順は 1 つのコマンドで完了できます。例:

    $ echo UUID=`sudo blkid -s UUID -o value /dev/disk/by-id/google-local-ssd-0` /mnt/disks/[MNT_DIR] ext4 discard,defaults,nofail 0 2 | sudo tee -a /etc/fstab
    

    ここで、[MNT_DIR] はローカル SSD をマウントするディレクトリです。

  2. cat コマンドを使用して、/etc/fstab エントリが正しいことを確認します。

    $ cat /etc/fstab
    

このインスタンスの起動ディスクからスナップショットを作成し、それを使用してローカル SSD がない別のインスタンスを作成する場合は、/etc/fstab ファイルを編集し、このローカル SSD エントリを削除します。nofail のオプションを使用する場合でも、インスタンスに接続されているデバイスとの ファイルの同期を維持します。これらのエントリは、ブートディスクのスナップショットを作成する前に削除します。

Windows インスタンス

Windows の [ディスクの管理] ツールを使用して、Windows インスタンス上のローカル SSD をフォーマットしてマウントします。

  1. RDP を使用して インスタンスに接続します。この例では、[VM インスタンス] ページに移動し、ローカル SSD が接続されているインスタンスの隣の [RDP] ボタンをクリックします。ユーザー名とパスワードを入力すると、ウィンドウが開き、サーバーに対するデスクトップ インターフェースが表示されます。

  2. Windows [スタート] ボタンを右クリックして [ディスクの管理] を選択します。

    Windows の [スタート] ボタンの右クリック メニューから、Windows ディスク管理ツールを選択します。

  3. ローカル SSD の初期化がまだの場合、新しいデバイスのパーティション構成の選択を求められます。[GPT] を選択して、[OK] をクリックします。

    ディスク初期化ウィンドウでパーティション化スキームを選択します。

  4. ローカル SSD を初期化した後、未割り当てのディスク スペースを右クリックして、[新しいシンプル ボリューム] を選択します。

    接続したディスクで新しいシンプル ボリュームを作成します。

  5. [新しいシンプル ボリューム ウィザード] の指示に従って新しいボリュームを構成します。任意のパーティション形式を使用できますが、この例では NTFS を選択します。[クイック フォーマットする] にもチェックを入れて、フォーマット処理を高速化します。

    [新しいシンプル ボリューム ウィザード] でパーティションのフォーマット タイプを選択します。

  6. ウィザードが完了し、ボリュームのフォーマットが終了した後で、新しいローカル SSD をチェックして、Healthy のステータスを確認します。

    Windows によって認識されたディスクのリストを表示し、ローカル SSD が [正常] ステータスであることを確認します。

これで完了です。ローカル SSD にファイルを書き込むことができます。

複数のローカル SSD デバイスをフォーマットして単一の論理ボリュームにマウントする

永続 SSD とは異なり、インスタンスに接続する各デバイスのローカル SSD の容量は 375 GB の固定です。複数のローカル SSD デバイスを単一の論理ボリュームに組み合わせる場合、これらのデバイス間のボリューム管理をユーザー自身が定義する必要があります。

Linux インスタンス

mdadm を使用して、RAID 0 アレイを作成します。この例では、1 つの ext4 ファイル システムを使用したアレイをフォーマットしますが、任意のファイル システムを適用できます。

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

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

  2. 新しいローカル SSD を接続したインスタンスの隣にある [SSH] ボタンをクリックします。ブラウザが開き、インスタンスに対するターミナル接続が表示されます。

  3. ターミナルで、mdadm ツールをインストールします。mdadm のインストール プロセスには、スクリプトを停止するユーザー プロンプトが含まれているため、このプロセスは手動で実行してください。

    Debian と Ubuntu:

    $ sudo apt-get update && sudo apt-get install mdadm --no-install-recommends
    

    CentOS と RHEL:

    $ sudo yum install mdadm -y
    

    SLES と openSUSE:

    $ sudo zypper install -y mdadm
    

  4. lsblk コマンドを使用して、一緒にマウントするすべてのローカル SSD を識別します。この例では、インスタンスに NVMe モードのローカル SSD デバイスが 8 個あります。

    $ lsblk
    
    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda       8:0    0   10G  0 disk
    └─sda1    8:1    0   10G  0 part /
    nvme0n1 259:0    0  375G  0 disk
    nvme0n2 259:1    0  375G  0 disk
    nvme0n3 259:2    0  375G  0 disk
    nvme0n4 259:3    0  375G  0 disk
    nvme0n5 259:4    0  375G  0 disk
    nvme0n6 259:5    0  375G  0 disk
    nvme0n7 259:6    0  375G  0 disk
    nvme0n8 259:7    0  375G  0 disk
    
    

    SCSI モードのローカル SSD には、sdb といった標準の名前が割り当てられています。NVMe モードのローカル SSD には、nvme0n1 といった標準の名前が割り当てられています。

  5. mdadm を使用して、複数のローカル SSD デバイスを /dev/md0 という名前の 1 つのアレイに結合します。この例では、NVMe モードの 8 個のローカル SSD デバイスをマージします。SCSI モードのローカル SSD デバイスについては、lsblk コマンドから取得した名前を指定します。

    $ sudo mdadm --create /dev/md0 --level=0 --raid-devices=8 \
    /dev/nvme0n1 /dev/nvme0n2 /dev/nvme0n3 /dev/nvme0n4 \
    /dev/nvme0n5 /dev/nvme0n6 /dev/nvme0n7 /dev/nvme0n8
    
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md0 started.
    
    
  6. /dev/md0 アレイ全体を ext4 ファイル システムでフォーマットします。次のコマンドを使用すると、ローカル SSD から既存のデータがすべて削除されます。

    $ sudo mkfs.ext4 -F /dev/md0
    
  7. /dev/md0 がマウント可能なディレクトリを作成します。この例では、/mnt/disks/ssd-array ディレクトリを作成します。

    $ sudo mkdir -p /mnt/disks/[MNT_DIR]
    

    ここで、[MNT_DIR] はローカル SSD アレイをマウントするディレクトリです。

  8. /dev/md0 アレイを /mnt/disks/ssd-array ディレクトリにマウントします。必要に応じて、書き込みキャッシュのフラッシュを無効化すると、書き込みパフォーマンスを向上させることができます。ただし、無効化すると最大 2 秒間、キャッシュされたデータの書き込みの耐久性が低下する危険性があります。

    $ sudo mount /dev/md0 /mnt/disks/[MNT_DIR]
    

    ここで、[MNT_DIR] はローカル SSD アレイをマウントするディレクトリです。

  9. デバイスに対する読み取り / 書き込みアクセス権を構成します。この例では、デバイスへの書き込みアクセス権をすべてのユーザーに付与します。

    $ sudo chmod a+w /mnt/disks/[MNT_DIR]
    

    ここで、[MNT_DIR] はローカル SSD アレイをマウントしたディレクトリです。

ローカル SSD を /etc/fstab ファイルに追加して、インスタンスの再起動時にデバイスが自動的にマウントされるようにすることもできます。このエントリは、インスタンスが終了した場合、ローカル SSD 上のデータを保持しません。ローカル SSD データ永続性の詳細は、ローカル SSD データ永続性の理解を参照してください。

/etc/fstab ファイルのエントリを指定する場合は、必ず nofail オプションを含め、ローカル SSD が存在しない場合でも、インスタンスが起動できるようにします。たとえば、ブートディスクのスナップショットを取り、どのようなローカル SSD も接続しないで新しいインスタンスを作成した場合、インスタンスが起動プロセスを続行することができ、無期限に一時停止することはありません。

  1. /etc/fstab エントリを作成します。blkid コマンドを使用して、デバイス上のファイル システムの UUID を検索し、UUID をマウント オプションとともに含めるように /etc/fstab ファイルを編集します。nofail オプションを指定して、この永続ディスクが利用できない場合でもシステムを起動できるようにします。この手順は 1 つのコマンドで完了できます。例:

    $ echo UUID=`sudo blkid -s UUID -o value /dev/md0` /mnt/disks/[MNT_DIR] ext4 discard,defaults,nofail 0 2 | sudo tee -a /etc/fstab
    

    ここで、[MNT_DIR] はローカル SSD アレイをマウントしたディレクトリです。

  2. cat コマンドを使用して、/etc/fstab エントリが正しいことを確認します。

    $ cat /etc/fstab
    

このインスタンスの起動ディスクからスナップショットを作成し、それを使用してローカル SSD がない別のインスタンスを作成する場合は、/etc/fstab ファイルを編集し、このローカル SSD アレイのエントリを削除します。nofail のオプションを使用する場合でも、インスタンスに接続されているデバイスとの ファイルの同期を維持します。これらのエントリは、ブートディスクのスナップショットを作成する前に削除します。

Windows インスタンス

Windows の [ディスクの管理] ツールを使用して、Windows インスタンス上のローカル SSD のアレイをフォーマットしてマウントします。

  1. RDP を使用して インスタンスに接続します。この例では、[VM インスタンス] ページに移動し、ローカル SSD が接続されているインスタンスの隣の [RDP] ボタンをクリックします。ユーザー名とパスワードを入力すると、ウィンドウが開き、サーバーに対するデスクトップ インターフェースが表示されます。

  2. Windows [スタート] ボタンを右クリックして [ディスクの管理] を選択します。

    Windows の [スタート] ボタンの右クリック メニューから、Windows ディスク管理ツールを選択します。

  3. ローカル SSD をまだ初期化していない場合、新しいデバイスのパーティション構成の選択を求められます。[GPT] を選択して、[OK] をクリックします。

    ディスク初期化ウィンドウでパーティション化スキームを選択します。

  4. ローカル SSD を初期化した後、未割り当てのディスク スペースを右クリックして、[新しいストライプ ボリューム] を選択します。

    接続されたディスクから新しいストライプ ボリュームを作成します。

  5. ストライプ アレイに含めるローカル SSD デバイスを選択します。この例では、すべてのデバイスを選択して、1 つのローカル SSD デバイスに結合します。

    アレイに含めるローカル SSD デバイスを選択します。

  6. [新しいストライプ ボリューム ウィザード] の指示に従って新しいボリュームを構成します。任意のパーティション形式を使用できますが、この例では NTFS を選択します。[クイック フォーマットする] にもチェックを入れて、フォーマット処理を高速化します。

    [新しいストライプ ボリューム ウィザード] でパーティションのフォーマット タイプを選択します。

  7. ウィザードが完了し、ボリュームのフォーマットが終了した後で、新しいローカル SSD をチェックして、Healthy のステータスを確認します。

    Windows によって認識されたディスクのリストを表示し、ローカル SSD が [正常] ステータスであることを確認します。

ローカル SSD にファイルを書き込むことができます。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Compute Engine ドキュメント