Ressourcenmodelle
Bare-Metal-API-Konzepte
Bare-Metal-Dienste in der API: Zustände, verändernde Vorgänge und Endpunkte für Strom, Start, Fernzugriff und Bandbreite.
Ein Bare-Metal-Dienst ist ein Ihrer Organisation zugewiesener physischer Server. Das Dienstobjekt beschreibt den Rechner (hardware: CPU, memoryGb, Laufwerke und capabilities), seinen Standort (region: Rechenzentrums-code, Stadt, Einrichtung und Rack), Netzwerkports (interfaces), Adressen (primaryIpv4, primaryIpv6), zuletzt installiertes Betriebssystem (operatingSystem), bootMode und monatliches Datenverkehrskontingent (bandwidth.includedEgressGb). Bare-Metal-Dienst abrufen liefert dies vollständig, dazu den laufenden operation und den zuletzt abgeschlossenen als lastOperation. Bare-Metal-Dienste auflisten liefert die Organisationsdienste seitenweise ohne interfaces, state oder Vorgänge; ?datacenter= beschränkt auf ein Rechenzentrum, angegeben als Code wie ams1 oder ID. Bare-Metal-Dienst aktualisieren ändert name, den die nächste Bereitstellung auch zum Hostnamen macht.
Zustände
Die Sperrfunktionen der Konsole und ihren Schutzumfang beschreibt Server sperren und entsperren.
state beantwortet eine Frage: Kann der Server gerade einen neuen Vorgang annehmen?
state | Bedeutung |
|---|---|
ACTIVE | Kein Vorgang läuft; eine Bereitstellung oder ein Test kann starten. |
OPERATION_IN_PROGRESS | Eine Bereitstellung, Datenträgerlöschung oder ein Test läuft; operation zeigt welchen. |
SUSPENDED | Der Dienst ist ausgesetzt und nimmt keine Vorgänge an. |
DELETING | Der Dienst wird nach einer Löschanfrage ausgeschaltet und entfernt. |
Treffen mehrere zu, hat DELETING Vorrang, dann SUSPENDED, dann OPERATION_IN_PROGRESS.
isLocked steht neben dem Zustand und ändert ihn nicht. Sperren und Entsperren setzen bzw. entfernen es; beide benötigen organization.baremetal.lock und antworten mit 204. Ein gesperrter Server lehnt Bereitstellungen, Hardwaretests, deren Abbruch, Strombefehle, BMC-Resets, Segmentänderungen, Verbinden und Trennen virtueller Netzwerke sowie seine eigene Löschung jeweils mit 422 und SERVICE_LOCKED ab. Umbenennen, iPXE und Startmodus, Konsolensitzungen und virtuelle Medien funktionieren weiter.
isSuspended wird bei ausgesetztem Dienst true. Ein ausgesetzter Server lehnt dieselben Bereitstellungen, Tests, Abbrüche, Strombefehle, BMC-Resets, Segmentänderungen und Netzwerkverbindungen wie ein gesperrter ab, zusätzlich Umbenennen, iPXE- und Startmodusänderungen, Konsolensitzungen, virtuelle Medien, Hardwarewerte und die Listen bereitstellbarer Images und Anwendungen. Jeder Aufruf antwortet bis zur Wiederherstellung mit 422 SERVICE_SUSPENDED. Ein Server mit DELETING lehnt dieselben Aufrufe mit 422 SERVICE_DELETING ab.
Vorgänge
Installation, Datenträgerlöschung und Tests laufen als Vorgänge vom Typ DEPLOYMENT, WIPE oder TEST. Je Server läuft nur einer; ein zweiter Start antwortet mit 409 und OPERATION_IN_PROGRESS. Nur unsere Mitarbeiter starten Löschvorgänge; die Vorgangshistorie lässt sie aus.
Eine Bereitstellung installiert ein Betriebssystem aus Betriebssystemimages auflisten. Die Bereitstellungsanfrage nennt es als image anhand von id oder slug und akzeptiert sshKeyIds oder password (mit optionalem username), eine raidVariant (NONE, RAID0, RAID1, RAID5, RAID6 oder RAID10; wählen Sie einen Wert aus den raidVariants des Images) und optional cloudInit. RAID-Level für dedizierte Server vergleicht RAID 0, 1, 5 und 10 nach nutzbarer Kapazität und Ausfallsicherheit. Eine Bereitstellung kann statt eines einfachen Images eine Anwendung installieren: application, eine id oder ein slug aus Anwendungen auflisten, ersetzt image. Eine Anfrage mit beiden oder keinem wird mit einem Detail DEPLOY_SELECTION_INVALID abgelehnt. applicationMetadata ist ein JSON-Objekt mit den im metadataSchema der Anwendung beschriebenen Einstellungen. Ersten Server bereitstellen listet weitere Prüfungen auf.
Ein Hardwaretest prüft den Rechner ohne Installation und ohne Datenzerstörung; die Daten auf den Datenträgern bleiben erhalten. Hardwaretest ausführen benötigt vier Schalter: isCpuIncluded, isMemoryIncluded, isDiskIncluded und isSmartIncluded. Optionale Einstellungen steuern die Phasen: cpuDurationSeconds, memoryDurationSeconds und diskDurationSeconds (je 10 bis 1800), cpuWorkers (1 bis 1024), memoryPercent (1 bis 95), diskBlockSize (512 Byte bis 16m in Schritten von 512, in Byte oder mit Suffix k bzw. m) und diskIoDepth (1 bis 256). Ohne Angabe gilt der Standard des Testwerkzeugs; Werte außerhalb des Bereichs antworten mit 400 VALIDATION_ERROR. Das fertige Testergebnis steht als details.report in Vorgang abrufen: isPassed für den Gesamtlauf und jede Phase sowie Datenträgerdurchsatz in Byte pro Sekunde.
Eine Bereitstellung durchläuft CREATED, dann WAITING_FOR_PXE_BOOT, nach Meldung des Installationsprogramms CHECKED_IN und endet mit COMPLETED, FAILED oder CANCELLED. Bei Anwendungsinstallationen folgt nach der Betriebssystemphase zusätzlich IN_PROGRESS. Behandeln Sie alle außer den drei Endzuständen als laufend und verfolgen Sie progress und lastProgressMessage. Vorgänge auflisten ist die Serverhistorie mit neuesten zuerst; Vorgang abrufen liefert einen Lauf mit allen gesendeten Fortschrittsmeldungen.
Vorgang abbrechen stoppt eine laufende Bereitstellung oder einen Test anhand seiner id und antwortet mit 204. Ein bereits abgeschlossener oder während des Speicherns des Abbruchs endender Vorgang antwortet mit 422 ENTITY_STATE_INVALID. Eine ID ohne passende Bereitstellung oder Test dieses Servers antwortet mit 404.
Strom und Hardwarewerte
Strombefehl senden akzeptiert ON, FORCE_OFF, GRACEFUL_SHUTDOWN, FORCE_RESTART und GRACEFUL_RESTART. Reguläre Befehle fordern das Betriebssystem zum Herunterfahren auf; erzwungene greifen direkt in die Stromversorgung ein. Der aktuelle Stromstatus ist powerState bei Dienststatus abrufen. Der Verwaltungscontroller meldet zudem Netzteilzustand, Temperatursensoren und Stromverbrauch. BMC zurücksetzen startet den Controller neu, wenn er nicht mehr antwortet. Strom und Fernzugriff führt durch die Aufrufe.
Fernzugriff
Eine Konsolensitzung öffnet Bildschirm und Tastatur des Servers im Browser, etwa bei einem im Netzwerk nicht antwortenden Betriebssystem oder für eine BIOS-Einstellung. Virtuelle Medien binden ein ISO aus Ihrer ISO-Bibliothek als Serverlaufwerk ein, um ein nicht in der Imageliste vorhandenes Installationsprogramm zu starten. Nicht jeder Verwaltungscontroller bietet alles; hardware.capabilities listet die Fähigkeiten des Servers:
| Fähigkeit | Funktion |
|---|---|
KVM | Konsolensitzung im Browser. |
IPMI | Konsolensitzung über die eigene Weboberfläche des Controllers mit dafür ausgestellten Zugangsdaten. |
VIRTUAL_MEDIA | ISO einbinden. |
METRICS_POWER, METRICS_THERMALS, METRICS_PSU | Stromverbrauch, Temperatur- und Lüfterwerte sowie Netzteilwerte. |
Ein vom Controller nicht unterstützter Aufruf antwortet mit 422 OPERATION_NOT_SUPPORTED_PLATFORM; die Cloud-Konsole deaktiviert den Tab.
Startmodus und iPXE
bootMode ist LOCAL_DISK oder PXE. Der Modus bestimmt die Netzwerke auf den Serverports. Startmodus setzen ist deshalb eine Netzwerkänderung: Der Aufruf antwortet während der Switch-Neukonfiguration mit 202; networkChange bei Dienststatus abrufen verfolgt sie bis zur Umsetzung. Startet ein Server im Modus PXE über das Netzwerk, ermittelt das Bereitstellungssystem die MAC-Adresse des startenden Ports und liefert das für den Dienst gespeicherte iPXE-Skript. Eigene iPXE-Skripte zeigt die Aufrufe.
Netzwerkports
interfaces listet die Serversegmente auf. Ein Segment ist ein Netzwerkport oder zwei über LACP gebündelte Ports (bondMode LACP) und führt die damit verbundenen virtuellen Netzwerke. Sein name ist der bei der Bereitstellung auf den Host geschriebene Schnittstellenname: der Portname oder bei einem Bond bond0, bond1 usw. Seine segmentId ist die ID für Segment-, Verbindungs- und Adressaufrufe; jeder Port unter physicalInterfaces trägt dieselbe segmentId.
Netzwerkfähigkeiten abrufen listet jeden Port mit seiner segmentId und die Bonding-Gruppen, eine je Switch-Paar, jeweils mit den interfaceIds der daran verkabelten Ports und deren Anzahl als maxBondSize. Segment erstellen akzeptiert interfaceIds: Ein Port ergibt ein einfaches Segment, zwei einen Bond. Die beiden Bond-Ports stammen aus einer Gruppe, liegen auf verschiedenen Switches des Paares und verwenden dieselbe Portnummer. Drei oder mehr Ports oder zwei, die diese Regeln verletzen, antworten mit 422 und einem Detail BOND_INVALID. Ein bereits segmentzugehöriger Port antwortet mit 409 INTERFACE_IN_USE; löschen Sie zuerst dieses Segment. Beide Aufrufe reihen eine Switch-Änderung ein und werden während eines Vorgangs oder einer anderen Netzwerkänderung abgelehnt. Das Verbinden virtueller Netzwerke mit Segmenten beschreibt Virtuelle Netzwerke einrichten.
Datenverkehr
bandwidth.includedEgressGb ist das monatliche Dienstkontingent; null bedeutet unbegrenzt. Es zählt nur ausgehenden Verkehr in dezimalen Gigabyte zu 10^9 Byte. Mehrverbrauch wird nicht gedrosselt. Bei einem stündlichen Abonnement wird jedes GB über dem Tarifkontingent berechnet.
Gemessen wird auf den Switchports ab Erstellung des Dienstes. Bandbreitennutzung abrufen meldet die letzten 30 Tage von periodStart bis periodEnd: egressBytes und ingressBytes für das ganze Fenster und pro Tag unter daily, daneben das Kontingent als includedEgressBytes. Bandbreitenzeitreihe abrufen liefert Raten in Bit pro Sekunde für den gesamten Server und je Port zwischen start und end (standardmäßig letzte 24 Stunden) mit stepSeconds von mindestens 60. Ein Schritt mit zu vielen Punkten im Zeitfenster antwortet mit 422 und einem Detail BANDWIDTH_STEP_INVALID. In beiden bedeutet null, dass für diesen Tag oder Schritt nichts gemessen wurde; 0 ist ein gemessener Wert.
Dienst entfernen
Bare-Metal-Dienst löschen benötigt organization.billing.subscriptions.manage und antwortet mit 202 ohne Body. Die Serverabrechnung endet sofort. Der Server zeigt dann state DELETING, während er ausgeschaltet wird und seine Netzwerke abgebaut werden. Nach Abschluss antwortet Bare-Metal-Dienst abrufen mit 404. Erneutes Löschen während DELETING ändert nichts. Ist der Server der letzte seines Abonnements (Dienstabonnement abrufen nennt es), werden dessen Adressblöcke nach Entfernung des Servers freigegeben; Abrechnung beschreibt Abonnements.
Eine Löschung wird abgelehnt, wenn:
| Status | code | Ursache |
|---|---|---|
422 | SERVICE_LOCKED | Der Server ist gesperrt. |
422 | SUBSCRIPTION_NOT_ACTIVE | Das abrechnende Abonnement wurde gekündigt. |
422 | TERMINATION_BLOCKED | Es ist der letzte Server des Abonnements und einer seiner IP-Blöcke versorgt einen anderen Dienst. |
422 | SUBSCRIPTION_SERVER_TRANSFERRED | Unsere Mitarbeiter haben den Server in eine andere Organisation verschoben. |
404 | ENTITY_NOT_FOUND | Kein Abonnement Ihrer Organisation rechnet diesen Server ab. |
Nach Entfernung des Servers werden seine Datenträger sicher gelöscht. Der Rechner wird erst nach erfolgreicher Löschung anderen angeboten. Kein Endpunkt macht eine Löschung rückgängig; kopieren Sie benötigte Daten daher vor dem Senden herunter.