建立主機
若要讓您的伺服器或應用程式可以對應及存取區塊儲存卷冊,您可以使用使用者介面、CLI、API 或 Terraform 建立主機。
主機代表一個系統(例如伺服器或虛擬機器( VM )),該系統透過 NVMe-oF 協定連線至儲存卷。 透過建立主機並將磁碟區對應到主機,您就可以讓工作負載透過安全、受管理的連線讀取和寫入這些磁碟區上的資料。
在建立主機之前,您必須先設定「NVME-oF」啟動程式。 此 NVME-oF 啟動程式是將卷映射至主機所必需的。 請參閱「設定 NVMe-oF 啟動器」。 完成 NVME-oF 啟動器的設定後,請記下 host nqn。
在使用者介面中建立主機
使用 IBM Cloud 主控台為部署建立主機。
-
在 IBM Cloud 主控台
,按一下部署 > 名稱連結。
-
按一下 Block Storage > 主機。
-
按一下建立主機。
-
輸入唯一的主機名稱,並輸入主機識別碼 Host NQN。
主機名稱在整個部署中必須是唯一的。 例如,如果您建立的兩個主機位於同一部署中,且名稱相同,則會顯示「主機名稱已存在」錯誤。
-
按下一步。
-
選取一個或多個磁碟區,將其對應到主機。
-
按一下建立。 主機」頁面會重新整理,新主機會出現在主機清單的開頭。
透過命令列介面建立主機
若要使用命令列介面 (CLI) 從主機範本物件建立主機,請執行下列指令。
建立無 PSK (預先共用金鑰) 的主機
當網路層級的安全措施已就緒時,請建立一個不使用 PSK 加密的主機。 此處採用標準的 NVMe-oF 協定,且未進行傳輸層加密。 請僅提供主機名稱和 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
使用 PSK(預先共用金鑰)建立主機
建立一個採用 PSK 加密的主機,以啟用 TLS 功能,供 NVMe-oF 連線使用。 建議在需要加強安全性的生產環境中採用此方案。 PSK 格式為 NVMeTLSkey-1:01:<base64-encoded-key>:,其中金鑰為一個 32 位元組的 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')
有效的主機名稱可以包含小寫字母、數字(a-z、0-9)以及連字號(-)的組合,長度最多為 63 個字元。 主機名稱必須以小寫字母開頭。 連字符不能用來開始或結束名稱。 主機名稱在整個基礎架構中必須是唯一的。 例如,如果在同一部署中創建兩個具有相同名稱的主機,則會顯示錯誤 Host name already exists。
請參閱下列範例。
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
支援的最大 NQN 長度為 223 位元組。
$sds_endpoint 是一個環境變數,指向 IBM Storage Ceph as a Service 設定時提供給您的端點。 它以 URL 的形式存在。 例如,https://sds-cephaas.<cephaas-instance-id>.software-defined-storage.appdomain.cloud:{port number}/v1。 您可以一次設定 URL,因此不需要在每條指令中都指定。
有關如何設定 URL 的指引,請參閱 Config 命令。
您也可以在 CLI 動作中使用別名 sds 作為 software-defined-storage 的替代,以及 hstc 作為 host-create 的替代。
使用 API 建立主機
您可以直接呼叫 Host REST API 來建立主機。 如需詳細資訊,請參閱 IBM Storage Ceph as a Service API 參考資料。
確保您已為 IAM 令牌和 API 端點定義變數。 此外,請確保您手邊有主機 nqn。 如「關於磁碟區主機映射」一節所述,主機 nqn 可從 NVMe 啟動器取得。
提出 POST /hosts 請求以建立主機。 指定一個必須的 nqn,一個可選的 volume_id 和 host name。volume_id 和 host name 是可選的。
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 是一個環境變數,指向 IBM Storage Ceph as a Service 設定時提供給您的端點。 它以 URL 的形式存在。 例如,https://sds-cephaas.<cephaas-instance-id>.software-defined-storage.appdomain.cloud:{port number}/v1。 您可以一次設定 URL,因此不需要在每條指令中都指定。
有關如何設定 URL 的指引,請參閱 Config 命令。
有效的主機名稱可以包含小寫字母、數字(a-z、0-9)以及連字號(-)的組合,長度最多為 63 個字元。 主機名稱必須以小寫字母開頭。 連字符不能用來開始或結束名稱。 主機名稱在整個基礎架構中必須是唯一的。 例如,如果在同一部署中創建兩個具有相同名稱的主機,則會顯示錯誤 Host name already exists。
成功回應類似下列內容:
{
"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
}
}
]
}
使用 Terraform 建立主機
要使用 Terraform 創建主機,您必須準備好 host nqn。 如需尋找 host nqn 的指引,請參閱 設定 NVMe-oF 啟動器。
-
使用
ibm_sds_host資源參數,在main.tf檔案中建立主機實例。 以下範例中的主機實例分別命名為sds_host_instance。resource "ibm_sds_host" "sds_host_instance" { name = "demo-host" nqn = "<hostNQN>" } -
完成建立組態檔案後,初始化 Terraform CLI。 如需詳細資訊,請參閱 初始化工作目錄。
terraform init -
從
main.tf檔案提供資源。 如需詳細資訊,請參閱 使用 Terraform 佈建基礎結構。- 執行
terraform plan以產生 Terraform 執行計畫,預覽建議的動作。
terraform plan- 執行
terraform apply以建立計劃中定義的資源。
terraform apply - 執行
-
對「您是否要執行這些動作?」回覆「是」,以繼續建立磁碟區。
詳情請參閱範例輸出。
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 是一個環境變數,指向 IBM Storage Ceph as a Service 設定時提供給您的端點。 它以 URL 的形式存在。 例如,https://sds-cephaas.<cephaas-instance-id>.software-defined-storage.appdomain.cloud:{port number}/v1。
下一步
-
繼續建立更多主機資源,然後將它們連接到 NVME-oF 啟動器。