Глава 10. Резервное копирование/ восстановление ВМ

Хорошая стратегия резервного копирования является последней линией обороны против несчастных случаев, например, отказов оборудования, повреждений среды, непредвиденных удалений или неверной настройки. В виртуальной среде стратегия резервного копирования может превратиться в сложную задачу из- за большого числа виртуальных машин, подлежащих такому резервному копированию. В производственной среде с интенсивной нагрузкой новая виртуальная машина может появляться и удаляться в любое время. Без соответствующего плана резервного копирования общая задача резервного копирования может стать трудной для управления. Прошли те дни, когда у нас было всего несколько аппаратных серверов для обслуживания и их резервное копирование было простой задачей. В сегодняшних виртуальных средах решениям резервного копирования приходится иметь дело несколькими десятками, а возможно и сотнями виртуальных машин.

В зависимости от требований бизнеса администратору может потребоваться регулярно выполнять резервное копирование его виртуальных машин вместо простых файлов внутри ВМ. Резервное копирование целой виртуальной машины, помимо всего прочего, требует очень большого объёма пространства, в зависимости от того сколько существует резервных копий. Гранулированное резервное копирование файлов помогает вам быстро восстанавливать только необходимый файл, однако может быть плохим вариантом виртуальный сервер сильно разрушен до момента, в который он стал недоступным.

План восстановления согласно стратегии резервного копирования точно так же важен, поскольку резервное копирование будет полезно только когда мы можем успешно своевременно и надлежащим образом восстанавливать данные после происшествий. В данной главе мы охватим следующие темы:

  • Исследование параметров резервного копирования Proxmox

  • Настройка резервного копирования

  • Настройка снимков

  • Восстановление ВМ

  • Резервное копирование файла настройки

 Параметры резервного копирования Proxmox

В версии Proxmox VE 4.1 существует две опции резервного копирования в стандартной поставке:

  • Полное резервное копирование: Выполняет резервное копирование виртуальной машины целиком

  • Снимки: Осуществляется замораживание состояния ВМ на определённый момент времени

Proxmox 4.1 может выполнять только полное резервное копирование и не может выполнять никакого гранулированного резервного копирования файлов изнутри виртуальной машины. Proxmox также не применяет никаких агентов резервного копирования.

  Полное резервное копирование

Полная резервная копия является полностью сжатой резервной копией виртуальной машины, включая файл настройки. Мы можем взять эту резервную копию и восстановить его локально в том же кластере или в совершенно другом кластере Proxmox. Мы потенциально можем установить ежедневное полное резервное копирование или различные расписания на основе недели. Так как полное резервное копирование фиксирует полную резервную копию всей виртуальной машины, включая все её виртуальные диски, это самый медленный вариант резервного копирования. Он также и самый гарантированный, поскольку конечный файл резервной копии не зависит от оригинальной ВМ. Двумя важнейшими компонентами полного резервного копирования являются режимы резервного копирования и уровень сжатия.

 

Режимы полного резервного копирования

Различные режимы резервного копирования предоставляют различные гарантирование данных и скорости. Для полного резервного копирования существует три типа доступных режимов.

 

Снимок

Снимок (Snapshot) для полного резервного копирования не является тем же снимком виртуальной машины, при котором замораживается определённое состояние ВМ на заданный момент времени. Полный снимок резервной копии происходит при фиксации без какого либо выключения этой ВМ или её временной приостановки. Он также называется резервным копированием в реальном времени (Live backup). Так как резервное копирование происходит при работающей ВМ, нет никакого простоя для данного режима, однако это также и самое продолжительное резервное копирование. В редких случаях используемые файлы могут вызывать ошибки резервного копирования из- за блокировок файлов.

 

Приостановка

В этом режиме (Suspend) резервное копирование осуществляется после временной приостановке или замораживании ВМ.Нет необходимости полностью выключать данную ВМ, таким образом, время простоя умеренно в процессе резервного копирования. По завершению резервного копирования, ВМ восстанавливает свою обычную работу. Этот режим имеет меньшую вероятность ошибок резервного копирования в процессе его выполнения, так как ВМ приостановлена.

 

Полный останов

При данном режиме (Stop) работающая ВМ автоматически выключается или останавливается, а затем включается после завершения своего резервного копирования. Это обеспечивает максимально гарантированный результат или нулевое значение ошибок при резервном копировании, поскольку ВМ не работает совсем. Это также наиболее быстрый режим резервного копирования.

 

Сжатие резервных копий

