Перейти к основному содержимому

Как отдать точку восстановления из цепочки

Когда использовать​

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

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

Экранов для цепочек в веб-интерфейсе кластера нет: выгрузку запускает вызывающая сторона — GI или собственный планировщик восстановления. Работа с самой цепочкой — её создание, приём потока и ротация — в «Как управлять цепочками резервных копий».

Предусловия​

  • привилегия 14002 (управление цепочками резервных копий) на кластере-хранителе;
  • feature.backup в cluster.options хранителя равна 1; при 0 выгрузка отвечает -25420;
  • версия vStack Center — 3.0.5;
  • цепочка существует, её узел-владелец жив;
  • известны координаты приёмника — адрес узла и порт, которые вернул восстанавливающий кластер, открыв приём у себя;
  • известно короткое имя точки восстановления, которую нужно отдать.

Шаги​

Шаг 1. Возьмите координаты приёмника​

Приём открывает восстанавливающий кластер, а не хранитель. Из его ответа возьмите адрес узла-приёмника и порт: они пойдут в параметры выгрузки. Пока приёмник не открыт, выгрузку запускать бессмысленно — поток некуда подключать.

Шаг 2. Определите точку восстановления​

Укажите короткое имя снимка — суффикс после @, без пути цепочки. Длина от 1 до 128 символов, состав — латинские буквы, цифры и знаки _, ., -. Пробел, кириллицу, слеш и @ внутри имени кластер отклоняет кодом -25430. Выгрузка отдаёт уже существующую точку и нового снимка не создаёт: то, чего в цепочке нет, выгрузить нельзя.

Списка точек внутри цепочки подсистема не отдаёт, поэтому имена держите в своём реестре — рядом с путём цепочки, полученным при её создании.

Шаг 3. Запустите выгрузку​

Запустите выгрузку на кластере-хранителе. Укажите полный путь цепочки, короткое имя точки восстановления и координаты приёмника — адрес его узла и порт.

Необязательный таймаут в секундах ограничивает установку TCP-соединения с приёмником, а не время передачи. Инкрементальная выдача зарезервирована и в текущей версии не работает: выгрузка всегда полная.

Ответ приходит немедленно — это подтверждение ретрансляции: запрос ушёл на узел-владелец пула. Данные в этот момент ещё не переданы.

Шаг 4. Дождитесь итога​

Итог передачи приходит обратным вызовом от узла — с тем же идентификатором, что стоял в запросе. Операции, которая вернёт статус выгрузки по требованию, у подсистемы нет, поэтому обратный вызов — единственный источник результата. Сопоставляйте его с запросом по идентификатору и не считайте подтверждение ретрансляции успехом.

Проверка результата​

Успех подтверждается с двух сторон. На стороне хранителя — обратным вызовом с итогом передачи. На стороне восстанавливающего кластера — состоянием приёма, который он открывал: именно там появляются данные и оттуда разворачивается ВМ.

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

Если не получилось​

-25420, подсистема резервного копирования выключена. У хранителя feature.backup в cluster.options равна 0. Проверка идёт до ретрансляции, поэтому обратного вызова не будет вообще. Обход — включить подсистему на кластере, который отдаёт данные.

-25430, недопустимый путь цепочки или имя снимка. Указан путь не вида <pool>/.backup/<leaf> либо имя точки восстановления содержит символы вне набора «латинские буквы, цифры, _, ., -». Кластер ретранслирует на узлы только пути внутри .backup, поэтому попытка выгрузить датасет ВМ этой операцией отклоняется. Обход — подставлять путь целиком таким, каким его вернуло создание цепочки, а имя точки брать из своего реестра.

-25434, пул цепочки недоступен. Узел-владелец пула не отвечает, и отдавать поток некому. Данные целы. Обход — вернуть узел в работу; перенести цепочку в другой пул средствами подсистемы нельзя.

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

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

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

См. также​

Методы API​

Операции этой страницы в API: backup-dataset-send, vm-backup-restore — см. Справочник API.