[LINUX] Erstellen einer verteilten Umgebung mit der Raspberry PI-Serie (Teil 1: Zusammenfassung der Verfügbarkeit von plattenlosen Clients nach Modell)

Serialisierungsliste

Klicken Sie hier für die hochgeladene Serialisierungsliste

  1. Erstellen einer verteilten Umgebung mit der Raspberry PI-Serie (Teil 1: Zusammenfassung der Verfügbarkeit von plattenlosen Clients nach Modell)
  2. Erstellen einer verteilten Umgebung mit der Raspberry PI-Serie (Teil 2: PiServer-Analyse und alternatives Systemdesign)
  3. Erstellen einer verteilten Umgebung mit der Raspberry PI-Serie (Teil 3: Installieren und Konfigurieren von dnsmasq)
  4. Erstellen einer verteilten Umgebung mit der Raspberry PI-Serie (Teil 4: Erstellen eines NFS-Servers und Importieren eines Betriebssystems für Clients)
  5. Erstellen einer verteilten Umgebung mit der Raspberry PI-Serie (Teil 5: Anpassen des Raspberry PI-Betriebssystems für Clusterknoten (1))
  6. Erstellen einer verteilten Umgebung mit der Raspberry PI-Serie (Teil 6: Anpassung des Raspberry PI-Betriebssystems für Clusterknoten (2))
  7. Erstellen einer verteilten Umgebung mit der Raspberry PI-Serie (7: Einstellung der TFTP-Route und Starttest für jeden Raspetorte)

Dieser Artikel ist "Teil 1" der obigen Liste.

wichtiger Punkt

Dieser Artikel ist für Raspeltorte gedacht, die die folgenden Bedingungen erfüllt.

Deshalb

――Die erste Generation spielt keine Rolle --Zero-Serie, Computermodul ist nicht relevant

Es wird sein.

Probleme und Lösungen, die auftreten, wenn die Anzahl der Raspberry PI-Serien steigt

Wenn ein neuer Raspeltorte herauskommt, kaufst du ihn, weil er billig ist, oder? Es ist auch meine schlechte Angewohnheit, aber angesichts der Redundanz kaufe ich normalerweise zwei gleichzeitig. Hier ist also das Problem, mit dem ich konfrontiert war, mit jeweils 2 von 3B, 3B +, 4B nach 2B und insgesamt 8 Raspeltorten zur Hand.

Problem # 0: Physikalisches Problem (gelöst)

Platziere
Es kann nicht geholfen werden, wenn es ein Fall + Lüfter für alle ist → Stapeln
![68747470733a2f2f696d616765732d6e612e73736c2d696d616765732d616d617a6f6e2e636f6d2f696d616765732f492f373142685957657668644c2e5f41435f534c313530305f2e6a7067.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/267238/a6b4551c-4645-ba27-6c9e-ab32d5f9dbc6.jpeg)
LAN / USB-Kabel für die Stromversorgung
Spaghetti sind überhaupt nicht gut → Durch das Stapeln werden die Klemmen in die gleiche Richtung gedreht, was das Zusammenbauen erleichtert. Verwenden Sie daher ein Bindeband.
HDMI-Kabel / USB-Kabel für Tastatur / Maus
Nicht erforderlich, da SSH-Zugriff Voraussetzung ist. Sie müssen es nur einfügen, wenn Sie einen Typen mit seltsamem Verhalten neu starten
Stromverbrauch / Wärmeerzeugung
Ich habe keine andere Wahl, als meine Augen zu schließen
Stromversorgung bezogen
Es ist unmöglich, sich ein USB-Netzteil für einen Raspeltorte vorzustellen. → Es gab eine gute Sache ![68747470733a2f2f696d616765732d6e612e73736c2d696d616765732d616d617a6f6e2e636f6d2f696d616765732f492f3631253242664574326b36424c2e5f41435f534c313030305f2e6a7067.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/267238/c227b8d2-fba8-176d-4b28-de0e9dda552c.jpeg)

Bis zu diesem Punkt ist es ein Bonus, und das Hauptthema beginnt hier.

