Вход:  Пароль:  
FreeSource: AltLinux/Dokumentacija/OpenVZ ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия AltLinux/Dokumentacija/OpenVZ за 2007-12-01 18:44:20..

Настройка OpenVZ на текущем Сизифе

Open VZ — технология «лёгкой» виртуализации, позволяющая на одной аппаратной системе держать несколько различных корней Linux с одним ядром (поддерживающим ovz и содержащимся, как правило, на небольшом корне с ограниченным доступом по ssh и без других сервисов). В отличие от «тяжёлых» вариантов вроде Xen, Qemu или VMware, накладные расходы обычно составляют единицы процентов.


NB: текущий сизиф весной 2007 плавно превращается в выпуск 4.0 со штатной поддержкой ovz.


Оглавление документа

Сначала конечно необходимо прочитать документацию, для понимания что это такое и для чего можно использовать и как. PDF содержит более сотни страниц, но десяток из них обязательно следует прочитать для экономии времени — в начале про терминологию, около с.88 про Action Scripts и bind mounts, и в конце — секцию Troubleshooting. Также доступен перевод.


В настоящий момент в репозитарии есть практически все компоненты для полноценной работы. Но на данный момент openvz не поддерживает систему управления пакетами apt, поэтому мы не можем воспользоваться утилитой vzpkg.

Установка


При этом установятся ядро с поддержкой openvz и необходимые утилиты, поэтому необходимо перегрузить компьютер и при загрузке выбрать ядро -ovz.

Планирование ресурсов

Если предполагается более-менее равномерное разделение HN между несколькими VE (или примерно можно означить ограничения как «1/10», «1/4»), то рекомендуется использовать vzsplit для создания заготовок конфигурации (не самих серверов! — получается меташаблон такой).


Заготовки окажутся в /etc/vz/conf/ve-ИМЯ.conf-sample и пригодны для использования в vzctl create $VEID --config ИМЯ. Имейте в виду, что штатный vps.basic весьма ограничен, а light — скорее непригоден к использованию.

Создание шаблона

(Адаптировано для spt-0.6.0-alt7)
Необходимо создать шаблон, который будет использоваться для создания виртуального сервера. На сайте находится много шаблонов. Для ALT шаблоны см. в contrib, altlinux-2.4.tar.gz и altlinux-3.0.tar.gz. Шаблон представляет собой запакованый в архив корневой раздел. Поэтому для создания шаблона можно использовать spt или hasher. Я воспользовался spt?, так как он содержит уже готовый профиль для ovz.
Устанавливаем spt:

На этом этапе необходимо получить работоспособный hasher. И лучший способ — это воспользоваться инструкцией: /usr/share/doc/hasher-1.*/QUICKSTART
Для правильной работы vzctl необходимо, чтобы в /dev находились следующие устройства: /dev/ptmx, /dev/tty и был смонтирован /dev/pts/. Для их создания требуется наличие параметра allow_ttydev=YES в /etc/hasher-priv/* (см. hasher-priv.conf(8), http://lists.altlinux.org/pipermail/devel/2006-July/034431.html)
Затем необходимо создать профиль, по которому spt будет строить шаблон. Возможно использовать готовый профиль. Готовые профили находятся в пакетах spt-profile-* или c самим spt в директории /usr/share/spt/profile-*. Одну из этих директорий можно указать при создании шаблона с опцией -p при запуске spt.
Далее создаем рабочий каталог:

Если не подходя готовые профили, то тогда нужно создать свой. Для этого копируем готовый профиль в ~/ovz/profile.
Можно поменять имя создаваемого образа в ~/ovz/profile/config. Заменим значение в OUT на altlinux-4.0.tar.gz .
Так же можно дополнить список пакетов — ~/ovz/profile/ovz/packages — например, добавить openssh-server и vim-console. В ovz-контейнер нет необходимости ставить пакет interactivesystem.
Минимальный список пакетов:

Или вместо попакетного списка можно указать один виртуальный пакет из:

Теперь необходимо создать сам образ:


Внимание: создание образов на i586-машине для архитектуры x86_64 не работает.


Если все прошло хорошо, то в ~/ovz/ будет находится файл altlinux-4.0.tar.gz. Его необходимо скопировать в /var/lib/vz/template/cache. Не забудьте поменять владельца и группу.

Создание виртуального сервера

Внимание: ещё один момент, где лучше заранее почитать документацию, чем потом сожалеть: в PDF рекомендуется выдавать VEID'ы сообразно IP (например, для xxx.xxx.7.123 — 7123 или для 10.0.1.254 — #1254##). Это более удобно с точки зрения администрирования как мнемонически, так и при необходимости переноса контейнеров между физическими хостами — если везде есть VEID 101, перенос будет сильно затруднён (на forum.openvz.org в соответствующей теме встретился вариант решения — свернуть одноразовый template cache из переносимого VE (например с помощью vzdump) и создать на новом месте из этого темплейта; штатный способ изменения VEID мне на сейчас неизвестен). При создании из такого темплейта можно указать использовать старый конфиг и все работает хорошо.


Теперь мы можем создать сервер из шаблона.

Имя, которое Вы дали вашему шаблону (то что следует за 


ostemplate), имеет важное значение. При создании VE это имя заносится в конфигурационный файл в переменную OSTEMPLATE. По этой переменной vzctl определяет какие скрипты использовать (разным OS нужны разные скрипты). Если вы используете ALT, то оно обязательно должно начинаться с altlinux (определяет нюансы настройки). Дальше разбор имени идет по такому алгоритму:

Именование виртуального сервера

Начиная с версии 3.0.11, vzctl поддерживает именование виртуальных серверов. Это удобно, когда у вас их много, ибо помнить, что proxy это 103 — не очень удобно.

Теперь в командах vzctl вместо 101 можно использовать vps101.

Конфигурация виртуального сервера

Конфигурация включает такие пункты:

1. Установка параметров запуска

2. Установка параметров сети

Общие настройки

Установка имени сервера:

Установка nameserver:

Установка searchdomain:

Сетевые соединения

В Open VZ в VE возможно настраивать 3 типа соединений:
1. venet
2. veth
3. Просто «пробросить» внутрь физический ethernet интерфейс. См. параметры netdev_add name/netdev_del name для vzctl.
Различия между venet и veth описаны тут. Кратко можно сказать, что чаще всего вам потребуется venet. Но в некоторых случаях, для запуска таких приложений внутри VE, которые требуют для своей работы: MAC address, Broadcasts inside VE, Traffic sniffing, (например dhcpd, samba) или вам нужен IPv6 – необходимо создавать veth. Также veth можно использовать в некоторых сложных случаях. Во всех остальных случаях (например, сложный роутинг или несколько ethx устройств с разными маршрутами/коммутацией, или когда нужно именно физическое ethernet устройство внутри VE), необходимо использовать netdev.

venet
Настройка venet внутри VE полностью осуществляется средствами vzctl. При старте VE конфигурация venet устройств переписывается на основании конфига для VE.

При этом внутри в VE создастся 2 интерфейса:

Маршрут при этом выглядеть должен так:
3.0.10: Wed Jun 7 2006 <igor@openvz.org>

# modprobe vzethdev# vzctl set 101 --veth_add veth101.0,00:12:34:56:78:9A,eth0,00:12:34:56:78:9B --save/sbin/ifconfig eth0 0
/sbin/ip addr add 10.10.186.1 dev eth0
/sbin/ip route add default dev eth0# vzctl start 101$ /sbin/ip a
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever

3: venet0: <BROADCAST,POINTOPOINT,NOARP,UP> mtu 1500 qdisc noqueue

link/void
inet 127.0.0.1/32 scope host venet0

5: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue

link/ether 00:12:34:56:78:9b brd ff:ff:ff:ff:ff:ff
inet 10.10.186.1/32 scope global eth0$ /sbin/ip r

191.255.255.0/24 dev venet0 scope host
default dev eth0 scope link
default via 191.255.255.1 dev venet0# echo 1 > /proc/sys/net/ipv4/conf/veth101.0/forwarding
# echo 1 > /proc/sys/net/ipv4/conf/veth101.0/proxy_arpip addr add 10.10.186.1 dev veth101.0 ip addr add 0 dev veth101.0# ip route add 10.10.186.1 dev veth101.0# vzctl set 101 --userpasswd root:test
Saved parameters for VPS 101
# vzctl start 101
Starting VPS ...
VPS is mounted
Adding IP address(es): 10.0.186.101
Hostname for VPS 101 set: test.my.org
VPS start in progress...
# vzctl exec 101 service sshd status
sshd is stopped
# vzctl exec 101 service sshd start
Starting sshd: [ OK ]
# vzctl exec 101 service sshd status
sshd is running

# vzctl enter 101

# vzctl enter 101
enter into VE 101 failed
Unable to open pty: No such file or directory

devpts /dev/pts devpts gid=5,mode=620 0 0

# vzctl destroy 101

# vzctl set 101 --capability sys_time:on --save

vzctl set 101 --devnodes ttyS0:rw --save
(email)
Date: Wed, 9 Aug 2006 02:07:06 +0400
From: “Dmitry V. Levin” <ldv@>
To: ALT Linux sysadmin discuss <sysadmins@>
Subject: Re: [Sysadmins] vserver -> openvz migrate?

> Скажите пожалуйста, если имеются работающие парочка VServers, один -
> текущий Сизиф 32-битный чтобы пользоваться в 64-битном Сизифе смотреть
> флэш и ещё что не нашёл 64-битное. Второй – Федора 5?. Мигрировать на
> Open VZ – что для этого надо будет делать? Или проще заново их
> сгенерировать?

Мигрировать контейнеры с linux-vserver на openvz достаточно легко.
Я недавно делал такую миграцию для контейнеров, сделанных на основе M24.
Могу отметить 4 момента:
1. vserver'ная конфигурация контейнеров беднее, чем openvz'шная; имеет
смысл сперва установить достаточно большие лимиты, потом на основе опыта
эксплуатации уменьшить их до рабочего уровня.
2. Имя файла template cache должно соответствовать имени системы, на основе
которой сделан контейнер. Например, если контейнер сделан на основе
чего-то ALT'ового с net-scripts, то имя должно начинаться с “altlinux-2.4-»,
если на основе ALT'ового с etcnet, то с “altlinux-», для FC – с
“fedora-core-».
3. С удивлением обнаружил, что внутри vserver'ных контейнеров выключена
служба network. Не забудьте выполнить “chkconfig network on”.
4. В пакете vzctl-3.0.10-alt5 я добавил дополнительные правила
корректировки в /etc/vz/dists/scripts/postcreate.sh, которые выключают
запуск mingetty в inittab'е и лог в /dev/tty12 в syslog.conf.
Если вы захотите обойтись без vzctl create, то надо будет каким-то образом
выполнить этот /etc/vz/dists/scripts/postcreate.sh внутри контейнеров.
(email)
Date: Wed, 9 Aug 2006 13:10:39 +0400 (MSD)
From: “Konstantin A. Lepikhov” <lakostis@>
To: sysadmins@
Subject: Re: [Sysadmins] [wiki] Re: vserver -> openvz migrate?

>> Мигрировать контейнеры с linux-vserver на openvz достаточно легко.

агасчас. Это все легко, если используется старый vserver/vserver-utils,
не 2.0.x. В новых vserver введен внешний package management, поэтому
сначала придется в vserver поставить apt/rpm, потом скопировать базы
rpm/apt из /vservers/.pkg/ внутрь vserver (кажется, там были грабли, т.к.
vrpm использует db3 вместо db4). И лишь только когда это все сделано,
можно создавать cache для ovz.

Или наоборот, создать template cache, создать тз него ovz-контейнер,
скопировать туда базу данных rpm и поставить туда apt/rpm.

ldv

# for i in `vzlist -a -H -o veid`; do echo «VPS $i»; vzctl exec $i <command>; done

rm -f /etc/mtab && ln -s /proc/mounts /etc/mtab

watch grep -v ' 0$' /proc/user_beancounters
vi /etc/rpm/macros
apt-get -y reinstall `rpm -qf --queryformat '%{NAME}\n' /usr/share/locale/ru/LC_MESSAGES/* | sort -u`
%%

TODO

Ссылки


Страницы, ссылающиеся на данную: ALTLinux/Dokumentacija/1C
AltLinux/Dokumentacija/OpenVZ
AltLinux/Dokumentacija/OpenVZ/Sharedhosting
AltLinux/Features
Altlinux/VServer
CyrilMargorin
ТимурБатыршин/СкриптыSPT


 
Файлов нет. [Показать файлы/форму]
Много комментариев (2). [Показать комментарии/форму]