repairHyper-v Replica – problemy

Hv Replica jest dobrą ideą – jednak wykonanie szwanqje. wiele operacji, jakie jest wykonywane w ramach HvR jest zabójcze dla niego samego. do tego zachowanie jest bardzo nieprzejrzyste – do powodu błędów trzeba mocno dociekać, opisy są zwodnicze, braqje narzędzi do bezpośredniego debugowania. mówiąc w skrócie – mechanizm zaprojektowany jest jako samograj, a niestety jest na tyle niestabilny, że ciągle trzeba przy nim grzebać i jest to ciężka systemówka.

replikacja przerzuca pliki wektorów zmian [.hrl]. kiedy zostanie przerzucony plik, następuje… łączenie [merge] plików vhd. o ile w przypadq małej zmiany i małego pliq wszystko sobie działa dobrze, o tyle przewalenie kilq GB pliq do zmerdżowania z np. 1TB dyskiem, jest operacją zabijającą mechanizm – nie ma możliwości skończyć się ani w 5min [standardowy czas przerzucania zmian HvR] ani w 15min [max. jaki można ustawić] a zdarza się, że i godzina byłoby za mało, jeśli dyski są na prawdę duże. operacja jest wykonywana po stronie odbiorcy i jest to operacja bloqjąca – w czasie, kiedy jest wykonywana, z maszyną nie da się nic zrobić, a nadawca dostaje informację, że replikacji nie można wykonać.

dodatkowym problemem jest fakt, iż operacja łączenia dysków nie jest w żaden sposób pokazywana przez interfejs. błędy wyglądają następująco:

serwer wysyłający

log Hyper-V-VMMS/Admin, Event ID: 32552,

Hyper-V could not replicate changes for virtual machine '<VMNAME>' because the Replica server refused the connection. This may be because there is a pending replication operation in the Replica server for the same virtual machine which is taking longer than expected or has an existing connection. (Virtual machine ID <VMGUID>)

 

log Hyper-V-VMMS/Admin, Event ID: 32315,

Hyper-V failed to replicate changes for virtual machine '<VMNAME>' (Virtual Machine ID <VMGUID>). Hyper-V will retry replication after 5 minute(s).

 

serwer odbierający

log Hyper-V-VMMS/Admin, Event ID: 15268 [nie występuje zawsze]

Failed to get the disk information.

log Hyper-V-VMMS/Storage, Event ID: 27000,

Failed to open attachment 'C:\ClusterStorage\VolumeX\Hyper-V Replica\Virtual hard disks\<VMGUID>\<DISKGUID>.avhdx'. Error: 'The process cannot access the file because it is being used by another process.'.

ponadto jest możliwość szybkiej weryfikacji przy pomocy PowerShell, weryfiqjąc status maszyny na serwerze odbierającym:

PS C:\scriptz\> get-vm <VMNAME>|select *status*

OperationalStatus          : {InService, ModifyingUpVirtualMachine}
PrimaryOperationalStatus   : InService
SecondaryOperationalStatus : ModifyingUpVirtualMachine
StatusDescriptions         : {In service, Modifying virtual machine}
PrimaryStatusDescription   : In service
SecondaryStatusDescription : Modifying virtual machine
Status                     : Modifying virtual machine
MemoryStatus               :

statusy wyraźnie pokazują – ‘InService’ oraz ‘ModifyingUpVirtualMachine’ – być może taki status jest również w innych scenariuszach, ale regularnie powtarzający się – może oznaczać tylko jedno. dyski się łączą.

dalsze konsekwencje

to za chwilę prowadzi to zmiany statusu repliki na ‘critical’ i ustawienia wymuszenia resynchronizacji w następnym cyklu [standardowo chyba raz dziennie o 18.oo – godzinę można sobie ustawić]. jeśli ręcznie wymusi się powtórną próbę replikacji po zakończeniu operacji ‘merge’, to wszystko powinno być ok i maszyna powinna się zacząć replikować. jeśli jednak zostawi się na automat, to do cyklu resync może minąć zbyt wiele czasu, a to będzie oznaczało faktyczny resync.

