Zum Inhalt springen

OpenStack

Das OpenStack der noris Sovereign Cloud (nSC) ermöglicht es Benutzern, Compute-, Storage- und Netzwerkressourcen zu provisionieren. Neben Block-Storage bieten wir auch S3 Object Storage an. Weitere Informationen finden Sie in der Dokumentation.

Dieser Abschnitt führt Sie durch die Schritte zum Erstellen, Zugreifen auf und Verwalten Ihrer ersten virtuellen Maschine mit der nSC.

Unser Dashboard in Nürnberg (“NBG”) ist hier verfügbar: dashboard.nbg.nsc.noris.cloud. Melden Sie sich mit dem in Ihrer Anmelde-E-Mail angegebenen Benutzer an, das Feld „Domain” bleibt leer.

Wenn Ihnen die Nutzung der CLI vertrauter ist, finden Sie die entsprechende Anleitung weiter unten.

Beachten Sie die Navigationsleiste rechts: Die den Schritten entsprechenden Menüpunkte sind mit den jeweiligen Nummern hervorgehoben.

  1. Netzwerk und Subnetz erstellen
  2. Router erstellen
  3. Security Group erstellen
  4. SSH-Keypair erstellen
  5. Compute-Instanz erstellen
  6. Instanz mit dem Internet verbinden
  7. Per SSH verbinden

Navigationsübersicht

Zunächst müssen wir ein (virtuelles) Netzwerk erstellen. Sowohl die Compute-Instanz als auch der Router werden Teil dieses Netzwerks.

Gehen Sie zu NetworkNetworks.

Networks-Menü

Klicken Sie auf Create Network.

Netzwerk erstellen

Geben Sie Ihrem Netzwerk einen Namen (in dieser Anleitung verwenden wir my_nsc_network). Dies ist Ihr lokales Netzwerk.

Netzwerkname

Geben Sie den Namen des Subnetzes ein und legen Sie einen Subnetzbereich fest. Falls Sie ein komplexeres Netzwerk-Setup konfigurieren müssen, finden Sie Dokumentation zu reinem IPv6 und Dual-Stack-Netzwerken.

Subnetz-Konfiguration

Lassen Sie Enable DHCP aktiviert und klicken Sie auf CREATE.

Subnetz erstellen

Als Zweites wird ein Router erstellt, der sowohl mit Ihrem Netzwerk als auch mit dem externen Netzwerk verbunden ist. Dies stellt die WAN-Konnektivität sicher.

Navigieren Sie zu NetworkRouters.

Routers-Menü

Klicken Sie auf CREATE ROUTER.

Router erstellen

Wählen Sie einen Namen und wählen Sie unter External Network das externe Netzwerk (das Public Network) aus. Schließen Sie mit einem Klick auf CREATE ROUTER ab.

Router-Erstellung bestätigt

Die virtuelle Router-Instanz wird nun angezeigt. Klicken Sie auf ihren Namen:

Router in der Liste

Navigieren Sie zum Tab Interfaces und klicken Sie auf ADD INTERFACE:

Interface hinzufügen

Wählen Sie im Dropdown unser lokales Netzwerk aus:

Lokales Netzwerk wählen

Überprüfen Sie Ihre Änderungen abschließend visuell in der Network Topology-Ansicht unter Network.

Netzwerktopologie

Standardmäßig ist eingehender Traffic beschränkt. Um SSH-Zugriff zu ermöglichen, erstellen und wenden wir eine Security Group an.

Navigieren Sie zu NetworkSecurity Groups.

Security-Groups-Menü

Klicken Sie auf CREATE SECURITY GROUP.

Security Group erstellen

Geben Sie der Security Group einen passenden Namen (und bei Bedarf eine Beschreibung) und klicken Sie auf CREATE SECURITY GROUP:

Name der Security Group

Klicken Sie auf ADD RULE.

Regel hinzufügen

Geben Sie die Portnummer 22 ein und klicken Sie auf ADD.

SSH-Regel Port 22

Die SSH-Authentifizierung erfolgt passwortlos per Schlüssel, daher müssen wir eine schlüsselbasierte Authentifizierung einrichten. Falls Sie bereits einen SSH-Schlüssel besitzen, passen Sie die Schritte entsprechend an, indem Sie statt CREATE KEY PAIR die Schaltfläche IMPORT PUBLIC KEY verwenden.

Navigieren Sie zu ComputeKey Pairs und klicken Sie auf CREATE KEY PAIR.

Key-Pairs-Menü

Wählen Sie einen passenden Namen und wählen Sie im Dropdown Key Type die Option SSH Key. Schließen Sie mit einem Klick auf CREATE KEY PAIR ab. Die Schlüsseldaten werden automatisch über Ihren Browser heruntergeladen:

Key Pair erstellen

Navigieren Sie zu ComputeInstances.

Instances-Menü

Klicken Sie auf LAUNCH INSTANCE.

Instanz starten

Wählen Sie einen Namen und klicken Sie auf NEXT:

Instanzname

