CentOS5 を P2V してみる。

(これも手順が確立したわけでは無いのでメモ書き程度)

まず、vCenter Converter Standalone でP2Vする際に、元のHDDが lvm だったら、ハードディスクの選択で「To Basic」にして、基本パーティションに変換する。(CentOS6なら lvm のままで問題無い)

vCenter Converter の使い方は割愛。

変換が完了したら、 vmx を直接編集する必要がある。

scsi0:0.present = "TRUE"
scsi0:0.fileName = "test.local.vmdk"
scsi0:0.deviceType = "scsi-hardDisk"
ide0:0.present = "TRUE"
ide0:0.clientDevice = "TRUE"
ide0:0.deviceType = "cdrom-raw"
ide0:0.startConnected = "FALSE"

恐らくこんな感じになっているので、

scsi0:0.present = "FALSE"
scsi0:0.fileName = "test.local.vmdk"
scsi0:0.deviceType = "scsi-hardDisk"
ide0:0.present = "TRUE"
ide0:0.fileName = "test.local.vmdk"
ide1:0.present = "TRUE"
ide1:0.clientDevice = "TRUE"
ide1:0.deviceType = "cdrom-raw"
ide1:0.startConnected = "FALSE"

にする。元々IDE0番にはCD-ROMが居座っているはずなので、これも番号をズラす。ここまでやったら、CentOS6 の iso から起動して、RESCUE MODE で起動。

# chroot /mnt/sysimage
# vi /etc/fstab
 fstab に記載されている、sda を全て hda に変更
 できれば、LABEL= も /dev/hda* に変更しておく
 * はパーティション番号なので任意
# vi /boot/grub/device.map
 device.map も sda から hda へ変更
# vi /boot/grub/grub.conf 
 root=/dev/VolGroup00/LogVol00 みたいになっている所を
 /dev/hda* というように変更
 * はパーティション番号なので任意
# mv initrd-2.6.18-406.el5.img initrd-2.6.18-406.el5.img.org
 initrd の元ファイルをリネーム。環境によって異なるはず
# mkinitrd /boot/initrd-2.6.18-406.el5.img 2.6.18-406.el5
 initrd を作成しなおす。
 たまに /etc/modprobe.conf に変なドライバが残っていて作成に
 失敗する。適宜消す事 

こんな感じ。
但し、環境によってはこれで起動しなかったり、/etc/inittab がおかしいと言われたりする。その辺は手修正が必要になる。
CentOS5 の P2V は本当に難産なので、環境によってはかなり Linux の知識が必要になる。Kernel Panic との戦いは続く。

lvm利用時にディスクサイズを小さくしてみる。

(まだ方法が確立したわけではありません。とりあえず個人的なメモ代わりの感じで。)

一番簡単なのは、CentOS7 LiveCD を使う方法。これをCD起動して、ネットワークに繋げた状態にします。今回の例では、120GBを60GBに減らす事を目的にします。まずは、何はともあれツールのインストール。

# yum install system-storage-manager

これで、ssmコマンドが利用できるようになります。

# ssm list

このコマンドでディスク状況が判ります。対象となる lvm の名前と mapper の名前を覚えておいてください。

# ssm resize -s-60G /dev/vg_00/LogVol00

本来なら、fsck したり resize2fs するのですが、ssm が自動で全部やってくれます。ちなみにディスクの使用量以下に減らしてはいけません。最悪起動しなくなります。

# pvscan
# lvscan

そうしたら、pvscan と lvscan を使って容量を確認します。ちゃんと減っていればOK。

# pvresize --setphysicalvolumesize 60G /dev/sdb2

最後に Physical Volume を縮小します。これで元の容量の半分になりました。