{{page>public:index&nofooter&noeditbtn}} ====== Technologia serwerów wirtualnych ====== ==== System operacyjny ==== - Hosty (maszyny fizyczne) implementują system Gentoo Linux. - Systemy goście mogą stosować dowolny system operacyjny dający się uruchomić w środowisku KVM. - W przypadkach powierzania nam opieki nad systemem gościa mocno rekomendujemy Gentoo Linux. ==== Technika wirtualizacji ==== - Podstawowe rozwiązanie stanowi technologia [[http://www.linux-kvm.org/|Linux KVM]]. To najbardziej naturalna dla Linuksa technika zwielokrotnienia systemów operacyjnych na maszynie fizycznej. - Każdy system hosta jest zorganizowany przy użyciu biblioteki [[http://http://libvirt.org/|LibVirt]] i szeregu skryptów zarządzających. - W celu zapewnienia wysokiej wydajności stosujemy różne techniki usprawniające działanie jak na przykład: - sterowniki para-wirtualizacji dla interfejsów sieciowych i dysków twardych, - hugepages na hostach. - W pełni autonomiczny system operacyjny z odrębnym kontem root i własną adresacją ip. Z użytkowego i administracyjnego punktu widzenia system wirtualny jest nie do odróżnienia od samodzielnej instancji systemu operacyjnego umieszczonego na maszynie fizycznej. ==== Dostęp zdalny i administracja maszyną ==== - Nadrzędny - ponad systemem operacyjnym - poziom dostępu, czyli swoisty rodzaj ILO realizowany jest protokołem vnc. Dzieje się to przy użyciu oprogramowania [[http://guac-dev.org/|Guacamole]]. Wygląda podobnie do screenów przedstawionych niżej. Aplikacja zdalnego dostępu vnc działa w dowolnej przeglądarce. Vnc daje zdalny dostęp do konsoli systemu (symuluje fizyczny monitor i klawiaturę). - Typowo maszyna wirtualna wyposażona jest w wirtualny cdrom (plik iso z obrazem płyty) pozwalający startować z płyty. Ostatni z poniższych obrazków przedstawia startujący w ten sposób system. - Gdy już mamy zainstalowany system operacyjny, wtedy możliwy jest dostęp dowolnym protokołem jaki udostępnimy na maszynie: ssh, ftp, http, imap, pop3, smtp itp. - Na specjalne życzenie możliwe jest zestawienie szyfrowanego bądź nieszyfrowanego tunelu do maszyny. - Widoczna na jednym z obrazków klawiatura ekranowa pozwala wysyłać do maszyny wirtualnej sekwencje specjalne jak np.: ctrl-alt-del. - W przypadku systemu Gentoo Linux administrowanego przez nas udostępniamy użytkownikowi panele: [[http://webmin.net/|Webmin oraz Usermin]]. {{ilo_login.jpg?direct&300}} {{ilo_mc.jpg?direct&300}} {{ilo_keyboard.jpg?direct&300}} {{ilo_boot.jpg?direct&300}} ==== Pamięć masowa ==== - Typowo maszyna wirtualna implementuje pojedyncze urządzenie ([[http://ceph.com|Ceph Rados Block Device]]) - urządzenie blokowe w rozproszonym systemie plików ze zwielokrotnianiem zapisu. To w pełni chmurowa filozofia storage. - W niektórych przypadkach (gdy wymagana jest wyjątkowo wysoka wydajność) można zastosować dyski SSD jako cache dla RBD. - Niektóre maszyny wirtualne implementują bardziej tradycyjne iSCSI + macierz RAID6. - Można też zastosować technologię RAID1 z dwóch niezależnych źródeł iSCSI lub dwóch klastrów CEPH. - W każdym momencie życia systemu wirtualnego możliwe jest dodanie drugiego i kolejnych urządzeń blokowych RBD lub iSCSI. ==== Zasada duplikacji ==== Cała infrastruktura obsługująca istnienie maszyn wirtualnych jest zwielokrotniona. Zasada duplikacji infrastruktury służy całkowitemu wyeliminowaniu pojedynczych punktów występowania awarii. To skutkuje bardzo wysoką dostępnością przekraczającą 99,97%. Przerwy w pracy ograniczają się niemal wyłącznie do zaplanowanych z dużym wyprzedzeniem przerw konserwacyjnych. Dla przykładu stosujemy: - Minimum dwie maszyny fizyczne dedykowane dla każdego zestawu maszyn wirtualnych. - Dwa urządzenia blokowe (po iSCSI) lub jedno, ale samo w sobie zapewniające duplikację (chmura ceph). - Dwa obwody zasilania dostarczone z zakładu energetycznego do datacenter. - Dwa systemy zasilania awaryjnego. Podwójne UPS. Podwójne siłownie telekomunikacyjne z bateriami akumulatorów. Podwójne agregaty prądotwórcze. - Podwójne szlaki przełączników przy każdej maszynie fizycznej. - Wszystkie urządzenia takie jak switche, routery i serwery posiadają podwójne zasilacze 230VAC lub 48VDC. - Podwójne routery bgp i routery brzegowe. - Minimum podwójne wyjścia transmisyjne na świat. - W niektórych rozwiązaniach są stosowane podwójne lokalizacje geograficzne datacenter. ==== Krótki przegląd stosowanego (preferowanego) oprogramowania ==== - Gentoo Linux - Postfix, DoveCot, RoundCube. - Postgresql, Mysql. - Apache, Nginx. - Wordpress. ==== Inne udogodnienia ==== - Centralny serwer logów. - Własne repozytoria portage i distfiles dostępne przy użyciu NFS. - Archiwum historyczne portage dostępne przez NFS. Znakomicie ułatwia upgrade bardzo starych systemów. - Własne serwery DNS działające w oparciu o software [[https://www.powerdns.com/|PowerDNS]]. Zarządzanie domenami przez [[http://www.poweradmin.org/|PowerAdmin]]. - Różnorodne statystyki i monitory działania. - Pełny backup systemu i danych wykonywany raz na dobę lub (po uzgodnieniu) częściej ze snapshot systemu. Użycie zamrożonego snapshot powoduje, że kopia wszystkich plików pochodzi z tej samej sekundy. Nie jest rozłożona w czasie na wiele minut, jak to ma miejsce przy klasycznych metodach rsync. Typowo przechowywane jest 90 kopii dobowych (~3 miesiące wstecz).