Tymczasowa izolacja między maszynami wirtualnymi

Izolacja czasowa lub izolacja wydajności między maszynami wirtualnymi (VM) odnosi się do możliwości izolowania czasowego zachowania (lub ograniczania czasowych zakłóceń) wielu maszyn wirtualnych między sobą, mimo że działają one na tym samym hoście fizycznym i współużytkują zestaw zasobów fizycznych, takich jak jak procesory, pamięć i dyski.

Wprowadzenie do problemu

Jedną z głównych zalet korzystania z wirtualizacji w konsolidacji serwerów jest możliwość bezproblemowego „spakowania” wielu niewykorzystywanych systemów na jednym fizycznym hoście, co pozwala uzyskać lepsze ogólne wykorzystanie dostępnych zasobów sprzętowych. W rzeczywistości cały system operacyjny (OS) wraz z działającymi w nim aplikacjami można uruchomić na maszynie wirtualnej (VM). Jednak gdy wiele maszyn wirtualnych działa jednocześnie na tym samym fizycznym hoście, współdzielą one dostępne zasoby fizyczne, w tym procesory , kartę sieciową (y), dysk (dyski) i pamięć. Dodaje to poziom nieprzewidywalności w wydajności, którą może wykazywać każda pojedyncza maszyna wirtualna, w porównaniu z oczekiwaniami. Na przykład maszyna wirtualna z tymczasowym szczytowym obciążeniem obliczeniowym może zakłócać inne działające maszyny wirtualne, powodując znaczny i niepożądany tymczasowy spadek ich wydajności. W świecie komputerów, który zmierza w kierunku przetwarzania w chmurze paradygmatów, w których zasoby (przetwarzanie, pamięć masowa, sieć) mogą być zdalnie wynajmowane w postaci zwirtualizowanej na podstawie precyzyjnych umów o poziomie usług, wysoce pożądane byłoby, aby wydajność zwirtualizowanych zasobów była jak najbardziej stabilna i przewidywalna.

Możliwe rozwiązania

Aby stawić czoła wyżej wymienionemu problemowi, można zastosować wiele technik. Ich celem jest osiągnięcie pewnego stopnia czasowej izolacji między jednocześnie działającymi maszynami wirtualnymi na różnych krytycznych poziomach planowania : planowania procesora, planowania sieci i planowania dysków.

W przypadku procesora możliwe jest zastosowanie odpowiednich technik planowania na poziomie hiperwizora, aby ograniczyć ilość obliczeń, które każda maszyna wirtualna może nałożyć na współużytkowany fizyczny procesor lub rdzeń. Na przykład w Xen zaproponowano harmonogramy BVT, oparte na kredytach i S-EDF do kontrolowania dystrybucji mocy obliczeniowej między konkurującymi maszynami wirtualnymi. Aby uzyskać stabilną wydajność w zwirtualizowanych aplikacjach, konieczne jest użycie konfiguracji harmonogramu, które nie oszczędzają pracy . Również na KVM hypervisor, niektórzy zaproponowali użycie strategii planowania opartych na EDF w celu utrzymania stabilnej i przewidywalnej wydajności zwirtualizowanych aplikacji. Wreszcie, w przypadku wielordzeniowego lub wieloprocesorowego hosta fizycznego możliwe jest wdrożenie każdej maszyny wirtualnej na osobnym procesorze lub rdzeniu w celu tymczasowego odizolowania wydajności różnych maszyn wirtualnych.

W przypadku sieci możliwe jest zastosowanie technik kształtowania ruchu w celu ograniczenia ilości ruchu, jaki każda maszyna wirtualna może nałożyć na hosta. Możliwe jest również zainstalowanie wielu kart sieciowych na tym samym hoście fizycznym i skonfigurowanie warstwy wirtualizacji w taki sposób, aby każda maszyna wirtualna mogła udzielić wyłącznego dostępu do każdej z nich. Jest to możliwe na przykład w przypadku domen sterowników hiperwizora Xen. Istnieją karty sieciowe obsługujące wiele kolejek, które obsługują wiele maszyn wirtualnych na poziomie sprzętowym, z oddzielnymi kolejkami pakietów powiązanymi z różnymi hostowanymi maszynami wirtualnymi (za pomocą adresów IP maszyn wirtualnych), takich jak urządzenia Virtual Machine Device Queue (VMDq) przez Intel . Wreszcie, planowanie procesora w czasie rzeczywistym może być również wykorzystane do zwiększenia izolacji czasowej ruchu sieciowego z wielu maszyn wirtualnych wdrożonych na tym samym procesorze.

Podczas korzystania z planowania w czasie rzeczywistym do kontrolowania ilości zasobów procesora zarezerwowanych dla każdej maszyny wirtualnej, jednym z trudnych problemów jest prawidłowe uwzględnienie czasu procesora mającego zastosowanie do działań w całym systemie. Na przykład w przypadku harmonogramu Xen usługi domeny Dom0 i sterowników mogą być współużytkowane przez wiele maszyn wirtualnych uzyskujących do nich dostęp. Podobnie w przypadku hiperwizora KVM obciążenie pracą nałożone na system operacyjny hosta w związku z obsługą ruchu sieciowego dla poszczególnych systemów-gości może nie być łatwe do rozróżnienia, ponieważ dotyczy głównie sterowników urządzeń na poziomie jądra i infrastruktury sieciowej (na hoście system operacyjny). W przypadku Xen zaproponowano pewne techniki łagodzenia takich problemów.

Podobnie jak rezerwacje adaptacyjne, możliwe jest zastosowanie strategii kontroli sprzężenia zwrotnego w celu dynamicznego dostosowania ilości zasobów zarezerwowanych dla każdej maszyny wirtualnej w celu utrzymania stabilnej wydajności zwirtualizowanych aplikacji. Podążając za trendem adaptacyjności, w przypadkach, w których zwirtualizowany system nie spełnia oczekiwanych poziomów wydajności (albo z powodu nieprzewidzianych zakłóceń innych współbieżnie działających maszyn wirtualnych, albo z powodu złej strategii wdrożenia, która po prostu wybrała maszynę z niewystarczającymi zasobami sprzętowymi ), możliwa jest migracja na żywo maszyn wirtualnych podczas ich działania, aby hostować je na bardziej wydajnym (lub mniej obciążonym) hoście fizycznym.