なぜ劣化したNASアレイは再構築が始まる前から速度が低下するのですか?

エヴァ・ウォンテクニカルライター であり ZimaSpaceの常駐ティンカーでもあります。 生涯のオタクであり、 ホームラボとオープンソースソフトウェアに情熱を持っています。彼女は複雑な技術的概念をわかりやすく、 実践的なガイドに翻訳することを専門としています。エヴァはセルフホスティングは楽しくあるべきで、怖がるものではないと信じています。彼女のチュートリアルを通じて、コミュニティが ハードウェアのセットアップを解明する手助けをしています。初めてのNAS構築からDockerコンテナの習得まで。

劣化したNASアレイは再構築が始まる前に遅くなることがあります。なぜなら故障により通常の読み書きの完了方法がすでに変わっているからです。アレイは並列ミラーソースを失い、必要に応じて欠損したパリティデータを再構築し、不安定なドライブを再試行し、生存しているメンバーにより多くの作業をルーティングすることがあります。

再構築は欠損したメンバーを復元する後続の作業です。劣化動作はアレイが1つのメンバーを信頼しなくなった時点で始まるため、交換用ベイが空で再構築の進行バーが動いていなくてもアプリケーションの遅延が増加する可能性があります。

RAIDメンバーが欠損した瞬間に何が変わるのか?

ほとんどの冗長アレイは劣化モードで動作を続けますが、そのデータパスはすべてのメンバーが利用可能だった健康なパスではなくなります。

アレイコントローラーまたはソフトウェア層はメンバーを故障、利用不可、または信頼できないものとして記録します。その時点以降、各リクエストは欠損したソースを避け、より少ないデバイスで整合性を保つ必要があります。

正確なペナルティはRAIDレベルと要求されたブロックによって異なります。生存しているデータを対象とした読み取りは比較的直接的なままですが、故障したメンバーを必要とする読み取りは再構築や別のレプリカが必要です。

なぜパリティ読み取りは再構築前により多くの作業が必要なのか?

故障したメンバーに属していたデータのリクエストは劣化読み取りになります。その過程で、劣化読み取りは生存しているデータとパリティの断片からデータを回復するためにCPUを使用します

要求されたブロックを1つだけ読む代わりに、アレイは複数の生存ドライブからブロックを取得し、XORや消去符号の計算を行い、再構築された結果をクライアントに返す必要があります。これにより、デバイスのファンアウトとリクエストごとの処理が増加します。

この再構築はフォアグラウンドで行われるため、交換用ドライブが追加される前に、ユーザーはファイルのオープン、データベースの読み取り、メディアのシーク、アプリケーションの起動が遅くなるのを感じることがあります。

なぜミラーは読み取りの並列性を失うのか?

正常なミラーは同等のコピー間で読み取りを分散できます。1台のメンバーが故障した後は、残ったミラーメンバーが単独で読み取りを担当し、故障前にあった読み取りの並列性とキューの分散が失われます。

連続スループットはミラーペアの合計性能ではなく、1台のディスクの能力に近づくことがあります。ランダムリクエストも、どちらのレプリカが空いているかに関係なく、1台のデバイスのキューに蓄積されます。

このペナルティはパリティ計算を必要としません。利用可能なコピーを失い、ワークロードが生き残ったメンバーに集中することから生じます。

なぜ半故障のドライブは正常な故障より遅くなるのか?

見えているがセクターに問題を抱えるドライブは、コマンドの再試行に長時間を費やすことがあります。LinuxのソフトウェアRAIDでは、長いドライブタイムアウトがアレイを停止させることがあります。ストレージ層が諦めて別の場所でブロックを再構築するまで続きます。

これらの一時停止は、正常に故障してアクティブパスから除外されたドライブよりも悪化することがあります。リクエストは不確かなメンバーを待ち、キューがその後ろに積み重なり、平均スループットがまだ許容範囲に見えてもアプリケーションは長時間の遅延を経験します。

