FastNetMon

Wednesday, 9 December 2009

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

В предыдущей публикации я рассказывал, как установить OpenVZ на CentOS 5.4. Теперь давайте изучим, как с этим всем работать.

Для OpenVZ есть понятие "шаблон" (template), которое представляет собой образ жесткого диска, используемый для создания VPS. По замыслу разработчиков OpenVZ эти образы должны храниться в папке "/vz/template/cache". Для OpenVZ есть очень большое число этих самых шаблонов, которые вы можете найти здесь.

Скачиваем образы (и ключевые суммы к ним) Centos5 и Debian 5 под интересующую нас платформу (в моем случае это x86_64):

# 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-6.0-x86_64.tar.gz
wget -P /vz/template/cache http://download.openvz.org/template/precreated/debian-6.0-x86_64.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 myvps.ru


В ответ должно быть выдано примерно следующее:

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 - myvps.ru


Добавляем реальный IP адрес для VPS:

vzctl set 101 --ipadd x.xx.xx.xx --save


Задаем DNS (взяв его с файла /etc/resolv.conf хост системы; а вообще лучше попробовать обойтись без этой операции, чтобы DNS автоматом были взяты с хост системы):

vzctl set 101 --nameserver 213.133.98.98 --save


Либо можете задать несколько DNS серверов (использован пример для выделенных серверов от fastvps.ru):

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


Запускаем контейнер:

vzctl start 101


Входим в контейнер через локальную консоль:

vzctl enter 101


Ну вот и все, пробуем пинговать сервер снаружи :) А если на самом контейнере нету сети, то виноват фаерволл CentOS, выключаем его:

/etc/init.d/iptables stop
chkconfig iptables off



По материалам http://linuxopen.ru/2009/11/13/linux-ustanovka-i-zapusk-openvz-na.html

2 comments :

  1. > rm -f /etc/yum.repos.d/vz.repo

    То, что вы не понимаете, зачем этот репозиторий нужен, вовсе не означает, что он "совершенно" ненужный

    ReplyDelete
    Replies
    1. Ох, Кирилл, простите великодушно - это статья писана недели через 2 после знакомства с openvz и был в каком-то расстройстве духа раз удалил репозиторий :)

      Ну и да - удалил эту глупость.

      Delete

Note: only a member of this blog may post a comment.