Управление конфигурациями в ADBM

Конфигурация бэкапа

Обзор

В ADBM конфигурация бэкапа (backup configuration) означает набор опций, используемых для формирования бинарных бэкапов ADB. Эти опции включают в себя пути для сохранения бэкапов, уровни логирования, тайм-ауты, настройки сжатия данных и так далее. ADBM поддерживает несколько версий конфигураций. Но в каждый момент времени может быть только одна активная версия, которая отмечена статусом current в web-интерфейсе.

Возможные операции с конфигурациями описаны ниже. Все операции запускаются на вкладке Configuration → Backup configuration. Чтобы открыть эту вкладку, выполните шаги:

  1. Откройте страницу Backup manager в web-интерфейсе ADB Control.

  2. Нажмите на имя кластера ADB в таблице, расположенной в секции Clusters открывшейся страницы.

    Выбор кластера ADB
    Выбор кластера ADB
    Выбор кластера ADB
    Выбор кластера ADB
    ПРИМЕЧАНИЕ

    Начиная с версии ADBM 2.5.0 рядом с именем каждого кластера выводится его уникальный идентификатор в системе.

  3. Выберите вкладку Configuration → Backup configuration.

    Вкладка Configuration → Backup configuration
    Вкладка Configuration → Backup configuration
    Вкладка Configuration → Backup configuration
    Вкладка Configuration → Backup configuration

Изначально конфигурации в списке отсутствуют. Чтобы начать работу с бэкапами в ADBM, требуется добавить новую конфигурацию.

Ограничения
  • ADBM не поддерживает топологию кластера из одного сегмент-хоста с включенным зеркалированием. Для таких кластеров формируется ошибка при попытке сохранения конфигурации. При отсутствии такого ограничения возникли бы дубликаты в конфигурации pgBackRest для каждой stanza.

  • Если перед редактированием конфигурации изменилась топология кластера (путем применения действия Expand в ADCM), конфигурация не применится, пока есть хотя бы один валидный бэкап в ADBM. Это связано с тем, что после применения конфигурации на кластере с измененной топологией все предыдущие бэкапы автоматически становятся невалидными. Поэтому в таких случаях необходимо сначала явно удалить все имеющиеся бэкапы, а затем изменить конфигурацию.

Добавление новой конфигурации

