
VPS) или виртуальных сред (VE), кстати, популярная нынче тема у хостинг компаний. Виртуализация на уровне операционной системы в OpenVZ даёт более высокую производительность, масштабируемость, плотность размещения, лёгкость в администрировании нежели у альтернативных решений. На официальном сайте написано приблизительно следующие: Накладные расходы на виртуализацию очень малы, и падение производительности составляет всего 1-3 %, по сравнению с обычными Linux-системами. Более подробно о том какая OpenVZ замечательная вы можете почитать тут. И так, мы имеем Centos 6, с 2 Гб ОЗУ, HDD на 20 Гб и вкусняшный кофе в количестве OVER 9000. Данная конфигурация, разумеется, является стендовой и не рекомендуется к промышленному применению, хотя решать вам, все зависит от задач и потребностей ваших аппликаций и сервисов. Сразу хочу отметить SELinux и Firewall должны быть отрублены:
1 2 3 | nano /etc/sysconfig/selinux SELINUX=disabled setenforce 0 |
Кстати если кому интересны иные способы – как отключить Selinux, то вы сможете найти их тут.
1 2 | Service iptebles stop chkconfig iptables off |
Ну а теперь к самой установке.
1 2 | wget -O /etc/yum.repos.d/openvz.repo http://download.openvz.org/openvz.repo rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ |
Качаем и ставим репы OpenVZ
1 | nano /boot/grub/menu.lst |
Отключаем [openvz-kernel-rhel5] (ставим enabled=0) и включаем [openvz-kernel-rhel6] (enabled=1), сам файлик должен выглядеть приблизительно так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | [openvz-kernel-rhel6] name=OpenVZ RHEL6-based kernel #baseurl=http://download.openvz.org/kernel/branches/rhel6-2.6.32/current/ mirrorlist=http://download.openvz.org/kernel/mirrors-rhel6-2.6.32 enabled=1 gpgcheck=1 gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ [openvz-kernel-rhel5] name=OpenVZ RHEL5-based kernel #baseurl=http://download.openvz.org/kernel/branches/rhel5-2.6.18/current/ mirrorlist=http://download.openvz.org/kernel/mirrors-rhel5-2.6.18 enabled=0 gpgcheck=1 gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ |
Устанавливаем ядро OpenVZ и прописываем в автозагрузку:
1 2 | yum install ovzkernel.x86_64 nano /boot/grub/grub.conf |
вставляем:
1 2 3 4 | title OpenVZ (2.6.32-042stab057.1) root (hd0,0) kernel /vmlinuz-2.6.32-042stab057.1 ro root=/dev/mapper/vg_server-lv_root rd_LVM_LV=vg_server/lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=de rd_LVM_LV=vg_server/lv_swap rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-042stab057.1.img |
Перед title Centos (кстати, убедитесь в том, что default=0 и ПРОВЕРЯЙТЕ ПУТИ!!! У вас может быть другая версия vmlinuz). Теперь ставим утилиты OpenVZ
1 | yum install vzctl vzquota |
Настраиваем /etc/sysctl.conf
1 | nano /etc/sysctl.conf |
Приводим к виду:
1 2 3 4 5 6 7 8 | net.ipv4.ip_forward = 1 net.ipv4.conf.default.proxy_arp = 0 net.ipv4.conf.all.rp_filter = 1 kernel.sysrq = 1 net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0 net.ipv4.icmp_echo_ignore_broadcasts=1 net.ipv4.conf.default.forwarding=1 |
Применяем изменения:
1 | sysctl –p |
Собственно и все, после ребута вы загрузитесь с новым ядром (проверить это можно uname -a), но есть маленькая тонкость – Если виртуалки будут получать IP из другой подсети, нежели хост, сеть работать не будет. Для всех остальных случаев нас спасёт простое мостовое соединение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | nano /etc/sysconfig/network-scripts/ifcfg-vmbr1 DEVICE="vmbr1" BOOTPROTO="static" IPV6INIT="no" ONBOOT="yes" TYPE="Bridge" DELAY=0 IPADDR=10.1.1.100 NETMASK=255.255.255.0 GATEWAY=10.1.1.1 nano /etc/sysconfig/network-scripts/ifcfg-eth2 DEVICE="eth2" ONBOOT="yes" IPV6INIT="no" TYPE="Ethernet" BRIDGE="vmbr1" |
И небольшой скриптик, который поможет автомочиски добавлять и удалять новые контейнеры к хосту
1 2 3 | nano /etc/vz/vznet.conf #!/bin/bash EXTERNAL_SCRIPT="/usr/sbin/vznetaddbr" |
Использование OpenVZ Теперь давайте посмотрим как же его юзать. Для начала немного о структуре, у OpenVZ есть собственные шаблоны для виртуальных машин, найти их можно тут. Перед тем как создавать виртуалки, нам нужно создать необходимый шаблон в каталоге /vz/template/cache и так, как же создать машинку Centos на OpenVZ:
1 2 | cd /vz/template/cache wget http://download.openvz.org/template/precreated/centos-6-x86_64.tar.gz |
Таким образом, мы скачиваем шаблон.
1 | vzctl create 001 --ostemplate centos-6-x86_64 --config basic |
001 – это ID машинки, для каждого свой, задается пользователем по выбранному им шаблону.
1 | vzctl set 001 --onboot yes –save |
Таким образом, мы добавляем виртуалку в автозапуск.
1 2 | vzctl set 001 --hostname test.openvz.local --save vzctl set 001 --ipadd 10.1.1.101 –save |
Задаем имя хоста и IP виртуальной машины
1 2 | vzctl set 001 --numothersock 120 --save vzctl set 001 --nameserver 8.8.8.8 –save |
Указываем количество сокетов (120), указываем dns (8.8.8.8), количество dns серверов можно увеличить, добавив перед –save еще один –nameserver (пример: vzctl set 001 –nameserver 8.8.8.8 –nameserver 9.9.9.9 –save). Вы так же можете редактировать все это вручную (/etc/vz/conf/YOUR_ID.conf)
1 | vzctl start 001 |
Пускаем нашу виртуалку (для остановки vzctl stop 001, перезапуск vzctl restart 001, удаление vzctl destroy 001)
1 | vzctl exec 001 passwd |
Задаем пароль root
1 | vzctl enter 001 |
Подключаемся по SSH (для выхода из консоли наберите exit)
1 | vzlist –a |
Просмотр списка виртуальных машин
1 | vzctl exec 001 cat /proc/user_beancounters |
Получение информации о используемых ресурсах Приблизительный вывод
1 2 | uid resource held maxheld barrier limit failcnt 001: kmemsize 1508202 1661695 11055923 11377049 0 |
Внимание к колонке failcnt, она должна содержать только нули, если это не так, то виртуальная машина требует больше количество ресурсов, чем в настоящее время выделяется. Для изменения ситуации отредактируйте конфиг в директории /etc/vz/conf и добавив соответствующий ресурс. После изменения не забудьте перезагрузить виртуальную машину Собственно все, больше инфы вы получите в выводе команды
1 | man vzctl |
И на официальном сайте. Кстати, чуть не забыл. Недавно я увидел приятную и интересную приблуду для OpenVZ – называется она OpenVZ Web Panel и позволяет управлять виртуалочками через… никогда не догадаетесь, Web мордачку, кстати довольно милую
Кстати есть и для мобилки
Ставится это чудо, так:
1 2 | wget -O - http://ovz-web-panel.googlecode.com/svn/installer/ai.sh | sh http://<your-host>:3000 |
Добавить комментарий