Problem Nr. 1: Problem bei der Verwaltung von microSD-Medien / Betriebssystemen

  • Die Anzahl der beschädigten microSDs (Leichen) wird ebenfalls zunehmen. Komplett verbrauchbar.
  • Es ist äußerst mühsam, microSD individuell zu verwalten, z. B. freien Speicherplatz und Betriebssystemversion.
  • ** (kehrt zu mir zurück) Ist es nicht dumm, das Betriebssystem einzeln zu aktualisieren? **

Problem? Teil 2: Neugierde nur bei Menschen mit mehreren Karten

Sie werden versehentlich eine der folgenden machen wollen ...

--Private Poor Spacon in einem HPC-Cluster (MPI) --Private schlechte Cloud für PaaS / SaaS mit Kubernetes etc.

  • Verteilte Kompilierungsumgebung

** Aber ist es Zeitverschwendung, viele microSDs mit demselben Inhalt zu kopieren? **

So lösen Sie die oben genannten Probleme 1 und 2 auf einmal ...

** Es bleibt nichts anderes übrig, als Raspai zu einem plattenlosen Client / Netzwerk-Boot zu machen ** Dieser Artikel enthält eine Zusammenfassung des plattenlosen Client- / Netzwerkstarts.

Ein langer Weg, um aufeinanderfolgende Raspeltorten plattenlos zu machen

Schritt 1: Kennen Sie die Existenz von "PiServer"

Zunächst fand ich diesen Artikel von Nikkei. Sie denken: "Wenn Sie dies auf einem überschüssigen PC oder einem virtuellen VMWare-Host installieren, ist dies ein One-Shot? Einfacher Gewinn." gewöhnlich.

Schritt 2: Probieren Sie PiServer aus

1. Installieren von
Ah, der Kernel ist x86_64, aber glibc ist 32bit i386 Debian ...
2. Bildschirm zur Betriebssystemverwaltung, der an Clients verteilt werden soll
Das Registrieren einer anderen Distribution als Raspbian ist sehr mühsam. Anscheinend müssen Sie boot.tar.xz und root.tar.xz selbst erstellen.
3. Festlegen / Aktualisieren des Betriebssystems, das an Clients verteilt werden soll
Aktualisieren Sie das Betriebssystem für Clients mit qemu-arm-static auf PiServer. Übrigens, es ist eine 32-Bit-Version von glibc, daher kann ich die aarch64-Versionsverteilung nicht aktualisieren.
4. Schalten Sie jede Maschine ein, während die microSD tatsächlich entfernt wurde
Das? Sie können keine anderen Clients als 3B + finden. Haben Sie keine DHCP-Übertragung gesendet? (Der Grund für dieses Phänomen wird später erläutert.)

Zu diesem Zeitpunkt ist ** PiServer als Ganzes verdammt **. Ich traf eine vorläufige Entscheidung, Später werde ich die Funktionen von PiServer analysieren und über andere Möglichkeiten zur Implementierung nachdenken.

Schritt 3: Überlegen Sie sich einen Moment, was mit lokal installiertem U-Boot getan werden kann

Es gab einige Artikel mit der Aufschrift "U-Boot in die erste Partition der lokalen microSD einfügen, auf den TFTP-Server stellen und NFS bereitstellen", also dachte ich einen Moment darüber nach und versuchte es. Da der SoC je nach Modell unterschiedlich ist, steigt die Häufigkeit, mit der U-Boot kompiliert wird, + die Image-Generierung und es ist zu mühsam ... Vor allem wurde mir klar, dass ich auf Festplattenlosigkeit abzielte, und ich lehnte ihn schließlich ab. Wenn Sie U-Boot verwenden, ist dies derjenige, den Sie auf den TFTP-Server gestellt haben.

Schritt 4: Wissen Sie, dass verschiedene Modelle unterschiedliche Möglichkeiten haben, den PXE-Start zu aktivieren

Wenn Sie bei Google nach "Raspberry PI Network Boot" suchen, finden Sie verschiedene Methoden, aber ...

