Ceph の運用とメンテナンスで分散ストレージの「落とし穴」を知る

Ceph の運用とメンテナンスで分散ストレージの「落とし穴」を知る

過去 2 年間、私の主な仕事は Hadoop テクノロジー スタックでしたが、最近 Ceph に触れる機会がありました。私は、別の大規模分散ストレージ ソリューションを体験し、ほぼ完全に異なる 2 つのストレージ システムである HDFS と Ceph の長所と短所、およびそれぞれに適したシナリオを比較する機会を得られたことを非常に幸運に思います。

SRE の観点から見ると、分散ストレージ、特にオープンソースの分散ストレージは、主に営利企業の以下の問題を解決すると考えています。

  • ビジネスの成長によって生じる膨大なデータ ストレージのニーズに対応できる拡張性。
  • 商用ストレージよりも安価で、コストを大幅に削減します。
  • 安定性、制御性、メンテナンス性に優れています。

簡単に言えば、目標は使いやすく、安価で、安定していることです。しかし、現実はそれほど良くないようです...

この記事では、私が信じているこの 3 つの基本的な価値観から始めて、Ceph の運用と保守に関する私の経験を分析し、HDFS などの集中型分散ストレージ システムと比較しながら、横断的に説明します。

1. スケーラビリティ

Ceph は CRUSH アルゴリズムに基づいており、中央ノードがないため、無限にスケーラブルであると主張しています。実際、Ceph は無限に拡張できますが、Ceph の無限拡張のプロセスは完全に美しいわけではありません。

まず、Ceph の書き込みプロセスを整理しましょう。新しいオブジェクトが Ceph に書き込まれると、PG レイヤーで事前定義されたクォータ ハッシュ シャーディングを通過し、次にクラスター内のすべての物理マシンの OSD で構成されるハッシュを通過してから、物理ディスクに落ちる必要があります。

したがって、すべての Ceph オブジェクトは最初に固定数のバケット (PG) に事前ハッシュされ、次にクラスターの全体的な物理アーキテクチャ クラッシュマップに基づいて特定のマシン ディスクに配置されるように選択されます。

これは拡張にどのような影響を与えますか?

1. 拡張の粒度

拡張粒度の私の定義は、一度に拡張できるマシンの数です。

実際には、Ceph の拡張は「障害ドメイン」によって制限されており、一度に拡張できる「障害ドメイン」は 1 つだけです。

障害ドメインとは、レプリカ分離レベルです。つまり、同じレプリカのデータが異なるディスク/マシン/ラック/コンピューター ルームに配置されます。

障害ドメインの概念は、HDFS を含む多くのストレージ ソリューションに存在します。 Ceph が影響を受けるのはなぜですか? Ceph には集中型メタデータ ノードがないため、データ配置戦略が影響を受けます。

データ配置戦略、つまり、データ レプリカがどのマシンとハード ディスクに配置されるか。

HDFS などの集中型のものは、各ファイルとその下の各データ ブロックの保存場所を記録します。この場所は頻繁に変更されません。 1. 新しいファイルが作成された場合にのみ変更されます。 2. バランサーのバランスが再調整されます。または 3. ハード ドライブに障害が発生し、中央ノードが損傷したハードウェアにデータを再配置します。

Ceph は分散化されているため、クラッシュマップの変更に応じて、データを保持する PG の場所が変更されます。新しいマシンとハードディスクが到着すると、影響を受ける PG の一部に対して新しい場所を計算する必要があります。コンシステント・ハッシュに基づくテクノロジーも、容量を拡張する際に同じ問題に直面します。

したがって、Ceph の拡張には PG の調整が必要です。この調整により、Ceph は「障害ドメイン」の対象となります。

たとえば、レプリカが 3 つある PG があります。 Ceph クラスターの構成では、外部に通常のサービスを提供するために、PG は少なくとも 2 つの完全なレプリカを持つ必要があります。このデータ プールの障害ドメインがホストである場合、2 台のマシンが同時に拡張されると、一部の PG は 3 つのレプリカのうち 2 つを 2 台の新しいマシンにマップすることがあります。これら 2 つのコピーは新しいコピーであり、完全かつ最新のデータは含まれていません。残りのコピーは、古いマシンに少なくとも 2 つの完全なコピーが必要であるという要件を満たすことができないため、通常の読み取りおよび書き込みサービスを提供できません。

これにより、この PG 内のすべてのオブジェクトが外部サービスの提供を停止します。

もちろん、管理者は構成を下げて、データ プールの min_size を 1 に減らすことができます。ただし、この構成では、通常の状況でもディスク障害によりデータが失われる可能性があるため、通常はこのように設定されません。

では、容量を拡張する場合、一度に 1 台のマシンのみを拡張すれば安全でしょうか?

これにより、すべての PG の完全なコピーが古いマシン上に少なくとも 2 つ存在するようになります。しかし、1 台のマシンの容量を拡張したとしても、拡張中に古いマシンのハードディスクが故障し、PG の完全なコピーが再び 1 に減少するという極端な状況に直面することになります。

PG が機能しない場合でも、データの永続性は問題になりません。国内のATクラウドのサービス信頼性は特に高くなく、耐久性39や49を達成していません。これら 2 つの大規模クラウドのオブジェクト ストレージが Ceph を使用しているかどうかはわかりませんが、オブジェクト ストレージが CRUSH アルゴリズムやコンシステント ハッシュなどの分散技術に基づいている限り、一部のデータが一時的に利用できなくなる状況に直面するはずです。

最も極端なケース、つまり、容量を拡張するときに、「障害ドメイン」としてマシンを追加するときに、当面ディスクの損傷がないと仮定します。では、拡張の粒度を改善する方法はあるのでしょうか?

解決策は、Ceph クラスターの計画を開始するときに、ラックなどのより大きなレベルの「障害ドメイン」を設定することです。実際のラックの場合もあれば、存在しない場合でも論理ラックの場合もあります。このように、容量を拡張するときに、論理的な「フォールト トレランス ドメイン」を拡張することができ、1 台のマシンを拡張するという制限を打ち破り、少なくとも複数のマシンを含むラック全体を拡張することができます。

ヒント: ここでは、拡張の粒度が小さいことがなぜ悪いことなのかについては説明していません。実際、多くの企業では、データの平均的な 1 日あたりの増加量は、マシンのストレージ容量を上回る可能性があります。こうなると、拡張速度が書き込み速度に追いつけないという困った状況に陥ってしまいます。これは、最初に適切に設計されておらず、迅速な展開のために設定されたクラスターに、後の段階で大きな損害を与えることになります。

2. 拡張中のクラッシュマップの変更

Ceph はクラッシュマップに基づいて PG の物理的な場所を配置します。拡張が半分完了したときにハードドライブに障害が発生すると、Ceph のクラッシュマップが変更され、Ceph は PG を再ハッシュし、多くの PG の場所が再計算されます。運が悪ければ、機械の拡張が安定した状態に戻るまでに長い時間がかかる可能性があります。

この crushmap の変更によって発生する Ceph の再バランス調整は、容量を拡張するときだけでなく、ほぼいつでも大規模なストレージ クラスターにとって頭痛の種となります。新しいクラスターが構築されると、ハードドライブは比較的新しいため、故障率は高くありません。ただし、2 ~ 3 年間稼働している大規模なストレージ クラスターでは、ディスク障害は実際には頻繁に発生します。 1,000 台のデバイスのクラスターでは、1 日に 2 ~ 3 回のディスク障害が発生するのは正常です。クラッシュマップは頻繁に変更されるため、Ceph の不安定性に大きな影響を与えます。その結果、全体的な IO が減少する可能性があり (ディスク IO は繰り返しの再バランス処理によって占有されます)、一部のデータが一時的に利用できなくなる場合もあります。

したがって、一般的に、Ceph の拡張は少し不愉快です。 Ceph は無制限のスケーラビリティを提供しますが、拡張プロセスはスムーズではなく、完全に制御可能ではありません。 crushmap の設計は優れた分散化効果を実現しますが、クラスターが大きくなると不安定になる落とし穴も生じます。

メタデータが集中管理されている HDFS と異なり、容量拡張に関する制限はほとんどなく、自由に容量を拡張できます。古いデータの移行と再バランス調整は別のジョブで処理され、処理も非常に効率的です。満杯のノードと空のノードをペアにして、古いノードから十分なデータを移動し、新しいマシンを埋めます。集中化されたメタデータは、スケーリングと再バランス調整に関しては実際に利点になります。

3. 容量が一定レベルまで拡張された後、PGの数を調整する必要がある

