Миграция OpenVZ контейнера с CentOS 6.6 в VMWare ESXi 5.5

Создаем пустой образ (16Gb):

# dd if=/dev/zero of=/var/lib/vz/root/vz.img bs=1024 count=16777216

Делаем две партиции, 500Мб на boot и остальное:

# fdisk /var/lib/vz/root/vz.img

Результат:

# fdisk -l /var/lib/vz/root/vz.img

Disk vz.img: 17.2 GB, 17179869184 bytes255 heads, 63 sectors/track, 2088 cylinders, total 33554432 sectors
Units = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x43c72ebd
Device       Boot                               Start      End      Blocks     Id    Systemvz.img
1         *                                2048   1026047 512000     83    Linuxvz.img
2                                     1026048 33554431 16264192 8e    Linux LVM

Создаем файловую систему на корневой партиции, offset равен количеству байт перед началом партиции, что в нашем случае = 1026048 * 512 (start sector * sector size):

# losetup -o 525336576 /dev/loop0 /var/lib/vz/root/vz.img

# pvcreate /dev/loop0

# vgcreate vg_main /dev/loop0

# lvcreate -L 4G -n lv_swap vg_main

# lvcreate -l 100%FREE -n lv_root vg_main

# mke2fs -t ext4 /dev/mapper/vg_main-lv_root

# mkswap /dev/mapper/vg_main-lv_swap

Монтируем образ:

# mkdir -p /mnt/vz && mount /dev/vg_main/lv_root /mnt/vz

Копируем содержимое openvz контейнера на образ:

# cp -av /var/lib/vz/private/[vz_id]/* /mnt/vz/

Размонтируем и сконвертим в vmdk:

# umount /mnt/vz

# qemu-img convert -f raw /var/lib/vz/root/vz.img -O vmdk /var/lib/vz/root/vz.vmdk

На ESXi хосте создаем виртуальную машину без HDD. Копируем полученный vmdk файл на ESXi хост и конвертируем в thin формат:

# vmkfstools -i vz.vmdk -d thin vz-thin.vmdk

Подключаем полученный диск к виртуальной системе, загружаемся с какого-нить rescue CD (например SystemRescueCD).

Загрузившись, сделаем файловую систему для boot партиции:

# mke2fs -t ext4 /dev/sda1

Монтируем наш раздел и переходим в него по chroot:

# mkdir -p /mnt/vz && mount /dev/vg_main/lv_root /mnt/vz

# mount /dev/sda1 /mnt/vz/boot

# mount —bind /dev /mnt/vz/dev

# mount -t proc none /mnt/vz/proc

# mount -t sysfs none /mnt/vz/sys

# chroot /mnt/vz  /bin/bash

Редактируем то, что нужно:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

# service network restart

# vi /etc/fstab

# cat /etc/fstab/dev/mapper/vg_main-lv_root

/ ext4 defaults 1 1

/dev/mapper/vg_main-lv_swap swap swap defaults 0 0

/dev/sda1 /boot ext4 defaults 1 2

tmpfs /dev/shm tmpfs defaults 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

# echo «SELINUX=disabled» > /etc/selinux/config

Удаляем лишнее и устанавливаем недостающее:

# yum remove vzdummy-init* vzdummy-glibc

# yum reinstall @Base kernel device-mapper-multipath lvm2 device-mapper-event grub glibc glibc-common libgcc tzdata grep pcre libstdc++ ncurses ethtool pam mcstrans chkconfig python db4 openssl gdbm krb5-libs initscripts centos-release iproute sysfsutils module-init-tools e2fsprogs e2fsprogs-libs psmisc procps libsysfs iputils# yum reinstall *init*

 

Конфиг grub:

# vi /boot/grub/grub.conf

# cat /boot/grub/grub.conf

default=0

timeout=5

splashimage=(hd0,0)

/grub/splash.xpm.gz

hiddenmenutitle CentOS (2.6.32-573.7.1.el6.x86_64)root (hd0,0)

kernel /vmlinuz-2.6.32-573.7.1.el6.x86_64 ro root=/dev/mapper/vg_main-lv_root rd_LVM_LV=vg_main/lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD quiet SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg_main/lv_swap rd_NO_DM

initrd /initramfs-2.6.32-573.7.1.el6.x86_64.img

Устанавливаем загрузчик:

# grub-install /dev/sda

Перезагружаем виртуальную машину в обычном режиме. Готово.

Друзья помогите этому контенту стать доступнее в социальных сетях.

Не проходи мимо жмакни по кнопке возможно кому то еще он будет полезен!