Виртуализация · 5 min read · Jan 18, 2026
OpenVZ На Debian Etch Для Вебсерверов
OpenVZ На Debian Etch Для Вебсерверов
Введение
Виртуализация — это здорово! Хорошая практика для серверов, так как она делает вещи более безопасными, масштабируемыми, заменяемыми и воспроизводимыми. Все это за счет небольшой добавленной сложности.
Этот гид написан во время установки машины Supermicro с 2 двухъядерными оптеронами (64-бит), 2 идентичными дисками (для RAID) и большим объемом памяти. Почему OpenVZ, а не XEN или недавний модуль ядра KVM? Что ж, XEN не очень стабилен для 64-битных архитектур (пока), и он имеет довольно много накладных расходов (каждая ВМ запускает свое собственное ядро) из-за своей сложности. KVM очень прост, но ограничивает вас запуском ядра как одного процесса, так что ВМ не может воспользоваться многопроцессорными системами.
С OpenVZ запускается только одно ядро для хост-окружения и всех ВМ, это делает настройку легкой и хорошим кандидатом для вебсерверов.
Установка хостинговой системы
Сначала установите Etch (убедитесь, что вы настроили RAID с помощью установщика).
Вам может понадобиться избавиться от некоторых загромождающих директорий и ссылок в вашем корне (и, как и в остальной части руководства, от имени root):
cd /
rm cdrom
unlink vmlinuz.old
unlink vmlinuz
rmdir selinux/
rmdir initrd
unlink initrd.img.old
rmdir opt
rmdir srv/Теперь мы хотим скомпилировать пользовательское ядро с поддержкой OpenVZ, мы как бы следовали этому руководству на сайте OpenVZ. Краткий обзор того, что мы сделали:
apt-get update
apt-get install linux-source-2.6.18 kernel-patch-openvz vzctl vzquota # эта команда может потребовать вашего подтверждения
cd /usr/src
tar xjvf linux-source-2.6.18.tar.bz2
cd linux-source-2.6.18
cp /boot/config-2.6.18-3-amd64 .config
aptitude install kernel-package # вам это нужно в следующей строке
make-kpkg --append_to_version=-1-openvz --added_patches=openvz --revision=1 kernel_image
cd ..
dpkg -i linux-image-2.6.18-1-openvz_1_amd64.deb
update-initramfs -c -k 2.6.18-1-openvz
update-grubЗатем (после того как вы, возможно, немного изменили /boot/grub/menu.lst, чтобы по умолчанию использовать правильное ядро) вы можете перезагрузить.
После перезагрузки, используя ядро с поддержкой OpenVZ, проверьте, все ли работает:
ifconfig # должен показать ваши интерфейсы и дополнительный интерфейс "venet"
cat /proc/vz/* # должен показать что-то (пока не очень важно, что именно)
cat /proc/cpuinfo # проверьте, что ваши процессоры работают
cat /proc/mdstat # RAID работает
lsmod # должен показать некоторые модули, начинающиеся с букв "vz"Создание Виртуальных Частных Серверов (VPS)
Теперь мы настраиваем, запускаем VPS из стандартного минимального шаблона (вы можете найти его в /var/lib/vz/template/cache):
vzctl create 101 --ostemplate debian-3.1-amd64-minimal --config vps.basic
vzctl set 101 --onboot yes --save
vzctl set 101 --hostname test101.mytest.org --save
vzctl set 101 --ipadd 10.0.0.101 --save
vzctl set 101 --numothersock 120 --save
vzctl set 101 --nameserver 10.0.0.2 --save
vzctl set 101 --privvmpages 500000:750000 --save # дайте ему немного памяти CHECKME
vzctl start 101
vzctl exec 101 passwdЗатем вы можете подключиться к VPS по
ssh 10.0.0.101, и обратите внимание на цветной приглашение…
Этот шаблон — это шаблон Sarge (3.1), и я хочу, чтобы он был Etch (4.0), так что, когда вы вошли в VPS как root, выполните:
nano /etc/apt/sources.list # измените его, чтобы он соответствовал sources.list на вашей хостовой установке (Etch)
aptitude update
aptitude dist-upgradeТеперь попробуйте ваш новый VPS и сделайте его работоспособным, установите пакеты, которые вам нравятся, так как эта система позже будет служить основой для дальнейших VPS.
Далее мы создаем шаблон из только что настроенного VPS, это простая задача:
vzctl stop 101 # остановите его
rm -f /var/lib/vz/private/101/etc/ssh/ssh_host_* # удалите ключи (новые будут сгенерированы при первом запуске)
cd /var/lib/vz/private/101/
tar czf /var/lib/vz/template/cache/debian-etch-20061218-amd64.tar.gz .Как бы сказал Борат: “Отлично! Мне нравится!”
Теперь мы можем настроить и запустить несколько дополнительных VPS, как и раньше, но теперь немного измененных:
vzctl create 102 --ostemplate debian-etch-20061218-amd64 --config vps.basic
vzctl set 102 --onboot yes --save
vzctl set 102 --hostname test102.mytest.org --save
vzctl set 102 --ipadd 10.0.0.102 --save
vzctl set 102 --numothersock 120 --save
vzctl set 102 --nameserver 10.0.0.2 --save
vzctl set 102 --privvmpages 500000:750000 --save # дайте ему немного памяти CHECKME
vzctl start 102
vzctl exec 102 passwdи (да, я вижу, что не слишком много интересных изменений)…
vzctl create 103 --ostemplate debian-etch-20061218-amd64 --config vps.basic
vzctl set 103 --onboot yes --save
vzctl set 103 --hostname test103.mytest.org --save
vzctl set 103 --ipadd 10.0.0.103 --save
vzctl set 103 --numothersock 120 --save
vzctl set 103 --nameserver 10.0.0.2 --save
vzctl set 103 --privvmpages 500000:750000 --save # дайте ему немного памяти CHECKME
vzctl start 103
vzctl exec 103 passwdи запустите первый VPS (vzctl start 101), так как мы отключили его для использования в качестве основы нашего шаблона, помните?
Теперь у нас работают 3 VPS. Проверьте это с помощью vzlist, вывод:
VEID NPROC STATUS IP_ADDR HOSTNAME
101 5 running 10.0.0.101 test101.mytest.org
102 5 running 10.0.0.102 test102.mytest.org
103 5 running 10.0.0.103 test103.mytest.orgVPS нуждаются в памяти, по умолчанию им дается слишком мало, поэтому, пожалуйста, установите vmguarpages, oomguarpages, privvmpages и т. д. в ваших конфигурационных файлах VPS (/etc/vz/conf/*.conf) на разумные значения — страница равна 4 Кб. Ошибки, которые возникают из-за того, что вы слишком ограничили ваш VPS, можно прочитать, выполнив:
vzctl exec 101 cat /proc/user_beancountersПоследний столбец UBC (user_beancounter) должен содержать только нули, если иначе, попробуйте повысить некоторые барьеры и лимиты. Обратитесь к документации OpenVZ для получения дополнительной информации о каждом параметре.
Теперь мы можем продолжить настройку наших apache, postfix и т. д. на VPS… Удачи!
О, и ниже мой файл /etc/vz/conf/101.conf, он ужасен, я просто грубо повысил некоторые значения, потому что у нас была ошибка в user_beancounter.
cat /etc/vz/conf/101.conf# Copyright (C) 2000-2006 SWsoft. Все права защищены.
#
# Эта программа является свободным программным обеспечением; вы можете перераспределять и/или изменять
# ее в соответствии с условиями GNU General Public License, опубликованной
# Фондом свободного программного обеспечения; либо версии 2 Лицензии, либо
# (по вашему выбору) любой более поздней версии.
#
# Эта программа распространяется в надежде, что она будет полезной,
# но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; без даже подразумеваемой гарантии
# ТОРГОВОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. См. GNU General Public License для получения более подробной информации.
#
# Вы должны были получить копию GNU General Public License
# вместе с этой программой; если нет, напишите в Фонд свободного программного обеспечения, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
VERSION="2"
ONBOOT="yes"
# Параметры UBC (в форме барьер:лимит)
# Основные параметры
AVNUMPROC="40:40"
NUMPROC="255:255"
NUMTCPSOCK="80:80"
NUMOTHERSOCK="255:255"
VMGUARPAGES="500000:9223372036854775807"
# Вторичные параметры
KMEMSIZE="33554432:36909875"
TCPSNDBUF="319488:524288"
TCPRCVBUF="524288:524288"
OTHERSOCKBUF="439296:439296"
DGRAMRCVBUF="132096:132096"
OOMGUARPAGES="500000:9223372036854775807"
# Вспомогательные параметры
LOCKEDPAGES="32:32"
SHMPAGES="8192:8192"
PRIVVMPAGES="500000:750000"
NUMFILE="10240:10240"
NUMFLOCK="100:110"
NUMPTY="16:16"
NUMSIGINFO="256:256"
DCACHESIZE="1048576:1097728"
PHYSPAGES="0:9223372036854775807"
NUMIPTENT="128:128"
# Параметры квоты на диск (в форме мягкого лимита:жесткого лимита)
DISKSPACE="1048576:1153434"
DISKINODES="200000:220000"
QUOTATIME="0"
# Параметр справедливого планировщика CPU
CPUUNITS="1000"
OFFLINE_MANAGEMENT="yes"
VE_ROOT="/var/lib/vz/root/$VEID"
VE_PRIVATE="/var/lib/vz/private/$VEID"
OSTEMPLATE="debian-3.1-amd64-minimal"
ORIGIN_SAMPLE="vps.basic"
HOSTNAME="101.mytest.org"
IP_ADDRESS="10.0.0.101"
NAMESERVER="10.0.0.2"Get new posts in your inbox
No spam. Unsubscribe anytime.