Używam VMWare od wielu lat, obsługując dziesiątki serwerów produkcyjnych z bardzo małą liczbą problemów. Ale nigdy nie próbowałem hostować więcej niż 20 maszyn wirtualnych na jednym fizycznym hoście. Oto pomysł:
- Rozebrana wersja systemu Windows XP może działać z 512 MB pamięci RAM i 4 GB miejsca na dysku.
- 5000 USD daje mi 8-rdzeniowy komputer klasy serwerowej z 64 GB pamięci RAM i czterema serwerami lustrzanymi SAS.
- Ponieważ 100 wyżej wymienionych maszyn wirtualnych mieści się na tym serwerze, mój koszt sprzętu wynosi tylko 50 USD za maszynę wirtualną, co jest bardzo miłe (tańsze niż wynajem maszyn wirtualnych w GoDaddy lub innych sklepach hostingowych).
Chciałbym zobaczyć, czy ktoś jest w stanie osiągnąć taką skalowalność dzięki VMWare? Zrobiłem kilka testów i wpadłem na dziwny problem. Wydajność maszyny wirtualnej zaczyna gwałtownie spadać po uruchomieniu 20 maszyn wirtualnych. Jednocześnie serwer hosta nie pokazuje żadnych wąskich gardeł zasobów (dyski są w 99% bezczynne, wykorzystanie procesora jest poniżej 15% i jest dużo wolnej pamięci RAM).
Będę wdzięczny za podzielenie się historiami sukcesu w zakresie skalowania VMWare lub innej technologii wirtualizacji!
virtualization
virtual-machines
vmware-esx
scalability
host
user9517 obsługuje GoFundMonica
źródło
źródło
Odpowiedzi:
Tak, możesz. Nawet w przypadku niektórych obciążeń systemu Windows 2003 wystarcza zaledwie 384 MB, więc 512 MB to całkiem dobre oszacowanie, nawet jeśli jest nieco wysokie. Pamięć RAM nie powinna stanowić problemu, podobnie jak procesor.
100 maszyn wirtualnych jest nieco strome, ale jest wykonalne, szczególnie jeśli maszyny wirtualne nie będą bardzo zajęte. Z łatwością obsługujemy 60 serwerów (Windows 2003 i RHEL) na jednym serwerze ESX.
Zakładając, że mówisz o VMware ESX, powinieneś również wiedzieć, że jest w stanie przesadzić pamięć. Maszyny wirtualne prawie nigdy nie używają w pełni wyznaczonej racji pamięci, więc ESX może przekazać VM więcej niż dostępna ilość pamięci RAM i uruchomić więcej maszyn wirtualnych niż faktycznie „oficjalnie” ma pamięć RAM.
Najprawdopodobniej twoim wąskim gardłem nie będzie procesor ani pamięć RAM, ale IO. VMware może pochwalić się ogromną ilością IOPS w swoich działaniach marketingowych, ale kiedy dochodzi do wypychania, konflikty rezerwacji SCSI i ograniczona przepustowość zatrzymają Cię na długo, zanim zbliżysz się do IOPS VMware.
W każdym razie nie mamy do czynienia z obniżeniem wydajności 20 maszyn wirtualnych. Jakiej wersji ESX używasz?
źródło
Jednym z głównych problemów w tak dużym środowisku byłoby zapobieganie katastrofom i ochrona danych. Jeśli serwer umrze, wraz z nim umiera 100 maszyn wirtualnych.
Musisz zaplanować jakieś przełączenie awaryjne maszyn wirtualnych i zaplanować jakieś zarządzanie „dodatkowymi maszynami wirtualnymi”, które ochroni twoje maszyny wirtualne w przypadku awarii. Oczywiście tego rodzaju redundancja oznacza wzrost kosztów - prawdopodobnie dlatego wiele razy taki wydatek nie jest zatwierdzany, dopóki jego korzyści nie zostaną zauważone w praktyce (z powodu jego braku).
Pamiętaj też, że host VM jest tylko jednym z kilku pojedynczych punktów awarii:
To tylko kilka: ogromna infrastruktura maszyn wirtualnych wymaga szczególnej uwagi w zakresie zapobiegania utracie danych i zapobiegania utracie maszyn wirtualnych.
źródło
Brak oświadczenia na temat opłacalności tego w produkcji, ale istnieje bardzo ciekawe demo NetApp, w którym zapewniają 5440 komputerów stacjonarnych XP na 32 hostach ESX (to 170 na hosta) w około 30 minut z wykorzystaniem bardzo małej przestrzeni dyskowej z powodu deduplikacji przeciwko wspólnej maszynie wirtualnej zdjęcia
http://www.youtube.com/watch?v=ekoiJX8ye38
Domyślam się, że twoje ograniczenia pochodzą z podsystemu dyskowego. Wygląda na to, że odpowiednio uwzględniłeś użycie pamięci i procesora.
źródło
Nigdy tego nie zrobiłem - ale obiecuję, że wydasz o wiele więcej niż na pamięć masową, aby uzyskać wystarczającą liczbę procesorów IOP do obsługi tylu maszyn wirtualnych niż na sprzęcie serwerowym. Będziesz potrzebował wielu procesorów IOP, jeśli wszystkie 100 z nich jest jednocześnie aktywnych. Nie żeby zabrzmiało to negatywnie, ale czy zastanawiałeś się również, czy wkładasz dużo jajek do jednego koszyka (brzmi, jakbyś szukał rozwiązania z jednym serwerem?)
źródło
Byłbym najbardziej zaniepokojony rywalizacją procesora ze 100 maszynami wirtualnymi na jednym hoście. Musisz pamiętać, że procesor NIE jest zwirtualizowany, więc każda maszyna będzie musiała czekać na dostęp do procesora. Możesz zacząć widzieć rywalizację, patrząc na ESXTOP. Powiedziano mi, że cokolwiek powyżej 5 w polu% RDY jest bardzo złe przez inżynierów VMWare.
Z mojego doświadczenia wynika, że widziałem około 30 - 40 serwerów działających na jednym hoście (nie robiących zbyt wiele).
źródło
Miałem 10 hostów na VMWare Server 1.0.6 (pod Windows 2003) i regularnie pojawiały się problemy z IO (a jeśli nocne kompilacje kiedykolwiek nakładałyby się na coś innego, wówczas miałyby problemy). Po uaktualnieniu systemu Windows do ESXi U3 stwierdziliśmy, że nasze problemy z wydajnością zniknęły (nocne kompilacje już nie powiodły się).
Należy również pamiętać, że chociaż dyski SSD mają znacznie wyższą szybkość operacji we / wy niż wirujące nośniki, istnieją pewne przypadki, w których to się nie utrzymuje, na przykład niektóre rodzaje wzorców zapisu (wiele małych zapisów rozproszonych na dysku zabije wydajność, chyba że kontroler ma inteligentna pamięć podręczna buforująca zapis, która dobrze sobie radzi z zapisami rozproszonymi).
Jeśli napotkasz problemy, zalecam sprawdzenie / przetestowanie plików SWAP na różnych dyskach.
źródło
Jeśli masz zamiar to zrobić, zdecydowanie zachęcam do korzystania z nowych procesorów Intel „Nehalem” z serii Xeon 55xx - są one zaprojektowane do uruchamiania maszyn wirtualnych, a ich dodatkowa przepustowość pamięci również ogromnie pomoże. Aha, a jeśli możesz użyć więcej, mniejszych dysków niż kilku, dużych - to bardzo pomoże. Jeśli możesz używać ESX v4 również w wersji 3.5U4.
źródło
Mam 20 maszyn wirtualnych XP z 512 MB pamięci RAM na maszynie z 16 GB pamięci RAM. Mniej niż to i zamieniają się na dysk, co stanowi wąskie gardło. Są to zawsze aktywne maszyny wirtualne XP.
VMware i jego funkcja OverCommit powinny pozwolić ci przesłać więcej pamięci RAM na każdą maszynę XP. Podobne urządzenie będzie współużytkować te same strony, co może ograniczyć zapisywanie na dysku. To jest coś, co chciałbym sprawdzić w naszej konfiguracji, aby spróbować dodać więcej maszyn, ponieważ nasze maszyny wirtualne XP wykonują 10-20meg ciągłego ruchu dysku.
źródło
Nie udało nam się osiągnąć 100 zadowolonych gości na VMWare Server, ale potem stwierdziliśmy, że ESXi robi znacznie lepszą robotę. Wygląda więc na to, że 100 XP vms nie stanowi problemu, jeśli używasz ESXi i przyzwoitego serwera (kilka kopii lustrzanych dysków do rozproszenia operacji we / wy, kilka układów I7 i 64 GB pamięci RAM). Użytkownicy końcowi nie mają widocznego opóźnienia, a zasoby hosta nie są maksymalnie wykorzystane (najgorętszym jest procesor, ale zwykle jest on w co najmniej 70% bezczynny).
PS. To pytanie zostało wysłane przeze mnie, gdy walczyliśmy z VMWare Server.
źródło
Ostatnim razem, gdy sprawdzałem, VMware nie zaleca więcej niż 4 maszyn wirtualnych na rdzeń przetwarzający dla ESX, przy założeniu jednego vCPU na maszynę wirtualną.
To sugeruje, że koszty ogólne zarządzania stają się czynnikiem.
Bardzo mnie interesuje, czy rzeczywiście można osiągnąć współczynnik 4x na 8 rdzeniach.
źródło