RAID(ディスク冗長化)採用の目的は信頼性と性能

役に立つかも

RAIDを採用するとディスクの信頼性が上がります。そして、大抵、性能も上がります。

「RAIDは何か余計な計算をしているので性能が落ちる」と思っている人がたまにいますが間違いです。性能は上がります。

RAIDの由来

RAIDはRedundant Array of Inexpensive Disksの略です。日本語に直すと「安価なディスクを冗長に並べたもの」です。今となっては何の略かは忘れ去られてしまい、「レイド」という発音で覚えられています。

パタヘネで有名なパターソンの1988年の論文が初出です。

RAIDの定義

RAIDにはレベルがあって、0,1,2,3,4,5,6があります。0,1,5,6が使われます。

RAID0

ストライピングと呼ばれます。データを分割して複数台のディスクに書きます。

信頼性は高まることはありませせんが性能が高まります。

RAID1

ミラーリングと呼ばれます。同じデータを2台のディスクに書き込みます。

この場合、性能は高まりませんが有力な選択肢の一つです。

少量の貴重なデータを格納するときに使います。

例えば、300GBのデータなのにディスクが1TBしかないとき、RAID1で2台ですみます。RAID5で4D+1Pとかにすると5台用意しなければなりません。

RAID2

誤り訂正コード、いわゆるハミングコードを用います。ECCメモリで利用されますが、2022年の現在、使用されることはありません。

RAID3

ビット単位・専用パリティドライブです。2022年の現在、使用されることはありません。

数ビットごとにxorでパリティと呼ばれる値を算出して専用ドライブに書きます。

RAID4

ブロック単位・専用パリティドライブです。2022年の現在、使用されることはありません。

RAID3のパリティをビット単位ではなくブロック単位で格納します。

RAID5

ブロック単位・分散パリティドライブです。

RAID4のブロック単位パリティを順に異なるディスクに書きます。

専用ディスクがないので、どのディスクが壊れても1本まではデータを保護できます。

容量的にはパリティ分の1台分余分に必要です。

4D+1Pなどと表します。これは4つのディスクに1つのパリティ分のディスクで構成するRAIDと意味です。「よんでぃーいちぴー」と発音します。

RAID6

RAID6はxorではなくもう一つ異なるパリティを定義して、パリティを2個計算します。

ディスクは2個余計に必要です。

もうひとつのパリティの計算方法はメーカーや機種によって異なります。

「横にxorしていたものを斜めにxorする」

「xorではなくCRCのような式を用いる」

などです。

10D+2Pなどと表します。

よくある誤解

RAID5は性能劣化する

xorの計算をしているので確かにその分の時間はかかります。また、パリティ分の余計なデータを各必要があります。

しかし、4D+1Pは5つのディスクに書いているんです。5多重で書けることを思い出してください。

パリティ分のデータがあるので、原理的には4倍の速さでデータを書けます。

ソフトウェアRAIDや変なメーカのRAIDは性能劣化する可能性はありますが、普通のサーバやディスクアレイのRAIDは、性能が上がります。

信頼性目的よりも性能目的でRAIDを組むことさえあります。

「RAIDで性能劣化する」という発言は恥ずかしいのでやめてください。

要件はRAID5です

「要件はRAID5です」という発言をする人がいますが、、「ディスクに冗長性を持たせて信頼性を高める」のが要件であってRAID5は手段、という話でもあるんですが。

データが数十GBしかないのにRAID5を要求されたときは驚きました。

ディスクが1TBだから4D+1Pだと5TB必要ですよ、と言ったら「2D+1Pで」という本末転倒な答えが返ってきました。

だったらRAID1でいいんじゃないの?と直観的に思います。

まとめ

RAIDについて書いてみました。

「RAIDで性能劣化する」という発言は恥ずかしいのでやめてください。

>>> 【ITエンジニア 役にたつかもしれない知識】

コメント

スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク
タイトルとURLをコピーしました