Persistent Disk について


このドキュメントでは、Persistent Disk ボリュームの機能、タイプ、パフォーマンス、メリットについて説明します。仮想マシン(VM)インスタンスまたはコンテナにブロック ストレージ(ブートディスクやデータディスクなど)が必要な場合は、Compute インスタンスで Google Cloud Hyperdisk を使用できない場合は、Persistent Disk ボリュームを使用します。Compute Engine の他のブロック ストレージ オプションについては、ディスクタイプを選択するをご覧ください。

Persistent Disk ボリュームは耐久性に優れたネットワーク ストレージ デバイスであり、パソコンやサーバーの物理ディスクと同じようにインスタンスからアクセスできます。Persistent Disk ボリュームは、インスタンスをホストする物理マシンにアタッチされません。代わりに、ネットワーク ブロック デバイスとしてインスタンスにアタッチされます。各 Persistent Disk ボリュームのデータは、複数の物理ディスクに分散されます。Compute Engine は物理ディスクとデータ分散を管理して、冗長性と最適なパフォーマンスを確保します。

Persistent Disk ボリュームは、インスタンスをホストする物理マシンにアタッチされません。代わりに、ネットワーク ブロック デバイスとしてインスタンスにアタッチされます。ただし、VM インスタンスは、パソコンやサーバーの物理ディスクと同様に Persistent Disk ボリュームにアクセスできます。Persistent Disk から読み取りや書き込みを行うと、データはネットワーク経由で転送されます。

インスタンスを削除した後でも、ボリュームを切断または移動してデータを保持できます。Persistent Disk のパフォーマンスはサイズに応じて向上するため、既存の Persistent Disk ボリュームのサイズを変更するか、VM に Persistent Disk ボリュームを追加して、パフォーマンスとストレージ容量の要件を満たすことができます。

パフォーマンス特性が安定した高信頼性で低価格のストレージが必要な場合は、インスタンスに非ブートディスクを追加します。

インスタンスに Persistent Disk を追加する

Persistent Disk のタイプ

Persistent Disk ボリュームを作成するときに、次のいずれかのディスクタイプを選択できます。

  • Balanced Persistent Diskpd-balanced
    • パフォーマンス(pd-ssd)永続ディスクの代替手段。
    • パフォーマンスと費用のバランス。大規模なものを除き、ほとんどの VM シェイプの場合、これらのディスクの最大 IOPS は SSD Persistent Disk と同じですが、GiB あたりの IOPS は小さくなります。このディスクタイプは、ほとんどの汎用アプリケーションに適したパフォーマンスを、標準永続ディスクとパフォーマンス(pd-ssd)永続ディスクの中間の価格で提供します。
    • ソリッド ステート ドライブ(SSD)によるバックアップ。
  • パフォーマンス(SSD)永続ディスクpd-ssd
    • 標準 Persistent Disk よりも低いレイテンシと高い IOPS を必要とする、エンタープライズ アプリケーションや高性能なデータベースに適している。
    • ソリッド ステート ドライブ(SSD)によるバックアップ。
  • Standard Persistent Diskpd-standard
    • 主に順次 I/O を使用する大規模なデータ処理ワークロードに適しています
    • 標準ハードディスク ドライブ(HDD)によるバックアップ。
  • エクストリーム永続ディスクpd-extreme
    • ランダム アクセス ワークロードとバルク スループットの両方に対応し、一貫して高いパフォーマンスを発揮します。
    • ハイエンド データベースのワークロード向けに設計。
    • ターゲット IOPS をプロビジョニングできます。
    • ソリッド ステート ドライブ(SSD)によるバックアップ。
    • 限られた数のマシンタイプで使用。

Google Cloud コンソールでディスクを作成する場合、デフォルトのディスクタイプは pd-balanced です。gcloud CLI または Compute Engine API を使用してディスクを作成する場合、デフォルトのディスクタイプは pd-standard です。

マシンタイプのサポートについては、以下をご覧ください。

Persistent Disk の耐久性

