Nächste: , Vorige: , Nach oben: Auf einem Rechencluster installieren   [Inhalt][Index]


9.3 Netzwerkzugriff

Guix setzt voraus, dass Netzwerkzugriff besteht, um Quellcode und vorerstellte Binärdateien herunterzuladen. Die gute Nachricht ist, dass nur der Zentralrechner Netzwerkzugriff braucht, weil die Arbeitsrechner an diesen delegieren.

Üblicherweise haben Knoten im Cluster höchstens Zugriff auf eine ausgesuchte „Positivliste“ erlaubter Kommunikationspartner. Für den Zentralrechner muss zumindest ci.guix.gnu.org auf dieser Positivliste stehen, denn von dort stammen in der Vorgabeeinstellung die vorerstellten Binärdateien für alle Pakete, die das eigentliche Guix kennt.

Nebenbei ist ci.guix.gnu.org außerdem ein inhaltsadressierbarer Spiegelserver für die Quelldateien all dieser Pakete. Daher ist es ausreichend, wenn Sie nur ci.guix.gnu.org auf die Positivliste setzen.

Software-Pakete, die in einem getrennten Repository angeboten werden wie beispielsweise den HPC-Kanälen, können natürlich nicht von ci.guix.gnu.org bezogen werden. Für diese Pakete möchten Sie unter Umständen weitere Server auf die Positivliste setzen, von denen für die fremden Pakete Quell- und Binärdateien heruntergeladen werden können (vorausgesetzt jemand stellt vorerstellte Binärdateien für sie zur Verfügung). Wenn nicht, können Benutzer als Ausweg auch den Quellcode auf ihre Workstations herunterladen und dann in /gnu/store auf dem Cluster hochladen. Das geht so:

GUIX_DAEMON_SOCKET=ssh://compute-node.example.org \
  guix download http://starpu.gforge.inria.fr/files/starpu-1.2.3/starpu-1.2.3.tar.gz

Der obige Befehl lädt starpu-1.2.3.tar.gz herunter und lässt es über SSH durch die guix-daemon-Instanz auf dem Cluster speichern.

Wenn Ihr Cluster gänzlich von der Außenwelt abgeschnitten ist („air-gapped“), ist es aufwendiger. In diesem Fall würden wir dazu raten, dass sie sämtlichen nötigen Quellcode auf eine Workstation herunterladen, auf der Guix läuft. Dafür gibt es zum Beispiel die Befehlszeilenoption --sources für guix build (siehe Aufruf von guix build in Referenzhandbuch zu GNU Guix); folgendes Beispiel zeigt, wie Sie sämtlichen Quellcode, von dem das openmpi-Paket abhängt, herunterladen:

$ guix build --sources=transitive openmpi

…

/gnu/store/xc17sm60fb8nxadc4qy0c7rqph499z8s-openmpi-1.10.7.tar.bz2
/gnu/store/s67jx92lpipy2nfj5cz818xv430n4b7w-gcc-5.4.0.tar.xz
/gnu/store/npw9qh8a46lrxiwh9xwk0wpi3jlzmjnh-gmp-6.0.0a.tar.xz
/gnu/store/hcz0f4wkdbsvsdky3c0vdvcawhdkyldb-mpfr-3.1.5.tar.xz
/gnu/store/y9akh452n3p4w2v631nj0injx7y0d68x-mpc-1.0.3.tar.gz
/gnu/store/6g5c35q8avfnzs3v14dzl54cmrvddjm2-glibc-2.25.tar.xz
/gnu/store/p9k48dk3dvvk7gads7fk30xc2pxsd66z-hwloc-1.11.8.tar.bz2
/gnu/store/cry9lqidwfrfmgl0x389cs3syr15p13q-gcc-5.4.0.tar.xz
/gnu/store/7ak0v3rzpqm2c5q1mp3v7cj0rxz0qakf-libfabric-1.4.1.tar.bz2
/gnu/store/vh8syjrsilnbfcf582qhmvpg1v3rampf-rdma-core-14.tar.gz
…

(Wenn Sie es genauer wissen wollen, haben wir hier mehr als 320 MiB komprimierten Quellcodes.)

Daraus lässt sich ein gesammeltes Archiv für all den Quellcode basteln (siehe Aufruf von guix archive in Referenzhandbuch zu GNU Guix):

$ guix archive --export \
    `guix build --sources=transitive openmpi` \
    > openmpi-quellcode.nar

… und dieses Archiv können wir dann mittels Wechseldatenträgern auf den Cluster transportieren und dort entpacken:

$ guix archive --import < openmpi-quellcode.nar

Wiederholen Sie diesen Vorgang, wann immer Sie neuen Quellcode auf den Cluster schaffen müssen.

Wir schreiben das, aber zum jetzigen Zeitpunkt haben die Forschungsinstitute, die mit Guix-HPC arbeiten, gar keinen Cluster mit Air Gap. Wenn Sie Erfahrung damit haben, freuen wir uns über Rückmeldungen und Vorschläge.


Nächste: Speicherplatz, Vorige: Die Arbeitsrechner konfigurieren, Nach oben: Auf einem Rechencluster installieren   [Inhalt][Index]