Корень базовой системой — это установленную версию ALTLinux Server 4.0 с ядром 2.6.18-ovz-smp. Как было сказано раньше, ip-адрес этой системы 192.168.15.1/24, имя хоста — root, домен — mo.org.ru.
Для нормальной работы samba-сервера в ovz-контейнере, необходимо использовать veth для сетевого интерфейса этого контейнера. Дабы не создавать огород из veth и venet интерфейсов, я использовал и для остальных контейнеров veth. Для нормального взаимодействия междуveth-интерфейсами было произведено их объединение в один bridge-интерфейс.
Для каждого контейнера (сервера) необходимо создавать свои ovz-шаблоны на пакетной базе branch'а 4.0 с использованием технологии spt. Более подробно о технологии Openvz и создании ovz-шаблонов написано в http://www.freesource.info/wiki/AltLinux/Dokumentacija/OpenVZ.
Установка не должна вызвать каких-либо затруднений. Два ключевых момент на которые стоит обратить внимание: создание разделов, задание сетевых настроек.
Таблица разделов для ALTLinux Server 4.0, которые были созданы на сервере, выглядит следующим образом
Disk /dev/hda: 80.0 GB, 80026361856 bytes
/dev/hda1 | 2.0G | – | – | – | swap | – | – |
/dev/hda2 | 487M | 137M | 325M | 30% | / | ext3 | (rw) |
/dev/hda6 | 29G | 173M | 28G | 1% | /home | ext3 | (rw,nosuid) |
/dev/hda3 | 2.0G | 139M | 1.7G | 8% | /usr | ext3 | (rw,nodev,noatime) |
/dev/hda8 | 20G | 18G | 835M | 96% | /usr/repo | ext3 | (rw,noexec,nosuid,nodev) |
/dev/hda5 | 2.0G | 80M | 1.8G | 5% | /var | ext3 | (rw,nosuid) |
/dev/hda7 | 3.0G | 33M | 2.9G | 2% | /var/cache/squid | reiserfs | (rw,noexec,nosuid,nodev,noatime) |
/dev/hda9 | 17G | 173M | 16G | 2% | /var/lib/vz | ext3 | (rw) |
Выбор ext3 как файловой системы для большинства разделов на сервере обусловлен в основном возможными частыми отключения электроэнергии на точке. Хотя для раздела /var/lib/vz это обусловленно еще и особенностями работы ovz с квотами.
Более подробно об особенностях использования различных файловых систем можно узнать из следующих источников
Следующий шаг — перенос branch 4.0 с внешнего носителя на жесткий диск сервера. Репозитарий используется для создания шаблонов и установки дополнительных пакетов на linux-машины в сети.
В моем случаи пакетная база была на внешнем usb-диске /dev/sda1. Перенос данных был осуществленн следующим образом
После чего были отключены все имеющиеся репозитарии. Список подключенных репозитариев находятся в файлах /etc/apt/sources.list.d/* и /etc/apt/sources.list
Отключение выполнено следующим образом
После чего добавляем новый репозитарий в /etc/apt/sources.list, мы его скопировали в /usr/repo/branch
На этом подключение репозитариев для root-системы было произведено.
Bridge — это технология объединения сетевых сегментов на 2 уровне эталонной модели ISO/OSI. Впервые была реализована в ядре 2.2, впоследствии переписана Lennert Buytenhek и включена в ветки 2.4 и 2.6. Проект располагается по адресу http://linux-net.osdl.org/index.php/Bridge. В дистрибутивах ALTLinux представлен пакетом bridge-utils, который после установки сервера необходимо дополнительно установить командой apt-get install bridge-utils.
Посмотрим какие сетевые устройства у нас есть в системе etcnet
Создадим директорию для устройства vzbr0.
vzbr0 — имя произвольное, можно задать любую последовательность символов, удовлетворяющих правилу именования устройств в etcnet, к примеру bridge0 или vzbridge0 или mybr1 и так далее
Результат
В директории /etc/net/ifaces/vzbr0 создаем три файла.
В файле brctl задаются опции использования протокола stp
В файле ipv4address задается IP-адрес интерфейса, этот адрес мы забираем у eth0
В /etc/net/ifaces/eth0/ipv4address необходимо установить следующее значение
В файле options для vzbr0 в поле HOST должны быть перечислены все интерфейсы, которые
входят в наш мост, пока что это только eth0. В дальнейшем мы добавим туда veth101, veth102, veth103 и так далее для каждого контейнера и выглядеть это будет следующим образом.
Можно теперь проверить.
Чтобы увидеть интерфейсы которые в данный момент используются в работе моста, необходимо выполнить команду
Попробовать новый vzctl с поддержкой bridge, или описать как это делать на текущей версии
Шлюзом по умолчанию для нашего сервера является машина с IP-адресом 192.168.10.1. Эта машина находится в отличной от 192.168.15.0/24 подсети. По этому необходимо назначить ip-alias на наш интерфейс vzbr0. Для этого в /etc/net/ifaces/vzbr0/ipv4address мы добавляем следующую строку.
Так же необходимо задать для нашей машины шлюз по умолчанию.
В /etc/net/ifaces/vzbr0/ipv4route вписываем следующую строку
После чего можно проверить доступность узла 194.67.57.26
Следующим шагом будет — настройка системы для использования технологии spt. Я перечислю минимальный набор команд, которые необходимо выполнить. За детальными разъяснениями лучше обратиться к следующей статье: http://www.freesource.info/wiki/AltLinux/Dokumentacija/OpenVZ
Предварительно необходимо поставить следующие пакеты
Все шаблоны будут созданы пользователем username, который был добавлен на этапе установки сервера.
Добавляем его в hasher-пользователи
Разрешаем для этого пользователя создавать устройства внутри шаблона
После этого необходимо завершить сеанс работы текущего пользователя username и произвести вход в систему, чтобы обновить информацию о принадлежности этого пользователя к различным группам.
Возможен обходной маневр в виде выполнения следующей команды в консоле и дальнейшие действия производить в этой же консоле
После чего в выводе команды id username должны появиться группы username_a, username_b, hasman
Необходимо создать шаблон по умолчанию. Мы будем копировать его, добавлять необходимые пакеты, изменять имя и на основе этих изменений создавать уже конечные шаблоны.
Итак от пользователя username выполняем следующие команды
Содержимое файла /ovz-server-default/profile/config
Содержимое файла /ovz-server-default/profile/ovz/config
Содержимое файла /ovz-server-default/profile/ovz/packages — минимальный набор пакетов, общих для всех контейнеров.
Следующие файлы /ovz-server-default/profile/ovz/hooks.d/{02root,03services,04inittab,05mtab,06syslog} необходимо скопировать.
Файл /ovz-server-default/profile/ovz/hooks.d/07resolv указывает dns-сервер для нашего контейнера (он нам уже известен).
Файл /ovz-server-default/profile/ovz/hooks.d/08sources.list вносит данные в шаблон о подключаемых репозитариях.
О репозитарии fds речь пойдет в Настройка fds-репозитария
Для всех hooks.d-файлов необходимо дать права на выполнение
Последний штрих создание конфигурационного файла для контейнеров ovz.
Все ресурсы машины (память, процессорное время, жесткий диск и так далее) мы разделяем на 10 равных частей.
После этой процедуры у нас должен появиться файл /etc/vz/conf/ve-server-4.0.conf-sample, в моем случаи со следующим содержимым
Обратите внимание на следующие параметры: DISKSPACE — это размер раздела под каждый контейнер, оно должно быть не меньше 300 Мбайт; PHYSPAGES — из-за маленького его значения ( <= 50000 ) возможны проблемы при запуске различных сервисов (fedora-ds-сервер).