Узлы Cassandra не равны

У нас есть два узла. Node1 был недоступен в течение длительного времени. За это время Node2 увеличил емкость на 1 ТБ, когда Node1 имеет 100 ГБ.

Мы попытались восстановить Node1 с помощью восстановления nodetool, но ничего не изменилось. После этого мы начали ремонт nodetool в Node2, на уплотнение ушло 5 дней, но тоже ничего не изменилось.

Актуальный статус здесь:

Datacenter: dc1
===============
Status=Up/Down

|/ State=Normal/Leaving/Joining/Moving
--  Address       Load       Tokens       Owns (effective)  Host ID    Rack

UN  172.x.y.z     149.46 GB  256          100.0%            xxx  rack1
UN  172.x.y.k     1.04 TB    256          100.0%            xyz  rack1

Узлы находятся в AWS. Что нам делать?


person Ekrem Gurdal    schedule 22.03.2018    source источник
comment
Какую версию Кассандры вы используете? Какой у вас коэффициент репликации? Много обновлений или удалений?   -  person Mandraenke    schedule 22.03.2018
comment
@Mandraenke cqlsh:5.0.1 cassandra: 3.0.9 CQL Spec: 3.4.0, коэффициент репликации = 2, много обновлений ~ 1 ТБ   -  person Ekrem Gurdal    schedule 22.03.2018
comment
Что ж, если есть 1 ТБ обновлений на месте, которые приводят к 100 ГБ фактических данных, то вполне возможно, что с y.z все в порядке. Реальный вопрос: может ли ваше приложение запросить ВСЕ или ДВА без проблем?   -  person Aaron    schedule 22.03.2018
comment
Я могу полностью согласиться с @Aron - я думаю, у вас в основном есть обновления в ваших sstables на node2, которые еще не сжаты.   -  person Mandraenke    schedule 22.03.2018
comment
Мое приложение не может запрашивать два узла. Он случайным образом выбирает один узел и запрашивает. Если данных нет, он останавливается. Должен быть точно такой же Load после ремонта? @Мандраенке   -  person Ekrem Gurdal    schedule 23.03.2018


Ответы (1)


У нас было решение, но мы не знаем, как это произошло. Вот что мы сделали:

  • Сделал снимок обоих серверов на случай потери данных через AWS
  • Мы отделили Том, где хранятся данные. (например, 172.x.y.k)
  • Мы отформатировали экземпляр и загрузили Cassandra с новой версией. Затем мы прикрепляем Volume, где хранятся данные.
  • Наконец мы запустили nodetool repair --full в терминале, и это заняло 4 дня.

Теперь наши узлы равны.

person Ekrem Gurdal    schedule 09.04.2018