Jaka jest najlepsza praktyka masowego wdrażania systemu Linux?

9

Jeśli próbujesz zainstalować system Linux 500 w tym samym czasie, instalacją sieciową będzie wąskie gardło: NFS / HTTP / FTP lub inny serwer przechowujący pliki potrzebne do instalacji.

IMO można to rozwiązać tylko poprzez dodanie większej liczby serwerów instalacyjnych, a następnie ich okrągłe okradanie.

Czy istnieje lepsze rozwiązanie tego problemu? Coś w stylu „instalacji P2P Linux”?

AKTUALIZACJA: Muszę bardziej szczegółowo opisać moją sytuację. Obecnie wdrażam RHEL za pomocą kickstart + NFS. Gdy próbuję jednocześnie wdrożyć 500 RHEL, serwer NFS będzie miał duży ruch i spowalnia każdy proces instalacji. Konfigurowanie większej liczby serwerów NFS jest rozwiązaniem, ale nie sądzę, aby było dobre.

czatować
źródło
Co chcesz zrobić? Zainstalować system podstawowy, a następnie zarządzać systemem? wdrażać konfiguracje lub aplikacje?
shakalandy
@shakalandy Wdrażam RHEL za pomocą kickstart + NFS. Gdy próbuję jednocześnie wdrożyć 500 RHEL, serwer NFS będzie miał duży ruch i spowalnia każdy proces instalacji. Konfigurowanie większej liczby serwerów NFS jest rozwiązaniem, ale nie sądzę, aby było dobre.
yegle

Odpowiedzi:

7

Zwykle pojawia się tutaj obrazowanie multicastowe. Coś takiego jak Clonezilla lub ghost obsługuje wysyłanie multiemisji danych, co pozwoliłoby wypchnąć obraz do wszystkich 500 systemów jednocześnie z zasadniczo taką samą prędkością jak wypchnięcie obrazu do 1 systemu.

dgibbons
źródło
3

Avalanche instalator z skały linux distro klaster oparty jest i skale bittorrent ładnie. Przenosi także z rozruchu PXE do działającego systemu. Chociaż jesteś przywiązany do używania skał (opartych na CentOS) i robienia rzeczy po swojemu.

Kjetil Joergensen
źródło
2

SystemImager może również używać bit-torrent do szybszego masowego wdrażania.

Nie teraz
źródło
1

Nie użyłbym multiemisji, ponieważ to komplikuje sprawę. Najpierw spróbuj zminimalizować ruch NFS, co oznacza, że ​​otrzymasz pakiety, które musisz zainstalować przez HTTP. Jeśli twój serwer WWW dla repozytorium pakietów zostanie przeciążony, użyj dwóch z nich i rozdziel obciążenie, przypisując różne serwery każdemu klientowi (na przykład adres IP modulo 2).

Twój serwer NFS może być szybszy, jeśli uruchomi się więcej demonów nfsd. Często uruchamianych jest tylko 8 z nich.

Właśnie zmierzyłem ruch instalacji Debiana (przez PXE, NFS, HTTP) za pomocą FAI. Podczas instalowania 4,2 GB oprogramowania, 1,3 GB HTTP (wszystkie pakiety) i 100 MB ruchu NFS (nfsroot podczas instalacji) były przesyłane przez sieć. To było dla jednego klienta instalacji. Myślę więc, że zmniejszenie ruchu NFS i dystrybucja ruchu HTTP bardzo pomoże.

Pomocna byłaby również karta sieciowa 10 GB na serwerze lub łącząca serwerowa karta sieciowa. I myślę, że nie trzeba instalować całej maszyny w tym samym czasie, ale więcej w krótkim czasie.

Ale w każdym razie najpierw musisz przeanalizować, jakie będzie twoje wąskie gardło. Więc zrób kilka testów i wypisz 20 maszyn np

Thomas Lange
źródło
0

Nie znam sposobu użycia bittorrenta lub multiemisji, chyba że możesz przełączyć się na wdrażanie obrazu zamiast wykonywania instalacji. Jeśli nie, oto jeden ze sposobów rozwiązania problemu.

Zastanówmy się dokładnie nad wąskim gardłem. Procesor nie jest wąskim gardłem; NFS nie wymaga dużej mocy obliczeniowej. Dysk nie jest wąskim gardłem; pliki potrzebne do zainstalowania RHEL to nie więcej niż kilka gigabajtów, więc powinny łatwo zmieścić się w pamięci RAM serwera NFS. Przepustowość sieci jest zdecydowanie wąskim gardłem; zakładając, że jeden instalowany system będzie żądał średnio 50 megabitów na sekundę, potrzebujesz co najmniej 25 gigabitów przepustowości, aby nakarmić 500 instalacji. To dużo kart sieciowych lub kilka bardzo drogich.

Nie oznacza to, że nie powinieneś próbować poprawiać wydajności, rzucając w to więcej sprzętu, z uzasadnionego powodu. Zbierz jak najwięcej kart sieciowych na serwerze NFS i połącz je. Jeśli możesz uzasadnić czas i koszty, skonfiguruj więcej serwerów NFS. Oczywiście upewnij się, że twoje serwery NFS są dobrze dostrojone .

Niezależnie od tego, czy dodasz sprzęt, sprawdź, czy zwiększysz wydajność, unikając przeciążenia sieci i równoważąc wzrosty i spadki przepustowości. Aby to zrobić, podziel instalacje na partie. Wykonaj jedną instalację i wykreśl przepustowość podczas instalacji. Spójrz na ten wykres i określ, ile instalacji można uruchomić jednocześnie i kiedy są optymalne czasy na rozpoczęcie większej liczby partii.

Załóżmy na przykład, że możesz przesyłać 4 Gb / s z serwerów NFS. Być może okaże się, że podczas instalacji instalator kopiuje 100 Mb / s przez pierwszą minutę, a następnie nie kopiuje żadnych danych przez jedną minutę, podczas gdy instalator działa jak partycjonowanie, a następnie kopiuje 50 Mb / s przez trzy minuty, podczas gdy instalator pobiera i wyodrębnia pakiety. Wiedząc o tym, możesz obliczyć, że możesz rozpocząć 40 instalacji, poczekaj minutę, rozpocznij kolejne 40 instalacji, poczekaj 5 minut, a następnie powtórz proces.

Sciurus
źródło
0

Jeśli chodzi o masowe wdrażanie plików, istnieje już rozwiązanie wprowadzone przez Twitter, oparte na bittorent: Murder .

Jeśli mówisz o instalacji systemu operacyjnego na serwerze, to oczywiście nie będzie działać z tym rozwiązaniem.

Shadok
źródło