Czy można objąć jedną wielką maszynę wirtualną na kilku fizycznych serwerach towarowych?

11

Czy można połączyć jedną ogromną maszynę wirtualną na kilku fizycznych serwerach towarowych?

Oto nasz przypadek użycia:

  • Musimy wdrożyć 32-procesorowy serwer db z 64 GB pamięci RAM
  • Nie mamy fizycznego serwera o takiej pojemności
  • Mamy wiele serwerów z mniejszymi zasobami.

Czy istnieje technologia lub (lepszy) produkt, który pozwala nam wykorzystać te serwery do stworzenia maszyny wirtualnej o wymaganej pojemności? Powiedzmy, czy jesteśmy w stanie połączyć 8 fizycznych 4-procesorowych maszyn z 8 GB pamięci RAM w jedną 32-procesorową „jednostkę logiczną” z 64 GB pamięci RAM i skonfigurować serwer Oracle, który wykorzystuje całą tę pojemność?

Przed opublikowaniem tego pytania czytaliśmy podobne pytania, ale nie znaleźliśmy odpowiedzi.

Może ktoś mógłby nam teraz podpowiedzieć?

użytkownik54614
źródło
2
To nie jest odpowiedź na twoje pytanie, ale dziwne jest, że nikt nie radzi przyjrzeć się ograniczeniom oprogramowania. Jeśli twoja firma tworzy aplikacje dla biznesu średniego zasięgu, wydaje mi się oczywiste, że problemem są ograniczenia oprogramowania, prawdopodobnie architekt i projektanci oprogramowania nie myśleli w bazie danych z miliardami rekordów lub z ogromnymi tabelami lub procedurami tymczasowymi, pomyśl o tym i utworzyć autotest i raportowanie błędów dla wolnych zapytań, ponieważ jest to sposób na rozwiązanie problemu ... pomyśl o limicie 3,3 GB w x86

Odpowiedzi:

7

Istnieje komercyjny produkt firmy ScaleMP o nazwie vSMP. Pozwala agregować wiele systemów x86 w jedną instancję wirtualną. Nigdy wcześniej tego osobiście nie próbowałem, ale przeszedłem od nich prezentację. Jeśli dobrze pamiętam, istnieją określone wymagania, aby to zadziałało i trzeba będzie uzyskać dodatkowy sprzęt (Infiniband dla szybkich połączeń o niskim opóźnieniu). Może to również kosztować całkiem grosza!

ryanlim
źródło
1
ScaleMP nie emuluje środowiska x86. Nigdy nie uruchomisz systemu Windows ani żadnego innego standardowego systemu operacyjnego x86 w środowisku wirtualnym. Ty Jedyne obsługiwane smaki to różne wersje systemu Linux zbudowane na architekturze typu SMP. I tego typu architektura ... istnieje kilka smaków. Nawet darmowe.
TheCompWiz
W OP nie określono szczegółowo innych wymagań. Odpowiedziałem tylko, co mogę zebrać z jego / jej postu.
ryanlim
1
To wygląda cholernie fajnie. Podejrzewam, że 32-rdzeniowy box (możliwy z 2x 16-rdzeniowymi procesorami AMD) może być tańszy niż klaster z Infinibandem, ale proszę bardzo. To rozwiązanie zapewnia więcej praw do chwalenia się.
Tom O'Connor,
9

Nie ma sposobu, aby uzyskać dokładnie taką samą funkcjonalność jak pojedyncza maszyna z 32 procesorami ... z kilkoma oddzielnymi serwerami. Najlepiej jest spojrzeć na klastrowanie lub przetwarzanie sieciowe. Zrobione dobrze, możesz uzyskać porównywalną wydajność ... i wyższy poziom wysokiej dostępności. Wiele pytań zależy również od typu „db”. Microsoft SQL Server działa znacząco inaczej niż MySQL lub Oracle ... a skalowalność odbywa się również zupełnie inaczej.

Alternatywnie ... możesz rozważyć zezwolenie komuś na wykonanie bazy danych za Ciebie ... na przykład za pomocą EC2 RDS ...

Niestety, nie ma sposobu, aby połączyć kilka fizycznych serwerów razem i uderzyć w nich vmware i uzyskać wyjątkowy wirtualny serwer o potężnej mocy.