In diesem Schritt können Sie bei Verwendung von diskless (disk=0) Flavors (empfohlen, siehe Instanz-Flavors unten) die Größe Ihres rbd_fast-Root-Volumes frei festlegen. Falls Sie stattdessen ein LUKS-Root-Volume verwenden möchten, siehe Erstellen einer VM mit LUKS-basiertem Root-Volume unten. Wählen Sie anschließend Ihr OS-Image und klicken Sie auf NEXT:

Image wählen

Der Flavor bestimmt, welche Ressourcen Ihre virtuelle Cloud-Maschine erhält. Wir empfehlen diskless Flavors (disk=0), um die Größenänderung von Root-Volumes nach der Ersterstellung zu ermöglichen. Wählen Sie passend zu Ihren Quotas und Host-Anforderungen:

Flavor wählen

Verknüpfen Sie die VM im Abschnitt „Networks” mit Ihrem Netzwerk my_nsc_network:

Netzwerk anhängen

Klicken Sie auf Security Groups. Wählen Sie die zuvor erstellte Security Group ssh_access:

Security Group wählen

Ihrer Compute-Instanz wird eine Floating IP zugeordnet. Diese wird aus dem vorbereiteten externen Netzwerk bezogen und macht Ihre Instanz öffentlich erreichbar. Solange Sie diese IP nicht freigeben, bleibt sie Ihnen zugeordnet und Ihrem OpenStack-Projekt zugewiesen.

Wählen Sie im Dropdown-Menü Ihrer Compute-Instanz ASSOCIATE FLOATING IP.

Floating IP zuordnen

Klicken Sie auf die Schaltfläche „+”.

Floating IP hinzufügen

Klicken Sie auf ALLOCATE IP:

IP zuweisen

Klicken Sie auf ASSOCIATE:

IP zuordnen

Jetzt möchten Sie sich mit Ihrer neuen Cloud-Instanz verbinden. In der Instances-Ansicht sollten Sie nun die Floating IP sowie das Key Pair sehen.

Instanzübersicht mit Floating IP

Wenn Sie Ihre Instanz auswählen, navigieren Sie zu Log. Dort sehen Sie den Fingerprint des Hosts. Sie können den Fingerprint des SSH-Schlüssels gerne mit Ihrer lokalen Kopie vergleichen:

Instanz-Konsolen-Log

Sie können sich nun mit Ihrer neuen VM verbinden.

Unser Dashboard in Nürnberg (“NBG”) ist hier verfügbar: dashboard.nbg.nsc.noris.cloud. Melden Sie sich mit dem in Ihrer Anmelde-E-Mail angegebenen Benutzer an, das Feld „Domain” bleibt leer.

OpenStack bietet eine leistungsstarke Kommandozeilen-CLI. Diese Anleitung zeigt an geeigneter Stelle Nutzungsbeispiele. Sie kann gemäß der offiziellen Dokumentation installiert werden.

Application Credentials sind erforderlich, um die genannten Clients zu nutzen, sie ermöglichen es Benutzern, Anmeldedaten speziell für ihre Anwendungen zu erstellen, ohne ihre persönlichen Benutzerpasswörter offenzulegen. Siehe unsere separate Anleitung: OpenStack Application Credentials.

Wir haben Code-Beispiele vorbereitet, die zeigen, wie man die nSC sowohl mit Terraform als auch mit Ansible integriert:

Diese Beispiele lassen sich auch auf kompatible Tools wie Pulumi übertragen.

Erstellen Sie ein Netzwerk, es dient als privates Netzwerk für Instanzen:

openstack network create examplenetwork

Erstellen Sie ein Subnetz namens examplesubnet, das mit examplenetwork verknüpft ist und den IP-Adressbereich 192.168.42.0/24 verwendet. Dieser Bereich definiert die im Subnetz verfügbaren IP-Adressen:

openstack subnet create examplesubnet --network examplenetwork --subnet-range 192.168.42.0/24

Erstellen Sie einen Router und legen Sie das externe Gateway fest, damit Instanzen im privaten Netzwerk über das external-Netzwerk als Gateway auf externe Netzwerke wie das Internet zugreifen können:

openstack router create examplerouter --external-gateway external

Fügen Sie das Subnetz-Interface zum Router hinzu, um das Subnetz mit der Router-Schnittstelle zu verknüpfen und das Routing zwischen dem Subnetz und dem externen Netzwerk zu ermöglichen:

openstack router add subnet examplerouter examplesubnet

Erstellen Sie eine Security Group namens examplesecurity, die den Netzwerkverkehr zu Instanzen kontrolliert:

openstack security group create examplesecurity

Fügen Sie eine Security-Group-Regel für SSH-Zugriff hinzu, die allen eingehenden TCP-Traffic auf Port 22 (SSH) zu Instanzen innerhalb der Security Group examplesecurity erlaubt (optional können Sie auch Quellnetzwerke einschränken):

openstack security group rule create --ingress --dst-port 22 --protocol tcp examplesecurity

