未解決
Community Manager
•
5.3K メッセージ
0
12
2025年6月10日 23:28
Dynamic Poolsの謎 何故ホットスペア分の+1ドライブが必要なのか

「なんか納得いかないんだよな・・・」
という感覚がずっとあったのですが、ちゃんと考えてみると当然のことなのでした。
Dell UnityでDynamic Poolsが導入された際、専用のホットスペアドライブが不要となり、RAID相当で保護されているドライブ全ての領域を少しだけホットスペア用に確保しておいて、それらを足し合わせてホットスペア1ドライブ分の容量を確保するという設計に対して「なるほどな」と思いました。
しかしながら、納得がいかなかったのは、例えば4+1のRAID5相当の保護をするとした際に、何故4+1+1の合計6本のドライブが最低でも必要となるのか?ということです。
つまり「RAID5の4+1まではわかるが、最後の+1って何なんだよ」と思っていました。
「別に4+1を構成している5本のドライブの容量を少しずつホットスペア用に確保しておけばいいじゃないか」というのが当時の考えでした。
つまり以下のような関係性です。
しかしながら、この場合は4+1+1にしないといけないので、実際には以下のような構成にする必要があります。
ここまで読んで
「何言っちゃってんの?当然4+1+1が必要だろ」
という方はここから先は読まなくてOKです。あなたのご認識の通りなので。
自分の場合はきちんと障害時の状況をノートに書いてみてやっと納得したのですが、その時に書いたものを再現してみます。
まず、自分が「これでいいんじゃないか?」と思っていた4+1で障害が起きたとします。
障害が起きたドライブの情報を、前もって確保しておいたホットスペア領域に逃がします。
データ自体は全て保管されています(ホットスペア領域に書き込まれる情報はRAID5保護によるパリティ計算により復元されています)。
「全然大丈夫じゃないか。これで全てのデータが復元できたので、まだRAID5の保護が出来ている=もう1本ドライブがダウンしてもOKだ!」
と思った方は、私と同じ間違いをしています。
障害発生時に全てのデータがホットスペア領域に復元できたのは、同じ色の情報が4つ残っていたからです。RAID5による4+1の保護なので、5つの情報のうち、4つが残っていれば復元が可能なのです。
その点に注目して、障害発生後の状況から、更にどこかの1本のドライブがダウンした場合を考えてみてください。
例えば一番左端のドライブが落ちたとします。
オレンジの情報は4つ残っているのでまだ復元可能。黄色も緑もOK。しかしながら水色の情報が3つしか残っていないことに気が付くと思います。つまり水色の情報はダブルフォルトで復元不可能となってしまっているのです。
つまり、RAID5で保護できるだけの「情報」は持っていたのですが、1つのドライブに重複してはいけない情報が記録されていたために、実際のところRAID5としての保護は出来ていなかったということがわかります。
(ちなみに一番左以外のどのドライブが落ちてもやはりデータロストをすることがわかると思います)
これが4+1の後に更に+1が必要となる理由です。この最後の+1があることにより、ドライブに障害が発生した際に
復元情報を重複させずに保存することが可能となります。
これにより、この状態からもう1本ドライブが落ちても、どの色の情報も4つ残っているのでデータ復元が可能(データロストにならない)ことがわかると思います。