ディスクの耐久性は、ハードウェアの障害、壊滅的なイベント、Google データセンターでの隔離方法とエンジニアリング プロセス、各ディスクタイプで使用される内部エンコードによって、通常の 1 年間に一般的なディスクでデータ損失が発生する可能性を表します。Persistent Disk のデータ損失が発生することは極めて稀ですが、これまで発生したケースを見ると、調整済みのハードウェアの故障、ソフトウェアのバグ、またはその 2 つが原因で発生しています。また、Google は、業界全体のサイレント データ破損のリスクを軽減するために多くの対策を講じています。お客様が誤ってディスクを削除した場合など、 Google Cloud のユーザーによるエラーは、永続ディスクの耐久性の対象外です。

リージョン Persistent Disk ボリュームでは、内部データのエンコードとレプリケーションにより、データ損失が生じるリスクはほとんどありません。リージョン Persistent Disk は高可用性を実現し、データセンター全体が失われて復元できない場合に障害復旧に使用できます。リージョン Persistent Disk は、ゾーン Persistent Disk の 2 倍のディスク レプリカを提供し、各レプリカは同じリージョン内の 2 つのゾーンに分散されます。停止中にプライマリ ゾーンが使用できなくなった場合は、2 番目のゾーンのレプリカに直ちにアクセスできます。

リージョン固有の考慮事項の詳細については、地域とリージョンをご覧ください。

次の表は、ディスクタイプごとの耐久性を示しています。99.999% の耐久性とは、1,000 枚のディスクがあれば、100 年間 1 枚も失わずに済む可能性があるということです。

ゾーン標準 Persistent Disk ゾーンバランス Persistent Disk ゾーン SSD Persistent Disk ゾーン エクストリーム Persistent Disk リージョン標準 Persistent Disk リージョン バランス Persistent Disk リージョン SSD Persistent Disk
99.99% を上回る 99.999% を上回る 99.999% を上回る 99.9999% を上回る 99.999% を上回る 99.9999% を上回る 99.9999% を上回る

マシンシリーズのサポート

マシンシリーズを選択して、サポートされている Persistent Disk(PD)タイプを確認します。

マシンシリーズ SSD PD バランス重視の PD エクストリーム PD 標準の PD
C4A
C4
C3
C3D
N4
N2
N2D
N1
T2D
T2A
E2
Z3
H3
C2
C2D
X4
M3
M2
M1
N1+GPU
A3(H100)
A3(H200)
A2
G2

最大容量

Persistent Disk ボリュームの最大サイズは 64 TiB です。1 つの VM インスタンスには最大 127 個のセカンダリ非ブートゾーン Persistent Disk ボリュームを追加できます。ただし、単一の VM にアタッチされているすべての Persistent Disk ボリュームの合計容量は 257 TiB を超えることはできません。

VM 内の論理ボリューム管理を使用して、最大 257 TiB の単一の論理ボリュームを作成できます。大容量のボリュームでパフォーマンスを最大限に高める方法については、論理ボリューム サイズをご覧ください。

ゾーン Persistent Disk

ゾーン Persistent Disk は、特定のゾーン(europe-west-2 など)内でのみアクセスできる Persistent Disk です。

使いやすさ

Compute Engine はほとんどのディスク管理タスクを自動的に処理するため、パーティショニング、冗長ディスクアレイ、サブボリューム管理などについて考える必要はありません。通常、より大きい論理ボリュームを作成する必要はありません。ただし、追加で接続する Persistent Disk 容量を VM あたり 257 TiB に拡張し、Persistent Disk ボリュームに適用できます。パーティション テーブルなしで、1 つのファイル システムで Persistent Disk ボリュームをフォーマットすることで、時間を節約して最適なパフォーマンスを得ることができます。

データを複数の固有ボリュームに分ける必要がある場合は、既存のディスクを複数のパーティションに分割するのではなく、追加ディスクを作成します。

Persistent Disk ボリュームに追加の容量が必要な場合は、再パーティショニングしてフォーマットするのではなく、ディスクのサイズを変更します。

パフォーマンス

Persistent Disk のパフォーマンスは予測可能であり、VM のプロビジョニングされた vCPU の上限に達するまで、プロビジョニングされた容量に比例してスケールします。パフォーマンスのスケーリングの上限と最適化について詳しくは、パフォーマンス要件を満たすようにディスクを構成するをご覧ください。

標準 Persistent Disk は、順次読み取り / 書き込みオペレーションの処理には効率的かつ経済的な選択肢ですが、1 秒あたりのランダム入出力オペレーション(IOPS)量が多い処理には不向きです。大量のランダム IOPS が必要なアプリでは、SSD またはエクストリーム Persistent Disk を使用します。SSD Persistent Disk は、レイテンシが 1 桁のミリ秒となるよう設計されています。観測されるレイテンシはアプリケーション固有です。

