Для 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-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 vps.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="vps.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
ЗАДАДИМ ПОЛЬЗОВАТЕЛЮ root ПАРОЛЬ!!!!
vzctl exec 101 passwd
Входим в контейнер через локальную консоль:
vzctl enter 101
Сразу рекомендую удалить совершенно не нужны репозиторий:
rm -f /etc/yum.repos.d/vz.repo
Ну вот и все, пробуем пинговать сервер снаружи :) А если на самом контейнере нету сети, то виноват фаерволл CentOS, выключаем его:
/etc/init.d/iptables stop
chkconfig iptables off
Здесь я буду оставлять свои заметки и размышления по поводу настройки сервера на os linux
четверг, 17 июня 2010 г.
Установка OpenVZ на CentOS
Я закопипастил себе статю ВОТ ОРИГИНАЛ Автору спасиюо
Подключаем репозиторий OpenVZ
Ставим ключи для OpenVZ репозитория:
rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ
Для ряда задач OpenVZ требуется CRON и если он у Вас не стоит стандартно, его нужно поставить:
yum install -y vixie-cron
И запустить:
/etc/init.d/crond start
Ставим wget:
yum install -y wget
Добавляем OpenVZ репозиторий и обновляем список пакетов:
wget http://download.openvz.org/openvz.repo -O/etc/yum.repos.d/openvz.repo
yum update
Ставим OpenVZ ядро (обязательно с указанием архитектуры!!!!! иначе все слетит):
yum -y install ovzkernel.i686 # для 32 битных систем
yum -y install ovzkernel.x86_64 # для 64 битных систем
Устанавливаем OpenVZ ядро стандартным (точнее убеждаемся, что прописано default=0 и самое первое ядро является OpenVZ шным)
vi /etc/grub.conf
Т.к. OpenVZ не работает с SeLinux, его необходимо отключить, делаем это по мануалу: Отключение SeLinux CentOS 5
Также проверяем фаерволл:
vi /etc/sysconfig/iptables
Если в этом файле что-либо есть, просто удалем его содержимое и делаем:
/etc/init.d/iptables restart
Производим настройки sysctl
vi /etc/sysctl.conf
И добавляем туда следующие настройки (честно скажу - не знаю, зачем большая часть из них, но потом обязательно изучу. Кстати, к слову, VDSManager абсолютно также настраивает sysctl.conf, как указано ниже):
# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0
# Enables source route verification
net.ipv4.conf.all.rp_filter = 1
# Enables the magic-sysrq key
kernel.sysrq = 1
# We do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
Ставим утилиты управления для OpenVZ ( vzctl - для управления VE, vzquota - для управление ресурсами, vzpkg - для управления шаблонами вирт машин)
yum -y install vzctl vzquota vzpkg
А для 64 битной версии пакетов список такой:
yum -y install vzctl.x86_64 vzquota.x86_64 vzpkg.x86_64
Устанавливаем ntp (если время будет сбито - проблемы, гарантированы. Например, с DLE):
yum install -y ntp
Убеждаемся, что сервис vz добавлен в автозапуск
chkconfig --list | grep vz
Синхронизируем время:
/usr/sbin/ntpdate 0.rhel.pool.ntp.org europe.pool.ntp.org
Отключаем автоматичсекий подвод часов (чревато багами с dovecot):
/sbin/chkconfig ntpd on
Перезагружаемся
shutdown -r now
Убеждаемся, что работаем под OpenVZ ядром:
uname -r
2.6.18-164.11.1.el5.028stab068.3
Подключаем репозиторий OpenVZ
Ставим ключи для OpenVZ репозитория:
rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ
Для ряда задач OpenVZ требуется CRON и если он у Вас не стоит стандартно, его нужно поставить:
yum install -y vixie-cron
И запустить:
/etc/init.d/crond start
Ставим wget:
yum install -y wget
Добавляем OpenVZ репозиторий и обновляем список пакетов:
wget http://download.openvz.org/openvz.repo -O/etc/yum.repos.d/openvz.repo
yum update
Ставим OpenVZ ядро (обязательно с указанием архитектуры!!!!! иначе все слетит):
yum -y install ovzkernel.i686 # для 32 битных систем
yum -y install ovzkernel.x86_64 # для 64 битных систем
Устанавливаем OpenVZ ядро стандартным (точнее убеждаемся, что прописано default=0 и самое первое ядро является OpenVZ шным)
vi /etc/grub.conf
Т.к. OpenVZ не работает с SeLinux, его необходимо отключить, делаем это по мануалу: Отключение SeLinux CentOS 5
Также проверяем фаерволл:
vi /etc/sysconfig/iptables
Если в этом файле что-либо есть, просто удалем его содержимое и делаем:
/etc/init.d/iptables restart
Производим настройки sysctl
vi /etc/sysctl.conf
И добавляем туда следующие настройки (честно скажу - не знаю, зачем большая часть из них, но потом обязательно изучу. Кстати, к слову, VDSManager абсолютно также настраивает sysctl.conf, как указано ниже):
# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0
# Enables source route verification
net.ipv4.conf.all.rp_filter = 1
# Enables the magic-sysrq key
kernel.sysrq = 1
# We do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
Ставим утилиты управления для OpenVZ ( vzctl - для управления VE, vzquota - для управление ресурсами, vzpkg - для управления шаблонами вирт машин)
yum -y install vzctl vzquota vzpkg
А для 64 битной версии пакетов список такой:
yum -y install vzctl.x86_64 vzquota.x86_64 vzpkg.x86_64
Устанавливаем ntp (если время будет сбито - проблемы, гарантированы. Например, с DLE):
yum install -y ntp
Убеждаемся, что сервис vz добавлен в автозапуск
chkconfig --list | grep vz
Синхронизируем время:
/usr/sbin/ntpdate 0.rhel.pool.ntp.org europe.pool.ntp.org
Отключаем автоматичсекий подвод часов (чревато багами с dovecot):
/sbin/chkconfig ntpd on
Перезагружаемся
shutdown -r now
Убеждаемся, что работаем под OpenVZ ядром:
uname -r
2.6.18-164.11.1.el5.028stab068.3
воскресенье, 13 июня 2010 г.
создаем машину в kvm
virt-install -n deb2 -r 300 -f dlinux2.img -s 1 -c /iso/debian-504-amd64-CD-1.iso --accelerate --vnc --vncport=5901 --noautoconsole --os-type=linux --os-variant=generic26 -w bridge:br0
-n deb2 имя виртуальной машины
-r 300 память озу
-f dlinux2.img -s 1 создаем образ размером 1 гб
-c /iso/debian-504-amd64-CD-1.iso установочный образ
--accelerate --vnc --vncport=5901 --noautoconsole --os-type=linux --os-variant=generic26
-w bridge:br0 указываем бридж
- lvcreate -L20G -n xenvm00 VolGroup00 --создаем
file=/dev/VolGroup00/xenvm00 -- указываем
(15:42:11) inkvizitor68sl: а перед этим - lvcreate -L20G -n xenvm00 VolGroup00
для lvm разделов.
-n deb2 имя виртуальной машины
-r 300 память озу
-f dlinux2.img -s 1 создаем образ размером 1 гб
-c /iso/debian-504-amd64-CD-1.iso установочный образ
--accelerate --vnc --vncport=5901 --noautoconsole --os-type=linux --os-variant=generic26
-w bridge:br0 указываем бридж
- lvcreate -L20G -n xenvm00 VolGroup00 --создаем
file=/dev/VolGroup00/xenvm00 -- указываем
(15:42:11) inkvizitor68sl: а перед этим - lvcreate -L20G -n xenvm00 VolGroup00
для lvm разделов.
суббота, 12 июня 2010 г.
kvm+bridge+centos
Эта статья просто копипаст. ССЫЛКА НА РУКОВОДСТВО С КОТОРОГО Я СДЕР ВСЕ ЭТО Нажать
Решение
По умолчанию KVM использует NAT через бридж с именем virbr0. Если необходимо, чтобы гостевая система была видна в той же самой сети как отдельный хост, можно использовать bridged interface. Однако хосты виртуализации, настроенные на использование KVM, автоматически не создают bridged interface для устройств Ethernet, как это часто бывает в окружении Xen. Таким образом, необходимо создать настройки для того, чтобы бридж создавался при старте сети.
Заметка: Для хоста должен быть доступ к физической или последовательной консоли, так как изменение файлов конфигурации может привести к потере сетевого соединения (прим.пер. Это не совсем верно. Все настройки могут быть произведены и при удаленном доступе. Единственное и очень важное замечание — необходимо убедиться в правильности сделанных изменений и настроек в том случае, если отсутствует возможность попасть на машину в Rescue Mode или просто сбросить настройки).
Если интерфейс, настройки которого будет меняться, в данное время работает, необходимо его остановить его с помощью команды ifdown (прим.пер. Совершенно необязательно. Файл конфигурации можно менять и при работающем интерфейсе. Настройки будут применены при перезапуске сети в дальнейшем или после перезагруки). Например:
1
# ifdown eth0
Теперь необходимо создать или изменить настройки моста (ifcfg-brX) и сетевого интерфейса (ifcfg-ethX). Перейдите в директорию /etc/sysconfig/network-scripts:
1
# cd /etc/sysconfig/network-scripts
Откройте файл устройства, которое необходимо добавить к бриджу с помощью текстового редактора. Например, ifcfg-eth0 определяет физическое сетевое устройство, которое станет частью моста:
1
DEVICE=eth0
2
# change the hardware address to match the hardware address your NIC uses
3
HWADDR=00:16:76:D6:C9:45
4
ONBOOT=yes
5
BRIDGE=br0
6
NM_CONTROLLED=no
Далее следует создать новый скрипт в директории /etc/sysconfig/network-scripts и назвать его, допустим, ifcfg-br0 или что-то вроде того. br0 — это имя моста, которое может быть как любой длины, так и именем файла, соответствующим параметру DEVICE, а также это имя должно соответствовать указанному в файле конфигурации для ifcfg-eth0.
1
DEVICE=br0
2
TYPE=Bridge
3
BOOTPROTO=dhcp
4
ONBOOT=yes
5
DELAY=0
Если используется статический адрес, конфигурация будет выглядеть подобно этому:
1
DEVICE=br0
2
TYPE=Bridge
3
BOOTPROTO=static
4
IPADDR=
5
NETMASK=
6
GATEWAY=
7
ONBOOT=yes
Запустите устройство Ethernet и бридж, используя команду ifup:
1
# ifup eth0
2
# ifup br0
Далее следует проверить и убедиться, что хост все еще может подключаться к сети:
1
# ping www.redhat.com
Если на системе запущен файерволл, потребуется добавить показанное ниже новое правило в файл /etc/sysconfig/iptables:
1
-A RH-Firewall-1-INPUT -i br0 -j ACCEPT
И перезапустить файерволл:
1
# service iptables restart
За более подробной информацией бридже в окружении KVM обращайтесь к следующему официальному документу:
http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.4/html/Virtualization_Guide/sect-Virtualization-Network_Conf iguration-Bridged_networking_with_libvirt.html
Заметка
Для того, чтобы убедиться, что ранее созданный мост определяется virt-manager, службы haldaemon и messagebus должны быть запущены.
Решение
По умолчанию KVM использует NAT через бридж с именем virbr0. Если необходимо, чтобы гостевая система была видна в той же самой сети как отдельный хост, можно использовать bridged interface. Однако хосты виртуализации, настроенные на использование KVM, автоматически не создают bridged interface для устройств Ethernet, как это часто бывает в окружении Xen. Таким образом, необходимо создать настройки для того, чтобы бридж создавался при старте сети.
Заметка: Для хоста должен быть доступ к физической или последовательной консоли, так как изменение файлов конфигурации может привести к потере сетевого соединения (прим.пер. Это не совсем верно. Все настройки могут быть произведены и при удаленном доступе. Единственное и очень важное замечание — необходимо убедиться в правильности сделанных изменений и настроек в том случае, если отсутствует возможность попасть на машину в Rescue Mode или просто сбросить настройки).
Если интерфейс, настройки которого будет меняться, в данное время работает, необходимо его остановить его с помощью команды ifdown (прим.пер. Совершенно необязательно. Файл конфигурации можно менять и при работающем интерфейсе. Настройки будут применены при перезапуске сети в дальнейшем или после перезагруки). Например:
1
# ifdown eth0
Теперь необходимо создать или изменить настройки моста (ifcfg-brX) и сетевого интерфейса (ifcfg-ethX). Перейдите в директорию /etc/sysconfig/network-scripts:
1
# cd /etc/sysconfig/network-scripts
Откройте файл устройства, которое необходимо добавить к бриджу с помощью текстового редактора. Например, ifcfg-eth0 определяет физическое сетевое устройство, которое станет частью моста:
1
DEVICE=eth0
2
# change the hardware address to match the hardware address your NIC uses
3
HWADDR=00:16:76:D6:C9:45
4
ONBOOT=yes
5
BRIDGE=br0
6
NM_CONTROLLED=no
Далее следует создать новый скрипт в директории /etc/sysconfig/network-scripts и назвать его, допустим, ifcfg-br0 или что-то вроде того. br0 — это имя моста, которое может быть как любой длины, так и именем файла, соответствующим параметру DEVICE, а также это имя должно соответствовать указанному в файле конфигурации для ifcfg-eth0.
1
DEVICE=br0
2
TYPE=Bridge
3
BOOTPROTO=dhcp
4
ONBOOT=yes
5
DELAY=0
Если используется статический адрес, конфигурация будет выглядеть подобно этому:
1
DEVICE=br0
2
TYPE=Bridge
3
BOOTPROTO=static
4
IPADDR=
5
NETMASK=
6
GATEWAY=
7
ONBOOT=yes
Запустите устройство Ethernet и бридж, используя команду ifup:
1
# ifup eth0
2
# ifup br0
Далее следует проверить и убедиться, что хост все еще может подключаться к сети:
1
# ping www.redhat.com
Если на системе запущен файерволл, потребуется добавить показанное ниже новое правило в файл /etc/sysconfig/iptables:
1
-A RH-Firewall-1-INPUT -i br0 -j ACCEPT
И перезапустить файерволл:
1
# service iptables restart
За более подробной информацией бридже в окружении KVM обращайтесь к следующему официальному документу:
http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.4/html/Virtualization_Guide/sect-Virtualization-Network_Conf iguration-Bridged_networking_with_libvirt.html
Заметка
Для того, чтобы убедиться, что ранее созданный мост определяется virt-manager, службы haldaemon и messagebus должны быть запущены.
Подписаться на:
Сообщения (Atom)