Wenn Sie versuchen, 500 Linux-Systeme gleichzeitig durch Netzwerkinstallation zu installieren, ist der Engpass das NFS / HTTP / FTP oder der Server, auf dem sich die für die Installation erforderlichen Dateien befinden.
IMO, dies kann nur gelöst werden, indem weitere Installationsserver hinzugefügt und anschließend ein Round-Robin-Verfahren durchgeführt werden.
Gibt es eine bessere Lösung für dieses Problem? So etwas wie "P2P Linux Installation"?
UPDATE: Ich muss meine Situation genauer beschreiben. Derzeit stelle ich RHEL mit Kickstart + NFS bereit. Wenn ich versuche, 500 RHEL gleichzeitig bereitzustellen, hat der NFS-Server einen großen Datenverkehr und verlangsamt jeden Installationsprozess. Das Einrichten weiterer NFS-Server ist eine Lösung, aber ich denke nicht, dass es eine gute ist.
quelle
Antworten:
Hier kommt normalerweise die Multicast-Bildgebung ins Spiel. So etwas wie Clonezilla oder Ghost unterstützt das Senden des Daten-Multicasts, mit dem Sie das Image gleichzeitig mit der gleichen Geschwindigkeit an alle 500 Systeme senden können, wie wenn Sie das Image an ein System senden.
quelle
Der Avalanche-Installer der Rocks Linux Cluster Distribution ist bittorrentbasiert und skaliert gut. Sie gelangen auch vom PXE-Start zum laufenden System. Sie sind jedoch daran gebunden, Steine (CentOS-basiert) zu verwenden und die Dinge so zu machen, wie sie sind.
quelle
SystemImager kann auch Bit-Torrent für eine schnellere Massenbereitstellung verwenden.
quelle
Ich würde kein Multicast verwenden, da dies die Dinge komplizierter macht. Versuchen Sie zunächst, den NFS-Verkehr zu minimieren. Dies bedeutet, dass Sie die Pakete erhalten, die Sie über HTTP installieren müssen. Wenn Ihr Webserver für das Paket-Repository überlastet ist, verwenden Sie zwei davon und verteilen Sie die Last, indem Sie jedem Client unterschiedliche Server zuweisen (z. B. IP-Adresse Modulo 2).
Ihr NFS-Server ist möglicherweise schneller, wenn mehr nfsd-Dämonen gestartet werden. Oft werden nur 8 von ihnen gestartet.
Ich habe gerade den Datenverkehr einer Debian-Installation (über PXE, NFS, HTTP) mithilfe von FAI gemessen. Bei der Installation von 4,2 GB Software wurden 1,3 GB HTTP (alle Pakete) und 100 MB NFS-Verkehr (der nfsroot während der Installation) über das Netzwerk gesendet. Dies war für einen Installationsclient. Ich denke also, dass die Reduzierung des NFS-Verkehrs und die Verteilung des HTTP-Verkehrs viel helfen wird.
Eine 10-GB-Netzwerkkarte in Ihrem Server oder das Verbinden mehrerer Server-Netzwerkkarten würde ebenfalls helfen. Und ich denke, es ist nicht notwendig, alle Maschinen gleichzeitig zu installieren, sondern mehr in kurzer Zeit.
Aber zuerst müssen Sie analysieren, was Ihr Engpass sein wird. Machen Sie also einige Tests unsig 20 Maschinen für z
quelle
Ich kenne keine Möglichkeit, Bittorrent oder Multicast zu verwenden, es sei denn, Sie können zur Bereitstellung eines Images wechseln, anstatt Installationen durchzuführen. Falls Sie dies nicht tun, finden Sie hier eine Möglichkeit, das Problem anzugehen.
Lassen Sie uns den Engpass genauer betrachten. CPU ist nicht der Engpass; NFS benötigt nicht viel Rechenleistung. Festplatte ist nicht der Engpass; Die für die Installation von RHEL erforderlichen Dateien sind nicht größer als ein paar Gigabyte, daher sollten sie problemlos in den RAM Ihres NFS-Servers passen. Der Netzwerkdurchsatz ist definitiv ein Engpass. Unter der Annahme, dass ein installiertes System durchschnittlich 50 Megabit pro Sekunde benötigt, benötigen Sie mindestens 25 Gigabit Bandbreite, um 500 Installationen zu unterstützen. Das sind viele NICs oder einige sehr teure.
Dies bedeutet nicht, dass Sie nicht versuchen sollten, die Leistung zu verbessern, indem Sie innerhalb angemessener Grenzen mehr Hardware darauf werfen. Holen Sie sich so viele Netzwerkkarten wie möglich auf dem NFS-Server und verbinden Sie sie. Wenn Sie Zeit und Kosten rechtfertigen können, richten Sie weitere NFS-Server ein. Stellen Sie natürlich sicher, dass Ihre NFS-Server gut eingestellt sind .
Unabhängig davon, ob Sie Hardware hinzufügen, prüfen Sie, ob Sie eine Leistungssteigerung erzielen, indem Sie eine Überlastung des Netzwerks vermeiden und die Spitzen und Tiefs des Durchsatzes ausgleichen. Teilen Sie dazu die Installationen in Stapel auf. Führen Sie eine einzelne Installation durch und zeichnen Sie den Durchsatz während der Installation grafisch auf. Sehen Sie sich dieses Diagramm an und bestimmen Sie, wie viele Installationen Sie gleichzeitig starten können und wann die optimalen Zeiten für den Start weiterer Stapel sind.
Angenommen, Sie können 4 Gbit / s von den NFS-Servern übertragen. Möglicherweise werden Sie feststellen, dass eine Installation in der ersten Minute 100 MBit / s kopiert, während das Installationsprogramm heruntergeladen wird. Anschließend werden eine Minute lang keine Daten kopiert, während das Installationsprogramm wie eine Partitionierung funktioniert. Anschließend werden drei Minuten lang 50 MBit / s kopiert Das Installationsprogramm lädt Pakete herunter und extrahiert sie. Wenn Sie dies wissen, können Sie berechnen, dass Sie 40 Installationen starten, eine Minute warten, weitere 40 Installationen starten, 5 Minuten warten und dann den Vorgang wiederholen können.
quelle
In Bezug auf die Massenbereitstellung von Dateien gibt es bereits eine Lösung von Twitter, die auf bittorent basiert: Mord .
Wenn Sie über die Installation des Betriebssystems auf Ihrem Server sprechen, funktioniert dies mit dieser Lösung offensichtlich nicht.
quelle