Resourcemodellen

Bare Metal-concepten in de API

Dedicated servers in de API: hun toestanden, wijzigende bewerkingen en endpoints voor voeding, opstarten, externe toegang en bandbreedte.

Een dedicated-serverdienst is één fysieke server toegewezen aan uw organisatie. Het dienstobject beschrijft de machine (hardware: CPU, memoryGb, schijven en capabilities), locatie (region: de code van het datacenter, stad, faciliteit en rack), netwerkpoorten (interfaces), adressen (primaryIpv4, primaryIpv6), laatst geïnstalleerde besturingssysteem (operatingSystem), bootMode en maandelijkse verkeersbundel (bandwidth.includedEgressGb). Dedicated server opvragen geeft dit alles terug met de lopende operation en de laatst afgeronde als lastOperation. Dedicated servers opvragen geeft organisatiediensten per pagina terug zonder interfaces, state of bewerkingen; ?datacenter= beperkt tot één datacenter, genoemd met code zoals ams1 of ID. Dedicated server bijwerken wijzigt name, die bij de volgende implementatie ook de hostnaam wordt.

Toestanden

Zie Een server vergrendelen en ontgrendelen voor de consolebediening en wat de vergrendeling beschermt.

state beantwoordt één vraag: kan de server nu een nieuwe bewerking aannemen?

stateBetekenis
ACTIVEEr loopt niets, dus een implementatie of test kan starten.
OPERATION_IN_PROGRESSEr loopt een implementatie, wisbewerking of test; operation toont welke.
SUSPENDEDDe dienst is opgeschort en accepteert geen bewerkingen.
DELETINGDe dienst wordt na een verwijderaanvraag uitgeschakeld en verwijderd.

Als meerdere van toepassing zijn, heeft DELETING voorrang, daarna SUSPENDED en daarna OPERATION_IN_PROGRESS.

isLocked staat naast de toestand en verandert die niet. Vergrendelen en ontgrendelen zetten en wissen dit veld. Beide vereisen organization.baremetal.lock en antwoorden met 204. Een vergrendelde server weigert implementaties, hardwaretests, annulering van beide, voedingsopdrachten, BMC-resets, segmentwijzigingen, aansluiten en loskoppelen van virtuele netwerken en zijn eigen verwijdering, telkens met 422 en SERVICE_LOCKED. Hernoemen, iPXE en opstartmodus, consolesessies en virtuele media blijven werken.

isSuspended wordt true wanneer de dienst is opgeschort. Een opgeschorte server weigert dezelfde implementaties, tests, annuleringen, voedingsopdrachten, BMC-resets, segmentwijzigingen en netwerkaansluitingen als een vergrendelde, plus hernoemen, iPXE- en opstartmoduswijzigingen, consolesessies en virtuele media, hardwaremetingen en lijsten van installeerbare images en applicaties. Elk antwoordt met 422 SERVICE_SUSPENDED totdat de dienst is hersteld. Een server met DELETING weigert dezelfde verzameling met 422 SERVICE_DELETING.

Bewerkingen

Installeren, wissen en testen verlopen als bewerkingen van type DEPLOYMENT, WIPE of TEST. Er loopt er maar één tegelijk per server: een tweede starten antwoordt met 409 en OPERATION_IN_PROGRESS. Alleen onze medewerkers starten wisbewerkingen; de bewerkingsgeschiedenis laat ze weg.

Een implementatie installeert een besturingssysteem uit OS-images opvragen. De implementatieaanvraag noemt dit als image via id of slug en accepteert sshKeyIds of password (met optionele username), een raidVariant (NONE, RAID0, RAID1, RAID5, RAID6 of RAID10; kies een waarde uit de raidVariants van het image) en een optioneel cloudInit-document. RAID-niveaus voor dedicated servers vergelijkt RAID 0, 1, 5 en 10 op bruikbare capaciteit en fouttolerantie. Een implementatie kan een applicatie installeren in plaats van een kaal image: application, een id of slug uit Applicaties opvragen, vervangt image. Een aanvraag met beide of geen van beide wordt geweigerd met detail DEPLOY_SELECTION_INVALID. applicationMetadata is een JSON-object met instellingen beschreven door het metadataSchema van de applicatie. Uw eerste server implementeren noemt de overige controles.

Een hardwaretest belast de machine zonder iets te installeren en is niet destructief: gegevens op de schijven blijven behouden. Hardwaretest uitvoeren vereist vier schakelaars: isCpuIncluded, isMemoryIncluded, isDiskIncluded en isSmartIncluded. Optionele instellingen regelen de fasen: cpuDurationSeconds, memoryDurationSeconds en diskDurationSeconds (elk 10 tot 1800), cpuWorkers (1 tot 1024), memoryPercent (1 tot 95), diskBlockSize (512 bytes tot 16m in stappen van 512, geschreven in bytes of met achtervoegsel k of m) en diskIoDepth (1 tot 256). Weggelaten instellingen behouden de standaard van het testhulpmiddel; waarden buiten bereik antwoorden met 400 VALIDATION_ERROR. Het resultaat van een afgeronde test staat in details.report bij Bewerking opvragen: isPassed voor de hele test en elke fase, met schijfdoorvoer in bytes per seconde.

Een implementatie toont CREATED, vervolgens WAITING_FOR_PXE_BOOT, daarna CHECKED_IN zodra het installatieprogramma zich heeft gemeld, en eindigt met COMPLETED, FAILED of CANCELLED. Een applicatie-implementatie doorloopt na de OS-fase ook IN_PROGRESS. Behandel elke andere toestand dan die drie eindtoestanden als nog lopend en volg progress en lastProgressMessage. Bewerkingen opvragen is de servergeschiedenis, nieuwste eerst; Bewerking opvragen geeft één uitvoering met alle verstuurde voortgangsmeldingen.

Bewerking annuleren stopt een lopende implementatie of test via de id en antwoordt met 204. Een al afgeronde bewerking of een die afrondt terwijl de annulering wordt opgeslagen antwoordt met 422 ENTITY_STATE_INVALID. Een ID die geen implementatie of test van deze server noemt antwoordt met 404.

Voeding en hardwaremetingen

Voedingsopdracht versturen accepteert ON, FORCE_OFF, GRACEFUL_SHUTDOWN, FORCE_RESTART en GRACEFUL_RESTART. Nette opdrachten vragen het besturingssysteem af te sluiten; geforceerde grijpen direct in op de voeding. De huidige voedingsstatus is powerState bij Dienststatus opvragen. De beheercontroller rapporteert ook voedingsgezondheid, temperatuursensoren en stroomverbruik. BMC resetten herstart de controller wanneer die niet meer antwoordt. Voeding en externe toegang beschrijft elke aanroep.

Externe toegang

Een consolesessie opent scherm en toetsenbord van de server in een browser, voor een OS dat niet via het netwerk antwoordt of voor een BIOS-instelling. Virtuele media koppelen een ISO uit uw ISO-bibliotheek als schijf op de server om een installatieprogramma te starten dat de imagelijst niet bevat. Niet elke beheercontroller biedt alles; hardware.capabilities vermeldt wat die van de server ondersteunt:

MogelijkheidWat werkt
KVMConsolesessie in de browser.
IPMIConsolesessie via de eigen webinterface van de controller met daarvoor uitgegeven inloggegevens.
VIRTUAL_MEDIAEen ISO koppelen.
METRICS_POWER, METRICS_THERMALS, METRICS_PSUStroomverbruik, temperatuur- en ventilatormetingen en voedingsmetingen.

Een aanroep die de controller niet ondersteunt antwoordt met 422 OPERATION_NOT_SUPPORTED_PLATFORM; de cloudconsole schakelt het tabblad uit.

Opstartmodus en iPXE

bootMode is LOCAL_DISK of PXE. De modus bepaalt welke netwerken de serverpoorten vervoeren. Opstartmodus instellen is daarom een netwerkwijziging: de aanroep antwoordt met 202 terwijl switches worden aangepast, en networkChange bij Dienststatus opvragen volgt de wijziging totdat die is toegepast. Start een server in PXE-modus via het netwerk, dan zoekt het inrichtingssysteem het MAC-adres van de opstartpoort op en levert het bij die dienst opgeslagen iPXE-script. Aangepaste iPXE-scripts toont de aanroepen.

