11-04-2023, 20:37
Um Dienste im AREDN/Hamnet anzubieten wird allgemein empfohlen statt ARM hardware (Raspberry PI, Odroid, etc.) auf x86_64 zu setzen, da man sich damit einige Probleme spart. Diese sind:
Weiterhin ist die ARM-Welt auch etwas zersplittert: viele Geräte basieren noch auf der armv7 Architektur, die nur 32 bit unterstützt. Seit einiger Zeit gibt es dann auch arm64, was z.T. jetzt besser unterstützt wird, aber auch noch o.g. Probleme aufweist.
Um jetzt geschickt Dienste anbieten und auch auf weiteren Knoten installieren zu können empfielt es sich, Docker oder Podman zu nutzen. Der Vorteil ist, dass die Container unabhängig voneinander sind und damit unabhängig von den installierten Bibliotheken auf dem Host-Betriebssystem. Damit lassen sich Dienste nach Bedarf/Komponentenweise installieren statt fest im Image eingebacken zu sein - wie es etwa der HamPi macht. Weiterhin lassen sich diese Container auch recht problemlos auf anderen Betriebssystemen installieren, solange Docker oder Podman installiert ist. Die einzige Bedingung ist, dass der Container für die entsprechende Architektur verfügbar ist. Um das auch offline zu unterstützen kann lokal eine Registry installiert werden. Da allerdings hier die Container Architektur-spezifisch sind, muss für jede Architectur - sofern verfügbar - ein eigenes Image heruntergeladen und vorgehalten werden.
Meine bisherigen Recherchen für x86_64 Geräte haben folgende Möglichkeiten ergeben:
Dazu mehr im folgenden:
Alter Laptop/Chromebook
Alte Laptops bieten den Vorteil, dass sie von sich aus schon relativ gut auf Energiesparen getrimmt sind und alles mitbringen, was man unterwegs brauchen kann:
Die Stromversorgung kann meist mit einem einfachen 19V Adapter bewerkstelligt werden. Allerdings ist das ein weiterer Adapter den man irgendwo unterbringen muss. Achtung: manche Laptops erfordern für die Stromversorgung auch Orginaladapter vom Hersteller (z.B. Dell). Modernere Laptops können auch per USB-C PD (power delivery) versorgt werden, was im mobilen Bereich auch eine interessante Option sein kann.
Ein Sonderfall sind Chromebooks. Diese haben einen extrem niedrigen Energieverbrauch, sind aber ziemlich zugenagelt, da Google kein Interesse daran hat, dass diese ohne Web-Zugriff auf Google-Dienste betrieben werden. Hierzu gibt es verschiedene Anleitungen online, die ich aber mangels Chromebook nicht bewerten kann.
!! Generell ist hier darauf zu achten, dass ein x86_64 Prozessor und kein ARM verbaut ist.
x86_64 Single-board Computer (SBC)
Ein entsprechendes Board zu finden ist leider aktuell nicht so leicht. Trotzdem habe ich zwei interessante Projekte gefunden:
- LattePanda 3 Delta
- Zimaboard
Generell ist bei diesen Boards häufig das Problem, ausreichend Speicher/Festplattenplatz anzubinden. Mit Glück ist neben USB ports ein SATA, mSATA oder NVMe/PCIe Steckplatz vorhanden. Damit schließt sich häufig Redundanz aus, allerdings sind moderne SSDs - auch durch die großen Größen - relativ ausfallsicher, und mittlerweile auch erschwinglich.
Bleibt das Problem der Montage: Diese SBCs sind generell nakte PCBs und folgen keinem Größenstandard. Entsprechend gibt es keine Standardgehäuse und man muss sich selbst Gedanken machen, wie man die Komponenten unterbringt.
Ansonsten sind diese SBCs vergleichbar mit Laptops. Sie haben vergleichbare CPU-Leistung, Arbeitsspeicher und Schnittstellen, und Stromverbrauch. Die Versorgungsspannung ist üblicherweise 12V oder 19V und sollte ohne proprietäre Netzteile auskommen.
Thinclients/(u)SFF PCs
Thin clients sind häufig günstig über Gebrauchtwarenbörsen aus alten Bürobeständen zu erstehen. Diese sind von Leistungsfähigkeit und Leistungsaufnahme mit Laptops vergleichbar. Mit einem Celeron/i3, ausreichend RAM und einem aufrüstbaren Massenspeicher sind diese eine attraktive Lösung für mobile und Serveranwendungen, allerdings ist hier wie bei Laptops die Stromversorgung jeweils zu prüfen.
Bei der Auswahl sollte weiterhin auf einen sparsame Prozessor zu achten, da diese je nach Ausstattung auch recht leistungshungrig werden können.
Mini-PCs
Mini PCs wie Intel NUC oder ZBOXen sind aus mehreren Aspekten interessant:
- Modelle mit mehreren Netzwerkschnittstellen verfügbar
- Hohe Leistungsfähigkeit wenn gewünscht
- Passiv gekühlte Varianten verfügbar
- z.T. mehr Platz für Festplatten/SSDs (i.e. PCIe/NVMe + 2.5" SATA)
- Neue Hardware verfügbar
Nachteile sind der oft hohe Preis (je nach Ausstattung >1000€).
Die Leistungsaufnahme skaliert offenbar recht gut mit den verbauten Komponenten. Entsprechend ist hier - wie sonst auch - das beste Preis-Leistungsverhältnis für die geplante Nutzung zu finden.
Etwas außerhalb der Mini-PC Ecke sind weiterhin Mini-ITX-basierte Systeme anzusiedeln. Diese sind generell nicht so kompakt, nutzen aber Standard-Komponenten und sind damit wartungsfreundlicher und einfacher reparier/- und upgradebar. Mini-ITX boards sind in allen Leistungsklassen verfügbar. Gehäuse gibt es mit der gewünschten Anzahl 2.5" Einschübe, zum Teil sogar passiv gekühlt. Für die Stromversorgung gibt es 12V Auto-Netzteile, die auch robust gegenüber Über- und Unterspannung sind - und damit attraktiv für die mobile Nutzung. Der größte Nachteil ist allerdings die oft weniger kompakte Bauweise.
Zusammenfassung
Generell gibt es eine ganze Reihe interessanter Alternativen. Die Auswahl hängt natürlich auch von der geplanten Verwendung ab. Wo und wie sollen die Knoten betrieben werden? Muss der Knoten tragbar sein? Wie lange soll/muss der Knoten online sein? Welche Möglichkeit zur Stromversorgung besteht?
Die dem Ganzen zugrunde liegende Frage ist: Welche Dienste wir anbieten? Wie gehen wir mit Knoten/Link-Ausfällen um? Welcher Dienst hilft wem, wann, und wo? ..und zu guter letzt: was ist das Budget? Das sollte in einem separaten Thread diskutiert werden.
Aktuell befinde ich mich noch in der Lern-/Experimentierphase, möchte aber wenn möglich etwas zukunftsfähiges bauen, daher der Fokus auf x86_64. Allerdings kann ich die Leistungsanforderungen noch nicht genauer abschätzen. Entsprechend bin ich hin- und hergerissen zwischen etwas Billigem, was dann eventuell langfristig nicht sinnvoll ist - oder zu viel Geld ausgeben, was dann am Ende doch überdimensioniert ist.
Was meint ihr? Habt ihr noch alte Hardware rumliegen, die ihr für AREDN herrichten wollt? Gibt es noch andere Optionen, die ich hier übesehen habe?
- Kein BIOS: man braucht dedizierte Images für das jeweilige Board
- Keine/kaum Linux Mainline Kernel Unterstützung: Kernel müssen jeweils spezifisch für das Board kompiliert werden - und sind häufig entsprechend alt
- Software Support: Einige Programme oder Funktionen sind nicht verfügbar oder müssen jeweils kompliiert werden
Weiterhin ist die ARM-Welt auch etwas zersplittert: viele Geräte basieren noch auf der armv7 Architektur, die nur 32 bit unterstützt. Seit einiger Zeit gibt es dann auch arm64, was z.T. jetzt besser unterstützt wird, aber auch noch o.g. Probleme aufweist.
Um jetzt geschickt Dienste anbieten und auch auf weiteren Knoten installieren zu können empfielt es sich, Docker oder Podman zu nutzen. Der Vorteil ist, dass die Container unabhängig voneinander sind und damit unabhängig von den installierten Bibliotheken auf dem Host-Betriebssystem. Damit lassen sich Dienste nach Bedarf/Komponentenweise installieren statt fest im Image eingebacken zu sein - wie es etwa der HamPi macht. Weiterhin lassen sich diese Container auch recht problemlos auf anderen Betriebssystemen installieren, solange Docker oder Podman installiert ist. Die einzige Bedingung ist, dass der Container für die entsprechende Architektur verfügbar ist. Um das auch offline zu unterstützen kann lokal eine Registry installiert werden. Da allerdings hier die Container Architektur-spezifisch sind, muss für jede Architectur - sofern verfügbar - ein eigenes Image heruntergeladen und vorgehalten werden.
Meine bisherigen Recherchen für x86_64 Geräte haben folgende Möglichkeiten ergeben:
- Alter Laptop/Chromebook mit Intel Prozessor
- x86_64 Single-board Computer (SBCs)
- Thin clients: SFF/uSFF PCs
- Mini PCs
Dazu mehr im folgenden:
Alter Laptop/Chromebook
Alte Laptops bieten den Vorteil, dass sie von sich aus schon relativ gut auf Energiesparen getrimmt sind und alles mitbringen, was man unterwegs brauchen kann:
- Akku (sofern funktionsfähig) als integrierte USV
- Tastatur + Bildschirm für eventuelle Konfigurationsänderungen
- Ausreichend Arbeitsspeicher und CPU-Leistung für verschiedeneste Dienste
- Gutes Energiemanagement
- Größer/schwerer als vergleichbare SBCs
- Sollte je nach Anwendungsfall (Server/Client) umkonfiguriert werden (i.e. Desktop-Umgebung an/abschalten um genügend Arbeitsspeicher zu haben)
Die Stromversorgung kann meist mit einem einfachen 19V Adapter bewerkstelligt werden. Allerdings ist das ein weiterer Adapter den man irgendwo unterbringen muss. Achtung: manche Laptops erfordern für die Stromversorgung auch Orginaladapter vom Hersteller (z.B. Dell). Modernere Laptops können auch per USB-C PD (power delivery) versorgt werden, was im mobilen Bereich auch eine interessante Option sein kann.
Ein Sonderfall sind Chromebooks. Diese haben einen extrem niedrigen Energieverbrauch, sind aber ziemlich zugenagelt, da Google kein Interesse daran hat, dass diese ohne Web-Zugriff auf Google-Dienste betrieben werden. Hierzu gibt es verschiedene Anleitungen online, die ich aber mangels Chromebook nicht bewerten kann.
!! Generell ist hier darauf zu achten, dass ein x86_64 Prozessor und kein ARM verbaut ist.
x86_64 Single-board Computer (SBC)
Ein entsprechendes Board zu finden ist leider aktuell nicht so leicht. Trotzdem habe ich zwei interessante Projekte gefunden:
- LattePanda 3 Delta
- Zimaboard
Generell ist bei diesen Boards häufig das Problem, ausreichend Speicher/Festplattenplatz anzubinden. Mit Glück ist neben USB ports ein SATA, mSATA oder NVMe/PCIe Steckplatz vorhanden. Damit schließt sich häufig Redundanz aus, allerdings sind moderne SSDs - auch durch die großen Größen - relativ ausfallsicher, und mittlerweile auch erschwinglich.
Bleibt das Problem der Montage: Diese SBCs sind generell nakte PCBs und folgen keinem Größenstandard. Entsprechend gibt es keine Standardgehäuse und man muss sich selbst Gedanken machen, wie man die Komponenten unterbringt.
Ansonsten sind diese SBCs vergleichbar mit Laptops. Sie haben vergleichbare CPU-Leistung, Arbeitsspeicher und Schnittstellen, und Stromverbrauch. Die Versorgungsspannung ist üblicherweise 12V oder 19V und sollte ohne proprietäre Netzteile auskommen.
Thinclients/(u)SFF PCs
Thin clients sind häufig günstig über Gebrauchtwarenbörsen aus alten Bürobeständen zu erstehen. Diese sind von Leistungsfähigkeit und Leistungsaufnahme mit Laptops vergleichbar. Mit einem Celeron/i3, ausreichend RAM und einem aufrüstbaren Massenspeicher sind diese eine attraktive Lösung für mobile und Serveranwendungen, allerdings ist hier wie bei Laptops die Stromversorgung jeweils zu prüfen.
Bei der Auswahl sollte weiterhin auf einen sparsame Prozessor zu achten, da diese je nach Ausstattung auch recht leistungshungrig werden können.
Mini-PCs
Mini PCs wie Intel NUC oder ZBOXen sind aus mehreren Aspekten interessant:
- Modelle mit mehreren Netzwerkschnittstellen verfügbar
- Hohe Leistungsfähigkeit wenn gewünscht
- Passiv gekühlte Varianten verfügbar
- z.T. mehr Platz für Festplatten/SSDs (i.e. PCIe/NVMe + 2.5" SATA)
- Neue Hardware verfügbar
Nachteile sind der oft hohe Preis (je nach Ausstattung >1000€).
Die Leistungsaufnahme skaliert offenbar recht gut mit den verbauten Komponenten. Entsprechend ist hier - wie sonst auch - das beste Preis-Leistungsverhältnis für die geplante Nutzung zu finden.
Etwas außerhalb der Mini-PC Ecke sind weiterhin Mini-ITX-basierte Systeme anzusiedeln. Diese sind generell nicht so kompakt, nutzen aber Standard-Komponenten und sind damit wartungsfreundlicher und einfacher reparier/- und upgradebar. Mini-ITX boards sind in allen Leistungsklassen verfügbar. Gehäuse gibt es mit der gewünschten Anzahl 2.5" Einschübe, zum Teil sogar passiv gekühlt. Für die Stromversorgung gibt es 12V Auto-Netzteile, die auch robust gegenüber Über- und Unterspannung sind - und damit attraktiv für die mobile Nutzung. Der größte Nachteil ist allerdings die oft weniger kompakte Bauweise.
Zusammenfassung
Generell gibt es eine ganze Reihe interessanter Alternativen. Die Auswahl hängt natürlich auch von der geplanten Verwendung ab. Wo und wie sollen die Knoten betrieben werden? Muss der Knoten tragbar sein? Wie lange soll/muss der Knoten online sein? Welche Möglichkeit zur Stromversorgung besteht?
Die dem Ganzen zugrunde liegende Frage ist: Welche Dienste wir anbieten? Wie gehen wir mit Knoten/Link-Ausfällen um? Welcher Dienst hilft wem, wann, und wo? ..und zu guter letzt: was ist das Budget? Das sollte in einem separaten Thread diskutiert werden.
Aktuell befinde ich mich noch in der Lern-/Experimentierphase, möchte aber wenn möglich etwas zukunftsfähiges bauen, daher der Fokus auf x86_64. Allerdings kann ich die Leistungsanforderungen noch nicht genauer abschätzen. Entsprechend bin ich hin- und hergerissen zwischen etwas Billigem, was dann eventuell langfristig nicht sinnvoll ist - oder zu viel Geld ausgeben, was dann am Ende doch überdimensioniert ist.
Was meint ihr? Habt ihr noch alte Hardware rumliegen, die ihr für AREDN herrichten wollt? Gibt es noch andere Optionen, die ich hier übesehen habe?