Compute Engine は、Persistent Disk ボリュームのパフォーマンスとスケーリングを自動的に最適化します。最高水準のパフォーマンスを得るために、複数のディスクをストライプ化したり、ディスクのプリウォームを行ったりする必要はありません。より多くのディスク容量やより高いパフォーマンスが必要な場合は、ディスクのサイズを変更して、さらに vCPU を追加することで、ストレージ容量、スループット、および IOPS を増やします。Persistent Disk のパフォーマンスは、VM に接続された Persistent Disk の合計容量と VM が保持する vCPU の数に基づいています。

ブートデバイスの場合は、標準 Persistent Disk を使用してコストを削減できます。小規模な 10 GiB の Persistent Disk ボリュームは、基本的なブートおよびパッケージ管理のユースケースに適しています。ただし、ブートデバイスの一般的な使用で一貫したパフォーマンスを確保するには、ブートディスクとしてバランス Persistent Disk を使用します。

Persistent Disk の書き込みオペレーションは VM の累積ネットワーク下り(外向き)トラフィックに関与するため、Persistent Disk の書き込みオペレーションは VM の下り(外向き)ネットワークの上限によって制限されます。

信頼性

Persistent Disk には冗長性が組み込まれており、機器の故障からデータを保護し、データセンターのメンテナンス中でもデータの可用性を確保します。Persistent Disk のすべてのオペレーションでチェックサムが計算されるため、読み取ったデータは書き込んだデータと必ず一致します。

さらに、Persistent Disk のスナップショットを作成して、ユーザーエラーによりデータが失われるのを防ぐことができます。スナップショットは増分なので、実行中の VM にアタッチされているディスクのスナップショットを作成する場合であっても数分しかかかりません。

リージョン Persistent Disk

リージョン Persistent Disk ボリュームのストレージ品質は、ゾーン Persistent Disk と同様です。ただし、リージョン Persistent Disk ボリュームを使用すると、同じリージョン内の 2 つのゾーン間で耐久性の高いデータ ストレージとデータ レプリケーションを実現できます。

ディスクの同期レプリケーションについて

新しい Persistent Disk を作成する場合、1 つのゾーンにディスクを作成することも、同じリージョン内の 2 つのゾーンにディスクをレプリケーションすることもできます。

たとえば、us-west1-a のようにゾーンにディスクを 1 つ作成すると、ディスクのコピーが 1 つ作成されます。1 つのゾーンにのみ作成されたディスクは、ゾーンディスクと呼ばれます。ディスクの可用性を高めるには、リージョン内の別のゾーン(us-west1-b など)にディスクの別のコピーを保存します。

同じリージョン内の 2 つのゾーンにレプリケートされた Persistent Disk は、リージョン Persistent Disk と呼ばれます。Hyperdisk Balanced High Availability を使用して、Google Cloud Hyperdisk のゾーン間同期レプリケーションを行うこともできます。

1 つのリージョンが完全に停止することはほとんどありませんが、ゾーンの障害は発生する可能性があります。次の図に示すように、異なるゾーンにあるリージョン内でレプリケーションを行うと、可用性が向上し、ディスク レイテンシが短縮されます。両方のレプリケーション ゾーンで障害が発生した場合、リージョン全体の障害とみなされます。

リージョン ディスクがある VM のイラスト。ディスクには 2 つのレプリカがあります。1 つは VM と同じゾーンにあり、もう 1 つは 2 番目のゾーンにあります。

ディスクが 2 つのゾーンに複製されている。

レプリケーションのシナリオでは、データは、仮想マシン(VM)が実行されているローカルゾーン(us-west1-a)で利用できます。その後、データは別のゾーン(us-west1-b)にレプリケートされます。ゾーンの 1 つは、VM が実行されているゾーンと同じにする必要があります。

ゾーンが停止した場合、通常は、リージョン Persistent Disk で実行されているワークロードを別のゾーンにフェイルオーバーできます。詳しくは、リージョン Persistent Disk のフェイルオーバーをご覧ください。

リージョン Persistent Disk の設計上の考慮事項

Compute Engine で堅牢なシステム高可用性サービスを設計する場合は、リージョン Persistent Disk を使用するだけでなく、スナップショットを使用してデータをバックアップするなど、他のベスト プラクティスを取り入れる必要があります。また、リージョン Persistent Disk ボリュームは、リージョン マネージド インスタンス グループと連携するように設計されています。

パフォーマンス

リージョン Persistent Disk ボリュームは、永続ディスクのスナップショットを使用する場合よりも低い目標復旧時点(RPO)目標復旧時間(RTO)を必要とするワークロード用に設計されています。

リージョン Persistent Disk は、複数のゾーンにわたるデータ冗長性よりも書き込みパフォーマンスが重要でない場合のオプションです。

ゾーン Persistent Disk と同様に、リージョン Persistent Disk は VM の vCPU 数が多いほど高い IOPS とスループット パフォーマンスを達成できます。この制限とその他の制限の詳細については、パフォーマンス要件を満たすようにディスクを構成するをご覧ください。

より多くのディスク容量またはより高いパフォーマンスが必要なときは、ディスクのサイズを変更して、容量、スループット、IOPS を増強できます。

信頼性

Compute Engine は、リージョン Persistent Disk のデータを、ディスクの作成時に選択したゾーンに複製します。各レプリカのデータは、冗長性を確保するために、ゾーン内の複数の物理マシンに分散されます。

ゾーン Persistent Disk と同様に、Persistent Disk のスナップショットを作成して、ユーザーエラーによるデータの損失から保護できます。スナップショットは増分なので、実行中の VM にアタッチされているディスクのスナップショットを作成する場合であっても数分しかかかりません。

リージョン Persistent Disk の制限事項

  • リージョン永続ディスク をアタッチできるのは、E2N1N2N2Dのマシンタイプを使用する VM のみです。
  • Hyperdisk Balanced High Availability は、サポートされているマシンタイプにのみ接続できます。
  • リージョン Persistent Disk をイメージから作成することはできません。イメージから作成されたディスクから作成することもできません。
  • 読み取り専用モードを使用すると、最大 10 個の VM インスタンスにリージョン バランス Persistent Disk をアタッチできます。
  • リージョン標準永続ディスクの最小サイズは 200 GiB です。
  • リージョン Persistent Disk またはHyperdisk Balanced High Availability ボリュームのサイズを増やすことはできますが、縮小はできません。
  • リージョン Persistent Disk と Hyperdisk Balanced High Availability ボリュームのパフォーマンス特性は、対応するゾーンディスクとは異なります。詳細については、ブロック ストレージのパフォーマンスをご覧ください。
  • マルチライター モードの Hyperdisk Balanced High Availability ボリュームをブートディスクとして使用することはできません。
  • ゾーンディスクのクローンを作成してレプリケートされたディスクを作成する場合、2 つのゾーンレプリカは作成時には完全には同期しません。作成後、リージョン ディスクのクローンは平均で 3 分以内に使用できるようになります。ただし、ディスクが完全にレプリケートされた状態になり、目標復旧時点(RPO)がゼロに近くなるまで、数十分かかる場合があります。詳細については、レプリケートされたディスクが完全にレプリケートされたかどうかを確認する方法をご覧ください。

ストレージ インターフェースの種類

インスタンスの作成時または Persistent Disk ボリュームを VM に追加するときに、ストレージ インターフェースが自動的に選択されます。Tau T2A と第 3 世代 VM(M3 など)は、Persistent Disk 用として NVMe インターフェースを使用します。

Confidential VM インスタンスも NVMe Persistent Disk を使用します。他のすべての Compute Engine マシンシリーズは、Persistent Disk 用として SCSI ディスク インターフェースを使用します。

ほとんどの公開イメージには、NVMe と SCSI の両方のドライバが含まれています。ほとんどのイメージには、NVMe を使用して VM が最高のパフォーマンスを実現できる最適化済みのドライバを備えたカーネルが含まれています。カーネル バージョン 4.14.68 以降が含まれている Linux イメージにインポートすると、NVMe で最高のパフォーマンスが実現します。

オペレーティング システムのバージョンが NVMe をサポートしているかどうかを確認するには、オペレーティング システムの詳細ページをご覧ください。

マルチライター モード

マルチライター モードでは SSD Persistent Disk を同時に最大 2 個の N2 VM にアタッチできるため、両方の VM でディスクの読み取りと書き込みが可能になります。

