|xed| — OpenVZ ч2 практика
Работаем с OPENVZ(debian way):
Для начала нам надо установить Ядро с поддержкой VZ, и утилиты для управлениями контейнерами,
поэтому подключаем репозитарий:
Cтавим:
не забываем перегрузится и убеждаемся что загрузилось ядро с поддержкой VZ
Делаем симлинк (для совместимости и удобства):
Cтавим шаблон:
или же качаем руками, шаблон от сюда http://download.openvz.org/template/precreated/ в /vz/template/cache (шаблоны в tar-архиве распаковывать его не надо!),тут же можно накачать шаблонов с другими дистрибутивами (fedora, centos, suse, ubuntu).
к примеру так:
теперь приступаем к созданию VE (контейнера)
vzctl - утилита для управления.
create - команда создать.
101 - уникальный номер контейнера (он может быть от 100 до 65*** советую на разных машинах назначать разные диапазоны , если вы будите делать миграцию с одной машины на другую, а номера совпадут то будет очень плохо =)те на одной машине я создаю контейнеры и уникальные номера назначаю от 100 до 199, на другой машине от 200 до 299 итд).
--ostemplate указываем какой шаблон.
--config vps.basic - указываем файл с настройками (ограничениями).
Делаем чтоб контейнер включался автоматом при запуске.
set команда установить.
Назначаем ip, hostname, dns на venet
очень важен параметр --save не забывайте про него, а то не сохранятся ваши настройки,и после перезагрузки компьютера, контейнер не включится или будет без ip, hostname, dns итд
на этом настройка сети не заканчивается,на venet вы не сможете поднять к примеру DHCP-сервер,для этого нужен veth...но об этом позже.
Смотрим сколько у нас ЗАПУЩЕННЫХ контейнеров:
пусто ?? не удивляйтесь...еще не чего не запущено.
смотрим сколько у нас ВСЕГО контейнеров
Запускаем контейнер:
start - команда запуска.
Теперь нам надо настроить контейнер, например - установить пароль:
exec - команда выполнения в контейнере (те команда passwd выполнится в контейнере а вывод вернет в HN)
не всегда так удобно управлять контейнером.
давайте зайдем в него =)
и вы попадаете в контейнер.
обратите внимание что вы рут в контейнере.
ну и к примеру попробуем установить apache2.
я думаю что у вас посыпятся какие нибудь ошибки... например: что не достаточно места,или апач не стартует,или вообще что то под висло.
но не волнуйтесь =) контейнеру не хватает памяти, или количество разрешенных процессов.
если у вас чего-то не хватает то вы увидите в столбике failcnt число больше нуля.
добавим количество памяти контейнеру
155299:200000 - назначаем барьер и лимит.
все настройки контейнера сохраняются в /etc/vz/conf/101.conf
так что туда тоже можно глянуть.
что то может не работать если не хватает места на диске
Дисковое пространство смотрится отдельно в контейнере выполняем.
к примеру добавим место контейнеру.
чтобы руками постоянно не назначать кол-во разрешеных процессов, сокетов, памяти все можно указать при создании контенера в конфигурационном файле
--config vps.basic
шаблоны конфигураций находится там же где и конфигурация контейнеров в /etc/vz/conf/ тока называется приблизительно vps.basic.conf-sample.
если нужно пробросить какую-нибудь папку из HN в контейнер,тут нам поможет mount -n --bind /точка /точка
если нужно при запуске контейнера, автоматический монтировать в контейнер папки то нужно создать скрипт /etc/vz /101.mount (этот скрип для контейнера 101)
Мой Скрипт который упрощает мне работу.
очень долго думал выкладывать ли эту статью...сомневалсо =\
поправляйте Ашибке, критикуйте, ругайте,задавайте вопросы где не понятно итд!
далее пару строк о vzdump и немного о webvz
Для начала нам надо установить Ядро с поддержкой VZ, и утилиты для управлениями контейнерами,
поэтому подключаем репозитарий:
1 2 3 |
echo -e "\ndeb http://download.openvz.org/debian-systs lenny openvz" >> /etc/apt/sources.list |
Cтавим:
apt-get install linux-image-openvz-686 vzctl vzquota
не забываем перегрузится и убеждаемся что загрузилось ядро с поддержкой VZ
1 2 3 |
uname -a |
Делаем симлинк (для совместимости и удобства):
ln -s /var/lib/vz /vz
Cтавим шаблон:
apt-get install vzctl-ostmpl-debian-5.0-i386-minimal
или же качаем руками, шаблон от сюда http://download.openvz.org/template/precreated/ в /vz/template/cache (шаблоны в tar-архиве распаковывать его не надо!),тут же можно накачать шаблонов с другими дистрибутивами (fedora, centos, suse, ubuntu).
к примеру так:
1 2 |
cd /vz/template/cache |
теперь приступаем к созданию VE (контейнера)
vzctl create 101 --ostemplate debian-5.0-i386-minimal --config vps.basic
vzctl - утилита для управления.
create - команда создать.
101 - уникальный номер контейнера (он может быть от 100 до 65*** советую на разных машинах назначать разные диапазоны , если вы будите делать миграцию с одной машины на другую, а номера совпадут то будет очень плохо =)те на одной машине я создаю контейнеры и уникальные номера назначаю от 100 до 199, на другой машине от 200 до 299 итд).
--ostemplate указываем какой шаблон.
--config vps.basic - указываем файл с настройками (ограничениями).
Делаем чтоб контейнер включался автоматом при запуске.
vzctl set 101 --onboot yes --save
set команда установить.
Назначаем ip, hostname, dns на venet
vzctl set 101 --hostname vps1.example.ru --ipadd 192.168.1.2 --nameserver 81.x.x.1 --nameserver 81.x.x.2 --save
очень важен параметр --save не забывайте про него, а то не сохранятся ваши настройки,и после перезагрузки компьютера, контейнер не включится или будет без ip, hostname, dns итд
на этом настройка сети не заканчивается,на venet вы не сможете поднять к примеру DHCP-сервер,для этого нужен veth...но об этом позже.
Смотрим сколько у нас ЗАПУЩЕННЫХ контейнеров:
vzlist
пусто ?? не удивляйтесь...еще не чего не запущено.
смотрим сколько у нас ВСЕГО контейнеров
1 2 3 4 |
vzlist -a |
Запускаем контейнер:
vzctl start 101
start - команда запуска.
Теперь нам надо настроить контейнер, например - установить пароль:
vzctl exec 101 passwd
exec - команда выполнения в контейнере (те команда passwd выполнится в контейнере а вывод вернет в HN)
не всегда так удобно управлять контейнером.
давайте зайдем в него =)
vzctl enter 101
и вы попадаете в контейнер.
обратите внимание что вы рут в контейнере.
ну и к примеру попробуем установить apache2.
aptitude install apache2
я думаю что у вас посыпятся какие нибудь ошибки... например: что не достаточно места,или апач не стартует,или вообще что то под висло.
но не волнуйтесь =) контейнеру не хватает памяти, или количество разрешенных процессов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
cat /proc/user_beancounters |
если у вас чего-то не хватает то вы увидите в столбике failcnt число больше нуля.
добавим количество памяти контейнеру
vzctl set 101 --privvmpages 155299:200000 --save
155299:200000 - назначаем барьер и лимит.
все настройки контейнера сохраняются в /etc/vz/conf/101.conf
так что туда тоже можно глянуть.
что то может не работать если не хватает места на диске
Дисковое пространство смотрится отдельно в контейнере выполняем.
1 2 3 4 |
df -h |
к примеру добавим место контейнеру.
1 2 |
vzctl set 101 --diskspace 10g --save |
чтобы руками постоянно не назначать кол-во разрешеных процессов, сокетов, памяти все можно указать при создании контенера в конфигурационном файле
--config vps.basic
шаблоны конфигураций находится там же где и конфигурация контейнеров в /etc/vz/conf/ тока называется приблизительно vps.basic.conf-sample.
если нужно пробросить какую-нибудь папку из HN в контейнер,тут нам поможет mount -n --bind /точка /точка
если нужно при запуске контейнера, автоматический монтировать в контейнер папки то нужно создать скрипт /etc/vz /101.mount (этот скрип для контейнера 101)
1 2 3 |
echo "#!/bin/bash |
Мой Скрипт который упрощает мне работу.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
очень долго думал выкладывать ли эту статью...сомневалсо =\
поправляйте Ашибке, критикуйте, ругайте,задавайте вопросы где не понятно итд!
далее пару строк о vzdump и немного о webvz