Эта страница была перенесена на altlinux.org. Текст на freesource.info заморожен.
VServer
Эту страничку давно следовало нарисовать...
Что такое vserver? Это комплект для лёгкой виртуализации — патч для Linux и набор утилит, который позволяет выполнять различные т.н. контексты под одним ядром. Вледствие отсутствия эмуляции железа в каком-либо виде накладные расходы существенно ниже, чем в случае использования VMware, Xen, qemu или Bochs. Пробегала информация об оверхеде порядка считанных процентов для хостинговых задач на дуальном Xeon.
Существует две ветки — 1.x для Linux 2.4 (включена в ALT Linux 2.4 Master — ядро vs-smp) и 2.x для Linux 2.6 (доступна в Sisyphus и 3.0/contrib). Возможности второй существенно шире, особенно в части управления и лимитирования. Первая ближе к chroot или jail, но обеспечивает также «невидимость» чужих процессов.
Лично мне vserver нравится тем, что система получается более структурированной и менее привязанной к конкретной железке — если «основная» система минимальна и не несёт сервисов (кроме крайне ограниченного удалённого доступа и, скажем, базового мониторинга), то собственно сервисы в vserver'ах можно спокойно останавливать по расписанию, архивировать целиком или как заблагорассудится, переносить на другие хосты или менять с вводимыми в эксплуатацию. Получается очень удобно для плавного обновления, миграции сервисов и других нервосберегающих и общеполезных вещей. Опять же у меня появилась привычка делать «серую» сеть по vserver'ам, и если заранее спланировать адресное пространство, то при необходимости наборы vserver'ов на разных хостах должно быть можно объединить при помощи VPN или простого IPIP.
А вот мнение ldv@
ALM2.4
На базе Master 2.4 можно легко и удобно сгородить сколько надо vserver'ов; доступен минимизированныйобраз опять же ALM2.4 и небольшой QUICKSTART (также на ftp.linux.kiev.ua, тут доступен и оптимизированный по конфигурации резолвера и apt для использования в пределах UA-IX экземпляр). Цитирую:
Возможна также сборка при помощи vserverator; увы, не пользовался.
Грабли
речь о 1.x/2.4
Если прописать HOSTNAME/DOMAINNAME в /etc/vservers/$host.conf, то при абсолютно правильно настроенном резолвере резолвинг может не работать...
Если в vserver запустить vsftpd из-под xinetd с _реальным_ IP в interface, то оно каким-то макаром сядет как раз на него, а не на тот, который указан в IPROOT конфигурации сервера. Если предполагать, что это дело надо ещё NAT'ить, то iptables как раз и перекроет то, что при остановленном файрволе работает само... IPROOT в 1.x липовый?
2.6.x (3.0+)
Тут товарисчи грозились поделиться экспириенсом по части vs26-smp.x86_64, но проблема с жёстким диском и острая нехватка времени перед поездом вкупе с лёгшим ftp.linux.kiev.ua не позволила этому непосредственно произойти... может, или те, кто уже использует VServer 2.x, расскажут, или я дозрею.
vs26/x86_64
Попробую по горячим следам описать развёртывание Sisyphus/x86_64 в качестве гостевой системы под таким же. Спасибо за хинты lakostis@, глядишь, долго бы ещё чесал в затылке.
Пояснения:
vendors.list в пакете на сейчас отсутствует (и при установке не берётся и не линукется системный)
в sources.list — ftp.altlinux.com Sisyphus i586, что при локальном зеркале и желании зарядить x86_64 не совсем то ;-)
<lakostis> + советую сразу при сборке --context <xid> указывать. [...] какое-нить число больше 128
сразу после build сделать start не получится — при отсутствии запущенных процессов vserver считается неактивным
enter теперь вроде как не делает start при остановленном контексте
Нвстройка сети
vserver может иметь столько IP сколько вам необходимо. Для этого в директории /etc/vserver/<vserver-name>/interfaces/ вы должны создать субдиректории для каждого IP который вы хотите использовать:
В этих субдиректориях должны располагаться файлы с опциями которые вм нужны. См. /usr/share/doc/util-vserver-<ver>/configuration.html
Обычно настройки создаются автоматически при создании vserver той командой которая приведена выше.
Можно указывать совсем другой IP. Тогда при старте vserver'а создается алиас с этим IP который вы можете использовать для доступа к серверу.
Сетевые интерфейсы
Неочевидность (следующая после того, что 127.0.0.1 в vserver «нечестные»):
FAQ
Q. Почему я не могу получить доступ по ssh в vserver и попадаю в хост-систему?
A. Скорее всего sshd слушает все адреса. Ограничьте его тем, на который вы обращаетесь.
Q. ssh ругается на Offending всякое, если пойти на повешенный (проброшенный) на левом порту sshd. Как бы убороть?
A. См. ssh_config(5) насчёт HostKeyAlias — вносите в /.ssh/config в нужном количестве записи вида
и ходите (ssh, scp, rsync...) по shortname.
TODO
описать известные проблемы с crond, syslogd и sshd; в принципе, оно довольно быстро гуглится по архивам рассылок с добавлением vserver и/или кусков логов
ссылки на OpenVZ как более доработанную технологию в той же весовой категории