В Proxmox мы можем фиксировать резервные копии с различными уровнями сжатия. Чем выше уровень, тем меньше пространства будет задействовано для хранения файлов резервных копий, однако при этом также потребляется больше ресурсов ЦПУ для выполнения сжатия. При резервном копировании Proxmox существует три уровня сжатия.

 

Без сжатия

Когда выбран этот уровень (None), для выполнения задачи резервного копирования не применяется никакого сжатия. Хотя это и требует минимальных ресурсов ЦПУ при выполнении задачи резервного копирования, имейте в виду, что это также потребует значительного объёма пространства для хранения файлов резервных копий. Образы виртуального диска Proxmox являются разрежёнными, и это означает, что выделенный образ диска использует только некоторое пространство от всех реальных данных. Оставшийся выделенный объём разряжён или заполнен нулями.

Резервное копирование без сжатия сохранит образ диска так, как если бы оно {не} пыталось сжать пустое пространство. Это приводит к тому, что файл резервной копии занимает то же пространство, которое имеет сам образ диска. Применяйте этот параметр с осторожностью и будьте уверены, что хранилище резервных копий имеет достаточное пространство хранения для размещения несжатых файлов резервных копий.

 

LZO

Это уровень сжатия по умолчанию в Proxmox. LZO предоставляет сбалансированное решение между скоростью и сжатием. Он также имеет наивысшую скорость развёртывания, выполняя такое восстановление ВМ намного более быстрым.

 

GZIP

Этот уровень предоставляет намного более высокое соотношение сжатия, однако также отнимает больше времени на резервное копирование. Из- за увеличенного соотношения сжатия этот уровень потребляет намного больше ресурсов ЦПУ и оперативной памяти. Перед включением этого уровня мы должны удостовериться, что узлы резервного копирования имеют достаточно вычислительной способности.

  Снимки

Снимки (snapshot) замораживают или захватывают текущее состояние виртуальной машины на некий момент времени. Это не полная резервная копия ВМ, так как снимки полностью зависят от оригинальной ВМ. Мы не можем перемещать снимки куда- либо ещё для сохранности. Снимки применяются для откатов к предыдущему состоянию. Так как снимки не делают резервную копию всей виртуальной машины с образами диска, это наиболее быстрый вариант резервного копирования для быстрого сохранения состояния определённой ВМ. В Proxmox мы можем делать снимки работающих ВМ; в этом случае также сохраняется и содержимое работающей оперативной памяти. Таким образом, мы можем вернуться к более ранней ВМ в точности как если бы она работала в момент выполнения снимка.

Хороший вариант использования такого резервного копирования состоит в его выполнении при тестировании программного обеспечения или применении обновлений. Мы можем сделать снимки ВМ перед установкой какого- либо программного обеспечения или применения обновлений, поэтому, если что-то пошло не так после установки, мы можем просто вернуться к предыдущему состоянию за считанные минуты вместо повторной установки виртуальной машины целиком. Это намного быстрее и чище чем деинсталляция самого тестируемого программного обеспечения.

[Совет]Совет

Полное резервное копирование никогда не следует полностью заменять на снимки. Всегда включайте полную резервную копию в стратегию первичного восстановления при катастрофе.

В Proxmox VE 4.1 нет вариантов снимков по расписанию. Все снимки должны выполняться вручную. Для сред с несколькими десятками виртуальных машин выполнение снимков вручную может стать временезатратной задачей. Можно установить расписание снимков при помощи bash, cron и qm, однако эти методы могут иметь дефекты и они известны как нестабильные; более того, они не рекомендуются для промышленных сред.

Если выполняется резервное копирование на виртуальной машине, которая имеет применённые снимки, сами снимки не помещаются в создаваемый файл резервной копии. Задание полного резервного копирования игнорирует все образы снимков. Кроме того, когда удаляется виртуальная машина, также удаляются и все снимки, относящиеся к этой виртуальной машине.

 Настройка хранилища резервного копирования

Разумная стратегия резервного копирования имеет выделенное совместно используемое хранилище для ваших образов резервных копий виесто локальных хранилищ, которые сами используются для дисковых образов. Таким образом мы можем осуществить централизацию местоположения резервных копий и восстанавливать их даже в случае отказа узла Proxmox. Если резервная копия сохраняется локально на том же самом узле, тогда в случае аппаратного сбоя этот узел может стать полностью недоступным, что вызовет задержку реставрации ВМ.

Одним из наиболее популярных вариантов для хранения резервных копий является NFS. В корпоративных или критически важных средах рекомендуемой практикой является выделение для резервных копий кластера со встроенной избыточностью. В средах меньшего размера хорошая избыточность может быть достигнута при применении таких вариантов хранилищ как Gluster или DRBD. После добавления ZFS и Gluster в Proxmox VE, теперь это жизнеспособный вариант превращения узла Proxmox в узел резервного копирования с применением Gluster поверх ZFS, при том что узел всё ещё будет управляться через GUI Proxmox. {Прим. пер.: отметим, что Gluster здесь применяется исключительно для кластеризации ZFS. Это распространённый трюк о котором следует помнить.} К сожалению мы не можем сохранять файлы в хранилище Ceph RBD. {Прим. пер.: Однако, можем настроить NFS поверх CephFS.}

Для отдельного узла хранения резервных копий великолепным решением является FreeNAS без кластерной избыточности. В зависимости от того какая система хранения применяется, первичная цель состоит в хранении резервной копии на отдельном узле вместо использования вычислительного узла. Отсылаем вас к Главе 4, Системы хранения для получения информации о том, как подключать различные системы хранения к Proxmox. Когда хранилище настроено и подключено к Proxmox, нам необходимо убедиться, что тип сохраняемого содержимого настроен надлежащим образом для хранения файлов резервного копирования и количества ротаций резервных копий. Существует два варианта в блоке диалога вашего хранилища для выбора типа содержимого и определения количества ротаций резервных копий. Следующий снимок отображает блок диалога хранилища для хранилища NFS в нашем примере кластера:

 

Рисунок 1



В предыдущем снимке экрана мы выбрали VZDump backup file в ниспадающем списке и ввели 3 в закладке Max backups или закладке количества ротаций резервных копий. Это означает, что хранилище позволит вам сохранять файлы резервной копии и всегда будут оставаться три последние резервные копии. Более старые копии будут автоматически удаляться. Это будет происходить исключительно автоматически в процессе обработки расписания резервного копирования.

При выполнении резервного копирования вручную данное численное значение в действительности не даст вам возможности фиксировать резервные копии вручную если уже существует три хранимые резервные копии в вашем хранилище для ВМ. В этом случае мы должны удалить более старые резервные копии вручную или увеличить это значение для размещения новых делаемых вручную резервных копий. Мы можем удалять файлы резервных копий для определённой ВМ в меню закладки резервных копий данной ВМ или непосредственно из устройства хранения в закладке содержимого. Нам необходимо выбрать подлежащий удалению файл резервной копии и затем кликнуть Remove. Следующий снимок экрана отображает закладку меню резервных копий для нашего контейнера #101:

 

Рисунок 2



[Совет]Совет

Убедитесь что вы установили надлежащее значение для Max Backups, потому что более высокие значения будут оставлять больше файлов резервных копий, потребляя намного больше пространства хранения узла. Слишком большое число файлов резервных копий и недостаток пространства приведут к отказу задач резервного копирования. Мы также можем установить два узла хранения и применять один для хранения частых резервных копий, например, еженедельных, в то время как другой может быть использован для хранения резервных копий большего интервала, например, полугодовых.

В зависимости от избранной стратегии резервного копирования и деловых потребностей может существовать необходимость хранить определённые периоды истории резервных копий. Proxmox допускает как автоматическое, так и ручное удаление любых выходящих за пределы требуемого исторического диапазона копий. Автоматическое удаление выполняется через определённое значение Max backups в блоке диалога резервных копий. Мы можем ввести любое численное значение в пределах от 0 до 365 в качестве Max backups. Например, наше хранилище NFS имеет значение Max backups равное 3. Это означает, что в процессе полного резервного копирования Proxmox будет сохранять три самые новые копии каждой виртуальной машины и удалять все более старые.

Если нам нужно фиксировать резервные копии ежедневно, мы потенциально можем хранить 365 дней или значение резервных копий 1 года на любой определённый момент. Если мы делаем резервную копию каждый второй день, то это будет значение резервных копий 2 лет.

 Настройка полного резервного копирования

Все полные резервные копии находятся в формате tar

, содержащем как файл настройки, так и файл образа виртуального диска. Файлы резервных копий это всё, что вам нужно для восстановления виртуальной машины на любых узлах и в любом хранилище. Файлы полных резервных копий именуются в виде ряда следующих форматов как для виртуальных машин KVM, так и для LXC:


vzdump-lxc-<ct_id>-YYYY_MM_DD-HH_MM_SS.tar
vzdump-lxc-<ct_id>-YYYY_MM_DD-HH_MM_SS.tar.lzo
vzdump-lxc-<ct_id>-YYYY_MM_DD-HH_MM_SS.tar.gz

