mdadm
「mdadm」はLinux上でソフトウェアRAIDの作成や管理を行うコマンドです。またRAID以外にも、複数のHDDを一つのHDDとして扱うような論理ボリュームを作成することができます。
コマンド名は、「Multiple Device Administration」で覚えるとよいでしょう。
RAIDとは
複数のHDDを1つのHDDとして扱う仕組みです。PCに複数のHDDが接続されていても、アプリから見ると1台のHDDに見えます。
扱い方にはいくつか種類があります。
信頼性を犠牲にしてパフォーマンスを向上させたり、逆にパフォーマンスを犠牲にして信頼性を向上させる、あるいはその中間など、目的にあった扱い方を選択することができます。
また、誰がRAIDの機能を提供するかにより、ソフトウェアRAIDとハードウェアRAIDに別れますが、ここではソフトウェアRAID(MDドライバー)について扱います。
アレイとは
アレイは、 「mdadm」で作成した物理ボリュームのセットのことです。RAIDアレイを作成すれば、RAIDボリュームとしてアプリから利用することができます。
「mdadm」はこのアレイに対して作成や操作を行います。
従ってRAIDレベルは、「アレイの種類」という位置づけになります。
上記にも記述した通り、「mdadm」はソフトウェアRAID以外の論理ボリュームも利用することができます。
それらを含めここでは「アレイの種類」と表現します。
論理ボリュームとは
ユーザーやアプリから見たボリュームのことです。「論理ディスク」と表現されることもあります。
例えば2台のHDDで「RAID 0」を作成すると、ユーザーやアプリからは1台のHDDとして利用することができます。
この時、ユーザーやアプリから見た1台のHDDを「論理ボリューム」もしくは「論理ディスク」 と表現します。
一方、「RAID 0」アレイを構成する2台のHDDは、「物理ボリューム」もしくは「物理ディスク」と表現します。
冗長性について
アレイの種類によっては、冗長性を確保し物理ボリュームの故障に備えることができます。冗長性とは
冗長性とは、物理ボリュームなどハードウェアが故障した時に、データを復旧する仕組みやその程度のことを指します。冗長性がないアレイでは、物理ボリュームが1台でも故障するとデータは利用できなくなります。
復旧もできません。
データを復旧するためのデータ
冗長性を確保するためには、物理ボリュームに保存するデータとは別に、データを復旧するためのデータを物理ボリュームに保存する必要があります。冗長性が高ければ高いほど、物理ボリュームの故障に対しデータを復旧できるケースが多くなります。
しかし、データを復旧するためのデータの容量が増えるため、その分利用できる論理ボリュームの容量は少なくなります。
また、データを復旧するためのデータは、保存するデータから生成されるため、アレイの種類によってはCPUに計算処理を行ってもらう必要があり、CPUの使用率が向上するケースもあります。
物理ボリュームの使用効率
物理ボリュームの使用効率とは、物理ボリュームの総容量に対してアプリが利用できる容量の割合のことです。言い換えれば、「論理ボリュームの容量 / 物理ボリュームの総容量」のことです。
RAID 0の例
例えば、200GBの物理ボリュームが2つあるとします。この2つの物理ボリュームで「RAID 0」を作成すると、アプリが利用できる容量は「200GB + 200GB」で400GBになります。
従って物理ボリュームの使用効率は、100%になります。
RAID 1の例
一方この2つの物理ボリュームで「RAID 1」を作成すると、アプリが利用できる容量は200GBになります。従って物理ボリュームの使用効率は、50%になります。
ちなみに「RAID 1」では200GBのHDD 10台でアレイを作成しても、アプリが利用できる容量は200GBのままです。
この場合、物理ボリュームの使用効率は、10%になります。
その代わり物理ボリュームの故障は9台まで対応できます。
このようにアレイの種類に応じて利用できる論理ボリュームの容量が変わります。
補足
「mdadm」はアレイを管理する情報(メタデータ)を各物理ボリュームに保存するため、実際に論理ボリュームで利用できる容量は少しだけ少なくなりますが、無視できる容量なので上記では省略しています。冗長性があるアレイでもデータのバックアップは重要
アレイの種類によっては冗長性を確保し、物理ボリュームが故障してもデータを復旧させることができます。しかし、パーティションを誤ってフォーマットしてしまった場合や、削除してはならないファイルを削除してUbuntuが起動しなくなった場合など、 ハードウェアの故障とは無関係な障害はアレイがサポートする範囲ではありません。
というわけで、そのような障害やミスに対しては、従来通りバックアップで対応する必要があります。
もちろん、「RAID 0」など冗長性がないアレイを利用する場合は、1台の物理ボリュームを利用している時よりも信頼性が落ちるため、バックアップする頻度を増やすなど注意が必要です。
MDドライバー
MDは「Multiple Device」の略で、MDドライバーは複数の物理ボリュームを1つの論理ボリュームとして扱うドライバーのセットです。このドライバー(以下カーネルモジュール)を通してアレイを利用します。
アレイの種類により、利用するカーネルモジュールが異なります。
例えば「RAID 0」に対応したカーネルモジュールのモジュール名は、「raid0」です。
「mdadm」をインストールすれば、MDドライバーが起動時に読み込まれるようになります。