- Вопрос или проблема
- Ответ или решение
- Как заменить кирпич в рассеянном объёме Gluster
- Чем отличается рассеянный объём от других типов?
- Невозможность использования команды replace-brick
- Процесс замены кирпичей в рассеянном объёме
- Шаг 1: Удаление потерянных кирпичей
- Шаг 2: Добавление новых кирпичей
- Шаг 3: Запуск процесса самовосстановления
- Заключение
Вопрос или проблема
Я настроил распределенный том 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 или сообществу за поддержкой.