Netwerkpoorten

interfaces vermeldt de serversegmenten. Een segment is één netwerkpoort of twee via LACP gebundelde poorten (bondMode LACP) en vervoert de aangesloten virtuele netwerken. De name is de interfacenaam die een implementatie op de host schrijft: de eigen poortnaam of bond0, bond1 enzovoort voor een bond. De segmentId is de ID voor segment-, aansluit- en adresaanroepen; elke poort onder physicalInterfaces heeft dezelfde segmentId.

Netwerkmogelijkheden opvragen vermeldt elke poort met zijn segmentId en bondinggroepen, één per switchpaar, elk met interfaceIds van de naar dat paar bekabelde poorten en hun aantal als maxBondSize. Segment maken accepteert interfaceIds: één poort vormt een gewoon segment, twee een bond. De twee bondpoorten komen uit één groep, liggen op verschillende switches van het paar en gebruiken hetzelfde poortnummer op beide. Drie of meer poorten of twee die een van die regels overtreden antwoorden met 422 en detail BOND_INVALID. Een al aan een segment gekoppelde poort antwoordt met 409 INTERFACE_IN_USE; verwijder dat segment eerst. Beide aanroepen plannen een switchwijziging en worden geweigerd tijdens een bewerking of andere netwerkwijziging. Het aansluiten van virtuele netwerken op segmenten staat in Virtuele netwerken instellen.

Verkeer

bandwidth.includedEgressGb is de maandbundel van de dienst; null betekent onbeperkt. De bundel telt alleen uitgaand verkeer in decimale gigabytes van 10^9 bytes. Verkeer daarboven wordt niet afgeknepen. Bij een uurabonnement wordt elke GB boven de configuratiebundel gefactureerd.

Verkeer wordt vanaf het aanmaken van de dienst op de switchpoorten gemeten. Bandbreedtegebruik opvragen rapporteert de laatste 30 dagen, van periodStart tot periodEnd: egressBytes en ingressBytes voor het hele venster en per dag onder daily, naast de bundel als includedEgressBytes. Bandbreedtetijdreeks opvragen geeft snelheden in bits per seconde voor de hele server en per poort tussen start en end (standaard de laatste 24 uur) met stepSeconds van minstens 60. Een stap die te veel punten oplevert antwoordt met 422 en detail BANDWIDTH_STEP_INVALID. Bij beide betekent null dat er die dag of stap niets is gemeten; 0 is een gemeten waarde.

Een dienst verwijderen

Dedicated server verwijderen vereist organization.billing.subscriptions.manage en antwoordt met 202 zonder body. Facturering van de server stopt direct. De server toont state DELETING terwijl hij wordt uitgeschakeld en netwerken worden afgebroken. Zodra dit klaar is antwoordt Dedicated server opvragen met 404. Opnieuw verwijderen tijdens DELETING verandert niets. Is de server de laatste op zijn abonnement (Dienstabonnement opvragen noemt het), dan worden de adresblokken na verwijdering vrijgegeven; Facturering beschrijft abonnementen.

Een verwijdering wordt geweigerd wanneer:

StatuscodeOorzaak
422SERVICE_LOCKEDServer is vergrendeld.
422SUBSCRIPTION_NOT_ACTIVEHet facturerende abonnement is opgezegd.
422TERMINATION_BLOCKEDHet is de laatste server en een IP-blok van het abonnement bedient een andere dienst.
422SUBSCRIPTION_SERVER_TRANSFERREDOnze medewerkers hebben de server naar een andere organisatie verplaatst.
404ENTITY_NOT_FOUNDGeen abonnement van uw organisatie factureert deze server.

Na verwijdering worden de schijven veilig gewist. De machine wordt pas weer aangeboden als dit succesvol is afgerond. Geen route maakt verwijderen ongedaan; kopieer benodigde gegevens dus voordat u de aanvraag verstuurt.