czy należy przetasować stary klaster po migracji vnodes?
Nie musisz. Jeśli przejdziesz z jednego tokenu na węzeł do 256 (wartość domyślna), każdy węzeł podzieli jego zakres na 256 sąsiednich, równorzędnych zakresów. Nie ma to wpływu na miejsce przechowywania danych. Oznacza to jednak, że po uruchomieniu w nowym węźle nowego DC pozostanie on zrównoważony podczas całego procesu.
jaki jest najlepszy sposób na przejście na NetworkTopologyStrategy i GossipingPropertyFileSnitch?
Trudność polega na tym, że zmiana strategii replikacji nie jest ogólnie bezpieczna, ponieważ dane będą musiały być przenoszone wokół klastra. NetworkToplogyStrategy (NTS) umieści dane na różnych węzłach, jeśli powiesz, że węzły są w różnych stojakach. Z tego powodu powinieneś przejść do NTS przed dodaniem nowych węzłów.
Oto sposób, aby to zrobić, po uaktualnieniu starego klastra vnodes (kroku 1 powyżej):
1a. Wymień wszystkie istniejące węzły jako będące w DC0 w pliku właściwości. Wymień nowe węzły jako będące w DC1 i ich prawidłowe stojaki.
1b. Zmień strategię replikacji na NTS z opcjami DC0: 3 (lub czymkolwiek, co jest twoim aktualnym współczynnikiem replikacji) i DC1: 0.
Następnie, aby dodać nowe węzły, wykonaj procedurę tutaj: http://www.datastax.com/docs/1.2/operations/add_replace_nodes#adding-a-data-center-to-a-cluster. Pamiętaj, aby ustawić liczbę tokenów na 256, ponieważ domyślnie będzie to 1.
W kroku 5 należy ustawić współczynnik replikacji dla DC0 na 0, tj. Zmienić opcje replikacji na DC0: 0, DC1: 3. Teraz węzły te nie są używane, więc wycofanie nie spowoduje przesłania żadnych danych, ale nadal należy je wykonywać, zamiast je wyłączać, aby zostały usunięte z ringu.
Jednym z zagrożeń jest to, że zapisy wykonane na niskim poziomie spójności do starych węzłów mogłyby się zagubić. Aby tego uniknąć, możesz napisać na CL.LOCAL_QUORUM po przejściu na nowy DC. Nadal istnieje małe okno, w którym można zgubić wpisy (między krokami 3 i 4). Jeśli jest to ważne, możesz uruchomić naprawę przed wyłączeniem starych węzłów, aby zagwarantować brak strat lub napisać na wysokim poziomie spójności.
pro tip: wypróbuj najpierw w środowisku testowym/nieprodukcyjnym. – Schildmeijer
tak to robię teraz – relgames