この記事は、2023/7/19に公開された「Boosting Object Storage Performance with Ozone Manager」の翻訳です。
Ozone は Apache Software Foundation のプロジェクトで、分析ワークロード、コンテンツ配信、およびオブジェクトストレージのユースケースで求められる厳しいパフォーマンス要件に応える分散ストレージプラットフォームを構築するためのものです。
この Ozone の重要なコンポーネントとなっているのが、Ozone Manager です。このサービスはレプリケーションによって高可用性を実現しており、Ozone に保存されているすべてのオブジェクトのメタデータを管理する役割を担っています。Ozone はエクサバイト規模のデータまで扱えるため、Ozone Manager が大規模なデータに対応できるようにすることが重要です。このブログ記事では、Ozone Manager のパフォーマンスを改善してエクサバイト規模のデータに対応できるようにするために実施した最近の取り組みをご紹介します。
使用したハードウェアの仕様は、このブログ記事の最後に掲載しています。このハードウェアは、Cloudera とのオープンソースパートナーシップの一環として Cisco 社から提供されました。Cisco 社は Ozone を実行するための複数のリファレンスアーキテクチャを提供しています。今回利用したハードウェアは、パフォーマンスと TCO が最適化された、1ノードあたり500 TB 程度の高密度ノードで構成されています。
Ozone Manager は、Ozone 内に保存されたオブジェクトのメタデータを管理し、Ratis (Raft 実装) を介してレプリケートされた Ozone Manager インスタンスのクラスタで構成されています。データ処理ワークロードは、データノードとそれを処理するさまざまなアプリケーション間のデータ転送のパフォーマンスによって影響を受けやすい傾向があります。しかし、オブジェクトのメタデータが妥当な低レイテンシで提供されていれば、Ozone Manager への最適化の影響が、一般的なスタンドアローンの分析ベンチマークに現れることはありません。
Ozone は、数百億のオブジェクトとエクサバイト規模の容量に対応できるように設計されています。保存されているデータセット全体のワークロードに対応する必要があるため、Ozone Manager の処理速度は全体の規模が大きくなるほど重要になります。管理対象のデータの規模を拡大しながら、高性能が求められる複数のワークロードに対応するには、このブログで紹介する取り組みが不可欠です。
Cloudera はこの1年間、パフォーマンスを念頭に置き、Ozone Manager に焦点を絞ってパフォーマンスと拡張性を大幅に高めるさまざまな改良を実施してきました。これらの改良は、Cloudera Data Platform リリース7.1.9と Apache Ozone リリース1.4.0に組み込まれる予定です。
当社は、いくつかの主要な分野で改良を実施しました。
上記の改善により、Ozone は毎秒約10万5,000回の読み取り操作をサポートできるようになりました。つまり、Ozone Manager の IOPS (1秒あたりの入出力操作数) が Cloudera Data Platform 7.1.8の約7倍に増えたことになります。S3 Gateway については、さまざまなパフォーマンス関連の取り組みを開始してから、1ゲートウェイあたりのパフォーマンスが30倍以上も向上しています。
以下の負荷パターンは、Ozone に組み込まれた CLI 負荷生成ツールを使用して生成されたものです。このツールは、約1億個のキーを持つクラスタ内のオブジェクトのメタデータのみを読み取ります。計測された1秒あたり処理数は、ピーク時で約10万回でした。
以下のグラフは、Ozone Manager によって処理されたキーの読み取り速度を示しています。
Freon は Ozone CLI の拡張機能で、負荷を生成してさまざまな Ozone API のベンチマークテストを実行できます。当社は Freon を使用して、4億個を超えるキーの大規模なデータセットを生成し、それらのキーを読み戻して Ozone Manager に負荷を発生させました。Ozone Freon は16台の物理クライアントノードから負荷を生成し、各インスタンスで最大90スレッドを立ち上げました。
以下のグラフは、単一の Freon インスタンスでスレッド数を増やして負荷を生成したときの読み取り速度を示しています。
Ozone によって追跡される多くのメトリクスの1つに、Ozone Manager がリクエストを内部で処理するのにかかる時間があります。セキュアな読み取りを実現するためにブロックトークンの生成を改善したことで、レイテンシがミリ秒未満にまで短縮されました。ブロックトークンの生成を再設計した結果、1回の読み取り操作にかかる時間が約6ミリ秒短縮されたのです。
全体として、上記のさまざまな取り組みを通じて、Ozone のキーの読み取り回数は、1秒あたり約1万5000回以下から10万回以上にまで向上しました。
今後も、計画中の取り組みによってさらなるパフォーマンスの改善が期待されています。
Cisco 社から提供されたハードウェアのセットは、3台のマスターノードと16台のデータノードで構成されていました。
Ozone Manager の1秒あたりの読み取り操作数の測定にあたって、更新した関連設定は以下のとおりです。
Ozone は Ranger と統合され、Kerberos で保護されるように構成されていました。
顧客が増え、Ozone を拡張する必要性が高まる中で、当社は優れたパフォーマンス、拡張性、そしてオペレーショナルエクセレンスを達成するために、革新的な取り組みを継続して可能性を広げています。このような改善は、わずか数ノードの環境から数千ノードの環境まで、あらゆる規模のお客様にとって有益なものとなるでしょう。Apache Ozone は、その優れたパフォーマンス特性と継続的な改善により、最新のデータアーキテクチャの基盤となっています。お客様はこれを活用することで、ハイブリッドクラウドネイティブアーキテクチャをシームレスに構築し、データアプリケーションを効率的に展開できます。Apache Ozone の利用を開始するには、Apache のダウンロードサイトか Cloudera Data Platform のトライアル版のサイトからダウンロードを行ってください。
This may have been caused by one of the following: