Linux Tips

HDDを2台追加してRAID 1を構成するには

北浦訓行
2007/10/25

 「インストール時にRAIDを構成するには」では、Fedora 7をインストールする際にRAID 1を構成する手順を説明した。

 今度は、稼働中のシステムにHDDを2台追加して、データ用のディスクをRAID 1として構成する手順を紹介する。対象となるシステムでは、/dev/sdaにFedora 7がインストールされている。ここに、SATAのHDDを2台追加する。追加した2台は、/dev/sdbおよび/dev/sdcとして認識されている。

 まずは、fdiskコマンドで追加したHDDに領域を確保して、パーティションタイプを0xfd(RAID)に設定する。

# fdisk /dev/sdb

このディスクのシリンダ数は 30401 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
(例. DOS FDISK, OS/2 FDISK)

コマンド (m でヘルプ): n    ←パーティションの新規作成
コマンドアクション
e 拡張
p 基本領域 (1-4)
p
領域番号 (1-4): 1       ←基本領域を作成
最初 シリンダ (1-30401, default 1): ←[Enter]キーを押して初期設定を選択
Using default value 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-30401, default 30401):        ←[Enter]キーを押して初期設定を選択
Using default value 30401

コマンド (m でヘルプ): t    ←パーティションのタイプを変更
Selected partition 1
16進数コード (L コマンドでコードリスト表示): fd ←RAIDを指定
領域のシステムタイプを 1 から fd (Linux raid 自動検出) に変更しました

コマンド (m でヘルプ): w    ←変更を保存
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。

 以上で/dev/sdbの領域確保とタイプ変更は完了だ。続いて、/dev/sdcに対してもfdiskコマンドで同様の作業を行う。これによって、2台のHDDは以下のような構成になる。

# fdisk -l /dev/sdb      ←1台目の構成を表示

Disk /dev/sdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot    Start       End      Blocks   Id  System
/dev/sdb1            1      30401   244196001 fd Linux raid 自動検出
# fdisk -l /dev/sdc      ←2台目の構成を表示

Disk /dev/sdc: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot    Start       End      Blocks   Id  System
/dev/sdc1            1      30401   244196001 fd Linux raid 自動検出

 次に、mdadmコマンドでRAIDの構成を行う。/dev/sdb1と/dev/sdc1をRAID 1アレイとして/dev/md0に割り当てる。

# mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sdb1 /dev/sdc1
mdadm: array /dev/md0 started.

 また、以下のようにオプションを省略することも可能だ。

# mdadm -C /dev/md0 -l1 -n2 /dev/sdb1 /dev/sdc1
mdadm: array /dev/md0 started.

 次に、作成したRAIDアレイをmkfsコマンドでフォーマットする。

# mkfs -j /dev/md0       ←ext3で/dev/md0をフォーマット

 こうしてRAID 1を構築すると、その瞬間から自動的にディスクの同期が始まる。以下のコマンドを実行すると進ちょく状況が分かる。なお、同期作業中でもほかの操作を行うことは可能だ。

# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdc1[1] sdb1[0]
      244195904 blocks [2/2] [UU]
      [====>................] resync = 20.4% (49862400/244195904) finish=51.2min speed=63178K/sec

unused devices: <none>

 続いて、/etc/mdadm.confを作成して、以下のようにデバイスの定義を行う。

DEVICE /dev/sd[bc]1
ARRAY /dev/md0 devices=/dev/sdb1,/dev/sdc1

 このように、データ保存用のRAID 1アレイが構成できた。ここでは、/homeをRAIDアレイに移行する。まず、RAIDアレイを仮のマウントポイント(ここでは/mnt)にマウントして、現在の/homeをRAIDアレイにコピーする。

# mount /dev/md0 /mnt     ←RAIDアレイを/mntに仮マウント
# rsync -av /home/ /mnt/

 最後に、/etc/fstabに以下の設定を追加する。

/dev/md0            /home          ext3      defaults    0 0

 システムを再起動して、/dev/md0が/homeにマウントされていることを確認する。

$ mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
/dev/md0 on /home type ext3 (rw) ←RAIDアレイ
(省略)
$ df -h
Filesystem  サイズ  使用  残り 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
        224G  2.9G  210G   2% /
/dev/sda1    99M   19M   76M  20% /boot
tmpfs          950M    0  950M   0% /dev/shm
/dev/md0       230G  188M  218G   1% /home

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間