TheCompWiz
źródło
TheCompWiz, dzięki za odpowiedź. OK, jeśli odpowiedź zależy od mojego typu bazy danych, niech będzie to Oracle lub Microsoft SQL Server. Czy dzięki tym poprawkom nadal jest to niemożliwe? Tak, wiemy o EC2, ale potrzebujemy dokładnie Oracle lub Microsoft SQL Server, aby przetestować problemy z oprogramowaniem, które dostarczamy klientowi ...
user54614
Ponadto, dlaczego brać pod uwagę tylko oprogramowanie vmware? Nie przeszkadza nam żaden inny hiperwizor ...
user54614
Możliwość przechodzenia przez wiele serwerów jest OGROMNYM koszmarem logistycznym ... nie wspominając o braku dostępnej przepustowości między urządzeniami. Pomyśl o tym, jak szybki jest procesor ... wtedy wszystkie rzeczy, które musisz zrobić, by spowolnić proces ... tj. CPU -> magistrala -> mostek PCI -> karta sieciowa -> kabel Ethernet -> sieć stos -> ... nawet zanim osiągnie inny serwer? Nie chcesz czekać 1 sekundy, aby móc dodać 1 + 1. Klastry zazwyczaj są w stanie to zrobić, ponieważ zadania są przypisywane w „Zadaniach”, a zadanie jest wysyłane do węzła obliczeniowego, który wykonuje wszystkie zadania w tym zadaniu ...
TheCompWiz
... a następnie wysyła odpowiedzi z powrotem do węzła zarządzania. Windows nie. Nie ma sposobu na skonfigurowanie wirtualnego środowiska X86 (lub X86_64), które nawet próbowałoby to zrobić.
TheCompWiz,
2
@ user54614 - Absolutnie nie będziesz w stanie replikować ich scenariusza, łącząc maszyny razem. Proponuję porozmawiać zarówno z klientem, jak i obsługą Oracle, aby zidentyfikować i zidentyfikować problemy.
Chris Thorpe,
-1

„TheCompWiz” pożytecznie odpowiedział na twoje pytanie.

Nadal chciałbym powiedzieć, że tak, można zbudować hiperwizor, który pozwoli jednej maszynie wirtualnej na kilka hostów fizycznych i może uruchomić tę maszynę wirtualną „poprawnie” tam, gdzie wszystko działa.

Ale nawet przy naprawdę dobrych, szybkich sieciach między fizycznymi hostami, wydajność takiej rzeczy byłaby naprawdę okropna, działając znacznie wolniej niż mniejsza VM, która mieści się w jednym z tych hostów. Trzeba będzie symulować właściwości koherencji pamięci podręcznej pojedynczej maszyny wirtualnej, przechwytując każdy odczyt lub zapis pamięci zapisany przez system operacyjny gościa i aplikację, co zwiększy koszt dostępu do pamięci przez tysiące, jeśli nie miliony.

Więc żaden sprzedawca komercyjny hypervisor nie umożliwia takiej rzeczy. Próbowano w laboratorium. Nikt nie zadał sobie trudu, aby zrobić z niego produkt.

Aby jeszcze raz podkreślić ten punkt, spójrz na rozwiązanie klastrowe.

Jake Oshins
źródło
Ale co jeśli dostarczany przez nas program działa dobrze dla większości klientów, ale nie działa poprawnie w środowisku ogromnego klienta, który uruchamia naszą aplikację na 32-proc serwerze Oracle z 64 GB pamięci RAM. Chcemy odtworzyć tę awarię w naszym środowisku.
user54614
2
Nic nie wiem o twoim oprogramowaniu, ale co dzieje się na 32-procesorach i 64 GB pamięci RAM, co nie dzieje się na 2-procesorach i 8 GB pamięci RAM? Jeśli na tym poziomie jest naprawdę coś powtarzającego się źle, oznacza to problem z Oracle / OS / driver / IO / sprzętem.
gravyface
Nigdy nie dostaniesz hiperwizora do przemierzania fizycznych maszyn. Nadal są zamknięte w fizycznym rdzeniu maszyny. Biorąc to pod uwagę ... Założę się, że możesz zbudować architekturę typu mainframe podobną do archaicznych gigantów z dawnych czasów ... ale nigdy nie dostaniesz na niej niczego x86.
TheCompWiz
1
Twój ogromny klient powinien mieć drugą instancję kontroli jakości tego serwera bazy danych potworów. Jeśli nie mają tego dostępnego, to naprawdę ich problem. W ciągu 15 lat pracy IT nigdy nie widziałem, żeby ktokolwiek oczekiwał od dostawcy oprogramowania, aby powielił swoją infrastrukturę (chyba że jest to część umowy serwisowej, która dokładnie to określa, a klient za to płaci). Zwłaszcza, gdy ta infrastruktura jest ezoteryczna (chociaż 32-rdzeniowy serwer o pojemności 64 GB można obecnie kupić za około 22 000 USD od Dell).
rmalayter
Co ze ScaleMP ( scalemp.com )?
user54614
-2

VMWare ma. Nosi nazwę DRS lub Distributed Resources Scheduler. Pozwala łączyć zasoby 16 serwerów. Następnie możesz podzielić tę sumę na jedno lub więcej środowisk wirtualnych.

Rick Dettwyler
źródło
Nie, wcale nie to robi DRS. DRS pozwala automatycznym maszynom vMotion wokół klastra nawet ładować się między węzłami hosta. W żaden sposób nie zapewnia dostępu do wielu hostów z jednej maszyny wirtualnej.
EEAA