The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Знакомство с Linux-VServer (vps virtual vserver linux debian)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: vps, virtual, vserver, linux, debian,  (найти похожие документы)
From: Roman Sozinov <http://sozinov.blogspot.com>; Date: Mon, 3 Jan 2008 14:31:37 +0000 (UTC) Subject: Знакомство с Linux-VServer Оригинал: http://sozinov.blogspot.com/2007/06/linux-vserver.html Статья "Зонная Защита Solaris 10" замечательно описывает подход и возможности виртуализации на уровне операционной системы на примере зон в Solaris. Она также содержит ссылки на подобные решения в Linux-среде - Linux-Vserver, OpenVZ. Так как я использую преимущественно Debian (а он уже содержит в себе поддержку linux-vserver), то вопрос выбора для меня стоял недолго, хотя желание ознакомиться с OpenVZ не пропало. Linux-vserver - это отличное решение для хостинга и тестирования в различных окружениях - на одном физическом сервере используется одно для нескольких виртуальных серверов Linux-ядро. Главный (MAIN) сервер используется для контроля за виртуальными серверами, каждый из которых находится в закрытой адресной среде, не видя остальных. Разработчики указывают около 3-4% падения производительности системы при использовании VServer, но это настолько маленькие цифры, что их можно не учитывать - система работает как обычно - шустро. В репозитарии Debian 4.0 уже есть пропатченное linux-ядро, готовое к работе. Минусом является отсутствие отдельного патча linux-vserver, чтобы иметь возможность наложить его на собранное своими руками ядрышко. Установка и использование linux-vserver очень проста. # apt-get install linux-image-2.6.18-X-vserver-686 util-vserver \ vserver-debiantools debootstrap Пример команды для создания виртуального сервера # newvserver --vsroot /var/lib/vservers/ --hostname srv002 --domain \ domain.ru --ip 192.168.1.102/24 --dist etch --mirror \ http://ftp.at.debian.org/debian --interface eth0 # uname -a Linux srvmain 2.6.18-4-vserver-686 #1 SMP Thu May 10 01:37:59 UTC 2007 i686 GNU/Linux Стартуем виртуальный хост # vserver srv002 start Входим в виртуальный хост # vserver srv002 enter # uname -a Linux srv002 2.6.18-4-vserver-686 #1 SMP Thu May 10 01:37:59 UTC 2007 i686 GNU/Linux Сейчас можно настроить виртуальный хост для требуемых нужд, установить все необходимое/дополнительное. Всё, как на обычном хосте. Выходим из виртуального хоста # vserver srv002 stop Возможные проблемы могут возникнуть с Apache, если на main-хосте уже запущен Apache и не привязан к конкретному ip-адресу. В этом случае, пытаясь запустить apache на виртуальном хосте, в error.log можно встреить ошибку: [crit] (98)Address already in use: make_sock: could not bind to port 80 Решение: привязать main-сервер к конкретному ip-адресу. Проблема с Bind 9 решается не так просто: cd /usr/src apt-get build-dep bind9 apt-get source bind9 cd bind9-x.x.x vi debian/rules ... --disable-linux-caps \ --disable-threads \ ... dpkg-buildpackage ... cd .. dpkg -i *.deb echo "bind9 hold" | dpkg --set-selections # чтобы заморощить автоматическое обновление На официальном сайте есть отдел, посвященный "проблемному" soft'у. Проблем с OpenLDAP, Exim, Proftpd не наблюдалось - всё работает как обычно - как часы. Для автозапуска виртуального сервера при перезагрузке необходимо выполнить следующее: echo "default" > /etc/vservers/SERVERNAME/apps/init/mark Чтобы сделать копию уже сконфигурированного виртуального хоста srv002 (например web-сервера). vserver srv003 build --hostname srv003 --interface eth0:192.168.1.103/24 -m rsync -- -s /var/lib/vservers/srv002/ Если необходимо ограничить ресурсы (процессор, память) виртуальных хостов, linux-vserver и тут не подведет. Пример (взят из FAQ) того, как избежать ситуации "Out of memory" 1. Проверить размер страниц (pagesize) в памяти (обычно 4Кб) 2. Создать директорию rlimits mkdir /etc/vservers/srv002/rlimits 3. Установить значения максимума для резидентной памяти (rss) и максимума для всего объема виртуальной памяти (as). Хранимые значения указывают на число страниц памяти - например, чтобы установить предел в 200Мб при размере страницы 4Кб, нужно указать значение 50000. echo 50000 > /etc/vserver//rlimits/rss # 200Mb echo 100000 > /etc/vserver//rlimits/as # 400Mb 4. Чтобы изменения вступили в силу, необходимо перезапустить виртуальный хост. В комплекте пакета util-vserver идут замечательные утилиты для наблюдения за виртуальными хостами. Вот как это выглядит: # vserver-stat CTX PROC VSZ RSS userTIME sysTIME UPTIME NAME 0 59 197.9M 43.7M 36m51s32 9m37s35 5d22h45 root server 49166 9 137M 20.2M 0m02s98 0m03s40 4d00h03 srv008 49169 9 137M 20.2M 0m39s41 0m06s62 3d23h59 srv009 49170 13 174.3M 102.6M 16m30s91 1m03s46 3d20h57 srv002 49171 3 21.1M 4.6M 0m00s40 0m00s10 3h22m13 srv001 49176 9 137M 20.2M 0m00s80 0m00s20 1h28m18 srv007 # # # vps ax PID CONTEXT TTY STAT TIME COMMAND 1 0 MAIN ? Ss 0:01 init [2] ... 1045 0 MAIN ? S< 0:12 [md1_raid1] 1049 0 MAIN ? S< 0:00 [md2_raid1] 1126 0 MAIN ? S< 0:00 [kjournald] 1611 0 MAIN ? S< 0:00 [kedac] 1662 0 MAIN ? S< 0:00 [kpsmoused] 1922 0 MAIN ? S< 0:00 [kmirrord] 1970 0 MAIN ? S< 0:00 [kjournald] 1972 0 MAIN ? S< 0:15 [kjournald] 2259 0 MAIN ? Ss 0:02 /sbin/syslogd 2265 0 MAIN ? Ss 0:00 /sbin/klogd -x 2617 0 MAIN ? Ss 0:00 /usr/sbin/inetd 2632 0 MAIN ? Ss 0:00 /usr/sbin/sshd 2874 0 MAIN ? Ss 0:00 /sbin/mdadm 2905 0 MAIN ? Ss 0:00 /usr/sbin/cron 2922 0 MAIN ? Ss 0:00 /usr/sbin/apache 2949 0 MAIN tty1 Ss+ 0:00 /sbin/getty 38400 tty1 2950 0 MAIN tty2 Ss+ 0:00 /sbin/getty 38400 tty2 2951 0 MAIN tty3 Ss+ 0:00 /sbin/getty 38400 tty3 2952 0 MAIN tty4 Ss+ 0:00 /sbin/getty 38400 tty4 2953 0 MAIN tty5 Ss+ 0:00 /sbin/getty 38400 tty5 2954 0 MAIN tty6 Ss+ 0:00 /sbin/getty 38400 tty6 22845 0 MAIN ? Ss 0:00 /usr/sbin/exim4 -bd -q30m 26097 0 MAIN ? S 0:00 /usr/sbin/apache 26098 0 MAIN ? S 0:00 /usr/sbin/apache 26099 0 MAIN ? S 0:00 /usr/sbin/apache 26100 0 MAIN ? S 0:00 /usr/sbin/apache 26101 0 MAIN ? S 0:00 /usr/sbin/apache 15571 49166 srv008 ? Ss 0:00 /sbin/syslogd 15590 49166 srv008 ? Ss 0:00 proftpd: (accepting connections) 15596 49166 srv008 ? Ss 0:00 /usr/sbin/cron 15606 49166 srv008 ? Ss 0:00 /usr/sbin/apache 16397 49169 srv009 ? Ss 0:00 /sbin/syslogd 16416 49169 srv009 ? Ss 0:00 proftpd: (accepting connections) 16422 49169 srv009 ? Ss 0:00 /usr/sbin/cron 16432 49169 srv009 ? Ss 0:00 /usr/sbin/apache 17970 49170 srv002 ? Ss 0:08 /sbin/syslogd 17982 49170 srv002 ? Ss 0:00 /usr/sbin/named -u bind 17989 49170 srv002 ? Ss 0:00 /usr/sbin/lwresd 18005 49170 srv002 ? Ss 15:58 /usr/sbin/clamd 18088 49170 srv002 ? Ss 0:00 /usr/bin/freshclam -d --quiet 18233 49170 srv002 ? Ss 0:06 /usr/sbin/exim4 -bd -q30m 18259 49170 srv002 ? Ss 0:00 /usr/sbin/cron 6387 49169 srv009 ? S 0:00 /usr/sbin/apache 6388 49169 srv009 ? S 0:00 /usr/sbin/apache 6389 49169 srv009 ? S 0:00 /usr/sbin/apache 6390 49169 srv009 ? S 0:00 /usr/sbin/apache 17469 0 MAIN ? Ss 0:00 sshd: root@pts/0 17471 0 MAIN pts/0 Ss+ 0:00 -bash 18505 49171 srv001 ? Ss 0:00 /sbin/syslogd 18515 49171 srv001 ? Ssl 0:00 /usr/sbin/slapd -g openldap -u openldap 18531 49171 srv001 ? Ss 0:00 /usr/sbin/cron 19505 0 MAIN ? Ss 0:00 sshd: root@pts/2 19507 0 MAIN pts/2 Ss 0:00 -bash 20434 0 MAIN pts/2 S+ 0:00 mc 20436 0 MAIN pts/3 Ss 0:00 bash -rcfile .bashrc 21026 49176 srv007 ? Ss 0:00 /sbin/syslogd 21045 49176 srv007 ? Ss 0:00 proftpd: (accepting connections) 21051 49176 srv007 ? Ss 0:00 /usr/sbin/cron 21061 49176 srv007 ? Ss 0:00 /usr/sbin/apache 21083 49176 srv007 ? S 0:00 /usr/sbin/apache 21084 49176 srv007 ? S 0:00 /usr/sbin/apache 21846 49170 srv002 ? S 0:00 /usr/sbin/exim4 -bd -q30m 21847 1 ALL_PROC pts/3 S+ 0:00 vps ax 21848 1 ALL_PROC pts/3 R+ 0:00 ps ax Ссылки: 1. Installing Linux-VServer 2. Howtos Linux-Vserver Debian Sarge 3. Problematic Programs - Linux-VServer 4. Vserver DRBD - Linux-VServer 5. The /etc/vservers directory 6. "Системный администратор" (октябрь 2006)

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1, Сергей Скопин (?), 10:58, 21/06/2012 [ответить]  
  • +/
    Статья просто отличная! Пользуюсь каждый раз при создании очередной виртуалки. Спасибо автору!
     
  • 2, РоманЗмей (?), 21:05, 23/12/2012 [ответить]  
  • +/
    Интересно, спасибо.
    Тут кстати описывал своё знакомство с линукс http://pipel.org/?p=2174
     
  • 3, xandry (ok), 09:09, 25/01/2013 [ответить]  
  • +/
    > в error.log можно встреить ошибку

    В слове "встретить" пропущена первая "т".

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру