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

Обзор

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

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

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

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

    Выбор кластера ADB
    Выбор кластера ADB
    Выбор кластера ADB
    Выбор кластера ADB
  3. Выберите вкладку Configuration.

    Вкладка Configuration
    Вкладка Configuration
    Вкладка Configuration
    Вкладка Configuration

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

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

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

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

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

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

  1. Откройте вкладку 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, которая появляется справа от названий некоторых полей во время их заполнения, можно вывести справочную информацию по полям: допустимые единицы измерения, минимальное и максимальное значения и так далее.

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

      Окно Cron expression generator
      Окно "Cron expression generator"
      Окно Cron expression generator
      Окно "Cron expression generator"
      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

      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. Если процедуру очистки предполагается осуществлять вручную, оставьте переключатель напротив поля в неактивном состоянии

       — 

      File Log level

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

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

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

      • error;

      • warn;

      • info;

      • detail;

      • debug;

      • trace.

      info

      Log path

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

      /home/gpadmin/gpAdminLogs

      Bundle size

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

      100mb

      Bundle limit

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

      2mb

      Use block incremental backup

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

      false

      Секция 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
      Repository
      Параметр Описание Значение по умолчанию

      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

      Repository type

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

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

      • posix

      • s3

      • cifs

      posix

      Upload chunk size

      Размер загружаемого чанка данных (part size — в терминологии S3). Отображается, если в поле Repository type указано значение 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

       — 

      Exclude path

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

      • pg_log/gp_era

      • backups

      • gpperfmon/data/

      • gpbackup_history.yaml

      URI Type

      Тип Endpoint для S3-хранилища. Отображается, если в поле Repository type указано значение s3. Возможные значения:

      • host — хост;

      • path — путь.

       — 

      Repository path

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

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

       — 

      Endpoint

      Конечная точка (endpoint) для S3-хранилища. Отображается, если в поле Repository type указано значение s3

       — 

      Bucket

      Бакет в S3-хранилище. Имя бакета не должно содержать точек. Отображается, если в поле Repository type указано значение s3

       — 

      Key

      Ключ S3-хранилища. Отображается, если в поле Repository type указано значение s3

       — 

      Key secret

      Секретный ключ S3-хранилища. Отображается, если в поле Repository type указано значение s3

       — 

      Region

      Регион S3-хранилища. Отображается, если в поле Repository type указано значение s3

       — 

      Repository storage CA file

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

       — 

      Certificate verification

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

      true

      Секция Repository
      Секция Repository
      Секция Repository
      Секция Repository
      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. В результате запускается действие Start 'Apply backup configuration' action. Это действие, в свою очередь, порождает несколько дочерних действий (subactions). Просмотреть их можно на вкладке Actions (см. Просмотр действий в ADBM).

    До успешного завершения всех действий конфигурация будет иметь статус draft.

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

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

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

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

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

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

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

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

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

    ПРИМЕЧАНИЕ

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

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

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

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

    Сохранение новой версии конфигурации
    Сохранение новой версии конфигурации
    Сохранение новой версии конфигурации
    Сохранение новой версии конфигурации
  6. В результате запускается действие Start 'Apply backup configuration' action. Это действие, в свою очередь, порождает несколько дочерних действий (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
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней