Problem
Mamy problem z wydajnością na istniejącej platformie, więc zwracam się do ula, aby uzyskać drugą opinię na ten temat. Dotychczasowy problem z wydajnością dotyczy IOPS, a nie przepustowości.
Scenariusz
Centrum serwerów typu blade z 16 hostami, każdy z 64 GB pamięci RAM. (To Dell M1000e z M610, ale prawdopodobnie nie jest to istotne) 500 maszyn wirtualnych, wszystkie serwery sieciowe (lub powiązane technologie sieciowe, takie jak MySQL, usługi równoważenia obciążenia itp.), Około 90% to Linux, a reszta Windows. Hypervisor to VMWare vSphere. Musimy zapewnić hosta HA, więc lokalne przechowywanie jest niedostępne. W związku z tym hosty mają tylko kartę SD do rozruchu.
Trochę myślenia w tle
W tej chwili mamy do 6 hostów (centrum kaset będzie za pełną pojemność za kilka lat przy obecnym wzroście) i używamy iSCSI do Dell MD3220i z MD1220 w celu rozszerzenia.
Możliwe opcje, które rozważaliśmy, i natychmiastowe przemyślenia wraz z nimi:
- Rozmieszczanie maszyn wirtualnych w magazynach danych NFS i uruchamianie pamięci masowej NFS, która spełnia wymagania dotyczące wydajności dla określonej liczby maszyn wirtualnych. NFS wydaje się tańszy do skalowania, a także został nieco bardziej abstrakcyjny niż pamięć na poziomie bloku, abyśmy mogli go w razie potrzeby przenosić.
- Dodanie kolejnych kontrolerów / celów MD3220i. Niepokoi nas jednak fakt, że takie postępowanie może mieć negatywny wpływ na sposób, w jaki VMWare obsługuje wiele celów.
- Zamiana wszystkich dysków z Nearline SAS na SSD. To powinno całkowicie rozwiązać problem IOPS, ale ma oczywisty efekt uboczny polegający na zmniejszeniu naszej pojemności pamięci. Jest to również bardzo drogie.
- vSphere 5 ma urządzenie pamięci masowej. Nie badaliśmy tak wiele, ale to musi działać dobrze?
Pytanie
Jakiego rodzaju miejsce do przechowywania byłoby pod tym wszystkim? Nie musiałby być skalowany do innego centrum kasetowego, musiałby po prostu zapewnić stosunkowo dobrą wydajność dla wszystkich tych maszyn wirtualnych.
Nie szukam odpowiedzi „Kup SAN x, bo to najlepsze”. Szukam przemyśleń na temat różnych technologii SAN (iSCSI, FC, FCoE, InfiniBand, NFS itp.), Różnych rodzajów pamięci masowej (SATA, SAS, SSD) i metodologii obsługi pamięci masowej dla setek maszyn wirtualnych (konsolidacja, separacja) , Dzielenie itp.).
Wszelkie sugestie, linki, przewodniki, wskazówki itp. Są mile widziane. Chciałbym również usłyszeć przemyślenia na temat powyższych opcji, które już rozważaliśmy.
Z góry dziękuję za wszelkie uwagi!
Aktualizacja 5 marca '12
Jak dotąd fantastyczne odpowiedzi, bardzo dziękuję wszystkim!
Idąc do tej pory odpowiedziami na to pytanie, zaczynam myśleć, że następująca droga jest następująca:
- Uwolnij dostępną pamięć do klastra VMWare i umieść dyski maszyny wirtualnej w odpowiedniej pamięci dla ich obciążeń.
- Potencjalnie skorzystaj z sieci SAN, która jest w stanie zautomatyzować zarządzanie umieszczaniem danych w odpowiednim magazynie.
- Infiniband wydaje się najbardziej opłacalny, aby uzyskać wymaganą przepustowość przy pełnej wydajności hostów.
Zdecydowanie brzmi, jakby warto było skorzystać z usług przedsprzedażowych dużego dostawcy sieci SAN, aby wziąć pod uwagę scenariusz.
Przez jakiś czas będę rozważał ten problem. Tymczasem więcej porad z wdzięcznością otrzymanych!
źródło
Odpowiedzi:
Kluczem do dobrej platformy pamięci masowej VMWare jest zrozumienie, jaki rodzaj obciążenia generuje VMWare.
Najlepszym sposobem podejścia do budowania pamięci masowej dla platformy VMWare jest rozpoczęcie od podstaw.
źródło
Moje duże wdrożenia VMWare to NFS i iSCSI powyżej 10GbE. Oznacza to dwuportową kartę HBA 10 GbE na serwerach, a także głowicę pamięci. Jestem fanem pamięci opartej na ZFS. W moim przypadku jest owinięty wokół komercyjnego NexentaStor , ale niektórzy decydują się na własne.
Kluczowymi cechami pamięci opartej na ZFS w tym kontekście byłaby funkcja buforowania ARC / L2ARC, umożliwiająca warstwowe magazynowanie. Najbardziej aktywne dane trafiłyby do pamięci RAM i SSD jako druga warstwa. Korzystne byłoby również uruchomienie głównej puli pamięci z napędów SAS 10k lub 15k.
To kolejny przypadek profilowania i zrozumienia obciążenia pracą. Współpracuj z kimś, kto może przeanalizować twoje wzorce przechowywania i pomóc ci zaplanować. Po stronie ZFS / NexentaStor lubię PogoStorage . Bez tego rodzaju wglądu metoda transportu (FC, FCoE, iSCSI, NFS) może nie mieć znaczenia. Czy monitorujesz swoją infrastrukturę? Jak teraz wygląda aktywność we / wy?
źródło
Kluczowe pytanie brzmi: „gdzie jest wąskie gardło?” Wspominasz o IOPS, ale czy to oznacza, że pozytywnie zidentyfikowałeś same dyski jako wąskie gardło, czy po prostu, że porty SAN nie działają na pełnych obrotach lub że maszyny wirtualne są w dużo większym stopniu niż chcesz?
Jeśli definitywnie ustaliłeś, że dyski są czynnikiem ograniczającym, przełącz się na NFS lub infiniband lub cokolwiek innego, co nie ma wpływu na wydajność - potrzebujesz dysków SSD (lub przynajmniej warstwowej pamięci masowej z dyskami SSD w miksie) lub cały pakiet kolejnych wrzecion (rozwiązanie, które ostatnio stało się o wiele droższe, odkąd światowa produkcja silników krokowych została wymyta do oceanu).
Jeśli nie jesteś w 100% pewien, gdzie właściwie jest wąskie gardło, musisz to najpierw znaleźć - zamiana części infrastruktury pamięci masowej mniej lub bardziej losowo na podstawie domysłów innych ludzi tutaj nie będzie bardzo skuteczny (zwłaszcza biorąc pod uwagę, jak drogie będą wszelkie zmiany).
źródło
esxtop
wszystkich hostów (pokazującym wykorzystanie dysku), biorąc całkowitą CMD / s i porównując ją z testami porównawczymi w sieci SAN, której używamy. Całkowita CMD / s jest konsekwentnie wysoka, gdy bierze się wyniki testu jako nagłówek. Dyski SSD zdecydowanie wydają się dobrą opcją z technicznego punktu widzenia, są po prostu strasznie drogie, wciąż GB / £. Może to być rozwiązanie z wielopoziomowym magazynowaniem. Na marginesie / FYI, zgodnie z ostatnim komunikatem prasowym, który otrzymałem, WD powrócił do poziomów produkcji na dyskach.Jeśli chcesz iscsi lub nfs, to minimalnie potrzebujesz kilku portów 10 / 40GB lub infiniband, co jest zdecydowanie najtańszą opcją, ale natywne rozwiązania pamięci masowej dla infinibandu wydają się być ograniczone. Problemem będzie moduł bladecenter, jakie są jego opcje, zwykle 8 gb fc lub 10 \ 1 gbe i może infiniband. Zauważ, że infiniband może być używany z nfs i nic się do niego nie zbliża pod względem wydajności \ ceny. jeśli centrum ostrzy obsługuje infiniband qdr, zrobiłbym to z jakimś hostem linux z infinibandem qdr przez nfs. Oto dobry link opisujący ten http://www.zfsbuild.com/2010/04/15/why-we-chose-infiniband-instead-of-10gige
ale jeśli bladecenter może obsługiwać infradiband qdr, a stać cię na natywny infiniband, to jest to rozwiązanie, które powinieneś wybrać.
Obecnie możesz uzyskać przełączniki 40 gbe znacznie taniej (to dziwna myśl) niż przełączniki 10 gbe, ale wątpię, czy centrum ostrzy to obsługuje.
źródło
Brak lokalnego magazynu? Jestem całkiem zadowolony z przepustowości zapisu na moich lokalnych macierzach RAID 5 - dublowanych z DRBD8 do partnera klastra mojej maszyny XEN ... (ale to oczywiście nie jest obsługiwane).
Poza tym jestem pewien, że mySQL jest twoim problemem z wydajnością (nigdy nie widziałem gorszej DB). Spróbuj go dostroić i / lub spróbuj umieścić całą bazę danych w pamięci podręcznej systemu plików (w celu dostępu do odczytu) ...
źródło