CentOS5.5でraid6を--growしようとしたら怒られるのでLiveCDでどうにかする

# mdadm --manage /dev/md0 --add /dev/sdg1
# mdadm --grow /dev/md0 --raid-devices=6
mdadm: Cannot set device size/shape for /dev/md0: Invalid argument

とか言われる。
調べてみるとカーネルが古いのが原因で、解決策としては新しいカーネルのLiveCDを使えばなんとかなるようだ。

http://www.mail-archive.com/linux-raid@vger.kernel.org/msg09062.html
http://centos.info/modules/newbb/viewtopic.php?viewmode=thread&order=ASC&topic_id=24121&forum=37

とりあえず仮想PC上で実験をした

これをOS用ディスクにインストールして、Raidのディスク6個追加し、

これでgrowする。

アレイの作成
# mdadm --create /dev/md0 --raid-devices=5 --level=6 --chunk=128 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1
# vgcreate -s 32M Array00 /dev/md0
# lvcreate -L 5.45T -n LogVol00 Array00
# mkfs -t ext4 -E stride=32,stripe-width=96 -i 65536 -m 0 -O extents,uninit_bg,dir_index,filetype,has_journal,sparse_super /dev/Array00/LogVol00
アレイのgrow

ここからUbuntu

//入ってないのでインストール
# apt-get install mdadm
//ディスクからアレイの情報を得る
# sudo mdadm --examine /dev/sdb1
//assemble
# sudo mdadm --assemble --uuid=上で得たUUID /dev/md0
//add
# sudo mdadm --manage /dev/md0 --add /dev/sdg1
//grow
# sudo mdadm --grow /dev/md0 --raid-devices=6
md、pv、lv、fsの拡張

CentOSに戻る

//mdの拡張
# mdadm -G -z max /dev/md0 
//pvの拡張
# pvresize /dev/md0
//vgの確認
# vgdisplay -v Array00
  Total PE(物理エクステントの総数)
  Alloc PE / Size(割り当てられている物理エクステント / サイズ)
  Free  PE / Size(フリーな物理エクステント / サイズ)
  あたりが必要な情報
//lvの拡張
# lvextend -l 新しい物理エクステント数 /dev/Array00/LogVol00 
	または
# lvextend -L 新しいサイズ /dev/Array00/LogVol00 
//fsの拡張
# resize4fs /dev/Array00/LogVol00

うまくいくようなので実機で試してみる

のこり2000分…。



まとめ

  • CentOS5だとRaid6の--growができなくて泣けるのでLiveCDでやりましょう
  • 仮想PCを使えば一応テストはできる
  • 「あれい」で変換してアレイより阿礼が先に出るGoogle日本語入力はいい感じに狂ってる