Proxmox VE 3.1でソフトウェアRAIDを使ってみた(システム領域含む)
Pocket

前回Proxmox VE 3.1でソフトウェアRAIDでRAID1にしたストレージを追加したが、今回はシステム領域を含めてRAID化してみた。

なお、実施は以下のページを参考にした。

How to install PROXMOX VE 3.1 on SOFTWARE-RAID

http://boffblog.wordpress.com/2013/08/22/how-to-install-proxmox-ve-3-0-on-software-raid/

Миграция PROXMOX VE 3.0 в software RAID1

http://habrahabr.ru/post/186818/

mdadmインストール

mdadmのインストールについては、前回の記事を参照してもらいたい。

パーティションテーブルの作成

システムディスク(/dev/sda)と同様のパーティションを、増設ディスク(/dev/sdb)に作成する。

sfdisk -d /dev/sda | sfdisk -f /dev/sdb

「/dev/sdb1」「/dev/sdb2」のパーティションIDをfd (Linux raid 自動検出)に変更する。

sfdisk -c /dev/sdb 1 fd
sfdisk -c /dev/sdb 2 fd

Sponsored Links

RAID領域作成

「/dev/sdb1」「/dev/sdb2」を元にRAID領域「/dev/md0」「/dev/md1」を作成する。
なお、この際「/dev/sda1」「/dev/sda2」はまだ組み込まない。

mdadm –create /dev/md0 –level=1 –raid-disks=2 missing /dev/sdb1
mdadm –create /dev/md1 –level=1 –raid-disks=2 missing /dev/sdb2

この状態で「/proc/mdstat」を参照すると以下のようになっている。

root@proxmox2:~# cat /proc/mdstat
Personalities : [raid1] md1 : active raid1 sdb2[1] 487731008 blocks super 1.2 [2/1] [_U]

md0 : active raid1 sdb1[1] 522944 blocks super 1.2 [2/1] [_U]

unused devices: <none>
root@proxmox2:~#

「/boot」のデータをRAIDへコピーする

作成したRAID領域へ現行のブート領域のデータをコピーする。

「/dev/md0」をext3形式でフォーマットする。

mkfs.ext3 /dev/md0

md0をマウントし、「/boot」以下のデータをコピーする。

mkdir /mnt/md0
mount /dev/md0 /mnt/md0
cp -ax /boot/* /mnt/md0

RAIDからの起動設定

「/etc/fstab」ファイルを編集するため、以下のコマンドを実行する。

sed -i ‘s/^UUID/#UUID/’ /etc/fstab
echo ‘/dev/md0 /boot ext3 defaults 0 1’ >> /etc/fstab

上記コマンド実行後、「/etc/mdadm/mdadm.conf」を作成し、再起動後にmd0が削除されないようにする。
これを行わないと、起動せずにメンテナンスモードへの移行画面が表示されてしまう。

cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm –examine –scan >> /etc/mdadm/mdadm.conf

以下のコマンドを実行し、md0からブートするようにgrub上の設定を追記する。

echo ‘GRUB_DISABLE_LINUX_UUID=true’ >> /etc/default/grub
echo ‘GRUB_PRELOAD_MODULES=”raid dmraid”‘ >> /etc/default/grub
echo raid1 >> /etc/modules
echo raid1 >> /etc/initramfs-tools/modules

ソフトウェアRAIDの対象デバイスとなる「/dev/sda」「/dev/sdb」に対し、GRUBをインストールし、設定を反映させる。

grub-install /dev/sda –recheck
grub-install /dev/sdb –recheck

update-grub
update-initramfs -u

「/dev/sda1」のRAIDデバイスへの追加

今まで既存のシステム領域として動いていた「/dev/sda1」をRAIDデバイスへ追加する。
以下のコマンドを実行し、「/dev/sda1」を「/dev/md0」に参加させる。

sfdisk -c /dev/sda 1 fd
mdadm –add /dev/md0 /dev/sda1

「/dev/sda2」のLVMを「/dev/md1」へ移動

「/dev/sda2」に存在しているLVMボリュームを「/dev/md1」に移動するため、以下のコマンドを実行する。

pvcreate /dev/md1
vgextend pve /dev/md1
pvmove /dev/sda2 /dev/md1

pvmoveの終了後、以下のコマンドを実行してsda2のデータを削除する。

vgreduce pve /dev/sda2
pvremove /dev/sda2

「/dev/sda2」のRAIDデバイスへの追加

今まで既存のシステム領域として動いていた「/dev/sda2」をRAIDデバイスへ追加する。
以下のコマンドを実行し、「/dev/sda2」を「/dev/md1」に参加させる。

sfdisk –change-id /dev/sda 2 fd
mdadm –add /dev/md1 /dev/sda2

これで、既存のシステムをソフトウェアRAIDにする処理が完了となる。
基本的には通常インストールをしたLinuxをソフトウェアRAID化する方法と同じ。

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。