Инструменты пользователя

Инструменты сайта


openvz

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

openvz [2020/03/22 19:43]
openvz [2020/06/13 13:46] (текущий)
Строка 1: Строка 1:
 +====== Настройка и команды OpenVZ ======
 +
 +~~Title: OpenVZ ~~
 +{{htmlmetatags>
 +metatag-description=(OpenVZ - это технология ядра Linux, которая служит для виртуализации на уровне операционной системы и позволяет запускать несколько виртуальных частных серверов (VPS) на одном физическом компьютере.)
 +}}
 +
 +{{ :openvz-01.png?nolink&400 |}}
 +
 +  * Homepage: [[http://openvz.org|OpenVZ]]
 +  * [[https://wiki.openvz.org/Virtual_network_device|Добавление нескольких ip в виртуалку]]
 +  * [[http://download.openvz.org/doc/OpenVZ-Users-Guide.pdf|OpenVZ-Users-Guide.pdf]]
 +  * [[https://wiki.debian.org/ru/OpenVZ|Установка и использование OpenVZ в Debian]]
 +  * [[http://www.opennet.ru/tips/info/2514.shtml|Отказоустойчивый кластер на базе OpenVZ, DRBD и Heartbeat 2]]
 +  * [[http://www.ibm.com/developerworks/ru/library/l-openvz_2/|Система виртуализации OpenVZ: Часть 2.Работаем с контейнерами]]
 +  * [[https://openvz.org/Using_NAT_for_container_with_private_IPs|Using NAT for container with private IPs]]
 +
 +**OpenVZ** — это реализация технологии виртуализации на уровне операционной системы, которая базируется на ядре Linux. OpenVZ позволяет на одном физическом сервере запускать множество изолированных копий операционной системы, называемых Виртуальные Частные Серверы (Virtual Private Servers, **VPS**) или Виртуальные Среды (Virtual Environments, **VE**).
 +
 +Поскольку OpenVZ базируется на ядре Linux, в отличие от виртуальных машин (напр. VMware) или паравиртуализационных технологий (напр. Xen), в **роли «гостевых» систем могут выступать только дистрибутивы Linux**. Однако, виртуализация на уровне операционной системы в OpenVZ даёт лучшую производительность, масштабируемость, плотность размещения, динамическое управление ресурсами, а также лёгкость в администрировании, чем у альтернативных решений. Согласно сайту OpenVZ, накладные расходы на виртуализацию очень малы, и падение производительности составляет всего 1-3 %, по сравнению с обычными Linux-системами.
 +OpenVZ является базовой платформой для Virtuozzo — проприетарного продукта Parallels, Inc. OpenVZ распространяется на условиях лиценции GNU GPL v.2.
 +OpenVZ состоит из модифицированного ядра Linux и пользовательских утилит.
 +
 +OpenVZ - это технология ядра Linux, позволяющая запускать несколько виртуальных частных серверов (VPS) на одном физическом компьютере. Каждый из серверов при этом выглядит как отдельный сервер с отдельными доступом root, IP-адресом, таблицей процессов, файловой системой, правилами брандмауэра и т. д. От средств полной виртуализации вроде Xen или VMWare эту программу отличает то, что в каждом экземпляре VPS используется одна и та же разделяемая копия ядра Linux. По этому, например, с OpenVZ нельзя загрузить экземпляр Windows 7 и экземпляр RedHat, и нельзя загружать модули ядра независимо в каждый VPS. Но «пространство пользователя» в каждом VPS может быть разным, поэтому можно, например, запустить CentOS и SUSE рядом на одном и том же ядре. Это эффективное решение, и можно создать достаточно полную иллюзию отдельно администрируемых компьютеров, чтобы удовлетворить пользователей, которые не хотят много платить за хостинг-услуги.
 +
 +Ядро OpenVZ — это модифицированное ядро Linux, которое обеспечивает виртуализацию, изоляцию, управление ресурсами и чекпоинтинг (сохранение текущего состояния VE).
 +===== Утилиты OpenVZ =====
 +
 +  * **vzctl** - утилита для манипулирования VPS (создание, уничтожение, установка параметров ...)
 +  * **vzquota** - утилита для квотирования VPSs. Чаще используется неявно через vzctl.
 +  * **vzpid** - позволяет определить, какому контейнеру принадлежит процесс (в качестве параметра принимает pid процесса).
 +  * **vzubc** - утилита, заменяющая такой инструмент, как cat /proc/user_beancounters.
 +  * **vzlist** — печатает листинг контейнеров.
 +  * **vzmemcheck, vzcpucheck, vzcalc** — служат для получения информации об используемых ресурсах.
 +===== vzctl =====
 +Рекомендуется запустить vzctl без параметров, чтобы получить полный список поддерживаемых параметров и команд.
 +  * Запустить контейнер по его имени или CTID:<file>
 +# vzctl start example1
 +# vzctl start 101
 +</file>
 +  * Проверить состояние VE:<file>
 +# vzctl status 101
 +CTID 101 exist mounted running
 +# vzlist -a
 +      CTID      NPROC STATUS    IP_ADDR         HOSTNAME
 +       101          8 running   10.161.85.101   my.example.com
 +</file>
 +  * Выполнить в нём одиночную команду:<file>
 +vzctl exec 101 uname -a
 +</file>
 +  * Перейти в командную строку контейнера с правами суперпользователя:<file>
 +vzctl enter example1
 +</file>
 +====== Сервер OpenVZ ======
 +Сервер виртуализации OpenVZ: [[CentOS]]-6.4-x86_64, [[OpenVZ]], [[LVM]].
 +
 +  * **Файловая система**. **Разбивка HDD на аппаратном узле.** Рекомендуется использовать отдельный раздел для хранения данных VE. (по умолчанию /vz/private/<veid>). Причина этого в том, что если вы захотите использовать дисковые квоты на каждый VE, используемые OpenVZ, вы не сможете использовать обычные квоты Linux. На том же разделе. В данном контексте OpenVZ-квота не является чистой квотой, она действует как обычная дисковая квота, но в рамках VE, а не аппаратного узла. Квоты OpenVZ поддерживаются только для файловых систем ext2/ext3, если квоты не важны [[http://openvz.org/Quick_installation#.2Fvz_file_system|рекомендуется ставить ext4]]. Избегайте использовать корневой раздел для хранения данных VE. В такой ситуации администратор VE может превысить дисковый барьер в 5%, полностью заполнить корневой раздел аппаратного узла, и вызвать крах системы. 
 +
 +|Точка монтирования|Тип файловой системы|Комментарии|
 +|/ |ext4 |Корневой раздел для файлов ОС аппаратного узла. 8-10 Гб|
 +|/swap |swap |Пространство подкачки Linux. 2хОЗУ или 1хОЗУ|
 +|[[LVM]] - Все свободное место.||
 +|LVM /tmp|ext4|/tmp 10GB|
 +|LVM /home|ext4|/home 20GB|
 +|LVM /vz|ext4|/vz Rest|
 +|LVM /noexec|ext4|/vz/noexec 10GB|
 +
 +
 +  * Выбираем минимальную установку. В руководстве безопасности OpenVZ настоятельно рекомендуется не использовать на уровне аппаратного узла никаких сетевых сервисов кроме sshd ([[ssh?s[]=sshd#zaschita_demona_sshd|Защита демона sshd]]).
 +  * После установки обновляем установленную ОС, при помощи [[yum]]<file>
 +yum update -y
 +shutdown -r now
 +</file>
 +  * Доставим дополнительные пакеты<file>
 +# yum install nano mc wget lsof mailx mlocate ntsysv
 +</file>
 +  * Отключить [[SELinux]]
 +  * Фаервол [[iptables]] можно отключить, если не нужен [[NAT]], при помощи [[chkconfig]]. В случае если в контейнере используются IP из серых сетей, то есть нужен NAT, можно использовать эту заготовку [[iptables?&#primer_3_iptables_centos_openvz|Пример 3. iptables CentOS OpenVZ]].
 +  * Установка ядра с поддержкой OpenVZ, для этого добавим официальный репозиторий OpenVZ:<file>
 +# cd /etc/yum.repos.d
 +# wget -P /etc/yum.repos.d/ http://ftp.openvz.org/openvz.repo
 +# rpm --import http://ftp.openvz.org/RPM-GPG-Key-OpenVZ
 +# yum install vzkernel
 +</file>
 +  * Редактируем загрузчик ОС в файле menu.lst, в котором ядро с поддержкой OpenVZ должно стоять первым или единственным<file>
 +# cp /boot/grub/menu.lst /boot/grub/menu.lst.bak
 +# nano /boot/grub/menu.lst
 +</file>
 +  * Установка инструментов администрирования OpenVZ<file>
 +# yum install vzctl vzquota ploop
 +# shutdown -r now
 +</file>
 +  * Настраиваем [[sysctl]]:<file bash 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
 +</file>
 +  * Запуск<file>
 +# service vz start
 +</file>
 +====== Установка VE ======
 +  * Cкачиваем готовые шаблоны для VE: [[http://wiki.openvz.org/Download/template/precreated|Precreated template caches for different distributions]]. Также скачиваем [[shifrovanie|контрольные суммы]] для проверки целостности файлов шаблона ([[http://bugreev.ru/blog:2011:12:13-openvz_-_%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0_%D1%86%D0%B5%D0%BB%D0%BE%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%82%D0%B5%D0%BC%D0%BF%D0%BB%D1%8D%D0%B9%D1%82%D0%B0|OpenVZ - проверка целостности template]]).<file>
 +# cd /vz/template/cache/
 +# wget -c http://download.openvz.org/template/precreated/debian-6.0-x86_64.tar.gz
 +# wget -c http://download.openvz.org/template/precreated/debian-6.0-x86_64.tar.gz.asc
 +
 +# wget -c http://download.openvz.org/template/precreated/contrib/debian-5.0-i386-minimal.tar.gz
 +# wget -c http://download.openvz.org/template/precreated/contrib/debian-5.0-i386-minimal.tar.gz.asc
 +
 +# wget -O - http://download.openvz.org/RPM-GPG-Key-OpenVZ | gpg --import
 +# gpg --verify debian-6.0-x86_64.tar.gz.asc
 +</file>
 +
 +В OpenVZ существует два основных варианта размещения файлов контейнера, они называются ploop и simfs. Simfs – более старый способ размещения файлов контейнера. При его использовании все файлы находятся в определенном каталоге файловой системы физического узла. Ploop более новый способ, при его использовании все файлы контейнера  размещаются в одном отдельном большом файле. 
 +
 +  * Создание контейнера simfs для debian-5.0-i386-minimal.tar.gz:<file>
 +# vzctl create 101 --ostemplate debian-5.0-i386-minimal --layout simfs
 +CT configuration saved to /etc/vz/conf/101.conf
 +</file>
 +  * Выполним настройку контейнера: Включить автоматический запуск виртуального окружения при старте сервера<file>
 +# vzctl set 101 --save
 +              --onboot yes
 +              --name talk-mss
 +              --ipadd 10.161.85.101
 +              --hostname my.example.com
 +              --nameserver '208.67.222.222 8.8.4.4'
 +</file>**save** приказывает сохранить изменения в conf-файле. Без этого параметра они будут применены к запущенному контейнеру без сохранения; **onboot** приказывает запускать контейнер при старте OpenVZ; **name** задаёт произвольное читабельное имя, которое затем можно использовать вместо VEID. Например, "vzctl status talk-mss"; **ipadd** назначает контейнеру IP-адрес во внутренней сети OpenVZ; **hostname** изменяет имя системы, используемое внутри контейнера для самоидентификации; "nameserver" конфигурирует контейнер на использование указанного DNS-сервера;
 +
 +===== Монтирование разделов в VE =====
 +  * [[http://www.vds54.ru/help/mount-tmp-vps-with-noexec-nosuid|Как примонтировать /tmp на VPS с опциями noexec, nosuid]]
 +  * Монтирование раздела /home в VE<file>
 +# nano 101.mount
 +#!/bin/sh
 +. /etc/vz/vz.conf
 +mount -n -o bind /vz/noexec/vz-100-home $VE_ROOT/home
 +
 +# chmod +x 101.mount
 +</file>
 +====== Лимиты VE ======
 +  * [[https://openvz.org/User_Guide/Managing_Resources|User Guide/Managing Resources]]
 +  * [[https://wiki.debian.org/ru/OpenVZ-Options|OpenVZ: Подробное описание параметров конфигурирования]]
 +
 +OpenVZ ограничивает для контейнеров потребление всех системных ресурсов: процессора, оперативной памяти, дискового пространства, системных буферов, сокетов и т. д. Начальные лимиты настолько строгие, что даже команда **apt-get update** в только что созданном контейнере завершается с сообщением об ошибке.
 +
 +<note>Управление ограничениями в системе с OpenVZ является двухуровневым: для контейнера в целом – средствами OpenVZ, внутри контейнера – стандартными средствами Linux, через ulimit и дисковые квоты.</note>
 +
 +Для проверки внешних ограничений служит файл **/proc/user_beancounters**. Внутри контейнера этот файл заполнен информацией по данному контейнеру, во внешней системе содержит сведения обо всех запущенных окружениях. Основной интерес в нём представляет последний столбец, «failcnt» («failure counter», т. е. «количество сбоев»):<file>
 +# egrep -v ' 0$' /proc/user_beancounters
 +</file>
 +
 +===== Процессорные лимиты =====
 +  * --cpuunits num
 +"Вес" CPU для данного контейнера. Аргументом может быть положительное число в диапазоне от 8 до 500000. Устанавливает зависимость распределения CPU между разными контейнерами. Значение по умолчанию - 1000. Значение 1000 в одном контейнере и 2000 в другом означает, что при прочих равных условиях второй контейнер получит вдвое больше CPU.
 +
 +  * --cpulimit num[%]
 +Лимит использования CPU контейнером. В процентах. Если компьютер имеет два CPU, то это значит он имеет всего 200% CPU, которые можно распределить между контейнерами. Значение по умолчанию - 0 (нет лимита).
 +
 +  * --cpus num
 +Устанавливает количество процессоров (не ядер) доступных в контейнере.
 +
 +====== Клонирование VPS сервера ======
 +Клонирование VPS сервера на OpenVZ:
 +  * Остановим сервер, который будем клонировать<file>
 +# vzctl stop 101
 +</file>
 +  * Клонируем конфигурационный файл, в нем как минимум нужно изменить IP до запуска нового VE<file>
 +# cp /etc/vz/conf/101.conf /etc/vz/conf/103.conf
 +</file>
 +  * Если используется mount<file>
 +# cp /etc/vz/conf/101.mount /etc/vz/conf/103.mount
 +# mkdir /vz/noexec/vz-103-home
 +</file>
 +  * Клонируем сервер копированием при помощи утилиты [[rsync]], ключ -а позволяет сохранить права на файлы и указывает на рекурсивное копирование, слеш "/" в конце директории, указывает, что мы ее копируем .<file>
 +# rsync -av /vz/private/107/ /vz/private/108
 +
 +# rsync -av /vz/noexec/vz-107-home/ /vz/noexec/vz-108-home
 +</file>
 +  * Для переноса VE между серверами можно использовать утилиту [[tar?&#tar_s_soxraneniem_prav_dostupa|tar]] с ключом -p, который позволяет сохранить права на файлы. Например: на первом хосте<file>
 +# cd /vz/private/
 +# tar -cpvf 109-mb3_3.tar 109/</file>Любым способом копируем на второй хост и на нем запускаем<file>
 +# cd /vz/private/
 +# tar -xvpf 109-mb3_3.tar
 +</file>
 +====== FAQ ======
 +  * [[FAQ]]
 +===== Как включить в VE OpenVZ запись истории команд bash? =====
 +
 +  * **Как включить в VE OpenVZ запись истории команд пользователя, которые отображаются командой history в консоли?** (No bash history in VE). По умолчанию в [[bash]] всё пишется в файл ~/.bash_history. Если хотим хранить историю в другом файле, то нужно в .bashrc, задать команду HISTFILE=~/.my_history. Выясним в какой файл записывается история в нашем VE<file>
 +# env | grep -i HISTFILE
 +HISTFILE=/dev/null
 +</file>И видим что история сразу затирается. Редактируем файл и задаем параметр HISTFILE глобально /etc/bash.bashrc или в .bashrc пользователя)<file bash>
 +# nano /root/.bashrc
 +...
 +HISTFILE=~/.bash_history
 +HISTSIZE=1000
 +HISTFILESIZE=2000
 +...
 +</file>
 +  * **HISTSIZE** — определяет число строк, хранящихся в списке истории (в памяти интерпретатора).
 +  * **HISTFILESIZE** — максимальное количество команд хранящихся в файле истории.
 +  * [[http://www.shellhacks.com/ru/Kak-Ochistit-Istoriyu-Komand-v-BASH|Как : Очистить Историю Команд в BASH]]<file>
 +history -c
 +</file>
 +===== Dnsmasq в контейнере OpenVZ =====
 +
 +  * [[Dnsmasq]] + OpenVZ
 +====== Доступ к устройствам из VE ======
 +Из виртуальных окружений прямой доступ отсутствует и к железу, и к ядру. Каталог /dev почти пуст и содержит только логические устройства: null, zero, random, tty, console и т. д.
 +
 +===== USB устройство в VE =====
 +**Задача**. Сделать доступным в VE подключенный USB ключ (на флешке лицензия).
 +  * Устанавливаем usbutils в HN и VE, после этого станет доступна утилита [[lsusb]].
 +  * Вывести список USB устройств. Нас интересуется флешка вставленная в Bus 006 Device 002<file>
 +# lsusb
 +Bus 004 Device 002: ID 046b:ff10 American Megatrends, Inc. Virtual Keyboard and Mouse
 +Bus 006 Device 002: ID 04b9:0300 SafeNet USB SuperPro/UltraPro
 +</file>
 +  * Подробности об устройстве:<file>
 +# ls -al /dev/bus/usb/006/002
 +crw-rw-r-- 1 root root 189, 641 Ноя 27 09:10 /dev/bus/usb/006/002
 +</file>
 +  * Войдем в VE и создадим это устройство в нем ([[mknod]])<file>
 +# vzctl enter VEID
 +# mkdir -p /dev/bus/usb/006
 +# cd /dev/bus/usb/006
 +# mknod 002 c 189 641
 +</file>
 +  * В конфигурационный файл /etc/vz/conf/VEID.conf добавим строку<file>
 +DEVNODES="bus/usb/006/002:rw "
 +</file>
 +  * Перезагрузим VE и проверим видимость USB ключа в VE<file>
 +# vzctl restart VEID
 +# vzctl enter VEID
 +# lsusb 
 +Bus 006 Device 002: ID 04b9:0300 SafeNet USB SuperPro/UltraPro
 +</file>
 +===== Установка tun/tap для OpenVPN на OpenVZ VE =====
 +<note important>[[OpenVPN]]. Выбирай всегда tun, в 99.9% случаев он достаточен. [[tap]] нужен только для всяческих ethernet bridge.</note>
 +
 +По умолчанию запрещено использование этих виртуальных драйверов.
 +  - Загрузим модуль tun в HN: <file>
 +modprobe tun
 +</file>проверим<file>
 +lsmod | grep tun
 +</file>
 +  - Выясним параметры устройства tun в HN для использования в [[mknod]] VE<file>
 +ls -la /dev/net/tun
 +crw-rw-rw- 1 root root 10, 200 Авг 27 08:26 /dev/net/tun
 +</file>
 +  - Включаем поддержку на самом VE сервере (111 — номер VE сервера)<file>
 +vzctl set 111 --devnodes net/tun:rw --save
 +vzctl set 111 --devices c:10:200:rw --save
 +vzctl set 111 --capability net_admin:on --save
 +vzctl exec 111 mkdir -p /dev/net
 +vzctl exec 111 chmod 600 /dev/net/tun
 +</file>
 +  - Перезагрузите VE сервер<file>
 +vzctl restart 111
 +</file>5.  Проверяем что модуль подгрузился в виртуальном сервер:<file bash>
 +# cat /dev/net/tun
 +cat: /dev/net/tun: File descriptor in bad state
 +</file>При выводе должно сказать bad file descriptor, если сказало, что permission denied — значит, не получилось. Можете попробовать сделать всё то же самое еще раз.
 +===== VE маршрутизация 2 сетевых интерфейсов =====
 +В случае когда VE OpenVZ два и более сетевых интерфейса, например venet0:0 и venet0:1 может возникнуть проблема прохождения пакетов между HN OpenVZ, то есть не в пределах одного сервера OpenVZ (где все они соединены через интерфейс venet0), а между двумя и более HN OpenVZ. Самое простое решение использовать NAT на HW, но тогда будет подменяться IP, что не всегда нужно. Втрое решение исправить в VE изменить маску сети на /24<file>
 +ifconfig venet0:1 netmask 255.255.255.0
 +</file> Более подробно решение проблемы здесь: [[http://serverfault.com/questions/133566/openvz-multiple-networks-on-cts|OpenVZ multiple networks on CTs]]. Можно также запускать эту команду при помощи файла /etc/rc.local<file>
 +/sbin/ifconfig venet0:1 netmask 255.255.255.0
 +</file>или для [[CentOS]] создать выполняемый файл /sbin/ifup-local. Для добавления маршрута на новую сеть (например 10.26.95.0/24) в VE обязательно нужно указать источник src <ip вашего сервера>.<file bash ifup-local>
 +#!/bin/bash
 +/sbin/ifconfig venet0:1 netmask 255.255.255.0
 +
 +/sbin/ip route add 10.26.95.0/24 dev venet0:1 src 10.161.85.112
 +</file>
 +
 +====== Резервное копирование контейнеров OpenVZ ======
 +
 +Физически файлы контейнера просто находятся в некоторой директории на HN. При запуске VE эта директория монтируются в другую, посредством механизмов, напоминающих mount --bind и последующий chroot. Т.е. для резервного копирования достаточно скопировать или архивировать эту директорию. Т.к. контейнер может быть запущен либо остановлен, то и резервное копирование может быть выполнено «горячее», либо «холодное».
 +При горячем копировании может произойти порча структуры файлов, которые не были закрыты запущенными в контейнере программами. Особенно это чревато для баз данных. По этому этот метод нужно использовать очень осторожно. Этих недостатков лишено холодное копирование, но для него необходимо остановить контейнер, что не всегда приемлемо, да и вообще не хорошо вмешиваться в работу VE.
 +
 +Для осуществление живой миграции контейнеров между HN у OpenVZ есть специальное состояние — **checkpoint**. При входе в это состояние все процессы контейнера замораживаются и содержимое памяти сбрасывается в дамп. Сохраняется также ядерная информация (например, о состоянии открытых сокетов). После перемещения файлов и дампа памяти VE на другой HN можно его там «оживить». Если промежуток времени от заморозки до оживления составляет единицы-десятки секунд, то приложения могут даже не заметить перемещения контейнера, а сетевые клиенты могут не отключиться.
 +
 +Этот режим тоже можно использовать для резервного копирования контейнера OpenVZ. Конечно, через некоторое время, при восстановлении из этой копии, подключенных клиентов уже не будет, но зато целостность системы сохранится и можно будет остановить сервисы для получения полноценной «холодной» системы и запустить вновь.
 +
 +  * [[https://openvz.org/Migration_from_one_HN_to_another|Migration from one HN to another. vzmigrate]]
 +===== vzdump =====
 +
 +  * [[https://openvz.org/Backup_of_a_running_container_with_vzdump|Backup of a running container with vzdump]]
 +  * [[https://download.openvz.org/contrib/utils/vzdump/|Download vzdump]]
 +  * [[http://itblog.su/openvz-rezervnoe-kopirovanie-i-klonirovanie-kontejjnerov.html|OpenVZ: резервное копирование и клонирование контейнеров]]
 +
 +
 +  - Установим зависимости для утилиты vzdump. Подключим репозиторий [[yum#rpmforge|RPMForge]].<file bash>
 +rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
 +</file>Зависимости<file bash>
 +yum install cstream perl-LockFile-Simple
 +</file>
 +  - Установка vzdump.<file bash>
 +rpm -ivh vzdump-1.2-4.noarch.rpm
 +</file>
 +
 +
 +  - **Использование vzdump с ключем --suspend.** Создадим бекап VE не выключая его и отошлем уведомление пользователю.** В данном случае производится инкрементальный бэкап с помощью rsync с заморозкой виртуальной машины. Бэкап производится в две стадии, на первой стадии запускается rsync добавляя изменившиеся файлы в бэкап. Затем производится кратковременная остановка виртуальной машины с запуском rsync, который производит повторную синхронизацию файлов. После окончания повторной синхронизации виртуальная машина запускается и продолжает работать. **Данный метод позволяет сократить время простоя виртуальной машины до минимума.** При использовании данного метода, наиболее полезны опции: --stdexcludes — позволяет исключить временные файлы (/tmp и т.д.) --exclude-path — позволяет исключить определенные директории. Адреса директорий задаются с помощью regexp. <file bash>
 +modprobe vzcpt
 +vzdump --suspend 121 --mailto root
 +vzdump --compress --suspend 121 --mailto root
 +</file>
 +  - Возможные проблемы:<file bash>
 +ERROR: Backup of VM 121 failed - command 'vzctl --skiplock chkpnt 121 --suspend' failed with exit code 16
 +</file>Исправить<file>
 +modprobe vzcpt
 +</file>
 +  - Восстановить VE с другим CTID<file bash>
 +vzrestore /vz/dump/vzdump-openvz-121-2016_02_09-12_27_09.tgz 123
 +</file>