
Cephストレージ消去コードFAQ
最近、顧客がCephストレージがデータを保護するためにエラージャーコードをどのように利用しているか、ハードウェア障害が発生した場合のデータの破損を避ける方法、データ復旧時間、K+Mの選び方、Cephに必要な最小限のサーバー数についていくつかの質問をしました。 従来のストレージシステムに精通した多くのITプロフェッショナルが、新世代のソフトウェア定義ストレージの機能を理解することに興味を持つと信じています。 この記事では、顧客がよく尋ねるいくつかの質問を共有します。
CephはCephディスクの故障から回復するのにどれくらいの時間がかかりますか?
ストレージデバイスの故障からデータを回復するのに必要な時間は、以下の条件に依存します:
- データの回復にかかる時間はハードディスクのサイズとは関係ありません。時間はディスクに保存されているデータの量に比例します。Cephは損傷したデータのみを復元する必要があります。損傷したデータが少ないほど、修復は速くなります。CephはRAIDコントローラーのようにディスクを再構築することはありません。
- Cephはクラスタ内の健康なディスクにデータを再修復します。クラスタ内のディスクとホストが多いほど、回復は速くなります。
- 回復速度はソフトウェアパラメータで調整できます。回復速度を高く設定するほど、回復は速くなります。回復を加速すると、より多くのCPUとネットワークハードウェアリソースを占有します。
- CPUのパフォーマンスとネットワーク帯域幅も回復速度に影響を与えます。
- レプリケートプールの回復速度は、消去コードプールよりも速くなります。
- 一般的に、管理者はサーバーリソースの使用を減らすために回復速度を遅くすることができます。
回復の参考時間:
- NVMe SSDは数時間かかる場合があります。
- HDDは約1日かかる可能性があります。
消去コードのKとMの数をどのように選択しますか?
消去コードの動作原理
Cephの消去コードパラメータKとMは、ハードウェア障害に対する使用可能な容量効率と冗長性に関係しています。 Kはデータチャンクの数で、Mはコーディングチャンクの数です。 クライアントがデータオブジェクトをCephストレージクラスターに書き込むと、データオブジェクトはK個の同サイズのデータチャンクに分割されます。 Cephはデータチャンクを使用してMチャンクのコーディングチャンクをエンコードし、ハードウェアが故障した際に失われたデータチャンクを計算するために使用されます。 データチャンクとコーディングチャンクは、K+Mで指定された障害ドメインに配布され、保存されます。 失われる可能性のあるデータチャンクの最大数はMの障害ドメインです。 利用可能な障害ドメインは、ストレージサーバーが物理インフラ内でどのように割り当てられているかに依存します。 小規模なCephクラスターでは、障害はディスクまたはサーバーホストに発生する可能性があります。 大規模クラスターの障害ドメインには、サーバーラック、サーバールーム、データセンターなどが含まれる可能性があります。 クライアントがデータを読みたいとき、データオブジェクトはデータチャンクから再構築されます。
ストレージパフォーマンス
Cephデータ複製アルゴリズムと比較して、消失符号化は通常、より良い使用可能スペース効率を持っています。 消去コードはデータI/Oを完了するためにより多くのディスクI/O操作を利用するため、IOPSを要求するワークロードにはあまり適していません。 KとMの合計が大きいほど、I/O操作がディスクのIOPSリソースを消費します。 大きなKと小さなMを使用すると、Cephクラスターネットワーク上で転送されるデータの総バイト数が少なくなります。 これにより、大サイズのデータオブジェクトのI/Oスループット性能が向上する可能性があります。
スペース効率
消去コードプールの使用可能なスペース効率は K/(K+M) に等しいです。例えば、K=4、M=2の消去符号プールの空間効率は4/6 = 66.7%です。これは、同じレベルのハードウェア冗長性でより高いIOPSパフォーマンスを提供するレプリカ3プールの2倍の効率です。
合理的なKは、使用可能なスペース効率のためにMよりも大きくなります。大きな (K-M) 消去コードは、より良いスペース効率を得ます。
サーバーホストの数
K+Mの数は、クラスターに必要なホストまたはより大きな障害ドメインの数を決定します。
- 標準の消去コードプールには、すべてのECチャンクを効果的に分配するために少なくともK + Mのサーバーホストが必要です。
- 高度な消去コード構成では、障害ドメインごとに複数のECチャンクを保存できます。この構成により、ECチャンクを分配するために必要なサーバーの数が減少します。
消去コードK & Mの影響の概要:
- Mは冗長な障害ドメインの数を決定します。
- K + Mが大きいと、クライアントの小さなオブジェクトのIOPSパフォーマンスが低下しますが、大きなオブジェクトのスループットが向上します。
- ストレージスペース効率 = K/(K+M)
- 必要な最小サーバー数。
消去コードプールを使用するために必要な最小のCeph OSDホスト数は何ですか?
Cephストレージを使用する際のベストプラクティスは、プールの障害ドメインを「ホスト」よりも大きく設定することです。ホストを障害ドメインとして使用するデータプールは、Cephに対して異なるホストに分散してチャンクを書き込むよう指示し、他の健全なホストに保存された他のチャンクのデータを回復できるようにします。ユーザーは、データを特にディスク障害から保護する「ディスクドライブ」に障害ドメインを設定することもできます。これは従来のディスクアレイに似ています。
エラージャコードプールを使用するために必要な最小ホスト数の推奨事項は以下の通りです。
最適な構成: サーバーの数 ≧ K + M +1
- この設定により、CephはすべてのECチャンクをK+Mホストに分散させることができます。
- ホストの1つが故障した場合、失われたチャンクを復元するために十分なホストがあります。
第2の最良構成: サーバーの数 = K + M
- この構成では、各ECチャンクをK+Mホストに分散させることができます。
- ホストが故障した場合、失われたECチャンクを復元するための他のホストがありません。システムをできるだけ早く正常な状態に戻すために、迅速に修復することが重要です。
予算制限付き構成: サーバーの数 ≧ (K + M) / M
この構成は、Cephに指定された数のホストに複数のエラージャーコーディングされたチャンクを分散させるよう指示します。ホストが失敗した場合、オブジェクトの最大Mチャンクが失われます。
この構成では
- 1つのホストで同時に任意の数のディスクが故障する可能性があります。
- または、クラスターは最大で1つのホストを失うことができます。
- または、M個のホストのうちの1つのディスクだけが同時に故障する可能性があります。
K+M = 4+2の例では、必要なホストの最小数は6/2 = 3です。1つのホストを失うことはできますが、失われたチャンクを再修復するためにクラスター内に十分な健康なホストがありません。
Cephクラスターの使用可能な容量を計算するには?
Cephの使用可能なスペースは、いくつかの重要な要因に依存します。
1.複数のサーバーによって構築されたCephクラスターの最大生容量は、各サーバーのディスクスペースの合計です。
クラスターにHDD、SSD、NVMeドライブなどのさまざまなタイプのストレージデバイスが含まれている場合は、各デバイスタイプごとに総生ディスクスペースを別々に計算する必要があります。Cephは各プールで使用される指定されたデバイスクラスを認識することができます。
2. 各Cephプールに適用されるデータ保護は、使用可能なスペースを決定します。
- レプリケーション保護:使用可能なスペース = 生の容量/レプリカサイズ
- 消去コードデータ保護:使用可能なスペース = 生の容量 x (K/(K+M))
3. Cephにはメタデータとシステム操作のためのオーバーヘッドがあります。使用されるオーバーヘッドスペースは、特定の構成と使用状況に応じて約10%から20%です。
すべてのディスクドライブスペースは、すべてのレプリケーションおよび消去コードプール間で共有されます。
- プールはクォータを設定することも設定しないこともできます。すべてのクォータはスリムプロビジョニングです。
- Cephの使用可能なスペースはスリムプロビジョニングであるため、必要なときにのみストレージスペースが割り当てられ、事前に必要なすべてのスペースが割り当てられるわけではありません。これにより、ストレージの利用効率が向上し、ストレージコストが削減されます。
- ハードウェア障害時のデータ回復スペースとして、運用中に1/nのスペースを確保することをお勧めします。ここでnはサーバーの数です。
- システムには、85%の近い満杯と95%の満杯の事前設定された使用警告があります。