ディスク障害時のRAID再構築時間を劇的に短縮する技術「dRAID」とは?
「RAID」はデータを冗長化する技術として広く利用されており、最も冗長性を確保できるRAID 6では、最大2つのディスク故障までデータを保護することが可能ですが、ディスク故障から即座に復旧するためのホットスペアについては、単体のディスクを用いるしかありませんでした。「dRAID」を用いると、そんなホットスペアも各ディスクに分散させることができます。
dRAID, Finally! | Klara Inc.
https://klarasystems.com/articles/openzfs-draid-finally/
dRAID — OpenZFS documentation
https://openzfs.github.io/openzfs-docs/Basic%20Concepts/dRAID%20Howto.html
RAIDの歴史はデータ分散による冗長化の歴史と捉えることもできます。図の緑色はデータを保護するパリティを、黄色はディスク故障時の予備領域にあたるホットスペアを表しています。記事作成時点ではほとんど利用されていないRAID 4では、パリティの書き込みが単一のディスクのみに行われる構造であったため、書き込み速度が制限される問題がありました。
RAID 4が抱えていた問題を解決したのが、RAID 5やRAID 6です。これらのRAIDではパリティを各ディスクに分散させることで、書き込み速度のボトルネックを解消しました。
しかし、ホットスペアについては変わらずひとつのディスクで管理されていたため、あるディスクが故障した際、復旧時のデータ書き込みがホットスペア用のディスクに集中してしまう問題がありました。FreeBSDの企業向けサービスを提供するKlaraによると、ひとつのディスクを待機状態にしておくことは非効率である上に、大規模なRAID構成では故障時の再同期に数週間を要する場合すらあるとのこと。
こうしたRAID 5やRAID 6の問題点を受けて登場したdRAIDは、図のようにパリティのみならずホットスペアも各ディスクに分散させる技術です。
ホットスペアを各ディスクに分散させることで、故障時のRAID再構築処理も各ディスクに分散され、再構築処理を高速化させることができます。
データの整合性確認を行わないRAIDの再構築時間を従来のRAIDとdRAIDで比較したグラフが以下。藍色で示される従来のRAIDよりも、dRAIDの方がパリティ数によらず短時間で再構築できることが確認できます。
以下の図はOpenZFSによるdRAID実装のイメージです。OpenZFSのdRAIDでは、複数のRAID-Zグループ内のデータとパリティ、およびホットスペアが各ディスクに分散保存されるとのこと。また、障害からの復旧処理については、データをホットスペア領域に書き込む「再構築」と、データの整合性を確認する「再同期」の2段階に分けることで、冗長性を迅速に回復することが可能になっているそうです。
通常のRAID-Zでは可変ストライプ幅によるディスク容量の効率的な利用が可能でしたが、dRAIDではRAIDの再構築速度を重視し、ストライプ幅が固定であるとのこと。固定ストライプ幅に満たない部分はパディングされてしまうため、サイズが小さいデータを大量に書き込む場合は、利用できるデータ容量が減少してしまいます。OpenZFSは対策として、小さなデータを格納するための特別な仮想ディスクの追加を推奨しています。
dRAIDは記事作成時点で最新のOpenZFSには搭載されていませんが、開発バージョンをソースコードからコンパイルすることで利用可能であるとのこと。なお、正式版のOpenZFSでは2021年上半期中に利用可能になる予定です。
・関連記事
ZFS on Linuxから新生した「OpenZFS 2.0」リリース、pL2ARCやZstandard圧縮などを搭載 - GIGAZINE
新しいHDDを使用する時に執り行うべき「儀式」とは? - GIGAZINE
ヘリウム充填HDDの中身が気になったので実際にバラバラ分解してみたレポート - GIGAZINE
WDのNAS向けHDD「WD Red」の記録方式が「RAIDに不向き」な仕様にこっそり変更されていたことが判明 - GIGAZINE
HDDが大容量化しても「RAIDを恐れなくてもいい」理由とは? - GIGAZINE
・関連コンテンツ
in ソフトウェア, Posted by darkhorse_log
You can read the machine translated English article What is 'dRAID', a technology that drama….