Добавление, вывод и перезапуск узлов¶
Страница нужна инженеру эксплуатации, который меняет состав кластера: добавляет узел, выводит узел, заменяет узел, который не вернётся, или перезапускает инстанс. Состав кластера изменяется средствами Picodata; здесь описано, что при этом нужно учесть для S3R и как проверить результат.
Ребутстрап инстанса в руководстве не описан
Процедуры ребутстрапа (повторного ввода инстанса в кластер с очисткой его данных Picodata) в этом руководстве нет. На кластере с данными не выполняйте её без согласования с разработчиками плагина.
Причина: S3R различает инстансы по UUID, а не по имени. Инстанс, который вошёл в кластер под
прежним именем с новым UUID, для S3R — другой инстанс. Диски прежнего инстанса, когда он
исключён из кластера, помечаются вышедшими из строя. Инстанс, занявший его
позицию, при первом запуске принимает строки этих дисков
и переформатирует накопители (см. Замена узла). Содержимое групп на них после
этого перестраивается по другим участникам, а не берётся с прежних накопителей. При раскладке
instance все участники группы находятся на дисках одного инстанса, поэтому
переформатируются все сразу (см.
Отказ узла при нескольких площадках).
Добавление и вывод узлов¶
Добавление узла¶
Что должно быть выполнено заранее.
- Список дисков нового инстанса сверен с шаблоном яруса:
набор поддоменов инстанса в каждом ярусе должен совпадать
с шаблоном. Записанный шаблон показывает столбец
tiersтаблицыs3r_cluster. - В кластере с несколькими площадками узлы добавляются на каждую площадку симметрично. Площадка вне записанного набора групп не получает.
- Если площадка до этого состояла из одного домена отказа,
её расширяют сразу до числа доменов, нужного для раскладки
spread(см. Раскладка группы).
Список дисков отклоняется целиком
Если шаблон яруса уже записан, список с другим набором поддоменов в этом ярусе отклоняется целиком: ни один диск инстанса не регистрируется.
Шаги.
- Добавьте узел в кластер средствами Picodata.
- Дождитесь первого запуска сервиса
s3r_storageна новом инстансе: при нём регистрируются диски инстанса.
Как проверить. Диски инстанса появились в таблице s3r_disk. Если список отклонён, причина
записана в столбце reason таблицы s3r_instance.
Вывод узла¶
Выводите узлы по одному
До завершения перестроения избыточность понижена. При нескольких площадках вывод узла лишает площадку копии его объектов, и эта копия не восстанавливается (см. Отказ узла при нескольких площадках).
Шаги.
- Исключите инстанс узла из кластера средствами Picodata.
- Дождитесь завершения перестроения: в ответе
GET /v2/repairобластьdataпоказываетneeds_resync_groups: 0, а областьgroupsпоказываетdegraded: 0. - Только после этого выводите следующий узел.
Что происходит. Диски исключённого инстанса признаются вышедшими из строя. Группы, в которые они входили, получают новых участников, и их фрагменты перестраиваются на оставшихся дисках.
Замена узла, который не вернётся¶
Узел заменяют новым инстансом на той же позиции: в том же репликасете, а на одной площадке с фактором репликации больше 1 — с тем же номером инстанса. Picodata даёт новому инстансу имя исключённого.
Что должно быть выполнено заранее.
- Прежний инстанс исключён из кластера.
- В локальном списке дисков нового инстанса есть диск для каждого яруса и поддомена предшественника. Иначе регистрация отклоняется с указанием позиции.
Шаги.
- Запустите новый инстанс на позиции исключённого.
- Найдите в журнале инстанса строки
disk <id> of an expelled instance at this position is inherited at <путь>— по одной на каждый диск предшественника.
Что происходит при первом запуске. Новый инстанс принимает строки дисков исключённого инстанса на своей позиции:
- каждый диск сохраняет идентификатор, получает путь того же яруса и поддомена из локального списка и переформатируется;
- ёмкость прежнего накопителя не переносится (см. Ёмкость диска);
- группы сохраняют участников и перестраивают их содержимое на месте;
- если предшественник зарегистрировался до перехода кластера на шаг
forming, новый инстанс занимает его место и в начальном формировании.
Как проверить. Перестроение завершено, когда GET /v2/repair показывает
needs_resync_groups: 0 и degraded: 0.
Перезапуск¶
Перезапуск инстанса не требует дополнительных действий.
- При запуске хранилище фрагментов восстанавливает индекс из снимка и хвоста журнала на диске, после чего дочитывает открытый экстент. Номер открытого экстента и порядковый номер записи, начиная с которого его содержимому можно доверять, хранятся в кластере.
- Инстанс возвращается с прежними адресами: Picodata отклоняет перезапуск инстанса с изменённым объявленным адресом iproto.