上記の Ceph データ書き込みフローチャートに示されているように、Ceph オブジェクトの最小配置単位は PG であり、ハードディスク上に配置されます。理論的には、PG が大きいほど良いです。これは、データ シャーディングがよりランダムになり、疑似ランダム性によって引き起こされる単一ディスク容量の過度の偏差の問題をよりうまくカバーできるためです。しかし、実際には、PG の数は多ければ多いほど良いのです。 CPU、メモリ、ネットワークなどのハードウェアによって制限されます。そのため、PGの数を計画する際には、やみくもに増やすことはありません。一般コミュニティでも 200pg/osd が推奨されています。

現在、10 台のマシンがあり、それぞれにハード ディスクがあり、合計 10 台のディスク、1024 個の PG があり、すべての PG が単一のコピーであるとすると、各ディスクには 100 個の PG が保存されます。この設定は現時点では非常に健全ですが、クラスターを 1,000 台のマシンに拡張すると、各ハード ディスクには PG が 1 つしか存在しなくなり、疑似ランダム性によって生じる不均衡が増幅されます。したがって、管理者は PG の数を調整する必要があり、問題が発生します。

PG を調整するということは、基本的にクラスター全体が深刻な異常状態になることを意味します。調整された PG に関連するオブジェクトのほぼ 50% を物理的に再配置する必要があり、これによりサービス品質が著しく低下します。

PG の調整は頻繁に行われるイベントではありませんが、大規模なストレージ システムでは、開発が進むにつれて、この大きなテストを受けることが避けられません。

2. 商業用ストレージよりも安価

商用ストレージとの比較について話す場合、通常は EMC や IBM などのハードウェアおよびソフトウェア ストレージ ソリューション メーカー、または Aliyun や AWS などのクラウド ソリューションとの比較を指します。

独自のコンピューター ルームを構築すると、ハードウェアの単価は安くなるのはもちろんですが、次のような全体的なコストを考慮する必要があります。1. ハードウェア コスト。 2. 自立的な運営・保守人員コスト3. サービス品質は徐々に「普通」から「良好」へと収束します。

私は人的コストなどの形而上学的な問題については議論しません。この記事では、ハードウェア コストの観点から Ceph が興味深い点についてのみ説明します。論理的に言えば、独自のコンピューター ルームを構築すれば、ハードウェア コストは間違いなく安くなるはずですが、ここで Ceph の何が特別なのでしょうか?

問題は、クラスターの信頼性の高い利用です。

信頼性の高いクラスターの使用とは、クラスター全体の容量が一定のレベルに達すると、外部サービスを提供できなくなったり、高可用性サービスを維持できなくなったりすることを意味します。

たとえば、携帯電話のフラッシュメモリやコンピュータのハードドライブは、99% でも正常に動作しますか?もちろん、ローカルストレージだからです。クラウド ソリューションの場合、当然この問題は発生しません。

EMC の Isilon 分散ファイル システムなどの商用ストレージ ソリューションの場合、ストレージ容量は 98 ~ 99% に達しても外部サービスを提供できます。

HDFS の場合、95% 未満でもストレージは外部サービスを適切に提供できます。 HDFS 上で実行されている Hadoop ジョブは、データをローカルに書き込むことができないためクラッシュします。

Ceph に関しては、この領域ではパフォーマンスがよくありません。経験上、クラスター全体の使用率が 70% に達すると、不安定な状態になる可能性があります。

これはなぜでしょうか?問題は、分散化によってもたらされるトレードオフにあります。

Ceph は分散型の分散ソリューションであり、オブジェクトのメタデータは各物理マシンに分散されます。したがって、すべてのオブジェクトは各ディスクに「疑似ランダムに」割り当てられます。疑似ランダム性では、すべてのディスクの完全な均一な分散を保証することはできず、多くの大きなオブジェクトが同時に同じディスクに落ちる確率を減らすこともできません (PG のレイヤーを追加し、PG のレプリカを増やすと、ディスクのばらつきを減らすことができると理解しています)。そのため、平均よりも使用率が高いディスクが常に存在します。

クラスター全体の使用率が高くない場合は問題はありません。使用率が 70% に達すると、管理者の介入が必要になります。大きな変動があるため、市場は 95% の赤線に触れる可能性があります。管理者は容量が大きすぎるディスクの再重み付けを開始しますが、このディスクのバッチの再重み付けが完了する前に一部のディスクがいっぱいになると、管理者は Ceph が安定した状態に達する前に容量が大きすぎるディスクを再度再重み付けする必要が生じます。 これにより、クラッシュマップに別の変更が生じ、Ceph が安定した状態からさらに遠ざかることになります。容量拡張がタイムリーに行われなければ、状況はさらに悪化するでしょう。

