核心へ Linux 6.2では、BtrfsにおけるRAID5/6の改善が含まれます。

カーネルを有効にするには Linux 6.2では、RAID 5/6実装における「書き込みホール」問題に対処するため、Btrfsの改良案が提案されています。この問題は、書き込み中に書き込みエラーが発生した場合、どのRAIDデバイスのどのブロックが正しく書き込まれたか、どのブロックが正しく書き込まれなかったかを初期状態では判別できないことに起因します。このような状況でRAIDリカバリを試みると、RAIDブロックの状態が同期していないため、書き込まれていないブロックに対応するブロックが破損する可能性があります。この問題は、この問題を軽減するための特別な対策を実装していないRAID 1/5/6アレイで発生します。

btrfs の RAID1 などの RAID 実装では、この問題は両方のコピーのチェックサムを使用することで解決され、不一致がある場合はデータが XNUMX 番目のコピーから復元されます。 このアプローチは、一部のデバイスが完全な障害ではなく、誤ったデータを送信し始めた場合にも機能します。

ただし、RAID5/6 の場合、ファイル システムはパリティ ブロックのチェックサムを保存しません。通常の状況では、ブロックの有効性はすべてのチェックサムが測定されることによって検証され、パリティ ブロックを再構築できます。データから。 ただし、部分的な録音の場合、状況によってはこのアプローチが機能しない場合があります。 この場合、配列を復元するときに、不完全なレコードに該当するブロックが誤って復元される可能性があります。

btrfs の場合、この問題は、生成されるレコードがストライプよりも小さい場合に最も関係します。 この場合、ファイル システムは読み取り-変更-書き込み操作 (読み取り-変更-書き込み、RMW) を実行する必要があります。 これにより、書き込みが不完全なブロックが発生した場合、RMW 操作により、チェックサムに関係なく、検出できない破損が発生する可能性があります。 開発者は、RMW 操作がこの操作を実行する前にブロックのチェックサムをチェックし、データを復元する必要がある場合は記録後にチェックサムもチェックするように変更を加えました。 残念ながら、不完全なストライプ (RMW) を書き込む状況では、チェックサムを計算するための追加のオーバーヘッドが発生しますが、信頼性は大幅に向上します。 RAID6 の場合、そのようなロジックはまだ準備ができていませんが、RAID6 でのこのような障害の場合は、2 つのデバイスで同時に書き込みが失敗する必要がありますが、その可能性は低くなります。

さらに、開発者からの RAID5/6 の使用に関する推奨事項にも注目できます。その本質は、Btrfs ではメタデータとデータ ストレージ プロファイルが異なる可能性があるという事実に要約されます。 この場合、メタデータにはプロファイル RAID1 (ミラー) または RAID1C3 (3 コピー) を使用し、データには RAID5 または RAID6 を使用できます。 これにより、信頼性の高いメタデータ保護と「書き込みホール」の不在が保証される一方で、RAID5/6 の特徴であるスペースのより効率的な使用が保証されます。 これにより、メタデータの破損を回避し、データの破損を修正できます。

カーネル 6.2 の Btrfs の SSD では、「破棄」操作の非同期実行がデフォルトでアクティブ化されることにも注意してください (物理的に保存する必要がなくなった解放されたブロックにマークを付けます)。 このモードの利点は、キュー内の「破棄」操作が効果的にグループ化され、バックグラウンド プロセッサによってキューがさらに処理されるため、パフォーマンスが高いことです。そのため、同期の場合のように、通常の FS 操作が遅くなることがありません。ブロックが解放されると、SSD はより適切な決定を下せるようになります。 一方、追加のスキャンを必要とせず、操作を遅くすることなく、使用可能なすべてのブロックが FS でクリアされるため、fstrim などのユーティリティを使用する必要はなくなります。

出所: オープンネット.ru

DDoS 保護機能を備えた信頼性の高いサイト用ホスティング、VPS VDS サーバーを購入する 🔥 DDoS攻撃対策付きの信頼性の高いウェブサイトホスティング、VPS/VDSサーバーを購入しましょう | ProHoster