Использование OpenVZ на CentOS 5.x
Для OpenVZ есть понятие “шаблон” (template), которое представляет собой образ жесткого диска, используемый для создания VPS. По замыслу разработчиков OpenVZ эти образы должны храниться в папке “/vz/template/cache”. Для OpenVZ есть очень большое число этих самых шаблонов, которые вы можете найти здесь.
Скачиваем образы (и ключевые суммы к ним) Centos5 и Debian 5 под интересующую нас платформу:
# 64 битные образы
wget -P /vz/template/cache http://download.openvz.org/template/precreated/debian-5.0-x86_64.tar.gz wget -P /vz/template/cache http://download.openvz.org/template/precreated/debian-5.0-x86_64.tar.gz.asc wget -P /vz/template/cache http://download.openvz.org/template/precreated/centos-5-x86_64.tar.gz wget -P /vz/template/cache http://download.openvz.org/template/precreated/centos-5-x86_64.tar.gz.asc |
# 32 битные образы
wget -P /vz/template/cache http://download.openvz.org/template/precreated/centos-5-x86.tar.gz wget -P /vz/template/cache http://download.openvz.org/template/precreated/centos-5-x86.tar.gz.asc wget -P /vz/template/cache http://download.openvz.org/template/precreated/debian-5.0-x86.tar.gz wget -P /vz/template/cache http://download.openvz.org/template/precreated/debian-5.0-x86.tar.gz.asc |
Теперь надо верифицировать asc суммы для скаченных образов:
yum install gpg -y |
Ставим ключи:
wget http://download.openvz.org/RPM-GPG-Key-OpenVZ -O /tmp/RPM-GPG-Key-OpenVZ gpg --import /tmp/RPM-GPG-Key-OpenVZ |
Проверяем:
# 64 битные
gpg --verify /vz/template/cache/debian-5.0-x86_64.tar.gz.asc gpg --verify /vz/template/cache/centos-5-x86_64.tar.gz.asc |
# 32 битные
gpg --verify /vz/template/cache/debian-5.0-x86.tar.gz.asc gpg --verify /vz/template/cache/centos-5-x86.tar.gz.asc |
В ответ должно быть выдано примерно следующее:
gpg –verify /vz/template/cache/centos-5-x86_64.tar.gz.asc
gpg: Signature made Tue 24 Nov 2009 02:19:30 PM CET using DSA key ID A7A1D4B6
gpg: Good signature from “OpenVZ Project ”
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: DEAB A031 F0A1 8848 9D71 01D2 92A6 0DA6 A7A1 D4B6
Теперь краткий обзор папок, используемых OpenVZ.
/etc/vz/conf/ – тут хранятся конфиги клиентских VPS и конфиги тарифных планов (т.е. сколько процессора/памяти/других ресурсов выдавать на каждом тарифу).
/vz/private/ – здесь хранятся файловые системы VPS ов
/vz/template/cache/ – тут хранятся шаблоны операционных систем
/etc/vz/dists/ – конфиги с указанием на скрипты настройки под различные ОС
/etc/vz/cron/vz – служебные крон задачи OpenVZ
/etc/vz/vz.conf – глобальный конфиг файл OpenVZ
Итак, создаем контейнер (centos-5-x86_64 – это имя архива в папке /vz/template/cache, но без расширения; 101 – это идентификатор контейнера, CTID):
vzctl create 101 --ostemplate centos-5-x86_64 --config basic --hostname vpsserver.com |
В ответ должно быть выдано примерно следующее:
Creating container private area (centos-5-x86_64)
Performing postcreate actions
Container private area was created
В итоге будет сгенерирован конфиг:
cat /etc/vz/conf/101.conf |
# Copyright (C) 2000-2008, Parallels, Inc. All rights reserved. # # Баннер GPL поскипан # ONBOOT="yes" # UBC parameters (in form of barrier:limit) KMEMSIZE="14372700:14790164" LOCKEDPAGES="256:256" PRIVVMPAGES="65536:69632" SHMPAGES="21504:21504" NUMPROC="240:240" PHYSPAGES="0:9223372036854775807" VMGUARPAGES="33792:9223372036854775807" OOMGUARPAGES="26112:9223372036854775807" NUMTCPSOCK="360:360" NUMFLOCK="188:206" NUMPTY="16:16" NUMSIGINFO="256:256" TCPSNDBUF="1720320:2703360" TCPRCVBUF="1720320:2703360" OTHERSOCKBUF="1126080:2097152" DGRAMRCVBUF="262144:262144" NUMOTHERSOCK="360:360" DCACHESIZE="3409920:3624960" NUMFILE="9312:9312" AVNUMPROC="180:180" NUMIPTENT="128:128" # Disk quota parameters (in form of softlimit:hardlimit) DISKSPACE="1048576:1153024" DISKINODES="200000:220000" QUOTATIME="0" # CPU fair sheduler parameter CPUUNITS="1000" VE_ROOT="/vz/root/$VEID" VE_PRIVATE="/vz/private/$VEID" OSTEMPLATE="centos-5-x86_64" ORIGIN_SAMPLE="basic" |
В итоге наш контейнер появляется в списке доступных:
vzlist -a |
CTID NPROC STATUS IP_ADDR HOSTNAME
101 – stopped – vpsserver.com
Добавляем реальный IP адрес для VPS:
vzctl set 101 --ipadd xx.xx.xx.xx --save |
Задаем DNS (взяв его с файла /etc/resolv.conf хост системы; а вообще лучше попробовать обойтись без этой операции, чтобы DNS автоматом были взяты с хост системы):
vzctl set 101 --nameserver xx.xx.xx.xx --save |
Либо можете задать несколько DNS серверов:
vzctl set 101 --nameserver xx.xx.xx.xx --nameserver xx.xx.xx.xx --nameserver xx.xx.xx.xx --save |
Запускаем контейнер:
vzctl start 101 |
Входим в контейнер через локальную консоль:
vzctl enter 101 |
Сразу рекомендую удалить совершенно не нужны репозиторий:
rm -f /etc/yum.repos.d/vz.repo |
Ну вот и все, пробуем пинговать сервер снаружи. А если на самом контейнере нету сети, то виноват фаерволл CentOS, выключаем его:
/etc/init.d/iptables stop chkconfig iptables off |