среда, 10 сентября 2008 г.

Установка и минимальная настройка vserver

ехнология Linux-VServer позволяет создавать несколько виртуальных серверов (VPS), работающих независимо под управлением одного ядра операционной системы.

Каждый виртуальный сервер связан с одним контекстом, в котором выполняются его процессы. Контекст –это окружение, объединяющее группу процессов в системе, и отделяющее их от процессов, не входящих в этот контекст. Имена пользователей и групп, а также их идентификаторы принадлежат контексту. Процессы главного (корневого) сервера входят в контекст с нулевым номером и обладают большими возможностями, они имеют доступ к процессам и данным всех виртуальных серверов. В файловой системе главного сервера корни файловых систем виртуальных серверов расположены в некоторой директории.

VPS внутри выглядит как полноценная Linux-система. Вы можете предоставить права root на него и совершенно не бояться, что как-то могут быть повреждены другие виртуальные серверы или главный сервер. Все сервисы, такие как электронная почта, базы данных, Web, SSH, могут быть запущены без модификаций (или с некоторыми минимальными модификациями) на виртуальном сервере. Каждый VPS может обладать как одним IP-адресом, так и несколькими.

Для виртуального сервера может быть настроено множество параметров и ограничений. Вот наиболее часто используемые из них:

  • Место, занимаемое на диске и количество индексных дескрипторов (файлов).
  • Объем физической и виртуальной памяти.
  • Доля использования мощности процессора и список процессоров, на которых может выполняться VPS.
  • Максимальное количество процессов, принадлежащих контексту.>/li<

Для каждого VPS могут отслеживаться такие показатели, как:

  • Использованное процессорное время.

  • Количество совершенных системных вызовов fork (с его помощью создаются новые процессы).
  • Количество полученных и переданных сетевых пакетов.

Приступим:

  • Устанавливаем ядро с поддержкой vserver'a и пакет программ для работы с vserver'ом util-vserver:
    #apt-get install linux-image-2.6.18-4-vserver-686 linux-headers-2.6.18-4-vserver-686 util-vserver
  • Перегружаемся, выбирая естественно необходимый нам вариант загрузки:
    Debian GNU/Linux, kernel 2.6.18-4-vserver-686
  • Теперь непосредственно создадим окружение нашему серверу
    #vserver build -m debootstrap --hostname --interface eth1:X.X.X.X/24 -- -d etch -m file:///media/cdrom -- --resolve-deps --arch i386
  • Может возникнуть ошибка:
    ncontext: vc_net_create(): Invalid argument
    Лечиться следующим образом:
    #echo 101 > /etc/vservers//context
  • Предварительно добавив в /etc/network/interfaces:
    auto eth1:1
    iface eth1:1 inet static
    address X.X.X.X
    netmask 255.255.255.255
  • "Проваливаемся" в наше окружение
    #vserver exec /bin/sh
  • Перво наперво следует сменить пароль root'а
    #passwd
    Enter new UNIX password:
    Retype new UNIX password:
    passwd: password updated successfully
  • Далее настраиваем наш сервер, так как вам необходимо — устанавливаем программы, утилиты и т.д.
  • Для того, что бы у нас была возможность производить монтирование в системе, на основной машине создаем файл:
    #touch /etc/vservers//ccapabilities
    и записываем в него следующее сожержимое
    #cat /etc/vserver//ccapabilities
    SECURE_MOUNT
    BINARY_MOUNT
  • Устанавливаем лимиты на vserver
    # vlimit -c —rss 2047131
    где это ID vserver'a
    # vserver-stat
    CTX PROC VSZ RSS userTIME sysTIME UPTIME NAME
    40029 52 1.9G 240.2M 0m03s51 0m01s17 34m14s27

    размер задается в страницах (размер одной страницы 4096 байт)
    просмотреть лимиты можем с помощью:
    #vlimit -c -a -d | grep RSS
    RSS N/A 2047131 2047131

    обязательно добавляем параметр "VIRT_MEM"
    #echo "VIRT_MEM" >> /etc/vservers//flags
    записываем кол-во страниц
    #cat /etc/vservers/myguest/rlimits/rss
    1663293

    проверяем на vservere
    # free -k
    total used free shared buffers cached
    Mem: 6653172 46944 6606228 0 0 0
    -/+ buffers/cache: 46944 6606228
    Swap: 1535352 0 1535352
  • А дальше все в ваших руках...