Облачная платформаAdvanced

Восстановление данных кластера Elasticsearch с использованием Снапшота

Эта статья полезна?
Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Используйте Снапшот для восстановления копии Elasticsearch кластера на конкретный момент времени. Вы можете восстановить её в оригинальный кластер или в другой подходящий кластер. Этот процесс извлекает сохранённые данные индексов, метаданные и структуру шардов из OBS и восстанавливает их в выбранном целевом кластере, обеспечивая согласованность данных. Эта возможность имеет решающее значение для таких операций, как откат данных, миграция кластера и восстановление после катастроф.

Ограничения

  • Создание Снапшотов кластера увеличит нагрузку на CPU и дисковый I/O. Чтобы минимизировать влияние на производительность системы, рекомендуется планировать их выполнение в непиковые часы.
  • Если исходный кластер недоступен, вы можете восстановить его Снапшоты в назначенный целевой кластер.
  • При создании или восстановлении Снапшота вы можете выполнять только определённые операции, включая доступ к Kibana, просмотр метрик и удаление других Снапшотов. Однако вы не можете выполнять следующие операции: изменение конфигурации, перезапуск или удаление кластера, удаление Снапшота, который создаётся или восстанавливается, а также создание или восстановление другого Снапшота. Пока Снапшот создаётся или восстанавливается для кластера, любая автоматическая задача создания Снапшота, инициированная для этого кластера, будет отменена.
  • Когда вы создаёте первый Снапшот в кластере, выполняется полный Бэкап всех данных. Последующие Снапшоты являются инкрементными, сохраняют только изменения с момента предыдущего Снапшота. Поскольку каждый инкрементный Снапшот полагается на своих предшественников, вы должны восстанавливать их в правильной последовательности.
  • До завершения восстановления Снапшота индексы, восстанавливаемые в целевой кластер, не могут быть запрошены.
  • Если два кластера имеют индексы с одинаковыми именами, но разными структурами шардов, такие индексы нельзя восстановить.
  • Версия целевого кластера должна быть такой же или более новой, чем версия исходного кластера.

Требования

В списке задач Снапшотов исходного кластера есть Снапшоты, статус которых Доступно. Статус целевого кластера также Доступно.

Восстановление данных

  1. Войдите в консоль управления CSS.
  2. В навигационной панели слева выберите Кластеры > Elasticsearch.
  3. В списке кластеров нажмите название целевого кластера. Отображается страница информации о кластере.
  4. Нажмите Снапшоты кластера вкладка.
  5. В списке задач снапшотов кластера выберите снапшот и нажмите Восстановить в Операция колонке. В отображаемом диалоговом окне настройте необходимые параметры.
    Таблица 1 Настройки восстановления

    Параметр

    Описание

    Индекс

    Укажите имя индекса, который нужно восстановить.

    • Значение представляет собой строку от 0 до 1024 символов, которая не может содержать заглавные буквы, пробелы или следующие специальные символы: "\<|>/?.
    • При восстановлении индекса, имя которого начинается с .kibana, имя индекса должно быть указано.
    • Этот .opendistro_security индекс не может быть восстановлен.
    • Можно использовать символ подстановки (*) для совпадения нескольких индексов. Например, index* указывает, что все индексы с префиксом index будут восстановлены. Когда символ подстановки (*) используется для совпадения индексов, .opendistro_security индекс и любые системные индексы, имя которых начинается с .kibana по умолчанию фильтруются.
    • Вы можете восстановить индексы, указав их имена, например, index1,index2,index3.

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

    Rename Pattern

    Правило сопоставления имени индекса. Введите регулярное выражение. Индексы, соответствующие регулярному выражению, будут восстановлены.

    Этот Rename Pattern и Rename Replacement вступают в силу только когда они оба настроены одновременно. Для примера см Индекс, Rename Pattern, и Rename Replacement: Параметры и примеры.

    Значение представляет собой строку от 0 до 1024 символов, которая не может содержать заглавные буквы, пробелы или следующие специальные символы: "\<|>/?,.

    Например, index_(.+) указывает что все индексы название которых начинается с index_ будут переименованы при восстановлении.

    Переименование Замена

    Правило переименования индекса. При восстановлении, совпадающие индексы переименовываются в соответствии с определенным правилом.

    Это Rename Pattern и Rename Replacement Вступают в силу только когда они оба настроены одновременно. Для примера, см Index, Rename Pattern, and Rename Replacement: Parameters and Examples.

    Значение представляет собой строку от 0 до 1024 символов, которая не может содержать заглавные буквы, пробелы или следующие специальные символы: "\<|>/?,.

    Например, restored_index_$1 указывает что restored_ будет добавлять префикс к имени всех восстановленных индексов.

    Кластер

    Выберите кластер, в который вы хотите восстановить данные. Вы можете выбрать текущий кластер или другой.

    • Вы должны указать кластер, статус которого Доступен. Если статус текущего кластера Недоступен, вы не можете восстановить снимок в текущий кластер.
    • Когда вы выбираете восстановление данных в другой кластер, убедитесь, что целевой кластер имеет ту же или более новую версию, чем текущий кластер, и что оба кластера находятся в одном регионе. После восстановления замороженного индекса с помощью снимка, индекс хранится на локальном узле и по умолчанию доступен только для чтения. Чтобы сделать его доступным для записи, выполните следующую команду для настройки индекса:
      PUT index_name/_settings
      {
      "index.blocks.write": null
      }

    Перезаписать индексы с тем же именем в целевом кластере

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

    Восстановление снапшота перезапишет существующие данные в целевом кластере. Когда в целевом кластере есть индексы с одинаковыми именами, необходимо выбрать эту опцию, чтобы восстановить индексы с одинаковыми именами и одинаковой структурой шардов. Индексы с иной структурой шардов не могут быть восстановлены.

  6. Нажмите OK чтобы начать восстановление снапшота.

    Если восстановление успешно, Статус задачи снапшота в списке задач снапшотов изменится на Восстановление успешно, а данные индекса, захваченные в снапшоте, восстановлены.