vzdump-qemu-<vm_id>-YYYY_MM_DD-HH_MM_SS.vma
vzdump-qemu-<vm_id>-YYYY_MM_DD-HH_MM_SS.vma.lzo
vzdump-qemu-<vm_id>-YYYY_MM_DD-HH_MM_SS.vma.fz
 	   

Следующий снимок отображает перечень файлов резервных копий на узле их хранения в том виде, как он виден в GUI Proxmox:

 

Рисунок 3



В Proxmox мы можем составлять расписание автоматизации задач резервного копирования или фиксировать резервные копии вручную для каждой виртуальной машины. Будь то резервное копирование по расписанию или вручную, и для виртуальных машин KVM, и для LXC процесс один и тот же.

  Создание расписания для резервного копирования

расписания можно создавать в параметрах Backup в меню с закладками Центра данных. В последующих разделах мы подробнее рассмотрим каждый блок параметров. Параметры резервного копирования отображают перечень уже созданных расписаний Backup с параметрами для задач Add, Remove и Edit. Блок диалога расписания один и тот же для задач добавления, удаления и изменения. Мы можем кликнуть на добавление для открытия такого блока диалога, как это отображено на следующем экранном снимке:

 

Рисунок 4



На предыдущем снимке экрана мы создали задачу резервного копирования для выполнения дважды в неделю для выбранных виртуальных машин. Блок диалога имеет несколько компонентов, которые должны быть определены для выполнения задач резервного копирования по расписанию.

  Node

Это ниспадающее меню списка, применяемое для выбора узла Proxmox исключительно с целью отображения всех виртуальных машин на этом узле. Оно также устанавливает набор задач для применения только к этим узлам. Например, если мы выберем определённый узел и ВМ в нём для фиксации резервной копии, а также мы впоследствии переместим эту ВМ на другой узел, никакая задача резервного копирования не будет выполняться, так как эта ВМ больше не находится на своём первоначальном узле. По умолчанию выбираются все узлы. В нашем примере мы выбрали все узлы.

  Storage

Это ниспадающий список, используемый для выбора хранилища получателя резервных копий, в котором будут сохраняться все полные резервные копию. Как правило, для хранения резервных копий применяется сервер NFS. Они просты в установке и не требуют большого числа предварительных вложений благодаря их низким требованиям к производительности.

Серверы резервного копирования намного более экономные чем вычислительные узлы, поскольку они не должны выполнять никакие виртуальные машины. Некоторые узлы хранения, например, ZFS, нуждаются в приличных объёмах памяти для надлежащей работы. Допустим, мы выбрали хранилище NFS.

  Day of week

Данный ниспадающий перечень помогает выбрать какой (какие) день или дни недели применяются для задач резервного копирования. Мы можем выбрать множество дней в этом списке. для того, чтобы создать ежедневную задачу резервного копирования, должны быть выбраны все дни в этом списке. В Proxmox VE 4.1 мы можем создавать задачи ежемесячного или годового резервного копирования.

  Start Time

В отличие от Day of week может быть выбран только один пункт. Невозможно выбрать множество времён для резервного копирования в различное время данного дня.

[Совет]Совет

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

  Selection mode

Этот ниспадающий перечень используется для определения того, как ВМ выбираются для резервных копирований. Существует три варианта доступные для выбора. Режим All выберет все виртуальные машины в пределах целого кластера Proxmox или узла, в зависимости от сделанного в ниспадающем списке Node. Режим Exclude selected VMs возьмёт за основу все ВМ за исключением отобранных. Include selected VMs возмёт за основу только выбранные ВМ. Допустим, мы выбрали Include selected VMs.

  Send e-mail to

Введите корректный адрес электронной почты здесь так, чтобы задача резервного копирования Proxmox могла отправлять сообщения электронной почты по выполнению задачи резервного копирования или в случае если в процессе резервного копирования возникли какие- либо проблемы. Сообщение электронной почты содержит всю регистрационную запись данных задач резервного копирования.

[Совет]Совет

Настоятельно рекомендуется чтобы вы вводили здесь адрес электронной почты с тем, чтобы администратор или оператор резервного копирования мог получать ответные сообщения электронной почты о резервном копировании. Это позволит нам определять что в процессе резервного копирования возникла проблема или сколько времени она занимает в действительности, чтобы увидеть любые проблемы с производительностью, возникающие в процессе резервного копирования.

  E-mail notification

Этот ниспадающий перечень применяется для определения того, когда задача резервного копирования должна отсылать автоматические электронные сообщения. Мы можем выбрать этот параметр для отправки сообщения в любом случае или отправлять электронные сообщения только в случае возникновения ошибки или отказа.

  Compression

