ECS:PowerScale:CloudPools 性能问题
Riepilogo: 配置 ECS 和 PowerScale(以前称为 Isilon)以使用虚拟样式寻址并获得更好的性能。
Sintomi
如果 ECS 未配置虚拟 IP 和虚拟样式寻址,则存在可能导致传输速度缓慢的潜在问题。
CloudPools 支持存储区寻址的两种样式(虚拟样式寻址、路径样式寻址),但始终首先尝试虚拟样式寻址。
Causa
PowerScale 和 CloudPools 读取其存储数据的方式是以 1 MB 片段为单位。
当读取大于 1MB 的文件时,它们会按顺序获取这些片段,每九个片段是一个 168 字节的头文件,其中包含。
当他们提出数千或数十万个此类请求时,就会出现问题。这样一来,发出 S3 请求的固有开销就会累积起来,使文件检索和传输速率变慢。
由于它首先尝试使用虚拟样式寻址,因此如果未配置为使用虚拟样式寻址,则可能会导致请求之间的延迟。
Risoluzione
序幕:
- VIP = “虚拟 IP (VIP) 是负载平衡实例,世界将其浏览器指向站点。VIP 有一个 IP 地址,该地址必须公开才能使用。通常,TCP 或 UDP 端口号与 VIP 关联,例如用于 Web 流量的 TCP 端口 80。VIP至少分配了一个真实服务器,它向该服务器分配流量。
- CP = CloudPools
- DNS RR = DNS 循环
- CNAME = 规范名称记录是域名系统中的一种资源记录类型,它将一个域名映射到另一个域名,称为规范名称。当从单个 IP 地址运行多个服务时,这种方法非常方便。
使用短基 URL 设置虚拟样式寻址时,需要满足以下条件:
- CP 设置中使用的负载平衡器的 VIP(或 DNS RR 的 VIP)
- 负载平衡器 VIP 的 DNS 中的通配符 CNAME 条目,以便 bucket-name.loadbalancer-fqdn.emc.com 解析任何 PowerScale CP 存储区名称,并将其解析为负载平衡器(或 DNS RR)的 VIP
- loadbalancer.emc.com 的 CNAME 条目
- 在 ECS UI 中配置的 VIP 的基本 URL
虚拟主机样式寻址(建议用于 CloudPools):
在虚拟主机寻址方案中,存储区名称显示在主机名中。例如,主机 ecs1.yourco.com 上名为“mybucket”的存储区可使用以下命令进行访问:
http://mybucket.ecs1.yourco.com
此外,ECS 还允许在地址中包含命名空间。例如:
<bucketname>.<namespace>.ecs1.yourco.com
要使用此寻址方式,您必须配置 ECS,以便它知道 URL 的哪一部分是存储区名称。这是通过配置基本 URL 来完成的。此外,您必须确保 DNS 系统可以解析该地址。以下各节提供了详细信息:
基于路径的寻址:
在基于路径的寻址方案中,存储区名称添加到路径的末尾。例如:
ecs1.yourco.com/mybucket
当包含命名空间时,请使用以下格式:
ecs1.yourco.com/mynamespace/mybucket
第 1 部分:DNS 配置:
使用 S3 服务访问 ECS 存储时,请确保 URL 解析 ECS 数据节点或负载平衡器的地址。
如果应用程序使用虚拟主机样式寻址,则 URL 包括存储区名称,并且可以包含命名空间。在这些情况下,必须确保包含可解析虚拟主机样式地址的 DNS 条目。您可以通过在 DNS 条目中使用通配符来执行此作。
例如,如果应用程序以 bucket.ecs.example.com 形式发出请求,则必须具有两个 DNS CNAME 条目。
*.cloudpools_uri.example.com — 此通配符 CNAME 允许 DNS 解析在 URL 中包含存储区名称的请求。(这是 CloudPools 默认使用的参数)
cloudpools_uri.example.com - 此 CNAME 将允许在 ECS 确定请求的哪一部分是存储区和/或命名空间后解析基本名称。
ecs-loadbalancer.example.com - 这应该是环境中 LoadBalancer、GTM 或 RoundRobin DNS 的 FQDN 的现有 A 记录。
NAME TYPE VALUE
--------------------------------------------------
*.cloudpools_uri.example.com CNAME ecs-loadbalancer.example.com
cloudpools_uri.example.com CNAME ecs-loadbalancer.example.com
ecs-loadbalancer.example.com A 192.0.2.23
这些条目允许在发出服务级别命令(列表存储区)时解析基本名称,并解析虚拟主机样式存储区地址。
第 2 部分:在 ECS UI 中配置基本 URL:
如果您的 S3 应用程序使用虚拟主机样式寻址,并且您想要使用它连接到 ECS,则必须设置基本 URL,以使 ECS 能够知道地址的哪个部分引用存储区和(可选)命名空间。可以使用 ECS 门户或使用 ECS Management REST API 设置基本 URL,并且需要 ECS 系统管理员角色。
Base URL Management页面显示已创建的基本 URL 以及 ECS 应如何使用它们。
设置 > 对象基本 URL

为使 ECS 知道如何处理存储区位置前缀,必须通过选择以下选项之一来配置基本 URL。
- 将基本 URL 与命名空间配合使用
- 使用不带命名空间的基本 URL
在处理请求时,ECS 将:
- 尝试从 x-emc-namespace 标头中提取命名空间。如果找到,请跳过以下步骤并处理请求。
- 从主机标头获取 URL 的主机名,并检查地址的最后一部分是否与任何已配置的基本 URL 匹配。
- 如果存在基本 URL 匹配项,则使用主机名的前缀部分(删除基本 URL 后留下的部分)来获取存储区位置。
以下示例演示了 ECS 如何处理具有不同结构的传入 HTTP 请求。
不带命名空间的基本 URL 示例:
Name: Example_BASEURL
BaseURL: cloudpools_uri.example.com
Use with Namespace: No
这使它能够确定请求的哪一部分是存储区名称。下面是一个示例请求:
d0007430acf369abf0d5681089a1a96abc8fdi16.cloudpools_uri.example.com
如果您为它配置命名空间,它会再回溯一个子域以确定命名空间和存储区。
在 ECS 中添加基本 URL:
- 此作需要 ECS 中的系统管理员角色。
- 在使用 URL 指定对象位置的请求中指定的域必须解析为 ECS 数据节点或位于数据节点前面的负载平衡器的位置。
步骤:
- 在 ECS 门户中,选择SettingsObject > Base URLs。
- 选择New Base URL。
此时将显示新建基本 URL页面。

- 输入基本 URL 的名称。在查看基本 URL 表时,这提供了有关基本 URL 的其他信息。
- 输入基本 URL。
如果您的对象位置 URL 采用以下形式: d0007430acf369abf0d5681089a1a96abc8fdi16.cloudpools_uri.example.com,则基本 URL 将为 cloudpools_uri.example.com。
您可以在命名空间选择器中指定哪种格式。 - 选择在 URL 中对对象地址进行编码的格式:有命名空间或无命名空间
- 选择保存。
第 3 部分:配置 CloudPools 的 URI:
最后,我们必须在 CloudPools 配置中设置正确的 URI。您可能已经正确配置了 URI,但现在是时候检查了。
URI 应该是我们在第 1 部分中设置的 CNAME,指向您的负载均衡器、GTM 或轮询。
您的 URI 是:
cloudpools_uri.example.com
(可选)您可以按如下方式输入端口号,但这不是必需的:
cloudpools_uri.example.com:9020
cloudpools_uri.example.com:443
配置云帐户时,请勿向基本 URL 添加任何前缀“subdomain”。
例如,请勿使用 URI http://powerscale.cloudpools_uri.example.com:9020
配置云帐户 例外情况是 PowerScale 是 ECS 上的命名空间,并且在上一步第 2 部分中,您已选中“将基本 URL 与命名空间配合使用”
第 4 部分:验证 CloudPools 是否正确使用新配置。
如果您在上述任一步骤中需要帮助,请向 PowerScale 或 ECS 支持团队提出服务请求。
负载平衡器的 IP = 192.0.2.12,DNS
的 IP = 192.0.2.53,ECS
的 IP = 192.168.219.254,PowerScale
的 IP 地址 = 192.0.2.70
- 检查您的 DNS 是否正确解析通配符,它应该解析为您的 VIP 或 LB 的 IP。
admin@:> nslookup TEST.cloudpools-uri.example.com
Server: 192.0.2.53
Address: 192.0.2.53#53
TEST.cloudpools-uri.example.com canonical name = ecs-loadbalancer.example.com
Name: ecs-loadbalancer.example.com
Address: 192.0.2.12
- 检查您的 DNS 是否正确解析基础,它应该解析为您的 VIP 或 LB 的 IP。
admin@:> nslookup cloudpools-uri.example.com
Server: 192.0.2.53
Address: 192.0.2.53#53
cloudpools-uri.example.com canonical name = ecs-loadbalancer.example.com
Name: ecs-loadbalancer.example.com
Address: 192.0.2.12
- 验证是否正确设置了 CloudPools URI。
- 验证您在 ECS UI 中配置的基本 URL。
- 在 PowerScale 上启动 CloudPools 作业。
记下创建作业和完成作业的 UTC 时间。 - 在 ECS CLI 中,使用我们在步骤 5 中收集的时间验证请求是否正确发出,并且没有错误:
使用 svc_request 查看该时间段的请求:
svc_request -start "2018-09-05T18:22:53" -stop "2018-09-05T18:36:05" -t HEAD summary
无法使用虚拟样式寻址并恢复为路径样式的输出示例(如果您看到此内容,请打开服务请求并参考此知识库文章):
- 您可以看到来自 CloudPools 作业的前两个请求,使用虚拟样式寻址获得 HTTP 403 响应。- 紫色高光
- 然后,后两个请求恢复为路径样式寻址 - 蓝色突出显示
- 请求的示例 - 绿色突出显示
admin@> svc_request -start "2025-09-05 T18:22:53" -stop "2025-09-05 18:36:05" -t HEAD summary
svc_request v0.0.10 (svc_tools v1.0.0) Started 2018-09-05 18:54:12
Time range: 2018-09-05 18:22:53 - 2018-09-05 18:36:05
Running against node(s): <All nodes>
Request Type: HEAD
Resp
Node Time Request ID Prot Type MPU Client IP Status (bytes) (ms) URL
169.254.1.2 2025-09-05 18:34:07 0aa18451:1641e1e6334:565b3:3f s3 HEAD - 192.0.2.70 403 0 3 //d0007430acf369abf0d5681089a1a96abd8fdi16.cloudpools-uri.example.com/
169.254.2.3 2025-09-05 18:34:07 0aa1845a:1641e1ded8e:55d9f:77 s3 HEAD - 192.0.2.70 403 0 3 /m0007430acf369abf0d5681089a1a96abd8fdi16.cloudpools-uri.example.com/
169.254.1.1 2025-09-05 18:34:12 0aa18450:1641e1dea6e:56189:5 s3 HEAD - 192.0.2.70 200 0 6 d000e1e56aa209c8e7558b30d6d368c1a7b95i1/
169.254.1.1 2025-09-05 18:34:12 0aa18450:1641e1dea6e:56181:4d s3 HEAD - 192.0.2.70 200 0 3 m000e1e56aa209c8e7558b30d6d368c1a7b95i1/