配置 LUN
您可以使用 Active IQ Unified Manager 中提供的配置 API 在 Storage Virtual Machine ( SVM )上配置 LUN 。此配置工作流详细介绍了在创建 LUN 之前检索 SVM 密钥,性能服务级别和存储效率策略的步骤。
下图说明了 LUN 配置工作流中的步骤。
|
|
此工作流假定已将 ONTAP 集群添加到 Unified Manager 中,并且已获取集群密钥。此工作流还假定已在集群上创建 SVM 。 |
-
获取要创建 LUN 的 SVM 的 SVM 密钥,如 _Verifying SVM on clusters 工作流主题中所述。
-
运行以下 API 并从响应中检索此密钥,以获取性能服务级别的密钥。
| 类别 | HTTP 动词 | 路径 |
|---|---|---|
存储提供程序 |
获取 |
|
|
|
您可以通过设置来检索系统定义的性能服务级别的详细信息 |
-
或者,也可以通过运行以下 API 并从响应中检索要应用于 LUN 的存储效率策略的存储效率策略密钥。
| 类别 | HTTP 动词 | 路径 |
|---|---|---|
存储提供程序 |
获取 |
|
-
确定是否已创建启动程序组( igroup )以授予对要创建的 LUN 目标的访问权限。
| 类别 | HTTP 动词 | 路径 |
|---|---|---|
数据中心 |
获取 |
|
您必须输入参数值,以指示 igroup 有权访问的 SVM 。此外,如果要查询特定的 igroup ,请输入 igroup 名称(密钥)作为输入参数。
-
在输出中,如果您可以找到要授予访问权限的 igroup ,请获取密钥。否则,请创建 igroup 。
| 类别 | HTTP 动词 | 路径 |
|---|---|---|
数据中心 |
发布 |
|
必须输入要创建的 igroup 的详细信息作为输入参数。这是一个同步调用,您可以在输出中验证 igroup 的创建情况。如果出现错误,则会显示一条消息,供您进行故障排除并重新运行 API 。
-
创建 LUN 。
| 类别 | HTTP 动词 | 路径 |
|---|---|---|
存储提供程序 |
发布 |
|
要创建 LUN ,请确保已将检索到的值添加为必需的输入参数。
|
|
存储效率策略是用于创建 LUN 的可选参数。 |
-
示例 curc*
您必须输入要创建的 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 动词 | 路径 |
|---|---|---|
管理服务器 |
获取 |
|
响应结束时,您会看到创建的 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 动词 | 路径 |
|---|---|---|
存储提供程序 |
获取 |
|
-
JSON 输出示例 *
您可以看到的是POST方法 /storage-provider/luns 在内部调用每个功能所需的所有API并创建对象。例如、它将调用 /storage-provider/performance-service-levels/ 用于在LUN上分配性能服务级别的API。
{
"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 创建或映射失败的故障排除步骤
完成此工作流后,您可能仍会看到 LUN 创建失败。即使已成功创建 LUN ,与 igroup 的 LUN 映射也可能会因创建 LUN 的节点上没有 SAN LIF 或访问端点而失败。如果发生故障,您可以看到以下消息:
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 动词 | 路径 |
|---|---|---|
存储提供程序 |
发布 |
|
-
示例 curc*
您必须输入要创建的访问端点的详细信息作为输入参数。
|
|
确保已在输入参数中添加 |
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 动词 | 路径 |
|---|---|---|
管理服务器 |
获取 |
|
-
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 映射。有关工作流修改的详细信息,请参见 "
M修改存储工作负载" 。
| 类别 | HTTP 动词 | 路径 |
|---|---|---|
存储提供程序 |
patch |
|
在输入中,指定要用于更新 LUN 映射的 igroup 密钥以及 LUN 密钥。
-
示例 curc*
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 动词 | 路径 |
|---|---|---|
存储提供程序 |
获取 |
|
-
JSON 输出示例 *
在输出中、您可以看到LUN已成功使用igroup (key 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-aff220-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"
}
}
}