Linux и Windows: помощь админам и пользователям

Администрируем и настраиваем Windows, Linux.



Установка и использование OpenVZ в Debian Etch

Рубрика: Виртуализация
Метки: |
Среда, 26 ноября 2008 г.
Просмотров: 16423
Подписаться на комментарии по RSS

В этой статье я опишу каким образом вы можете подготовить сервер под управлением  Debian Etch для OpenVZ. С помощью OpenVZ вы можете создавать множество Virtual Private Servers (VPS) на одном физическом сервере, подобно проектам Xen или Linux Vserver. OpenVZ это свободное ответвление от Virtuozzo, коммерческого виртуализационного продукта используемого многими хостерами для предоставления услуги  VPS. Ядро OpenVZ лицензировано под лицензией GPL.

1 Установка OpenVZ

Перед началом установки OpenVZ, вам необходимо добавить репозитарий OpenVZ в ваш /etc/apt/sources.list:

vi /etc/apt/sources.list

[...]
deb http://download.openvz.org/debian-systs etch openvz
[...]

Запустите команду:

wget -q http://download.openvz.org/debian-systs/dso_archiv_signing_key.asc -O- | apt-key add - && apt-get update

После этого будет скачен и установлен ключ репозитария и обновлена база пакетов.

Репозитарии содержат 6 ядер OpenVZ, из которых вам необходимо выбрать одно. В пакетах ovzkernel используются оригинальные конфигурации ядер OpenVZ, пакеты fzakernel используют конфигурацию ядра Debian плюс настройк OpenVZ:

  • ovzkernel-2.6.18: uniprocessor | up to 4GB of RAM | i386 and amd64
  • ovzkernel-2.6.18-smp: symmetric multiprocessor | up to 4 GB of RAM | i386 and amd64
  • ovzkernel-2.6.18-enterprise: SMP + PAE support + 4/4GB split | up to 64 GB of RAM | i386 only
  • fzakernel-2.6.18-686: uni- and multiprocessor | up to 4GB of RAM | i386
  • fzakernel-2.6.18-686-bigmem: symmetric multiprocessor | up to 64 GB of RAM | i386
  • fzakernel-2.6.18-amd64: uni- and multiprocessor | amd64

Выберите нужный вам пакет и установите его:

apt-get install fzakernel-2.6.18-686-bigmem

Обновите загрузчик GRUB:

update-grub

Теперь установите некоторые утилиты OpenVZ и минимальное шаблон Debian Etch OS, который пригодится вам при создании виртуальной машины:

apt-get install vzctl vzquota vzctl-ostmpl-debian vzprocps vzdump

Создайте симлинк с  /var/lib/vz на директорию /vz для обеспечения обратной совместимости:

ln -s /var/lib/vz /vz

Откройте /etc/sysctl.conf и убедитесь что выставлены следующие настройки:

vi /etc/sysctl.conf

[...]
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.ip_forward=1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
[...]

Если вам необходимо изменять /etc/sysctl.conf, запустите после этого

sysctl -p

Следующий щаг важен, если IP адреса ваших виртуальных машин находятся в другой подсети чем IP адрес хост-машины. Если вы не сделаете этого, в виртуальных машинах не будет работаь сеть!

Откройте /etc/vz/vz.conf и установите значение NEIGHBOUR_DEVS в all:

vi /etc/vz/vz.conf

[...]
NEIGHBOUR_DEVS=all
[...]

Наконец, перезапустите систему:

reboot

Если ваша система загрузиться без проблема, вероятнее всего что все в порядке smile

Запустите

uname -r

и вы должны увидеть новое ядро OpenVZ:

server1:~# uname -r

2.6.18-fza-028stab053.5-686-bigmem

server1:~#

 

2 Использование OpenVZ

Я покажу вам в основном базовые команды OpenVZ.

Для запуска VPS с использованием минимального шаблона Debian Etch (вы можете найти его в /var/lib/vz/template/cache), запустите:

vzctl create 101 --ostemplate debian-4.0-i386-minimal --config vps.basic

В данном примере 101 должно быть уникальным идентификатором, ID - каждая виртуальная машина имеет свой собственный уникальный ID. К примеру вы можете использовать последний октет IP адреса виртуальной машины в качестве ID. Например, если IP адрес виртуальной машины 1.2.3.101, используйте 101 как ID.

Если вы хотите автоматически запускать виртуальную машину при запуске хост системы,  выполните команду:

vzctl set 101 --onboot yes --save

Для установки имени хоста и IP адреса:

vzctl set 101 --hostname test.example.com --save

vzctl set 101 --ipadd 1.2.3.101 --save

Установим количество сокетов и назначим днс сервера:

vzctl set 101 --numothersock 120 --save

vzctl set 101 --nameserver 213.133.98.98 --nameserver 213.133.99.99 --nameserver 213.133.100.100 --nameserver 145.253.2.75 --save

(Вместо использования команды vzctl вы можете непосредственно редактировать конфигурационный файл виртуальной машины в директории /etc/vz/conf. Если ID виртуальной машины 101, то конфигурационный файл для неё /etc/vz/conf/101.conf.)

Запускаем виртуальную машину:

vzctl start 101

Устанавливаем пароль root:

vzctl exec 101 passwd

Вы можете подключаться к виртуальной машине либо через SSH, либо к консоли:

vzctl enter 101

