| 項目 |
確認/設定 |
| Partitonの表示@ |
| 現在のパーティションを調べます。(シリンダー境界で、パーティションが分割されている場合。) |
| # fdisk -l |
Disk /dev/sda: 80.0 GB, 80000000000 bytes
255 heads, 63 sectors/track, 9726 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/sda1 * 1 64 514048+ fd Linux raid 自動検出
/dev/sda2 65 191 1020127+ fd Linux raid 自動検出
/dev/sda3 192 9726 76589887+ fd Linux raid 自動検出
Disk /dev/sdb: 80.0 GB, 80000000000 bytes
255 heads, 63 sectors/track, 9726 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/sdb1 * 1 64 514048+ fd Linux raid 自動検出
/dev/sdb2 65 191 1020127+ fd Linux raid 自動検出
/dev/sdb3 192 9726 76589887+ fd Linux raid 自動検出
|
RAIDを構成するHDのIdは、fd になっている必要があります。
Idが、83(Linux)になっている場合は、mdadm --manage /dev/mdx -a /dev/sdyn 等で、RAIDを構成(hot add)しても、rebootで、RAIDが外れる現象がおきます。 |
|
| Partitonの表示A |
| 現在のパーティションを調べます。 |
| # fdisk -l |
ディスク /dev/sda: 160.0 GB, 160000000000 バイト
ヘッド 255, セクタ 63, シリンダ 19452
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
ディスク識別子: 0x00000080
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 1 128 1024000 fd Linux raid 自動検出
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2 128 383 2048000 fd Linux raid 自動検出
パーティション 2 は、シリンダ境界で終わっていません。
/dev/sda3 383 19452 153176158+ fd Linux raid 自動検出
ディスク /dev/sdb: 160.0 GB, 160000000000 バイト
ヘッド 255, セクタ 63, シリンダ 19452
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
ディスク識別子: 0x00000081
デバイス ブート 始点 終点 ブロック Id システム
/dev/sdb1 1 128 1024000 fd Linux raid 自動検出
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sdb2 128 383 2048000 fd Linux raid 自動検出
パーティション 2 は、シリンダ境界で終わっていません。
/dev/sdb3 383 19452 153176158+ fd Linux raid 自動検出
|
この様に、パーティションがシリンダー境界で終わっていない場合は、fdisk -lu
コマンドで
セクター表示をさせる。(セクター単位で、パーティション構成するため。) |
| # fdisk -lu |
ディスク /dev/sda: 160.0 GB, 160000000000 バイト
ヘッド 255, セクタ 63, シリンダ 19452, 合計 312500000 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
ディスク識別子: 0x00000080
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 63 2048062 1024000 fd Linux raid 自動検出
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2 2048063 6144062 2048000 fd Linux raid 自動検出
パーティション 2 は、シリンダ境界で終わっていません。
/dev/sda3 6144063 312496379 153176158+ fd Linux raid 自動検出
デバイス ブート 始点 終点 ブロック Id システム
/dev/sdb1 63 2120579 1060258+ 83 Linux
/dev/sdb2 2120580 6329609 2104515 83 Linux
/dev/sdb3 6329610 312496379 153083385 83 Linux
|
RAIDを構成するHDのIdは、fd になっている必要があります。
Idが、83(Linux)になっている場合は、mdadm --manage /dev/mdx -a /dev/sdyn 等で、RAIDを構成(hot add)しても、rebootで、RAIDが外れる現象がおきます。 |
|
| RAID構成の表示 |
| RAIDの状態を調べます。 |
| # cat /proc/mdstat |
Personalities : [raid1]
md1 : active raid1 sdb2[1] sda2[0]
1020032 blocks [2/2] [UU]
md2 : active raid1 sdb3[1] sda3[0]
76589760 blocks [2/2] [UU]
md0 : active raid1 sdb1[1] sda1[0]
513984 blocks [2/2] [UU]
unused devices: <none>
|
| 上の表示は、全てのRAID1が、正常に動作していることを示しています。 |
|
| mount状態の表示 |
| HDのマウント状態を調べます。(md0,2 の部分が、RAIDデバイス) |
| # mount |
/dev/md2 on / type ext3 (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/md0 on /boot type ext3 (rw)
none on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /var/named/chroot/proc type proc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
|
|
| ファイルシステムの割付け状態 |
| ファイルシステムの割り付け状態を表示させます。 |
| # cat /etc/fstab |
# This file is edited by fstab-sync - see 'man fstab-sync' for details
/dev/md2 / ext3 defaults 1 1
/dev/md0 /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
/dev/md1 swap swap defaults 0 0
/dev/hdc /media/cdrom auto pamconsole,exec,noauto,managed 0 0
|
| この情報により、SWAP領域を割当てているデバイス名(ここでは、md1)が解る。 |
|
| RAID1障害時のHD復元方法 |
cat /proc/mdstat コマンドで、壊れているHD名を確認します。 |
壊れているHDのドライブのパーティションを全て、RAIDから外します。
例.(sdb3が壊れている場合)
mdadm --manage /dev/md0 -f /dev/sdb1 (故障マークを付加 f:fault)
mdadm --manage /dev/md0 -r /dev/sdb1 (HDの論理的な取り外し r:remove))
mdadm --manage /dev/md1 -f /dev/sdb2
mdadm --manage /dev/md1 -r /dev/sdb2
mdadm --manage /dev/md2 -f /dev/sdb3
mdadm --manage /dev/md2 -r /dev/sdb3 |
HDを交換して、正常に動作しているHDと同じパーティションで、FDISK、フォーマットを行ないます。FDISK時に、Id=fdを指定します。
/sbin/fdisk /dev/sdb (パーティションを分割します。)
/sbin/mke2fs -j /dev/sdb1 (パーティション sdb1をフォーマット)
/sbin/mke2fs -j /dev/sdb2 (パーティション sdb2をフォーマット)
/sbin/mke2fs -j /dev/sdb3 (パーティション sdb3をフォーマット) |
| セクター単位のパーティション生成方法(u コマンドで、セクター単位の設定に変更) |
[root@hpcs-g proc]# fdisk /dev/sdb
コマンド (m でヘルプ): m
コマンドの動作
a ブート可能フラグをつける
b bsd ディスクラベルを編集する
c dos 互換フラグをつける
d 領域を削除する
l 既知の領域タイプをリスト表示する
m このメニューを表示する
n 新たに領域を作成する
o 新たに空の DOS 領域テーブルを作成する
p 領域テーブルを表示する
q 変更を保存せずに終了する
s 空の Sun ディスクラベルを作成する
t 領域のシステム ID を変更する
u 表示/項目ユニットを変更する
v 領域テーブルを照合する
w テーブルをディスクに書き込み、終了する
x 特別な機能 (エキスパート専用)
コマンド (m でヘルプ): u
セクタ数 の表示/項目ユニットを変更します
コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本領域 (1-4)
p
領域番号 (1-4): 1
最初 セクタ (63-312499999, 初期値 63):
初期値 63 を使います
Last セクタ, +セクタ数 or +size{K,M,G} (63-312499999, 初期値 312499999): 2048062
コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本領域 (1-4)
p
領域番号 (1-4): 2
最初 セクタ (2048063-312499999, 初期値 2048063):
初期値 2048063 を使います
Last セクタ, +セクタ数 or +size{K,M,G} (2048063-312499999, 初期値 312499999): 6144062
コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本領域 (1-4)
p
領域番号 (1-4): 3
最初 セクタ (6144063-312499999, 初期値 6144063):
初期値 6144063 を使います
Last セクタ, +セクタ数 or +size{K,M,G} (6144063-312499999, 初期値 312499999):
初期値 312499999 を使います
コマンド (m でヘルプ): t
領域番号 (1-4): 1
16進数コード (L コマンドでコードリスト表示): fd
領域のシステムタイプを 1 から fd (Linux raid 自動検出) に変更しました
コマンド (m でヘルプ): t
領域番号 (1-4): 2
16進数コード (L コマンドでコードリスト表示): fd
領域のシステムタイプを 2 から fd (Linux raid 自動検出) に変更しました
コマンド (m でヘルプ): t
領域番号 (1-4): 3
16進数コード (L コマンドでコードリスト表示): fd
領域のシステムタイプを 3 から fd (Linux raid 自動検出) に変更しました
コマンド (m でヘルプ): w
パーティションテーブルは変更されました!
ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。
|
セクター単位でパーティションを作成したので、シリンダー境界がだぶっていますが、これで、
/dev/sda側と同じパーティションになったので、RAIDの構築が可能となります。 |
# fdisk -l
ディスク /dev/sdb: 160.0 GB, 160000000000 バイト
ヘッド 255, セクタ 63, シリンダ 19452
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
ディスク識別子: 0x5f8413fb
デバイス ブート 始点 終点 ブロック Id システム
/dev/sdb1 1 128 1024000 fd Linux raid 自動検出
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sdb2 128 383 2048000 fd Linux raid 自動検出
パーティション 2 は、シリンダ境界で終わっていません。
/dev/sdb3 383 19453 153177968+ fd Linux raid 自動検出
|
|
RAIDに追加します。
mdadm --manage /dev/md0 --add /dev/sdb1
mdadm --manage /dev/md1 --add /dev/sdb2
mdadm --manage /dev/md2 --add /dev/sdb3 |
| RAID再構成中の表示例(下図の例では、md2デバイスが再構成中であることが解る。) |
# cat mdstat
Personalities : [raid1]
md2 : active raid1 sdb3[2] sda3[0]
153176064 blocks [2/1] [U_]
[>....................] recovery = 0.9% (1464768/153176064) finish=69.0min speed=36609K/sec
md1 : active raid1 sdb2[1] sda2[0]
2047936 blocks [2/2] [UU]
md0 : active raid1 sdb1[1] sda1[0]
1023936 blocks [2/2] [UU]
unused devices: <none>
|
|
| reboot しても、RAIDの構成が保存されていることを確認します。 |