Erstellen Sie ein SSH-Keypair namens examplekey für den Instanzzugriff, wobei der private Schlüssel lokal mit sicheren Berechtigungen in der Datei id_rsa.cloud gespeichert wird. Dieser Schlüssel wird für die SSH-Authentifizierung an der Instanz verwendet, alternativ können Sie auch Ihren bestehenden SSH-Schlüssel hochladen.

openstack keypair create examplekey > id_rsa.cloud; chmod 0600 id_rsa.cloud

Erstellen Sie eine virtuelle Maschine examplevm mit dem angegebenen Flavor (Ressourcengröße) und Image (Debian 12), verbinden Sie sie mit dem Netzwerk examplenetwork, weisen Sie ihr die Security Group examplesecurity sowie das Keypair examplekey zu und erstellen Sie ein rbd_fast-Root-Volume mit einer Größe von 50 GB. Wir empfehlen die Verwendung von diskless Flavors (wie in diesem Beispiel), um eine nachträgliche Größenänderung des Root-Volumes nach der Ersterstellung zu ermöglichen.

openstack server create --flavor SCS-1V-2 --image 'Debian 12' --key-name examplekey --network examplenetwork --security-group examplesecurity --boot-from-volume 50 examplevm

Für die Erstellung einer VM mit LUKS für das Root-Volume siehe unser Beispiel weiter unten.

Erstellen Sie eine Floating (öffentliche) IP aus dem externen Netzwerk, um den öffentlichen Zugriff auf die Instanz zu ermöglichen. Notieren Sie sich Ihre öffentliche IP, da Sie sie in den nächsten beiden Schritten benötigen:

openstack floating ip create external

Notieren und ordnen Sie die Floating IP der Instanz zu, damit diese von außen erreichbar wird:

openstack server add floating ip examplevm 213.95.55.34

Verbinden Sie sich per SSH mit der Instanz, unter Verwendung des zuvor erzeugten privaten Schlüssels und der Floating-IP-Adresse:

ssh -i id_rsa.cloud debian@213.95.55.34

Solange Sie diese IP nicht freigeben, bleibt sie Ihnen zugeordnet und Ihrem OpenStack-Projekt zugewiesen.

Herzlichen Glückwunsch, Sie haben nun Ihre erste VM bereitgestellt und genutzt! Sie können diese Getting-Started-Anleitung an dieser Stelle verlassen, falls die folgenden erweiterten Optionen für Ihren Anwendungsfall nicht relevant sind.

Ändern Sie die Größe der VM examplevm auf den Flavor SCS-2V-4:

openstack server resize --flavor SCS-2V-4 examplevm

Prüfen Sie, dass alles wie erwartet funktioniert, und geben Sie anschließend die alte Instanz frei:

openstack server resize confirm examplevm

Sie können mit folgendem Code ein Volume erstellen. Es hat 10 GB Größe und verwendet den Volume-Typ rbd_fast. Bitte wählen Sie dieselbe Availability Zone wie Ihre VM, da Volumes nur in derselben Zone angehängt werden können.

openstack volume create --size 10 --type rbd_fast --description "example-volume" --availability-zone <AZ> example-volume

Notieren Sie sich die Volume-ID, um sie an Ihren Server anzuhängen:

openstack server add volume examplevm <volume-id>

Neben Block-Storage-Volumes bietet die nSC auch objektbasierten Cloud-Storage über die S3-kompatible API sowie die OpenStack-Swift-API. Dokumentiert unter S3 Object Storage.

Beim Hochladen neuer Betriebssystem-Images empfehlen wir das QCOW2-Format, das für die meisten Distributionen verfügbar ist.

openstack image create --disk-format qcow2 --file ./your-image-file.qcow2 exampleimage

Zunächst müssen wir einen Load Balancer erstellen. openstack subnet list liefert die Subnetz-ID. In diesem Beispiel wählen wir den Provider OVN.

openstack loadbalancer create --name exampleloadbalancer --provider ovn --vip-subnet-id <subnet_id>

Notieren Sie sich die Load-Balancer-ID, um einen Listener zu erstellen:

openstack loadbalancer listener create --name examplevm-listener --protocol TCP --protocol-port 80 <loadbalancer_id>

Erstellen Sie einen Load-Balancer-Pool und wählen Sie Ihren Load-Balancing-Algorithmus:

openstack loadbalancer pool create --name examplevm-pool --lb-algorithm SOURCE_IP_PORT --listener examplevm-listener --protocol TCP --wait

Fügen Sie examplevm als Pool-Mitglied hinzu, ersetzen Sie <private-subnet-id> durch die Subnetz-ID, in der sich examplevm befindet, und <examplevm-ip> durch die IP-Adresse der VM examplevm:

openstack loadbalancer member create --subnet-id <private-subnet-id> --address <examplevm-ip> --protocol-port 80 --wait <example-pool-id>

Erstellen Sie einen Health-Monitor, um die Backend-Gesundheit zu prüfen:

openstack loadbalancer healthmonitor create --delay 5 --max-retries 3 --timeout 10 --type TCP --wait examplevm-pool

Um ihn über das Internet erreichbar zu machen, erstellen Sie eine Floating IP:

