SSD ストレージと HDD ストレージのいずれかを選択する

Bigtable インスタンスの作成時に、クラスタでのデータの保存先をソリッド ステート ドライブ(SSD)とハードディスク ドライブ(HDD)のどちらにするかを指定します。

  • SSD ストレージは、ほとんどのユースケースで最も効率的でコスト効果の高い選択肢です。
  • HDD ストレージは、大規模なデータセットで、レイテンシがあまり重要でない場合やアクセス頻度が低い場合に適切であることがあります。

どちらのタイプのストレージを選択した場合でも、多数の物理ドライブにわたって分散してレプリケーションされたファイル システムにデータが保存されます。

このページのガイドラインは、SSD か HDD かの選択に役立ちます。

判断に迷った場合は SSD ストレージを選択する

Bigtable クラスタで SSD ストレージを使用するのが通常は最適である理由を以下に示します。

  • SSD は HDD に比べて、動作がはるかに速いだけでなく、パフォーマンスの予測可能性にも優れています。Bigtable クラスタでは、SSD ストレージは HDD ストレージよりも読み取りと書き込みのレイテンシが大幅に低くなります。
  • HDD のスループットには SSD のスループットより大きな制限があります。HDD ストレージを使用するクラスタでは、CPU 使用率が 100% に達する前に最大スループットに達することもあります。この状況はディスク負荷指標を使用してモニタリングできます。スループットを向上させるには、より多くのノードを追加する必要があります。しかし、追加ノードのコストが、HDD ストレージの使用によるコスト削減を超えることがあります。SSD ストレージにはそのような制約はありません。ノードあたりのスループットははるかに高いため、通常、利用可能な CPU とメモリをすべて使用している場合にのみ、SSD ストレージを使用するクラスタのスループットは最大になります。
  • HDD での個々の行の読み取りは非常に低速です。ディスクのシーク時間のために、HDD ストレージでは SSD ストレージの読み取り行数(1 秒あたり)の 5% しかサポートされていません。ただし、大きな複数行のスキャンでは、それほどの低下はありません。
  • HDD によるコスト削減は、大きなデータを保存しない限り、Bigtable クラスタ内のノード費用に比べてごくわずかです。そのため、目安として、10 TB 以上のデータを保存し、ワークロードがレイテンシの影響を受けにくい場合以外は、HDD ストレージの使用を検討する必要はありません。

SSD ストレージの欠点となりうる点として、保存するデータの量によってはクラスタで必要となるノード数が多くなることがあげられます。しかし、ノードを増やすことで、保存するデータの量をサポートできるだけでなく、クラスタが受信トラフィックに対応できます。

HDD ストレージのユースケース

HDD ストレージは、次の条件をすべて満たしているユースケースに適しています。

  • 10 TB 以上のデータを保存する予定である。
  • ユーザー向けやレイテンシの影響を受けやすいアプリケーションを支援するデータを使用しない。
  • ワークロードは次のいずれかのカテゴリに分類されます。

    • バッチ ワークロード。スキャンと書き込みが行われます。また、少数の行の読み込みがまれにランダムに行われます。
    • データ アーカイブ。大量のデータの書き込みが行われます。そのデータの読み取りはほとんど行われません。

たとえば、多数のリモート センシング装置の詳細な履歴データを保存し、そのデータを使用して日次レポートを生成する予定がある場合には、パフォーマンスが低下しても HDD ストレージのコスト削減が優先されることがあります。それに対して、データを使用してリアルタイム ダッシュボードを表示する場合は、HDD ストレージの使用は適切とはいえません。この場合、読み取りが頻繁に行われ、またスキャンではない読み取りははるかに遅いからです。

SSD ストレージと HDD ストレージの切り替え

Bigtable インスタンスを作成した後は、そのインスタンスでの SSD ストレージまたは HDD ストレージの選択は変更できません。Google Cloud Console を使用して、インスタンスで使用しているストレージのタイプは変更できません。

テーブルの保存場所であるストレージ タイプを変更する場合は、バックアップ機能を使用します。

  1. 希望するストレージ タイプを使用するインスタンスを作成するか、インスタンスを使用するように計画します。
  2. テーブルのバックアップを作成します。
  3. バックアップから、別のインスタンスの新しいテーブルに復元します。

次のステップ

SSD または HDD ストレージを持つインスタンスを作成する。