Live Backup на Citrix Xen Server

Горячее резеврное копирование, работающих виртуальных машин средствами XenServer API.
Без лишних слов, это краткое описание не самой сложной но весьма востребованной функции.

1. Подготовка хранилища для бэкапов
Для начала нам нужно выбрать место для хранения бэкапов. Это может быть локальный диск, внешний диск, сетевой ресурс. Словом все что вы сможете примонтировать.
Для примера
mkdir /mnt/backup
mount -t cifs "//192.168.0.20/share" -o username=username,password=password /mnt/backup


2. Подготовка виртуальных машин(Windows)
2.1 Ставим XenTools
2.2 XenTools предоставляет VSS Provider (для использования ShadowCopy), однако он не устанавливается автоматически вместе с XenTools. В папке с XenTools запускаем install-XenProvider.cmd.

3. Настройка скрипта
Логика достаточно простая:
Делаем снапшот xe vm-snapshot-with-quiesce, если не удалось сделать то используем обычный vm-snapshot
Убираем флаг template xe template-param-set is-a-template=false
Делаем экспорт в файл xe vm-export
Удаляем ненужный снапшот xe vm-uninstall
Но я рекомендую воспользоваться уже готовым скриптом от Andy Burton. Вся настройка через конфиг файл, можно задать список виртуальных машин для бэкапа, забэкапить только работающие или выбрать все.
mkdir /home/backup
cd /home/backup
wget www.andy-burton.co.uk/files/xenserver_backup/xenserver_backup.tar.gz
tar -xzf xenserver_backup_3.0.tar.gz
chmod 700 vm_backup.*
nano vm_backup.log

Открываем vm_backup.cfg и настраиваем нужные параметры(путь для логов, бэкапов, список машин для бэкапа и формат имени файла).
Запускаем vm_backup.sh
4. Возможные проблемы
Если вдруг в качестве хранилища вы решите использовать сетевую папку а windows 7, то вас может ждать неприятный сюрприз, ввиде ошибок при записи и монтировании. Но есть решение
Set the following registry key to ’1′:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache
and set the following registry key to ’3′:
HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size
Спасибо Alan LaMielle
Еще один неприятный сюрприз это скорость записи в примонтированые по CIFS разделы. По неизвестным причинам на XenServer 5.6 и XCP 1.1 порядка 10Мбит\с. При этом с NFS и iSCSI таких проблем нет. Возможно так и задумано, или это просто баг.

5. Еще варианты
Альтернативой может быть использование стороннего ПО, такого как Symantec NetBackup. Его рекомендует Citrix в своем WHITE PAPER «Citrix XenServer: Virtual Machine Backup».
  • +1
  • 27,5k
  • 5
Поделиться публикацией

Похожие публикации

Комментарии 5

    0
    По неизвестным причинам на XenServer 5.6 и XCP 1.1 порядка 10Мбит\с. При этом с NFS и iSCSI таких проблем нет. Возможно так и задумано, или это просто баг

    В шестой версии та же песня. Одно время у меня вдруг скорость скакнула в два раза (~15-20 МБ/сек), подержалась так пару месяцев, но потом всё равно вернулась к старому значению. При всём том каналы свободные, если просто файлы копировать свою скорость выдают.

    Кстати у меня шара на которую идет бэкап примонтирована по NFS, так что дело не в CIFS.
      0
      Что то у меня ничего не работает если запускать в фоне
      /bin/bash vm_backup.sh &
      если без & то все нормально, а в фоне зависает процесс и все, ничего не происходит, в логе последняя строчка получение имени виртуальной машины
        0
        А кто-то пробовал восстанавливать машины с этих образов? А то что-то в интернетах не очень лестные отзывы об образах созданных стандартными тулами xenserver'a
          0
          У пробовал. Если делать лайв бэкап на сильно нагруженной вм то есть вероятность, что бэкап вылетит с ошибкой или будет битый т.е. не восстановится. Если нагрузка не велика, то все нормально. Есть нюанс. ВосСтанавливает и бэкапит xenserver с совершенно непрогнозируемой скоростью. Вы можете прикинуть, что с учетом скорости ваших дисков процесс должен занять 20 минут, но в реальности он может длиться часами. Вероятно это какой-то внутренний механизм приоритета срабатывает, но подтверждения я этому не нашел.
            0
            Восстанавливаю из бэкапа, созданного скриптом от Andy Burton вот так:
            xe vm-import filename=`backup file name` sr-uuid=`storage repository uuid`
            где `backup file name` в моём крайнем случае был Ubuntu_Server_16.04.1-2016-11-17_00-00-01.xva (не забывайте, что здесь должен быть полный путь к файлу), а нужный `storage repository uuid`, куда нужно восстановить бэкап(у меня пул серверов), получил командой
            xe sr-list
            Полёт нормальный. XenServer 6.5

            p.s. Все действия надо делать на том сервере, где крутится скрипт бэкапа, даже если восстанавливаемая виртуалка живёт на другом сервере пула.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое