Установка OpenVZ на CentOS

Обновлено Обновлено: Опубликовано Опубликовано:

Используемые термины: OpenVZ, CentOS.

Подготовка сервера

Заходим в систему под суперпользователем:

$ sudo su

Обновляем список пакетов:

yum update

Устанавливаем ntp для возможности синхронизировать время и wget для скачивания файлов:

yum install ntp wget

Устанавливаем часовой пояс (у меня московское время) и синхронизируем его с сервером времени:

cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime; ntpdate ru.pool.ntp.org

Создаем задание в cron для автоматической синхронизации времени каждый день в 00:00:

mkdir -p /var/cron/tabs && echo '0 0 * * * /usr/sbin/ntpdate ru.pool.ntp.org' >> /var/cron/tabs/crontab && crontab /var/cron/tabs/crontab && crontab -l

Настройка системы для корректной работы OpenVZ

Редактируем системный файл sysctl для запуска CentOS с оптимальными для OpenVZ параметрами:

nano /etc/sysctl.conf

net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 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

* Полужирным отмечены участки, которые нужно отредактировать. Если вся строка полужирная, ее нужно вставить целиком.

Отключаем SELINUX:

echo "SELINUX=disabled" > /etc/sysconfig/selinux

Чтобы в виртуальной машине работала сеть, чистим цепочку FORWARD в iptables и сохраняем настройки:

iptables -F FORWARD && service iptables save

Установка OpenVZ

Так как в стандартных репозиториях нужных пакетов нет, подключим дополнительный. Для этого вводим две следующие команды:

wget -P /etc/yum.repos.d/ http://ftp.openvz.org/openvz.repo

rpm --import http://ftp.openvz.org/RPM-GPG-Key-OpenVZ

Устанавливаем OpenVZ:

yum install vzkernel

Также установим утилиты для управления нашей системой виртуализации:

yum install vzctl vzquota ploop

Создание виртуальной машины (контейнера)

Создаем контейнер с номером 128:

vzctl create 128 --config basic

Настраиваем сеть на автовключение при запуске:

vzctl set 128 --onboot yes --save

Задаем имя машины:

vzctl set 128 --hostname vps128.dmosk.local --save

Назначаем IP-адрес 192.168.166.156 создаваемому серверу:

vzctl set 128 --ipdel all --ipadd 192.168.166.156 --save

Задаем сервер имен (DNS) для возможности контейнера выходить в интернет и взаимодействовать с корпоративной сетью:

vzctl set 128 --nameserver 192.168.164.1 --save

Ставим пароль для учетной записи root в виртуальной машине:

vzctl set 128 --userpasswd root:password --save

Ограничиваем использование процессора на 15 процентов:

vzctl set 128 --cpulimit 15 --save

Задаем дисковую квоту:

vzctl set 128 --diskspace 9000000:10000000 --save

Задаем отсрочку превышения лимита (grace period):

vzctl set 128 --quotatime 600 --save

Определяем максимальный объем оперативной памяти для контейнера:

vzctl set 128 --privvmpages 750M:768M --save

Задаем гарантированный объем памяти, который получит виртуальная машина:

vzctl set 128 --vmguarpages 250M:256M --save

Данной командой запускаем созданный контейнер:

vzctl start 128

Часто используемые команды для управления OpenVZ

* 128 — номер контейнера, с которым мы будем работать в данных примерах. Для каждой виртуальной машины он свой.

Посмотреть список всех созданных контейнеров:

vzlist -a

Запуск контейнера (с ней мы уже знакомы):

vzctl start 128

Остановка контейнера:

vzctl stop 128

Перезапуск машины:

vzctl restart 128

Установка пакета samba в контейнер:

vzyum 128 install samba

Удаление пакета samba с виртуальной машины:

vzyum 128 remove samba

Выполнить команду в контейнере (в данном примере обновить список портов):

vzctl exec 128 yum update -y

# UNIX # Linux # Серверы # CentOS # Виртуализация
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет