Возникла потребность в необычной миграции с LXC на OpenVZ обычно делают наоборот, но задача есть задача, приступим к ее выполнению.
- Необходимо настроить новый севрер на OpenVZ ядре
- Создать на новом сервере с OpenVZ новый контейнер, с аналогичными лимитами (CPU, memory, disk, …) как на старом lxc, запускать его не обязательно, нам необходимо сгенерировать конфиг для будующего контейнера.
1 |
vzctl create 100 --ostemplate centos-7-x86_64 |
настройки интерфейса:
1 |
vzctl set 100 --ipadd 10.1.1.100 --save |
dns сервер
1 |
vzctl set 100 --nameserver 8.8.8.8 --save |
Также можно отредактировать общий конфиг и добавить если что-то упущенно или скопировать целиком отсюда:
1 |
nano /etc/vz/conf/100.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
AVNUMPROC="unlimited" NUMPROC="unlimited" NUMTCPSOCK="1801439850948198" NUMOTHERSOCK="1801439850948198" VMGUARPAGES="unlimited" # Secondary parameters KMEMSIZE="unlimited" #TCPSNDBUF="2147483647:2147483647" TCPSNDBUF="4611686018427387903:9223372036854775807" TCPRCVBUF="4611686018427387903:9223372036854775807" OTHERSOCKBUF="4611686018427387903:9223372036854775807" DGRAMRCVBUF="unlimited" OOMGUARPAGES="unlimited" # Auxiliary parameters LOCKEDPAGES="unlimited" SHMPAGES="unlimited" PRIVVMPAGES="unlimited" NUMFILE="unlimited" NUMFLOCK="unlimited" NUMPTY="unlimited" NUMSIGINFO="unlimited" DCACHESIZE="unlimited" PHYSPAGES="0:unlimited" SWAPPAGES="0:unlimited" NUMIPTENT="unlimited" CPUS="unlimited" # Disk quota parameters (in form of softlimit:hardlimit) DISK_QUOTA="no" VE_ROOT="/data/vz/root/$VEID" VE_PRIVATE="/data/vz/private/$VEID" OSTEMPLATE="centos-7-x86_64" ORIGIN_SAMPLE="unlimited" IP_ADDRESS="10.1.1.100" HOSTNAME="master-1.mailon.com.ua" ONBOOT="yes" SEARCHDOMAIN="." NETFILTER="stateful" VE_LAYOUT="simfs" NAMESERVER="8.8.8.8" |
- седалть дамп lxc и перенести его на новый сервер
- если архив дампа сзжатый — тогда распаковать его:
1lzop -d vzdump-lxc-XXX.tar.lzo
или (если дамп в tar.gz)
1gunzip filename.tar.gz - добавим ранее созданный конфиг openvz в дамп lxc
1 |
tar -uf filename.tar /etc/vz/conf/100.conf |
- удаляем ранее созданный пустой контейнер ID 100
1 |
vzctl destroy 100 |
- восстанавливаем дамп
1 |
vzrestore vzdump-lxc-XXX.tar 100 |
- создаем недостающих устройст в OpenVZ контейнере:
1 2 3 4 5 6 7 8 9 |
cd /data/vz/private/XXX/ rm -f dev/null mknod -m 666 dev/null c 1 3 mknod -m 666 dev/zero c 1 3 mknod -m 444 dev/random c 1 8 mknod -m 444 dev/urandom c 1 9 mknod -m 666 dev/ptmx c 5 2 mkdir dev/pts cp -a /dev/ttyp* /dev/ptyp* dev/ |
- Запускаем контейнер и проверяем логи в dmesg / messagesна наличие ошибок.
1 |
vzctl start XXX |
- В некоторых случаях необходимо дополнительно вносить изменения в настройки сетевого интерфейса, в таком случаи правим файл (в нашем примере lxc контейнер был на OS Debian)
1 |
/etc/network/interfaces |