i tu dochodzimy do kolejnej maskrycznej operacji – resynchronizacja. jest to kolejna operacja bloqjąca, podczas trwania której sypią się backupy [lockowany jest VSS], a biorąc pod uwagą ile trwa czasu dla dużych dysqw, potrafi spowodować lawinowe błędy.

jak uniknąć części błędów

różnymi automatami – trzeba monitorować replikację i oskryptować całe rozwiązanie. można to zrobić w bardziej wyrafinowany sposób, można po prostu co jakiś czas wymuszać resync dla wszystkich maszyn.

jest też ciekawostka, która nigdzie nie jest opisana – w każdym razie nie trafiłem – podeślijcie linka, jeśli się mylę. póki co – wisienka na torcie, exclusive dla w-filesowiczów (;

kiedy poobserwuje się replikację, można zauważyć, że w pewnym momencie taski ‘zawisają’. jeśli z powodów opisanych powyżej wykonuje się kilka resynchronizacji, nagle okazuje się, że pozostałe maszyny co i rusz, również wchodzą w stan ‘critical’. ograniczeniem jest opcja definiująca ilość równoczesnych ‘storage migration’, ustawiana we właściwościach Hyper-V. standardowo są to dwie operacje. nawet jeśli maszyny rozłożone są na kilq węzłach klastra, może okazać się, że jakieś dwie długie synchronizacje lub resynchronizacje, będą blokować pozostałe maszyny. dla tego warto ten parametr zwiększyć. to znacząco obniża ilość problemów!

ponoć w Windows 1o Server, mechanizm replikacji ma być wymieniony – ale również nie mogę znaleźć artykułu potwierdzającego ten fakt /:

będę wdzięczny za linki (:

eN.

 

Spread the love

Comments (4)

  1. Zenon Góra

    Odpowiedz

    Parafrazując klasyka. Hyper-V bohatersko walczy z problemami nieznanymi w VMware ;)

  2. Odpowiedz

    nie znam się na VMWare więc popraw mnie, jeśli się mylę ale:
    hyper-v replica jest o tyle specyfinczym rozwiązaniem, ze pozwala na założenie kopii nawet przy słabym łączu. utrzymujemy *tanie* środowisko DRC na łączu 4oMbps.
    AFAIK VMWare wymaga – optymalnie czarnego światła – i replikacja jest możliwa wyłącznie przy minimalnej latencji i dane replikowane są non-stop a nie interwałach po 5-15 min.

    mechanizmy te są więc radykalnie inne. nie mam też danych z ‘normalnego’ środowiska – gdzie centrum DR jest połączone czarnym światłem – domyślam się, że tam tego rodzaju problemy nie występują.

    • Zenon Góra

      Odpowiedz

      vSphere Replication działa podobnie jak w Hyper-V. Robisz intial seeda, a później przesyłane są tylko delty.

      Wymagania co do łącza zależą głównie od tego jakie ustawisz RPO i od tego ile jest zmian (Data Change Rate). np jeśli RPO ustawisz na godzinę a masz 100GB zmian dziennie, to średnio w ciągu godziny musisz przepchnąć 4GB. Czyli teoretycznie powinno Ci wystarczyć łącze 10MBit

      • a jak sobie to radzi w sytuacjach stykowych: dłuższa niedostępność łącza [ominięte kilka cykli], merge dużych plików [np. zmiana 4oGB do dysq 1TB], czy backupy nie lockują replikacji?
        bo w małym środowisq to HvR działa całkiem sprawnie. problemy na jakie się natykam wynikają ze skali + założenia ‘takiej infrastruktury’.

Zostaw komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Time limit is exhausted. Please reload CAPTCHA.