Einheit 4.2: Bilder, Datenträger und Cloud-Init
Einführung
Ein Server-Shell ist inaktiv, bis es eine Festplatte zum Booten und eine Möglichkeit zur Konfiguration beim ersten Booten hat. Zwei der Eigenschaften der Festplatte (ihr Speichertyp und ihre Verfügbarkeitszone) sind bei der Bereitstellung festgelegt und können später nicht mehr geändert werden, was die Festplatten-Layout-Entscheidung zu einer Design-Entscheidung anstelle einer Laufzeit-Entscheidung macht. Diese Einheit erweitert das Dedicated Core Server aus Einheit 4.1: es bindet Speicher ein, ordnet ein Boot-Bild zu und liefert cloud-init-Benutzerdaten, sodass der Server konfiguriert und nicht leer ankommt. Es wiederholt nicht die Server-Erstellung.
1. Block Storage-Ebenen und die Leistungsuntergrenze
IONOS Block Storage ist ein netzwerkangehängtes iSCSI-Block Storage, das aktiv-aktiv über zwei Speicher-Server mit RAID innerhalb einer Region repliziert wird (vier physische Kopien insgesamt). Es gibt drei Ebenen, und die Ebene ist eine der zwei Festplatten-Eigenschaften, die Sie später nicht ändern können, daher wird sie vorab pro Festplatte ausgewählt.
Die dokumentierte Leistung pro Volume ist die Grundlage für die Zuordnung der Ebene zum Zugriffsmuster:
| Speicherleistung | SSD Premium | SSD Standard |
|---|---|---|
| Lese-/Schreibgeschwindigkeit, sequenziell | 1 MB/s pro GB bei 1 MB Blockgröße | 0,5 MB/s pro GB bei 1 MB Blockgröße |
| Lese-Geschwindigkeit, vollständig zufällig | 75 IOPS pro GB bei 4 KB Blockgröße | 40 IOPS pro GB bei 4 KB Blockgröße |
| Schreib-Geschwindigkeit, vollständig zufällig | 50 IOPS pro GB bei 4 KB Blockgröße | 30 IOPS pro GB bei 4 KB Blockgröße |
| Speicherleistung | HDD-Speicher |
|---|---|
| Lese-/Schreibgeschwindigkeit, sequenziell | 200 MB/s bei 1 MB Blockgröße |
| Lese-/Schreibgeschwindigkeit, vollständig zufällig, regulär | 1.100 IOPS bei 4 kB Blockgröße |
| Lese-/Schreibgeschwindigkeit, vollständig zufällig, Burst | 2.500 IOPS bei 4 kB Blockgröße |
Zwei Fakten bestimmen die Entscheidung für die Ebene. Erstens ist die Leistung von HDD statisch und unabhängig von der Größe des Volume, während die Leistung von SSD mit der Größe des Volume skaliert: die pro-GB-Raten oben bedeuten, dass ein kleiner SSD ein langsamer SSD ist. Zweitens empfiehlt IONOS, SSD-Volumen von mindestens 100 GB zu buchen, um den vollen Nutzen zu erzielen; unter dieser Untergrenze ist die Leistung suboptimal, was der Grund dafür ist, dass SSD-Volumen unter ungefähr 100 GB nicht für Datenbank-Workloads empfohlen werden. Für ein SSD-Volume wird die Leistung vom System aus der Größe vorhergesagt, und für Volumen über 600 GB werden die pro-Volume-Raten auf die dokumentierten Maxima gedeckelt (ein SSD-Premium-Volume erreicht maximal 45.000 Lese-IOPS und 600 MB/s sequenziell pro VM, vorausgesetzt, es gibt genügend Kerne und RAM auf dem VM).
Die praktische Layout-Regel folgt direkt daraus. Verwenden Sie HDD für kalte oder sequenzielle Daten (Sicherungen, Archive, Logs, die für den Export vorbereitet werden), wo dessen größeunabhängige Durchsatzrate ausreichend ist und dessen Preis von 0,04 EUR pro GB pro Monat der günstigste ist. Verwenden Sie SSD Standard (0,07 EUR pro GB pro Monat) für allgemeine Workloads und SSD Premium (0,15 EUR pro GB pro Monat) für latenzsensitive und Datenbank-Festplatten, wobei Sie sicherstellen, dass jede Datenbank-Volume die 100-GB-Untergrenze erreicht oder überschreitet, damit es in das volle Leistungsbands liegt. Volumen reichen von 1 GiB bis 4096 GiB (4 TiB); ein VM kann bis zu 24 HDD- oder SSD-Standard-Volumen anhängen, aber nur 4 SSD-Premium-Volumen, was eine Einschränkung ist, die Sie vor dem Ausbau eines hochwertigen Daten-Layouts überprüfen sollten. Ebenen können auf einem VM gemischt werden, sodass ein häufiges Muster ein bescheidener SSD-Premium-Boot-/Daten-Festplatte plus HDD-Volumen für den Massenspeicher ist.
2. Bilder, Unveränderlichkeit und Regionsverriegelung
Eine Festplatte wird bootfähig, indem ein Bild mit ihr verknüpft wird: ein von IONOS bereitgestelltes öffentliches Bild (Linux-Distributionen, einschließlich Alma, Debian, Rocky und Ubuntu, sowie Microsoft-Bilder) oder Ihr eigenes privates Bild, das über FTPS hochgeladen wird. Private Images & Snapshots sind regionsverriegelt: Sie sind in der Region verwendbar, in der sie hochgeladen oder erstellt wurden, und IONOS erstellt keine redundante Kreuzregion für sie. Wenn ein Workload in zwei Regionen existieren muss, wird das Bild in jede Region hochgeladen oder kopiert; es gibt keine gemanagte Kreuzregion-Replikation von Bildern, auf die man zurückgreifen kann.
Zwei Speicher-Eigenschaften sind nach der Bereitstellung unveränderlich und müssen von Anfang an richtig sein:
- Speichertyp. Sie können einen Volume nicht zwischen HDD, SSD Standard und SSD Premium ändern, nachdem er bereitgestellt wurde. Eine Neukonfiguration bedeutet die Erstellung eines neuen Volume und die Migration von Daten.
- Verfügbarkeitszone. Die Zone des Volume ist bei der Erstellung festgelegt; die Auswahl von Auto ermöglicht es dem System, die optimale Zone zuzuweisen. Beachten Sie die Asymmetrie, die von Einheit 1.2 übernommen und in Modul 5 wiederholt wird: Block Storage bietet Zonen 1, 2, 3 und Auto, während Compute nur Zonen 1, 2 und Auto bietet. Block Storage-Zone 3 existiert; Compute-Zone 3 existiert nicht.
Die Größe des Volume kann im Gegensatz dazu nach der Bereitstellung erhöht werden (auch auf einem laufenden Server, wenn das Betriebssystem dies unterstützt), aber nie verringert. Die sichere Größenstrategie besteht also darin, konservativ zu beginnen und zu wachsen, anstatt eine Festplatte zu überprovisionieren, die nicht verkleinert werden kann. Snapshots, das VM-Ebene-Rollback-Mechanismus, sind ebenfalls regionslokal und nicht inkrementell: Ein Snapshot umfasst die gesamte zugewiesene Kapazität des Volume (eine 100-GB-Volume-Festplatte mit 10 GB Daten produziert immer noch ein 100-GB-Snapshot) und ist ein Rollback-Tool, kein Datenbank-Backup. Ihre Rolle in der Datenkontinuitätsebene wird in Modul 5 behandelt.
3. Cloud-Init für die Konfiguration beim ersten Start
Cloud-Init ist der Mechanismus, der einen frisch gestarteten Linux-Server von einem leeren Bild in einen konfigurierten Node-Server ohne manuellen Login verwandelt. Sie liefern Benutzerdaten bei der Erstellung und Cloud-Init wendet diese während des ersten Starts an. Die Fähigkeitsgrenze ist genau und sollte erwähnt werden: Cloud-Init wird vollständig auf allen öffentlichen IONOS-Linux-Bildern unterstützt und die SSH-Schlüsselinjektion gilt für öffentliche IONOS Cloud-Linux-Bilder. Es wird nicht auf Windows unterstützt. Für die Konfiguration beim ersten Start von Windows greifen Sie auf einen anderen Mechanismus zurück, nicht auf Cloud-Init.
Benutzerdaten werden als Shell-Skript oder als Cloud-Config-YAML geschrieben und IONOS Cloud-Init akzeptiert mehrere Formate, einschließlich eines Benutzerdatenskripts (beginnend mit #! oder Content-Type: text/x-shellscript), Cloud-Config-Daten (beginnend mit #cloud-config), einer Include-Datei, eines Upstart-Jobs, eines Cloud-Boothooks und Base64-codierter Payloads (die Cloud-Init decodiert und dann als einen der unterstützten Typen behandelt). Auf der Volume-Ressource werden die Cloud-Init-Benutzerdaten bei der Erstellung der Volume-Ressource festgelegt und sind danach unveränderlich, was konsistent ist mit der Behandlung der Konfiguration beim ersten Start als Teil der Bereitstellung und nicht als spätere Bearbeitung. Wenn Sie debuggen müssen, was Cloud-Init getan hat, finden Sie die Protokolle unter /var/log/cloud-init-output.log und /var/log/cloud-init.log.
Eine minimale Cloud-Config, die den FinCorp-Anwendungsbenutzer erstellt und ein Paket beim ersten Start installiert, veranschaulicht die Form; der architektonische Punkt ist, dass dies genau einmal, beim ersten Start, ausgeführt wird und auf der Volume-Ressource bei der Erstellung festgelegt ist:
#cloud-config
packages:
- nginx
runcmd:
- systemctl enable --now nginx
DCD Implementierungs-Anleitung
Diese Anleitung erweitert den in Einheit 4.1 bereitgestellten Dedicated Core Server. Sie bindet ein Boot-Volume an die richtige Speicherstufe, ordnet ein Linux-Bild zu und stellt cloud-init-Benutzerdaten bereit, sodass der FinCorp-Anwendungsserver konfiguriert wird. Die Voraussetzung ist die Server-Shell der Einheit 4.1 im FinCorp-VDC. Erstellen Sie den Server nicht neu.
Ziel: Speicher anhängen und konfigurieren; cloud-init-Benutzerdaten bereitstellen.
Schritte (im Data Center Designer):
- Im Arbeitsbereich wählen Sie den Server der Einheit 4.1 Dedicated Core Server. Ziehen Sie aus der Palette ein Speicherelement (HDD oder SSD) auf den Server, um es zu verbinden; der Server erweitert sich, um einen Speicherbereich anzuzeigen.
- Wählen Sie das neue Speicherelement, um den Inspector zu öffnen. Geben Sie ihm einen VDC-einzigartigen Namen.
- Wählen Sie den Speichertyp (für die FinCorp-App-Boot-/Datendiskette, SSD Premium). Dieser ist nach der Bereitstellung nicht mehr änderbar, daher bestätigen Sie den Tarif jetzt.
- Legen Sie die Verfügbarkeitszone fest (Auto lässt das System die optimale Zone zuweisen). Dies ist auch nach der Bereitstellung nicht mehr änderbar.
- Legen Sie die Größe fest, indem Sie ein SSD-Volume auf oder über der ~100-GB-Grenze für die volle Leistung halten. Die Größe kann später erhöht, aber nie verringert werden.
- Unter Bild, ordnen Sie ein Bild zu: Wählen Sie ein öffentliches IONOS-Linux-Bild oder wählen Sie Eigenes Bild für ein privates hochgeladenes Bild. Legen Sie das Root-/Administrator-Passwort (erforderlich für den Remote-Console-Zugriff) und/oder einen SSH-Schlüssel fest.
- Markieren Sie das Volume als Boot-Gerät (klicken Sie auf BOOT / Boot-Gerät festlegen), damit der Server von diesem startet.
- Erweitern Sie das cloud-init-/Benutzerdaten-Feld und fügen Sie das cloud-config- oder Benutzerdaten-Skript ein. Bestätigen Sie, dass das Bild cloud-init-Unterstützung meldet. Klicken Sie auf Änderungen bereitstellen, um sie anzuwenden.
Häufige Fehler:
- Auswahl des falschen Speichertyps oder der falschen Zone, beides ist nach der Bereitstellung nicht mehr änderbar. Eine Änderung der Stufe oder ein Wechsel der Zone bedeutet, den Volume neu zu erstellen, nicht zu bearbeiten.
- Platzieren einer Datenbank auf einer SSD-Volume mit weniger als 100 GB. Unter der Grenze läuft die SSD mit suboptimaler IOPS; halten Sie Datenbank-Volumes auf oder über 100 GB.
- Erwartung von cloud-init auf Windows. Cloud-init ist für öffentliche Linux-Bilder; SSH-Schlüsselinjektion ist auf öffentliche IONOS-Cloud-Linux-Bilder beschränkt.
- Annahme, dass ein Bild überall verfügbar ist. Private Images & Snapshots sind regionsgesperrt; laden Sie es in jede Region hoch, in der Sie es benötigen.
- Überdimensionierung einer Festplatte, um auf der sicheren Seite zu sein. Volumes können wachsen, aber nie schrumpfen, daher starten Sie konservativ und erhöhen Sie später.
Zusammenfassung
Ein Server wird nützlich, wenn er eine Festplatte und eine Erstkonfiguration nach dem ersten Booten hat. Block Storage ist in drei Leistungsstufen erhältlich, deren Leistung und Preis sich unterscheiden, wobei die Leistung von SSD je nach Größe skaliert und eine Mindestgröße von etwa 100 GB hat, die kleine SSDs (und daher kleine Datenbank-Festplatten) aus dem Vollleistungsband herausfallen lässt. Der Speichertyp und die Verfügbarkeitszone sind nach der Bereitstellung unveränderlich, während die Größe wachsen kann, aber nie schrumpfen, sodass die Festplatten-Layout-Entscheidung ein Design-Entscheid ist. Bilder sind regionsgebunden und es gibt keine gemanagte Cross-Region-Replikation, und cloud-init konfiguriert öffentliche Linux-Bilder beim ersten Boot (nicht Windows), das einmalig auf dem Volume bei der Erstellung festgelegt wird. Der Walkthrough erweitert den Server der Einheit 4.1 zu einer konfigurierten FinCorp-Anwendung Node.
Wichtige Punkte:
- Die Leistung von HDD ist unabhängig von der Größe; die Leistung von SSD skaliert mit der Größe, sodass ein kleiner SSD ein langsamer SSD ist und Datenbank-Volumes bei oder über etwa 100 GB liegen sollten.
- Der Speichertyp und die Verfügbarkeitszone sind nach der Bereitstellung unveränderlich; die Größe kann wachsen, aber nie schrumpfen.
- Block Storage hat Zonen 1, 2, 3 und Auto; die Rechenleistung hat nur Zonen 1, 2 und Auto.
- Images & Snapshots sind regionsgebunden, mit keiner gemanagten Cross-Region-Replikation.
- Cloud-init konfiguriert öffentliche Linux-Bilder beim ersten Boot (SSH-Schlüssel-Injektion auf öffentlichen IONOS Linux-Bildern); es wird nicht auf Windows unterstützt, und die Benutzerdaten sind auf dem Volume bei der Erstellung festgelegt.
Wichtige Begriffe:
- SSD-Leistungsboden: die Mindestgröße von etwa 100 GB, unter der ein SSD-Volume mit suboptimaler IOPS-Leistung läuft; der Grund, warum kleine Datenbank-Festplatten nicht empfohlen werden.
- Cloud-init: der Mechanismus für die Erstkonfiguration nach dem ersten Booten für öffentliche Linux-Bilder, der als Benutzerdaten bereitgestellt und einmalig beim Booten angewendet wird.
- Regionsgebundenes Bild: ein privates Bild oder Snapshot, das nur in der Region verwendet werden kann, in der es hochgeladen oder erstellt wurde.
Weitere Lektüre
- Einheit 4.1: Auswahl der Compute-Klasse (der Server, den diese Einheit erweitert).
- Einheit 5.7: DatenSchutz und Lebenszyklus (Schnappschüsse, Sicherung und PITR zu einer Kontinuitätsebene zusammengesetzt).
- Einheit 7.3: LeistungsTechnik (SpeicherLeistungsBoden als LatenzHebel).