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