RAIDとは?

RAIDとは?

目次

はじめに
冗長性とは
RAID0
RAID1
最後に

はじめに

最近、RAIDについて改めて調べる機会があったので記事を残します。

まず、RAIDとは何なのかですが、このあたりはWikiを見てもわかる通り、
本来使用するはずのHDDよりも余分にHDDを使うことで可用性などを向上させる技術です。

たまに、RAIDをバックアップだと思っている人がいますが異なります。
冗長性を上げることによって信頼性や可用性などを高める機能です。

冗長性とは

では、次に冗長性とは何かというと「本来必要なモノよりも余分にある状態」です。
 ※これもたまに、冗長性をバックアップみたいな言い方をしている方がいますが違います。

例えばPCを購入する際に120GBのHDDが必要ですが、少し余裕を持たせるために180GBのHDDを購入したとすると、この60GBは容量に冗長性があると言えます。

これと同じで本来必要なHDDは1個だけであるが1個以上のHDDをつけると冗長性が高くなったと言えるのです。
 ※RIADは基本的に「同じ規格(同じ容量、同じ回転数)」のHDDを使うので、
  RAIDの話をする際に出てくる冗長性は主にHDDの個数を指しています。

また、上記の項目で登場した信頼性とは「システムの連続稼働時間」を指し、可用性は「システムの稼働時間の割合」を指しています。
2つのシステムがあるときに、Aシステムは24時間連続稼働が可能で稼働したあとは24時間停止する必要があります。Bシステムは6時間連続稼働が可能で稼働したあとは2時間停止する必要がある場合は
信頼性はAシステムが高く、可用性はBシステムが高いという結果になります。
信頼性は連続稼働時間の長さを表しているため、単純に連続稼働時間が長い方が信頼性は高いと評価されます。
また、可用性は「稼働時間の割合」であるために「48時間中24時間」の稼働を行っているAシステムは可用性が50%となり、「48時間中36時間」の稼働を行っているBシステムの可用性は75%となるからです。

RAID0

RAIDにはいくつか種類がありますが、本項ではRAID0、RAID1、RAID5(RAID6)、RAID10を簡単に説明します。

まず、RAID0ですが「複数のHDDを一つのHDDとして使用」することができます。
これで何ができるのかというと「データを分散しての書き込み」が可能となります。
 ※処理が遅い時、ボトルネックになっているのは大体IOの書き込みかネットワークの帯域が細いことが原因
  雑にそう決めつけるくらいには、大体こいつらが原因

例えば、単純に12個のファイルをHDDに保存するとき1ファイルあたり1秒の時間がかかったとすると、100GBのHDD1台のPCでファイルを保存しようとすると12秒かかります。

HDD1台構成

これに対して、50GBのHDD2台でRAID0を組んだ場合は、2台のHDDに分散してファイルを書き込むので単純計算でHDD1台の半分の時間(6秒)で書き込みができます。

RAID0でHDD2台構成

このように、HDDが増えるほど書き込みの速度は上がっていくため保存処理などが早くなっていきます。

ただ、RAID0は一つ重大な注意点があります。

それはRIAD0を構成しているHDDが1台でも壊れると中のデータが全部壊れるということです。
上記ではわかりやすいように1ファイル1秒としてファイル単位で分散書き込みされるような書き方をしているため、1台のHDDが壊れてもファイルが半分だけ壊れるように見えますが、本当はこんな単純な処理はしていません。

byte単位で分散しているのかbit単位で分散しているのかは、わかりませんが少なくともファイル単位ではなく何かしらのデータ単位で分散しているでしょう。

そのため、「複数のHDDを一つのHDDとして使用」している以上、一つのHDDが壊れたらRAIDを構成しているHDDの一部が壊れたことと同義なので、RAID0を構築すると「書き込み速度は高まる」が、「信頼性も可用性も下がります」。

また、「はじめに」でRAIDはバックアップではないと書いたのはRAID0のように、全くバックアップとしての機能を有していないものがあるためです。

RAID1

次はRAID1です。

これはいわゆるミラーリングというもので、「全く同じ内容のデータ」を二本のHDDに保存します。
これによって、1台のHDDが壊れても片方のHDDに完全な状態のデータが残っているというものです。

メリットとしては、「すぐに使える」データが「全く同じ内容」で残っているためHDDが一つ壊れても「ダウンタイムが発生しない」か「ダウンタイムの時間が極小」です。そのため、信頼性も可用性も高いと言えます。

また、ものよっては「データの読み込み速度が上がる」場合があります。
これはRAID0の書き込みと同じような話なのですが、二つのHDDに同じデータが保存されているためIOの負荷を分散できるためです。

単純に書くとこんな感じ

次にデメリットとしては、 「全く同じ内容のデータ」を二本のHDDに保存 しているので、本来であれば100GBのHDDが一台必要だとすると100GBのHDDが二台必要になります。

また、「同じデータ」を二台のHDDに保存するので「書き込み速度」が下がります。

最後に

なんだか思ったよりも長くなってきたので、RAID5やRAID10は機会をみて続きを書きたいと思います。
では、また