Данный ниспадающий список используется для выбора уровня сжатия для данной задачи резервного копирования. Для ознакомления с разницей в различных уровнях сжатия отсылаем вас к разделу Сжатие резервных копий ранее в этой главе. По умолчанию выбран метод сжатия LZO.

  Mode

Этот ниспадающий перечень применяется для определения режима резервного копирования данной задачи. Для ознакомления разницы между различными режимами резервного копирования вернитесь к разделу Режимы полного резервного копирования ранее в этой главе. По умолчанию резервное копирование всех работающих виртуальных машин происходит с вариантом Снимка.

  Enable

Эта флаговая кнопка применяется для включения или выключения задачи резервного копирования. Она была недавно добавлена в последнюю версию Proxmox. Пр помощи этого параметра мы можем временно запретить задачу резервного копирования вместо удаления и создания из временной, как это было в случае использования предыдущих версий Proxmox.

Ниже показан вариант Backup с нашей вновь созданной задачей резервного копирования в списке.

 

Рисунок 5



 Создание резервного копирования вручную

Резервное копирование вручную может быть выполнено на определённой виртуальной машине в любой момент времени с помощью GUI Proxmox. Параметр резервного копирования Manual доступен через меню с закладками Backup для каждой виртуальной машины. Из одного и того же меню резервного копирования мы можем выполнять резервное копирование, восстановление и удаление файлов резервных копий.

Для открытия блока диалога создания резервной копии нам нужно кликнуть по кнопке Backup now. Блок диалога резервного копирования Manual чрезвычайно прост. Нам нужно всего лишь выбрать узел получатель Storage, Mode резервного копирования и уровень Compression, как это отображено на экранном снимке ниже:

 

Рисунок 6



 Создание снимков

Снимки являются великолепным способом для консервации определённого состояния виртуальной машины. Это гораздо быстрее чем полное резервное копирование, поскольку при нём не копируются все необходимые данные. Снимок не является действительной резервной копией при таком подходе и не выполняет резервное копирование гранулированного уровня. Он захватывает состояние в определённый момент времени и позволяет выполнять откат к такому предыдущему состоянию.

Снимок является великолепным функционалом, который можно применять между полным резервным копированием. Параметр Snapshot можно найти в меню с закладками Snapshots определённой виртуальной машины. Заново установленные ВМ без каких- либо снимков появятся в меню Snapshots, как это показано на следующем снимке экрана:

 

Рисунок 7



Сам процесс создания моментального снимка очень прост. Для открытия диалогового блока кликните Take Snapshot, а затем просто введите Name, сделайте выбор содержимого RAM или отмените его, а также наберите некоторое описание. Текстовый блок Name не допускает никаких пробелов, а имя должно начинаться с буквы из набора букв и цифр. Следующий снимок экрана отображает блок диалога создания Snapshots для нашего примера VM #112.

 

Рисунок 8



[Замечание]Замечание

Имейте в виду, что когда вы выбираете включение RAM в состав снимка, чем больше оперативной памяти выделено данной виртуальной машине, тем больше времени займёт создание моментального снимка. Но в любом случае это остаётся более быстрым, чем полное резервное копирование.

Функциональность Snapshot доступна как для виртуальных машин KVM, так и для LXC. Следующий снимок экрана отображает параметр Snapshot со вновь созданным снимком:

 

Рисунок 9



Если мы хотим вернуться назад к образу моментального снимка, просто выберите соответствующий снимок для возврата и кликните Rollback. Он выдаст вам вопрос действительно ли вы хотите откатить, как это отображено на следующем снимке экрана:

 

Рисунок 10



[Замечание]Замечание

Имейте в виду, что когда вы выполняете откат к более раннему состоянию виртуальной машины, это уничтожит все изменения, которые были произведены для этой виртуальной машины между временем отката и снимком, к которому этот откат осуществляется.

 Восстановление ВМ

Как и в случае резервного копирования, с помощью GUI Proxmox мы также можем восстанавливать виртуальные машины. ВМ могут быть восстановлены посредством закладки меню Backup определённой ВМ или путём выбора файла в списке содержимого хранения. Если восстановление выбрано через опции резервного копирования ВМ, тогда идентификатор такой ВМ не может быть изменён. Чтобы лучше это понять, давайте рассмотрим следующий пример:

 

Рисунок 11



