Skip to main content
Skip to content

Настройка моментальных снимков Elasticsearch

Вы можете настроить ваш экземпляр GitHub Enterprise Server использование поставщика облачного хранилища, управляемого клиентом, для собственных моментальных снимков Elasticsearch и восстановления вместо копирования данных индекса поиска непосредственно с диска.

Кто может использовать эту функцию?

Site administrators can configure Elasticsearch snapshot storage.

Сведения об моментальных снимках Elasticsearch

По умолчанию GitHub Enterprise Server Backup Utilities и GitHub Enterprise Server Backup Service резервное копирование данных индекса поиска путем копирования файлов непосредственно с диска. Этот подход не соответствует собственным рекомендациям Elasticsearch, может использовать большое количество хранилища устройств резервного копирования и несет некоторый риск повреждения резервных индексов.

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

  • ghe-backup создает добавочный моментальный снимок данных индекса поиска в настроенной облачной учетной записи хранения. Добавочные моментальные снимки быстрее, чем полная копия, особенно при последующих резервных копиях.
  • ghe-restore восстанавливает данные индекса поиска из облачной учетной записи хранения, если моментальный снимок существует, соответствующий версии целевого экземпляра GitHub Enterprise Server .
  • Моментальные снимки изолированы для каждой GitHub Enterprise Server версии исправлений, что позволяет более безопасные откаты между версиями.

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

Предпосылки

  • Поддерживаемый поставщик облачных хранилищ: Azure хранилище BLOB-объектов, Amazon S3 или Google Cloud Storage (или служба, совместимая с одним из этих API).
  • Контейнер хранилища или контейнер, который планируется использовать в качестве репозитория моментальных снимков. Этот контейнер или контейнер необходимо создать самостоятельно. GitHub Enterprise Server не создает его для вас, а регистрация репозитория завершится ошибкой, если контейнер или контейнер еще не существует.

Настройка поставщика хранилища моментальных снимков

Настройте следующие параметры с помощью ghe-config SSH. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

Вы примените конфигурацию для регистрации репозитория моментальных снимков в Elasticsearch. Репозиторий называется search_index_snapshots-VERSION, где VERSION находится текущая GitHub Enterprise Server версия выпуска.

Хранилище блочных объектов Azure

  1. Задайте следующие секреты:

    ghe-config secrets.elasticsearch.snapshot-provider azure
    ghe-config secrets.elasticsearch.snapshot.azure.container YOUR-CONTAINER
    ghe-config secrets.elasticsearch.snapshot.azure.account-name YOUR-STORAGE-ACCOUNT
    ghe-config secrets.elasticsearch.snapshot.azure.account-key YOUR-ACCOUNT-KEY
    

    При необходимости задайте суффикс пользовательской конечной точки BLOB-объектов (по умолчанию core.windows.net— ):

    ghe-config secrets.elasticsearch.snapshot.azure.endpoint-suffix YOUR-ENDPOINT-SUFFIX
    
  2. Применяется конфигурация запуска.

    ghe-config-apply
    

Amazon S3

  1. Задайте следующие секреты:

    ghe-config secrets.elasticsearch.snapshot-provider s3
    ghe-config secrets.elasticsearch.snapshot.bucket-name YOUR-BUCKET-NAME
    ghe-config secrets.elasticsearch.snapshot.service-url YOUR-SERVICE-URL
    ghe-config secrets.elasticsearch.snapshot.region YOUR-AWS-REGION
    ghe-config secrets.elasticsearch.snapshot.access-key-id YOUR-ACCESS-KEY-ID
    ghe-config secrets.elasticsearch.snapshot.access-secret YOUR-ACCESS-SECRET
    

    Для URL-адреса службы используйте конечную точку S3, например https://s3.us-east-1.amazonaws.com.

  2. Применяется конфигурация запуска.

    ghe-config-apply
    

Google Cloud Storage

  1. Создайте ключ учетной записи службы JSON с доступом к контейнеру, а затем закодируйте его как base64.

    base64 -w0 service-account.json
    
  2. Задайте следующие секреты:

    ghe-config secrets.elasticsearch.snapshot-provider gcs
    ghe-config secrets.elasticsearch.snapshot.gcs.bucket YOUR-BUCKET-NAME
    ghe-config secrets.elasticsearch.snapshot.gcs.credentials YOUR-BASE64-ENCODED-CREDENTIALS
    
  3. Применяется конфигурация запуска.

    ghe-config-apply
    

Проверка регистрации

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

curl -k "http://127.0.0.1:9200/_snapshot/search_index_snapshots-$(ghe-version -v)/_status"

Если необходимый секрет отсутствует, при регистрации репозитория применяется сбой конфигурации. Обновите секреты и повторите попытку ghe-config-apply .

Включение моментальных снимков во время резервного копирования и восстановления

Настройка поставщика хранилища регистрирует репозиторий моментальных снимков, но необходимо также включить стратегию ghe-backup резервного копирования моментальных снимков таким образом и ghe-restore использовать ее автоматически.

  • GitHub Enterprise Server Backup Service: задайте стратегию, используемую ghe-config на устройстве.

    ghe-config backup.es-backup-strategy snapshot
    
  • GitHub Enterprise Server Backup Utilities: задайте стратегию в файле на backup.config узле резервного копирования.

    GHE_ES_BACKUP_STRATEGY=snapshot
    

    Значением по умолчанию является rsyncсохранение существующего поведения резервного копирования на основе диска. GitHub Enterprise Server Backup Utilities сохраняет только метаданные моментальных снимков локально; Содержимое моментального снимка остается в настроенном облачном хранилище.

Если вы не устанавливаете стратегию резервного копирования, репозиторий моментальных снимков по-прежнему можно управлять вручную, но ghe-backup и ghe-restore будет продолжать использовать метод на основе диска.

Управление моментальными снимками вручную

Вы можете управлять моментальными снимками Elasticsearch непосредственно с помощью следующих команд. Выполните любую команду с флагом для сведений -h об использовании.

CommandDescription
ghe-es-create-snapshotСоздает новый моментальный снимок в настроенном репозитории.
ghe-es-list-snapshotsПеречисляет репозитории моментальных снимков или моментальные снимки в репозитории.
ghe-es-restore-snapshotВосстанавливает индексы поиска из моментального снимка.

Совет

Для обычных резервных копий и восстановления используйте GitHub Enterprise Server Backup Utilities или GitHub Enterprise Server Backup Service вместо этих команд напрямую. Средство резервного копирования координирует моментальные снимки Elasticsearch с остальными данными экземпляра, чтобы обеспечить согласованное резервное копирование или восстановление. Используйте команды вручную, только если необходимо управлять моментальными снимками индекса поиска независимо от полного резервного копирования или восстановления экземпляра.

Восстановление моментального снимка из более ранней версии

Вы можете восстановить моментальный снимок, созданный более ранней GitHub Enterprise Server версией, на более позднюю версию. Не удается восстановить моментальный снимок из более поздней версии в более раннюю версию.

  1. Список доступных моментальных снимков для более ранней версии.

    ghe-es-list-snapshots -v 3.14.0
    
  2. Восстановите нужный моментальный снимок.

    ghe-es-restore-snapshot -v 3.14.0 -s SNAPSHOT-NAME
    

Elasticsearch автоматически обновляет восстановленные индексы до формата текущей версии.

Управление хранилищем моментальных снимков

Моментальные снимки Elasticsearch являются добавочными, но ваша облачная учетная запись хранения по-прежнему может накапливать старые моментальные снимки с течением времени. Чтобы избежать неограниченного роста хранилища, настройте политику жизненного цикла с поставщиком хранилища, чтобы автоматически удалять моментальные снимки старше ваших требований к хранению. Дополнительные сведения см. в документации поставщика: