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に書いてもちゃんと起動時からマウントできてる。
というわけで完了。
まとめとしてはつくり直すというのが一番よいようだ。