Миграция данных cassandra с обычного накопителя на SSD на производственном сервере
Мы хотим перенести наши данные с обычных дисков на производственном сервере на новые SSD-диски. как мы можем это сделать, не отключая узел не дольше, чем на 4 часа (намекается, что передача составляет 4 часа), наши данные находятся в нескольких сотнях гигабайт.
я думал о том, чтобы остановить cassandra на одном узле за раз, сбрасывая данные на диски, а затем перенося данные со старых дисков на новые диски, де-монтируя старый диск и возвращая узел в оперативный режим. Это правильный подход? Если это так, то что меня больше всего беспокоит, так это перенос данных на новый диск в среднем более 4 часов, пока я теряю подсказки.
Есть ли лучший подход для переноса данных на новые диски?
2 ответа
Пока Cassandra работает, rsync с HD на SSD. Убедитесь, что вы используете флаги -H и --delete для адресации жестких ссылок и удаленных sstables/commitlogs. Не забывайте коммиты, если они на одном устройстве. Как только вы дойдете до точки, в которой вы передали большую часть данных, и последующие rsyncs завершатся сравнительно быстро, вы можете использовать и остановить этот экземпляр cassandra, выполнить окончательную rsync и изменить путь data_dir. Это сокращает время простоя узла до минут, примерно столько же времени, сколько требуется для окончательной rsync, при условии, что шасси может одновременно работать с HD и SSD.
Или если у вас есть репликация> 1, смоделируйте мертвый узел, а затем загрузите его с новым расположением SSD и подключите его к кластеру.