LinuxでソフトウェアRAIDを組んだり、パーティションをきったり。

自分用メモ


fdisk -l などして、RAIDの対象にしたいデバイス名を取得する


たとえば、mdadmを使って/dev/sda /dev/sdbでRAID1、/dev/sdc /dev/sddでRAID1を組む。

yum -y install mdadm
mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sda /dev/sdb
mdadm --create /dev/md1 --level=raid1 --raid-devices=2 /dev/sdc /dev/sdd


RAID1を組むと、同期処理が始まる。cat /proc/mdstat で見れる。

[root@localhost nodes]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb[1] sda[0]
      1953513424 blocks super 1.2 [2/2] [UU]
      [====>................]  resync = 21.5% (420382272/1953513424) finish=273.0min speed=93563K/sec

md1 : active raid1 sdd[1] sdc[0]
      1953513424 blocks super 1.2 [2/2] [UU]
      [=====>...............]  resync = 25.0% (490081024/1953513424) finish=242.6min speed=100516K/sec


ただrebootすると、/proc/mdstat が見ても、止まっている状態になってしまう。
この間はRAIDが機能していない。
RAIDを自動的に始めるようにするには、/etc/mdadm.confを作る。

echo "DEVICE partitions" > /etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf 
chmod 0600 /etc/mdadm.conf


RAID1な領域を2つ作ったが、1つはパーティションを半分にきっておく。

[root@localhost ~]# fdisk /dev/md0
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
含んでいません
新たに DOS ディスクラベルをディスク識別子 0xae4c3f9b で作成します。
あなたが書き込みを決定するまで、変更はメモリ内だけに残します。
その後はもちろん以前の内容は修復不可能になります。
警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
正常になります

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.

警告: DOS互換モードは廃止予定です。このモード (コマンド 'c') を止めることを
      強く推奨します。 and change display units to
         sectors (command 'u').

コマンド (m でヘルプ): m
コマンドの動作
   a   ブート可能フラグをつける
   b   bsd ディスクラベルを編集する
   c   dos 互換フラグをつける
   d   領域を削除する
   l   既知の領域タイプをリスト表示する
   m   このメニューを表示する
   n   新たに領域を作成する
   o   新たに空の DOS 領域テーブルを作成する
   p   領域テーブルを表示する
   q   変更を保存せずに終了する
   s   空の Sun ディスクラベルを作成する
   t   領域のシステム ID を変更する
   u   表示/項目ユニットを変更する
   v   領域テーブルを照合する
   w   テーブルをディスクに書き込み、終了する
   x   特別な機能 (エキスパート専用)

コマンド (m でヘルプ): p

ディスク /dev/md0: 2000.4 GB, 2000397746176 バイト
ヘッド 2, セクタ 4, シリンダ 488378356
Units = シリンダ数 of 8 * 512 = 4096 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
ディスク識別子: 0xae4c3f9b

デバイス ブート      始点        終点     ブロック   Id  システム

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本パーティション (1-4)
p
パーティション番号 (1-4): 1
最初 シリンダ (1-488378356, 初期値 2): 
Last シリンダ, +シリンダ数 or +size{K,M,G} (1-488378356, 初期値 488378356): 244189178

コマンド (m でヘルプ): p

ディスク /dev/md0: 2000.4 GB, 2000397746176 バイト
ヘッド 2, セクタ 4, シリンダ 488378356
Units = シリンダ数 of 8 * 512 = 4096 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
ディスク識別子: 0xae4c3f9b

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/md0p1               1   244189178   976756710   83  Linux
Partition 1 does not start on physical sector boundary.

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本パーティション (1-4)
p
パーティション番号 (1-4): 2
最初 シリンダ (244189179-488378356, 初期値 244189179): <Enter:初期値を使う>
初期値 244189179 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (244189179-488378356, 初期値 488378356): <Enter:初期値を使う>
初期値 488378356 を使います

コマンド (m でヘルプ): p

ディスク /dev/md0: 2000.4 GB, 2000397746176 バイト
ヘッド 2, セクタ 4, シリンダ 488378356
Units = シリンダ数 of 8 * 512 = 4096 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
ディスク識別子: 0xae4c3f9b

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/md0p1               1   244189178   976756710   83  Linux
Partition 1 does not start on physical sector boundary.
/dev/md0p2       244189179   488378356   976756712   83  Linux

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。

パーティションで切ったうちの/dev/md0p1はiSCSIで使うので、このままにします。
もう1個はNAS化に向けてext4で初期化。

mkfs.ext4 /dev/md0p2

作った領域を/nas1にマウントし、起動時にマウント済み状態にする

mkdir /nas1
chmod 0777 /nas1
mount /dev/md0p2 /nas1
echo "/dev/md0p2 /nas1 ext4 defaults 0 0" >> /etc/fstab


書き込みテスト

[root@localhost ~]# dd if=/dev/zero of=/nas1/test.tmp bs=4k count=262144
262144+0 records in
262144+0 records out
1073741824 bytes (1.1 GB) copied, 11.3669 s, 94.5 MB/s
[root@localhost ~]# ls -l /nas1/test.tmp
-rw-r--r--. 1 root root 1073741824 11月  5 02:32 2012 /nas1/test.tmp