Проверка восстановления снапшота

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

  1. Войдите в консоль управления CSS.
  2. В навигационной панели слева выберите Кластеры > Elasticsearch.
  3. В списке кластеров найдите целевой кластер и щелкните Kibana в Операция строке для входа в консоль Kibana.
  4. В левой навигационной панели выберите Инструменты разработки.

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

  5. Выполните следующую команду для проверки информации об индексе.
    GET _cat/indices

Индекс, Шаблон переименования и Замена переименования: параметры и примеры

В этом разделе описывается Индекс, Шаблон переименования, и Замена переименования параметры. Также предоставляются примеры, показывающие, как их настроить.

  • Сохранение оригинального имени индекса при восстановлении индекса

    Укажите Index для индекса, который будет заменён.

  • Переименование индекса при его восстановлении

    Чтобы переименовать индекс при его восстановлении, укажите Index, Rename Pattern, и Rename Replacement. Их значения следующие:

    • Index: Указывает имя или шаблон (поддерживается подстановочный символ) индексов, которые вы хотите восстановить. Он должен включать индексы, которые необходимо переименовать. Этот параметр определяет индексы, которые вы хотите восстановить с помощью снимков в указанный целевой кластер.
    • Rename Pattern: Использует регулярное выражение для указания индексов, которые вы хотите переименовать среди индексов, подлежащих восстановлению (указанных Индекс). Только индексы, имена которых точно соответствуют регулярному выражению, будут переименованы.
    • Замена имени: Определяет правило именования восстановленных индексов, которые соответствуют Шаблон переименования. Это правило представляет собой строку символов, использующую группу захвата (например, $1) для повторного использования текста, захваченного Шаблон переименования.

Пример:

  • Индекс установлен в index_*, old_index: index_* указывает на все индексы, чьи имена начинаются с index_, и old_index указывает один индекс.
  • Шаблон переименования установлено index_(.+): Это указывает, что индексы, имя которых начинается с index_ будут переименованы.
  • Замена переименования установлено restored_index_$1: Это заменяет найденные имена индексов на restored_index_ плюс текст захваченной группы.

Соответствующий API‑запрос выглядит следующим образом:

POST /_snapshot/xxx/snapshot_xxx/_restore
{
"indices": "index_*, old_index",
"ignore_unavailable": true,
"include_global_state": true,
"rename_pattern": "index_(.+)", // This corresponds to the Rename Pattern parameter.
"rename_replacement": "restored_index_$1", // This corresponds to the Rename Replacement parameter.
}

Результат:

  • Исходный индекс index_logs переименован в restored_index_logs.
  • Исходный индекс index_users переименован в restored_index_users.
  • Исходный индекс old_index не совпадает с rename_pattern, и поэтому не переименован. Исходное имя old_index оставлен после восстановления.