In der Startsequenz unmittelbar nach dem Einschalten, wenn die microSD nicht eingesetzt ist, ist das endgültige Entscheidungsergebnis, ob der PXE-Start versucht werden soll, je nach Modell (Release-Zeit) völlig unterschiedlich. Versuchen Sie auch den PXE-Start. Endlich wurde mir klar, dass die Vorbereitungsmethode zur Änderung des Verhaltens je nach Modell völlig unterschiedlich ist.

Schritt 5: Zusammenfassung jedes Modells und jeder Vorbereitung (Methode ab 2020/06/02)

Raspberry PI 2 Model B (V1.1,V1.2)

Erscheinungsdatum
Die am 2015/02 veröffentlichte Marke (V1.1) ist 32-Bit-Arm v7.
2016/07 64-Bit-Arm v8 nach geringfügiger Änderung (V1.2)
Vollständig plattenlos ist unmöglich
Da dies zu einer Zeit angekündigt wurde, als ich überhaupt nicht an einen Netzwerkstart dachte, unterstützt es keine vollständige plattenlose Clientkonvertierung.
So erstellen Sie einen Netzstart
Obwohl es ursprünglich ein Modell war, das nicht unterstützt wurde, arbeiten die Benutzer jetzt hart daran, die Datei bootcode.bin zu finden, die in der Boot-Partition von Raspberry PI OS (ehemals Raspbian) enthalten ist. Es wurde dahingehend verbessert, dass ein Netzwerkstart möglich ist, wenn er in der ersten Partition von microSD vorhanden ist. Daher ist es erforderlich, die microSD, die eine Kopie von bootcode.bin ist, aus dem Raspbian-Image einzufügen und zu starten.
[Referenz (Qiita)](https://qiita.com/ysugi/items/ee88eed56e0234028228)

Himbeer PI 3 Modell B (nicht markiert)

Erscheinungsdatum
2016/03
Einige Befehle müssen nach dem Kauf nur einmal ausgeführt werden.
Der Standardstatus unterstützt keinen Netzwerk- / USB-Start. Wenn Sie jedoch die Datei cmdline.txt in der Startpartition von Raspbian nur einmal ändern und neu starten, wird das Firmware-Flag geändert und ein plattenloser Start durchgeführt. Es wird möglich sein zu antworten.
Tatsächliche Arbeit
Weitere Informationen finden Sie im Original-Tutorial.
[Referenz (Original-Tutorial, Englisch)](https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/net_tutorial.md)

Raspberry PI 3 Model B+

Erscheinungsdatum
2018/03
Festplattenlos kann ohne ausgeführt werden
2020/06/01 Derzeit das Modell, das am einfachsten zu einem plattenlosen Client zu machen ist. Deshalb hat PiServer es gefunden.

Raspberry PI 4

Erscheinungsdatum
2019/06
Der Befehl, der nach dem Kauf nur einmal ausgeführt werden muss, ist (Backtracking)
Das Design unterscheidet sich vollständig von der Startsequenz bis zum 3B-System. Ein Modell, in dem das Programm bootcode.bin, das beim Booten von bis zu 3B-Serien erforderlich war, jetzt im integrierten EEPROM gespeichert ist. Normalerweise sollte es möglich sein, es plattenlos zu machen, ohne etwas zu tun, aber im Ausgangszustand, wenn das Booten mit microSD fehlschlägt Ein unfreundliches Modell, das in dem Zustand geliefert wird, alles aufzugeben.
Was tun ?
Die folgenden Links sind gut organisiert. Bitte beziehen Sie sich auf sie.
[Referenz (Akii-Tagebuch)](https://akkiesoft.hatenablog.jp/entry/20200506/1588750846)

Schritt 6 Überprüfen Sie den PXE-Start von Raspbian (32 Bit) erneut auf PiServer

Schließlich konnte ich bei allen meinen Modellen einen PXE-Start durchführen. Und zum nächsten Schritt, wie man den verdammten PiServer ersetzt

Das war's für diese Zeit. Fahren Sie mit [Teil 2] fort (https://qiita.com/p_cub/items/69fa32a9a62890ca1d04).

Recommended Posts