さらに、以前のクラッシュマップの中間状態により、一部の PG が途中で移行されることになります。これらの「不完全な」PG はすぐには削除されないため、すでに不足しているディスク領域にさらに負担がかかります。

ディスクがいっぱいになると Ceph が使用できなくなる理由について疑問に思う学生もいるかもしれません。 Ceph は実際にはこのように設計されています。新しいオブジェクトがいっぱいのディスクではなく空のディスクに置かれるかどうかを Ceph が保証できないため、ディスクがいっぱいのときに Ceph はサービスを拒否することを選択します。

同僚や業界の同業者に相談したところ、基本的に誰もが、使用率が 50% に達したら Ceph クラスターの拡張の準備を始める必要があることがわかりました。多数のマシンのストレージ リソースをアイドル状態のままにしておく必要があるため、これは実際には費用対効果が高くありません。そして、将来的にクラスターの規模が大きくなるほど、空室の影響が大きくなり、無駄なお金や電気が増えることになります。

多くの従来の集中型分散ストレージ システムでは、マスター ノードは書き込み時に比較的アイドル状態のマシンを書き込み用に選択できるため、一部のディスクがいっぱいになってクラスター全体が書き込みできなくなるという問題は発生しません。このため、全体で 95% の書き込みを達成しながらも可用性を維持できます。

この効果の廃棄コストを実際に計算したわけではありませんが、少なくとも少し不完全に見えます。

たとえば、50pb のストレージには 300 台の物理マシンが必要であると見積もった場合、すぐには使用できず、プラグインする必要のある物理マシンをさらに 200 ~ 300 台事前に購入する必要がありました。

したがって、Ceph は必ずしも安価ではなく、分散型ストレージはそれほど優れているわけではありません。

しかし、集中化の危険性は議論の余地のない問題であるように思われます (単一ポイントの問題、中央ノードのスケーラビリティの問題など)。そのため、分散化には特効薬はなく、トレードオフしかありません。

もう 1 つの方法は、プール全体に応じて Ceph クラスターを拡張することです。プールがいっぱいの場合は、プールを拡張せずに新しいプールを作成します。新しいオブジェクトは新しいプールにのみ書き込むことができ、古いプール内のオブジェクトは削除および読み取りが可能です。一見すると、これは素晴らしいソリューションのように思えますが、よく考えてみると、フロントエンドで大きなハッシュを作成するために HDFS フェデレーションや MySQL のライブラリとテーブルをシャーディングするのと何ら変わらないように思えます。

これは「無限拡張」ではないため、フロント ルーティング レイヤーを記述する必要があります。

3. 安定性、制御性、操作のしやすさ

この安定した良好な運用と保守は、基本的にチームのハードパワーに依存します。オープンソース ソフトウェアに関する知識と経験は、本当に大きな違いを生みます。

同時に、オープンソース コミュニティのドキュメントの品質も影響を受けます。 Ceph のオープンソース コミュニティは非常に優れています。 Red Hat が Ceph を買収して支配した後、Red Hat バージョンの Ceph ドキュメントが再編成され、より論理的に読めるようになったと思います。

社内に独自の運用・保守文書を蓄積しておくことも重要です。初心者のドライバーは、事故につながるようなミスを多く犯す可能性があります。しかし、企業としては、一度同じ落とし穴に陥った場合、二度と同じ過ちを繰り返さないように努めるべきです。これにより、同社の技術蓄積管理、技術文書管理、中核人材の流出管理にいくつかの課題が生じています。

かつて、Ceph の運用と保守で難しい問題に遭遇したことがあります。つまり、Ceph クラスターが 80% に達すると、ディスクがいっぱいになることが多く、その場合は管理者が介入して、過度に高いディスクの再重み付けを下げる必要があります。このディスクの使用量が減少する前に、さらに多くのディスクがいっぱいになり、管理者が介入して再度重み付けを調整する必要があります。それ以来、Ceph は安定した状態になったことがなく、管理者は常にクラスターを監視する必要があります。これにより、膨大な O&M 投資が発生するため、O&M 担当者の士気に大きな損害を与えるため、このようなことは避けなければなりません。

では、調達プロセスを開始するために、早い段階で容量警告を与えるべきでしょうか?

しかし、そうすると、資源の浪費という問題に戻ってしまいます。

さらに、Ceph オブジェクトには last_access_time などのメタデータがないため、Ceph オブジェクトのコールド/ホット分類には二次開発と追加作業が必要になります。クラスターが大きくなると、ジャンクデータをどのようにクリーンアップするか、コールドデータをどのようにアーカイブするかについても、かなりの課題が生じます。

