Установка OpenVZ на CentOS
Данный опус является частью единого цикла заметок o CLI. Для его написания использовалось множество различных источников (скилы крутых специалистов, статьи с тематических сайтов, техническая документация, комментарии с форумов и социальных сетей и т. д и т. п.). К сожалению, указать все источники точно не представляется возможным! По этому, в конце заметки, будет указана ссылка только на основной источник. Материалы, использованные для написания заметки, изменялись автором под конкретную задачу! Вам, скорее всего, тоже придется поступить аналогичным образом для получения желаемого результата)
По умолчанию для входа используется логин admin без пароля. Добавление пользователя:
use add name=имя password=пароль group=full
Либо можете воспользоваться готовым проектом, где все собрано в одном месте - winbox-installer.
Подготовка сервера
Заходим в систему под суперпользователем:
$ 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
Вывод команды:
log_bin=mysql-bin
log_error=mysql-bin.err
binlog-ignore-db=information_schema,mysql,test
Cпаcибо автору!
Источник: