mdadmのRAID1を再構築

まとめ

再構築したらちゃんとmd0でデバイス認識できた。ので、やり直すのがよいというのが今のところの結論。

経緯

進捗状況をみても本当に5000分だか10000分だかかかりそうだったので諦めて再構築する。
netatalkで公開してたりしたのでそれを止めてから、umountしてstop。

shrkw@frutiger:~$ sudo service netatalk stop
Stopping Netatalk Daemons: afpd cnid_metad papd timelord atalkd.
shrkw@frutiger:~$ sudo umount /mnt/raid1
shrkw@frutiger:~$ sudo mdadm --misc --stop /dev/md0
mdadm: stopped /dev/md0

確認。

shrkw@frutiger:~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
unused devices: <none>

OKなので、superblockをゼロ埋めしてお掃除。

shrkw@frutiger:~$ sudo mdadm --misc --zero-superblock /dev/sda1 /dev/sdb1

fdiskからやり直し。

shrkw@frutiger:~$ sudo fdisk /dev/sda

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 でヘルプ): n
コマンドアクション
   e   拡張
   p   基本パーティション (1-4)
p
パーティション番号 (1-4): 1
パーティション 1 は定義済みです。まずは削除を行なってください。

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

コマンド (m でヘルプ): d
選択した領域 1

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

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

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

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。
shrkw@frutiger:~$ sudo fdisk /dev/sdb

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 でヘルプ): d
選択した領域 1

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

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

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

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

createし直し。

shrkw@frutiger:~$ sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sd[ba]1
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? yes
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

一晩寝かせる。

shrkw@frutiger:~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb1[1] sda1[0]
      1953510841 blocks super 1.2 [2/2] [UU]
     
unused devices: <none>
shrkw@frutiger:~$ sudo mdadm --detail --scan
ARRAY /dev/md0 metadata=1.2 name=frutiger:0 UUID=370e200e:6b3fb0be:d3ad9565:729cd3a2
shrkw@frutiger:~$ sudo mdadm --examine --scan
ARRAY /dev/md/0 metadata=1.2 UUID=370e200e:6b3fb0be:d3ad9565:729cd3a2 name=frutiger:0
shrkw@frutiger:~$ sudo mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sat Jul 16 22:49:05 2011
     Raid Level : raid1
     Array Size : 1953510841 (1863.01 GiB 2000.40 GB)
  Used Dev Size : 1953510841 (1863.01 GiB 2000.40 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Sun Jul 17 08:09:30 2011
          State : active
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : frutiger:0  (local to host frutiger)
           UUID : 370e200e:6b3fb0be:d3ad9565:729cd3a2
         Events : 18

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

ちゃんと終わっているようだ。一応、update-initramfsしておく。

shrkw@frutiger:~$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-2.6.38-8-server

この時点でmdadm.confは以前と変えていない。
再起動。

shrkw@frutiger:~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
      1953510841 blocks super 1.2 [2/2] [UU]
     
unused devices: <none>
shrkw@frutiger:~$ sudo mdadm --detail --scan
ARRAY /dev/md0 metadata=1.2 name=frutiger:0 UUID=370e200e:6b3fb0be:d3ad9565:729cd3a2
shrkw@frutiger:~$ sudo mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sat Jul 16 22:49:05 2011
     Raid Level : raid1
     Array Size : 1953510841 (1863.01 GiB 2000.40 GB)
  Used Dev Size : 1953510841 (1863.01 GiB 2000.40 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Sun Jul 17 12:05:32 2011
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : frutiger:0  (local to host frutiger)
           UUID : 370e200e:6b3fb0be:d3ad9565:729cd3a2
         Events : 19

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

おお、起動時からちゃんとmd0でデバイス認識できているようだ。
fstabに書いてもちゃんと起動時からマウントできてる。
というわけで完了。
まとめとしてはつくり直すというのが一番よいようだ。