Ключевые слова:openvz, virtual, chroot, ubuntu, linux, limit, vps, (найти похожие документы)
From: Евгений <boffin@ukr.net.>
Newsgroups: email
Date: Mon, 21 Oct 2009 17:02:14 +0000 (UTC)
Subject: Разворачиваем свой VPS на основе OpenVZ + Ubuntu
Оригинал: http://chooselinux.org.ua/razvorachivaem-svoj-vps-na-osnove-openvz-ubuntu/
Порой каждый задумывается начать зарабатывать деньги своим умом в
интернете. Один из самых простых вариантов для человека обладающего
базовыми навыками в администрировании Linux - предоставление
виртуального хостинга. Для этого достаточно взять в аренду выделенный
сервер, желательно помощнее, и установить на нем ОС + OpenVZ.
openvz
0. Введение
А теперь по порядку. Для начала необходимо установить операционную
систему на сервер. Мой выбор пал на Ubuntu 9.04 Server, так как это
самая свежая стабильная версия. Далее необходимо установить на нее
виртуальную машину - OpenVZ. Особенностью OpenVZ является то, что
виртуализация происходит на очень низком уровне, за счет чего
достигается высокая производительность гостевых систем. Однако для
достижения высокой производительности придется использовать специальную
версию ядра, так что не бойтесь если при установке OpenVZ предложит
скачать новую версию ядра. Далее необходимо скачать образ гостевой
системы, которая и будет разворачиваться на виртуальной(гостевой)
машине. И еще, для полноценной работы VPS как сервиса, который будет
приносить деньги, необходимо каждому виртуальному серверу выдать по IP
адресу.
Итак, преимущества виртуальных серверов в том, что они предоставляют
изолированное окружение, и клиенты получают рутовый пароль на систему.
Так-же следует отметить что в таком случае безопасность внутри
виртуальных машин будут отвечать сами клиенты, а злоумышленник с
рутовым доступом на виртуальной машине не сможет навредить физическому
серверу или соседним виртуальным машинам.
Важно постараться поставить как можно меньше программного обеспечения
на физический сервер, в идеале это только OpenVZ и OpenSSH.
Ну а теперь непосредственно процедура установки и настройки OpenVZ (в
моих примерах предполагается что у вас установлена свежая Ubuntu 9.04
Server, без дополнительного ПО):
1. Подготовка места на диске для хранения виртуальных машин
Для удобства работы и масштабируемости сервера рекомендуется иметь
отдельный жесткий диск ( а лучше два, в рейде, для зеркалирования
данных пользователя). Предлагаю в корне создать директорию /vz. В эту
директорию монтировать жесткий диск. Для этого в /etc/fstab необходимо
добавить строчку:
/dev/sdb1 /vz ext3 defaults 0 0
где /dev/sdb1 - ваш жесткий диск для хранения виртуальных машин.
2. Установка ядра системы с поддержкой виртуализации
Для этого стоит выполнить команду:
# apt-get install vzctl
пакетный менеджер автоматически подтянет ядро с поддержкой openvz
нужной версии. В моем случае был установлен linux-image-2.6.26-2-openvz.
После перезагрузки необходимо произвести настройку ядра, редактируем
файл /etc/sysctl.conf и меняем следующие строки:
net.ipv4.ip_forward=1
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
kernel.sysrq = 1
После сохранения файла необходимо применить новые параметры ядра:
# sysctl -p
3. Установка виртуальной машины (гостевой системы)
Для начала необходимо скачать образ операционной системы, которая будет
использоваться в гостевой системе. Для этого выбираем на образ на сайте
http://openvz.org/download/template/cache/ и скачиваем его в
директорию /vz/template/cache:
# make -p /vz/template/cache
# cd /vz/template/cache
# wget http://download.openvz.org/template/precreated/ubuntu-9.04-x86_64.tar.gz
В моем случае для гостевой операционной системы была выбрана Ubuntu 9.04.
Далее необходимо создать непосредственно виртуальную машину, на основе
нашего образа. Так как на VPS хостинге эту задачу надо будет повторять
неоднократно, удобно использовать скрипт:
root_pw="root_password" # пароль пользователя root в гостевой системе
os_template="ubuntu-9.04-x86_64" # имя образа ОС для гостевой системы
vm_id="1" # идентификатор гостевой системы
/usr/sbin/vzctl create ${vm_id} --ostemplate ${os_template} --config vps.basic #создание гостевой системы на основе образа
/usr/sbin/vzctl set ${vm_id} --onboot yes --save # запускать гостевую при старте системы
/usr/sbin/vzctl set ${vm_id} --hostname vps${vm_id}.domain.com --save #установить hostname гостевой
/usr/sbin/vzctl set ${vm_id} --ipadd 192.168.1.190 --save #установить IP адрес
/usr/sbin/vzctl set ${vm_id} --nameserver 192.168.1.12 --save #установить адрес ДНС сервера
/usr/sbin/vzctl set ${vm_id} --userpasswd root:${root_pw} --save #установить пароль пользователя root
/usr/sbin/vzctl set ${vm_id} --cpulimit 15 --save #установка процессорной квоты 15%
#установка дисковой квоты 9 GB (10 GB в течении промежутка 600 секунд)
/usr/sbin/vzctl set ${vm_id} --diskspace 9000000:10000000 --save
/usr/sbin/vzctl set ${vm_id} --quotatime 600 --save
#установка квоты на виртуальную память 160M (168M в течение quotatime - см.выше)
#с гарантией выделения до 120M (128M)
/usr/sbin/vzctl set ${vm_id} --privvmpages 160M:168M --save
/usr/sbin/vzctl set ${vm_id} --vmguarpages 120M:128M --save
/usr/sbin/vzctl start ${vm_id} #запуск новой гостевой системы
Все, теперь в гостевую систему можно логинится по ssh.
После шага
make -p /vz/template/cache
директория не создается, вот такие ошибки
# No 'vpath' search paths.
# No general ('VPATH' variable) search path.
Unable to open /dev/vzctl: No such file or directory
Please check that vzdev kernel module is loaded and you have sufficient permissions to access the file.
VE config file does not exist
root@pc:~# modprobe vzdev
FATAL: Module vzdev not found.
По моему в статье ошибка...
У меня на Kubuntu 9.10 при aptitude install vzctl ставится только vzctl и vzquota (всегда так было и на 9.04 тоже). Помоему вообще в репах, что Джантли, что Кармика нет ядра OpenVZ. Нужно подключать репы 8.10 или 8.04 (точно не помню). Потому что Каноникал отказалась в пользу KVM и прекратила поддержку OpenVZ
В 8.04 оно есть. По идее сервера надо на 8.04 держать ибо LTS.
В остальных по идее обещали добавить пакет с патчем ядра для самостоятельной сборки ядра с поддержкой openvz. Как это в Debian сделано.