配置 LUN
可以使用 DM 系列 Unified Manager 中提供的配置 API 在存储虚拟机(SVM)上配置 LUN。此配置工作流程详细介绍了在创建 LUN 之前检索 SVM、性能服务级别和存储效率策略的键值的步骤。
下图显示了 LUN 配置工作流程中的步骤。

- 获取要创建 LUN 的 SVM 键值,如 验证集群上的 SVM 工作流程主题中所述。
通过运行以下 API 并从响应中检索键值,获得性能服务级别的键值。
类别 HTTP 动词 路径 storage-provider GET /storage-provider/performance-service-levels 注可以通过将system_defined 输入参数设置为 true 来检索系统定义的性能服务级别的详细信息。从输出中,获取要在 LUN 上应用的性能服务级别的键值。 - (可选)通过运行以下 API 并从响应中检索键值,获得要在 LUN 上应用的存储效率策略键值。
类别 HTTP 动词 路径 storage-provider GET /storage-provider/storage-efficiency-policies 确定是否已创建发起方组(igroup)来授予对要创建的 LUN 目标的访问权限。
类别 HTTP 动词 路径 datacenter GET /datacenter/protocols/san/igroups /datacenter/protocols/san/igroups/{key}
必须输入参数值以指示 igroup 有权访问的 SVM。此外,如果要查询特定的 igroup,请输入 igroup 名称(键值)作为输入参数。
在输出中,如果可以找到要授予访问权限的 igroup,请获取相应的键值。否则,请创建 igroup。
类别 HTTP 动词 路径 datacenter POST /datacenter/protocols/san/igroups 必须输入要创建的 igroup 的详细信息作为输入参数。这是一个同步调用,可以在输出中验证是否创建了 igroup。如果发生错误,则会显示一条消息,用于进行故障诊断和重新运行 API。
创建 LUN。
类别 HTTP 动词 Path(路径) 存储提供程序 POST /storage-provider/luns 要创建 LUN,请确保已将检索到的值添加为强制输入参数。示例 cURL注存储效率策略是用于创建 LUN 的可选参数。必须输入要创建的 LUN 的所有详细信息作为输入参数。
curl -X POST "https://<hostname>/api/storage-provider/luns" -H "accept: application/json" -H
"Content-Type: application/json" -H "Authorization: Basic <Base64EncodedCredentials>" -d
"{ \"name\": \"MigrationLunWithVol\", \"os_type\": \"windows\",
\"performance_service_level\": { \"key\": \"7873dc0d-0ee5-11ea-82d7-fa163ea0eb69\" },
\"space\": { \"size\": 1024000000 }, \"svm\": { \"key\":
\"333fbcfa-0ace-11ea-9d6d-00a09897cc15:type=vserver,uuid=4d462ec8-0f56-11ea-9d6d-00a09897cc15\"
}}"JSON 输出中显示一个作业对象键值,可以使用该键值来验证创建的 LUN。
使用查询作业时返回的作业对象键值来验证是否创建了 LUN:
类别 HTTP 动词 路径 management-server GET /management-server/jobs/{key}
在响应的结尾,您将看到创建的 LUN 的键值。
{
"name": "lunKey",
"value": "key": "f963839f-0f95-11ea-9963-00a098884af5:type=lun,uuid=71f3187e-bf19-4f34-ba34-b1736209b45a"
}
],
"_links": {
"self": {
"href": "/api/management-server/jobs/fa7c856d29e2b80f%3A-8d3325d%3A16e9eb5ed6d%3A-548b"
}
}
}- 使用返回的键值运行以下 API 来验证是否创建了 LUN:
类别 HTTP 动词 路径 storage-provider GET /storage-provider/luns/{key} 示例 JSON 输出
可以看到 /storage-provider/luns 的 POST 方法会在内部调用每个功能所需的所有 API 并创建对象。例如,它会调用 /storage-provider/performance-service-levels/ API 在 LUN 上分配性能服务级别。
{
"key": "f963839f-0f95-11ea-9963-00a098884af5:type=lun,uuid=71f3187e-bf19-4f34-ba34-b1736209b45a",
"name": "/vol/NSLM_VOL_LUN_1574753881051/LunForTesting1",
"uuid": "71f3187e-bf19-4f34-ba34-b1736209b45a",
"cluster": {
"uuid": "f963839f-0f95-11ea-9963-00a098884af5",
"key": "f963839f-0f95-11ea-9963-00a098884af5:type=cluster,uuid=f963839f-0f95-11ea-9963-00a098884af5",
"name": "sti2552-4451574693410",
"_links": {
"self": {
"href": "/api/datacenter/cluster/clusters/f963839f-0f95-11ea-9963-00a098884af5:type=cluster,uuid=f963839f-0f95-11ea-9963-00a098884af5"
}
}
},
"svm": {
"uuid": "7754a99c-101f-11ea-9963-00a098884af5",
"key": "f963839f-0f95-11ea-9963-00a098884af5:type=vserver,uuid=7754a99c-101f-11ea-9963-00a098884af5",
"name": "Testingsvm1",
"_links": {
"self": {
"href": "/api/datacenter/svm/svms/f963839f-0f95-11ea-9963-00a098884af5:type=vserver,uuid=7754a99c-101f-11ea-9963-00a098884af5"
}
}
},
"volume": {
"uuid": "961778bb-2be9-4b4a-b8da-57c7026e52ad",
"key": "f963839f-0f95-11ea-9963-00a098884af5:type=volume,uuid=961778bb-2be9-4b4a-b8da-57c7026e52ad",
"name": "NSLM_VOL_LUN_1574753881051",
"_links": {
"self": {
"href": "/api/datacenter/storage/volumes/f963839f-0f95-11ea-9963-00a098884af5:type=volume,uuid=961778bb-2be9-4b4a-b8da-57c7026e52ad"
}
}
},
"assigned_performance_service_level": {
"key": "861f6e4d-0c35-11ea-9d73-fa163e706bc4",
"name": "Value",
"peak_iops": 75,
"expected_iops": 75,
"_links": {
"self": {
"href": "/api/storage-provider/performance-service-levels/861f6e4d-0c35-11ea-9d73-fa163e706bc4"
}
}
},
"recommended_performance_service_level": {
"key": null,
"name": "Idle",
"peak_iops": null,
"expected_iops": null,
"_links": {}
},
"assigned_storage_efficiency_policy": {
"key": null,
"name": "Unassigned",
"_links": {}
},
"space": {
"size": 1024458752
},
"os_type": "linux",
"_links": {
"self": {
"href": "/api/storage-provider/luns/f963839f-0f95-11ea-9963-00a098884af5%3Atype%3Dlun%2Cuuid%3D71f3187e-bf19-4f34-ba34-b1736209b45a"
}
}
}
LUN 创建或映射失败的故障诊断步骤
The nodes <node_name> and <partner_node_name> have no LIFs configured with the iSCSI or FCP protocol for Vserver <server_name>. Use the access-endpoints API to create a LIF for the LUN.
在尝试创建 LUN 的 SVM 上创建支持 ISCSI/FCP 协议的访问端点。
类别 HTTP 动词 路径 storage-provider POST /storage-provider/access-endpoints 示例 cURL
必须输入要创建的访问端点的详细信息作为输入参数。
注确保在输入参数中添加了address 来指示 LUN 的主节点,并添加了 ha_address 来指示主节点的伙伴节点。运行此操作时,它将在主节点和伙伴节点上创建访问端点。 curl -X POST "https://<hostname>/api/storage-provider/access-endpoints" -H "accept:
application/json" -H "Content-Type: application/json" -H "Authorization: Basic <Base64EncodedCredentials>" -d "{ \"data_protocols\": [ \"iscsi\" ], \"ip\": {
\"address\": \"10.162.83.126\", \"ha_address\": \"10.142.83.126\", \"netmask\":
\"255.255.0.0\" }, \"lun\": { \"key\":
\"e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=lun,uuid=b8e0c1ae-0997-47c5-97d2-1677d3ec08ff\" },
\"name\": \"aep_example\" }"- 使用在 JSON 输出中返回的作业对象键值来查询该作业,以确认在 SVM 上添加访问端点的作业已成功运行,同时 SVM 上已启用 iSCSI/FCP 服务。
类别 HTTP 动词 路径 management-server GET /management-server/jobs/{key} 示例 JSON 输出
在输出的结尾,可以看到创建的访问端点的键值。在以下输出中,"name": "accessEndpointKey" 值表示在 LUN 的主节点上创建的访问端点,其键值为 9c964258-14ef-11ea-95e2-00a098e32c28。"name": "accessEndpointHAKey" 值表示在主节点的伙伴节点上创建的访问端点,其键值为 9d347006-14ef-11ea-8760-00a098e3215f。
"job_results": [
{
"name": "accessEndpointKey",
"value": "e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=network_lif,lif_uuid=9c964258-14ef-11ea-95e2-00a098e32c28"
},
{
"name": "accessEndpointHAKey",
"value": "e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=network_lif,lif_uuid=9d347006-14ef-11ea-8760-00a098e3215f"
}
],
"_links": {
"self": {
"href": "/api/management-server/jobs/71377eeea0b25633%3A-30a2dbfe%3A16ec620945d%3A-7f5a"
}
}
} - 修改 LUN 以更新 igroup 映射。有关修改工作流程的更多信息,请参阅“修改存储工作负载”。
类别 HTTP 动词 Path(路径) 存储提供程序 PATCH /storage-provider/lun/{key} 在输入中,指定要用来更新 LUN 映射的 igroup 键值以及 LUN 键值。
示例 cURL
curl -X PATCH "https://<hostname>/api/storage-provider/luns/e4f33f90-f75f-11e8-9ed9-00a098e3215f%3Atype%3Dlun%2Cuuid%3Db8e0c1ae-0997-47c5-97d2-1677d3ec08ff"
-H "accept: application/json" -H "Content-Type: application/json" -H "Authorization: Basic <Base64EncodedCredentials>" -d
"{ \"lun_maps\": [ { \"igroup\":
{ \"key\": \"e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=igroup,uuid=d19ec2fa-fec7-11e8-b23d-00a098e32c28\" },
\"logical_unit_number\": 3 } ]}"JSON 输出中显示一个作业对象键值,可以使用该键值来验证映射是否成功。
- 使用 LUN 键值进行查询以验证 LUN 映射。
类别 HTTP 动词 路径 storage-provider GET /storage-provider/luns/{key} 示例 JSON 输出
在输出中,可以看到 LUN 与最初配置时使用的 igroup(键值为 d19ec2fa-fec7-11e8-b23d-00a098e32c28)之间已成功映射。
{
"key": "e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=lun,uuid=b8e0c1ae-0997-47c5-97d2-1677d3ec08ff",
"name": "/vol/NSLM_VOL_LUN_1575282642267/example_lun",
"uuid": "b8e0c1ae-0997-47c5-97d2-1677d3ec08ff",
"cluster": {
"uuid": "e4f33f90-f75f-11e8-9ed9-00a098e3215f",
"key": "e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=cluster,uuid=e4f33f90-f75f-11e8-9ed9-00a098e3215f",
"name": "umeng-dm5000f-01-02",
"_links": {
"self": {
"href": "/api/datacenter/cluster/clusters/e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=cluster,uuid=e4f33f90-f75f-11e8-9ed9-00a098e3215f"
}
}
},
"svm": {
"uuid": "97f47088-fa8e-11e8-9ed9-00a098e3215f",
"key": "e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=vserver,uuid=97f47088-fa8e-11e8-9ed9-00a098e3215f",
"name": "NSLM12_SVM_ritu",
"_links": {
"self": {
"href": "/api/datacenter/svm/svms/e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=vserver,uuid=97f47088-fa8e-11e8-9ed9-00a098e3215f"
}
}
},
"volume": {
"uuid": "a1e09503-a478-43a0-8117-d25491840263",
"key": "e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=volume,uuid=a1e09503-a478-43a0-8117-d25491840263",
"name": "NSLM_VOL_LUN_1575282642267",
"_links": {
"self": {
"href": "/api/datacenter/storage/volumes/e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=volume,uuid=a1e09503-a478-43a0-8117-d25491840263"
}
}
},
"lun_maps": [
{
"igroup": {
"uuid": "d19ec2fa-fec7-11e8-b23d-00a098e32c28",
"key": "e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=igroup,uuid=d19ec2fa-fec7-11e8-b23d-00a098e32c28",
"name": "lun55_igroup",
"_links": {
"self": {
"href": "/api/datacenter/protocols/san/igroups/e4f33f90-f75f-11e8-9ed9-00a098e3215f:type=igroup,uuid=d19ec2fa-fec7-11e8-b23d-00a098e32c28"
}
}
},
"logical_unit_number": 3
}
],
"assigned_performance_service_level": {
"key": "cf2aacda-10df-11ea-bbe6-fa163e599489",
"name": "Value",
"peak_iops": 75,
"expected_iops": 75,
"_links": {
"self": {
"href": "/api/storage-provider/performance-service-levels/cf2aacda-10df-11ea-bbe6-fa163e599489"
}
}
},
"recommended_performance_service_level": {
"key": null,
"name": "Idle",
"peak_iops": null,
"expected_iops": null,
"_links": {}
},
"assigned_storage_efficiency_policy": {
"key": null,
"name": "Unassigned",
"_links": {}
},
"space": {
"size": 1073741824
},
"os_type": "linux",
"_links": {
"self": {
"href": "/api/storage-provider/luns/e4f33f90-f75f-11e8-9ed9-00a098e3215f%3Atype%3Dlun%2Cuuid%3Db8e0c1ae-0997-47c5-97d2-1677d3ec08ff"
}
}
}