Riak неисправимый сбой диска

У меня есть кластер Riak с 3 узлами, каждый из которых имеет ок. Использование 1 ТБ диска. Внезапно жесткий диск одного узла вышел из строя безвозвратно. Итак, я добавил новый узел, используя следующие шаги:

1) соединение с кластером riak-admin 2) вниз по отказавшему узлу 3) riak-admin принудительная замена нового узла с отказавшим узлом 4) план кластера riak-admin 5) фиксация кластера riak-admin.

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

1 ответ

Ответ можно получить, разместив тот же вопрос на riak-users@lists.basho.com:

(0) трех узлов недостаточно, у вас должно быть 5 узлов (1) вы можете выполнить итерацию и прочитать каждый объект в кластере - это также приведет к восстановлению чтения для каждого объекта (2) - скопировано из ответа Энгеля Санчеса на аналогичный вопрос апрель 10-е 2014) * Если AAE отключен, вам не нужно останавливать узел для удаления данных в каталогах anti_entropy * Если AAE включен, удаление данных AAE по мере поступления может вызвать лавину восстановлений чтения между узлами с плохие деревья и узлы с хорошими деревьями, поскольку данные, кажется, расходятся.

Если ваши узлы уже работают, с включенным AAE и со старыми неправильными деревьями в миксе, есть лучший способ. Вы можете динамически отключать AAE с помощью некоторых консольных команд. На этом этапе, не останавливая узлы, вы можете удалить все данные AAE в кластере. В удобное время снова включите AAE. Я говорю удобно, потому что все деревья начнут перестраиваться, и это может быть проблематично в перегруженном кластере. Делать это в выходные дни может быть хорошей идеей, если только ваш кластер не сможет принять дополнительную нагрузку.

Чтобы динамически отключить AAE из консоли Riak, вы можете запустить эту команду:

riak_core_util: rpc_every_member_ann (riak_kv_entropy_manager, отключить, [], 60000).

и включите с аналогичным:

riak_core_util: rpc_every_member_ann (riak_kv_entropy_manager, enable, [], 60000).

Этот последний номер является просто тайм-аутом для операции RPC. Я надеюсь, что это сэкономит вам дополнительную нагрузку на ваши кластеры. (3) Это будет: (3a) Перечислите все ключи, используя клиент по вашему выбору (3b) Получите каждый объект

https://www.tiot.jp/riak-docs/riak/kv/2.2.3/developing/usage/reading-objects/

https://www.tiot.jp/riak-docs/riak/kv/2.2.3/developing/usage/secondary-indexes/

Другие вопросы по тегам