Rock Pi 5 als Host für LXC

Aus LinuxUser 08/2023

Rock Pi 5 als Host für LXC

© zhaojiankangphoto / 123RF.com

Container-Hafen

Vor allem große RasPi-Modelle sind und bleiben teure Mangelware. Hier springt der Rock Pi 5 mehr als adäquater Ersatz in die Bresche.

Beim Rock Pi 5 handelt es sich nicht um ein direktes Konkurrenzprodukt zum Raspberry Pi 4. Um es konkreter auszudrücken: Der Rock Pi rangiert eher im Bereich eines kleinen Desktop-PCs und ist um ein Vielfaches leistungsfähiger als ein Raspberry Pi 4.

Da überrascht es umso mehr, dass es ihn aktuell zu einem vernünftigen Preis gibt, was man vom Raspberry Pi zurzeit nicht gerade behaupten kann. Ein RasPi 4 mit 4 GByte RAM [1] kostet aktuell um die 200 Euro. Da fällt die 8-GByte-Variante des Rock Pi 5 [2] mit 190 Euro schon etwas günstiger aus, das Modell mit 16 GByte erhalten Sie für 236 Euro [3].

Rock Pi im Detail

Der Rock Pi 5 nutzt den genormten Pico-ITX-Formfaktor und fällt mit den Maßen von 100 x 72 Millimeter ein wenig größer aus als der RasPi. Er ist bis auf wenige Ausnahmen leistungsfähiger als sein britischer Konkurrent. Das einzige, was ab Werk fehlt, ist eine Wi-Fi-Schnittstelle. Die lässt sich aber für kleines Geld mit einem M.2-Modul nachrüsten. Wo wir gerade bei M.2 sind: Wie schon sein Vorgänger verfügt auch der Rock Pi 5 über eine M.2-Schnittstelle zum Anschluss von NVMe-SSDs sowie einen eMMC-Steckplatz. Damit booten Sie alternativ zur SD-Karte das System.

Neben dem RasPi-kompatiblen GPIO-Connector finden sich auf dem Board je ein Power- und Reset-Button – zwei Schalter, die man auf einem Raspberry Pi vergeblich sucht. Als weitere interessante Funktion bringt der Rock Pi eine Echtzeituhr mit, ebenso einen Anschluss für eine Pufferbatterie. Bei so viel Rechenleistung ist es sinnvoll, die CPU ordentlich zu kühlen. Daher besitzt der Rock Pi zum Anschluss eines zusätzlichen Lüfters einen gesonderten Power-Anschluss. Da der Originalkühler aktuell nicht lieferbar war, verwendeten wir im Test eine generische Lösung aus Kühlkörper [4] und Lüfter [5]. Letzterer lässt sich über den 3,3- oder 5-Volt-Anschluss der GPIO betreiben.

Alle Komponenten auf dem Board sind sehr gut verbaut und erwecken einen soliden Eindruck (Abbildung 1). Die recht beeindruckenden technischen Daten des Kleinrechners fasst die Tabelle “Radxa Rock Pi 5: Technische Daten” zusammen. Weitere Informationen zum Rock Pi finden Sie auf der Herstellerseite [6].

Abbildung 1: Der Rock Pi 5 mit alternativer Kühlung.

Abbildung 1: Der Rock Pi 5 mit alternativer Kühlung.

Achten Sie beim Einsatz des Rock Pi 5 darauf, ein ausreichend dimensioniertes Netzteil zu verwenden. Das Datenblatt drückt sich hinsichtlich der benötigten Stromzufuhr etwas unklar aus. Deswegen entschieden wir uns für ein etwas stärkeres Modell, das PD 2.0 unterstützt [7]. Es bietet genügend Reserven, um jegliche Probleme auszuschließen.

Bauteil

Bezeichnung

SoC RK3588

CPU

4 x ARM Cortex-A76 (max. 2,4 GHz), 4 x ARM Cortex-A55 ( max. 1,8 GHz)