ВАЖНО
  • Обратите внимание, что в результате сохранения любой конфигурации (даже без настроенных расписаний) к кластеру применяется archive_command и запускается процесс формирования WAL.

  • Репозиторий, который используется в настройках конфигурации, может быть одним и тем же для нескольких резервных копий. Каждой конфигурации может соответствовать список резервных копий, сделанных для этой конкретной конфигурации. Таким образом, мы можем получить наборы бэкапов, которые связаны с разными конфигурациями, но на самом деле хранятся в одном репозитории. ADBM отмечает резервные копии для удаления в соответствии с политиками очистки, учитывая комбинацию типа репозитория, пути и конечной точки (в случае S3). Таким образом, в случае если вы используете разные конечные точки для одного репозитория S3, действие Cleanup будет рассматривать их как различные репозитории и удалять резервные копии, которые должны быть сохранены.

  1. Откройте вкладку Configuration → Backup configuration, как описано выше.

  2. Заполните поля, расположенные в секциях General configuration, Timeout, Repository и Compression. При заполнении полей обратите внимание на следующее:

    • Обязательные параметры выделены красным цветом.

    • Для параметров, определяющих время, допускаются следующие единицы измерения:

      • ms — миллисекунды;

      • sec — секунды;

      • min — минуты;

      • hr — часы;

      • d — дни;

      • w — недели.

    • Для параметров, определяющих объем данных, можно использовать следующие единицы измерения:

      • b — байты;

      • kb — килобайты;

      • mb — мегабайты;

      • gb — гигабайты.

    • При заполнении параметров, обозначающих время или объем данных, используйте следующий формат: <value><unit> (без пробела), где <value> — количество; <unit> — единица измерения (см. выше). Например, 1min, 2hr. Если необходимо составное значение, используйте пробел (например, 30min 30sec).

    • Нажав на иконку qm dark qm light, которая появляется справа от названий некоторых полей во время их заполнения, можно вывести справочную информацию по полям: допустимые единицы измерения, минимальное и максимальное значения и так далее.

      General configuration
      Параметр Описание Значение по умолчанию

      Number of full backups

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

      3

      Number of differential backups

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

      6

      Total number of backups

      Общее число бэкапов, возможное для текущего кластера, включая бэкапы в статусах Stopped и Failed, не подлежащие удалению согласно политикам действия Cleanup. Перед созданием каждого бэкапа осуществляется проверка того, не превышен ли указанный в этом параметре лимит

      40

      File Log level

      Уровень логирования.

      Возможные значения:

      • off — отсутствие логов;

      • error;

      • warn;

      • info;

      • detail;

      • debug;

      • trace.

      info

      Archive command

      Команда, выполняемая, когда файлы WAL (Write Ahead Log) передаются в archive directory. Если значение параметра Archive command изменяется, то при применении конфигурации кластер ADB автоматически перезапускается (для изменения значения GUC archive_command).

       
      Префикс имени конфигурации stanza для сегментов, используемый в Archive command, должен совпадать со значением Stanza template (см. ниже): --stanza=<Stanza template>%c

      PGOPTIONS=\"-c gp_session_role=utility\" /usr/lib/gpdb/bin/pgbackrest --stanza=seg%c archive-push %p

      Archive timeout

      Максимальное время, в течение которого каждый WAL-сегмент (необходимый для консистентности бэкапа) должен достигнуть архивного репозитория

      1min

      Stanza template

      Префикс имени конфигурации stanza для сегментов. Должен совпадать с префиксом, используемым в Archive command (см. выше): --stanza=<Stanza template>%c

      seg

      Log path

      Путь к месту хранения логов

      /home/gpadmin/gpAdminLogs

      Exclude path

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

      • pg_log/gp_era

      • backups

      • gpperfmon/data/

      • gpbackup_history.yaml

      Секция General configuration
      Секция General configuration
      Секция General configuration
      Секция "General configuration"
      Timeout
      Параметр Описание Значение по умолчанию

      Database query timeout

      Устанавливает тайм-аут для запросов к базе данных, включая функции запуска/остановки резервного копирования, которые могут занять значительное время. Следует установить большое значение, если нет уверенности, что функции быстро возвращают результат. Значение Database query timeout должно быть меньше, чем Protocol timeout

      30min

      Protocol timeout

      Устанавливает время, в течение которого локальный или удаленный процесс может ожидать получения нового сообщения на протокольном уровне. Использование тайм-аута предотвращает бесконечное ожидание со стороны процессов. Значение Protocol timeout должно быть больше, чем Database query timeout

      30min 30sec

      I/O timeout

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

      1min

      Job wait timeout

      Тайм-аут ожидания захвата блокировки на уровне кластера перед началом выполнения задачи (job)

      15min

      Секция Timeout
      Секция Timeout
      Секция Timeout
      Секция Timeout
      Storage
      Параметр Описание Значение по умолчанию

      Storage

      Хранилище, настроенное на вкладке Storages

       — 

      Relative path

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

       — 

      Bundle size

      Целевой размер бандлов с файлами. Бандл (bundle) означает группировку отдельных файлов в один перед формированием бэкапа. Значение параметра не рекомендуется устанавливать слишком большим, поскольку при повторных попытках снятия бэкапов будет необходимо формировать весь бандл целиком

      100mb

      Bundle limit

      Ограничение на размер файлов, включаемых в бандл (см. Bundle size выше). Файлы большего размера будут сохраняться отдельно (вне бандла). Файлы в бандлах не могут быть переиспользованы при возобновлении бэкапа (resume) — поэтому параметр фактически контролирует файлы для возобновления бэкапов

      2mb

      Use block incremental backup

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

      false

      Секция Storage
      Секция Storage
      Секция Storage
      Секция Storage
      Workspace
      Параметр Описание Значение по умолчанию

      Temporary directory

      Директория, используемая для временного размещения данных во время выполнения действия Partial restore.

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

      /tmp/adbm/table_restore

      Port base

      Базовый номер порта, используемый во время выполнения действия Partial restore. Фактический номер порта для каждого сегмента будет определяться как сумма <Port base> + <dbId>, где <dbId> — это значение gp_segment_configuration.dbid, соответствующее сегменту.

      Возможные значения: [1025,65035]

      12000

      Max processes per host

      Максимальное число параллельных процессов, которое может работать на одном сегмент-хосте во время выполнения действия Partial restore.

      Возможные значения: [1,100]

      1

      Секция Workspace
      Секция Workspace
      Секция Workspace
      Секция Workspace
      Compression
      Параметр Описание Значение по умолчанию

      Compression type

      Алгоритм сжатия данных.

      Возможные значения:

      • none — сжатие данных не используется;

      • bz2;

      • gz;

      • lz4;

      • zst.

      gz

      Compression level

      Уровень сжатия данных. Возможные значения: 1 — 9

      6

      Max processes to use for compress/transfer

      Максимальное количество процессов, используемых на каждом сегменте для сжатия/передачи данных

      1

      Buffer size

      Размер буфера для операций I/O

      1mb

      Секция Compression
      Секция Compression
      Секция Compression
      Секция Compression
  3. Нажмите Save. Эта кнопка расположена до и после секций с параметрами.

    Сохранение конфигурации
    Сохранение конфигурации
    Сохранение конфигурации
    Сохранение конфигурации
  4. В результате запускается действие Apply backup configuration. Это действие, в свою очередь, порождает несколько дочерних действий (subactions). Просмотреть их можно на вкладке Actions (см. Просмотр действий в ADBM).

    В версии ADBM 2.6.5 появилась возможность перейти к вкладке Actions и посмотреть информацию о действии, нажав на ссылку Apply backup configuration в поле Action created, которая становится доступна после сохранения конфигурации.

До успешного завершения всех действий конфигурация будет иметь статус draft. . После успешного применения действий конфигурация получает статус current. Наряду со статусом, становится доступна следующая информация о конфигурации:

  • Номер версии (начиная с 1).

  • Имя пользователя, создавшего текущую версию.

  • Дата создания в формате DD/MM/YYYY.

    Успешный результат
    Успешный результат
    Успешный результат
    Успешный результат

Редактирование конфигурации

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

  1. Откройте вкладку Configuration → Backup configuration, как описано выше.

  2. В списке доступных версий выберите ту, на основе которой необходимо создать новую. Значения всех параметров выбранной версии выводятся под списком версий (недоступные для редактирования).

    ПРИМЕЧАНИЕ

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

    Выбор версии
    Выбор версии
    Выбор версии
    Выбор версии
  3. Нажмите Create new.

  4. Внесите необходимые изменения в секции General configuration, Timeout, Repository и Compression. Параметры в этих секциях полностью идентичны описанным выше.

  5. Нажмите Save для добавления новой версии конфигурации. Эта кнопка расположена до и после секций с параметрами.

    Сохранение новой версии конфигурации
    Сохранение новой версии конфигурации
    Сохранение новой версии конфигурации
    Сохранение новой версии конфигурации
  6. В результате запускается действие Apply backup configuration. Это действие, в свою очередь, порождает несколько дочерних действий (subactions). Просмотреть их можно на вкладке Actions (см. Просмотр действий в ADBM).

  7. После успешного применения всех действий новая версия конфигурации становится доступной на вкладке Configuration и приобретает статус current, а прошлая версия переводится в статус previous.

    ПРИМЕЧАНИЕ
    • ADBM использует версию конфигурации, добавленную последней.

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

    Новая версия конфигурации
    Новая версия конфигурации
    Новая версия конфигурации
    Новая версия конфигурации

Черновики конфигураций

В ADBM 1.6.3 добавлен начальный статус draft для конфигураций бэкапов. Этот статус присваивается всем конфигурациям при попытке их сохранения до успешного применения всех действий и перевода в статус current. Однако, если конфигурация не может быть успешно провалидирована, она остается в статусе draft — во избежание повторного ввода всей информации в дальнейшем. Черновик конфигурации можно отредактировать (и попытаться повторно применить) либо удалить, нажав на кнопки Edit и Delete, соответственно.

