четверг, 13 февраля 2020 г.

Руководство администратора Proxmox VE R 6.0 Глава 9.

Proxmox VE Administration Guide

Репликация хранилищ

Средство командной строки pvesr управляет репликацией хранилищ платформы Proxmox VE. Репликация хранилища обеспечивает избыточность для гостей, использующих локальное хранилище, и сокращает время миграции.

Он реплицирует гостевые Тома на другой узел, так что все данные доступны без использования общего хранилища. Репликация использует моментальные снимки для минимизации трафика, передаваемого по сети. Поэтому новые данные отправляются только постепенно, после первоначальной полной синхронизации. В случае сбоя узла гостевые данные по-прежнему доступны на реплицированном узле.
Репликация будет выполняться автоматически через заданные интервалы времени. Минимальный интервал репликации составляет одну минуту, а максимальный-один раз в неделю. Формат, используемый для указания этих интервалов, является подмножеством событий календаря systemd, см. раздел формат расписания:

Каждый гость может быть реплицирован на несколько целевых узлов, но гость не может быть реплицирован дважды на один и тот же целевой узел.

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

Виртуальный гость с активной, в настоящее время, репликацией не может использовать оперативную миграцию. Оффлайн миграция поддерживается в целом. Если вы мигрируете на узел, где данные гостей уже реплицированы, то должны быть отправлены только изменения, произошедшие с момента последней синхронизации (так называемая Дельта), что значительно сократит необходимое время. В этом случае направление репликации также автоматически переключит узлы после завершения миграции.

Например: VM100 в настоящее время находится на nodeA и реплицируется в nodeB. Вы переносите его в nodeB, так что теперь он автоматически реплицируется обратно из nodeB в nodeA. При переносе на узел, где гость не реплицируется, должны передаваться все данные диска. После переноса задание репликации продолжает реплицировать этого гостя на настроенные узлы.

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

  1. Поддерживаемые типы хранения

    Таблица 1. Тип хранилища
    ОписаниеPVE типСоздание снимковСтабильный
    ZFS (local)zfspoolдада
  2. Формат расписания

    Proxmox VE имеет очень гибкий планировщик репликации. Он основан на формате события календаря времени systemd.1 календарные события могут использоваться для обозначения одного или нескольких моментов времени в одном выражении.

    Такое событие календаря использует следующий формат:

    [day(s)] [[start-time(s)][/repetition-time(s)]]
    Это позволяет настроить набор дней, в которые должно выполняться задание. Вы также можете установить одно или несколько времен начала, оно сообщает планировщику репликации моменты времени, когда задание должно начаться. С помощью этой информации мы могли бы создать задание, которая выполняется каждый рабочий день в 10 вечера: 'mon,tue,wed,thu,fri 22', которое можно было бы сократить до: 'mon..fri 22', большинство разумных графиков могут быть написаны вполне интуитивно таким образом.

    1Смотри man 7 systemd.time для получения дополнительной информации
    Внимание!
    Часы устанавливаются в 24-часовом формате.

    Для облегчения и сокращения времени настройки можно задать одно или несколько повторений. Они указывают, что в начальный момент времени и начальный момент плюс все кратные значения повторения будут выполнены репликации. Если вы хотите начать репликацию в 8 утра и повторять ее каждые 15 минут до 9 утра, вы будете использовать: '8:00/15'

    Здесь вы также видите, что если не используется часовое разделение (:), то значение интерпретируется как минута. Если используется такое разделение, то значение слева обозначает час(ы), а значение справа-минуту(ы). Кроме того, вы можете использовать * для задания всех возможных значений.

    Чтобы лучше понять, посмотрите на другие примеры ниже.
    1. Подробная спецификация

      days
      Дни указаны с сокращенной английской версией:sun, mon, tue, wed, thu, fri и sat.. Вы можете указать несколько дней в виде списка, разделенного запятыми. Диапазон дней также можно задать, указав начальный и конечный дни, разделенные"..- например,  mon..fri. Эти форматы также могут быть смешанными. Если значение опущено предполагается. ' * '
      time-format
      Формат времени состоит из списков интервалов часов и минут. Часы и минуты разделяются символом ":". Оба, час и минута, могут быть списком и диапазонами значений, используя тот же формат, что и дни. Сначала идут часы, затем минуты, часы могут быть опущены, если это не нужно, в этом случае '*' принимается за значение часов. Допустимый диапазон значений: 0-23 для часов и 0-59 Для минут.
    2. Примеры

      Таблица 2. Примеры заданий
      Строка заданияАльтернативаЗначение
      mon,tue,wed,thu,frimon..friКаждый рабочий день в 0:00
      sat,sunsat..sunТолько по выходным в 0:00
      mon,wed,friТолько в понедельник, среду и пятницу в 0:00
      12:0512:05Каждый день в 12:05 вечера
      */50/5Каждые пять минут
      mon..wed 30/10mon,tue,wed 30/10Понедельник, Вторник, Среда 30, 40 и 50 минут после каждого полного часа
      mon..fri 8..17,22:0/15Каждый рабочий день каждые 15 минут между 8 утра и 6 вечера и между 10 вечера и 11 вечера
      fri 12..13:5/20fri 12,13:5/20Пятница в 12:05, 12:25, 12:45, 13:05, 13:25 и 13: 45
      12,14,16,18,20,22:512/2:5Каждый день, начиная с 12:05 до 22:05, каждые 2 часа
      **/1Каждую минуту (минимальный интервал)
  3. Обработка ошибок

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

      Это относится только к наиболее распространенным возможным проблемам, в зависимости от вашей установки может быть и другая причина.
      • Сеть не работает.
      • На целевом хранилище репликации не осталось свободного места.
      • Хранилище с тем же идентификатором хранилища, доступным на целевом узле

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

    2. Миграция гостя в случае ошибки

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

      Предположим, что у вас есть два гостя (VM 100 и CT 200), работающих на узле A и реплицирующихся на узел B. узел A потерпел неудачу и не может вернуться в оперативный режим. Теперь вы должны перенести гостя на узел B вручную.
      • Подключитесь к узлу B по ssh или откройте его оболочку через WebUI
      • Проверьте, есть ли кворум кластера
        # pvecm status
      • Если у вас нет кворума, мы настоятельно рекомендуем сначала исправить это и снова сделать узел работоспособным. Только если это невозможно в данный момент, Вы можете использовать следующую команду для обеспечения кворума на текущем узле:
        # pvecm expected 1

        Внимание!
        Если ожидаемые голоса установлены вручную, избегайте изменений, которые влияют на кластер (например, добавление/удаление узлов, хранилищ, виртуальных гостей) любой ценой. Используйте его только для того, чтобы снова запустить жизненно важных гостей или решить проблему кворума.

      • переместите оба гостевых файла конфигурации из исходного узла A в узел B:
        # mv /etc/pve/nodes/A/qemu-server/100.conf /etc/pve/nodes/B/qemu-server/100.conf
        # mv /etc/pve/nodes/A/lxc/200.conf /etc/pve/nodes/B/lxc/200.conf
      • Теперь вы можете стартовать гостей снова:
        # qm start 100
        # pct start 200
        Не забудьте заменить Vmid и имена узлов соответствующими значениями.
    4. Управление задачами

      С помощью веб-интерфейса можно легко создавать, изменять и удалять задания репликации. Кроме того, для этого можно использовать инструмент интерфейса командной строки (CLI) pvesr.

      Панель репликации можно найти на всех уровнях (центр обработки данных, узел, виртуальный гость) в графическом веб-интерфейсе. Они различаются тем, какие задания отображаются: все, только узловые или только гостевые.

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

      Задание репликации определяется уникальным идентификатором для всего кластера. Этот идентификатор состоит из VMID в дополнение к номеру задания. Этот идентификатор должен быть указан вручную, если используется инструмент CLI.
    5. Примеры для интерфейса командной строки

      Создайте задание репликации, которое будет выполняться каждые 5 минут с ограниченной пропускной способностью 10 Мби/с (мегабайт в секунду) для гостя с идентификатором гостя 100.
      # pvesr create-local-job 100-0 pve1 --schedule "*/5" --rate 10
      Отключить активное задание с идентификатором 100-0
      # pvesr disable 100-0
      Включение неактивного задания с идентификатором 100-0
      # pvesr enable 100-0
      Измените интервал выполнения задания с идентификатором 100-0 на один раз в час
      # pvesr update 100-0 --schedule '*/00'


2 комментария:

  1. пропущена команда по тексту:
    "Вы можете использовать следующую команду для обеспечения кворума на текущем узле:"

    ОтветитьУдалить