openstack floating ip create external

Anschließend kann sie für den VIP-Port des Load Balancers konfiguriert werden:

openstack floating ip set --port <vip_port_id> <floating_ip_address>

Prüfen Sie die verfügbaren Images und notieren Sie sich den passenden Image-Namen:

openstack image list

Erstellen Sie ein LUKS-Volume mit dem notierten Image, in diesem Beispiel „Debian 12”:

openstack volume create --image "Debian 12" --size 10 --type luks --description "example-luks" --availability-zone <AZ> example-luks

Anschließend kann der Server unter Verwendung des Volumes example-luks als Basis erstellt werden:

openstack server create --flavor SCS-1V-2 --volume example-luks --key-name examplekey --network examplenetwork --security-group examplesecurity example-luks

Führen Sie dieselben oben beschriebenen Befehle aus, ersetzen Sie jedoch create durch delete.

In OpenStack sind noch viele weitere spezialisierte Optionen verfügbar, deren vollständige Dokumentation den Rahmen dieser Anleitung sprengen würde. Ein paar Beispiele, was möglich ist:

  • Volume-Transfer: Übertragung eines Volumes an ein anderes Projekt.
  • Konsolen-Log: Anzeige des Konsolen-Logs einer VM.
  • DNS: Wenn Sie eine (Sub-)Domain an uns delegieren, können wir Einträge in dieser Zone konfigurieren, sprechen Sie uns an!
  • Server-Group: Gruppierung von VMs mit Affinitäts- oder Anti-Affinitätseigenschaften, um zu beeinflussen, wo sie auf physischen Hosts platziert werden.
  • Volume-Group: gemeinsame Verwaltung von Volumes.

OpenStack stellt grundlegende Metriken wie Instanz-Status, CPU-, RAM- und Speicherauslastung im Horizon-Dashboard unter Project → Compute → Instances bereit. Für eine umfassendere Überwachung Ihrer VMs empfehlen wir den Einsatz eigener Monitoring-Tools wie Prometheus und Grafana.

Für das Sichern von S3-Buckets siehe S3 Object Storage.

  1. Gehen Sie zu Project → Volumes → Volumes.
  2. Wählen Sie das gewünschte Volume, öffnen Sie das Aktionsmenü und klicken Sie auf Create Backup.
  3. Geben Sie einen Backup-Namen ein und legen Sie bei Bedarf eine andere Availability Zone fest.
  4. Nach Abschluss erscheint das Backup unter Project → Volumes → Backups mit dem Status “available”.

Um ein Volume in einer bestimmten Availability Zone zu sichern:

openstack volume backup create --name <BACKUP-NAME> --availability-zone <DESTINATION-ZONE-NAME> <VOLUME-NAME-or-ID>

Mit dem Flag --force können Sie bei Bedarf auch aktuell angehängte (in Nutzung befindliche) Volumes sichern. Für die vollständige Liste der Parameter verwenden Sie den Parameter --help.

Offizielle Dokumentation: docs.openstack.org/cinder/latest/admin/volume-backups.html

Ein Volume über das Webinterface wiederherstellen

Abschnitt betitelt „Ein Volume über das Webinterface wiederherstellen“
  1. Navigieren Sie zu Project → Volumes → Backups.
  2. Wählen Sie das wiederherzustellende Backup aus.
  3. Klicken Sie auf Restore Backup.
  4. Geben Sie einen Namen für das neue Volume an, das aus dem Backup erstellt wird.
  5. Wählen Sie optional eine Availability Zone, falls Ihre OpenStack-Umgebung dies unterstützt.
  6. Bestätigen Sie den Wiederherstellungsvorgang.
  7. Nach Abschluss erscheint das wiederhergestellte Volume unter Project → Volumes → Volumes und kann an eine Instanz angehängt werden.

Bei LUKS-Backups: Legen Sie vorab unter Project → Volumes → Volumes ein neues, leeres LUKS-Volume entsprechender Größe an und wählen Sie es als Restore-Ziel. Ohne diesen Schritt legt der Restore-Dialog das Zielvolume ohne Wahl des Volume-Typs neu an, sodass ein unverschlüsseltes rbd_fast-Volume entstünde, in das sich ein LUKS-Backup nicht wiederherstellen lässt (Status „Error Restoring”).

openstack volume backup restore <BACKUP-ID> <NEW-VOLUME-NAME-or-ID>

Hängen Sie das Volume anschließend an Ihre VM an.

Bei LUKS-Backups: Legen Sie vorab ein neues, leeres LUKS-Volume gleicher Größe als Ziel an (siehe Volume erstellen und anhängen sowie Erstellen einer VM mit LUKS-basiertem Root-Volume):

openstack volume create --size <GRÖSSE> --type luks --availability-zone <AZ> <NEUES-LUKS-VOLUME>

Geben Sie beim Restore den Namen oder die ID dieses Volumes als Ziel an. Dies zeigt, dass das Backup ebenfalls verschlüsselt ist: Ein Restore in ein unverschlüsseltes rbd_fast-Volume würde fehlschlagen und das Volume im Status „Error Restoring” verbleiben.

