JBOD по проблеме Кассандры

У меня есть кластер cassandra с 3 узлами с конфигурацией JBOD. У меня есть 4 диска для данных /data1, /data2, /data3, /data4. Теперь мы часто сталкиваемся с проблемой свободного места на диске на узлах. В настоящее время /data1 заполнен (100%), а на других дисках /data2(26%),/data3(34%), data4(17%), используемых на узле 1 и других узлах, достаточно места на всех дисках.

1) Итак, мой вопрос: если какие-либо запросы поступят в кластер cassandra, а данные будут отправлены в /data1 на node1, что произойдет? Запрос не выполнен? или cassandra справится и запишет на другой диск, на котором есть место?

2) JBOD полезен в кассандре, кроме аварийного восстановления диска?

Заранее спасибо!


person LetsNoSQL    schedule 16.03.2019    source источник


Ответы (1)


Данные должны распределяться равномерно. Вы добавляли эти диски по одному или все сразу?

Подробнее о том, как это работает, можно прочитать в статье Энтони Грассо по адресу http://thelastpickle.com/blog/2018/08/22/the-fine-print-when-using-multiple-data-directories..html

Его и мое предложение состоит в том, что если вы хотите использовать много дисков/каталогов данных, попробуйте объединить их с LVM или ZFS

person Rahul Singh    schedule 16.03.2019
comment
Спасибо, Рахул, но данные не распространяются, как я уже упоминал в своем вопросе. Да, все диски добавляются только во время установки. Но мой вопрос выше 2, что я описал. - person LetsNoSQL; 18.03.2019
comment
Тогда у вас могут быть широкие разделы для некоторых данных, и эти широкие разделы должны быть объединены в SSTables по очевидным причинам. Возможно, вы захотите посмотреть, насколько велики ваши разделы, и посмотреть, есть ли действительно большие разделы. - person Rahul Singh; 19.03.2019
comment
Это причина того, что данные распределяются неравномерно, верно? @ Рахул, а как насчет моих двух вопросов выше? - person LetsNoSQL; 19.03.2019
comment
В то время как новые данные, будь то потоком или новыми вставками, будут поступать на разные диски, но пока они думают, что старые SSTables все еще там, они будут продолжать идти на disk1. - person Rahul Singh; 19.03.2019
comment
@Спасибо, Рахул, за уделенное время. Таким образом, cassandra будет управлять автоматически, если /data1 будет заполнен (100%), тогда она запишет данные на другой диск, и мой запрос не завершится ошибкой. Насколько я понимаю, sstables неизменны, тогда почему cassandra будет думать о старых sstables? - person LetsNoSQL; 20.03.2019
comment
При сжатии избыточные записи уплотняются, и все обновления раздела перемещаются рядом друг с другом. В это время старые записи очищаются/собираются мусор. docs.datastax.com/en/cassandra/3.0/cassandra/ дмл/ - person Rahul Singh; 27.03.2019
comment
Хорошо, есть ли какие-либо конфигурации, в которых мы можем установить пороговое значение диска для всех дисков с использованием JBOD, чтобы мы могли избежать подобных проблем, а сжатие и запись происходили гладко? - person LetsNoSQL; 17.04.2020