Jak thin provisioning zmienia ryzyko pojemności i operacje I/O w maszynach wirtualnych domowego serwera?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Cienka alokacja zmienia przechowywanie danych maszyn wirtualnych na serwerze domowym, oddzielając pojemność widoczną dla maszyny wirtualnej od fizycznych bloków aktualnie zarezerwowanych na hoście. Maszyna wirtualna może widzieć duży dysk wirtualny, podczas gdy plik zaplecza lub wolumin logiczny zużywa tylko faktycznie zapisane bloki.

To poprawia wykorzystanie zasobów i przyspiesza tworzenie maszyn wirtualnych, ale przenosi ryzyko z początkowej alokacji na bieżącą kontrolę pojemności. Pierwsze zapisy mogą wymagać nowej alokacji bloków, usunięte pliki gościa mogą pozostać zarezerwowane na hoście, migawki dodają nowe wersje bloków, a kilka maszyn może konkurować o tę samą wolną pulę.

Co wirtualizuje cienka alokacja?

Dysk wirtualny z cienką alokacją reklamuje maksymalny rozmiar logiczny bez natychmiastowej rezerwacji całej tej przestrzeni. Gość widzi zwykły dysk, podczas gdy host śledzi mniejszą alokację zaplecza.

Pozorna wielkość dysku jest więc obietnicą, jak duży dysk może się stać, a nie dowodem, że host już posiada wystarczającą liczbę bloków, aby zaspokoić każdy przyszły zapis. Hypervisor, pula pamięci i gość raportują różne warstwy pojemności.

To rozróżnienie jest cenne na serwerze domowym, ponieważ wiele dysków maszyn wirtualnych zawiera duże nieużywane obszary. Cienka alokacja unika rezerwowania tych pustych obszarów dla jednej maszyny, gdy inna maszyna mogłaby wykorzystać tę samą fizyczną przestrzeń.

Jak alokacja na żądanie zmienia operacje I/O?

W przypadku cienkiej alokacji bloki są przydzielane w miarę zapisu danych przez gościa. Zapis do wcześniej nieużywanego obszaru może wymagać aktualizacji metadanych i przydzielenia fizycznych bloków, zanim zapis danych zostanie zakończony.

Dodatkowa praca jest zwykle najbardziej widoczna przy pierwszym zapisie do nowych obszarów, a nie przy każdym kolejnym nadpisaniu. Pamięć flash może ukryć większość opóźnień, podczas gdy fragmentowany lub prawie pełny dysk HDD może wyraźniej ujawnić opóźnienia alokacji.

Thin i thick to tylko jeden aspekt wydajności maszyny wirtualnej. Polityka pamięci podręcznej, projekt systemu plików, warstwy copy-on-write, zachowanie RAID oraz wzorce dostępu innych maszyn wirtualnych mogą mieć większy wpływ niż sam format alokacji.

Dlaczego pojemność wirtualna może przekraczać rzeczywisty zasób?

Thin provisioning pozwala, aby pojemność logiczna przekraczała fizyczną przestrzeń dyskową, ponieważ administratorzy zakładają, że maszyny wirtualne nie będą jednocześnie wykorzystywać maksymalnej pojemności swoich dysków.

To jest nadrezerwacja pamięci masowej. Poprawia wykorzystanie, gdy wzrost VM jest stopniowy i nierównomierny, ale niezapisana część nie jest rezerwą. Dwie VM mogą obie wierzyć, że pozostała wystarczająca wolna pojemność, mimo że wspólna pula hosta nie może zaspokoić obu maksymalnych wymagań.

Znaczącą liczbą bezpieczeństwa jest wolna pojemność puli zaplecza po uwzględnieniu migawek, metadanych, operacji tymczasowych i oczekiwanego wzrostu. Sumowanie rozmiarów dysków wirtualnych mierzy zobowiązania, a nie aktualne fizyczne zużycie.

Dlaczego usuwanie plików wewnątrz VM nie zawsze zwalnia przestrzeń?

Usunięcie pliku zwykle oznacza zwolnienie bloków systemu plików gościa, ale usunięte dane gościa nie kurczą się automatycznie. Host nie może wywnioskować, że stare bloki zaplecza można bezpiecznie zwolnić, jeśli informacja nie przechodzi przez wirtualny stos pamięci masowej.

Discard, TRIM lub UNMAP mogą sygnalizować, że te logiczne bloki nie są już potrzebne. Zwolnienie działa tylko wtedy, gdy system plików gościa, kontroler wirtualny, format dysku, hypervisor i pula zaplecza przekazują i respektują ten sygnał.