Eine VM wird in OpenStack als Instance bezeichnet. Als backup-relevante Boot-Quellen einer Instance sind ein Instance-Snapshot, ein Volume oder ein Volume-Snapshot zulässig. Ein Volume-Backup muss dafür zunächst in ein Volume wiederhergestellt werden.

  1. Navigieren Sie zu Project → Compute → Instances.
  2. Suchen Sie die gewünschte VM und klicken Sie im Aktionsmenü auf Create Snapshot.
  3. Geben Sie einen Namen für den Snapshot (das Backup) an und bestätigen Sie die Erstellung.
  4. Nach Abschluss finden Sie das Backup unter Project → Compute → Images mit dem Status “available”.

Um eine VM über die CLI zu sichern, führen Sie folgenden Befehl aus:

openstack server image create --name <SNAPSHOT-NAME> <VM-NAME-OR-ID>

Der Parameter --rotate kann nützlich sein, um eine bestimmte Anzahl an Backups vorzuhalten. Für die vollständige Liste der Parameter verwenden Sie den Parameter --help.

Um eine VM aus einem Snapshot wiederherzustellen, starten Sie gemäß der obigen VM-Erstellungsanleitung eine neue Instanz. Der einzige Unterschied besteht darin, dass der Image-Snapshot als Quelle der Instanz verwendet wird.

Bei einem LUKS-verschlüsselten Instance-Snapshot ist beim Wiederherstellen erneut LUKS als Volume-Typ auszuwählen. Dies zeigt, dass die Daten im Instance-Snapshot-Image ebenfalls verschlüsselt sind.

  • Testen Sie die Wiederherstellung Ihrer Backups regelmäßig, um Datensicherheit und Funktionsfähigkeit zu gewährleisten.
  • Das Überschreiben bestehender Volumes und VMs ist nicht möglich, planen Sie daher vorausschauend, wie die Umstellung auf die neu wiederhergestellten VMs und Volumes ablaufen soll.
  • Wenn ein Volume eingehängt und in Nutzung ist, können das Betriebssystem und laufende Anwendungen Daten im Arbeitsspeicher oder in Anwendungspuffern zwischenspeichern. Sichern oder snapshotten Sie ein Volume, während es noch eingehängt und aktiv ist, werden aktuelle Änderungen, die sich noch im Speicher befinden und noch nicht auf die Platte geschrieben wurden, nicht mit einbezogen, dies kann zu einem inkonsistenten oder „crash-consistent” Backup führen, ähnlich dem Ziehen des Steckers bei einem Server, was nach der Wiederherstellung zu Datenverlust oder -beschädigung führen kann. Wenn Ihr Anwendungsfall Sicherheit unter diesen Umständen erfordert, hängen Sie das Volume vor der Sicherung bitte aus, damit alle ausstehenden Änderungen sicher auf die Platte geschrieben werden, und/oder nutzen Sie spezifische Anwendungs-Backup-Werkzeuge, z.B. pgbackup.
  • Diese Backups sind einmalige Jobs. Um sie periodisch auszulösen, können Sie Application Credentials auf einem Server nutzen und diese Befehle per Cronjob ausführen.

Reverse DNS löst eine IP-Adresse zu einem Namen auf (PTR-Eintrag). In der nSC setzen Sie PTR-Einträge für IPv4-Floating-IPs selbst, etwa um einen Mail-Server betreiben zu können (viele Empfänger prüfen Forward Confirmed Reverse DNS, FCrDNS) oder um IP-Adressen in Logs besser lesbar zu machen. Für IPv6 wenden Sie sich an Ihre Ansprechperson bei noris.

  • Ihnen ist eine IPv4-Floating-IP zugewiesen (siehe Floating IPs zur Erreichbarkeit nutzen).
  • Der Forward-DNS-Eintrag des gewünschten Namens muss bereits auf die Floating-IP auflösen, damit Vorwärts- und Rückwärtsauflösung konsistent sind (FCrDNS).
  • Der PTR-Eintrag lässt sich nicht bereits bei der Erstellung der Floating-IP im Horizon setzen, sondern wird als separater Folgeschritt angelegt.
  1. Navigieren Sie zu Project → Network → DNS → Reverse DNS.
  2. Wählen Sie die gewünschte IPv4-Floating-IP aus der Liste.
  3. Klicken Sie auf Set.
  4. Tragen Sie in das Feld Domain Name den vollqualifizierten Domänennamen ein, inklusive abschließendem Punkt (z. B. mail.example.com.).
  5. Bestätigen Sie den Eintrag.

Ermitteln Sie zuerst die ID der Floating-IP:

openstack floating ip list

Setzen Sie den PTR-Eintrag. Der Name ist der FQDN mit abschließendem Punkt:

openstack ptr record set <floating_ip_id> mail.example.com.

Prüfen Sie den gesetzten Eintrag:

openstack ptr record show <floating_ip_id>

Entfernen lässt sich der Eintrag mit:

