2015-08-17 2 views
1

В кластере из 4 узлов 1.1.10, если мы хотим изменить базовое хранилище одного узла, я думаю о принятии следующих шагов. Это верно?4 node Cluster Query

  1. Возьми snapshop дисков
  2. Возьмите узел вниз и принять окончательный снимок и поменять местами хранения
  3. Принесите узел вверх
  4. Cassandra автоматически балансировать/нагнать на узле

Шаг 2, как ожидается, займет около 1 часа. В течение этого времени кластер позаботится о запросах клиентов.

Есть ли что-нибудь еще, что нужно сделать?

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

ответ

1

Не было бы лучше добавить новый узел с соответствующим хранилищем, дождаться, пока Кассандра балансирует кластер, а затем выведет старый узел? Нулевой простоя, нет необходимости делать снимки. Вы можете сделать релиз из источника - Cassandra 1.1.10.

Тем не менее, если вы хотите сделать это по-своему:

  • убедитесь, что вы знаете своего врага - Cassandra будет использовать hinted handoff Механизм - проверить max_hint_window_in_ms значение
  • , чтобы быть уверенным, чтобы избежать воскрешения данных, запустите nodetool repair на всех узлах, отметьте GCGraceSeconds значение
  • убедитесь, что ваш клиент использует соответствующий уровень согласованности - ConsistencyLevel.ALL не подходит в этом случае
+0

Пробовал это, но проблема заключалась в том, чтобы получить версию cassandra 1.1.10. Я не мог найти программное обеспечение нигде. –

+0

@RajivSrivastava, я обновил ответ. – piotrwest

+0

Спасибо @piotrwest, высоко ценят за ценную информацию. Есть ли способ проверить на уровне бэкэнда, какие запросы поступают от клиентов или, другими словами, какой уровень согласованности указан? –