Bez end-to-end discard VM może raportować dużą ilość wolnej przestrzeni, podczas gdy jej cienki dysk pozostaje duży na hoście. Planowanie pojemności musi więc porównywać wolną przestrzeń gościa z przydzieloną przestrzenią zaplecza, a nie traktować ich jako ten sam pomiar.

Jak migawki VM zmieniają rzeczywiste wykorzystanie przestrzeni?

Gdy tworzona jest migawka maszyny wirtualnej, nowe zapisy mogą trafiać do warstwy delta lub copy-on-write. pliki delta migawki stale rosną, podczas gdy starszy stan dysku pozostaje referencjonowany do wycofania zmian.

Thin provisioning i migawki wzajemnie zwiększają swoją elastyczność i niepewność. Dysk bazowy może być cienki, każda warstwa migawki może rosnąć dynamicznie, a konsolidacja może wymagać tymczasowej wolnej przestrzeni do scalania zmienionych bloków.

migawki mogą zachować już pełny stan, więc obecność migawki nie dowodzi, że pozostała wystarczająca pojemność puli ani że zachowana wersja jest zdrowa.

Co się dzieje, gdy pula zapasowa się wyczerpie?

Gość może nadal pokazywać wolną wirtualną przestrzeń dyskową, gdy wyczerpanie datastore może zatrzymać kilka VM. Błąd pojawia się na warstwie wspólnego przydziału, poniżej widoku systemu plików wewnątrz każdej VM.

Nowe zapisy mogą się nie powieść, systemy plików mogą wejść w stan błędu, bazy danych mogą przestać działać, a operacje snapshotów mogą nie zostać ukończone. Ponieważ kilka VM dzieli tę samą pulę, jedno szybko rosnące obciążenie może zużyć margines oczekiwany przez niezwiązane usługi.

Bezpieczny projekt monitoruje fizyczny przydział, wzrost snapshotów, skuteczność discard oraz tempo wzrostu; ustawia progi ostrzegawcze i awaryjne; oraz zachowuje niezobowiązujący margines na konsolidację, migrację i operacje odzyskiwania.

Widok pamięci Co jest raportowane Główna ślepa plama
System plików gościa Wolna przestrzeń wewnątrz VM Może nie odzwierciedlać przydziału po stronie hosta
Dysk wirtualny Maksymalna pojemność logiczna Nie gwarantuje fizycznej rezerwacji
Pula zapasowa Aktualna fizyczna wolna przestrzeń Musi uwzględniać wzrost snapshotów i metadanych
Menedżer snapshotów Zachowane stany VM Konsolidacja może wymagać dodatkowego marginesu

Najczęściej zadawane pytania

Czy cienkie przydzielanie zawsze spowalnia pamięć VM?

Nie. Przydział nowych bloków może dodać pracę przy pierwszym zapisie, ale nośnik pamięci, pamięć podręczna, fragmentacja, stopień zapełnienia puli i wzorzec obciążenia często mają większy wpływ.

Czy pięć cienko przydzielonych dysków po 200 GB może bezpiecznie dzielić pulę 500 GB?

Tylko wtedy, gdy monitorowany jest rzeczywisty wzrost, snapshoty, operacje tymczasowe i margines na odzyskiwanie. 1 TB pojemności logicznej to zobowiązanie, którego pula 500 GB nie może jednocześnie spełnić.

Czy usunięcie plików wewnątrz VM zmniejsza plik zapasowy?

Nie automatycznie. Gość musi wydać polecenie discard lub UNMAP, a każda warstwa aż do puli zapasowej musi obsługiwać i przetwarzać sygnał zwolnienia.

Czy snapshoty są kopiami zapasowymi dla cienko przydzielonych VM?

Nie. Snapshots zależą od tej samej pamięci zapasowej i mogą zwiększać jej zużycie. Niezależna kopia zapasowa zapewnia oddzielną granicę odzyskiwania.

Ostateczne wnioski

Thin provisioning poprawia wykorzystanie pamięci serwera domowego przez przydzielanie bloków VM tylko wtedy, gdy są używane, ale zamienia nieużywaną wirtualną pojemność w wspólną obietnicę, a nie rezerwację. Niezawodna praca zależy od monitorowania fizycznej puli, prawidłowego przekazywania polecenia discard, ograniczania wzrostu snapshotów oraz zachowania wystarczającego marginesu na konsolidację i odzyskiwanie.

Centrum Technologii i Sztucznej Inteligencji

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.