Compute

Erstellen von VMs

Im Bereich "Compute" können Benutzer:innen in Apache CloudStack alle erstellten virtuellen Maschinen ihres Accounts anzeigen und verwalten:

Compute Instances

Allgemeine CloudStack-Hintergründe zum Instanz-Lifecycle finden Sie in der offiziellen Dokumentation About Working with Instances. Die verfügbaren Compute-, Disk- und Network-Offerings werden grundsätzlich durch die Administration bereitgestellt; Details zu diesem CloudStack-Konzept stehen unter Service Offerings, Disk Offerings, Network Offerings, and Templates.

Mit dem Button "Add Instance" können neue virtuelle Maschinen hinzugefügt werden. Nach dem Klick auf den Button öffnet sich das Formular zur Erstellung einer virtuellen Maschine. Die Benutzer:innen werden schrittweise durch die Erstellung der virtuellen Maschine geführt:

Compute Instances

Compute Instances

Compute Instances

Die einzelnen Schritte bieten folgende Interaktionsmöglichkeiten:

Select deployment infrastructure

Hier muss die Zone ausgewählt werden, in der die virtuelle Maschine erstellt wird. In Apache CloudStack entspricht eine Zone einem Datacenter bzw. Rechenzentrum, in dem die Cloud installiert ist. Da in SPARCI nur eine Zone definiert ist, muss hier nichts weiter ausgewählt werden.

Template/ISO

Auf den oberen Reitern können Benutzer:innen ein Template oder eine ISO-Datei für die Einrichtung der virtuellen Maschine auswählen. Ein Template ist eine bereits installierte virtuelle Maschine (z.B. Ubuntu 22.04 LTS mit installiertem SSH-Server), die für die Erstellung neuer virtueller Maschinen genutzt werden kann. Der Vorteil besteht darin, dass die Installation und Konfiguration des Betriebssystems für Benutzer:innen entfällt und die virtuelle Maschine nach dem Start direkt verwendet werden kann.

Bei offiziellen Ubuntu-Cloud-Templates gibt es kein allgemeines Standardpasswort wie ubuntu/ubuntu. Der übliche Zugriff erfolgt über SSH-Key-Authentifizierung und den Benutzer ubuntu, sofern kein anderer Benutzer per Cloud-Init angelegt wurde. SSH-Keys oder Benutzer sollten deshalb bereits bei der Erstellung der VM über die vorgesehenen Felder beziehungsweise über Cloud-Init konfiguriert werden.

Eine ISO-Datei verhält sich anders: Hier installieren Sie das Betriebssystem manuell über die Web-Konsole, ähnlich wie auf einem physischen Server. Dabei legen Sie Benutzername, Passwort, SSH-Server und Partitionierung selbst fest. Nach der Installation sollte die ISO wieder ausgehängt oder in der Bootreihenfolge nach hinten geschoben werden, damit die VM nicht erneut in den Installer startet.

SSH-Login bei Ubuntu-Templates

Bei VMs, die aus einem offiziellen Ubuntu-Template erstellt wurden, ist der SSH-Benutzername in der Regel ubuntu. Der CloudStack-Accountname, die Uni-Kennung oder der Name der VM sind nicht automatisch Linux-Benutzernamen innerhalb der VM. Ein häufiger Grund für Permission denied beim SSH-Login ist daher ein falscher Benutzername oder ein nicht korrekt hinterlegter SSH-Key.

Compute Offering

In diesem Schritt können Benutzer:innen die CPU- und Arbeitsspeicher-Konfiguration für die VM auswählen. Es gibt eine vordefinierte Auswahl, die vom Cloud-Administrator festgelegt wurde. Häufig wird eine Konfiguration mit 2 CPU-Kernen und 4096 MB Arbeitsspeicher gewählt, aber Benutzer:innen haben auch die Möglichkeit, eine individuelle Konfiguration mit 4 bis 24 CPU-Kernen und 16.000 bis 120.000 MB Arbeitsspeicher auszuwählen. Die Auswahl hängt von den Ressourcenlimits ab, die dem Benutzerkonto zugewiesen wurden und die vom Cloud-Administrator festgelegt werden können.

Ressourcenlimits

CPU-Kerne und Arbeitsspeicher werden auf das Ressourcenlimit des gesamten Accounts angerechnet. Bereits bestehende VMs können das Limit vollständig belegen, sodass keine weitere VM erstellt werden kann. Weitere Informationen finden Sie im Abschnitt Ressourcenlimits.

CPU-Leistung und passende Instanzwahl

Mehr vCPUs beschleunigen nur Workloads, die tatsächlich gut parallelisieren. Manche Anwendungen profitieren stärker von CPU-Takt, Cache, Speicherbandbreite oder I/O als von einer höheren Kernzahl. Wählen Sie GPU-Hosts nicht für reine CPU-Workloads aus, nur weil dort einzelne CPU-Eigenschaften attraktiver wirken; GPU-Hosts sollen für VMs mit tatsächlichem GPU-Bedarf frei bleiben.