GPU

ARM Mali G610MP4

NPU

6T Neural Processing Unit für KI-Anwendungen

RAM

LPDDR4 (4/8/16 GByte)

Anschlüsse

M.2

Oberseite: E-Key-Connector für Wireless-Module, Unterseite M-Key-Connector für NVMe-SSDs

MIPI CSI

Kameraanschluss

MIPI DSI

Display-Anschluss

GPIO

40-polig (RasPi-kompatibel)

USB

2 USB 2.0, 2 USB 3.0

Ethernet

2,5 GByte mit PoE-Unterstützung

HDMI

2 Standard-8K mit 60 fps

Micro HDMI

Input 4k/60fps

Klinke

3,5 Millimeter Stereo Out, Mic In

microSD

1 Slot

USB-C

Spannungsversorgung PD 2.0, 5V/3A und 12V/2A

Betriebssystem

Auf der Download-Seite von Radxa [8] finden sich etliche Betriebssystem-Images für den Rock Pi. Da wir einen LXC-Server aufsetzen möchten, fällt die Wahl auf das Ubuntu-Server-Abbild [9]. Nach dem Herunterladen entpacken Sie es mit dem Kommando:xz -d Image.xz. Fehlt auf Ihrem Rechner Xz, installieren Sie es mit sudo apt install xz-utils nach.

Danach schreiben Sie das Image beispielsweise mit dem wohlbekannten Raspberry-Imager (Abbildung 2) auf eine SD-Karte. Eine solche bietet sich für erste Versuche mit dem SoC an, da sie sich schnell neu beschreiben lässt, wenn etwas schiefgeht. Für den Normalbetrieb sollten Sie jedoch auf eine eMMC umsteigen.

Abbildung 2: Image auf die SD-Karte schreiben.

Abbildung 2: Image auf die SD-Karte schreiben.

Beim Booten von der SD-Card startet der Rock Pi wie ein normaler Ubuntu-Server. Der SSH-Dämon ist aktiv, und Sie können sich als User rock mit gleichlautendem Passwort direkt an der Konsole anmelden. Alle folgenden Kommandos müssen Sie als User root ausführen. Daher wechseln Sie mit dem Kommando sudo bash in eine Root-Shell.

Vor dem Installieren neuer Software stellen Sie mit apt update sicher, dass sich das System auf dem aktuellen Stand befindet. Hierbei kann ein GPG-Fehler auftreten. Um das Problem zu lösen, müssen Sie den aktuellen GPG-Key für das Repository installieren. Das erledigen Sie mit den Kommandos aus Listing 1. Der Befehl aus der dritten Zeile nimmt die eigentliche Aktualisierung vor. Das kann einige Minuten dauern, da es sich um ein etwas älteres Installationsabbild handelt.

Listing 1

System aktualisieren

# export DISTRO=focal-stable
# wget -O - apt.radxa.com/$DISTRO/public.key | sudo apt-key add -
# apt update && apt upgrade
# apt install lxc libvirt0 man-db
# /usr/share/lxc/templates/lxc-download -l

LXC

Bevor es ans Setup des Systems geht, sollten wir uns erst einmal ein wenig mit der Theorie hinter LXC beschäftigen. Als Erstes gilt es, zu klären, worum es sich dabei überhaupt handelt. LXC steht als Kürzel für Linux Containers, ein Virtualisierungsverfahren, bei dem alle Gastsysteme den Kernel des Host-Servers mitverwenden. Daher benötigen die Container (also Gast-Server) im Vergleich zu einer Hardwarevirtualisierung weniger Systemressourcen.

In den Containern arbeiten Sie wie in einer eigenständigen Installation. Anders als bei Docker bleiben Änderungen innerhalb des Containers auch nach einem Neustart erhalten. LXC bietet eine gute Möglichkeit, schnell Testumgebungen mit mehreren Servern aufzubauen. Um LXC auf dem Rock Pi zu installieren, verwenden Sie den Befehl aus der vierten Zeile von Listing 1. Um das LXC-Netzwerk-Interface zu aktivieren, müssen Sie den Kleinrechner nach der Installation einmal rebooten.

Die Container selbst bauen Sie aus Templates, die lediglich die Grundfunktionen eines Systems bereitstellen. Die Liste der vorhandenen Vorlagen rufen Sie nach der Installation von LXC mit dem Kommando aus der letzten Zeile von Listing 1 auf. Um sich die Verwaltung zu erleichtern, erstellen Sie mit mkdir /lxc ein Verzeichnis, in dem Sie die Container speichern. Falls Sie eine M.2-SSD übrig haben, können Sie diese einrichten und auf /lxc mounten (siehe Kasten “M.2”).

M.2

Der Rock Pi 5 verfügt auf der Unterseite über eine M.2-Schnittstelle für eine zusätzliche Festplatte. Nach der Montage des Speichers prüfen Sie mit dem ersten Kommando aus Listing 2, ob das System dieses Interface erkennt. Die Ausgabe des Kommandos sollte so ähnlich aussehen wie in der dritten Zeile. Mit dem Kommando aus Zeile 5 legen Sie jetzt eine Partition auf der Platte an. Das Formatieren erledigen Sie mit dem Aufruf aus Zeile 7. Zu guter Letzt hängen Sie die Platte mit dem Aufruf aus Zeile 9 ins System ein. Wenn Sie die Platte beim Booten automatisch mounten möchten, müssen Sie den Inhalt von Zeile 11 in die /etc/fstab einfügen. Sie können das System auch von der M.2-Platte booten lassen. Eine Anleitung dazu finden Sie auf der Projektseite [10].

Listing 2

M.2-SSDs als Datenspeicher verwenden

### Festplatte abfragen
# fdisk -l | grep nvme
Disk /dev/nvme0n1: 465.78 GiB, 500107862016 bytes, 976773168 sectors
### Partition anlegen
# fdisk /dev/nvme0n1
### Partition formatieren
# mkfs.ext4 /dev/nvme0n1p1
### Datenspeicher einhängen
# mount /dev/nvme0n1p1 /lxc
### Eintrag in der /etc/fstab
/dev/nvme0n1p1 /lxc ext4 defaults 0 1

Mit dem Kommando lxc-create, das etliche Parameter unterstützt, erstellen Sie neue Container. Eine vollständige Dokumentation dazu rufen Sie mit man lxc-create auf. Listing 3 fasst die Kommandos zusammen, um drei Test-Container in eigenen Verzeichnissen zu erstellen und zu starten.

Hierbei geben Sie genau vor, welches Template Sie verwenden möchten. Von besonderer Bedeutung sind die drei Parameter -a (Architektur), -d (Distribution) und -r (Release). Lassen Sie einen dieser Parameter weg, fragt lxc-create interaktiv nach.

Die Distribution und das Release können Sie frei wählen. Bei der Architektur haben Sie keine große Auswahl: Host- und Gastarchitektur müssen immer zusammenpassen. Daher ist es wichtig zu wissen, dass es sich bei aarch64 und arm64 um dieselbe Architektur handelt. Das Kommando aus Zeile 14 von Listing 3 gibt die Liste der Container samt etlicher Zusatzinformationen aus.

Listing 3

Container erstellen und starten

### Verzeichnisse erstellen
# mkdir /lxc/ubuntu01
# mkdir /lxc/ubuntu02
# mkdir /lxc/ubuntu03
### Container erstellen
# lxc-create -t download --dir=/lxc/ubuntu01 ubuntu01 -- -a arm64 -d ubuntu -r jammy
# lxc-create -t download --dir=/lxc/ubuntu02 ubuntu02 -- -a arm64 -d ubuntu -r jammy
# lxc-create -t download --dir=/lxc/ubuntu03 ubuntu03 -- -a arm64 -d ubuntu -r jammy
### Container starten
# lxc-start ubuntu01
# lxc-start ubuntu02
# lxc-start ubuntu03
### Container mit Informationen auflisten
# lxc-ls -f
### Container stoppen und löschen
# lxc-stop ubuntu03
# lxc-destroy ubuntu03

