LoginSignup
5
1

S3互換のオブジェクトストレージ Apache Ozoneに関する情報(随時更新)

Last updated at Posted at 2023-05-01

image.png

巷に情報があまりないので関連情報をまとめてます。

Apache Ozoneって?

Apache Ozoneとは、スケーラブルで冗長性のある分散オブジェクトストアです1

また、様々なサイズのオブジェクトを数十億個まで拡張できるほか、KubernetesのCSIにも対応しようとしています。
Ozoneには、Javaクライアントライブラリ、S3プロトコルのサポート、Ozoneの使用を容易にするコマンドラインインターフェイスが付属しています。

Apache Iceberg、Delta Lake、Apache Hudiといった、Data Lakehouse2 を構築する際のストレージ層として、利用されるケースもあります3

書籍

知ってる人いたら教えてください。

アーキテクチャ

サイジングに関する情報

データサイズに応じた各ホストのスペックやネットワークスイッチに関する情報

CLI関連

省略表記

ドキュメントなどで補足無く記載している場合があるので...。
一部、Ozoneのコンポーネントだけでなく、関連する用語も含みます。

省略表記 正式名
OM Ozone Manager
SCM Storage Container Manager
DN DataNode
EC Erasure Coding

運用関連の情報

Container Balancer

DataNode間の偏りを調整する機能(Ozone v1.3.0でリリース済み)

Container Balancerは、各DNの使用率を平均した値より、設定値 Balancing Threshold 以上離れているDNが存在したらContainer Balancerが動く。

ただし、EC利用時は v1.3.0時点では対応してない(次のV1.4.0から対応予定)

可用性に関する対応について

Ozoneには、2つのメタデータ管理コンポーネント(OM:キースペース管理、SCM:ブロックスペース管理)があり、いずれもの可用性の対応している(内部の状態はRAFTで整合している。Apache Ratisを利用)。

可用性を実現する内部の仕組みについて

データを書き込みする際には以下のMulti-Raftを使って実現している。
ReconのPipelineのUIがその状況を示している

Multi-Raftのデザインドキュメント

ReconのPipelineページの説明記事

監視関連

Ozoneは、ozone-site.xmlhdds.prometheus.endpoint.enabledtrueにすることで、各コンポーネントでPromethusフォーマットでメトリクスを出力出来る。

各コンポーネントのHTTP Web UI Portに対して、/prom でアクセスすると取得出来る。

デフォルトの場合は以下の通り

SCM: http://scm-fqdn:9876/prom (ozone.scm.http-portで指定したポート)
OM: http://om-fqdn:9874/prom (ozone.om.http-portで指定したポート)
DN: http://dn-fqdn:9882/prom (ozone.datanode.http-portで指定したポート)
Recon: http://recon-fqdn:9888/prom (ozone.recon.http-portで指定したポート)

Monitoring with Prometheus

その他

関連記事やブログ

スライド

動画アーカイブ

関連イベント

ハンズオン環境構築するには

https://ozone.apache.org/downloads/ ページにあるBinaryにDocker ComposeやKubernetesのマニフェストが用意されている。READMEもあるので見るとわかる。

  • Docker Composeの場合は、composeディレクトリ以下を参照。
    • compose/ozoneにあるdocker-compose.yamlが単純な構成なので手始めには分かりやすい。
      • HA構成のものもあるので色々見てみると参考になります。
    • https://github.com/apache/ozone-docker/ に代表的な構成があるのでこっちも分かりやすい
    • ozone-site.xmlに設定追加したい場合は、compose以下の各フォルダにdocker-configってファイルがあるのでそこに決まったフォーマットで入れるとOzone起動時にozone-site.xmlが生成されて利用される
  • Kubernetesの場合は、Kubernetesディレクトリ以下を参照。
  1. 同様の製品としては、 MinIO が有名です。

  2. https://qiita.com/taka_yayoi/items/1ebbce9b76fb923d5e21

  3. Cloudera Data Platform の Apache Iceberg で、マルチクラウドのオープンレイクハウスを実装する - Cloudera株式会社 公式ブログの「CDP パブリッククラウドによるマルチクラウド展開」の項にある図参照

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1