Начиная с версии 1.7.3 в ADBM доступен дополнительный статус verified, означающий, что валидация конфигурации успешно завершена, однако во время ее применения возникла ошибка. Конфигурации в статусе verified могут быть отредактированы либо удалены, как и черновики.

Конфигурация в статусе draft
Конфигурация в статусе draft
Конфигурация в статусе draft
Конфигурация в статусе draft

Расписание

Вкладка Configuration → Schedule позволяет выбрать расписание для различных операций, связанных с бэкапами, таких как формирование бэкапов различных типов, создание точек восстановления и очистка данных. Вкладка доступна начиная с версии ADBM 2.5.0, до этого расписания являлись частью конфигурации бэкапа и заполнялись наряду с другими параметрами в разделе Configuration → General configuration.

Вкладка Configuration → Schedule
Вкладка Configuration → Schedule
Вкладка Configuration → Schedule
Вкладка Configuration → Schedule

Расписания, доступные для заполнения на вкладке Configuration → Schedule, описаны ниже.

Поля вкладки Configuration → Schedule
Параметр Описание

Full Backup schedule

Расписание для автоматического создания полных (full) бэкапов. Если бэкапы предполагается формировать вручную, оставьте переключатель напротив поля в неактивном состоянии

Differential backup schedule

Расписание для автоматического создания дифференциальных (differential) бэкапов. Если бэкапы предполагается формировать вручную, оставьте переключатель напротив поля в неактивном состоянии

Incremental backup schedule

Расписание для автоматического создания инкрементных (incremental) бэкапов. Если бэкапы предполагается формировать вручную, оставьте переключатель напротив поля в неактивном состоянии

Restore point creation schedule

Расписание для автоматического создания точек восстановления (restore points). Если точки восстановления предполагается формировать вручную, оставьте переключатель напротив поля в неактивном состоянии

Cleanup schedule

Расписание для автоматического удаления избыточных бэкапов (см. Number of full backups и Number of differential backups выше) и бэкапов со статусами failed и invalid. Если процедуру очистки предполагается осуществлять вручную, оставьте переключатель напротив поля в неактивном состоянии

Для ввода какого-либо расписания переведите в активное положение соответствующий ему переключатель и введите cron-выражение в ставшем доступным поле ввода.

Чтобы перейти к альтернативному способу заполнения расписания, нажмите на иконку cron dark cron light — в результате откроется окно Cron expression generator, где можно установить расписание путем выбора секунд, минут, часов, дней, месяцев и лет. Выбранные на форме параметры автоматически трансформируются в cron-выражение, которое будет сохранено как значение исходного поля с расписанием. Выражение и его описание можно увидеть в верхней части окна. Для сохранения текущего выражения и возврата на основную страницу Configuration → Schedule нажмите Save.

Окно Cron expression generator
Окно Cron expression generator
Окно Cron expression generator
Окно Cron expression generator

Для сохранения всех изменений, введенных в форме Configuration → Schedule, нажмите Save; для их отмены — Revert.

Хранилища

В ADBM хранилище (storage) — это место, где хранятся резервные копии данных. Начиная с ADBM версии 2.6.5 хранилища представляют с собой отдельные объекты, которые вы можете создавать и изменять, и которые могут быть использованы в нескольких конфигурациях бэкапов. Для использования хранилища вы можете выбрать его в секции Storage в конфигурации бэкапа.

Добавление нового хранилища

  1. Откройте вкладку Configuration → Storages и нажмите Add storage.

    Вкладка Configuration → Storages
    Вкладка Configuration → Storages
    Вкладка Configuration → Storages
    Вкладка Configuration → Storages
  2. Заполните поля в секциях Alert settings for storage и General, описанные ниже. Для S3-хранилищ также заполните поля секции s3 configuration.

  3. Нажмите Save.

Alert settings for storage
Параметр Описание Значение по умолчанию

Almost Full

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

80

Critical

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

90

General
Параметр Описание Значение по умолчанию

Storage name

Уникальное название хранилища. Используется для выбора хранилища в конфигурации

 — 

Repository type

Тип репозитория.

Возможные значения:

  • posix

  • s3

  • cifs

posix

Repository path

