ここで落とし穴が。。。
その落とし穴とは!!
CentOSのkernelのバージョンが古過ぎて(2.6.18系統)RAID6にHDDが追加できない!
(RAID6の領域拡張は2.6.21系統かららしい)
というものです。
情報元: 「データ用HDDの準備@CentOSでホームサーバを作ろう」
これは致命的です。
かと言ってkernelの入れ替えが出来る程腕がある訳でもなく。。。
(前に一度やってみたんですが、OS自体起動しなくなるという最悪の事態になったので。)
途方に暮れる事2日。
ふと考えついたのが、
mdadmでのRAID情報はスーパーブロックに記録され、RAIDを構成しているHDD自体に残っている。
↓
kernelが新しいOSのLiveCDで起動し、RAID6の領域を拡張すればいいのでは?
という考えに至りました。
前回のLVM事件でデータは欠損したものの、バックアップは辛うじて存在しているので試してみようかな。!
という訳で、FedoraのLiveCDを落としてきます。
HPを覗いてみると、結構種類があるんですね。
まぁGNOMEで問題ないですし(というか、GNOMEしか使った事がないというのが正しい)、汎用性を考えi686(32bit)版で。
いつの間に32nitはi386からi686に変わったんでしょうかね?
(まぁ適したCPUの世代が異なるというだけなんで、あまり気にしなくてもいいんでしょうけど。)
LiveCDから起動して、Applications > System Tools > Terminal で作業してもいいのですが、SSHでメインマシンから入れるようにします。
System > Preferences > Network Connections からIPを固定。
System > Administration > Firewall でファイヤーウォール自体を殺すか、SSHを許可。
Applications > System Tools > Terminal で以下のコマンドを。
Fedoraから直でRAIDをいじってもいいのですが、キーボードの設定変更しないと調べ物が大変なので。
ここからはメインマシンからの操作
(別に直で操作しても可)
構成としてはHDD4発(sd[abcd]1)で構成されているRAID6に、HDD1発(sde1)を追加して領域を拡張したい。
CentOSの時にsde1は追加済みで、スペアとして認識されている。
だがしかし!!
やっぱり認識してくれていなかった。。。
OSによって/dev/sdXの認識の仕方が異なるらしく、アレイからHDDが外れているという事態に!
まぁ1発なので、問題はないのですが。
やはりRAID6の領域拡張は無理なのでしょう。
CentOS 6で出来る事を祈りつつ、早くリリースされる事を願っています。
因みに、CentOS 5.5でのmdadmのバージョンは
RAID5ならCentOS 5.5でも領域拡張出来るのかな?
RAID6からRAID5にオンラインダウングレード出来るのかな?
RAID5からRAID6へのオンラインアップデートは?
上記3つが出来るなら時間は掛かるがCentOS 5.5でもなんとかなるんだけど。
CentOSのkernelのバージョンが古過ぎて(2.6.18系統)RAID6にHDDが追加できない!
(RAID6の領域拡張は2.6.21系統かららしい)
というものです。
情報元: 「データ用HDDの準備@CentOSでホームサーバを作ろう」
これは致命的です。
かと言ってkernelの入れ替えが出来る程腕がある訳でもなく。。。
(前に一度やってみたんですが、OS自体起動しなくなるという最悪の事態になったので。)
途方に暮れる事2日。
ふと考えついたのが、
mdadmでのRAID情報はスーパーブロックに記録され、RAIDを構成しているHDD自体に残っている。
↓
kernelが新しいOSのLiveCDで起動し、RAID6の領域を拡張すればいいのでは?
という考えに至りました。
前回のLVM事件でデータは欠損したものの、バックアップは辛うじて存在しているので試してみようかな。!
という訳で、FedoraのLiveCDを落としてきます。
HPを覗いてみると、結構種類があるんですね。
まぁGNOMEで問題ないですし(というか、GNOMEしか使った事がないというのが正しい)、汎用性を考えi686(32bit)版で。
いつの間に32nitはi386からi686に変わったんでしょうかね?
(まぁ適したCPUの世代が異なるというだけなんで、あまり気にしなくてもいいんでしょうけど。)
LiveCDから起動して、Applications > System Tools > Terminal で作業してもいいのですが、SSHでメインマシンから入れるようにします。
System > Preferences > Network Connections からIPを固定。
System > Administration > Firewall でファイヤーウォール自体を殺すか、SSHを許可。
Applications > System Tools > Terminal で以下のコマンドを。
[liveuser@localhost ~]$ su - #パスワードが設定されていないので簡単にrootになれるここまでくればメインマシンからSSHでログイン出来るようになりました。
[root@localhost ~]# getenforce #SELinuxの状態を確認
Enforcing #SELinuxが有効[root@localhost ~]# setenforce 0 #SELinuxを無効化
[root@localhost ~]# getenforce
Permissive #SELinuxが無効[root@localhost ~]# service sshd start #SSHを起動
[root@localhost ~]# passwd root #rootのパスワードを設定, 設定しないとメインマシンからSSHで入れない
Fedoraから直でRAIDをいじってもいいのですが、キーボードの設定変更しないと調べ物が大変なので。
ここからはメインマシンからの操作
(別に直で操作しても可)
構成としてはHDD4発(sd[abcd]1)で構成されているRAID6に、HDD1発(sde1)を追加して領域を拡張したい。
CentOSの時にsde1は追加済みで、スペアとして認識されている。
[root@localhost ~]# mdadm -D /dev/md/X_X #CentOSと異なり/dev/md/の配下にあるリビルドが終わったところで、CentOSに戻します。
[root@localhost ~]# mdadm --manage /dev/md/X_X --add /dev/sdc1 #sdc1が外れていたので、アレイに戻す。この際リビルドが発生。
[root@localhost ~]# mdadm --grow /dev/md/X_X --raid-disks=5 #スペアを合わせて5発なので。因みにリビルドの時間は2TBで約10時間でスピードは40~60MBps
[root@localhost ~]# mdadm -D /dev/md/X_X #アレイに問題がない事を確認
[root@localhost ~]# yum info mdadm #念の為mdadmのバージョンを記載
Name : mdadm
Arch : i686
Version : 3.1.3
Release : 0.git20100722.2.fc14
Size : 680 k
Repo : installed
From repo : fedora
だがしかし!!
やっぱり認識してくれていなかった。。。
OSによって/dev/sdXの認識の仕方が異なるらしく、アレイからHDDが外れているという事態に!
まぁ1発なので、問題はないのですが。
やはりRAID6の領域拡張は無理なのでしょう。
CentOS 6で出来る事を祈りつつ、早くリリースされる事を願っています。
因みに、CentOS 5.5でのmdadmのバージョンは
Name : mdadmです。
Arch : i386
Version : 2.6.9
Release : 3.el5
Size : 1.8 M
Repo : installed
RAID5ならCentOS 5.5でも領域拡張出来るのかな?
RAID6からRAID5にオンラインダウングレード出来るのかな?
RAID5からRAID6へのオンラインアップデートは?
上記3つが出来るなら時間は掛かるがCentOS 5.5でもなんとかなるんだけど。