ATE Documentation portal logo
Помощь
Обновлена 30 октября 2026 г. в 12:05

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

Плейбуки для создания резервных копий экземпляров Tarantool, перевода экземпляров в режим резервирования и восстановления из резервных копий.

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

backup.yml

Плейбук для создания резервных копий экземпляров Tarantool.

Переменные

Переменная

Описание

tarantool_remote_backups_dir

Путь к директории на удалённом сервере, в которой будут собраны резервные копии. Значение по умолчанию: /opt/tarantool/backups.

tarantool_ansible_serial_executors

Количество одновременных процессов резервирования. Значение по умолчанию: 1.

tarantool_fetch_backups

Копировать архивы резервных копий на локальный сервер. Значение по умолчанию: false.

tarantool_fetch_backups_dir

Директория для архивов на локальном сервере. Значение по умолчанию: backups/.

tarantool_backup_wait_snapshot_timeout

Таймаут ожидания создания снимка состояния в секундах. Значение по умолчанию: 1000.

tarantool_backup_wait_snapshot_delay

Интервал между проверками готовности снимка состояния в секундах. Значение по умолчанию: 5.

Примеры

Запуск через коллекцию:

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    -e tarantool_remote_backups_dir=${PATH_TO_BACKUP_DIRECTORY} \    playbooks/backup.yml

Запуск через Docker-образ инсталлятора:

docker run --network host -it --rm \    -v ${PATH_TO_PRIVATE_KEY}:/ansible/.ssh/id_private_key:Z \    -v ${PATH_TO_INVENTORY}:/ansible/inventories/hosts.yml:Z \    -e SUPER_USER_NAME=${SUPER_USER_NAME} \    -e PATH_TO_BACKUP_DIRECTORY=${PATH_TO_BACKUP_DIRECTORY} \    ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \    ansible-playbook -i /ansible/inventories/hosts.yml \    --extra-vars '{        "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",        "super_user":"'${SUPER_USER_NAME}'",        "tarantool_remote_backups_dir":"'${PATH_TO_BACKUP_DIRECTORY}'"    }' \    playbooks/backup.yml

backup_start.yml

Плейбук для перевода экземпляров в режим резервирования. На стороне инсталлятора создаются текстовые файлы — по одному на каждый физический сервер — со списком путей для резервного копирования.

Переменные

Переменная

Описание

path_to_write_backup_list_files

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

Примеры

Запуск через коллекцию:

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    -e path_to_write_backup_list_files=/tmp \    playbooks/backup_start.yml --limit ${LIMIT}

Запуск через Docker-образ инсталлятора:

docker run --network host -it --rm \    -v ${PATH_TO_PRIVATE_KEY}:/ansible/.ssh/id_private_key:Z \    -v ${PATH_TO_INVENTORY}:/ansible/inventories/hosts.yml:Z \    -e SUPER_USER_NAME=${SUPER_USER_NAME} \    ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \    ansible-playbook -i /ansible/inventories/hosts.yml \    --extra-vars '{        "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",        "super_user":"'${SUPER_USER_NAME}'",        "path_to_write_backup_list_files":"/tmp"    }' \    playbooks/backup_start.yml --limit ${LIMIT}

backup_stop.yml

Плейбук для выключения режима резервирования экземпляров.

Примеры

Запуск через коллекцию:

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    playbooks/backup_stop.yml --limit ${LIMIT}

Запуск через Docker-образ инсталлятора:

docker run --network host -it --rm \    -v ${PATH_TO_PRIVATE_KEY}:/ansible/.ssh/id_private_key:Z \    -v ${PATH_TO_INVENTORY}:/ansible/inventories/hosts.yml:Z \    -e SUPER_USER_NAME=${SUPER_USER_NAME} \    ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \    ansible-playbook -i /ansible/inventories/hosts.yml \    --extra-vars '{        "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",        "super_user":"'${SUPER_USER_NAME}'"    }' \    playbooks/backup_stop.yml --limit ${LIMIT}

backup_clean.yml

Плейбук для настройки автоматической очистки резервных копий через cron.

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

Переменные

Переменная

Описание

tarantool_backup_retention_count

Количество хранимых резервных копий. Очистка по количеству.

tarantool_backup_retention_days

Срок хранения резервных копий в днях. Очистка по времени.

tarantool_backup_cleanup_time

Периодичность запуска задачи cron для очистки. Значение по умолчанию: weekly.

Примеры

Запуск через коллекцию (очистка по количеству):

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    -e tarantool_backup_retention_count=7 \    playbooks/backup_clean.yml

Запуск через Docker-образ инсталлятора:

docker run --network host -it --rm \    -v ${PATH_TO_PRIVATE_KEY}:/ansible/.ssh/id_private_key:Z \    -v ${PATH_TO_INVENTORY}:/ansible/inventories/hosts.yml:Z \    -e SUPER_USER_NAME=${SUPER_USER_NAME} \    ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \    ansible-playbook -i /ansible/inventories/hosts.yml \    --extra-vars '{        "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",        "super_user":"'${SUPER_USER_NAME}'",        "tarantool_backup_retention_count": 7    }' \    playbooks/backup_clean.yml

backup_pitr.yml