На предыдущем снимке экрана мы находимся в опции Backup для VM #112. Так как опция резервного копирования отображает список всех хранимых на таком узле хранения резервных копий их файлов, мы можем увидеть файлы резервных копий для VM #110. Если выберем файл резервной копии и затем кликнем на Restore, у нас не будет возможности восстановить VM #110 на самого себя. Вместо этого он в действительности заменит VM #112. Следующий снимок отображает блок диалога Restore в случае, когда VM ID не определён:

 

Рисунок 12



Чтобы восстановить файл резервной копии с его первоначальным VM ID, нам нужно выбрать файл резервной копии из меню с закладками содержимого нашего хранилища, как это отображено на следующем экранном снимке:

 

Рисунок 13



Если мы выберем файл резервной копии для VM #110 из нашего списка содержимого, а затем кликнем на Restore, у нас будет возможность определить VM ID в блоке диалога Restore, как это показано на снимке экрана ниже:

 

Рисунок 14



Если же VM ID сохраняется, то существующая в вашем кластере виртуальная машина с тем же самым идентификатором будет удалена и будет восстановлена из версии резервной копии. Если мы применим другой идентификатор перед тем, как восстановить её, тогда мы будем иметь точную копию оригинальной ВМ с другим идентификатором ВМ.

[Замечание]Замечание

Один важный момент, о котором не следует забывать состоит в том, что полная резервная копия, создаваемая для виртуальной машины с форматом образа qcow2 или vmdk может быть восстановлена для локальных, CephFS или NFS- подобных хранилищ, а виртуальная машина с форматом образа RAW может быть восстановлена практически с любой системы хранения. Хранилища RBD или LVM не поддерживают такие типы образов как qcow2 или vmdk.

Кроме этого не существует реставрации для образов снимков. Снимки могут быть только откачены до некоего предыдущего состояния.

 Резервное копирование/ восстановление через CLI

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

  Резервное копирование через CLI

Команда для фиксации резервной копии и в виртуальных машинах KVM, и в LXC одна и та же. Ниже приведём формат для резервного копирования:


# vzdump <vmid> <options>
 	   

Существует длинный список параметров vzdump которые могут быть применены в этой команде. Ниже просто несколько из наиболее часто употребляемых.

Параметр Описание

-all

Значение по умолчанию равно 0. Этот параметр будет делать резервные копии всех доступных машин узла Proxmox.

-bwlimit

Регулирует полосу пропускания вашего резервного копирования в KBPS.

-compress

Значение по умолчанию установлено в lzo. Эта настройка устанавливает тип сжатия или запрещает его. Доступными значениями являются 0, 1, gzip и lzo.

-mailto

Это адрес электронной почты применяемый для отправки отчётов о резервном копировании.

-maxfiles

Содержит численное значение. Устанавливает максимальное число сохраняемых файлов резервных копий.

-mode

Значение по умолчанию Stop. Устанавливает режим резервного копирования. Доступны параметры snapshot, stop и suspend.

-remove

Значение по умолчанию равно 1. Устанавливает удаление более старые резервные копии если действие приводит к превышению значения maxfiles.

-lockwait

Максимальное время в минутах ожидания глобальной блокировки. Значение по умолчанию равно 180.

-storage

Определяет значение идентификатора хранилища для хранилища получателя резервной копии.

-tmpdir

Определяет значение временного каталога для хранения файлов в процессе резервного копирования. Это необязательная опция.

  Восстановление через CLI

Хотя для резервного копирования и применяется одна и та же команда для KVM и LXC, для восстановления виртуальных машин KVM и LXC доступны отдельные команды:

  • qmrestore: для восстановления ВМ на базе KVM

  • pct restore: для восстановления контейнеров LXC

Ниже приводится формат команды для восстановления ВМ KVM из командной строки:


#qmrestore <backup_file> <new/old_vmid> <options>
 	   

Основываясь на предыдущем {формате}, если мы хотим выполнить восстановление нашего примера KVM #110 из резервной копии в локальное хранилище, это приведёт к следующему:


#qmrestore /var/lib/vz/dump/vzdump-qemu-110-2015_12_13-20_24_26.vma.lzo 110 –storage local
 	   

Ниже приводятся параметры, которые можно применять с командой qmrestore:

Параметр Описание

-force <int>

Булево значение равно 0 или 1. Этот параметр позволяет перезаписывать существующую ВМ. Используйте его с предосторожностями.

-unique <int>

Булево значение равно 0 или 1. Этот параметр назначает произвольный случайно выбранный уникальный адрес Ethernet для интерфейса создаваемой виртуальной машины.

-pool <string>

Эта имя пула для добавления к создаваемой ВМ.

-storage <string>

