WIRTUALIZACJA SERWERÓW okiem open source

Proxmox Router – Intel-VT vs. AMD-V

A było to tak... Kolega postawił wirtualny router (Slackware) na Proxmox 1.4 na sprzęcie AMD i przepuścił przez to swoją sieć (~150 klientów). Męczył się przeokropnie z dobraniem wersji jądra, iptables oraz iproute aby miało to ręce i nogi. Bezskutecznie. Średnio raz na 6 godzin router "stawał" informując w konsoli nieśmiale, że kernel panic. Doszło nawet do tego, że mamusia również zaliczała zawieszki. W przypadku mamusi pomogła zmiana jaja Proxa na 2.6.30.x. Jestem w pełni przekonany, że kolega zrobił wszystko dobrze ponieważ ma już pokaźny bagaż doświadczenia w te klocki na karku. Po około dwóch tygodniach ciężkiej walki o przetrwanie zrezygnował. Wrócił na fizyczny sprzęt.

Muszę przyznać, że powoli straciłem wiarę w moc i możliwości Proxmoxa jako narzędzia do wirtualizacji z serii Open-Source. Znalazło się jednak troszkę czasu aby przetestować to na sprzęcie Intela. W obroty poszedł quadzik Q9400 2.66GHz na rdzeniu, płyta Gigabyte GA-EG45M-DS2H z 8GB ramu 4 x KVR800D2N5K2/2G. Na tym sprzęcie do tej pory trzymany był zwirtualizowany hosting firmowy oraz kilka innych wirtualek znajomych, które były kontrolowane przez KVM. Zrobiliśmy test, który wydawał się być najgłupszym pod księżycem (btw. dziś ładny rogalik na niebie świeci :P ). Zostawiliśmy odpalone te wszystkie maszyny - w sumie 8 sztuk. Następnie dołożyliśmy jeszcze jedną wirtualkę KVM z routerem moim starym postawionym na archaicznym już Slacku 11-tym. Przy okazji znów wielkie pokłony w stronę Kadzbiego, który to pokazał mi jak przez ssh skopiować działający żywy system na inną maszynę i jeszcze odpalić to hehe. Załatwia to linijka:

tar -pcf - ./ | ssh remoteuser@remotehost tar -C /path/to/remote/dir -pxf -

która pakuje fizyczny system, w locie przesyła go na zdalną maszynę i na niej rozpakowuje w wybrany katalog. Wystarczyło więc odpalić wirtualną maszynę, zbootować ją np z Gentoo Minimal, przypisać adres IP, odpalić serwer ssh (/etc/init.d/sshd start) a następnie zmienić hasło na użytkownika root i skopiować. Wcześniej przygotowano odpowiednią partycję, sformatowano i zamontowano w /path/to/remote/dir z powyższego ciągu znaczków. Później wydano 4 magiczne polecenia:

mount -o bind /dev /path/to/remote/dir/dev

mount -t proc /proc /path/to/remote/dir/proc

chroot /path/to/remote/dir/

lilo

które przeteleportowały nas w chrootowane środowisko naszego routera i zaaktualizowały lilo w MBR. Po reboocie ku naszemu zdziwieniu wszystko od razu zadziałało. Sieć śmiga przecudnie przy podobnej ilości użytkowników i transferach przez router rzędu 20Mbps (bo takie łącze mamy). Na razie obserwujemy. Proxmox ani router i inne wirtualki nie dają żądnych negatywnych znaków. Warto dodać w celach informacyjnych, że do maszyny z mamusią zostały dołożone dwie fizyczne karty sieciowe Intel PRO Fast Ethernet, z których utworzyliśmy dwa potrzebne bridże.

Zauważmy również, że zostało tu zamontowane podstawowe jądro 2.6.24.5 ze Slackware 12.1 delikatnie połatane. Jądro to nie obsługuje VIRTIO zatem wirtualka też. Jestem gotów wysnuć pewną hipotezę. Niemożliwe było osiągnięcie celu, który założyliśmy na tanim gównianym sprzęcie firmy AMD. Intel w tym wypadku przeszedł nasze oczekiwania (ostrożna hipoteza). W ramach argumentacji dopowiedzmy, że moduł KVM jądra matki, który odpowiada za kontrolę nad wirtualnym routerem jest inny dla Intel i inny dla AMD. Według mnie ten dla Intela jest "lepszy" bo działa.

