Crear un anfitrión
Para que sus servidores o aplicaciones puedan asignar y acceder a volúmenes de almacenamiento en bloque, puede crear un host mediante la interfaz de usuario, la CLI, la API o Terraform.
Un host es un sistema, como un servidor o una máquina virtual ( VM ), que se conecta a volúmenes de almacenamiento mediante el protocolo NVMe-oF. Al crear un host y asignarle volúmenes, permite que sus cargas de trabajo lean y escriban datos en esos volúmenes a través de conexiones seguras y gestionadas.
Antes de crear un host, debes configurar el iniciador de « NVME-oF ». Este iniciador de NVME-oF es necesario para asignar un volumen a un host. Consulte « Configuración de los iniciadores de NVMe-oF ». Una vez configurado el iniciador de NVME-oF, anota la dirección host nqn.
Creación de un host en la interfaz de usuario
Utilice la consola IBM Cloud para crear un host para una implementación.
-
En la consola de IBM Cloud.
, haga clic en Implementaciones > Enlace de nombre.
-
Haga clic en Block Storage > Anfitriones.
-
Pulse Crear host.
-
Introduzca un nombre de host único y el identificador de host Host NQN.
El nombre de host debe ser único en toda la implementación. Por ejemplo, si crea dos hosts que se encuentran en el mismo despliegue y tienen el mismo nombre, aparecerá el error "El nombre del host ya existe".
-
Pulse Siguiente.
-
Seleccione uno o más volúmenes para asignarlos al host.
-
Pulse Crear. La página de anfitrión se actualiza y el nuevo anfitrión aparece al principio de la lista de anfitriones.
Creación de hosts desde la CLI
Para crear hosts mediante la interfaz de línea de comandos (CLI) a partir de un objeto de plantilla de host, ejecute el siguiente comando.
Crear host sin PSK (clave precompartida)
Crea un host sin cifrado PSK cuando ya exista seguridad a nivel de red. Utiliza el protocolo estándar NVMe-oF sin cifrado en la capa de transporte. Indica únicamente el nombre del servidor y el NQN:
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
Crear host con PSK (clave precompartida)
Crea un host con cifrado PSK para habilitar la función « TLS » (Conexión de seguridad) para la conexión NVMe-oF. Se recomienda su uso en entornos de producción que requieran una mayor seguridad. El formato PSK es « NVMeTLSkey-1:01:<base64-encoded-key>: », donde la clave es un valor de 32 bytes de tipo « base64-encoded »:
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')
Los nombres de host válidos pueden incluir una combinación de caracteres alfanuméricos en minúscula (a-z, 0-9) y el guión (-), con una longitud máxima de 63 caracteres. Los nombres de host deben comenzar con una letra minúscula. No se pueden
utilizar guiones al principio o al final del nombre. Los nombres de host deben ser únicos en toda la infraestructura. Por ejemplo, si crea dos hosts con el mismo nombre en la misma implementación, se muestra un error " Host name already exists ".
Vea el ejemplo siguiente.
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
La longitud máxima de NQN admitida es de 223 bytes.
$sds_endpoint es una variable de entorno que apunta al punto final que se le proporcionó cuando se configuró IBM Storage Ceph as a Service. Está en el formulario de " URL ". Por ejemplo, https://sds-cephaas.<cephaas-instance-id>.software-defined-storage.appdomain.cloud:{port number}/v1.
Puede configurar URL una vez, por lo que no es necesario especificarlo con cada comando. Para obtener orientación sobre cómo configurar el URL, consulte Comandos de configuración.
También puede utilizar el alias sds como alternativa a software-defined-storage y hstc como alternativa a host-create para las acciones CLI.
Creación de hosts mediante la API
Puede crear hosts llamando directamente a las API REST de host. Para obtener más información, consulte la referencia de la API de IBM Storage Ceph as a Service.
Asegúrese de haber definido las variables para el token IAM y el punto final de la API. Además, asegúrese de tener a mano la dirección de correo electrónico del anfitrión ( nqn ). El anfitrión nqn se puede obtener del
iniciador NVMe como se describe en Acerca de las asignaciones de host de volumen.
Realiza una solicitud de « POST /hosts » para crear un host. Especifique un obligatorio nqn, un opcional volume_id y host name. volume_id y host name son opcionales.
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"}'
$sds_endpoint es una variable de entorno que apunta al punto final que se le proporcionó cuando se configuró IBM Storage Ceph as a Service. Está en el formulario de " URL ". Por ejemplo, https://sds-cephaas.<cephaas-instance-id>.software-defined-storage.appdomain.cloud:{port number}/v1.
Puede configurar URL una vez, por lo que no es necesario especificarlo con cada comando. Para obtener orientación sobre cómo configurar el URL, consulte Comandos de configuración.
Los nombres de host válidos pueden incluir una combinación de caracteres alfanuméricos en minúscula (a-z, 0-9) y el guión (-), con una longitud máxima de 63 caracteres. Los nombres de host deben comenzar con una letra minúscula. No se pueden
utilizar guiones al principio o al final del nombre. Los nombres de host deben ser únicos en toda la infraestructura. Por ejemplo, si crea dos hosts con el mismo nombre en la misma implementación, se muestra un error " Host name already exists ".
Una respuesta satisfactoria tiene el aspecto siguiente:
{
"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
}
}
]
}
Creación de hosts mediante Terraform
Para crear un host con Terraform, debe tener a mano host nqn. Para obtener orientación sobre cómo encontrar el host nqn, consulte Configuración de iniciadores NVMe-oF.
-
Cree una instancia de host en su archivo
main.tfutilizando el argumento de recursoibm_sds_host. La instancia de host del siguiente ejemplo se denominasds_host_instancerespectivamente.resource "ibm_sds_host" "sds_host_instance" { name = "demo-host" nqn = "<hostNQN>" } -
Después de terminar de crear el archivo de configuración, inicializa Terraform CLI. Para más información, consulte Inicializar directorios de trabajo.
terraform init -
Aprovisione los recursos desde el archivo
main.tf. Para obtener más información, consulte Aprovisionamiento de infraestructura con Terraform.- Ejecute
terraform planpara generar un plan de ejecución Terraform para previsualizar las acciones propuestas.
terraform plan- Ejecute
terraform applypara crear los recursos definidos en el plan.
terraform apply - Ejecute
-
Responda a "¿Desea realizar estas acciones?" con "Sí" para proceder a la creación del volumen.
Consulte el ejemplo de salida para obtener más detalles.
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([]) }
$sds_endpoint es una variable de entorno que apunta al punto final que se le proporcionó cuando se configuró IBM Storage Ceph as a Service. Está en el formulario de " URL ". Por ejemplo, https://sds-cephaas.<cephaas-instance-id>.software-defined-storage.appdomain.cloud:{port number}/v1.
Próximos pasos
-
Continúe creando más recursos de host y, a continuación, conéctelos a iniciadores de NVME-oF.