openstack ptr record unset <floating_ip_id>

Für IPv6-Adressen ist Reverse DNS kein Self-Service. Wenden Sie sich für IPv6-PTR-Einträge über ein Support-Ticket an Ihre Ansprechperson bei noris.

Prüfen Sie die Auflösung mit dig:

dig -x 213.95.55.34

Der PTR-Eintrag liegt in der in-addr.arpa-Zone und wird von der nSC automatisch publiziert. Die Propagation erfolgt nahezu augenblicklich.

  • FCrDNS: Viele Mail-Empfänger prüfen, ob Vorwärts- und Rückwärtsauflösung der Absender-IP übereinstimmen. Achten Sie darauf, dass der Forward-DNS des eingetragenen Namens auf dieselbe IP zeigt.
  • Adressfreigabe: Geben Sie die Floating-IP frei, fällt auch der PTR-Eintrag weg. Die IP selbst lässt sich danach nicht zurückholen (siehe Floating IPs zur Erreichbarkeit nutzen).
  • Höheres Volumen oder IPv6: Wenden Sie sich an Ihre Ansprechperson bei noris.

Passwortänderung im OpenStack-Dashboard schlägt fehl

Abschnitt betitelt „Passwortänderung im OpenStack-Dashboard schlägt fehl“

Der Versuch, das Passwort Ihres Benutzers in OpenStack zu ändern, schlägt fehl, da das gesamte Identity- und Access-Management (IAM) der nSC vom Identity Provider der noris Sovereign Cloud (Zitadel) unter id.nbg.nsc.noris.cloud übernommen wird. Wenn Sie Ihr Passwort ändern möchten, tun Sie dies in Ihren IAM-Benutzereinstellungen.

Eigenschaftrbd_fastLUKSSSD
Alternative NamencinderEphemeral SSD, NVMe
Durchschnittliche IOPS300030005000
Burst-IOPS100001000020000
Durchschnittlicher Durchsatz250 MB/s250 MB/s500 MB/s
Burst-Durchsatz500 MB/s500 MB/s1000 MB/s
TypBlock-StorageBlock-StorageBlock-Storage
ProvisionierungRoot-Volume, angehängtes Volume, k8s StorageClassRoot-Volume, angehängtes Volume, k8s StorageClassRoot-Volume
ZugriffsmusterReadWriteOnce (RWO)ReadWriteOnce (RWO)ReadWriteOnce (RWO)
VerfügbarkeitNetzwerkgebunden: innerhalb einer einzelnen ZoneNetzwerkgebunden: innerhalb einer einzelnen ZoneLokaler Storage: innerhalb desselben physischen Hosts
RedundanzZoneninternZoneninternGleicher Host
VerschlüsselungNeinStandardmäßig, starke VerschlüsselungNein
ZugriffskontrolleOpenStack-/Kubernetes-RollenOpenStack-/Kubernetes-RollenOpenStack-/Kubernetes-Rollen
BackupVom Kunden verwaltetVom Kunden verwaltetVom Kunden verwaltet
BeschreibungUnser Standard-Storage. Ceph-RBD-basiert und netzwerkgebunden. Bei ausreichender Abrufgröße können wir mehr als 15000 IOPS bereitstellen, bitte kontaktieren Sie uns.Wie rbd_fast, jedoch mit zusätzlicher automatisierter Verschlüsselung.Lokaler SSD-/NVMe-basierter Storage, nur als Root-Storage verfügbar. Bitte beachten Sie die Hinweise unten, bevor Sie Instanzen mit diesem Storage-Typ erstellen.

Neben Block-Storage bieten wir auch S3 Object Storage an, dokumentiert auf einer eigenen Seite.

Wir folgen dem Sovereign Cloud Stack Naming Standard.

Diese Flavors mit angehängtem Storage sind die empfohlenen Flavors für allgemeine Zwecke. Wir empfehlen die Verwendung von diskless (disk=0) Flavors, da diskful Flavors ihr Root-Volume nicht nachträglich in der Größe ändern können:

