mdadmでソフトRAIDを構築してみる(RAID 5編) のVineLinuxなお友達への補足編 [Linux(LVM/RAID/Storage)]
先日(つーか、もう結構たつけど)、「mdadmでソフトRAIDを構築してみる(RAID 5編)」という記事を書いた。ここでは主にCentOSなお友達向けに記載していたが、VineLinuxでこれと同じ操作をしてもRAIDのアレイが構築できないという問題に直面するかもしれない。
具体的には、2個目のアレイを作成しようとしてmdadm --create...コマンドを投入すると、/dev/md?が無いというエラーが出るというもの。
CentOSの場合は、mdadm --create /dev/mdナントカ を実行すると、新しい/dev/mdナントカを自動で作成してくれるのだが、VineLinuxの場合、mdadmコマンドのバージョンがやや古いせいか、新しく作成してくれない。(/dev/md0だけは最初からあるので、1個目のアレイは正常に作成できるはず)
上記の例では、「/dev/md1」というデバイスが無いというエラーになっている。CentOSではこのようなエラーは出ないのであるが…
で、このような場合は、/dev/mdナントカ というデバイスファイルを手動で作成する必要がある。手動で作成した後で、mdadmコマンドでアレイを構築すれば解決。
まず、/devディレクトリ配下を見ておこう。
確かに/dev/md0しか無く、/dev/md1は存在していない。
ここでmknodコマンドを用いて/dev/md1を作成する。書式は
mknod デバイス名 b デバイスメジャー番号 デバイスマイナー番号
ということになる。デバイスメジャー番号・デバイスマイナー番号に何を指定すればよいか。それは先ほどのlsコマンドの結果にヒントがある。ファイルのオーナー表示(「root disk」)に続いて「9, 0」という表示があるのが判る。この9が/dev/md0のデバイスメジャー番号、0が/dev/md0のデバイスマイナー番号ということになる。/dev/mdナントカを新規に作成する場合は、デバイスメジャー番号は同じに、デバイスマイナー番号は「/dev/mdナントカ」の『ナントカ』と同じ番号を指定することとなる。つまり、/dev/md1を作成する場合は、デバイスメジャー番号は9に、デバイスマイナー番号は1に指定すればよいということである。
ということは、mknodコマンドの指定方法としては…
mknod /dev/md1 b 9 1
と記述すれば良いことに。
実行して確認してみよう。
と、/dev/md1がそれっぽく作成されたことが判る。
それでは、mdadmコマンドを再度実行してみよう。
mdadmコマンドがエラーにならず、新しいアレイが構築されていることが判る。(ディスクを使い回ししているので途中確認を求められている表示があるがキニシナイ!)
あとはCentOSと同じように操作してもらえばよい。
具体的には、2個目のアレイを作成しようとしてmdadm --create...コマンドを投入すると、/dev/md?が無いというエラーが出るというもの。
CentOSの場合は、mdadm --create /dev/mdナントカ を実行すると、新しい/dev/mdナントカを自動で作成してくれるのだが、VineLinuxの場合、mdadmコマンドのバージョンがやや古いせいか、新しく作成してくれない。(/dev/md0だけは最初からあるので、1個目のアレイは正常に作成できるはず)
[root@k1 root]# mdadm --create /dev/md1 --level=5 --raid-devices=8 /dev/sd[ghijklmn] mdadm: error opening /dev/md1: No such file or directory
上記の例では、「/dev/md1」というデバイスが無いというエラーになっている。CentOSではこのようなエラーは出ないのであるが…
で、このような場合は、/dev/mdナントカ というデバイスファイルを手動で作成する必要がある。手動で作成した後で、mdadmコマンドでアレイを構築すれば解決。
まず、/devディレクトリ配下を見ておこう。
[root@k1 root]# ls -la /dev/md* brw-r----- 1 root disk 9, 0 3月 3日 13:45 /dev/md0
確かに/dev/md0しか無く、/dev/md1は存在していない。
ここでmknodコマンドを用いて/dev/md1を作成する。書式は
mknod デバイス名 b デバイスメジャー番号 デバイスマイナー番号
ということになる。デバイスメジャー番号・デバイスマイナー番号に何を指定すればよいか。それは先ほどのlsコマンドの結果にヒントがある。ファイルのオーナー表示(「root disk」)に続いて「9, 0」という表示があるのが判る。この9が/dev/md0のデバイスメジャー番号、0が/dev/md0のデバイスマイナー番号ということになる。/dev/mdナントカを新規に作成する場合は、デバイスメジャー番号は同じに、デバイスマイナー番号は「/dev/mdナントカ」の『ナントカ』と同じ番号を指定することとなる。つまり、/dev/md1を作成する場合は、デバイスメジャー番号は9に、デバイスマイナー番号は1に指定すればよいということである。
ということは、mknodコマンドの指定方法としては…
mknod /dev/md1 b 9 1
と記述すれば良いことに。
実行して確認してみよう。
[root@k1 root]# mknod /dev/md1 b 9 1 [root@k1 root]# ls -la /dev/md* brw-r----- 1 root disk 9, 0 3月 3日 13:45 /dev/md0 brw-r----- 1 root disk 9, 1 3月 4日 11:21 /dev/md1
と、/dev/md1がそれっぽく作成されたことが判る。
それでは、mdadmコマンドを再度実行してみよう。
[root@k1 root]# mdadm --create /dev/md1 --level=5 --raid-devices=8 /dev/sd[ghijklmn] mdadm: /dev/sdi appears to contain an ext2fs file system size=-2147483648K mtime=Wed Jul 23 15:17:05 2008 Continue creating array? y mdadm: array /dev/md1 started. [root@k1 root]# cat /proc/mdstat Personalities : [raid5] [raid4] md1 : active raid5 sdn[8] sdm[6] sdl[5] sdk[4] sdj[3] sdi[2] sdh[1] sdg[0] 6837337472 blocks level 5, 64k chunk, algorithm 2 [8/7] [UUUUUUU_] [>....................] recovery = 0.0% (17272/976762496) finish=3763.9min speed=4318K/sec md0 : active raid5 sdf1[3] sde1[2] sdd1[1] sdb1[0] 2930279808 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU] unused devices:
mdadmコマンドがエラーにならず、新しいアレイが構築されていることが判る。(ディスクを使い回ししているので途中確認を求められている表示があるがキニシナイ!)
あとはCentOSと同じように操作してもらえばよい。
コメント 0