ECS. PowerScale. Проблемы производительности CloudPools
Summary: Настройка ECS и PowerScale (прежнее название — Isilon) для использования адресации в виртуальном стиле и повышения производительности.
Symptoms
Если в ECS не настроен виртуальный IP-адрес и адресация в виртуальном стиле, существует потенциальная проблема, которая может привести к низкой скорости передачи.
CloudPools поддерживает оба стиля адресации контейнеров (Virtual Style Addressing и Path Style Addressing), однако сначала всегда пробует адресацию в виртуальном стиле.
Cause
PowerScale и CloudPools считывают сохраненные данные фрагментами размером по 1 Мбайт.
При чтении файла размером более 1 МБ эти фрагменты извлекаются последовательно, и каждый девятый фрагмент представляет собой 168-байтный файл заголовка, который содержит.
Проблема возникает, когда они делают несколько тысяч или сотни тысяч таких запросов. Это, как правило, неизбежные накладные расходы при выполнении запроса S3 в совокупности замедляют скорость извлечения и передачи файлов.
Поскольку он сначала пытается использовать адресацию в виртуальном стиле, это может вызвать задержку между запросами, если он не настроен на использование адресации в виртуальном стиле.
Resolution
Пролог:
- VIP = "Виртуальный IP-адрес (VIP) - это экземпляр с балансировкой нагрузки, когда мир указывает своим браузерам, чтобы попасть на сайт. У VIP-адреса есть IP-адрес, который должен быть общедоступным, чтобы его можно было использовать. Обычно с VIP-клиентом связан номер порта TCP или UDP , например порт TCP 80 для веб-трафика. К VIP-серверу прикреплен по крайней мере один реальный сервер, на который он раздает трафик».
- CP = облачные пулы
- DNS RR = циклический перебор DNS
- CNAME = Запись канонического имени — это тип записи ресурса в системе доменных имен, которая сопоставляет одно доменное имя с другим, называемое каноническим именем. Это может оказаться удобным при запуске нескольких служб с одного IP-адреса.
При настройке адресации в виртуальном стиле с коротким базовым URL-адресом необходимо:
- VIP-адрес балансировщика нагрузки, используемого при настройке CP (или VIP-адрес DNS RR)
- Используйте подстановочный знак CNAME в DNS для VIP-адреса балансировщика нагрузки, чтобы bucket-name.loadbalancer-fqdn.emc.com разрешал любое имя контейнера CP PowerScale в VIP-адрес балансировщика нагрузки (или DNS RR)
- CNAME для loadbalancer.emc.com
- Базовый URL-адрес VIP-адреса, настроенный в пользовательском интерфейсе ECS
Адресация в стиле виртуального хоста (рекомендуется для CloudPools):
В схеме адресации виртуального хоста имя контейнера отображается в имени хоста. Например, доступ к контейнеру под названием «mybucket» на хосте ecs1.yourco.com будет осуществляться с помощью:
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:
При доступе к хранилищу ECS с помощью службы S3 убедитесь, что 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 - Это должна быть существующая запись A в вашей среде для FQDN балансировщика нагрузки, GTM или DNS с циклическим перебором.
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. Настройка базового URL-адреса в пользовательском интерфейсе ECS:
Если у вас есть приложение S3, использующее адресацию в стиле виртуального хоста, и вы хотите использовать ее для подключения к ECS, необходимо задать базовый URL-адрес, чтобы ECS знала, какая часть адреса ссылается на контейнер и, при необходимости, на пространство имен. Базовый URL-адрес можно задать с помощью портала ECS или с помощью REST API управления ECS. Для этого требуется роль системного администратора ECS.
На странице «Управление базовыми URL-адресами» отображаются созданные базовые 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
Если для него настроено пространство имен, он просматривает еще один поддомен, чтобы определить пространство имен и контейнер.
Добавление базового URL-адреса в ECS:
- Для выполнения этой операции требуется роль системного администратора в ECS.
- Необходимо убедиться, что домен, указанный в запросе, который использует URL-адрес для указания местоположения объекта, разрешается в расположение узла данных ECS или балансировщика нагрузки, который находится перед узлами данных.
Процедура:
- На портале ECS выберите Settings > Object Base URLs.
- Выберите Новый базовый URL-адрес.
Отобразится страница Новый базовый URL-адрес.

- Введите имя базового URL-адреса. Это предоставляет дополнительные сведения о базовом URL-адресе при просмотре таблицы базовых URL-адресов.
- Введите базовый URL-адрес.
Если URL-адреса местоположений объектов имеют форму «d0007430acf369abf0d5681089a1a96abc8fdi16.cloudpools_uri.example.com», то базовый URL-адрес будет cloudpools_uri.example.com.
Вы можете указать формат в селекторе пространства имен. - Выберите формат, в котором адрес объекта будет закодирован в URL-адресе: С пространством имен или без него
- Нажмите Сохранить.
Часть 3. Настройка URI для CloudPools:
Наконец, мы должны задать правильный URI в конфигурации CloudPools. Возможно, URI уже настроен правильно, но сейчас самое время проверить.
URI должен быть CNAME, который мы настроили в части 1 и который указывает на балансировщик нагрузки, GTM или циклический перебор.
Ваш URI:
cloudpools_uri.example.com
При необходимости вы можете указать номер порта следующим образом, но это не обязательно:
cloudpools_uri.example.com:9020
cloudpools_uri.example.com:443
При настройке облачной учетной записи не добавляйте префикс «subdomain» к базовому URL-адресу.
Например, не настраивайте облачную учетную запись с помощью URI http://powerscale.cloudpools_uri.example.com:9020
Исключение составляют случаи, когда пространство имен на ECS является PowerScale и на предыдущем шаге части 2 вы установили флажок «Использовать базовый URL-адрес с пространством имен»
Часть 4. Проверка правильности использования новой конфигурации в CloudPools.
Если вам требуется помощь в выполнении любого из этих действий, отправьте сервисную заявку в службу поддержки PowerScale или ECS.
IP-адрес нашего балансировщика нагрузки = 192.0.2.12
IP-адрес нашего DNS = 192.0.2.53
IP-адрес ECS = 192.168.219.254
IP-адрес нашего PowerScale = 192.0.2.70
- Убедитесь, что DNS правильно разрешает подстановочный знак, он должен разрешаться в IP-адрес вашего VIP-адреса или LB.
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 правильно разрешает базу, он должен разрешаться в IP-адрес вашего VIP или LB.
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
- Убедитесь, что URI CloudPools задан правильно.
- Проверьте базовые URL-адреса, настроенные в пользовательском интерфейсе ECS.
- Запуск задания CloudPools в PowerScale.
Обратите внимание на время в формате UTC, когда задание было создано и когда оно было завершено. - С помощью интерфейса командной строки ECS убедитесь, что запросы выдаются правильно и нет ошибок, используя время, собранное на шаге 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/