FlavorvCPUSpeicher (GiB)Disk (GiB)Disk-TypDurchschnitts-bandbreite (Gbit/s)Spitzen-bandbreite (Gbit/s)
SCS-1V-2120LUKS / rbd_fast0,5121,024
SCS-1V-2-5125rbd_fast0,5121,024
SCS-1V-4140LUKS / rbd_fast0,5121,024
SCS-1V-4-101410rbd_fast0,5121,024
SCS-1V-8180LUKS / rbd_fast0,5121,024
SCS-1V-8-201820rbd_fast0,5121,024
SCS-1V-161160LUKS / rbd_fast0,5121,024
SCS-1V-16-5011650rbd_fast0,5121,024
SCS-2V-4240LUKS / rbd_fast0,5121,024
SCS-2V-4-102410rbd_fast0,5121,024
SCS-2V-8280LUKS / rbd_fast0,5121,024
SCS-2V-8-202820rbd_fast0,5121,024
SCS-2V-162160LUKS / rbd_fast0,5121,024
SCS-2V-16-5021650rbd_fast0,5121,024
SCS-2V-322320LUKS / rbd_fast0,5121,024
SCS-2V-32-100232100rbd_fast0,5121,024
SCS-4V-8480LUKS / rbd_fast1,252,5
SCS-4V-8-204820rbd_fast1,252,5
SCS-4V-164160LUKS / rbd_fast1,252,5
SCS-4V-16-5041650rbd_fast1,252,5
SCS-4V-324320LUKS / rbd_fast1,252,5
SCS-4V-32-100432100rbd_fast1,252,5
SCS-4V-644640LUKS / rbd_fast1,252,5
SCS-4V-64-200464200rbd_fast1,252,5
SCS-8V-168160LUKS / rbd_fast1,252,5
SCS-8V-16-5081650rbd_fast1,252,5
SCS-8V-328320LUKS / rbd_fast1,252,5
SCS-8V-32-100832100rbd_fast1,252,5
SCS-8V-648640LUKS / rbd_fast1,252,5
SCS-8V-64-200864200rbd_fast1,252,5
SCS-16V-3216320LUKS / rbd_fast2,55
SCS-16V-32-1001632100rbd_fast2,55
SCS-16V-6416640LUKS / rbd_fast2,55
SCS-16V-64-2001664200rbd_fast2,55
SCS-16V-128161280LUKS / rbd_fast2,55
SCS-16V-128-50016128500rbd_fast2,55
SCS-32V-6432640LUKS / rbd_fast2,55
SCS-32V-64-2003264200rbd_fast2,55
SCS-32V-128321280LUKS / rbd_fast2,55
SCS-32V-128-50032128500rbd_fast2,55
SCS-32V-256322560LUKS / rbd_fast510
SCS-32V-256-1000322561000rbd_fast510
SCS-64V-128641280LUKS / rbd_fast510
SCS-64V-128-50064128500rbd_fast510
SCS-64V-256642560LUKS / rbd_fast510
SCS-64V-256-1000642561000rbd_fast510

Diese Flavors nutzen SSDs, die direkt in den VM-Hosts verbaut sind.

FlavorvCPUSpeicher (GiB)Disk (GiB)Disk-TypDurchschnitts-bandbreite (Gbit/s)Spitzen-bandbreite (Gbit/s)
SCS-1V-8-20s1820ssd1,252,5
SCS-2V-4-20s2420ssd1,252,5
SCS-2V-8-20s2820ssd1,252,5
SCS-2V-16-50s21650ssd1,252,5
SCS-4V-16-50s41650ssd1,252,5
SCS-4V-16-100s416100ssd1,252,5
SCS-4V-32-100s432100ssd2,55
SCS-4V-64-200s464200ssd2,55
SCS-8V-32-100s832100ssd2,55
SCS-8V-64-200s864200ssd2,55
SCS-16V-64-200s1664200ssd2,55
SCS-16V-128-500s16128500ssd2,55
SCS-32V-128-500s32128500ssd510
SCS-32V-256-1000s322561000ssd510
SCS-64V-256-1000s642561000ssd510

Diese Instanzen werden zu einem niedrigeren Preis angeboten und sollten nur für unkritische Workloads in Betracht gezogen werden.

FlavorvCPUSpeicher (GiB)Disk (GiB)Disk-TypDurchschnitts-bandbreite (Gbit/s)Spitzen-bandbreite (Gbit/s)
SCS-1L-1110LUKS / rbd_fast0,5121
SCS-1L-1-5115rbd_fast0,5121

Jede dieser Betriebssystem-Varianten wird aktuell gehalten und bis zum Ende ihres Sicherheits-Supports gepflegt:

  • AlmaLinux
  • Debian
  • Fedora
  • Rocky Linux
  • Ubuntu LTS
  • Ubuntu Minimal LTS

Pro Projekt gelten folgende Standard-Quotas. Bei Bedarf können Sie eine Erhöhung über Ihre technische Ansprechperson anfragen:

  • Instanzen: 10
  • Cores: 20
  • RAM: 51200 MiB
  • Volumes: 200
  • Volume-Gigabytes: 1000
  • Snapshots: 10
  • Backups: 10
  • Backup-Gigabytes: 1000
  • Floating IPs: 3
  • Netzwerke: 100
  • Subnets: 100
  • Router: 10
  • Ports: 500
  • Security Groups: 10
  • Security-Group-Regeln: 100
  • RBAC-Policies: 10
  • Key-Pairs: 100
  • Server-Groups: 10
  • Server-Group-Mitglieder: 10
  • Groups: 10

Pro Volume-Typ (rbd_fast, LUKS) sind Volumes, Gigabytes und Snapshots unbegrenzt (-1). Die maximale Größe eines einzelnen Volumes ist nicht beschränkt (-1).

Die Cloud-Punkte je Ressource und einen interaktiven Verbrauchsrechner finden Sie im Cloud-Punkte-Rechner.