まとめ

1. Ceph には無限に拡張する機能がありますが、適切な初期計画が必要であり、拡張プロセスは完璧ではありません。集中化とは、容量拡張の上限が単一のマスターノードの物理的な限界であり、無制限の容量拡張の理論的根拠を生み出すことを意味します。しかし、実際に容量を拡大すると、サービス品質は大幅に制限されます。

2. Ceph はハードウェアを浪費するため、コスト計算時にはさらに考慮する必要があります。

3. Ceph の分散設計では、lastacesstime などの多くのメタデータが犠牲になるため、将来のデータ ガバナンスにプレッシャーがかかり、運用と保守、二次開発のためのより強力なチームが必要になります。運用・保守の経験を​​積み、運用・保守チームを構築することが、オープンソース分散ストレージを習得するための鍵となります。時間の経過とともに敵が強くなるにつれて、生産関係が生産性の要件に一致するように、対応する運用および保守チームもさらに改善する必要があります。

4. テクノロジー自体は良いものでも悪いものでもありません。さまざまな問題を解決するために、さまざまなテクノロジーが使用されます。しかし、さまざまなシナリオでは、テクノロジーは良いことにも悪いことにもなり得ます。なぜなら、シナリオでは、解決すべき問題の位置付けと優先順位があり、優先順位に応じて最適なテクノロジーを確実に選択できるからです。

<<:  クラウドバックアップは標準的なデータセンターバックアップとは異なります

>>:  アリババクラウド、大規模障害に対応:運用・保守エラーを大幅に改善

推薦する

FIT2CLOUD、Wangsu Technologyから戦略的投資を受け、ハイブリッドクラウド管理の価値提供に注力

中国のハイブリッドクラウド管理プラットフォームプロバイダーであるFIT2CLOUDは9月30日、Ji...

他人を真似することが何が悪いのでしょうか?あなたのオリジナル性はどれくらいですか?

Gold Digger がウェブサイトを立ち上げてから 1 年以上経ちました。この 1 年間、他のブ...

2022 年の DevOps: 成功と課題

2022 年になると、セキュリティと価値が DevOps の 2 つの重要な側面になります。しかし、...

高級電子商取引のZunxiang.comはSAIFが数千万ドルを投資した後に中止された

5月30日、SAIFパートナーズから数千万ドルの投資を受けていた高級品EC企業VIP.comが閉鎖さ...

SEOブログの現状:話し手は真剣だが聞き手は無関心

話し手は真剣だが、聞き手は無関心である(発音が分からない場合は、ピンインの URL を参照してくださ...

あなたに合ったWeiboでのマーケティング方法が常に8つあります

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスまず、Weiboについて...

meanservers-$7/KVM/1G メモリ/100G ハードディスク/2.5T トラフィック/G ポート/Windows

meanservers をおすすめします。これは、G ポート帯域幅とデンバー データ センターを備え...

小紅書はどうやって十一月を乗り切るのでしょうか?

毎年恒例のダブルイレブンプロモーションが終了に近づいています。 「数秒で数千億を突破」というデジタル...

Pacificrack: 50% 割引コード、すべての VPS を購入、Windows + Alipay をサポート

これは、パシフィックラックのVPS事業の最初のプロモーションです。11月のゴールデンウィーク、11....

#blackfriday# liquidweb - 50% オフ / フルマネージド VPS / cPanel / 59 秒の応答

ブラックフライデーがいよいよ近づいてきました。20年間の運営実績を誇る世界トップクラスのフルマネージ...

陳一州人:中国のインターネットは10年後に技術的な「ブラックホール」に陥る

9月4日、Renren Inc.の会長兼CEOである陳一洲氏は本日、「中国モバイルインターネット投資...

企業はマルチクラウド時代の課題に取り組む準備ができているでしょうか?

多くの場合、企業は複数のクラウド プロバイダー間で統一された標準を実施できず、識別、コスト削減、機密...

SEO競争は競合他社のあらゆる動きを明らかにする

以前、FMCG(Fast Moving Consumer Goods)業界で働いていたとき、競合他社...

マルチクラウドの世界における3つの厳しい現実

過去 5 年間で、ソフトウェア定義ストレージ、ハイパーコンバージド インフラストラクチャ (HCI)...

申請の手間を省くために、申請不要の香港サーバーをまとめてご紹介

香港サーバーは工業情報化部の管轄外なので登録の必要はありません。登録の心配も無用です!提出が不要な香...