Disk Size

Als Nächstes wählt der Benutzer:innen die Größe der Root-Disk aus. Es gibt drei vordefinierte Größen zur Auswahl oder Benutzer:innen können eine individuelle Größe (Custom Disk Size) eingeben. Häufig wird eine Festplattengröße von 20 GB gewählt. Weitere virtuelle Festplatten können nach der Erstellung der VM als Data Disks hinzugefügt werden. Alternativ kann auch die Größe des Root-Volumes angepasst werden.

Networks

In diesem Schritt wird das Netzwerk ausgewählt, aus dem der neuen virtuellen Maschine automatisch eine verfügbare IP-Adresse zugewiesen werden soll. Normalerweise erfordert dieser Schritt keine Interaktion, da es in der Cloud einen gemeinsamen IP-Adressbereich für VMs gibt.

Security Groups

Wie bereits erwähnt, wird einer IP-Adresse aus einem gemeinsam genutzten Adressbereich zugewiesen. Mit Security Groups können der Zugang zu virtuellen Maschinen gesteuert werden. Sofern nicht anders angegeben, sollte die Security Group "default" ausgewählt werden. Später in diesem Dokument wird diese Funktion genauer erläutert.

SSH keypairs

Benutzer:innen haben die Möglichkeit, einen SSH-Public-Key auszuwählen, der auf die virtuelle Maschine kopiert wird, um den SSH-Zugang zu ermöglichen. Bei offiziellen Ubuntu-Cloud-Templates ist das der normale Weg: Es gibt kein allgemeines Passwort, sondern der Login erfolgt mit dem passenden Private Key.

Wenn Sie eine VM aus einer ISO installieren, legen Sie Benutzername, Passwort und SSH-Konfiguration während der Installation selbst fest. In diesem Fall kann ein Public Key später manuell in der VM unter ~/.ssh/authorized_keys hinterlegt werden. Danach sollte der Login über den Private Key funktionieren.

Bei Template-basierten Ubuntu-Instanzen sollte der erste SSH-Test mit dem Template-Benutzernamen erfolgen, zum Beispiel:

ssh ubuntu@<vm-ip-adresse>

Falls der Login mit Permission denied fehlschlägt, prüfen Sie zuerst den verwendeten Benutzernamen, danach den ausgewählten Private Key, die hinterlegten Public Keys und die Security Group für eingehenden SSH-Traffic.

Beginner-Checkliste für die erste Ubuntu-VM

Für die erste VM ist meistens ein offizielles Ubuntu-Template einfacher als eine ISO-Installation:

  1. Wählen Sie ein Ubuntu-Template aus, wenn Sie keine manuelle Betriebssysteminstallation benötigen.
  2. Wählen Sie eine Root-Disk, die groß genug für Betriebssystem, Updates, Pakete und Arbeitsdaten ist. Zusätzliche Data Disks können später angehängt werden.
  3. Hinterlegen Sie einen SSH-Public-Key oder konfigurieren Sie Benutzer per Cloud-Init.
  4. Wählen Sie eine Security Group, die eingehenden SSH-Zugriff aus dem benötigten Netz erlaubt.
  5. Starten Sie die VM und verbinden Sie sich bei Ubuntu-Templates typischerweise mit ssh ubuntu@<vm-ip-adresse>.
  6. Prüfen Sie bei Login-Problemen zuerst Benutzername, Private Key, Security Group und ob die VM vollständig gestartet ist.

Wenn während der Arbeit in der VM No space left on device erscheint, ist das kein Login-Problem. Dann ist in der VM ein Dateisystem voll. Vergrößern Sie bei Bedarf das Volume in CloudStack und erweitern Sie anschließend Partition und Dateisystem innerhalb der VM.

Advanced Mode

In diesem Schritt muss grundsätzlich nichts konfiguriert werden. Hier kann beispielsweise der Bootmodus von BIOS auf UEFI geändert werden, falls erforderlich.

Details

Unter "Name (Optional)" wird empfohlen, einen Namen für die VM zu vergeben. Andernfalls wird ein generischer Name verwendet.

Starten von VMs

Nach Abschluss der Konfiguration kann die virtuelle Maschine über "Launch Virtual Machine" gestartet werden. Das Fenster schließt sich, und die Übersicht der virtuellen Maschinen wird geöffnet. Nach dem Start der virtuellen Maschine kann eine Detailansicht geöffnet werden, indem auf den Namen der VM geklickt wird. In dieser Detailansicht können verschiedene Einstellungen an der VM vorgenommen werden. Die Konsole kann ebenfalls über einen Button gestartet werden (rot markierter Bereich):

Compute Instances

Die Konsole kann auch über die VM-Listenansicht gestartet werden. Die Benutzer:innen können auf die drei Punkte neben dem VM-Namen klicken, um weitere Funktionen aufzurufen, darunter auch die Konsole (rot markiert):

Compute Instances

Nach dem Klick auf den Button wird ein neuer Tab mit der Web-Konsole der VM geöffnet:

Compute Instances

Die Konsole ermöglicht es, Text über die Zwischenablage in die VM zu übertragen.

Leider unterstützt die Konsole keine 3D-Beschleunigung oder bidirektionale Zwischenablage von Dateien oder Texten zwischen der lokalen Maschine und der VM. In der Regel verwenden die Benutzer:innen jedoch den SSH-Zugriff auf die VM, um diese Funktionen nutzen zu können. Wenn die VM zum ersten Mal über ein ISO-Image installiert wird, müssen Benutzer:innen zwangsläufig die Web-Konsole für die Installation nutzen, damit unter anderem ein SSH-Server installiert werden kann.

Neben dem Starten der Konsole bietet die Detailansicht für virtuelle Maschinen weitere Funktionen, die rechts oben in der Ansicht ausgewählt werden können. Die verfügbaren Funktionen variieren je nach Zustand der VM ("Stopped" oder "Running").

In der folgenden Tabelle sind die einzelnen Funktionen in der Detailansicht für VMs aufgelistet:

Edit Instance Details

Hier können der Name, der Anzeigename, der OSType und die Instance Group geändert werden. Die Schaltfläche "Dynamically Scalable" funktioniert nur in XenServer- und VMWare-Umgebungen, nicht in KVM-Umgebungen wie der SPARCI-Cloud:

Compute Instances

Stop Instance/Start Instance

Hiermit können Sie eine VM starten oder ausschalten.

Reboot Instance

Hiermit können Sie eine VM neu starten.

Reinstall VM

nur bei Status „Running“

Mit dieser Funktion können Sie eine VM komplett neu installieren. Dabei werden alle bisherigen Daten auf dem Root-Volume gelöscht.

Take VM Snapshot

nur bei Status „Running“

Diese Funktion ermöglicht das Speichern der Konfigurationsdaten der VM, wie Compute Offering, NICs und Ressourceneinstellungen. Es wird kein Backup der Festplatten der VM erstellt.

Compute Instances

Durch Klicken auf das Volume wird die Detailansicht des Volumes geöffnet, wo Sie einen Snapshot des Volumes erstellen können. Die VM muss dazu ausgeschaltet sein.

Attach ISO

Mit dieser Funktion können Sie eine ISO-Datei an eine VM anschließen, vor allem für Neuinstallationen relevant.

Change Affinity

nur bei Status "Stopped"

Hier können Sie die VM einer Affinity Group hinzufügen.

Scale VM

nur bei Status "Stopped"

Mit dieser Funktion können Sie die VM hinsichtlich der zugewiesenen CPU-Kerne und der Größe des Arbeitsspeichers anpassen:

Compute Instances

Die Konfiguration erfolgt über die Auswahl des Compute Offerings.

Reset SSH key

Hier können Sie der VM neue SSH-Keys zuordnen.

Destroy Instance

Löscht die VM.

Hinweis

Die Instanz wird zunächst in einen Papierkorb verschoben. Nach einer bestimmten Zeitspanne wird die VM automatisch endgültig gelöscht. Das Erstellen einer VM mit dem gleichen Namen direkt nach dem Löschen schlägt daher fehl.

Instance Groups, SSH-Keys und Affinity Groups

Neben der Installation von virtuellen Maschinen stehen im Menübereich "Compute" weitere Funktionen zur Verfügung. Die Erstellung von "Instance Groups" ermöglicht eine logische Gruppierung von Instanzen. Dies ist besonders nützlich, wenn eine große Anzahl von VMs strukturiert verwaltet werden soll.

Im Gegensatz dazu definieren "Affinity Groups" eine Gruppe von virtuellen Maschinen, die entweder auf demselben Host gestartet werden sollen oder nicht. Dies ist beispielsweise bei Instanzen mit vGPUs sinnvoll, die nur auf den KI-Servern von SPARCI gestartet werden können.

Mit der Funktion "SSH Key Pairs" können Sie einen auf Ihrem lokalen Rechner erstellten Public Key hochladen, der zur Authentifizierung auf einer erstellten VM verwendet werden kann. Alternativ können Sie auch einen Private Key und einen Public Key direkt über die GUI erstellen:

Compute Instances

Der Private Key wird von Apache CloudStack nur vorübergehend erstellt und muss dann auf Ihren lokalen Rechner kopiert werden.

Bei offiziellen Ubuntu-Templates ist normalerweise kein Passwortlogin vorgesehen. Wenn SSH-Key-Injection oder Cloud-Init nicht wie erwartet funktioniert, kann die CloudStack-Web-Konsole für die Fehlersuche genutzt werden. Bei ISO-basierten Installationen legen Sie die lokalen Zugangsdaten während der Installation selbst fest und können Public Keys anschließend manuell in ~/.ssh/authorized_keys hinterlegen.