Criação de um host
Para permitir que os volumes de armazenamento em bloco sejam mapeados e acessados por seus servidores ou aplicativos, você pode criar um host usando a interface do usuário, a CLI, a API ou o Terraform.
Um host representa um sistema, como um servidor ou uma máquina virtual ( VM ), que se conecta a volumes de armazenamento por meio do protocolo NVMe-oF. Ao criar um host e mapear volumes para ele, você permite que suas cargas de trabalho leiam e gravem dados nesses volumes por meio de conexões seguras e gerenciadas.
Antes de criar um host, é necessário configurar o iniciador do serviço de gerenciamento de dispositivos ( NVME-oF ). Este iniciador do NVME-oF é necessário para mapear o volume a um host. Consulte “Configuração de iniciadores d NVMe-oF ”. Após configurar o iniciador do NVME-oF, anote o endereço host nqn.
Criação de um host na interface do usuário
Use o console IBM Cloud para criar um host para uma implementação.
-
No console IBM Cloud
, clique em Deployments > Name link.
-
Clique em Block Storage > Hosts.
-
Clique em Criar host.
-
Insira um nome de host exclusivo e insira o identificador de host Host NQN.
O nome do host deve ser exclusivo em toda a implementação. Por exemplo, se você criar dois hosts que estejam na mesma implantação e tenham o mesmo nome, será exibido o erro "O nome do host já existe".
-
Clique em Avançar.
-
Selecione um ou mais volumes para mapeá-los para o host.
-
Clique em Criar. A página Host é atualizada e o novo host aparece no início da lista de hosts.
Criação de hosts pela CLI
Para criar hosts usando a interface de linha de comando (CLI) a partir de um objeto de modelo de host, execute o seguinte comando.
Criar host sem PSK (chave pré-compartilhada)
Crie um host sem criptografia PSK quando já houver segurança em nível de rede. Isso utiliza o protocolo padrão NVMe-oF sem criptografia na camada de transporte. Forneça apenas o nome do host e o 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
Criar host com PSK (chave pré-compartilhada)
Crie um host com criptografia PSK para habilitar o protocolo de autenticação por senha ( TLS ) para a conexão NVMe-oF. Isso é recomendado para ambientes de produção que exigem maior segurança. O formato PSK é NVMeTLSkey-1:01:<base64-encoded-key>:,
em que a chave é um valor de 32 bytes do 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')
Os nomes de host válidos podem incluir uma combinação de caracteres alfanuméricos em letras minúsculas (a-z, 0-9) e o hífen (-), com até 63 caracteres. Os nomes de host devem começar com uma letra minúscula. Hifens não podem ser usados para
iniciar ou terminar o nome. Os nomes dos hosts devem ser únicos em toda a infraestrutura. Por exemplo, se você criar dois hosts com o mesmo nome na mesma implantação, será exibido um erro Host name already exists.
Consulte o exemplo a seguir.
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
O comprimento máximo suportado do NQN é de 223 bytes.
O $sds_endpoint é uma variável de ambiente que aponta para o endpoint fornecido a você quando o IBM Storage Ceph as a Service foi configurado. Ele está no formulário URL. Por exemplo, https://sds-cephaas.<cephaas-instance-id>.software-defined-storage.appdomain.cloud:{port number}/v1.
Você pode definir o endereço URL uma vez, portanto, não é necessário especificá-lo em cada comando. Para obter orientação sobre como definir o URL, consulte Comandos de configuração.
Você também pode usar o alias sds como alternativa a software-defined-storage e hstc como alternativa a host-create para as ações da CLI.
Criação de hosts com a API
Você pode criar hosts chamando diretamente as APIs REST do Host. Para obter mais informações, consulte a referência da API IBM Storage Ceph as a Service.
Certifique-se de que você definiu as variáveis para o token IAM e o endpoint da API. Além disso, verifique se você tem o host nqn à mão. O host nqn pode ser obtido do iniciador NVMe, conforme descrito em Sobre mapeamentos de host de volume.
Envie uma solicitação de “ POST /hosts ” para criar um host. Especifique um nqn obrigatório, um volume_id e um host name opcionais. volume_id e host name são opcionais.
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"}'
O $sds_endpoint é uma variável de ambiente que aponta para o endpoint fornecido a você quando o IBM Storage Ceph as a Service foi configurado. Ele está no formulário URL. Por exemplo, https://sds-cephaas.<cephaas-instance-id>.software-defined-storage.appdomain.cloud:{port number}/v1.
Você pode definir o endereço URL uma vez, portanto, não é necessário especificá-lo em cada comando. Para obter orientação sobre como definir o URL, consulte Comandos de configuração.
Os nomes de host válidos podem incluir uma combinação de caracteres alfanuméricos em letras minúsculas (a-z, 0-9) e o hífen (-), com até 63 caracteres. Os nomes de host devem começar com uma letra minúscula. Hifens não podem ser usados para
iniciar ou terminar o nome. Os nomes dos hosts devem ser únicos em toda a infraestrutura. Por exemplo, se você criar dois hosts com o mesmo nome na mesma implantação, será exibido um erro Host name already exists.
Uma resposta bem-sucedida é semelhante a esta:
{
"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
}
}
]
}
Criação de hosts usando o Terraform
Para criar um host usando o Terraform, você deve ter em mãos o endereço host nqn. Para obter orientação sobre como localizar o host nqn, consulte Configuração dos iniciadores do NVMe-oF.
-
Crie uma instância de host em seu arquivo
main.tfusando o argumento de recursoibm_sds_host. A instância do host no exemplo a seguir é denominadasds_host_instance, respectivamente.resource "ibm_sds_host" "sds_host_instance" { name = "demo-host" nqn = "<hostNQN>" } -
Depois de concluir a criação do arquivo de configuração, inicialize a CLI do Terraform. Para obter mais informações, consulte Inicialização de diretórios de trabalho.
terraform init -
Provisione os recursos do arquivo
main.tf. Para obter mais informações, consulte Provisionamento de infraestrutura com o Terraform.- Execute
terraform planpara gerar um plano de execução do Terraform para visualizar as ações propostas.
terraform plan- Execute o site
terraform applypara criar os recursos definidos no plano.
terraform apply - Execute
-
Responda à pergunta "Do you want to perform these actions?" com "Yes" para prosseguir com a criação do volume.
Veja o exemplo de saída para obter detalhes.
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([]) }
O $sds_endpoint é uma variável de ambiente que aponta para o endpoint fornecido a você quando o IBM Storage Ceph as a Service foi configurado. Ele está no formulário URL. Por exemplo, https://sds-cephaas.<cephaas-instance-id>.software-defined-storage.appdomain.cloud:{port number}/v1.
Próximas etapas
-
Continue criando mais recursos de host e, em seguida, conecte-os aos iniciadores NVME-oF.