Плейбук для PITR-резервирования кластера Tarantool 3.x на основе утилиты tt backup: полное и инкрементальное копирование с возможностью восстановления на момент времени.

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

  1. Проверяет входные данные (например, что задано хранилище резервных копий tarantool_pitr_storage).
  2. Строит план копирования (tt backup plan) — один раз на хосте сбора.
  3. Запускает копирование на мастерах наборов реплик (tt backup start). Если на мастере осталась незавершённая предыдущая копия, плейбук принудительно завершает её и повторяет запуск.
  4. Собирает артефакты копии с мастеров на хост сбора.
  5. Выгружает копию в хранилище резервных копий (tt backup upload).
  6. Завершает копирование на мастерах (tt backup finalize).
  7. Проверяет копию в хранилище (tt backup verify) и при заданных политиках хранения удаляет устаревшие копии (tt backup gc). По умолчанию очистка выполняется в режиме dry-run (переменная tarantool_pitr_gc_dry_run, значение по умолчанию: true): устаревшие копии только перечисляются, без удаления. Для реального удаления задайте переменной значение false.

Хост сбора — единственный хост, на котором собираются архивы и выполняются фазы планирования, выгрузки и проверки. Задаётся переменной tarantool_pitr_backup_host; по умолчанию — управляющий узел Ansible (localhost).

Переменные

Основные переменные (полный список и подробное описание — в разделе «Переменные окружения», страница «Переменные PITR-резервирования»):

Переменная

Описание

tarantool_pitr_storage

Хранилище резервных копий для tt backup: ссылка на файл конфигурации хранилища или путь файловой системы. Обязательная переменная.

tarantool_pitr_backup_host

Хост сбора артефактов. Значение по умолчанию: localhost.

tarantool_pitr_backup_type

Тип копии: full или incremental. Значение по умолчанию: incremental.

tarantool_pitr_backup_id

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

tarantool_pitr_keep_full

Количество полных копий для хранения при очистке. Значение по умолчанию: 0 (очистка не выполняется).

tarantool_pitr_keep_days

Срок хранения копий в днях при очистке. Значение по умолчанию: 0 (очистка не выполняется).

Примеры

Запуск через коллекцию:

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    playbooks/backup_pitr.yml

restore.yml

Плейбук для восстановления экземпляров из резервных копий.

Переменные

Переменная

Описание

tarantool_remote_backups_dir

Путь к директории с архивами резервных копий на удалённом сервере. Значение по умолчанию: /opt/tarantool/backups.

tarantool_force_restore

Восстанавливать общие файлы (конфигурацию кластера). Значение по умолчанию: false.

tarantool_allow_alien_backup

Отключить проверку принадлежности резервной копии экземпляру. Значение по умолчанию: false.

tarantool_skip_cleanup_on_restore

Отключить очистку файлов перед восстановлением. Значение по умолчанию: false.

backup_time

Время резервной копии для выбора ближайшей (формат YYYY-MM-DD-HHMMSS). Если не задано, используется самая свежая резервная копия. Значение по умолчанию: null.

Примеры

Запуск через коллекцию:

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    -e tarantool_remote_backups_dir=${PATH_TO_BACKUP_DIRECTORY} \    playbooks/restore.yml

Запуск через Docker-образ инсталлятора:

docker run --network host -it --rm \    -v ${PATH_TO_PRIVATE_KEY}:/ansible/.ssh/id_private_key:Z \    -v ${PATH_TO_INVENTORY}:/ansible/inventories/hosts.yml:Z \    -e SUPER_USER_NAME=${SUPER_USER_NAME} \    -e PATH_TO_BACKUP_DIRECTORY=${PATH_TO_BACKUP_DIRECTORY} \    ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \    ansible-playbook -i /ansible/inventories/hosts.yml \    --extra-vars '{        "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",        "super_user":"'${SUPER_USER_NAME}'",        "tarantool_remote_backups_dir":"'${PATH_TO_BACKUP_DIRECTORY}'"    }' \    playbooks/restore.yml

restore_pitr.yml

Плейбук для PITR-восстановления кластера Tarantool 3.x на момент времени на основе утилиты tt restore.

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

  1. Проверяет входные данные.
  2. Строит план восстановления (tt restore plan) — один раз на хосте восстановления.
  3. Останавливает кластер и переносит директории данных экземпляров в сторону (с суффиксом .pre-restore-<время>) — это позволяет откатить неудачное восстановление.
  4. Распределяет скачанные из хранилища архивы по целевым узлам.
  5. Применяет копию (tt restore apply) — по одному разу на набор реплик, на целевом узле.
  6. После успешного применения удаляет директории .pre-restore-*.

Хост восстановления — хост, на котором выполняется фаза планирования и куда скачиваются манифесты и архивы. Задаётся переменной tarantool_pitr_restore_host; по умолчанию — управляющий узел Ansible (localhost).

Переменные

Основные переменные (полный список и подробное описание — в разделе «Переменные окружения», страница «Переменные PITR-восстановления»):

Переменная

Описание

tarantool_pitr_storage

Хранилище резервных копий для tt restore: значение флага --backup-storage. Обязательная переменная.

tarantool_pitr_restore_target_time

Момент времени T, на который восстанавливается кластер. Если не задан, используется последняя точка восстановления (только для хранилища на файловой системе).

tarantool_pitr_restore_point_label

Метка точки восстановления для выбора цели. Приоритетнее момента времени; для S3-хранилища недоступна.

tarantool_pitr_restore_host

Хост восстановления. Значение по умолчанию: localhost.

tarantool_pitr_restore_replicasets

Наборы реплик для восстановления. Если не заданы, восстанавливаются только наборы реплик хранилищ — с ролями vshard-storage или roles.crud-storage; компоненты без состояния (роутеры и подобные) исключаются из восстановления и загружаются заново.

Примеры

Запуск через коллекцию:

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    playbooks/restore_pitr.yml

Вывод доступных точек восстановления:

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    playbooks/restore_pitr.yml --tags list-points
Была ли статья полезна?