OpenVZ

Материал из pNp Wiki
Версия от 23:10, 10 декабря 2015; Suser (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Установка системы

Настройка системы в Debian 6

  • отключаем установку рекомендуемых пакетов в aptitude
запускаем её > ctrl+t > параметры > предпочтения > снимаем галгу в пункте "автоматически устанавливать рекомендуемые пакеты"  
  • Устанавливаем openvz:
aptitude install linux-image-2.6-openvz-amd64
  • удаляем старое ядро
aptitude purge linux-image-2.6.32-5-amd64
  • Устанавливаем прочие полезные утилиты и демоны:
aptitude install ntp htop iotop hddtemp smartmontools
  • отключим возможность логинится рутом по ssh
nano /etc/ssh/sshd_config
PermitRootLogin no 
  • создаим группу wheel и разрешим только членам этой группы повышать права до root'а
addgroup -gid 200 wheel
  • раскомментируем в файле /etc/pam.d/su
auth       required   pam_wheel.so
  • добавим себе в группу wheel
adduser username wheel
  • внесём изменения в /etc/sysctl.conf, для применения настроек выплюните команду "sysctl -p"
### OpenVZ settings
# On Hardware Node we generally need packet
# forwarding enabled and proxy arp disabled
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.ip_forward=1
# Enables source route verification
net.ipv4.conf.all.rp_filter = 1
# Enables the magic-sysrq key
kernel.sysrq = 1
# TCP Explict Congestion Notification
net.ipv4.tcp_ecn = 0
# we do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
  • настраиваем файрвол
  • и на последок скачиваем c [[1]] нужные шаблонны контейнеров и кладём их в /var/lib/vz/template/cache/.

Мне к примеру нужен был debian 6

cd /var/lib/vz/template/cache/
wget http://download.openvz.org/template/precreated/contrib/debian-6.0-amd64-minimal.tar.gz
  • перезагружаемся
shutdown -r now

Настройка системы в CentOS 6

  • Подключаем репозиторий openvz:
cd /etc/yum.repos.d
wget http://download.openvz.org/openvz.repo
rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ
  • Проверяем наличие обновлений и уставливаем их:
yum update
  • устанавливаем openvz
yum install vzctl
  • Настраиваем переменные sysctl в файле etc/sysctl.conf:
# ovz
# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 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
# TCP Explict Congestion Notification
# net.ipv4.tcp_ecn = 0
# we do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
  • Настраиваем firewall. В файле /etc/sysconfig/iptables комментируем строку
/etc/sysconfig/iptables 
#-A FORWARD -j REJECT --reject-with icmp-host-prohibited
  • перезагружаем систему.
shutdown -r now

Создание и управление контейнерами

  • создаём контейнер
vzctl create 1111 --ostemplate debian-6.0-amd64-minimal
  • изменяем основные настройки
vzctl set 1111 --hostname test.ipnp.su \
               --ipadd 192.168.0.111 \
               --nameserver 192.168.0.1 \
               --save
  • запускаем контейнер
vzctl start 1111
  • вход в контейнер
vzctl enter 1111
  • остановить контейнер
vzctl stop 1111
  • уничтожить контейнер
vzctl destroy 1111

Настройка veth интерфейса

  • Создаём мост (br0), который будет использоваться для работы veth.
  • Настройка моста в centos

создаём файл /etc/sysconfig/network-scripts/ifcfg-br0 со следуем содержимом

DEVICE=br0
BOOTPROTO=static
ONBOOT=yes
TYPE=Bridge
DELAY=0

и при необходимости чтобы через этот мост работал сам хост срвер добавляем

IPADDR="192.168.0.2"
NETMASK="255.255.255.0"
GATEWAY="192.168.0.1"
DNS1="192.168.2.1"
DNS2="192.168.3.2"
  • Далее добавляем в файл /etc/sysconfig/network-scripts/ifcfg-eth1 (если у нас veth будет работать через eth1)

ONBOOT="no" BRIDGE=br0

  • далее создаём файл со следующем содержимым /etc/vz/vznet.conf
#!/bin/bash
EXTERNAL_SCRIPT="/usr/sbin/vznetaddbr"
  • создаём интерфейс в контейнере следущей коммандой ( #vzctl set 111 --netif_add eth0,<mac>,host_ifname=veth${VEID}.0,<host_mac>,br_name)
vzctl set 111 --netif_add eth0,13:13:13:00:00:0A,host_ifname=veth111.0,13:13:13:00:00:0B,br0
  • запускаем контейнер, заходим в него и настраиваем сеть стандартным способом в dibian правим файл /etc/network/interfaces, в сentos: /etc/sysconfig/network-scripts/ifcfg-eth0

Бэкап виртуальной машины

Восстановление из бэкапов

ploop

Конвертация из SimFS в ploop

Остановить контейнер

vzctl stop 9999

Установить новое значение дискового пространства и сбросить diskinodes. ploop раздел будет создан в соответствие нового дискового размера.

vzctl set 9999 --diskspace 10G --diskinodes 0 --save

Конвертируем в ploop

vzctl convert 9999