RAID6の正確な定義とは
いよいよ今月こちらの本が出版されるのですが、その本を執筆している最中、「そういえばRAID6の正確な定義って何だろう?」という話になりました。
よく知られているRAID6の定義としては「パリティ情報を2本のHDDに書き込むので、HDDが2本死んでもデータが飛ばない」というものです。しかし曖昧なのは、どのようなパリティ情報をHDDに書きこむのか、というところです。この件、文献によって書いてあることに差があります。例えば「RAID5のパリティ情報をもう1つ他のHDDにも書き込んだものがRAID6だ」というものや、「RAID5のパリティ情報とは別のアルゴリズムで算出したパリティ情報を他のHDDに書き込んだものがRAID6だ」など。
RAID1-5に関しては明確な定義があります。Wikipediaによると「1988年にカリフォルニア大学バークリー校のデイビッド・パターソン, Garth A. Gibson, Randy H. Katzによる論文「A Case for Redundant Arrays of Inexpensive Disks (RAID)」に於いて提唱された。これはSIGMOD Conference 1988: pp 109-116 で発表された。」ということでした。しかしRAID6に関しては。いつどこで誰が定義したのかを明確に述べた文献が存在しませんでした。
それを踏まえて、日本語の文献は間違いが多い(1次情報を調べず2次情報を鵜呑みにすることが多い)ため、英語の文献を中心に調べてみました。いろいろ調べてみた中で、英語版のWikipediaに書いてあった内容が一番本当っぽい気がします。
Implementation
According to the Storage Networking Industry Association (SNIA), the definition of RAID 6 is: "Any form of RAID that can continue to execute read and write requests to all of a RAID array's virtual disks in the presence of any two concurrent disk failures. Several methods, including dual check data computations (parity and Reed-Solomon), orthogonal dual parity check data and diagonal parity, have been used to implement RAID Level 6
http://en.wikipedia.org/wiki/RAID6#RAID_6
超ざっくり訳すと
「SNIAというストレージベンダーの業界団体によると、RAID6の定義は、2本の仮想ディスクで読み書きに失敗しても処理を継続できること。RAID6の実装には二重チェックデータ計算、直角二重パリティチェック、及び斜めのパリティチェックを含む、いくつかの方法があります」
ということです。つまりはRAID6とは2本のHDDが死んでもRAIDが死ななければ何でもいいということになりそうです。すなわち、パリティ情報の書き込み方についてはベンダーによって実装方法が違うかもしれないという結論ですね。
The comments to this entry are closed.
Comments