RAIDアレイを他のマシンで引き継ぐとき [LinuxでSoftware RAID]
RAID10で組んだRAIDアレイを他のマシンで認識させるときには
mdadm --assemble
を使うんだと思うのですが、正直成功していないので、よくわからないです。。
# mdadm --assemble /dev/md0
すると、なぜか
mdadm: WARNING /dev/sdb1 and /dev/sdb appear to have very similar superblocks.
If they are really different, please --zero the superblock on one
If they are the same or overlap, please remove one from the
DEVICE list in mdadm.conf.
とおこられます。
一方、
# mdadm --assemble /dev/md0 /dev/sd[abcd]1
mdadm: /dev/md0 assembled from 3 drives - need all 4 to start it (use --run to insist).
# cat /proc/mdstat
Personalities :
md0 : inactive sda1[0](S) sdd1[3](S) sdc1[2](S)
5860540416 blocks
unused devices: <none>
/dev/sdb1が認識されておらず、、再起動。
# mdadm --detail /dev/md0
/dev/md0:
Version : 00.90
Creation Time : Thu May 20 22:01:02 2010
Raid Level : raid10
Array Size : 3907026944 (3726.03 GiB 4000.80 GB)
Used Dev Size : 1953513472 (1863.02 GiB 2000.40 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Fri May 21 04:20:59 2010
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2, far=1
Chunk Size : 64K
UUID : 80c59bb7:18dbcaed:86b54b3f:1d0c4af0 (local to host fs)
Events : 0.18
Number Major Minor RaidDevice State
0 8 0 0 active sync /dev/sda
1 8 16 1 active sync /dev/sdb
2 8 32 2 active sync /dev/sdc
3 8 48 3 active sync /dev/sdd
正しく/dev/md0が構成されました。
ちなみに、/dev/mdadm/mdadm.conf も自動的に構成されていました。
ただ、/dev/disk/by-uuid にはmd0のシンボリックリンクは作られていませんでした。
ということで、つくろうとしたのですが、
# tune2fs -U --random /dev/md0
tune2fs 1.41.11 (14-Mar-2010)
tune2fs: Bad magic number in super-block while trying to open /dev/md0
Couldn't find valid filesystem superblock.
エラーでつくられません。
このRAIDアレイはもともとext4でフォーマットされていたのですが、
# tune2fs -l /dev/md0
tune2fs 1.41.11 (14-Mar-2010)
tune2fs: Bad magic number in super-block while trying to open /dev/md0
Couldn't find valid filesystem superblock.
ん〜、なんかダメですね。
しかたないので、データは待避ずみなので、フォーマットします。
# mke2fs -t ext4 -m 0 /dev/md0
mke2fs 1.41.11 (14-Mar-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=16 blocks, Stripe width=32 blocks
244195328 inodes, 976756736 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
29809 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
# tune2fs -l /dev/md0
tune2fs 1.41.11 (14-Mar-2010)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 297ea1d6-fb47-4f6e-bbdd-21f363f7236a
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 244195328
Block count: 976756736
Reserved block count: 0
Free blocks: 961379586
Free inodes: 244195317
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 791
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
RAID stride: 16
RAID stripe width: 32
Flex block group size: 16
Filesystem created: Fri May 21 07:33:16 2010
Last mount time: n/a
Last write time: Fri May 21 07:39:01 2010
Mount count: 0
Maximum mount count: 24
Last checked: Fri May 21 07:33:16 2010
Check interval: 15552000 (6 months)
Next check after: Wed Nov 17 07:33:16 2010
Lifetime writes: 58 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: b99a46c2-ad67-4948-9d4a-81934ed64337
Journal backup: inode blocks
これで、
# ls -la /dev/disk/by-uuid/
total 0
drwxr-xr-x 2 root root 100 2010-05-21 07:39 .
drwxr-xr-x 5 root root 100 2010-05-21 06:45 ..
lrwxrwxrwx 1 root root 9 2010-05-21 07:39 297ea1d6-fb47-4f6e-bbdd-21f363f7236a -> ../../md0
lrwxrwxrwx 1 root root 10 2010-05-21 06:45 a1b63b85-b2c1-4073-b812-cb0933a5ab59 -> ../../sde2
lrwxrwxrwx 1 root root 10 2010-05-21 06:45 b4c81fb7-2c89-472b-a9b1-13a10b4ada0f -> ../../sde1
OKです。デバイスファイルもできました。
フォーマットしないといけないんじゃ、意味がないんですよねー。
まだまだ勉強が必要です
なにかいい方法があるはずです。