配置 CIFS 和 NFS 文件共享
可以使用 DM 系列 Unified Manager 中提供的配置 API 在存储虚拟机(SVM)上配置 CIFS 共享和 NFS 文件共享。此配置工作流程详细介绍了在创建文件共享之前检索 SVM、性能服务级别和存储效率策略的键值的步骤。
下图显示了文件共享配置工作流程中的每个步骤。它包括配置 CIFS 共享和 NFS 文件共享这两种情况。
- ONTAP 集群已添加到 Unified Manager,并且已获取集群键值。
- 已在集群上创建 SVM。
- SVM 支持 CIFS 和 NFS 服务。如果 SVM 不支持所需的服务,则文件共享配置可能会失败。
- FCP 端口处于联机状态,可进行端口配置。
确定要创建 CIFS 共享的 SVM 上是否有可用的数据 LIF 或访问端点。获取 SVM 上可用访问端点的列表:
类别 HTTP 动词 路径 storage-provider GET /storage-provider/access-endpoints
/storage-provider/access-endpoints/{key}
示例 cURL
curl -X GET "https://<hostname>/api/storage-provider/access-endpoints?resource.key=7d5a59b3-953a-11e8-8857-00a098dcc959" -H "accept: application/json" -H "Authorization: Basic <Base64EncodedCredentials>"
如果您的访问端点在列表中可用,请获取访问端点键值,否则请创建访问端点。
注确保创建启用了 CIFS 协议的访问端点。除非已经创建启用了 CIFS 协议的访问端点,否则 CIFS 共享配置将失败。类别 HTTP 动词 路径 storage-provider POST /storage-provider/access-endpoints 示例 cURL
必须输入要创建的访问端点的详细信息作为输入参数。
curl -X POST "https://<hostname>/api/storage-provider/access-endpoints" -H "accept: application/json" -H "Content-Type: application/json" -H "Authorization: Basic <Base64EncodedCredentials>"
{ \"data_protocols\": \"nfs\",
\"fileshare\": { \"key\": \"cbd1757b-0580-11e8-bd9d-00a098d39e12:type=volume,uuid=f3063d27-2c71-44e5-9a69-a3927c19c8fc\" },
\"gateway\": \"10.132.72.12\",
\"ip\": { \"address\": \"10.162.83.26\",
\"ha_address\": \"10.142.83.26\",
\"netmask\": \"255.255.0.0\" },
\"lun\": { \"key\": \"cbd1757b-0580-11e8-bd9d-00a098d39e12:type=lun,uuid=d208cc7d-80a3-4755-93d4-5db2c38f55a6\" },
\"mtu\": 15000, \"name\": \"aep1\",
\"svm\": { \"key\": \"cbd1757b-0580-11e8-bd9d-00a178d39e12:type=vserver,uuid=1d1c3198-fc57-11e8-99ca-00a098d38e12\" },
\"vlan\": 10}"JSON 输出中显示一个作业对象键值,可以使用该键值来验证创建的访问端点。
验证访问端点:
类别 HTTP 动词 路径 management-server GET /management-server/jobs/{key}
- 确定必须创建 CIFS 共享还是 NFS 文件共享。要创建 CIFS 共享,请遵循以下子步骤:
- 确定是否在 SVM 上配置了 CIFS 服务器,即确定是否在 SVM 上创建了 Active Directory 映射。
类别 HTTP 动词 路径 storage-provider GET /storage-provider/active-directories-mappings
- 如果已创建 Active Directory 映射,请获取键值,否则请在 SVM 上创建 Active Directory 映射。
类别 HTTP 动词 路径 storage-provider POST /storage-provider/active-directories-mappings 示例 cURL
必须输入用于创建 Active Directory 映射的详细信息作为输入参数。
curl -X POST "https://<hostname>/api/storage-provider/active-directories-mappings" -H "accept: application/json" -H "Content-Type: application/json" -H "Authorization: Basic <Base64EncodedCredentials>"
{ \"_links\": {},
\"dns\": \"10.000.000.000\",
\"domain\": \"example.com\",
\"password\": \"string\",
\"svm\": { \"key\": \"9f4ddea-e395-11e9-b660-005056a71be9:type=vserver,uuid=191a554a-f0ce-11e9-b660-005056a71be9\" },
\"username\": \"string\"}"这是一个同步调用,可以在输出中验证是否创建了 Active Directory 映射。如果发生错误,则会显示错误消息,用于进行故障诊断和重新运行请求。
- 确定是否在 SVM 上配置了 CIFS 服务器,即确定是否在 SVM 上创建了 Active Directory 映射。
- 获取要创建 CIFS 共享或 NFS 文件共享的 SVM 键值,如 验证集群上的 SVM 工作流程主题中所述。
- 通过运行以下 API 并从响应中检索键值,获得性能服务级别的键值。
类别 HTTP 动词 路径 storage-provider GET /storage-provider/performance-service-levels
注可以通过将system_defined 输入参数设置为 true 来检索系统定义的性能服务级别的详细信息。从输出中,获取要在文件共享上应用的性能服务级别的键值。 - (可选)通过运行以下 API 并从响应中检索键值,获得要在文件共享上应用的存储效率策略键值。
类别 HTTP 动词 路径 storage-provider GET /storage-provider/storage-efficiency-policies
创建文件共享。可以通过指定访问控制列表和导出策略来创建同时支持 CIFS 和 NFS 的文件共享。如果要创建文件共享以在该卷上仅支持一种协议,请查看以下子步骤中提供的信息。创建 NFS 共享后,还可以更新 NFS 文件共享以包含访问控制列表。有关信息,请参阅 修改存储工作负载 主题。
要仅创建 CIFS 共享,请收集有关访问控制列表(ACL)的信息。要创建 CIFS 共享,请为以下输入参数提供有效值。对于您分配的每个用户组,在配置 CIFS/SMB 共享时会创建 ACL。根据为 ACL 和 Active Directory 映射输入的值,在创建 CIFS 共享时会确定其访问控制和映射。
包含示例值的 cURL 命令
{
"access_control": {
"acl": [
{
"permission": "read",
"user_or_group": "everyone"
}
],
"active_directory_mapping": {
"key": "3b648c1b-d965-03b7-20da-61b791a6263c"
},要仅创建 NFS 文件共享,请收集有关导出策略的信息。要创建 NFS 文件共享,请为以下输入参数提供有效值。根据您的值,导出策略将在创建 NFS 文件共享时关联。
注在配置 NFS 共享时,可以通过提供所有必需的值来创建导出策略,或者提供导出策略键值并重用现有的导出策略。如果要为存储虚拟机重用导出策略,则需要添加导出策略键值。除非您知道键值,否则可以使用/datacenter/protocols/nfs/export-policies API 来检索导出策略键值。要创建新策略,必须输入以下示例中显示的规则。对于输入的规则,此 API 会尝试通过匹配主机、存储虚拟机和规则来搜索现有的导出策略。如果当前已有导出策略,则会使用该策略。否则,将创建新的导出策略。 包含示例值的 cURL 命令
"export_policy": {
"key": "7d5a59b3-953a-11e8-8857-00a098dcc959:type=export_policy,uuid=1460288880641",
"name_tag": "ExportPolicyNameTag",
"rules": [
{
"clients": [
{
"match": "0.0.0.0/0"
}
配置访问控制列表和导出策略后,请为 CIFS 和 NFS 文件共享的必要输入参数提供有效值:注存储效率策略是用于创建文件共享的可选参数。类别 HTTP 动词 路径 storage-provider POST /storage-provider/file-shares JSON 输出中显示一个作业对象键值,可以使用该键值来验证创建的文件共享。
使用查询作业时返回的作业对象键值来验证是否创建了文件共享:
类别 HTTP 动词 路径 management-server GET /management-server/jobs/{key} 在响应的结尾,您将看到创建的文件共享的键值。
],
"job_results": [
{
"name": "fileshareKey",
"value": "7d5a59b3-953a-11e8-8857-00a098dcc959:type=volume,uuid=e581c23a-1037-11ea-ac5a-00a098dcc6b6"
}
],
"_links": {
"self": {
"href": "/api/management-server/jobs/06a6148bf9e862df:-2611856e:16e8d47e722:-7f87"
}
}
}- 使用返回的键值运行以下 API 来验证是否创建了文件共享:
类别 HTTP 动词 路径 storage-provider GET /storage-provider/file-shares/{key} 示例 JSON 输出
可以看到 /storage-provider/file-shares 的 POST 方法会在内部调用每个功能所需的所有 API 并创建对象。例如,它会调用 /storage-provider/performance-service-levels/ API 在文件共享上分配性能服务级别。
{
"key": "7d5a59b3-953a-11e8-8857-00a098dcc959:type=volume,uuid=e581c23a-1037-11ea-ac5a-00a098dcc6b6",
"name": "FileShare_377",
"cluster": {
"uuid": "7d5a59b3-953a-11e8-8857-00a098dcc959",
"key": "7d5a59b3-953a-11e8-8857-00a098dcc959:type=cluster,uuid=7d5a59b3-953a-11e8-8857-00a098dcc959",
"name": "DM7000F-206-68-70-72-74",
"_links": {
"self": {
"href": "/api/datacenter/cluster/clusters/7d5a59b3-953a-11e8-8857-00a098dcc959:type=cluster,uuid=7d5a59b3-953a-11e8-8857-00a098dcc959"
}
}
},
"svm": {
"uuid": "b106d7b1-51e9-11e9-8857-00a098dcc959",
"key": "7d5a59b3-953a-11e8-8857-00a098dcc959:type=vserver,uuid=b106d7b1-51e9-11e9-8857-00a098dcc959",
"name": "RRT_ritu_vs1",
"_links": {
"self": {
"href": "/api/datacenter/svm/svms/7d5a59b3-953a-11e8-8857-00a098dcc959:type=vserver,uuid=b106d7b1-51e9-11e9-8857-00a098dcc959"
}
}
},
"assigned_performance_service_level": {
"key": "1251e51b-069f-11ea-980d-fa163e82bbf2",
"name": "Value",
"peak_iops": 75,
"expected_iops": 75,
"_links": {
"self": {
"href": "/api/storage-provider/performance-service-levels/1251e51b-069f-11ea-980d-fa163e82bbf2"
}
}
},
"recommended_performance_service_level": {
"key": null,
"name": "Idle",
"peak_iops": null,
"expected_iops": null,
"_links": {}
},
"space": {
"size": 104857600
},
"assigned_storage_efficiency_policy": {
"key": null,
"name": "Unassigned",
"_links": {}
},
"access_control": {
"acl": [
{
"user_or_group": "everyone",
"permission": "read"
}
],
"export_policy": {
"id": 1460288880641,
"key": "7d5a59b3-953a-11e8-8857-00a098dcc959:type=export_policy,uuid=1460288880641",
"name": "default",
"rules": [
{
"anonymous_user": "65534",
"clients": [
{
"match": "0.0.0.0/0"
}
],
"index": 1,
"protocols": [
"nfs3",
"nfs4"
],
"ro_rule": [
"sys"
],
"rw_rule": [
"sys"
],
"superuser": [
"none"
]
},
{
"anonymous_user": "65534",
"clients": [
{
"match": "0.0.0.0/0"
}
],
"index": 2,
"protocols": [
"cifs"
],
"ro_rule": [
"ntlm"
],
"rw_rule": [
"ntlm"
],
"superuser": [
"none"
]
}
],
"_links": {
"self": {
"href": "/api/datacenter/protocols/nfs/export-policies/7d5a59b3-953a-11e8-8857-00a098dcc959:type=export_policy,uuid=1460288880641"
}
}
}
},
"_links": {
"self": {
"href": "/api/storage-provider/file-shares/7d5a59b3-953a-11e8-8857-00a098dcc959:type=volume,uuid=e581c23a-1037-11ea-ac5a-00a098dcc6b6"
}
}
}