treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

RAID1が効果的でない構成について考えてみた

この間、<SSDが不調になって調べたことと対処作業 - treedown’s Report>にて、RAID1のHDDケース内蔵SSDの問題に遭遇して、ちょっと考えるところがありました。

同時故障はRAIDで保護できない

最低限の台数で構成したRAID1やRAID5は1台故障まで耐えることができるのですが、2台故障することでデータの復旧が出来なくなってしまいます。(※RAID1は二台構成、RAID5は三台構成の場合)


※ご注意:今回対象となるのは上図のようなコンシューマ向けの製品によるRAID構成で、企業で利用されるビジネス・エンタープライズ向けの製品と考え方がまったく異なります。

そのために、ホットスワップで予備ディスクを用意したり、故障時の迅速な交換などを運用で定めておく必要があるのですが、今回遭遇した<SSDが不調になって調べたことと対処作業 - treedown’s Report>はちょっと考えさせられる出来事になりました。

RAID1をSSD×2台

今回の対象となったのはSSDを2台でRAID1を構成していた外付けHDDケース。
Hyper-VゲストOSを保管するボリュームとして使っていました。複数のゲストOSが保管されていた領域なので読み書きの頻度も多く、故障というよりは寿命を迎えてしまったような動きを見せていました。(※データの読み出しは可能だけどデータの書き込みはできない状態、ただし読み出しに非常に時間が掛かる。)

SSDが寿命を迎えたときにはこの「読み出しできるが書き込みできない」という状態になることはSSDが寿命を迎えたときの挙動としてはよく言われている動きです。

SSDという特性を考えると…

SSDの寿命は同じ書き込み処理なら似通う、となると2台同時に寿命を迎えるという現象は想定しておいて良さそう。
<SSDが不調になって調べたことと対処作業 - treedown’s Report>で実感した通り、RAID1構成で2台のSSDによる冗長化による保護を期待していたのですが、結局書き込み量で寿命を迎えると、RAID1は2台に同じデータを同タイミングで書き込むので2台同時に寿命を迎えることになってしまいます。

おや?

速さと安全性を両立させる狙いで、SSDのRAID1という構成を選択していたのですが、どうやらSSDの寿命はこの使い方では書き込み量が同じになるから二台同時に寿命を迎える、ということになり、RAID1で安全性を高めるという狙いがあまり効果的ではないような感じがしてきました。
もちろん、不良セクタの発生や代替セクタを使い切って1台だけ故障してしまう、という状況もないわけではないのですが、寿命まで使い切る前提で考えると、SSDはHDDより二台同時に寿命を迎えるケースが多いのではないかと思いました。

検討:他のRAIDならいいのか?

他のRAIDでも考えて見ました。(ここではコンシューマ向けの製品でよく採用されているRAIDのみ考えています。ここで考えていることはエンタープライズ向けの機器や構成ではまったく異なるので参考外です。)

RAID5だと最低3台でパリティ付きストライプセットを構成することになるので、データとパリティの両方が3台のSSDに分散して書き込まれることになります。

※パリティとはデータを復元するために必要になる情報のことです。パリティデータは日本語で「誤り訂正補正」といい、1台の故障でデータが復旧できるのはこのパリティデータが他の無事な2台を保持していて、故障した1台の分のデータをパリティデータを使って補完できるから、という動きをします。

パリティの部分が人間には見えない処理となっていて不明な点はあるものの、結局三台に分散して書き込まれることで、RAID1と同様に「3台同時に寿命を迎える」というケースはありそうな気がします。(パリティの処理の部分によって多少は変わってきそうですが)
これはRAID6でもダブルパリティ(パリティデータを二重に保持してRAID5より保護機能を高めている)ということから、RAID5と同じように考えて良さそうに思えます。

RAID10だと最低四台でRAID0のストライピング構成をRAID1でミラーリングすることになりますので、結局のところ、2台の分散読み書きをミラーリングすることから、やっぱり今回の焦点となる、「搭載したSSDがまとめて寿命を迎える」というケースはRAID1と同様にありそうに思えます。

ん?RAID構成ってあんまり?

HDDなら気にしなくて良いのに

ここまで考えて、HDDでこんなこと気にしたことなかったなぁと思いました。
HDDは寿命=故障となることがほとんどでSSDのように寿命=リードオンリーモード、みたいなことがないからここまで考えたことを考慮せずにRAIDで保護しておけば安心、ということかなぁと自分のなかで結論付けしておきました。
でもSSDって読み書きの量によって寿命がはっきりと出てくるので、HDDのときには考慮しなかった「継続的に大量のデータを読み書きすることによる寿命の訪れ」をRAID構成にする場合にも考慮しなきゃいけないかなぁという感じがします。

ただ、それでもHDDが寿命=故障したときには既に手遅れであることが多い一方で、SSDは寿命=リードオンリーモード⇒データの救出は(不便だが)できる、という点では以前と違った考え方で備えをしておくことが必要なんじゃないかと思いました。

やっぱり「別メディアのバックアップ」しかない

ここまで考えたことで、SSDの同時故障(というかSSDの同時寿命と言う方が正しい)は、単体で利用するよりRAID構成にするとより発生する可能性が高い、という結論に達しました。
RAIDで保護よりは、単体SSDで利用して別メディアへのバックアップでデータを保護した方がコストパフォーマンスがいい、という使い方もある、という一つの考え方がその結論です。じゃあ、どうやってバックアップを適切に取得するか、という点は今一つ考えがまとまっていませんが。

あと、世の中でRAID1よりRAID0を使っているコンシューマが多いのも、こういう点なのかなとよぎりました。二台を連結してで容量と速度を向上するRAID0は確かに魅力的です。ただそうなるとSSD1台の故障でデータ復旧ができなくなるため、よりいっそうバックアップが重要になってきます。

コンシューマ向けの製品のRAID機能はエンタープライズ製品に比べて色々と省略されている機能も多く、信頼性や安全性を犠牲にした分だけ価格を安価に利用できているという一面があるので、割り切って使う必要があるんだなぁと改めて実感しました。