Глустер: Как заменить кирпич в рассеянном объеме?

Вопрос или проблема

Я настроил распределенный том 4+2. На данный момент он работает хорошо.

gluster volume info
Имя тома: disperseVol
Тип: Disperse
ID тома: 35386b55-829c-4bac-bdba-609427269cf4
Статус: Запущен
Количество снимков: 0
Количество кирпичей: 1 x (4 + 2) = 6
Тип транспорта: tcp
Кирпичи:
Кирпич1: 192.168.129.227:/mnt/gluster/disperseVol
Кирпич2: 192.168.130.4:/mnt/gluster/disperseVol
Кирпич3: 192.168.130.2:/mnt/gluster/disperseVol
Кирпич4: 192.168.129.2:/mnt/gluster/disperseVol
Кирпич5: 192.168.130.3:/mnt/gluster/disperseVol
Кирпич6: 192.168.129.218:/mnt/gluster/disperseVol
Переменные переопределены:
nfs.disable: on
transport.address-family: inet
storage.fips-mode-rchecksum: on
features.bitrot: on
features.scrub: Активно

Теперь два хоста сгорели, и два кирпича потеряны. Том по-прежнему работает хорошо, но я не могу заменить исчезнувшие кирпичи. Я следовал документации gluster, но

gluster volume replace-brick disperseVol \
   192.168.130.4:/mnt/gluster/disperseVol \
   192.168.130.6:/glusterPool/disperseVol commit force

выдает ошибку

volume replace-brick: не удалось: Предварительная проверка не удалась на 192.168.130.6. кирпич: 192.168.130.4:/mnt/gluster/disperseVol не существует в томе: disperseVol

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

Заранее спасибо

В документации, которую вы указали, говорится, что команда replace-brick поддерживается только для определенных типов кластеров:

ПРИМЕЧАНИЕ: Замена кирпича с помощью команды replace-brick в gluster поддерживается только для чистых реплицируемых или распределенно-реплицируемых томов.

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

Я использовал команду (см. ссылку в комментарии @Johannes Bauer)

gluster volume replace-brick VOLNAME <OLD-BRICK> <NEW-BRICK> commit force

несколько раз, и у меня все сработало хорошо.

Ответ или решение

Как заменить кирпич в рассеянном объёме Gluster

Ваша текущая ситуация связана с проблемами замены кирпичей в рассеянном объёме Gluster, который был создан в конфигурации 4+2. Учитывая, что две из шести кирпичей потеряны в результате сбоев серверов, вам необходимо знать правильные шаги для их замены и восстановления объёма до нормального состояния. В этом руководстве мы проанализируем, как правильно заменить кирпичи в рассеянном объёме.


Чем отличается рассеянный объём от других типов?

Рассеиваемый объём в Gluster использует подход, который позволяет распределять данные по различным кирпичам с избыточностью, обеспечивая высокую доступность и надежность. Однако из-за особенностей данной архитектуры замена кирпичей требует более сложных шагов, чем в обычных распределенных или реплицируемых объёмах.

Невозможность использования команды replace-brick

Вы уже столкнулись с ошибкой при выполнении команды:

gluster volume replace-brick disperseVol 192.168.130.4:/mnt/gluster/disperseVol 192.168.130.6:/glusterPool/disperseVol commit force

Ошибка гласит, что кирпич 192.168.130.4 не существует в объёме disperseVol. Это происходит потому, что команда replace-brick больше подходит для реплицируемых или простых распределенных объёмов, и в случае рассеянных объёмов вам нужно выполнить несколько других шагов.


Процесс замены кирпичей в рассеянном объёме

Шаг 1: Удаление потерянных кирпичей

Первым таким шагом будет удаление кирпичей, которые больше не доступны. Команда для этого будет следующей:

gluster volume remove-brick disperseVol 192.168.130.4:/mnt/gluster/disperseVol force
gluster volume remove-brick disperseVol 192.168.130.2:/mnt/gluster/disperseVol force

Это позволит системе обновить состояние объёма, удалив недоступные кирпичи.

Шаг 2: Добавление новых кирпичей

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

gluster volume add-brick disperseVol 192.168.130.6:/mnt/gluster/disperseVol
gluster volume add-brick disperseVol 192.168.130.7:/mnt/gluster/disperseVol

При этом необходимо убедиться, что указанные IP-адреса действительны и на них настроены соответствующие директорий для Gluster.

Шаг 3: Запуск процесса самовосстановления

После добавления новых кирпичей, Gluster автоматически начнёт процесс самовосстановления. Если это не происходит автоматически, вы можете вручную запустить его с помощью команды:

gluster volume heal disperseVol

Этот процесс восстановит данные, распределив их на вновь добавленные кирпичи.


Заключение

В результате использования вышеописанных шагов вы сможете эффективно заменить потерянные кирпичи в рассеянном объёме Gluster. Убедитесь, что все команды выполняются с учётом текущего состояния вашего объёма и сервера. Не забывайте следить за логами и состоянием объёма после выполнения операций, чтобы избежать возможных проблем.

Если у вас возникнут дополнительные вопросы в процессе работы, обратитесь к документации Gluster или сообществу за поддержкой.

Оцените материал
Добавить комментарий

Капча загружается...