Upgrade to Pro — share decks privately, control downloads, hide ads and more …

オブジェクトストレージゲートウェイ:NooBaa / Object Storage Gateway NooBaa

オブジェクトストレージゲートウェイ:NooBaa / Object Storage Gateway NooBaa

Takuya Utsunomiya

July 06, 2023
Tweet

More Decks by Takuya Utsunomiya

Other Decks in Technology

Transcript

  1. kind: HumanBeings metadata: name: うつぼ(宇都宮 卓也) spec: group: レッドハット株式会社 title:

    ソリューションアーキテクト born: 大阪 age: 41歳 favorites: technology: ストレージ hobby: [“プロレス”, “麻雀”, “将棋”, “スピードキュービング ”] drink: [“ワイン”, “ビール”, “無糖サワー”] annoyance: [“背中が痛い”, “最近目が霞む”] うつぼ @japan_rook Japan Rook https://rook.connpass.com/ Cloud Native Data Community https://cndata.connpass.com/ https://www.shoeisha.co.jp/book/detail/ 9784798175027 2 $ whoami
  2. NooBaa 4 • オブジェクトストレージを統合して管理するゲートウェイ ◦ 複数のオブジェクトバケットに対する単一のエンドポイントを提供 ◦ アプリには仮想的なバケットを提供し、個々に Access KeyとSecret

    Keyを提供 ◦ バケット間のミラーリングやマイグレーションを透過的に実行 • ブロックストレージやファイルストレージのフロントに立つことで、オブジェクトバケットのように利用することも可能 アプリ 仮想バケット 仮想バケット アプリ アプリ 仮想バケット Amazon S3 エンドポイント Google Cloud Storage Azure Blob Storage IBM Cloud Object Storage S3-compatible Storage S3 S3 S3 Block Storage File Storage https://www.noobaa.io/
  3. アプリ NooBaaを使う環境 5 • Kubernetes クラスタ ◦ NooBaa は Kubernetes

    Pod として展開 ◦ エンドポイントを expose すれば外部アプリからも使用可能 ◦ minikube でもOK アプリ 仮想バケット 仮想バケット アプリ アプリ 仮想バケット Amazon S3 エンドポイント Google Cloud Storage Azure Blob Storage IBM Cloud Object Storage S3-compatible Storage S3 S3 S3 Block Storage File Storage S3
  4. 超軽量 6 $ kubectl get pod,pvc -n noobaa NAME READY

    STATUS RESTARTS AGE pod/noobaa-core-0 1/1 Running 0 3d15h pod/noobaa-db-pg-0 1/1 Running 0 3d15h pod/noobaa-default-backing-store-noobaa-pod-fd2f8f81 1/1 Running 0 3d15h pod/noobaa-endpoint-bc87c74cb-x2ws2 1/1 Running 0 3d15h pod/noobaa-operator-584f4b7c58-9bkbb 1/1 Running 4 (6h29m ago) 3d15h NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE persistentvolumeclaim/db-noobaa-db-pg-0 Bound pvc-c555f3d5-68fa-41c1-a3af-0165a18127b2 50Gi RWO thin 3d15h persistentvolumeclaim/noobaa-default-backing-store-noobaa-pvc-fd2f8f81 Bound pvc-434ebc42-f634-4d7c-ac20-dd6ba707e9ef 50Gi RWO thin 3d15h
  5. 何に使えるの? 7 • 透過的なオブジェクトデータの移動・複製 ◦ アプリケーションのアクセスを止めずにデータ を移動したり複製したりする ◦ ストレージ更改に伴うデータ移行や、オンプレ ・クラウド間のミラーリング

    NooBaa NooBaa A • オブジェクトデータの仮想統合 ◦ 分散したデータを仮想的に一つのバケットに 統合 ◦ 非構造化データのデータレイク的な用途 • オンプレにおける手軽なオブジェクトストレージ ◦ ブロックデバイスの上に被さることでオブジェ クトバケットを作成 ◦ 小容量なオブジェクトストレージ Block NooBaa A Object A S3 無理 S3♪
  6. NooBaa NooBaaが提供する機能 8 App App • 複数のバケットの一元管理 ◦ アプリケーションに単一のアクセスエンドポイントと、管理下の バケットをまとめた仮想バケットを提供する。

    • 重複排除、圧縮、暗号化 ◦ 管理下のバケットに書き込む際に、インラインで重複排除、圧 縮、暗号化の処理を行う。 • 管理下のバケット間での分散、ミラーリング ◦ 管理下のバケットをまたいでオブジェクトを分散したり、ミラーリ ングしたりできる。冗長度は自由に設定できる。 App NooBaa App NooBaa App endpoint Data Bucket Namespace Bucket Data Bucket Data Bucket
  7. NooBaaが提供する機能 9 • 既存のバケットの仮想的な統合 ◦ 既存バケットを仮想的に統合し、各々のバケットが持つデータ を仮想バケットに集約できる。 • Persistent Volume(永続ボリューム)をオブジェクトスト

    レージとして利用 ◦ Persistent Volumeに仮想バケットを作成し、オブジェクトスト レージとして利用できる。 • 既存ファイルシステムへのオブジェクトアクセス ◦ 既存ファイルシステムのファイルをオブジェクトとして読み書き できる。 NooBaa App A B C A B C NooBaa App Persistent Volume NooBaa App A B C A B C Filesystem Persistent Volume Namespace Bucket Namespace Bucket Data Bucket
  8. NooBaa NooBaaが提供する機能 10 • バケットレプリケーション ◦ 仮想バケット間でオブジェクトのレプリケーションを実行できる。 • ローカルキャッシング ◦

    仮想バケットで読み込んだオブジェクトを、一時的にローカル のバケットにキャッシュできる。 ◦ キャッシュされているオブジェクトはそこから読み込むことがで きる。 App A A A A A NooBaa App A A A A Replication Cache Data Bucket Namespace Bucket Data Bucket Namespace Bucket
  9. 11 Data Bucket • 標準的に使われる Bucket • Backing Store =

    バックエンドの Bucket or PV から作成 ◦ 書かれたデータはリアルタイムに Backing Store に書かれ る ◦ Backing Store は複数の Data Bucket で共有することもで きる • Backing Storeに書かれるデータは inline で重複排除・圧縮・ 暗号化される ◦ Backing Store の Bucket から直接は読めない • 複数の Backing Store を指定できる ◦ Spread Bucket ◦ Mirror Bucket ◦ Tiering App NooBaa Data Bucket Data Bucket Encrypt Backing Store endpoint Dedupe/Compress Data Bucket
  10. 12 • 既存のバケットを透過的に利用する Bucket • Namespace Store(NSS) = バックエンドの Bucket

    から作 成 ◦ 書かれたデータはリアルタイムに NSS に書かれる ◦ NSS を透過的に見せるため、 初めから NSS に置かれ ているデータは、 Namespace Bucket からも読むこと ができる • 圧縮・重複排除・暗号化は行われない ◦ NSS の Bucket に直接読み書きできる • 複数の NSS を指定できる ◦ Multi NSS : 1つ以上の NSS から読み込み & 1つの NSS に書き込み Namespace Bucket App NooBaa Namespace Bucket Namespace Bucket Namespace Store Transparent endpoint Namespace Bucket
  11. Namespace Bucketによる既存バケットの仮想統合 13 Namespace Bucket アプリ エンドポイント S3-compatible Storage Amazon

    S3 Google Cloud Storage Azure Blob Storage data X1 data X2 data X3 data X4 • 複数の既存バケットを仮想的に統合し、各々のバ ケットが持つデータを仮想バケットに集約する。 • アプリは全てのデータがあたかも 1つのバケットにあ るかのように参照できる。 data X1 data X2 data X4 data X3
  12. NooBaa 14 • オブジェクトストレージを統合して管理するゲートウェイ ◦ 複数のオブジェクトバケットに対する単一のエンドポイントを提供 ◦ アプリには仮想的なバケットを提供し、個々に Access KeyとSecret

    Keyを提供 ◦ バケット間のミラーリングやマイグレーションを透過的に実行 • ブロックストレージやファイルストレージのフロントに立つことで、オブジェクトバケットのように利用することも可能 アプリ 仮想バケット 仮想バケット アプリ アプリ 仮想バケット Amazon S3 エンドポイント Google Cloud Storage Azure Blob Storage IBM Cloud Object Storage S3-compatible Storage S3 S3 S3 Block Storage File Storage https://www.noobaa.io/