Управление резервными копиями в Managed Service for Elasticsearch
Важно
Сервис Yandex Managed Service for Elasticsearch недоступен с 11 апреля 2024 года.
Вы можете создать кластер OpenSearch в Yandex Cloud в качестве альтернативы Elasticsearch.
Managed Service for Elasticsearch позволяет создавать резервные копии индексов как средствами Yandex Cloud, так и с помощью механизма снапшотов Elasticsearch. Подробнее о механизме снапшотов см. в документации Elasticsearch
Резервное копирование средствами Yandex Cloud
Вы можете создавать резервные копии и восстанавливать кластеры из имеющихся резервных копий.
Также Managed Service for Elasticsearch каждый час создает автоматическую резервную копию.
Получить список резервных копий
Чтобы получить список резервных копий кластера:
- Перейдите на страницу каталога и выберите сервис Managed Service for Elasticsearch.
- Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
Чтобы получить список всех резервных копий в каталоге:
- Перейдите на страницу каталога и выберите сервис Managed Service for Elasticsearch.
- Выберите вкладку Резервные копии.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить список резервных копий кластеров Elasticsearch, доступных в каталоге по умолчанию, выполните команду:
yc managed-elasticsearch backup list
Результат:
+----------------------+----------------------+----------------------+----------------------+
| ID | CREATED AT | SOURCE CLUSTER ID | STARTED AT |
+----------------------+----------------------+----------------------+----------------------+
| c9qlk4v13uq7******** | 2020-08-10T12:00:00Z | c9qlk4v13uq7******** | 2020-08-10T11:55:17Z |
| c9qpm90p3pcg******** | 2020-08-09T22:01:04Z | c9qpm90p3pcg******** | 2020-08-09T21:30:00Z |
+----------------------+----------------------+----------------------+----------------------+
Чтобы получить список резервных копий кластера, воспользуйтесь методом REST API listBackups для ресурса Cluster или вызовом gRPC API ClusterService/ListBackups и передайте в запросе идентификатор кластера в параметре clusterId
.
Чтобы получить список резервных копий всех кластеров Managed Service for Elasticsearch в каталоге, воспользуйтесь методом REST API list для ресурса Backup или вызовом gRPC API BackupService/List и передайте в запросе идентификатор каталога в параметре folderId
.
Идентификатор кластера можно получить со списком кластеров в каталоге.
Получить информацию о резервной копии
Чтобы получить информацию о резервной копии существующего кластера:
- Перейдите на страницу каталога и выберите сервис Managed Service for Elasticsearch.
- Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
Чтобы получить информацию о резервной копии удаленного ранее кластера:
- Перейдите на страницу каталога и выберите сервис Managed Service for Elasticsearch.
- Выберите вкладку Резервные копии.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить данные о резервной копии кластера Elasticsearch, выполните команду:
yc managed-elasticsearch backup get <идентификатор_резервной_копии>
Идентификатор резервной копии можно получить со списком резервных копий.
Чтобы получить информацию о резервной копии, воспользуйтесь методом REST API get для ресурса Backup или вызовом gRPC API BackupService/Get и передайте в запросе идентификатор резервной копии в параметре backupId
.
Чтобы узнать идентификатор, получите список резервных копий.
Создать резервную копию
- Перейдите на страницу каталога и выберите сервис Managed Service for Elasticsearch.
- Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
- Нажмите кнопку
Создать резервную копию.
Сервис начнет создавать резервную копию без дополнительного подтверждения.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы создать резервную копию кластера:
-
Посмотрите описание команды CLI для создания резервной копии Elasticsearch:
yc managed-elasticsearch cluster backup --help
-
Запросите создание резервной копии, указав идентификатор или имя кластера:
yc managed-elasticsearch cluster backup <имя_или_идентификатор_кластера>
Идентификатор и имя кластера можно получить со списком кластеров.
Чтобы создать резервную копию, воспользуйтесь методом REST API backup для ресурса Cluster или вызовом gRPC API ClusterService/Backup и передайте в запросе идентификатор кластера в параметре clusterId
.
Идентификатор кластера можно получить со списком кластеров в каталоге.
Важно
Во время создания резервной копии производительность кластера может снижаться.
Восстановить кластер из резервной копии
Восстанавливая кластер из резервной копии, вы создаете новый кластер с данными из резервной копии. Если в каталоге не хватает ресурсов для создания такого кластера, восстановиться из резервной копии не получится. Скорость восстановления можно регулировать средствами Elasticsearch
Для нового кластера необходимо задать все параметры, обязательные при его создании.
Чтобы восстановить из резервной копии существующий кластер:
- Перейдите на страницу каталога и выберите сервис Managed Service for Elasticsearch.
- Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
- Нажмите значок
для нужной резервной копии, затем нажмите Восстановить кластер. - Задайте настройки нового кластера. В списке Каталог можно выбрать каталог для нового кластера.
- Нажмите кнопку Восстановить кластер.
Чтобы восстановить из резервной копии удаленный ранее кластер:
- Перейдите на страницу каталога и выберите сервис Managed Service for Elasticsearch.
- Выберите вкладку Резервные копии.
- Найдите нужную резервную копию по времени создания и идентификатору кластера. В колонке Имя содержатся идентификаторы в формате
<идентификатор_кластера>:<идентификатор_резервной_копии>
. - Нажмите значок
для нужной резервной копии, затем нажмите Восстановить кластер. - Задайте настройки нового кластера. В списке Каталог можно выбрать каталог для нового кластера.
- Нажмите кнопку Восстановить кластер.
Managed Service for Elasticsearch запустит операцию создания кластера из резервной копии.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы восстановить кластер из резервной копии:
-
Посмотрите описание команды CLI для восстановления кластера Elasticsearch:
yc managed-elasticsearch cluster restore --help
-
Получите список доступных резервных копий кластеров Elasticsearch:
yc managed-elasticsearch backup list
Результат:
+--------------------------+----------------------+----------------------+----------------------+ | ID | CREATED AT | SOURCE CLUSTER ID | STARTED AT | +--------------------------+----------------------+----------------------+----------------------+ | c9qlk4v13uq79r9******** | 2020-08-10T12:00:00Z | c9qlk4v13uq7******** | 2020-08-10T11:55:17Z | | ... | +--------------------------+----------------------+----------------------+----------------------+
Время завершения создания резервной копии указано в столбце
CREATED AT
списка доступных резервных копий в форматеyyyy-mm-ddThh:mm:ssZ
(2020-08-10T12:00:00Z
в примере выше). -
Запросите создание кластера из резервной копии:
yc managed-elasticsearch cluster restore \ --backup-id=<идентификатор_резервной_копии> \ --name=<имя_кластера> \ --environment=<окружение> \ --network-name=<имя_сети> \ --host zone-id=<зона_доступности>,` `subnet-id=<идентификатор_подсети>,` `assign-public-ip=<публичный_доступ>,` `type=<роль_хоста> \ --datanode-resource-preset=<класс_хостов_Data_node> \ --datanode-disk-size=<размер_хранилища_ГБ_Data_node> \ --datanode-disk-type=<тип_диска_Data_node> \ --masternode-resource-preset=<класс_хостов_Master_node> \ --masternode-disk-size=<размер_хранилища_ГБ_Master_node> \ --masternode-disk-type=<тип_диска_Master_node> \ --admin-password=<пароль_пользователя_admin>
Где:
-
--backup-id
— идентификатор резервной копии. -
--name
— имя кластера. -
--environment
— окружение:PRESTABLE
— для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.PRODUCTION
— для стабильных версий ваших приложений.
-
--network-name
— имя сети. -
--host
— параметры хоста:-
zone-id
— зона доступности. -
subnet-name
— имя подсети. Необходимо указывать, если в выбранной зоне доступности создано две или больше подсетей. -
assign-public-ip
— флаг, который указывается, если для хоста требуется публичный доступ: :true
илиfalse
. -
type
— роль хоста:datanode
илиmasternode
.
-
-
--datanode-resource-preset
— класс хостов с ролью Data node. -
--datanode-disk-size
— размер хранилища в гигабайтах для хостов с ролью Data node. -
--datanode-disk-type
— тип диска для хостов с ролью Data node:network-hdd
;network-ssd
;local-ssd
;network-ssd-nonreplicated
.
-
--masternode-resource-preset
— класс хостов с ролью Master node. -
--masternode-disk-size
— размер хранилища в гигабайтах для хостов с ролью Master node. -
--masternode-disk-type
— тип диска для хостов с ролью Master node. Доступен толькоnetwork-ssd
. -
--admin-password
— пароль пользователяadmin
.Это специальный пользователь, который необходим для управления кластером и не может быть удален. Он наделен ролью
superuser
и может выполнять любые действия с кластером.Совет
Для выполнения повседневных задач рекомендуется создать отдельных пользователей. Подробнее см. в разделе Управление пользователями.
-
Чтобы восстановить кластер из резервной копии, воспользуйтесь методом REST API restore для ресурса Cluster или вызовом gRPC API ClusterService/Restore и передайте в запросе:
- Идентификатор требуемой резервной копии в параметре
backupId
. Чтобы узнать идентификатор, получите список резервных копий в кластере. - Имя нового кластера, который будет содержать восстановленные из резервной копии данные, в параметре
name
. Имя кластера должно быть уникальным в рамках каталога. - Окружение кластера в параметре
environment
. - Конфигурацию кластера в параметре
configSpec
. - Конфигурацию хостов кластера в одном или нескольких параметрах
hostSpecs
. - Идентификатор сети в параметре
networkId
.
Резервное копирование с помощью снапшотов
Для работы со снапшотами используется публичный API Elasticsearch
Получить список снапшотов
-
Найдите в списке репозиториев Elasticsearch тот, который содержит в себе резервные копии в виде снапшотов:
GET https://admin:<пароль>@<FQDN_хоста>:9200/_snapshot/_all
Если нужного репозитория нет в списке — подключите его.
-
Получите список снапшотов в репозитории:
GET https://admin:<пароль>@<FQDN_хоста>:9200/_snapshot/<репозиторий>/_all
Каждой резервной копии соответствует один снапшот.
Создать снапшот
-
Найдите в списке репозиториев Elasticsearch тот, в котором нужно создать резервную копию в виде снапшота:
GET https://admin:<пароль>@<FQDN_хоста>:9200/_snapshot/_all
Если нужного репозитория нет в списке — подключите его.
-
Создайте снапшот
нужных данных или целого кластера в выбранном репозитории:PUT https://admin:<пароль>@<FQDN_хоста>:9200/_snapshot/<репозиторий>/<снапшот>
Восстановить кластер из снапшота
Важно
При восстановлении из снапшотов действуют следующие ограничения:
- Версия Elasticsearch в кластере должна быть не ниже версии Elasticsearch, в которой был сделан снапшот.
- Для восстановления индексов необходимо, чтобы мажорная версия Elasticsearch в кластере была не больше чем на единицу старше мажорной версии Elasticsearch, в которой сделан снапшот. Например, индексы, созданные в версии 5.0, можно восстановить в версии 6.0, а в версии 7.0 — нельзя.
-
Создайте новый кластер Elasticsearch в нужной конфигурации, но не наполняйте его данными.
При создании кластера выберите:
-
Количество и класс хостов, размер хранилища и тип дисков исходя из размера снапшота и требований к быстродействию. При необходимости повысьте класс хостов или увеличьте размер хранилища кластера.
-
Версию Elasticsearch, в которой был создан снапшот, или более новую.
-
-
Закройте открытые индексы с помощью Elasticsearch API
:POST: https://admin:<пароль>@<FQDN_хоста>:9200/<индекс>/_close
Для восстановления всего кластера закройте все открытые индексы. Для восстановления отдельных индексов закройте только их.
-
Получите список резервных копий и найдите нужный снапшот.
-
Запустите операцию восстановления
из нужного снапшота всего кластера или отдельных индексов и потоков данных.
Подробнее о восстановлении из снапшотов см. в документации Elasticsearch