Если в Apache Cassandra datacenter и rack напрямую не связаны с физической стойкой или центром обработки данных, то как обрабатывается отказоустойчивость?

#cassandra #datastax

#cassandra #datastax

Вопрос:

Я просматривал документ, представленный здесь: https://www.datastax.com/blog/2019/03/distributed-database-things-know-cassandra-datacenter-racks . В нем говорится, что стойки и центры обработки данных — это абстракция, а не жесткое сопоставление с чем-то физическим. Я также сталкивался с этим:

Стойка Cassandra — это логическая группировка узлов Cassandra в кольце. Cassandra использует racks, чтобы обеспечить распределение реплик между различными логическими группами. В результате операции отправляются не только на один узел, но и на несколько узлов, каждый в отдельной стойке, обеспечивая большую отказоустойчивость и доступность.

Мой вопрос в том, что если они не реплицируются на разные физические узлы / стойки, то если одна машина выйдет из строя, не так ли, что все логические «стойки», «центры обработки данных» также станут недоступны? Возможно, мне не хватает много информации об этом, но опять же, я не получаю четкой картины после долгих поисков по этому вопросу.

Ответ №1:

Вы абсолютно правы. Cassandra позволяет указывать логические центры обработки данных и стойки, которые должны соответствовать их физическим аналогам.

Но ничто не заставляет вас это делать. Вы абсолютно можете выбрать создание нескольких логических центров обработки данных в одном физическом центре обработки данных. Вы можете определить каждый узел с отдельными логическими стойками, которые вполне могут быть объединены вместе. В дополнение к этому, все узлы могут быть созданы на одном и том же хосте гипервизора.

В этом случае, если весь DC, rack или отдельный хост должны выйти из строя, кластер становится абсолютно недоступным.

Я бы не советовал этого делать по очевидным причинам. При развертывании в облачной среде (внутренней или внешней) я стараюсь как можно больше понимать о физическом уровне. Таким образом, я способен создавать абстракции логического центра обработки данных, чтобы избежать физических, единичных точек отказа.