Как Yugabyte справляется с отказом одного диска?

Я хочу знать, как ведет себя Yugabyte в случае отказа одного диска. Конкретно:

  1. Какой процедуре должен следовать системный администратор при сбое одного диска? например мгновенная остановка TServer, замена диска и его перезапуск автоматически копируют планшеты этого диска с других TServers?

  2. Обнаруживает ли TServer автоматически отказ диска и распространяет данные с этого диска на другие диски, если отказавший диск не был заменен в течение установленного периода времени?

Спасибо.


person user2101712    schedule 26.01.2020    source источник


Ответы (1)


Какой процедуре должен следовать системный администратор при сбое одного диска? например мгновенная остановка TServer, замена диска и его перезапуск автоматически копируют планшеты этого диска с других TServers?

Да, следующая процедура работает, YugabyteDB распознает отсутствие данных и восстановит данные:

  • Остановить серверы
  • Замените диски
  • Перезапустите серверы

Вы можете попробовать это в песочнице на своем ноутбуке, используя yb-ctl, если хотите понять это поведение. Настройка/процедура такие же, как в этом эксперименте по отказоустойчивости. Вместо удаления узлов просто stop узел, удалите один или несколько «дисков» (которые на самом деле являются просто каталогами) и start узел обратно. Я считаю, что по умолчанию создаются два диска.

Вот руководство для yb-ctl.

PS: Если вы выполняете это упражнение, рассмотрите возможность внесения вклада в раздел отказоустойчивости. в документах, будем рады помочь вам, если вы заинтересованы.

Обнаруживает ли TServer автоматически отказ диска и распространяет данные с этого диска на другие диски, если отказавший диск не был заменен в течение установленного периода времени?

Да, это делается автоматически, если есть достаточно других узлов для репликации данных. Например:

  • В конфигурации с одной зоной с коэффициентом репликации 3: если вы начали с 4 или более узлов, после отказа одного из них останется как минимум три узла. В этом случае ререпликация запускается автоматически, если tserver не работает в течение 10 минут.
  • В конфигурации с несколькими зонами с коэффициентом репликации 3: YugabyteDB попытается сохранить одну копию данных для каждой зоны. В этом случае для автоматической ререпликации данных в зоне должно быть как минимум два tсервера, чтобы в случае сбоя одного его данные можно было ререплицировать на другой. Таким образом, это будет означать, по крайней мере, кластер из 6 узлов.
person Karthik Ranganathan    schedule 27.01.2020