Tagged as: , , , ,    autor: yarzombo Dodaj komentarz
Komentarze (5) Trackbacks (0)
  1. Jak na razie potwierdzamy, że wszystko działa na Intelu. Router ma uptime ponad 30h. Następnie weźmiemy się do przetestowania Virtio. Kernel już upieczony ;)

  2. Urcze, trochę mnie przestraszyłeś opiniami o AMD…
    Sam nigdy nie byłem fanem AMD, ale czasami podejmowałem próby „zerwania z przesądami”… a teraz zadecydował brak tzw fantazji ;-)
    Testuję od kilku dni zestaw proxmox 1.4 „fabryczny” + W2008 32b KVM Virtio + 3 openvz + W2008 64b KVM bez Virtio (na razie).
    Sprzęt to:
    - AMD Phenom II Quad 965 3400MHz
    - Gigabyte GA-MA790FXT-UD5P
    - 8GB RAM-u
    Router na KVM jest na poczatku listy „todo” cholera….
    Jak na dziś – żadnych problemów, no może poza zmuszeniem do pracy HASP-a USB na dzieciaku W2008 – nadal jest stabilny inaczej.
    Faktem jest, że jeszcze nie stresowałem tego kombajna – to w planie na weekend – szukanie bottlenecka wydajności. Już na pierwszy rzut oka widać, że na topie listy jest dysk – ale więcej po testach.

  3. Daj znac jak Ci poszlo :)

  4. Minęło 6 dni i pojawiła się reakcja, o której wspominałem wcześniej. Mianowicie interfejs sieciowy od dzieciaka stracił jakby połączenie z bridżem Proxmoxa. Oczywiście reboot wirtualki pomógł. Używałem emulacji karty Realteka. Na razie zmieniłem to na e1000 (czyli IntelPro1000). Ale właściwym rozwiązaniem prawdopodobnie będzie dopiero virtio. Chyba postawie to wszystko na debianie…

  5. Oki, wynik testu połowicznie pozytywny (no, może nawet 75% na +)
    Sukces – bo przez ok. 70 godzin wszystko działało bez pudła.
    Ale dałem ciała, bo przygotowując całkowicie subiektywny stress-test jakoś nie zadbałem o sensowne logowanie wyników :-( .
    Postaram się to powtórzyć w następny weekend (pewnie obiecuję sam sobie gruszki na różowym słoniu ;-) )
    Opis testu umieszczę gdzieś na www jak troche oprzytomnieję, poza tym nie chcę tu zaśmiecać ;-)
    Kilka szybkich wniosków, raczej subiektywnych – nie stało czasu na doktorat:
    - BIOS płyty jest do d…. – a przynajmniej bios raid-a. Podczas instalacji stripa nie daje opcji ustawienia rozmiaru stripa – piorun wie jaki jest default i w efekcie wydajność spada o ok. 20-25% w stosunku do pojedynczego dysku. Nie spodziewałem się cudów, ale jednak byłem trochę zaskoczony. Na update BIOSu (o ile jest – nie sprawdzałem) nie starczyło czasu :-(
    RAID-01 czy 10 – zgodnie z instrukcją jest – można zapomnieć – płyta zwisa przy starcie jeśli ma więcej niż 2 dyski. Na razie pozostał 1 Raptor…..

    W2008 32b:
    - Dysk – nie zauważyłem różnic w wydajności IDE i VIRTIO, SCSI nie udało mi się postawić.
    - karta sieciowa – na placu boju pozostało tylko VIRTIO, intel1000 i RTL (najnowsze sterowniki producenta i kilka innych starszych) mają okres połowicznego rozpadu ok 30 minut albo nie dają się zainstalowac
    Fabryczne sterowniki RTL z W2008 stabilne na emulacji z proxmoxa.
    VIRTIO stabilne.

    W2008 64b:
    - poległem na razie przy próbach podpisania sterowników VIRTIO, pozostały „fabryczne” sterowniki IDE i RTL z W2008.
    Na oko stabilne – ale za krótko……
    To tyle….


Dodaj komentarz

Musisz być zalogowany aby dodać komentarz.

Brak trackbacków.