Nach der Installation starten Sie die Container (Listing 3, Zeilen 10 bis 12). Über das Kommando lxc-top rufen Sie bei Bedarf ab, welche Container laufen und welche Ressourcen sie aktuell belegen. Zum Stoppen eines Containers verwenden Sie den Befehl lxc-stop, über lxc-destroy löschen Sie einen Container (Zeile 17).

Damit kennen Sie auch schon die nötigsten Kommandos, um Container zu verwalten. Sehen wir uns nun einmal genauer an, wie Sie mit den Containern arbeiten.

Container

Direkt nach der Installation stellt ein Container nur ein Basisbetriebssystem ohne Verbindung zur Außenwelt bereit. Um mit den Containern zu arbeiten, verwenden Sie den Aufruf lxc-attach <§§I>Container<§§I>. Er öffnet eine Root-Konsole auf dem Container, mit dem Sie administrative Aufgaben erledigen. Der Befehl apt install ssh installiert einen SSH-Server, mit adduser user legen Sie einen Nutzer mit dem Namen user an.

Jetzt können Sie sich via SSH als user mit dem Container verbinden und darauf arbeiten. Aktuell erreichen Sie den Container allerdings nur direkt über den Wirt, auf dem er läuft. Das liegt daran, dass LXC alle Container in einem NAT-Netzwerk erstellt, das sich von außen nicht erreichen lässt. Es gibt mehrere Möglichkeiten, den Zugriff auf die Container zu ermöglichen. Eine Beschreibung der unterschiedlichen Konfigurationen finden Sie auf der Ubuntu-Homepage [11].

An dieser Stelle beenden wir die Experimente mit LXC. Das soll aber nicht bedeuten, dass wir das Thema damit bereits vollständig abgehandelt hätten. Wenn Sie sich noch etwas intensiver mit LXC beschäftigen möchten, bietet sich die Debian-Homepage [12] als gute Informationsquelle an. Um Ihnen den Einstieg in die Bedienung von LXC ein wenig zu erleichtern, fasst die Tabelle “LXC-Kommandos” alle hier verwendeten Aufrufe noch einmal zusammen.

Kommando

Beschreibung

lxc-checkconfig

Test, ob das Host-System in der Lage ist, LXC zu fahren.

lxc-create

Neue Container aus Templates erstellen.

lxc-destroy

Bestehende Container vollständig löschen.

lxc-start

Container starten (mit -F inklusive interaktiver Login-Konsole).

lxc-stop

Container stoppen.

lxc-download -l

Liste der Templates ausgeben.

lxc-ls

Anzeigen der installierten Container (mit -f inklusive Zusatzinformationen).

lxc-top

Aktueller Ressourcenverbrauch der laufenden Container.

lxc-attach

Ohne Login mit Container-Konsole verbinden.

Fazit

Wie eingangs bereits erwähnt, setzt der Rock Pi 5 neue Maßstäbe für Single Board Computer. Er ist um Längen professioneller als ein RasPi 4 und auch erheblich leistungsfähiger. Das macht ihn zusammen mit der Lieferbarkeit zum fairen Preis aktuell unschlagbar. Der einzige Wermutstropfen besteht darin, dass man sich an einigen Stellen etwas umgewöhnen muss.

Dieser Artikel zeigt nur den Einstieg in die LXC-Welt, doch es gibt noch viel mehr zu erforschen und auszuprobieren. Es lohnt sich auf jeden Fall, hier ein wenig mehr Zeit in das Thema zu investieren. (tle/jlu)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 08/2023 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben