Niesamowicie wolne usuwanie migawek

13

Mam pudełko ESXi z pamięcią HP LeftHand udostępnioną przez iSCSI.

Mam maszynę wirtualną z dyskiem 1 TB, z którego zużywa się 800 GB. Dysk jest grubo udostępniony w magazynie LeftHand.

Migawka została otwarta na maszynie wirtualnej (aby Veeam Backup and Recovery mogła to zrobić) i była otwarta przez około 6 godzin. W tym czasie utworzono dysk delta o wielkości około 5 GB.

Usunięcie migawki trwa teraz ponad 5 godzin i nadal nie jest kompletne. Macierz pamięci praktycznie nie zgłasza IOPS w tej macierzy (około 600, co jest szumem w tle), brak przepustowości (około 8 MB / s, co ponownie - szum w tle), średnia głębokość kolejki 9.

Innymi słowy, proces konsolidacji migawek nie wydaje się być związany z IO, nie widzę niczego, co powodowałoby, że usuwanie migawki jest tak cholernie wolne. To jest praca, sądząc oglądania plików delta.

Czy jest jeszcze coś, na co powinienem spojrzeć, dlaczego ta (stosunkowo mała) migawka jest tak wolna do usunięcia?


Zgodnie z dokumentacją VMWare oglądam ls -lh | grep -E "delta|flat|sesparse"teraz i widzę dwa zmieniające się pliki delta:

-rw-------    1 root     root      194.0M Jun 15 01:28 EXAMPLE-000001-delta.vmdk
-rw-------    1 root     root      274.0M Jun 15 01:27 EXAMPLE-000002-delta.vmdk

Wnioskuję, że jeden plik migawki jest konsolidowany, podczas gdy drugi zbiera różnicę podczas procesu konsolidacji. Następnie nowa konsolidowana jest i podczas tego procesu tworzona jest kolejna delta.

Rozmiary plików upuszczenie z każdej iteracji (dobrze, większość iteracji), więc zakładam, że ostatecznie ta procedura konsolidacja zakończy (być może będę musiał podjąć VM poza sieć przez 30 minut, aby ten wykończenie, nie generując żadnych zmian) .

Konsolidacja zajmuje około 2 minuty na sto megaw delta. To z pewnością nigdy wcześniej się nie zdarzyło. Usuwanie migawek w ramach normalnej kopii zapasowej Veeam zajmuje około 40 minut (więc na pewno nie jest to szybkie, ale nie tak wolne).


Po 6 godzinach i 2 minutach migawka jest ostatecznie usuwana. Jednak nadal chciałbym wiedzieć, czy jest jakiś sposób, aby normalnie rozwiązać ten problem (poza wydajnością pamięci).

Mark Henderson
źródło
Nie mogę nie zauważyć, że 8 Mb / s jest dość zbliżone do sieci 10 Mb / s minus pewne koszty ogólne. Czy jest jakaś szansa, że ​​jest to problem związany z siecią na łączu iSCSI? Czy jest to pojedyncze łącze, jeden host, czy w przeciwnym razie host działa poprawnie w przypadku ciągłych odczytów / zapisów? Czy możesz sprawdzić port przełącznika pod kątem błędów?
TessellatingHeckler
@TessellatingHeckler Właśnie wykonałem kilka testów i nadal mogę uzyskać około 1,5 Gbit / s sekwencyjnie z tablicy, czego oczekiwałbym od niego w normalnych okolicznościach. Ostatniej nocy usunięcie migawki zajęło trzy minuty, co jest zdecydowanie najszybszym, jaki kiedykolwiek widziałem (zwykle trwa około 10 razy dłużej, ale ostatniej nocy odbył się tutaj duży mecz piłkarski, więc podejrzewam, że nikt nie używał systemów po godzinach kiedy uruchomione są kopie zapasowe, stąd mała delta i mały czas zatwierdzania). Więc może to zrobić szybko, tylko raz.
Mark Henderson
Hmm Czy masz uruchomiony program VMware Storage IO Control i czy magazyn danych jest współdzielony z innymi maszynami wirtualnymi? Czy jest jakaś szansa, że ​​osiągnęła tam limit dławienia / miękkości, bez obciążania komputera hosta lub sieci SAN?
TessellatingHeckler
Wersja ESXi i vCenter?
Nils,
@Nils 5.5 dla obu
Mark Henderson

Odpowiedzi:

2

Rozumiem, że usuwanie migawek ESXI może (i zwykle trwa) długo. Zanim migawka będzie mogła zostać usunięta, zmiany ze starej migawki muszą być zapisane w kolejnej migawce w kolejności. Nauczono mnie, aby zawsze usuwać migawki od najstarszych do najnowszych, aby proces ten przebiegał tak szybko i wydajnie, jak to możliwe.

Oczywiście im więcej zmian między migawkami, tym dłużej zajmie scalenie.

Andrew Meyer
źródło
1
Racja, z wyjątkiem 6 godzin usunięcia migawki 5 GB jest absurdalne. Jak wspomniałem, usunięcie migawki zajmuje zwykle około 40 minut, a nawet uważam, że 40 minut jest zbyt cholernie wolne. To była jedyna migawka na tej maszynie wirtualnej, a także usuwanie migawek zmieniło się w późniejszych wersjach ESXi, ponieważ kolejność ich usuwania nie ma większego znaczenia.
Mark Henderson
2
Widziałem wcześniej powolne zachowanie migawki z niewielką liczbą operacji we / wy w pamięci, ale nigdy nie znalazłem przyczyny. Zawsze zakładałem, że hiperwizor żuje delty w pamięci. (Maszyny, o których mowa, korzystały z pamięci podłączonej bezpośrednio lub mogłem też przyjrzeć się problemom z siecią SAN, ale zawsze przypisywałem to dużym deltami lub niezoptymalizowanemu kodowi w podsystemie migawek VMWare).
voretaq7