Я исследую перенос некоторых больших БД из MySQL в Cassandra, и я пытаюсь понять, как спланировать кластер. Исторически сложилось так, что можно было бы просто купить диски для хранения соответствующих данных, но я не понимаю, как Cassandra использует дисковое пространство по сравнению с пространством RAM.
При планировании кластера возникает вопрос, сколько машин, сколько дисков, ОЗУ и т. Д. На машину. Как мне ответить на это за 1Тб? 10 Тб? Больше?
Планирование мощности действительно это наука (в плане математики / статистики). Поскольку математические модели никуда вас не приведут, вам действительно нужно настроить испытательный стенд, который можно использовать для ответа на ваши вопросы, поскольку никто здесь не может предоставить вам теоретическую модель, которую вы, похоже, просите.
Как на это ответить:
или наймите профессионала.
По сути, формула для диска на узел это D x RF / N x O / C с переменными, определенными ниже:
После того, как вы получили некоторые числа, вы должны выбрать «диск на узел», который составляет не более 30% доступного локального хранилища, чтобы вам не приходилось немедленно наращивать кластер, и поэтому возможны моментальные снимки.
Планирование памяти намного больше зависит от того, как выглядит ваша схема, но вам понадобится как минимум 4 ГБ, выделенные для Cassandra на каждом узле. ОС сможет использовать что угодно, кроме этого, для очень полезного кэширования диска. Больше памяти становится полностью бесполезным только тогда, когда она существенно превышает реальный объем данных, находящихся на диске.