Slide 1

Slide 1 text

オブジェクトストレージ ゲートウェイ: NooBaa 宇都宮卓也(うつぼ) 1 Storage-JAWS #0:Lightning Talk

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

3 AWS Storage Gateway ストレージのゲートウェイといえば ちょっと違う ”ストレージゲートウェイ” があります

Slide 4

Slide 4 text

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/

Slide 5

Slide 5 text

アプリ 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

Slide 6

Slide 6 text

超軽量 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

Slide 7

Slide 7 text

何に使えるの? 7 ● 透過的なオブジェクトデータの移動・複製 ○ アプリケーションのアクセスを止めずにデータ を移動したり複製したりする ○ ストレージ更改に伴うデータ移行や、オンプレ ・クラウド間のミラーリング NooBaa NooBaa A ● オブジェクトデータの仮想統合 ○ 分散したデータを仮想的に一つのバケットに 統合 ○ 非構造化データのデータレイク的な用途 ● オンプレにおける手軽なオブジェクトストレージ ○ ブロックデバイスの上に被さることでオブジェ クトバケットを作成 ○ 小容量なオブジェクトストレージ Block NooBaa A Object A S3 無理 S3♪

Slide 8

Slide 8 text

NooBaa NooBaaが提供する機能 8 App App ● 複数のバケットの一元管理 ○ アプリケーションに単一のアクセスエンドポイントと、管理下の バケットをまとめた仮想バケットを提供する。 ● 重複排除、圧縮、暗号化 ○ 管理下のバケットに書き込む際に、インラインで重複排除、圧 縮、暗号化の処理を行う。 ● 管理下のバケット間での分散、ミラーリング ○ 管理下のバケットをまたいでオブジェクトを分散したり、ミラーリ ングしたりできる。冗長度は自由に設定できる。 App NooBaa App NooBaa App endpoint Data Bucket Namespace Bucket Data Bucket Data Bucket

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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/