Для отключения от консоли, введите:

exit

Для остановки виртуальной машины:

vzctl stop 101

Перезагрузка виртуальной машины:

vzctl restart 101

Для удаления виртуальной машины с диска (сперва её необходимо остановить) запускайте

vzctl destroy 101

Для просмотра списка ваших виртуальных машин и их статуса:

vzlist -a

server1:~# vzlist -a

      VEID      NPROC STATUS  IP_ADDR         HOSTNAME

       101          6 running 1.2.3.101       test.example.com

server1:~#

Для просмотра ресурсов назначенных виртуальной машине, запустите команду:

vzctl exec 101 cat /proc/user_beancounters

server1:~# vzctl exec 101 cat /proc/user_beancounters
Version: 2.5
       uid  resource           held    maxheld    barrier      limit    failcnt
      101:  kmemsize         500737     517142   11055923   11377049          0
            lockedpages           0          0        256        256          0
            privvmpages        2315       2337      65536      69632          0
            shmpages            640        640      21504      21504          0
            dummy                 0          0          0          0          0
            numproc               7          7        240        240          0
            physpages          1258       1289          0 2147483647          0
            vmguarpages           0          0      33792 2147483647          0
            oomguarpages       1258       1289      26112 2147483647          0
            numtcpsock            2          2        360        360          0
            numflock              1          1        188        206          0
            numpty                1          1         16         16          0
            numsiginfo            0          1        256        256          0
            tcpsndbuf         17856      17856    1720320    2703360          0
            tcprcvbuf         32768      32768    1720320    2703360          0
            othersockbuf       2232       2928    1126080    2097152          0
            dgramrcvbuf           0          0     262144     262144          0
            numothersock          1          3        120        120          0
            dcachesize            0          0    3409920    3624960          0
            numfile             189        189       9312       9312          0
            dummy                 0          0          0          0          0
            dummy                 0          0          0          0          0
            dummy                 0          0          0          0          0
            numiptent            10         10        128        128          0
server1:~#

Колонка failcnt очень важна, в ней должны содержаться одни нули. Если это не так, это означает что виртуальной машине необходимо больше ресурсов чем ей назначено в даннй момент.

Откройте файл конфигурации в /etc/vz/conf и увеличьте значения необходимых ресурсов, потом перегрузите виртуальную машину.

Для того, чтобы узнать больше о команде vzctl, используйте:

man vzctl

 

Постовой

Хороший дизельгенератор без проблем обогреет зимой загородное жилище.

Отличный новый фотохостинг Pict - удобный интерфейс, великолепная скорость работы и отсутствие рекламы.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Комментариев: 5

  1. Откройте файл конфигурации в /etc/vz/conf и увеличьте значения необходимых ресурсов, потом перегрузите виртуальную машину.

    Оригинально однако.

    Почему бы просто не использовать команду

    vzctl set параметр значение [--save]

    например vzctl set 1101 --ipadd "192.168.1.101" --privvmpages=256M --save

    Ресурсы выделятся моментально без даунтайма внутри контейнера.

    Параметр --save используем если хотим записать в конфиг. Если его не указать - после перезапуска контейнера, ресурсы будут выделены те, что записаны в конфиге.

  2. Спасибо за отличную статью (или перевод).

    вот только это все отлично работает для Debian Etch, а если у меня lenny и мне нужно ядро fzakernel-2.6.18-686-bigmem, его там нет.. а какое выбрать я не знаю

  3. aptitude search openvz

    Сам дальше разберёшься?

    Да, имей ввиду, ядра выше 2.6.18 cpulimit не умеют. Если собираешься раздавать хостинг и жёстко ограничивать процессор - бери 2.6.18, если для себя - бери новые ядра.

  4. Все было хорошо, пока не решил запустить постфикс. После его установки и попытки запуска имеем:

    1. неработающий постфикс

    2.

    ~# vzctl exec 333 cat /proc/user_beancounters
    Version: 2.5
           uid  resource           held    maxheld    barrier      limit    failcnt
          333:  kmemsize        4839430   11061673   11055923   11377049     430960
                lockedpages           0         96        256        256         28
                privvmpages       85455     135103    2000000    2200000          0
                shmpages            862       3438      21504      21504          0
                dummy                 0          0          0          0          0
                numproc              58        145        240        240          0
                physpages         41120      68704          0 2147483647          0
                vmguarpages           0          0      33792 2147483647          0
                oomguarpages      41120      68704      26112 2147483647          0
                numtcpsock           17         71        360        360          0
                numflock              9         60        188        206          0
                numpty                1          7         16         16          0
                numsiginfo            0         49        256        256          0
                tcpsndbuf        188160     828800    1720320    2703360          0
                tcprcvbuf        212992     441472    1720320    2703360          0
                othersockbuf      30784     546944    1126080    2097152          0
                dgramrcvbuf           0       1216     262144     262144          0
                numothersock         55        301        120        120        928
                dcachesize       284025     595350    3409920    3624960          0
                numfile            1297       3819       9312       9312          0
                dummy                 0          0          0          0          0
                dummy                 0          0          0          0          0
                dummy                 0          0          0          0          0
                numiptent            14         15        128        128          0

    Есть идеи?

  5. Если интересно, то я описал у себя в блоге установку openvz в debian lenny

Оставьте комментарий!

Используйте нормальные имена.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

(обязательно)