Это идентификатор хранилища для хранилища получателя, в котором будет восстанавливаться образ диска данной ВМ.

Ниже приводится формат команды восстановления контейнеров LXC из командной строки:


#pct restore <ct_id> <backupfile> <options>
 	   

Основываясь на предыдущем формате команды, если нам нужно восстановить наш пример контейнера #101 в локальное хранилище, то это приведёт к следующему:


#pct restore 101 /var/lib/vz/dump/vzdump-lxc-101-2016_02_25-18_49_04.tar.lzo –storage local
 	   

Ниже приводятся параметры, которые можно применять с командой pct restore:

Параметр Описание

-force <int>

Булево значение равно 0 или 1. Этот параметр позволяет перезаписывать существующий контейнер. Используйте его с предосторожностями.

-cpulimit <int>

Значение из диапазона от 0 до 128 со значением по умолчанию, равным 0. Определяет число ЦПУ или время ЦПУ. Значение 0 определяет отсутствие ограничений.

-cpuunits <int>

Значение из диапазона от 0 до 500 000 со значением по умолчанию, равным 1 024. Определяет вес ЦПУ данной ВМ относительно остальных ВМ.

-console <int>

Значение по умолчанию равно 1. Определяет число подключённых к контейнеру консолей.

-hostname <string>

Устанавливает имя хоста данного контейнера после выполнения команды восстановления.

-memory <int>

Значение по умолчанию равно 512. Определяет объём выделяемой контейнеру памяти.

-swap <int>

Значение по умолчанию равно 512. Определяет размер области подкачки для данного контейнера.

-password <string>

Устанавливает пароль root в данном контейнере по окончанию комадны восстановления.

-storage <string>

Определяет идентификатор хранилища для хранилища получателя, в котором будет восстанавливаться данный контейнер.

  Снятие блокировки с ВМ после ошибки резервного копирования

Иногда процесс резервного копирования может быть прерван до его завершения вследствие различных проблем, например, таких как отказ узла хранения резервных копий, потеря связи в сети, очень большие образы виртуальных дисков и тому подобные. Прежде чем приступать к процессу реального резервного копирования, Proxmox размещает глобальную блокировку на эту ВМ с тем, чтобы множество задач резервного копирования не могло выполняться на одном и том же узле. Если резервное копирование не завершилось успешно, такая блокировка иногда остаётся на своём месте и не удаляется автоматически. Если мы пытаемся запускать/ останавливать такую ВМ, мы можем увидеть сообщение об ошибке, которое информирует нас о том, что данная ВМ заблокирована.

В таком случае нам необходимо разблокировать данную ВМ вручную для восстановления её нормальной работы. Подобная разблокировка не может быть выполнена в GUI Proxmox и выполняется исключительно в CLI. Команда должна выполняться на том узле, на котором находится данная ВМ. Следующая команда выполнит разблокирование заблокированной на узле Proxmox ВМ:


# qm unlock <vm_id>
 	   

 Файл настройки резервного копирования

Файла настройки резервного копирования в Proxmox делает доступным применение более расширенных возможностей. Например, если вы хотите ограничить скорость резервного копирования таким образом, чтобы задача резервного копирования не потребляла всю доступную полосу пропускания сетевой среды, мы можем ограничить её при помощи параметра bwlimit. В Proxmox VE 4.1 файл настройки не может быть изменён в GUI. Это должно быть выполнено при помощи CLI с использованием редактора. Файл настройки резервного копирования можно найти в /etc/vzdump.conf. Ниже приведён файл vzdump.conf по умолчанию во вновь созданном кластере Proxmox:


# tmpdir: DIR
# dumpdir: DIR
# storage: STORAGE_ID
# mode: snapshot|suspend|stop
# bwlimit: KBPS
# ionice: PRI
# lockwait: MINUTES
# stopwait: MINUTES
# size: MB
# maxfiles: N
# script: FILENAME
# exclude-path: PATHLIST
# pigz: N:
 	   

Все параметры по умолчанию ограждены комментарием в этом файле, так как Proxmox имеет набор параметров по умолчанию, уже закодированных в операционной системе. Изменение файла vzdump.conf перепишет установки по умолчанию и позволит нам выполнить персональные настройки резервного копирования Proxmox.

  #bwlimit

Наиболее часто вариантом изменения параметра в vzdump.conf является регулировка скорости резервного копирования. Обычно это делается в случае удалённо сохраняемых резервных копий и перегруженных интерфейсов в случаях, когда интерфейс резервного копирования тот же, что применяется для обмена вашими производственными ВМ. Значение должно определяться в кБ/c или килоБайтах в секунду. Например, чтобы ограничить резервное копирование в 200МБ/с, выполните следующую регулировку:


bwlimit: 200000
 	   

  #lockwait

Резервное копирование Proxmox применяет глобальную блокировку файла для предотвращения одновременной работы множества экземпляров. Большее число экземпляров размещают дополнительную нагрузку на ваш сервер. Значение ожидания блокировки по умолчанию в Proxmox равно 180 минутам. В зависимости от различных виртуальных окружений и числа виртуальных машин, значение времени ожидания блокировки может иметь потребность в его увеличении. Если предел требует значения 10 часов, или 600 минут, отрегулируйте этот параметр следующим образом:


lockwait: 600
 	   

Блокировка предотвращает миграцию или выключение ВМ в процессе выполнения задачи резервного копирования.

  #stopwait

Это максимальное значение времени в минутах, которое процесс резервного копирования будет ожидать, пока ВМ не остановится. Вариантом применения такого сценария является ВМ, которая требует намного более длительного времени останова; например, сервер обмена сообщениями или сервер базы данных. Если ВМ не завершит останов в пределах установленного времени, для такой ВМ будет пропущено резервное копирование.

  #script

Существует возможность создания сценария резервного копирования и его привязки к задаче резервного копирования. Такой сценарий в основном устанавливает инструкции, которые должны быть вызваны в процессе задач полного резервного копирования для выполнения различных относящихся к резервному копированию задач, например, запуск/ останов резервного копирования, выключение/ временная приостановка ВМ и тому подобное. Мы можем персонально настраивать сценарий следующим образом:


script: /etc/pve/script/my-script.pl
 	   

  #exclude-path

Чтобы игнорировать определённые каталоги при резервном копировании воспользуйтесь параметром исключения пути. Все пути должны вводиться в одной строке без прерываний. Имейте в виду, что этот параметр действует исключительно для контейнеров OpenVZ:


exclude-path: "/log/.+" "/var/cache/.+"
 	   

Предыдущий пример исключит все файлы и каталоги в /log и /var/cache. Чтобы исключить вручную из резервного копирования другие каталоги, просто используйте следующий формат:


exclude-path: "/<directory_tree>/.+"
 	   

  #pigz

Говоря проще, pigz делает возможным применение множества потоков при множестве ядер в процессе резервного копирования со сжатием gzip. Стандартный процесс gzip использует единственное ядро, что объясняет более медленное резервное копирование. Используя пакет pigz, мы можем известить свой процесс резервного копирования применять множество ядер, тем самым ускоряя процесс резервного копирования и восстановления. Pigz в своей основе является gzip, однако с поддержкой множества ядер. По умолчанию он не установлен в Proxmox. Мы можем установить его при помощи следующей команды:


# apt-get install pigz
 	   

Чтобы разрешить pigz для резервного копирования, нам необходимо выбрать уровень сжатия для резервного копирования gzip в GUI. Затем, следующая опция pigz в файле настройки резервного копирования делает доступной функциональность pigz:


pigz: 1
 	   

По умолчанию, это значение установлено в значение 0 и используется для запрета использования pigz. Значение 1 использует половину от общего числа ядер в узле, в то время как значение, большее чем 1 создаёт заданной число потоков на основе этого значения. Определяемое значение не должно превосходить максимального числа ядер ЦПУ данного узла.

[Замечание]Замечание

Здесь стоит отметить, что pigz не быстрее и не превосходит уровень сжатия lzo, однако когда используется максимальное сжатие, например, gzip, тогда применение pigz значительно уменьшит время резервного копирования в процессе резервного копирования со сжатием на максимальном уровне.

 Выводы

В этой главе мы изучили функциональность резервного копирования и восстановления в Proxmox, как их настраивать и как применять их в качестве правильного плана на случай катастрофы. Не существует замены для резервного копирования данных для случая, когда вы сталкиваетесь с катастрофой, при которой данные подвергаются риску. Настолько же, насколько важно резервное копирование, также важна возможность восстановления, поскольку файлы резервного копирования не будут ничего значить если невозможно восстановить их когда это требуется. Хотя Proxmox и не обеспечивает всё что вам нужно, например, резервное копирование гранулированных файлов, резервное копирование виртуальной машины является очень полезным. Функциональность резервного копирования в платформе Proxmox проверена на надёжность в промышленных окружениях и в процессе реальных сценариев катастроф.

В следующей главе мы собираемся рассмотреть потребности поддержания кластера в соответствии с требованиями времени и то как применять новые редакции или исправления на регулярной основе.