コントローラーやNASプラットフォームは、タイムアウト、エラー回復、メンバー削除のポリシーが異なります。そのため、同じRAIDレベルの2つのアレイでも、同じ限界ディスクに対して非常に異なる反応を示すことがあります。

通常のNASワークロードは劣化したI/Oとどのように競合するのか?

生き残ったドライブは、SMB、NFS、コンテナ、メディアインデックス作成、バックアップ、アプリケーションデータベースのサービスを継続しながら、欠損データの追加読み取りも供給しなければなりません。劣化モードは残りのドライブに負荷をかけます

かつては1台か2台のデバイスに関わっていたリクエストが、今ではパリティグループ全体に及ぶことがあります。これにより帯域幅が消費され、キューの深さが増し、再構築されたデータやメタデータを含む有用なキャッシュエントリが追い出されることがあります。

遅延はHDDアレイ、多数のユーザーが利用するシステム、および多くの小さな依存I/O操作を伴うワークロードでより顕著になります。単一の大きな連続コピーは、アプリケーションのデータベースが即座に露呈するレイテンシを隠すことがあります。

再構築がついに始まると何が変わるのか?

交換ドライブを追加すると第2のパフォーマンスフェーズが始まります。システムは冗長性を回復し、再構築トラフィックは通常のNASの読み書きを遅くすることがありますが、フォアグラウンドのアプリケーションは稼働し続けます。

再構築は生存しているデータを読み取り、欠損部分を計算し、交換ドライブに書き込みます。その広範なバックグラウンドストリームは、すでに発生していた劣化したフォアグラウンドの作業と競合します。

したがって、再構築の優先度はトレードオフです。より積極的な再構築は脆弱な時間を短縮しますが、即時の帯域幅を多く消費します。一方、非常に穏やかな再構築は応答性を維持しますが、劣化状態が長く続くことになります。

アレイの状態 追加の作業 ユーザーへの影響の可能性
正常なミラー 読み取りはどちらのコピーも使用可能 並列処理とキュープレッシャーの低減
劣化したミラー 1つのメンバーがすべての読み取りを担当 スループット低下とレイテンシ増加
劣化したパリティアレイ 欠損ブロックはオンデマンドで再構築される より多くのデバイス読み取りとCPU作業
パリティアレイの再構築 フォアグラウンドの再構築と回復ストリーム 2つ目の、しばしばより大きなパフォーマンスペナルティ

よくある質問

再構築が実行されていなくても劣化したRAIDアレイは遅くなることがありますか?

はい。アレイはすでに欠損した読み取りを再構築しているか、残ったミラーメンバーの1つを使っているか、不安定なドライブのリトライを待っている可能性があります。

劣化したパリティアレイではすべての読み取りが遅くなりますか?

必ずしもそうとは限りません。生きているメンバーに直接存在するデータの読み取りは高速のままですが、故障したメンバーの貢献が必要なリクエストは再構築が必要です。

故障しつつあるドライブを取り外すと応答性が改善することがあるのはなぜですか?

限界のあるドライブは繰り返しの回復試行中にコマンドを保持することがあります。アレイがそれを待たなくなると、RAID層は冗長性から失敗した読み取りを予測可能に再構築することができます。

再構築の優先度は常に最大に設定すべきですか?

すべてのNASに共通する設定はありません。優先度を高くすると劣化時間は短くなりますが、サービスの応答性が低下する可能性があります。決定はワークロードの重要性、アレイの状態、バックアップの準備状況を反映すべきです。

最終的な結論

NASは再構築を待たずに劣化状態になります。正常な読み取り経路がすでに失われているため、パフォーマンスはすぐに低下します。ミラーはレプリカを失い、パリティアレイは欠損ブロックを再構築し、限界のあるドライブは長いリトライでキューを保持することがあります。再構築はその劣化した経路に二重の負荷をかけるため、進行バーが表示される前から遅延が始まり、開始後にさらに強まることが多いのです。

テック&AIハブ

もっと読む

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.