Dieser Abschnitt sammelt Anwendungsbeispiele, die als Inspiration für die Umsetzung komplexerer Setups dienen können. Sie sind als Leitfaden gedacht und beleuchten fortgeschrittenere Themen nur ansatzweise, gehen Sie daher bei der Umsetzung ähnlicher Setups mit Vorsicht vor. Wir setzen voraus, dass Sie bereits wissen, wie die Tools zu konfigurieren sind, oder dass Sie der offiziellen Dokumentation folgen.

Dieses Beispiel zeigt, wie eine OPNsense-VM in der nSC als VPN-Gateway zwischen Ihren On-Premises-/internen Netzwerken und dem nSC-WAN-Netzwerk mittels IPSec betrieben wird (die IPSec-Konfiguration selbst ist hier nicht Thema). Die OPNsense-Firewall routet den Traffic zwischen zwei internen Netzwerken in der nSC und dem WAN-Netzwerk.

Erstellen Sie folgende Netzwerke in OpenStack:

  • WAN-Netzwerk opn-wan
    • CIDR: 192.168.100.0/24
    • Gateway: 192.168.100.1
  • Internes Netzwerk internal1
    • CIDR: 192.168.101.0/24
    • Option: “Disable Gateway”
  • Internes Netzwerk internal2
    • CIDR: 192.168.102.0/24
    • Option: “Disable Gateway”

Erstellen Sie anschließend einen Router:

  • Erstellen Sie einen OpenStack-Router, der:
    • external als externes Gateway-Netzwerk verwendet.
    • Ein Interface in opn-wan mit der Router-IP 192.168.100.1 besitzt.
  • Dieser Router stellt die Konnektivität von opn-wan zum Internet über das external-Netzwerk bereit.
  1. Laden Sie die OPNsense-ISO (.iso.bz2) von der offiziellen Projektseite herunter und entpacken Sie sie, sodass Sie eine .iso-Datei erhalten, zum Beispiel OPNsense-26.1-dvd-amd64.iso.
  2. Laden Sie die ISO als Image in OpenStack hoch:
    openstack image create --disk-format iso --file OPNsense-26.1-dvd-amd64.iso --property hw_rescue_device=disk --property hw_rescue_bus=virtio OPNsense
  3. Erstellen Sie eine VM mit diesem OPNsense-Image.
  4. Starten Sie die VM. Nach dem ersten Start hängen Sie die Netzwerke wie unten beschrieben an.

Hängen Sie die Netzwerke wie folgt an die OPNsense-VM an:

WAN:

  • Hängen Sie die VM an das Netzwerk opn-wan an.
  • Weisen Sie dem Port in opn-wan eine Floating IP zu, damit die OPNsense-GUI aus dem Internet erreichbar ist.
  • Deaktivieren Sie in den Port-Einstellungen der VM für den opn-wan-Port „Port Security”.
    • Warnung: Das Deaktivieren von Port Security schaltet die Security Groups für diesen Port ab. Sämtliche Filterung für diese Schnittstelle muss von OPNsense selbst übernommen werden.

Interne Netzwerke:

  • Hängen Sie die VM an internal1 an. Diese Schnittstelle erscheint als vtnet1. Deaktivieren Sie „Port Security” für diesen Port.
  • Hängen Sie die VM an internal2 an. Diese Schnittstelle erscheint als vtnet2. Deaktivieren Sie „Port Security” auch für diesen Port.

Nach dem Anhängen der Netzwerke sollte die VM drei Schnittstellen haben (Reihenfolge kann variieren, die Namen beziehen sich auf VirtIO-Geräte):

  • vtnet0: WAN (opn-wan)
  • vtnet1: internal1
  • vtnet2: internal2

Schnittstellen zuweisen:

  • Wählen Sie “Assign Interfaces”. Sie sollten drei VirtIO-Schnittstellen sehen: vtnet0, vtnet1, vtnet2 (VirtIO Networking Adapter).
  • Zuweisung: WANvtnet0, LANvtnet1, OPT1vtnet2.

IP-Adressen der Schnittstellen festlegen:

  • WAN: Verwenden Sie DHCP oder legen Sie eine statische IP fest: 192.168.100.2/24, Gateway 192.168.100.1, Nameserver 62.128.1.42 und 62.128.1.53.
  • LAN: IP 192.168.101.1/24 (Gateway für internal1).
  • OPT1: IP 192.168.102.1/24 (Gateway für internal2).

Nach diesem Schritt fungiert OPNsense als Standard-Gateway für die beiden internen Netzwerke.

Sobald IPs und Routen konfiguriert sind, sollte die OPNsense-Web-GUI unter https://<floating-ip>/ erreichbar sein (die an den WAN-Schnittstellen-Port in opn-wan angehängte Floating IP). Das bedeutet, sie ist aus dem Internet erreichbar, sichern Sie sie daher entsprechend ab.

Sie können nun:

  • Firewall-Regeln für WAN, LAN und OPT1 konfigurieren.
  • IPSec-Tunnel zu Ihrem entfernten Standort konfigurieren, sodass Traffic von internal1 und internal2 über das VPN zu Ihrem On-Premises-Netzwerk geroutet wird.