Репозиторий, в котором будут храниться бэкапы и архив WAL-сегментов. Указанная директория должна быть предварительно создана и доступна с хостов Master и Segment. Можно использовать shared-директорию NFS, которая подключена ко всем сегмент-хостам. Если в кластере настроено зеркалирование сегментов, не используйте локальную директорию (созданную на сегментах) — в этом случае на хостах с зеркалами не будет необходимых stanza.

Убедитесь, что вы установили один и тот же путь к репозиторию для соответствующих друг другу первичных (primary) и зеркальных (mirror) сегментов

 — 

S3 bucket size

Объем дискового пространства, который требуется выделить для бэкапов в бакете. Отображается, если в поле Repository type указано значение s3.

Значение параметра необходимо для расчета заполненности и статуса хранилища

 — 

Секция General
Секция General
Секция General
Секция General
s3 configuration

 
Следующие параметры доступны, если в поле Repository type секции General указано значение s3.

Параметр Описание Значение по умолчанию

URI Type

Тип Endpoint для S3-хранилища. Возможные значения:

  • host — хост;

  • path — путь.

host

Bucket

Бакет в S3-хранилище. Имя бакета не должно содержать точек

 — 

Endpoint

Конечная точка (endpoint) для S3-хранилища

 — 

Key

Ключ S3-хранилища

 — 

Key secret

Секретный ключ S3-хранилища

 — 

Region

Регион S3-хранилища

 — 

Upload chunk size

Размер загружаемого чанка данных (part size — в терминологии S3). Обратите внимание, что ограничения, отображаемые во всплывающей подсказке (64kb-1tb), исходят со стороны pgbackrest. Хранилище S3 может иметь свои собственные ограничения

5mb

Server-side encryption options

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

false

Type

Тип шифрования данных на стороне сервера:

  • kms-key-id — с использованием ключа AWS key management service.

  • sse-customer-key — с использованием кастомного ключа.

Поле обязательно для заполнения, если активирован переключатель Server-side encryption options. Значение самого ключа вводится в поле Key (см. ниже)

 — 

Key

Ключ, используемый для шифрования данных резервных копий на стороне сервера. Тип ключа определяется в поле Type (см. выше).

Поле обязательно для заполнения, если активирован переключатель Server-side encryption options. Для ввода данных поле становится доступно после выбора значения в выпадающем списке Type

 — 

Repository storage CA file

PEM-файл от доверенного центра сертификации (Certificate Authority, CA) S3-хранилища. Для загрузки файла нажмите Upload

 — 

Certificate verification

Необходима ли верификация сертификата S3-хранилища. При активации переключателя становится доступно для заполнения поле Repository storage CA file

true

Секция s3 configuration
Секция s3 configuration
Секция s3 configuration
Секция s3 configuration

Мониторинг хранилищ

Для мониторинга хранилищ используйте секцию Overview, доступную после применения конфигурации с этим хранилищем. Секция Overview позволяет отслеживать следующие параметры:

  • Availability. Показывает, доступно ли хранилище. Если ADBM не может получить доступ к хранилищу, бэкап не будет произведен.

  • Место в хранилище: общий объем (Total capacity), занятый объем (Used space), объем свободного пространства (Free space) и процент заполненности (Fill percentage).

    Процент заполненности вычисляется как отношение занятого пространства к общему объему. Для хранилищ POSIX и CIFS общий объем рассчитывается автоматически. Для S3-хранилищ требуется вручную указать общий объем в поле S3 bucket size. Если не задать значение этого параметра, статус и метрики, связанные с заполненностью диска, будут недоступны.

  • Current status. В зависимости от заполненности каждое хранилище может иметь один из следующих статусов:

    • Sufficient space — процент заполненности ниже значения, заданного в Alert settings for storage в параметре Almost Full.

    • Almost Full — процент заполненности выше значения, заданного в параметре Almost Full, но ниже значения Critical.

    • Critical — процент заполненности выше значения, заданного в параметре Critical. Чтобы избежать переполнения хранилища во время резервного копирования, можно использовать флаг Fail on low space, который означает, что формирование бэкапа не будет запущено, если хранилище имеет статус Critical.

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

Статус хранилища
Статус хранилища
Статус хранилища
Статус хранилища
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней