В предисловии хочу сказать – в этой статьей я бы хотел сделать для себя памятку по установке данной системы виртуализации. Мощная система, с возможностями по разграничению ресурсов компьютера между множеством виртуальных ОС семейства Linux (имеет много шаблонов).
Вот что Wiki говорит:
OpenVZ — это реализация технологии виртуализации на уровне операционной системы, которая базируется на ядре Linux. OpenVZ позволяет на одном физическом сервере запускать множество изолированных копий операционной системы, называемых Виртуальные Частные Серверы (Virtual Private Servers, VPS) или Виртуальные Среды (Virtual Environments, VE).
Поскольку OpenVZ базируется на ядре Linux, в отличие от виртуальных машин (напр. VMware) или паравиртуализационных технологий (напр. Xen), в роли «гостевых» систем могут выступать только дистрибутивы GNU/Linux. Однако, виртуализация на уровне операционной системы в OpenVZ даёт лучшую производительность, масштабируемость, плотность размещения, динамическое управление ресурсами, а также лёгкость в администрировании, чем у альтернативных решений. Согласно сайту OpenVZ, накладные расходы на виртуализацию очень малы, и падение производительности составляет всего 1-3 %, по сравнению с обычными Linux-системами.
OpenVZ состоит из модифицированного ядра Linux и пользовательских утилит.
ШАГ1. Подготовка “материнской системы”.
Для нормальной работы OpenVZ требуется ядро с vz-патчами. В Debian такие ядра имеют суффикс -openvz и для архитектуры i386 собраны с поддержкой памяти более 4 гигабайт.
Добавляем в /etc/apt/sources.list репозиторий с OpenVZ:
echo "deb http://download.openvz.org/debian-systs etch openvz" >> /etc/apt/source.list
Далее:
wget -q http://download.openvz.org/debian-systs/dso_archiv_signing_key.asc -O- | apt-key add - apt-get update
Устанавливаем ядро с поддержкой OpenVZ:
aptitude install linux-image-openvz-686
Все дальнейшие работы будем вести перезагрузившись в это ядро.
Устанавливаем дополнительное ПО, необходимое для работы с VZ:
aptitude install vzctl vzquota vzprocps vzdump
ШАГ2. Подготовка гостевой системы.
Для этого надо скачать отсюда образ интересующей системы и положить шаблон в каталог /var/lib/vz/template/cache. Чтобы создать гостевую систему необходимо выдать команду:
vzctl create 10 --ostemplate имя_шаблона --private /home/ovz/guestos/test
где, 10 – идентификатор создаваемой системы, имя_шаблона – имя скачанного шаблона, /home/ovz/guestos/test – путь куда будет установлена гостевая система (распакован шаблон). В случае создания системы из шаблона файл 10.conf в /etc/vz/conf будет создан автоматически.
Дальнейшее конфигурирование системы мы будем вести при помощи утилиты vzctl. Для того, чтобы изменить какой-то из параметров гостя, используется команда:
vzctl set <идентификатор гостя> --параметр значение --параметр значение --save
Настроим некоторые параметры, необходимые для запуска гостевой ОС.
1) Включаем автоматический запуск созданного VPS на стадии загрузки системы:
vzctl set 10 --onboot yes --save
2) Открываем man vzctl и идем по параметрам сверху вниз, попутно собирая одну большую конфигурационную команду:
vzctl set 10 \ --ipadd 1.2.3.4 \ --nameserver 4.3.2.1 \ --numproc 100 \ --cpus 1 \ --cpulimit 100% \ --save
Определяем объем памяти, который будет выделен контейнеру (например, 256Mb гарантированно и 512Mb максимально):
vzctl set 10 --vmguarpages $((256*256)) --privvmpages $((256*512)) --save
- –vmguarpages – гарантированный объем памяти * 256
- –privvmpages – максимальный объем памяти * 256
Более подробно некоторые параметры будут рассмотрены ниже, а пока, выполнив вышеприведенную команду, мы можем уже запустить гостя:
vzctl start 10
Для того чтобы гостя остановить:
vzctl stop 10
Зайти в гостевую ОС:
vzctl enter 10
Изнутри гостя всегда можно посмотреть, какие ограничения для него установлены:
cat /proc/user_beancounters
Перезапускать гостя после изменения каких-то из его параметров чаще всего необязательно, например, параметры, связанные с ограничениями памяти, дисковой квоты, количеством процессов и сетевые параметры этого не требуют. Если перезагрузка гостя всё-таки понадобилась, то сделать это можно с использованием той же утилиты:
vzctl restart 10
Параметры, применяемые для гостевой ОС:
Параметр | vps.conf | Значение | Описание |
Общие и сетевые параметры | |||
–name | NAME | слово | Задает имя гостевой системе, которое можно использовать вместо числового идентификатора |
–private | VE_PRIVATE | путь | Путь к расположению гостя в файловой системе |
–root | VE_ROOT | путь | Путь отображения файловой системы гостя при старте |
–onboot | ONBOOT | yes/no | Запускать ли гостя при загрузке системы |
–ipadd | IP_ADDRESS | IP | Добавить IP адрес к гостевой системе |
–ipdel | IP_ADDRESS | IP | Удалить IP адрес из гостевой системы |
–hostname | HOSTNAME | имя | Установить hostname гостевой системе |
–nameserver | NAMESERVER | IP | Установить используемый DNS-сервер гостевой системе |
–searchdomain | SEARCHDOMAIN | домен | Установить домен поиска гостевой системе |
–netif_add | интерфейс,параметры | установить сетевой интерфейс в гостевой системе | |
–netif_del | интерфейс | удалить сетевой интерфейс из гостевой системы | |
–netdev_add | интерфейс | передать гостевой системе интерфейс из хостовой системы | |
–netdev_del | интерфейс | удалить из гостевой системы интерфейс | |
Лимиты | |||
–numproc | NUMPROC | число | Число одновременно запущенных процессов |
–numtcpsock | NUMTCPSOCK | число | Число TCP-сокетов |
–numothersock | NUMOTHERSOCK | число | Число не-TCP-сокетов |
–privvmpages | PRIVVMPAGES | страниц | Количество 4096-байтных блоков памяти выделенных гостю |
–numfile | NUMFILE | число | Количество одновременно открытых файлов |
–numflock | NUMFLOCK | число | Количество возможных файловых блокировок |
–cpus | CPUS | число | Количество CPU делегируемых гостю |
–cpulimit | CPULIMIT | число% | Максимальная загрузка CPU гостем |
–diskspace | DISKSPACE | число[GMK] | Объем дискового пространства, выделенный гостю |
Подробное описание конфигурируемых параметров можно найти здесь.
И в заключении нужно обязательно упомянуть, что для работы сети в гостевых ОС, нужно добавить следующие параметры в файл /etc/sysctl.conf на материнской системе:
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter = 1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
И применить:
sysctl -p
Ну вот и все. Теперь можно прокачивать систему:)