В данной статье я расскажу, как можно перенести физическую систему (под управлением Ubuntu 14.04, далее будут называть ее server_ubuntu) в OpenVZ контейнер. Эта процедура должна также работать для конвертирования виртуальных машин VMware VM, VirtualBox VM, или KVM VM в OpenVZ, но у меня нет возможности протестировать это.
Перенос системы server_ubuntu в контейнер OpenVZ
Для начала создадим 2 пустых директории для нового контейнера OpenVZ на hn1_server (так я далее буду называть сам сервер виртуальных машин OpenVZ) и также создадим стандартный конфигурационный файл OpenVZ для нового контейнера:
# mkdir /vz/root/124 /vz/private/124
# cat /etc/vz/conf/ve-vswap-2g.conf-sample > /etc/vz/conf/124.conf
Теперь установим rsync на оба сервера, так как мы будем использовать rsync для передачи файлов с server_ubuntu на OpenVZ контейнер.
На server_ubuntu выполнить:
# apt-get install rsync
На hn1_server выполнить:
# yum install rsync
Теперь начнем передавать файлы.
На hn1_server выполнить:
# rsync -arvpz --numeric-ids --exclude dev --exclude proc --exclude tmp --exclude "/sys/devices/*" -e "ssh -l root@192.168.0.50" root@192.168.0.50:/ /vz/private/124/
где:
192.168.0.50 – ip физического сервера с Ubuntu (server_ubuntu)
-a архивный режим
-r рекурсивно входить в подкаталоги
-v увеличить уровень подробностей
-p сохранять разрешения
-z сжимать поток передачи данных
-e указывает замену программу удаленной оболочки
--numeric-ids не преобразовывать значения uid/gid по именам пользователя/группы
--exclude исключить файлы, соответствующие шаблону
Это может занять длительное время, в зависимости от количества и размера файлов на сервере server_ubuntu.
После этого мы должны сконфигурировать наш новый контейнер с помощью команды vzctl
OpenVZ. Заранее необходимо знать, какой дистрибутив использовался на физической системе, чтобы такой же установить для контейнера.
Выполнить на hn1_server:
# vzctl set 124 --ostemplate ubuntu-14.04-x86_64-minimal --save
После этого необходимо установить параметры сети и размер диска для нового контейнера, а также некоторые другие параметры.
Выполнить на hn1_server:
# vzctl set 124 --onboot yes --save
# vzctl set 124 --hostname ubuntu_server_new.youhost.ru --save
# vzctl set 124 --ipadd 192.168.0.100 --save
# vzctl set 124 --numothersock 120 --save
# vzctl set 124 --nameserver 8.8.8.8 --nameserver 8.8.4.4 --save
# vzctl set 124 --save --cpus 2
# vzctl set 124 --save --ram 8G
# vzctl set 124 --save --swap 4G
# vzctl set 124 --save --diskspace 100G
Это основные настройки. Если необходимо вы можете изменить другие настройки с помощью команды vzctl.
Перед тем как мы запустим OpenVZ контейнер, нам необходимо сделать небольшие специфичные для OpenVZ изменения.
Выполнить на hn1_server:
# sed -i -e '/getty/d' /vz/private/124/etc/inittab
# rm -f /vz/private/124/etc/mtab
# ln -s /proc/mounts /vz/private/124/etc/mtab
# cp /vz/private/124/etc/fstab /vz/private/124/etc/fstab.old
# grep devpts /vz/private/124/etc/fstab.old > /vz/private/124/etc/fstab
# mkdir /vz/private/124/dev
# mknod --mode 666 /vz/private/124/dev/ptmx c 5 2
# mkdir /vz/private/124/dev/pts
# cp -a /dev/ttyp* /dev/ptyp* /vz/private/124/dev/
# rm -f /vz/private/124/dev/null
# mknod --mode 666 /vz/private/124/dev/null c 1 3
# mknod --mode 444 /vz/private/124/dev/urandom c 1 9
# mkdir /vz/private/124/proc
# cat /dev/null > /vz/private/124/etc/network/interfaces
# mkdir /vz/private/124/tmp
# chmod 777 /vz/private/124/tmp
# mkdir /vz/private/124/var/tmp
# chmod 777 /vz/private/124/var/tmp
# mknod --mode 666 /vz/private/124/dev/random c 1 8
# mknod --mode 666 /vz/private/124/dev/zero c 1 5
# mknod --mode 666 /vz/private/124/dev/null c 1 3
# rm /vz/private/124/dev/tty
# mknod --mode 666 /vz/private/124/dev/tty c 5 0
В файл /vz/private/124/etc/fstab прописываем:
proc /proc proc defaults 0 0
none /dev/pts devpts rw,gid=5,mode=620 0 0
none /run/shm tmpfs defaults 0 0
Готово. Теперь можно попробовать запустить сервер.
Выполнить на hn1_server:
# vzctl start 124
Если все прошло успешно, то теперь можно установить новый пароль:
# vzctl exec 124 passwd
P.S. Если при запуске возникает ошибка такого вида:
vzquota : (warning) inode_hard_limit [144179] < inode_current_usage [424424]
то необходимо изменить параметр diskinodes новой виртуальной машины - выполнить на hn1_server:
# vzctl set 124 --diskinodes=450000:500000 –save
При этом учитывать, что лимит инод указывается больше, чем используется системой. В данном случае используется 424424, а ставим лимит на 450000.
Ссылки
OpenVZ: http://wiki.openvz.org/Main_Page
Оригинал статьи без моих изменений: Тыц >>
Комментариев нет:
Отправить комментарий