tuneoの日記: Linux mdのRAIDレベル移行
・Converting RAID5 to RAID6 and other shape changing in md/raid
・RAIDレベル継承 とは - Linuxキーワード:ITpro
などによると、最近RAID1→5→6 or RAID6→5のオンラインRAIDレベル移行(ORLM)ができるようになったらしい。
で、VirtualBoxの仮想マシンで試してみた。
その一:mdadmを使って2D1PのRAID5から2D2PのRAID6にORLMする
まずRAID5アレイに一つスペアディスクを追加する。これで2D1P1Sのアレイになる。
# mdadm --add /dev/mdX /dev/sdX1
さらに2D2PのRAID6に移行。--backup-fileオプションは、スペアディスクが(アレイに追加される分を除いて)存在しない場合には必須。もちろんバックアップファイルはアレイの上に置いちゃダメ(いや、ダメってことは無いんだろうけど、気分的にあんまり良いもんじゃない気がする)。
# いくらテストだからってtmpfsの上に置くのもどうかと思うが>俺。
# mdadm --grow /dev/mdX --raid-level <strong>6</strong> --raid-devices=<strong>4</strong> --backup-file=<strong>/root/md.bak</strong>
これでディスクががりがり言い出してreshapeが走ってRAID6のアレイができあがり。
移行が済んだらバックアップファイルは削除して可。
その二:mdadmを使わずに移行する
いきなりsysfsをいじくる。
echo raid6 > /sys/block/mdX/md/level
とやらかすだけで縮退状態のRAID6アレイにいきなり移行できる。
次にmdadmでスペアデバイスを追加する。
# mdadm --add /dev/mdX /dev/sdX1
途端にディスクががりがり言い出してreshapeが走り、2D2PのRAID6に移行完了。……オーソドックスにmdadm使った方がいいんだろうなぁ、きっと。
しばらく前から可能だったOCE(オンライン領域拡張)にくわえてORLMまでサポートされちまったわけで、Linuxでfakeraidを使う必要性はほとんど無くなってしまったのではなかろうか。もっとも、mdでディスクをガンガン繋げてRAID1/5/6する場合、PCI-Express x4とかx8とか広帯域なバスにSATA/SASコントローラをぶら下げないとバスの帯域が飽和して性能が落ちるけどな。
Linux mdのRAIDレベル移行 More ログイン