UbuntuでRAID1を組む (追記)

古いPCでUbuntuを動かそうとしたときにRAIDを組んだ。
Debianでの入れ方と差がなかったが、メモをしておく。
RAID1にしたが、RAID0やRAID5も出来る。(インストールメニューにはあることは確認)

(下のほうに参考サイトがあるので、見ながらどうぞ)


まず、インストール時にソフトウェアRAIDを組めると聞いたので、それの準備をする。
Ubuntuのイメージの入手。RAIDをやるためにAlternate-CDを使う。

  1. Ubuntu本家サイト に行く
  2. 左のメニューからGet Ubuntuを選ぶ
  3. Download Nowを選ぶ
  4. DesktopかServerかを選ぶ画面で右下に「Even more options」と言うメニューがあるので、そこの一番上の「Text based “alternate installer” installation disk」を選ぶ
  5. 上のメニューか、下にスクロールを行い「Complete Download Mirror List」のAsiaから適当な日本のミラーサイトを選ぶ
  6. beta版じゃないやつの一番新しいの辺りをクリック。(記事を書いたときは8.10が最新版)
  7. 「Alternate install CD」の自分に合う方を選び、DLする。大体700MBほど。(筆者の環境ではPC (Intel x86) alternate install CD)
  8. 下のファイルのリストにMD5SUMSというリンクがあり、そこにMD5の値があるので、DLしたイメージと比較をしてみるといい。(ミラーサイトによっては、何故かテキストで見られないものもある。ミラーサイトを変えればMD5の値が見られる)

入手したイメージをCDやDVDなどに焼く。
あとはインストールしたいPCに入れ、CDからブート。


インストール手順は他のLinuxUbuntuの入れ方と同じ。
違う点はパーティションを切るところの辺り。


パーティションを切るところで、複数台のHDDが認識されていることを確認する。
今回はRAID1(ミラーリング)をするため、2台のHDDのパーティションを同じように切る。
ガイドに任せて / とスワップに分けてもいいし、 /boot を区切ったりしてもいい。


ミラーリングしたいパーティションを選び、ミラーの元と先の両方を「RAIDの物理ボリュームとする」を選択。
一番上にRAIDに関するメニューが出るから、そこを選択。
MD(マルチディスク)デバイスを作成から、RAIDの設定をする。パーティションごとに設定をすることになる。
使いたいRAIDの種類を選ぶ。(今回はRAID1)
アクティブデバイスの数はRAIDを組むHDDの数?。スペアの数は動作しないで待機しているHDDっぽいので、アクティブを2つにしてスペアは0にする。
ここでアクティブを1個にすると、あとからコマンドなどでいろいろ設定し、HDDのデータコピーなどをしなくてはいけない。2個にしておけば、インストールで既にデータのコピーはされている。
スワップは(個人的に)RAIDにする必要はないと思うので、スワップ以外のRAID設定が済んだら完了。


MDの作成が終わったら、sdaとかの上にRAID0とかが出来ていると思うので、マウントポイントの設定をする。
パーティションを / とスワップだけにした場合は、RAID0に / を設定すればいい。

(必要かは分からないけど、両方のHDDの /boot もしくは / の起動フラグをオンにする必要があるようなないような)


あとは普通にインストール作業を進めるだけ。
英語のWarningで「インストール後に再起動しないといかんよ」(多分)みたいなこと言われるが、そのまま進めればOK。再起動するし。
インストール後、 dfコマンドなどで見たときに /dev/md0 などがあればOK。



次にGRUBの設定をする。

grub> device (hd0) /dev/sdb
grub> root (hd0,0)
grub> install /boot/grub/stage1 (hd0) /boot/grub/stage2 p /boot/grub/menu.lst
grub> quit

GRUBはよく分からないから、解説サイトに従う。



とりあえず、ここまでの設定でRAIDが組めたようだ。
片方が破損しても起動するようになっているらしいが、BIOSで片方をとめてみると動かない。
が、BIOSのHDDからの起動で別の方のHDDを選べば普通に起動した。
生きている方のHDDをBIOSで選べばいいようだ。


HDDがクラッシュしたときに、HDDを追加したりRAIDアレイに参加させる方法は解説サイトに書いてある。
検証やらをしてみる余裕がなかったから試していないが、最低でも片方のクラッシュでデータの損失はないので、ひとまずは安心といったところか。


参考サイト
[ヅラド] Debian GNU/Linux etch で RAID 1 ミラーリングしてみる
http://www.linux.or.jp/JF/JFdocs/The-Software-RAID-HOWTO-4.html#ss4.4
有効なWikiNameではありません - tech.softagency.net



2009/04/16 追記

HDDを繋げる余裕があったため
追加したHDD2台をRAID1にする方法も試してみた。
(上記との違いは、インストール時にRAIDを設定するか、インストールしたUbuntuからの操作で(OSが入っていないHDDの)RAIDを設定するか)


追加したHDDをsdcとsddとする。
2つのHDDをフォーマットする。フォーマットの仕方は何でもいいが、筆者はGpartedを入れて使った。パーティションは切らなかったので、最大容量に設定してext3でフォーマット。(パーティションは同じサイズにする必要がある)


あとはコマンドで

$ mdadm --create /dev/md1 --level=raid1 --raid-devices=2 /dev/sdc1 /dev/sdd1
    • level=raid1 はRAID1をやる、と言う意味。
    • raid-devices=2 /dev/sdc1 /dev/sdd1 はアクティブデバイスの数を2個にして、それは /dev/sdc1と/dev/sdd1である、ということ。

設定が出来たら確認を行う。

$ mdadm --detail /dev/md0

インストール時はHDDのミラーは既にされていたが、あとから設定した場合はミラーを作るのに多少時間がかかるようだ。

$ cat /proc/mdstat

で現在の状況と残り時間などが確認できる。



参考サイト
mdadm(8) ver.1.5 man page [日本語]