Членство в VDL: руководство по операциям
1. Обзор
VDL позволяет управлять членством с помощью команды VDLCTL. Существует четыре типа операций:
Для работы с VDLCTL необходимо указать endpoint-адрес, который можно найти в файле конфигурации VDL. Для просмотра списка участников можно использовать любой узел в кластере VDL, но для добавления, удаления или обновления участников требуется доступ к лидеру.
Изменения в составе участников не используют алгоритм консенсуса, а выполняются последовательно: после успешного изменения одного участника можно перейти к следующему.
С помощью команды –help можно получить информацию о конкретных командах и их использовании. Например:
# Просмотр всех команд
./vdlctl --help
# Просмотр информации о команде member
./vdlctl member --help
# Просмотр использования подкоманды list команды member
./vdlctl member list --help
2. Просмотр списка участников
./vdlctl member list <имя потока журнала> --endpoints <endpoint>
Пример:
./vdlctl member list logstream1 --endpoints=http://127.0.0.1:9001
Результат:
ID: 4eff15a7b59548ca, Name: vdl1, PeerAddrs: http://127.0.0.1:2381, IsLeader: false
ID: e8a2d2fe302cd27b, Name: vdl0, PeerAddrs: http://127.0.0.1:2380, IsLeader: true
Здесь:
3. Добавление участника
Добавление нового узла в существующий кластер может быть выполнено двумя способами:
Прямое добавление включает три шага:
Рассмотрим пример добавления нового узла VDL2 в существующий кластер с узлами VDL0 и VDL1.
Исходный кластер:
Новый узел:
Подготовка нового узла включает следующие шаги: A. Подготовка нового узла:
# Выполнение операции добавления
./vdlctl member add logstream1 vdl2 --peer-urls=http://127.0.0.1:2382 --endpoints=http://127.0.0.1:9001
# Результат:
Member 6dfedeb1b19d5bc3 added to logstream logstream1 in cluster [460d709c038402fe]
# Проверка списка участников
./vdlctl member list logstream1 --endpoints=http://127.0.0.1:9001
# Результат:
ID: 4eff15a7b59548ca, Name: vdl1, PeerAddrs: http://127.0.0.1:2381, IsLeader: false
ID: 6dfedeb1b19d5bc3, Name: vdl2, PeerAddrs: http://127.0.0.1:2382, IsLeader: false
ID: e8a2d2fe302cd27b, Name: vdl0, PeerAddrs: http://127.0.0.1:2380, IsLeader: true
C. Запуск нового узла:
Добавление из снимка включает обращение к документации VDL для получения подробной информации.
4. Удаление участника
Удаление участника обычно выполняется в следующих случаях:
Удаление узла выполняется с помощью VDLCTL:
На примере исходного кластера:
ID: 4eff15a7b59548ca, Name: vdl1, PeerAddrs: http://127.0.0.1:2381, IsLeader: false
ID: 6dfedeb1b19d5bc3, Name: vdl2, PeerAddrs: http://127.0.0.1:2382, IsLeader: false
ID: e8a2d2fe302cd27b, Name: vdl0, PeerAddrs: http://127.0.0.1:2380, IsLeader: true
Необходимо удалить VDL2:
./vdlctl member remove logstream1 6dfedeb1b19d5bc3 --endpoints=http://127.0.0.1:9001
После выполнения операции в VDL2 соответствующий поток журнала автоматически останавливается.
5. Обновление участника
Обновление участника используется для изменения IP-адресов и портов связи группы узлов Raft. Процесс обновления включает:
./vdlctl member update logstream1 49bc1e27d0ae19a6 --peer-urls=http://127.0.0.1:2383 --endpoints=http://127.0.0.1:9001
Член 49bc1e27d0ae19a6 обновлён в потоке журнала logstream logstream1 в кластере [460d709c038402fe].
После обновления запустите vdl2.
С технической точки зрения:
Например, есть узлы A и B, где A является лидером, а B — последователем. Если изменить порт B с 1023 на 1024, и он продолжит работать на порту 1023, то:
Если B остаётся последователем, то синхронизация данных между A и B будет осуществляться через поток, а ответные пакеты от B будут отправляться через HTTP POST. Синхронизация журналов будет работать нормально, но функция моментальных снимков будет недоступна, и A будет постоянно получать предупреждения о проверке состояния B.
Если B становится лидером, то данные будут передаваться от A к B через HTTP POST, что замедлит синхронизацию.
В конфигурации VDL каждый поток журнала можно настроить с помощью параметра strict-member-changes-check, который по умолчанию установлен в значение true. Этот параметр определяет, требуется ли строгая проверка при изменении членов. Принцип проверки заключается в том, что если добавление нового узла приведёт к тому, что существующий кластер перестанет нормально функционировать, то новый узел не будет добавлен. Например, если в исходном кластере было три узла, и добавляется четвёртый, новое число кворума становится равным трём. Если в исходном кластере только два узла здоровы, после добавления нового узла кластер перестаёт нормально работать, поэтому новый узел добавить нельзя.
Принцип проверки аналогичен добавлению нового узла. Здесь проверка заключается в том, что удаление узла приводит к невозможности нормального функционирования кластера, поэтому узел удалить нельзя. Например, в исходном кластере из трёх узлов только два являются здоровыми. Если удаляемый узел является одним из здоровых, его удалить нельзя, так как после удаления останется только один здоровый узел, а кластеру для нормальной работы требуется два узла.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )