Rapid Bucket

このページでは、ゾーンをバケットのロケーションとして設定して、Rapid Storage ストレージ クラスにオブジェクトを保存できる機能である Rapid Bucket について説明します。このアプローチでは、データ ストレージをコンピューティング リソースとコロケーションできるため、Cloud Storage の他のストレージ クラスと比較して、レイテンシが大幅に短縮され、スループットが向上します。他のゾーンとリージョンのワークロードも、ネットワーク距離に応じたパフォーマンスでバケットにアクセスできます。

Rapid Bucket を使用してゾーンバケットを作成するには、ゾーンバケットを作成するをご覧ください。サポートされているロケーションのリストについては、ゾーンをご覧ください。ゾーン バケット内のオブジェクトを読み取って追加するには、ゾーン バケット内のオブジェクトを使用するをご覧ください。

利点

Rapid Bucket は、ストレージのボトルネックを解消するために構築されており、AI/ML やデータ分析など、データ量の多いアプリケーションに最適です。Rapid Bucket は、ミリ秒未満のレイテンシ、最大 15 TB/秒の集約スループット、2,000 万の秒間クエリ数(QPS)をサポートします。超低レイテンシにより、データを瞬時に取得し、リアルタイム推論アプリケーションを大規模に実行できます。大容量のスループットと高い QPS により、高価な GPU クラスタを完全に飽和状態に保ち、モデルのトレーニング時間を大幅に短縮できます。

Rapid Bucket の用語

Cloud Storage のドキュメントでは、次の用語を使用します。

  • Rapid Bucket: ゾーン ロケーションと Rapid Storage ストレージ クラスでバケットを作成できるプロダクト。

  • Rapid Storage: Cloud Storage で最高のデータアクセスと I/O オペレーションのパフォーマンスを提供するストレージ クラス。Rapid Bucket を使用すると、Rapid Storage を使用するバケットが作成されます。Rapid Storage の詳細については、ストレージ クラスをご覧ください。

  • ゾーンバケット: ゾーンにあるバケット。ゾーンバケット内のオブジェクトは常に Rapid Storage に保存され、追加可能です。

ゾーンバケットの機能

低レイテンシと高スループットを実現するだけでなく、ゾーンバケットでは次のことも可能です。

  • オブジェクト全体を書き換えずに、ゾーン バケット内のオブジェクトに追加する

  • オブジェクトを開いて、オペレーションの実行中にストリームを維持し、後続の読み取りと書き込みを高速化します。

ユースケース

Rapid Bucket は、AI/ML ワークロードやその他のデータ量の多いワークロードに最適です。このようなワークロードの例としては、モデルのチェックポイント、評価、サービング、ロギングとメッセージ キューなどがあります。ストリーミング データやデータベースのストレージの提供にも使用できます。

Rapid Bucket が提供する低レイテンシと高スループットを最大限に活用するには、gRPC 直接接続を有効にしてください。

ゾーン バケット内のオブジェクトへのアクセス

ゾーンバケットのパフォーマンス上のメリットを得るには、オブジェクトをストリーミング用に開き、オブジェクトに対してオペレーションを実行するときにストリームを維持します。ストリームを確立して維持すると、後続の読み取りまたは書き込みオペレーションを非常に低いレイテンシでオブジェクトに対して実行できます。たとえば、Parquet ファイルを読み取る場合、ファイルのメタデータ(フッター)の最初の読み取りと、特定の行の後続の読み取りを 1 つのリクエストで実行できます。このアプローチは、各ステップに個別のリクエストを使用するよりも効率的です。

確立されたオブジェクト ストリームは、Cloud Storage FUSE または Cloud Storage クライアント ライブラリを使用してゾーン バケット オブジェクトにアクセスすると、デフォルトで開いたままになります。

任意の数のホストからオブジェクトへの複数の読み取りストリームを開くことができます。オブジェクトに確立できる読み取りストリームの数に制限はありません。

オブジェクトの追加

ゾーンバケット内のオブジェクトにデータを追加できます。オブジェクトに付加を行う場合、次のセマンティクスが適用されます。

  • 追加可能なオブジェクトは、書き込みを開始するとすぐにバケット名前空間に表示され、書き込み中も読み取ることができます。

  • オブジェクトに追加できる回数や、一度に追加できるバイト数に制限はありません。オブジェクトが最大サイズ(5 TiB)に達するまで、追加できます。

  • 新しい追加が永続的に書き込まれるかフラッシュされると、オブジェクトのサイズはリアルタイムで増加します。読み取りストリームを確立すると、オブジェクトのサイズの更新に最小限の遅延が発生することが予想されます。

  • 追加可能なオブジェクトには、一度に 1 つの書き込みのみが可能です。既存の書き込みストリームがすでに存在するオブジェクトに対して新しい書き込みストリームが確立されると、Cloud Storage から元のストリームにエラーが返され、元のストリームは書き込みを許可されなくなります。新しいライターは、オブジェクトへの他のインターリーブされた追加なしで、最後に永続化されたオフセットから追加を再開できます。

オブジェクトのファイナライズ

オブジェクトを確定すると、オブジェクトへの追加はできなくなりますが、新しいバージョンでオブジェクトを上書きすることはできます。確定されたオブジェクトのメタデータは変更可能です。たとえば、新しいタグを追加したり、オブジェクトの名前を変更したりできます。

ゾーン バケットのマウント

ゾーン バケットをマウントしてアクセスするには、Cloud Storage FUSE または Cloud Storage FUSE CSI ドライバを使用します。Cloud Storage FUSE バージョン 3.7.2 以降を使用してください。Cloud Storage FUSE CSI ドライバを使用するには、Google Kubernetes Engine のバージョンが 1.35.0-gke.3047001 以降であることを確認してください。

料金

Rapid Bucket を使用すると、データ ストレージ、オペレーション、ネットワーキングの料金が発生します。詳細については、料金をご覧ください。

制限事項

  • ゾーンバケットでは、階層型名前空間均一なバケットレベルのアクセスを有効にする必要があります。

  • Google Cloud CLI の制限事項:

    • サポートされている Google Cloud CLI の最小バージョン: ゾーンバケットをサポートする gcloud CLI の最小バージョンは 553.0.0 です。以前のバージョンは、ゾーンバケットと互換性がありません。最新の機能とバグ修正を利用するには、gcloud CLI の最新バージョンを使用することをおすすめします。

    • 未完了のアップロードの可視性: 他のストレージ クラスのバケットとは異なり、オブジェクトはアップロードが完了した後にのみ名前空間に表示されますが、ゾーンバケットの部分的にアップロードされたオブジェクトはすぐに表示されます。Google Cloud CLI のアップロード コマンドが失敗した場合や中断された場合は、バケットに不完全なオブジェクトが表示されることがあります。コマンドを再実行することで、これらのアップロードを再開できます。

    • オブジェクトの上書き: 標準の Google Cloud CLI の動作は、ゾーンバケットに適用されます。オブジェクトを上書きするときに、同じ名前のファイルまたはオブジェクトが宛先に存在する場合、Google Cloud CLI の cpmvrsync コマンドはデフォルトで上書きします。上書きを防ぐには、--no-clobber フラグを使用します。Google Cloud CLI を使用する場合、既存のオブジェクトにデータを追加することは対象外です。ソース全体を再アップロードする必要があります。

    • オブジェクトのファイナライズ: Google Cloud CLI を使用してゾーン バケットにアップロードされたオブジェクトでは、オブジェクトのメタデータが完全に同期されるまでに短い遅延が発生することがあります。Cloud Storage は結果整合性モデルを使用するため、アップロード直後にオブジェクトをダウンロードしようとすると、メタデータがまだ更新されていない場合にハッシュの不一致エラーが発生することがあります。

      アップロード直後にハッシュの不一致エラーでダウンロードが失敗した場合は、コマンドを再試行します。ダウンロードは完全に成功するか、明示的に失敗するかのいずれかになります。部分的なダウンロードや破損したダウンロードがサイレントに発生することはありません。

非互換性

ゾーン バケットは、次のツール、オペレーション、プロダクト、メタデータと互換性がありません。

  • ツール

    • XML API または JSON API を使用した書き込み

    • XML API マルチパート アップロード

  • gRPC を使用した追加不可能なオブジェクトの書き込み

  • データ保護と障害復旧

    • オブジェクトのバージョニング

    • 削除(復元可能)

  • データ マネジメント

    • Rapid Cache

    • Autoclass

    • バケットロック

    • オブジェクトの作成

    • オブジェクト保留

    • オブジェクトのライフサイクル管理 SetStorageClass アクション

    • オブジェクト保持ロック

    • バケットの再配置

    • 再開可能なアップロード

    • オブジェクトの書き換え

    • リクエスト元による支払い

  • アクセス制御

    • オブジェクト レベルのアクセス制御リスト(ACL)

    • CORS 構成

    • 顧客指定の暗号鍵(CSEK)

    • HMAC キー

  • メタデータ

    • ゾーンバケット内のオブジェクトには MD5 ハッシュがありません。

    • サポートされていない機能やプロダクトに関連付けられているメタデータ プロパティは、ゾーン バケットまたは追加可能なオブジェクトのリソース表現に表示されません。また、書き込み不可になります。次に例を示します。

      • ゾーンバケット内のオブジェクトでは削除(復元可能)がサポートされていないため、softDeleteTime メタデータ プロパティと hardDeleteTime メタデータ プロパティは Objects リソースのリソース表現に表示されません。

      • ゾーンバケット内のオブジェクトの storageClass メタデータは常に RAPID の値になり、書き換えることはできません。これは、ゾーンバケットでは常に Rapid Storage ストレージ クラスを使用する必要があるためです。

割り当て

プロジェクトごとの各ゾーンには、ストレージ バイトの割り当てがあります。プロジェクトの各ゾーンには、Cloud Storage から Google サービスへの下り(外向き)割り当てもあります。ストレージまたはデータの下り(外向き)割り当ての空き容量を確認するには、[割り当てとシステム上限] ページをご覧ください。割り当ての増加をリクエストする方法については、割り当てを管理するをご覧ください。

ベスト プラクティス

Cloud Storage FUSE でゾーン バケットを使用する際のパフォーマンスを最適化するには、マウントされたオブジェクトへのオープン ファイル ハンドルを維持し、複数のオペレーションで使用します。これにより、Cloud Storage FUSE が読み取りの繰り返しごとに不要なネットワーク ラウンド トリップを実行しなくなるため、パフォーマンスが向上します。

次のステップ