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.

  1. Klicken Sie in der Konsole IBM Cloud Externes Link-Symbol auf Bereitstellungen > Name.

  2. Klicken Sie auf Block Storage > Hosts.

  3. Klicken Sie auf Host erstellen.

  4. 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.

  5. Klicken Sie auf Weiter.

  6. Wählen Sie ein oder mehrere Volumes aus, um sie dem Host zuzuordnen.

  7. 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.

  1. Erstellen Sie eine Host-Instanz in Ihrer Datei main.tf, indem Sie das Argument ibm_sds_host resource verwenden. Die Host-Instanz im folgenden Beispiel heißt sds_host_instance.

     resource "ibm_sds_host" "sds_host_instance" {
       name = "demo-host"
       nqn = "<hostNQN>"
     }
    
  2. Nachdem Sie Ihre Konfigurationsdatei erstellt haben, initialisieren Sie die Terraform CLI. Weitere Informationen finden Sie unter Initialisierung von Arbeitsverzeichnissen.

    terraform init
    
  3. Bereitstellung der Ressourcen aus der Datei main.tf. Weitere Informationen finden Sie unter Bereitstellung der Infrastruktur mit Terraform.

    1. Führen Sie terraform plan aus, um einen Terraform-Ausführungsplan zu erstellen und eine Vorschau der vorgeschlagenen Aktionen zu erhalten.
       terraform plan
    
    1. Führen Sie terraform apply aus, um die im Plan definierten Ressourcen zu erstellen.
       terraform apply
    
  4. 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