古い環境をP2Vさせたいのに、VMware vCenter Converter はSottwareRAIDに対応していないとかで、自力で移行させる手順を調べてみた。ただし全ての環境でうまくいくのかは分からないし、当然データを送っている最中の変更は反映されないとか色々課題が・・・一応メモ
VMwareなり、KVMで新規仮想ゲストを作成
RHEL/CentOSのISOイメージを用いて sshd を有効にした状態のレスキューモードを起動する。
※ブートメニューで "Rescue〜" を選択、[TAB]キーを押し末尾にsshdを付ける
> ... rescue sshd
ネットワークを有効にする。
ローカルディスクはマウントしない。(Skip)
"shell" に降りる。
P2V元に合わせるか、任意でパーティションを作成(ブートフラグを忘れずに)
例)
# parted /dev/sda
(parted) mklabel #<-ディスクラベルの作成
(parted) mkpart #<-パーティションの作成(任意)
(parted) set 1 boot on #<-ブートフラグのセット
(parted) quit #<-終了
パーティションの初期化
例)
# mkfs.ext4 /dev/sdX[NUM]
# mkswap /dev/sdX[NUM]
...
マウント
例)
# mkdir /mnt/sysimage/boot -p
# mount /dev/sdX[NUM] /mnt/sysimage
# mount /dev/sdX[NUM] /mnt/sysimage/boot
...
P2V元から、先に作成したP2V先の仮想ゲストにSSHログイン出来る事を確認(ID: root / PW: なし)
tar,ssh を用いて、P2V先で手動マウントしたとこにデータをコピーする。
# cd /
# tar zcf - \
--exclude /boot \
--exclude /sys \
--exclude /dev \
--exclude /cgroup \
--exclude /srv \
--exclude /selinux \
--exclude /lost+found \
--exclude /net \
--exclude /proc \
/ | ssh root@[P2V先VMのIP] "(cd /mnt/sysimage/root && tar zxf -)"
# tar zcf - /boot | ssh root@[P2V先VMのIP] "(cd /mnt/sysimage && tar zxf -)"
...
コピー元とコピー先のディレクトリ構成などが相違ないことを確認
P2V元をログアウト
"/boot" の確認とコピーしなかったディレクトリの作成
# ls -la /mnt/sysimage/boot
# cd /mnt/sysimage/root
# mkdir boot sys dev cgroup srv selinux net proc
# cd /
fstab, NIC/MACアドレス, IPアドレスなどを変更、必要に応じてSSHホスト鍵なども削除(初期化)する。
# chroot /mnt/sysimage/root
grub のインストール
# grub-install
# hexdump -C -n 512 /dev/sda #<-確認
grub.conf の編集
# vi /etc/grub.conf
=>kernel行のroot=UUID〜を、root=/dev/sda3 に修正("/"を指定する)
initrd の再作成 ブートするカーネルのバージョンを確認
# cat /etc/grub.conf
RHEL6系の場合
# cp -p /boot/initramfs-[version].img{,.bak}
# /sbin/dracut -f /boot/initramfs-[version].img [version]
RHEL5系の場合
# cp -p /boot/initrd-[version].img{,.bak}
# mkinitrd -f -v /boot/initrd-[version].img [version]
起動する事を祈る(´・ω・`)
# exit
# cd /
# umount /mnt/sysimage/boot
# umount /mnt/sysimage/root
# sync;sync;sync;reboot