ディスク障害時のRAID再構築時間を劇的に短縮する技術「dRAID」とは?

ディスク障害時のRAID再構築時間を劇的に短縮する技術「dRAID」とは?

  • GIGAZINE
  • 更新日:2021/02/23
No image

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では、パリティの書き込みが単一のディスクのみに行われる構造であったため、書き込み速度が制限される問題がありました。

No image

RAID 4が抱えていた問題を解決したのが、RAID 5やRAID 6です。これらのRAIDではパリティを各ディスクに分散させることで、書き込み速度のボトルネックを解消しました。

No image

しかし、ホットスペアについては変わらずひとつのディスクで管理されていたため、あるディスクが故障した際、復旧時のデータ書き込みがホットスペア用のディスクに集中してしまう問題がありました。FreeBSDの企業向けサービスを提供するKlaraによると、ひとつのディスクを待機状態にしておくことは非効率である上に、大規模なRAID構成では故障時の再同期に数週間を要する場合すらあるとのこと。

No image

こうしたRAID 5やRAID 6の問題点を受けて登場したdRAIDは、図のようにパリティのみならずホットスペアも各ディスクに分散させる技術です。

No image

ホットスペアを各ディスクに分散させることで、故障時のRAID再構築処理も各ディスクに分散され、再構築処理を高速化させることができます。

No image

データの整合性確認を行わないRAIDの再構築時間を従来のRAIDとdRAIDで比較したグラフが以下。藍色で示される従来のRAIDよりも、dRAIDの方がパリティ数によらず短時間で再構築できることが確認できます。

No image

以下の図はOpenZFSによるdRAID実装のイメージです。OpenZFSのdRAIDでは、複数のRAID-Zグループ内のデータとパリティ、およびホットスペアが各ディスクに分散保存されるとのこと。また、障害からの復旧処理については、データをホットスペア領域に書き込む「再構築」と、データの整合性を確認する「再同期」の2段階に分けることで、冗長性を迅速に回復することが可能になっているそうです。

No image

通常のRAID-Zでは可変ストライプ幅によるディスク容量の効率的な利用が可能でしたが、dRAIDではRAIDの再構築速度を重視し、ストライプ幅が固定であるとのこと。固定ストライプ幅に満たない部分はパディングされてしまうため、サイズが小さいデータを大量に書き込む場合は、利用できるデータ容量が減少してしまいます。OpenZFSは対策として、小さなデータを格納するための特別な仮想ディスクの追加を推奨しています。

dRAIDは記事作成時点で最新のOpenZFSには搭載されていませんが、開発バージョンをソースコードからコンパイルすることで利用可能であるとのこと。なお、正式版のOpenZFSでは2021年上半期中に利用可能になる予定です。

この記事をお届けした
グノシーの最新ニュース情報を、

でも最新ニュース情報をお届けしています。

外部リンク

  • このエントリーをはてなブックマークに追加