Einen Host erstellen
Damit Ihre Server oder Anwendungen Blockspeicher-Volumes zuordnen und darauf zugreifen können, können Sie über die Benutzeroberfläche, CLI, API oder Terraform einen Host erstellen.
Ein Host bezeichnet ein System, beispielsweise einen Server oder eine virtuelle Maschine ( VM ), das über das Protokoll „ NVMe-oF “ eine Verbindung zu Speichervolumes herstellt. Indem Sie einen Host erstellen und ihm Volumes zuordnen, ermöglichen Sie Ihren Workloads, Daten auf diesen Volumes über sichere, verwaltete Verbindungen zu lesen und zu schreiben.
Bevor Sie einen Host anlegen, müssen Sie den Initiator „ NVME-oF “ konfigurieren. Dieser „ NVME-oF “-Initiator ist erforderlich, um ein Volume einem Host zuzuordnen. Siehe „ NVMe-oF-Initiatoren konfigurieren “. Notieren Sie sich nach der Konfiguration des „ NVME-oF “-Initiators die „ host nqn “.
Host in der Benutzeroberfläche erstellen
Verwenden Sie die Konsole IBM Cloud, um einen Host für eine Bereitstellung zu erstellen.
-
Klicken Sie in der Konsole IBM Cloud
auf Bereitstellungen > Name.
-
Klicken Sie auf Block Storage > Hosts.
-
Klicken Sie auf Host erstellen.
-
Geben Sie einen eindeutigen Hostnamen und die Hostkennung Host NQN ein.
Der Hostname muss im gesamten Einsatz eindeutig sein. Wenn Sie z. B. zwei Hosts erstellen, die sich in derselben Einrichtung befinden und denselben Namen haben, wird die Fehlermeldung "Hostname existiert bereits" angezeigt.
-
Klicken Sie auf Weiter.
-
Wählen Sie ein oder mehrere Volumes aus, um sie dem Host zuzuordnen.
-
Klicken Sie auf Erstellen. Die Seite "Gastgeber" wird aktualisiert und der neue Gastgeber wird am Anfang der Liste der Gastgeber angezeigt.
Hosts über die Befehlszeile erstellen
Führen Sie den folgenden Befehl aus, um Hosts mithilfe der Befehlszeilenschnittstelle (CLI) aus einem Host-Vorlageobjekt zu erstellen.
Host ohne PSK (Pre-shared key) erstellen
Erstellen Sie einen Host ohne PSK-Verschlüsselung, wenn bereits Sicherheitsmaßnahmen auf Netzwerkebene vorhanden sind. Hierbei wird das Standardprotokoll „ NVMe-oF “ ohne Verschlüsselung auf der Transportebene verwendet. Geben Sie nur den Hostnamen und den NQN an:
ic sds host-create --name host-1 --nqn nqn.2014-06.org:9345 --url $sds_endpoint
HOST_ONE=$(ibmcloud sds hosts --output json | jq -r '.Hosts[] | select(.Host_Name=="host-1").Host_ID')
ic sds host --host-id $HOST_ONE
Host mit PSK (Pre-shared key) erstellen
Erstellen Sie einen Host mit PSK-Verschlüsselung, um „ TLS “ für die Verbindung „ NVMe-oF “ zu aktivieren. Dies wird für Produktionsumgebungen empfohlen, die erhöhte Sicherheitsanforderungen stellen. Das PSK-Format lautet „ NVMeTLSkey-1:01:<base64-encoded-key>: “, wobei der Schlüssel ein 32-Byte-Wert vom Typ „ base64-encoded “ ist:
ic sds host-create --name host-2 --nqn nqn.2014-06.org:9345 --psk "NVMeTLSkey-1:01:YzrPElk4OYy1uUERriPwiiyEJE/+J5ckYpLB+5NHMsR2iBuT:" --url $sds_endpoint
HOST_TWO=$(ibmcloud sds hosts --output json | jq -r '.Hosts[] | select(.Host_Name=="host-2").Host_ID')
Gültige Hostnamen dürfen eine Kombination aus Kleinbuchstaben, Ziffern (a–z, 0–9) und dem Bindestrich (-) enthalten und bis zu 63 Zeichen lang sein. Hostnamen müssen mit einem Kleinbuchstaben beginnen. Bindestriche dürfen nicht am Anfang oder
Ende des Namens verwendet werden. Hostnamen müssen in der gesamten Infrastruktur eindeutig sein. Wenn Sie beispielsweise zwei Hosts mit demselben Namen in derselben Bereitstellung erstellen, wird der Fehler Host name already exists angezeigt.
Beispiel:
ibmcloud software-defined-storage host-create \
--nqn "nqn.2014-08.org.nvmexpress:uuid:29181642-300c-a1e2-497a-172017002122" \
--name "dummy-host" \
--volume-mappings '[{"volume": {"id": "r134-2ca809e8-3e63-44bc-916e-1eae49302aae"}}]'
--url $sds_endpoint
...
Host_ID r134-0dcd5d2d-07db-4457-ab0b-1fc3eef28c66
Host_Name dummy-host
Host_NQN nqn.2014-08.org.nvmexpress:uuid:29181642-300c-a1e2-497a-172017002122
PSK_Enabled false
Created_At 2025-02-28T10:05:30.000Z
Volume_Mappings
Namespace_ID -
Namespace_UUID -
Status pending
Subsystem_NQN -
Volume_ID r134-2ca809e8-3e63-44bc-916e-1eae49302aae
Volume_Mapping_ID r134-95b99022-3cf7-42be-9c18-5b6e3fa30bfa
Volume_Name dividend-abet-getting-presume
Die maximal unterstützte NQN-Länge beträgt 223 Bytes.
Bei $sds_endpoint handelt es sich um eine Umgebungsvariable, die auf den Endpunkt verweist, der Ihnen bei der Konfiguration von IBM Storage Ceph as a Service mitgeteilt wurde. Es ist im URL-Formular. Beispiel: https://sds-cephaas.<cephaas-instance-id>.software-defined-storage.appdomain.cloud:{port number}/v1.
Sie können URL einmal einstellen, so dass Sie es nicht bei jedem Befehl angeben müssen. Eine Anleitung zum Einrichten von URL finden Sie unter "Config commands ".
Sie können auch den Alias sds als Alternative zu software-defined-storage und hstc als Alternative zu host-create für die CLI-Aktionen verwenden.
Hosts über die API erstellen
Sie können Hosts erstellen, indem Sie die Host-REST-APIs direkt aufrufen. Weitere Informationen finden Sie in der API-Referenz unter IBM Storage Ceph as a Service.
Stellen Sie sicher, dass Sie die Variablen für das IAM-Token und den API-Endpunkt definiert haben. Stellen Sie außerdem sicher, dass Sie die E-Mail-Adresse des Hosts nqn griffbereit haben. Der Host nqn kann vom NVMe-Initiator
abgerufen werden, wie unter "Über Volume-Host-Zuordnungen " beschrieben.
Senden Sie eine Anfrage an POST /hosts, um einen Host anzulegen. Geben Sie eine obligatorische nqn, eine optionale volume_id und host name an. volume_id und host name sind optional.
curl -X POST $sds_endpoint/hosts\
-H "Authorization: $IAM_TOKEN" \
-H "IBM-API-Version: 2025-02-01" \
-d '{
"volume_mappings": [
{
"volume": {
"id": "r134-b05d91af-6393-4652-aada-13fd4fdbd065"
}
},
{
"volume": {
"id": "r134-601e431b-22ab-47a1-b0c1-411049b432a0"
}
}
],
"name": "host1",
"psk": "NVMeTLSkey-1:01:5CBxDU8ejK+PrqIjTau0yDHnBV2CdfvP6hGmqnPdKhJ9tfi2:",
"nqn": "nqn.2014-08.org.nvmexpress:uuid:29181642-300c-a1e2-497a-172017002149"}'
Bei $sds_endpoint handelt es sich um eine Umgebungsvariable, die auf den Endpunkt verweist, der Ihnen bei der Konfiguration von IBM Storage Ceph as a Service mitgeteilt wurde. Es ist im URL-Formular. Beispiel: https://sds-cephaas.<cephaas-instance-id>.software-defined-storage.appdomain.cloud:{port number}/v1.
Sie können URL einmal einstellen, so dass Sie es nicht bei jedem Befehl angeben müssen. Eine Anleitung zum Einrichten von URL finden Sie unter "Config commands ".
Gültige Hostnamen dürfen eine Kombination aus Kleinbuchstaben, Ziffern (a–z, 0–9) und dem Bindestrich (-) enthalten und bis zu 63 Zeichen lang sein. Hostnamen müssen mit einem Kleinbuchstaben beginnen. Bindestriche dürfen nicht am Anfang oder
Ende des Namens verwendet werden. Hostnamen müssen in der gesamten Infrastruktur eindeutig sein. Wenn Sie beispielsweise zwei Hosts mit demselben Namen in derselben Bereitstellung erstellen, wird der Fehler Host name already exists angezeigt.
Eine erfolgreiche Antwort sieht folgendermaßen aus:
{
"id": "r134-63b6133f-cb3b-4d0b-a5e8-90821a40d64d",
"name": "host1",
"nqn": "nqn.2014-08.org.nvmexpress:uuid:29181642-300c-a1e2-497a-172017002149",
"created_at": "2025-02-27T10:55:07Z",
"href": "$sds_endpoint/hosts/r134-63b6133f-cb3b-4d0b-a5e8-90821a40d64d",
"volume_mappings": [
{
"id": "r134-dfb2c915-4788-4cb3-b1d5-8e00ee09e780",
"status": "pending",
"href": "$sds_endpoint/hosts/r134-63b6133f-cb3b-4d0b-a5e8-90821a40d64d/volume_mappings/r134-dfb2c915-4788-4cb3-b1d5-8e00ee09e780",
"volume": {
"name": "seventy-banked-pry-punt",
"id": "r134-b05d91af-6393-4652-aada-13fd4fdbd065"
},
"host": {
"name": "host1",
"nqn": "nqn.2014-08.org.nvmexpress:uuid:29181642-300c-a1e2-497a-172017002149",
"id": "r134-63b6133f-cb3b-4d0b-a5e8-90821a40d64d"
}
},
{
"id": "r134-b557c11f-6c90-48e5-93b3-deac047e815c",
"status": "pending",
"href": "$sds_endpoint/hosts/r134-63b6133f-cb3b-4d0b-a5e8-90821a40d64d/volume_mappings/r134-b557c11f-6c90-48e5-93b3-deac047e815c",
"volume": {
"name": "new-vol",
"id": "r134-601e431b-22ab-47a1-b0c1-411049b432a0"
},
"host": {
"name": "host1",
"nqn": "nqn.2014-08.org.nvmexpress:uuid:29181642-300c-a1e2-497a-172017002149",
"id": "r134-63b6133f-cb3b-4d0b-a5e8-90821a40d64d"
"psk_enabled": true
}
}
]
}
Erstellen von Hosts mit Terraform
Um einen Host mit Terraform zu erstellen, müssen Sie die host nqn zur Hand haben. Eine Anleitung zum Auffinden von host nqn finden Sie unter Konfigurieren von NVMe-oF initiators.
-
Erstellen Sie eine Host-Instanz in Ihrer Datei
main.tf, indem Sie das Argumentibm_sds_hostresource verwenden. Die Host-Instanz im folgenden Beispiel heißtsds_host_instance.resource "ibm_sds_host" "sds_host_instance" { name = "demo-host" nqn = "<hostNQN>" } -
Nachdem Sie Ihre Konfigurationsdatei erstellt haben, initialisieren Sie die Terraform CLI. Weitere Informationen finden Sie unter Initialisierung von Arbeitsverzeichnissen.
terraform init -
Bereitstellung der Ressourcen aus der Datei
main.tf. Weitere Informationen finden Sie unter Bereitstellung der Infrastruktur mit Terraform.- Führen Sie
terraform planaus, um einen Terraform-Ausführungsplan zu erstellen und eine Vorschau der vorgeschlagenen Aktionen zu erhalten.
terraform plan- Führen Sie
terraform applyaus, um die im Plan definierten Ressourcen zu erstellen.
terraform apply - Führen Sie
-
Beantworten Sie die Frage "Möchten Sie diese Aktionen durchführen?" mit "Ja", um mit der Erstellung des Volumes fortzufahren.
Siehe die Beispielausgabe für Details.
ibm_sds_host.sds_host_instance: Creating... ibm_sds_host.sds_host_instance: Creation complete after 1s [id=r134-e8b82dc5-e081-422e-9709-a44ec63f56af] Apply complete! Resources: 1 added, 0 changed, 0 destroyed. Outputs: ibm_sds_host = { "created_at" = "2025-03-10T14:58:33.000Z" "href" = "$sds_endpoint/hosts/r134-e8b82dc5-e081-422e-9709-a44ec63f56af" "id" = "r134-e8b82dc5-e081-422e-9709-a44ec63f56af" "name" = "demo-host" "nqn" = "nqn.2014-06.org:9345" "sds_endpoint" = tostring(null) "volume_mappings" = tolist([]) }
Bei $sds_endpoint handelt es sich um eine Umgebungsvariable, die auf den Endpunkt verweist, der Ihnen bei der Konfiguration von IBM Storage Ceph as a Service mitgeteilt wurde. Es ist im URL-Formular. Beispiel: https://sds-cephaas.<cephaas-instance-id>.software-defined-storage.appdomain.cloud:{port number}/v1.
Nächste Schritte
-
Erstellen Sie weitere Host-Ressourcen und verbinden Sie diese dann mit den Initiatoren von NVME-oF.