マルチライター モードの永続ディスクは、共有ブロック ストレージ機能を備えており、高可用性の共有ファイル システムとデータベースを構築するためのインフラストラクチャ基盤としての役割を果たします。このような専用のファイル システムとデータベースは、共有ブロック ストレージと連携して機能し、SCSI 永続予約などのツールを使用して VM 間のキャッシュ整合性を処理するように設計する必要があります。

ただし、マルチライター モードの永続ディスクは通常直接使用しないでください。EXT4、XFS、NTFS などの多くのファイル システムは、共有ブロック ストレージで使用するように設計されていません。VM 間で Persistent Disk を共有するためのベスト プラクティスについては、ベスト プラクティスをご覧ください。

フルマネージドのファイル ストレージが必要な場合は、Compute Engine VM に Filestore ファイル共有をマウントできます。

新しい Persistent Disk ボリュームでマルチライター モードを有効にするには、新しい Persistent Disk を作成し、gcloud CLI に --multi-writer フラグを指定するか、Compute Engine API に multiWriter プロパティを指定します。詳細については、VM 間で永続ディスク ボリュームを共有するをご覧ください。

Persistent Disk の暗号化

Compute Engine は、データが VM の外部から Persistent Disk ストレージ領域に移動される前に、データを自動的に暗号化します。各永続ディスクは、システム定義の鍵または顧客指定の鍵のいずれかで暗号化されたままになります。永続ディスクデータは複数の物理ディスクに分散されます。分散の方法はユーザーによって制御されません。

Persistent Disk ボリュームを削除すると、Google は暗号鍵を破棄し、データを回復不能にします。このプロセスは元に戻せません。

データの暗号化に使用される暗号鍵を制御する必要がある場合は、顧客指定の暗号鍵でディスクを作成します。

制限事項

  • 別のプロジェクトの VM に Persistent Disk ボリュームを接続することはできません。

  • 最大 10 個の VM にバランス Persistent Disk を読み取り専用モードでアタッチできます。

  • カスタム マシンタイプか、最小 1 vCPU の事前定義されたマシンタイプの場合、最大で 128 個の Persistent Disk ボリュームを接続できます。

  • 各 Persistent Disk ボリュームの最大サイズは 64 TiB であるため、大きな論理ボリュームを作成するためにディスクのアレイを管理する必要はありません。各 VM が接続できる Persistent Disk の合計容量と個別の Persistent Disk ボリュームの数には上限があります。Persistent Disk の上限は、事前定義されたマシンタイプとカスタム マシンタイプで同じです。

  • ほとんどの VM で最大 128 TiB の Persistent Disk と、最大 257 TiB のディスク容量を接続できます。VM の合計ディスク容量には、ブートディスクのサイズが含まれます。

  • 共有コア マシンタイプは、16 個の Persistent Disk ボリュームと 3 TiB の合計 Persistent Disk 容量に制限されています。

  • 64 TiB を超える論理ボリュームを作成する場合は、特に考慮しなければならない場合があります。大容量論理ボリュームのパフォーマンスの詳細については、論理ボリューム サイズをご覧ください。

Persistent Disk と Colossus

Persistent Disk は、分散型ブロック ストレージ システムである Colossus という Google のファイル システムと連動して実行するように設計されています。Persistent Disk ドライバは、VM からネットワークに転送される前に、VM 上のデータを自動的に暗号化します。その後、Colossus がデータを保持します。Colossus がデータを読み取ると、ドライバは受信データを復号します。

画像

Persistent Disk ボリュームは、ストレージ バックエンドに Colossus を使用します。

ディスクをサービスとして使用すると、次のような多くの場合に便利です。

  • インスタンスの実行中にディスクのサイズを変更すると、インスタンスを停止するよりも簡単です。インスタンスを停止せずにディスクサイズを増やすことができます。
  • ディスクと VM が同じライフサイクルを共有することや、同じ場所に配置する必要がない場合、ディスクのアタッチとデタッチが簡単になります。VM を停止し、その Persistent Disk ブートディスクを使用して別の VM を起動できます。
  • ディスク ドライバはレプリケーションの詳細を隠し、自動書き込み時レプリケーションを提供できるため、レプリケーションなどの高可用性機能が容易になります。

次のステップ