5491
Kommentar:
|
← Revision 75 vom 2023-07-24 15:56:37 ⇥
9115
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 4: | Zeile 4: |
Zeile 9: | Zeile 11: |
Der "MiniCluster" ist ein preiswerter selbstgebauter Rechencluster, der für verschiedene Experimente | Siehe auch die Beschreibung zur Installation von Michael Schäferling (VPN nötig!): https://ti-wiki.informatik.hs-augsburg.de/doku.php?id=rt-labor_miniitx-cluster .. contents:: .. sectnum:: .. figure:: https://hhoegl.informatik.hs-augsburg.de/pub/minicluster/Minicluster-3-2023-01.jpg :target: https://hhoegl.informatik.hs-augsburg.de/pub/minicluster/Minicluster-3-2023-01.jpg :width: 700 :align: center Foto vom 22. März 2023. Neu hinzugekommen sind im März die Relais am oberen Bildrand. Damit kann man aus der Ferne die Reset- und Power-Signale der vier Worker-Nodes betätigen, um z.B. das Verhalten beim Ausfall eines der Boards zu testen. | Motivation ---------- Der "MiniCluster" (siehe z.B. Definition `Cluster <https://researchcomputing.princeton.edu/faq/what-is-a-cluster>`_) ist ein preiswerter selbstgebauter Rechencluster, der für verschiedene Experimente |
Zeile 21: | Zeile 44: |
* Vier Worker gibt es, das sind preiswerte Mini-ITX Boards mit Intel N3000 oder N4000 Prozessoren und jeweils 8 GB Speicher. | * Vier "Worker Nodes" gibt es, das sind preiswerte Mini-ITX Boards mit Intel N3000 oder N4000 Prozessoren und jeweils 8 GB Speicher. |
Zeile 25: | Zeile 48: |
Board vorhanden, für Experimente die etwas "KI Power" erfordern. | Board vorhanden, für Experimente die etwas "KI Power" erfordern. |
Zeile 31: | Zeile 54: |
Meine aktuelle Ideenliste für Experimente mit dem Cluster enthält folgende Bereiche: | Anregungen für Experimente -------------------------- Meine aktuelle Ideenliste für Experimente mit dem Cluster enthält folgende Stichpunkte: |
Zeile 35: | Zeile 62: |
* Kubernetes https://kubernetes.io/de (Beispiel: Master Projekt "HSA Web Services" vom Sommer 2020 nochmal nachvollziehen https://r-n-d.informatik.hs-augsburg.de:8080/hws/hws) |
* Kubernetes https://kubernetes.io/de (Alternativen mit kleinerem Fussabdruck sind MicroK8 (https://microk8s.io), K3s (https://k3s.io) und Minikube (https://minikube.sigs.k8s.io/docs/). .. (Beispiel: Master Projekt "HSA Web Services" vom Sommer 2020 nochmal nachvollziehen https://r-n-d.informatik.hs-augsburg.de:8080/hws/hws) |
Zeile 41: | Zeile 71: |
* Terraform mit KVM Provider * `Minio <https://min.io>`_ distributed Object Store (AGPLv3), Beschreibung "`distributed minio <https://docs.min.io/docs/distributed-minio-quickstart-guide.html>`_" |
|
Zeile 52: | Zeile 87: |
* `DRDB <https://linbit.com/drbd>`_, Distributed Replicated Storage System | * Python "multiprocessing", unterstützt durch *Ray Actors* https://docs.ray.io/en/latest/multiprocessing.html * *Jug* Parallelization Framework (Python) https://jug.readthedocs.io/en/latest/ * `DRBD <https://linbit.com/drbd>`_ - Distributed Replicated Storage System Mit DRBD und Pacemaker (https://clusterlabs.org/pacemaker, ein Cluster Resource Manager) kann man einen Hochverfügbarkeits-Cluster bauen. * Gluster https://www.gluster.org * Ceph https://ceph.io |
Zeile 58: | Zeile 106: |
* Ceph https://ceph.io * Load Balancer * Job Queues |
|
Zeile 66: | Zeile 108: |
* `Dask <https://docs.dask.org/en/stable/>`_ - Paralleles Rechnen mit Python (kann auch mit Job Scheduler wie *Slurm* kombiniert werden) * `Cronicle <https://github.com/jhuckaby/Cronicle>`_ is a multi-server task scheduler and runner |
|
Zeile 70: | Zeile 117: |
* Tensorflow auf Cluster (ähnlich c't Artikel in Heft 12/2021, `TensorFlow auf 4 RPis <http://hhoegl.informatik.hs-augsburg.de/pub/minicluster/Tensorflow-auf-RPi-Cluster.pdf>`_). |
|
Zeile 72: | Zeile 121: |
Verwendung ---------- |
* Load Balancer, `GNU parallel <https://www.gnu.org/software/parallel>`_, `rush <https://www.gnu.org/software/parallel>`_ * Sprache Elixir, virtuelle Maschine "BEAM" kann auf unterschiedlichen Knoten eines Clusters laufen. Zugangsdaten ------------ |
Zeile 84: | Zeile 139: |
Die Nodes kommen über den Hauptrechner auch ins Intenet. | Die Nodes kommen über den Hauptrechner auch ins Intenet. Auf den Fotos weiter unten sieht man die Nodes 1 bis 4 von links nach rechts im Rack verbaut. |
Zeile 96: | Zeile 152: |
cluster-node1 - Board: `J1900I-C (Asus) <https://www.asus.com/de/Motherboards-Components/Motherboards/All-series/J1900IC>`_ - RAM: 8 GByte - MAC: 1c:87:2c:46:f9:a2 - SSD: SanDisk SSD Plus 240GB cluster-node2 - Board: `J1900I-C (Asus) <https://www.asus.com/de/Motherboards-Components/Motherboards/All-series/J1900IC>`_ - RAM: 8 GByte - MAC: 1c:87:2c:46:74:fd - SSD: SanDisk SSD Plus 240GB cluster-node3 - Board: `Q1900B-ITX (Asrock) <https://www.asrock.com/MB/Intel/Q1900B-ITX/index.de.asp>`_ - RAM: 8 GByte RAM - MAC: 70:85:c2:0d:91:5c - SSD: SanDisk SSD Plus 480GB cluster-node4 - Board: `J4205-ITX (Asrock) <https://www.asrock.com/mb/Intel/J4205-ITX/index.us.asp>`_ - RAM: 8 GByte - MAC: MAC: 70:85:c2:83:29:90 - SSD: SanDisk SSD Plus 480GB Jetson Nano - Board: https://developer.nvidia.com/embedded/jetson-nano-developer-kit - IP: 192.168.0.11 Hinweis: Die ASUS Boards booten nicht, wenn kein Monitor angeschlossen ist. Abhilfe schafft ein `Dummy-HDMI <https://www.amazon.de/EVanlak-Headless-Emulator-Headless-3840x2160-3RD)-2Pack/dp/B07YMSHC8Y>`_ Adapter. |
|
Zeile 98: | Zeile 194: |
[23.6.2021 aktuelle Fotos siehe http://hhoegl.informatik.hs-augsburg.de/Fotos/_build/minicluster/index.html#/0] |
MiniCluster
Hubert Högl, 11.4.2021
Siehe auch die Beschreibung zur Installation von Michael Schäferling (VPN nötig!): https://ti-wiki.informatik.hs-augsburg.de/doku.php?id=rt-labor_miniitx-cluster
1 Motivation
Der "MiniCluster" (siehe z.B. Definition Cluster) ist ein preiswerter selbstgebauter Rechencluster, der für verschiedene Experimente verwendet werden soll, für die man eben ein kleines Cluster benötigt. Wir haben in etwa folgende Ausstattung:
Ein "Hauptrechner" AMD Ryzen Embedded V1000 4X4 Box mit 16 GByte RAM
Der Rechner ist im Intranet der Hochschule sichtbar (Anbindung mit 1 GBit/s) und ist die Anlaufstation des Clusters. Über den zweiten Ethernet Anschluss der 4X4 Box geht es auf einen Gigabit Switch, an dem die "Worker" des Clusters angeschlossen sind.
Der Hauptrechner kann die Reset-Leitung der einzelnen Worker betätigen (muss noch implementiert werden). Damit sollen die Worker z.B. automatisiert mit Linux installiert werden können.
Vier "Worker Nodes" gibt es, das sind preiswerte Mini-ITX Boards mit Intel N3000 oder N4000 Prozessoren und jeweils 8 GB Speicher.
Als Zugabe ist noch ein Jetson Nano Board vorhanden, für Experimente die etwas "KI Power" erfordern.
Somit ist ziemlich klar sichtbar, dass wir es nicht auf einen Preis im "High-Performance Computing" abgesehen haben, aber für einen gut funktionierenden Demonstrator sollte es allemal reichen. Dafür liegen unsere Ausgaben auch nur bei ein paar hundert Euro.
2 Anregungen für Experimente
Meine aktuelle Ideenliste für Experimente mit dem Cluster enthält folgende Stichpunkte:
Docker und Docker Swarm https://www.docker.com
Kubernetes https://kubernetes.io/de (Alternativen mit kleinerem Fussabdruck sind MicroK8 (https://microk8s.io), K3s (https://k3s.io) und Minikube (https://minikube.sigs.k8s.io/docs/).
Rook https://rook.io
Terraform mit KVM Provider
Minio distributed Object Store (AGPLv3), Beschreibung "distributed minio"
-
- KVM Virtualisierung
- Ceph (verteiltes Dateisystem auf mehreren Knoten
- ZFS Filesystem
Apache Spark https://spark.apache.org
Python "multiprocessing", unterstützt durch Ray Actors
Jug Parallelization Framework (Python) https://jug.readthedocs.io/en/latest/
DRBD - Distributed Replicated Storage System
Mit DRBD und Pacemaker (https://clusterlabs.org/pacemaker, ein Cluster Resource Manager) kann man einen Hochverfügbarkeits-Cluster bauen.
Gluster https://www.gluster.org
Ceph https://ceph.io
OpenMP, https://www.openmp.org
Open MPI, https://www.open-mpi.org
Dask - Paralleles Rechnen mit Python (kann auch mit Job Scheduler wie Slurm kombiniert werden)
Cronicle is a multi-server task scheduler and runner
FOG Project https://fogproject.org
Tensorflow auf Cluster (ähnlich c't Artikel in Heft 12/2021, TensorFlow auf 4 RPis).
Firewalls
Load Balancer, GNU parallel, rush
Sprache Elixir, virtuelle Maschine "BEAM" kann auf unterschiedlichen Knoten eines Clusters laufen.
3 Zugangsdaten
Den Hauptrechner erreicht man nur aus dem Intranet der Hochschule. Der DNS Name ist cluster4x4.informatik.hs-augsburg.de (IP 141.82.48.160). Sie bekommen Login und Passwort von mir zugeschickt, wenn Sie einen Versuch mit dem Rechner machen möchten.
Die vier Nodes sind wie folgt an den Hauptrechner angeschlossen.
Die Nodes kommen über den Hauptrechner auch ins Intenet. Auf den Fotos weiter unten sieht man die Nodes 1 bis 4 von links nach rechts im Rack verbaut.
cluster-node1
- Board: J1900I-C (Asus)
- RAM: 8 GByte
- MAC: 1c:87:2c:46:f9:a2
- SSD: SanDisk SSD Plus 240GB
cluster-node2
- Board: J1900I-C (Asus)
- RAM: 8 GByte
- MAC: 1c:87:2c:46:74:fd
- SSD: SanDisk SSD Plus 240GB
cluster-node3
- Board: Q1900B-ITX (Asrock)
- RAM: 8 GByte RAM
- MAC: 70:85:c2:0d:91:5c
- SSD: SanDisk SSD Plus 480GB
cluster-node4
- Board: J4205-ITX (Asrock)
- RAM: 8 GByte
- MAC: MAC: 70:85:c2:83:29:90
- SSD: SanDisk SSD Plus 480GB
Jetson Nano
- Board: https://developer.nvidia.com/embedded/jetson-nano-developer-kit
- IP: 192.168.0.11
Hinweis: Die ASUS Boards booten nicht, wenn kein Monitor angeschlossen ist. Abhilfe schafft ein Dummy-HDMI Adapter.
4 Bilder
[23.6.2021 aktuelle Fotos siehe http://hhoegl.informatik.hs-augsburg.de/Fotos/_build/minicluster/index.html#/0]
Der MiniCluster wird in den nächsten Tagen (Mitte April 2021) fertig, deswegen fehlen noch ein paar Sachen auf den Bildern. Den kompletten Aufbau und die Planung dazu hat Michael Schäferling <Michael.Schaeferling@hs-augsburg.de> erledigt. Die Schreinerei der Hochschule hat den schönen Holzrahmen gemacht.