TL; DR;Из-за изменения топологии (количества узлов) между двумя контроллерами домена, избежать потоковой передачи данных в AFAIK невозможно.
В настоящее время наш новый DC будет меньше (6 узлов)
Типичный процесс не будет работать из-за выравнивания токенов на узлахбыть другим (кольцо нового кластера изменится). Поэтому простое копирование существующих SSTable не будет работать, так как узлы, содержащие эти таблицы, могут не иметь токенов, соответствующих данным в файлах, и поэтому C * не сможет найти эти данные.
Массовая загрузкаданные на новый DC тоже отсутствуют, так как вы будете перезаписывать старые данные, если вставите их заново.
Чтобы дать вам общее представление о процессе, если вы хотите сохранить топологию:
- снимок данных с исходного DC
- Настройте новый DC. Чрезвычайно важно, чтобы вы установили initial_token для каждой машины. Вы можете получить список необходимых токенов, запустив
nodetool ring
в исходном кластере. Вот почему вам нужно одинаковое количество узлов. Также важно, чтобы при копировании файлов SSTable файлы и токены были с одного и того же узла. - отправляйте данные на новый DC (помните, что новый узел 10.0.0.1 получил свои токены от192.168.0.100 в старом dc, то он также должен получить свои снимки с 192.168.0.100).
- Запустите новый DC и убедитесь, что оба DC видят друг друга хорошо.
- Перестройка и восстановление
system_distributed
и system_auth
(при условии, что у вас включена аутентификация) - Обновление согласованности клиентак тому, что вам нужно. (Вы хотите написать в оба DC? Из вашего описания звучит как нет, так что вы можете быть все хорошо).
- Обновите схему, убедитесь, что вы используете
NetworkTopologyStrategy
для всех ключей, которыми вы хотите поделиться, затем добавьте репликацию для нового DC.
ALTER KEYSPACE ks WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'oldDC' : 3, 'newDC':3 };
Выполните полное восстановление на каждом узле в новом DC.