ECS. Отсутствие указания BaseURL вызывает ошибки 400 и 404 при выполнении операций чтения и записи

Сводка: Неправильная конфигурация BaseURL приводит к сбою запросов REST с ошибками кода 400.

Данная статья применяется к Данная статья не применяется к Эта статья не привязана к какому-либо конкретному продукту. В этой статье указаны не все версии продуктов.

Симптомы

Ошибки HTTP 400/404 наблюдаются при попытке чтения и записи в ECS с помощью S3.

Если операции со списками выполняются в среде с несколькими виртуальными ЦОД, запросы могут завершаться сбоем ссообщением E RROR_KEYPOOL_NOT_FOUND.

 

Причина

Эта ситуация характерна для сред с глобальными балансировщиками нагрузки (балансировкой нагрузки между двумя или более VDC), в которых объекты доступны в одном VDC, но недоступны в другом, используя один и тот же URL-адрес, но могут наблюдаться в любой среде, если пользователь не принадлежит к пространству имен целевого контейнера.

Разрешение

  1. Запросите параметры области действия пользователя в ECS: 
# svc_rest_cmd config/object/properties.json
  
Example:

admin@g1-ecs3:~> svc_rest_cmd config/object/properties.json
svc_rest_cmd 1.0.10

{
  "properties": {
    "user_scope": "GLOBAL"
  },
  "empty": false,
  "allProperties": {
    "user_scope": "GLOBAL"
  }
}
  1. Используйте svc_request для поиска идентификаторов неудачных HTTP-запросов:
# svc_request ошибкаsummary
Example:
admin@g1-ecs3:~> svc_request errorsummary
svc_request v1.0.11 (svc_tools v1.5.4)                 Started 2019-07-02 16:26:14


Time range:  2019-07-02 14:26:14 - 2019-07-02 16:26:14
Running against node(s): <All nodes>
                                                                                     Resp                         
                                                                                     Time     Retry               
Node             Time                Request ID                         Type  Status (ms)     #       Exception                      URL
169.254.1.2      19-07-02 14:38:41   0a51548d:16b6bc5bf6e:9b15:1       GET   404    17       0       ObjectControllerException      https://testjkns3.xxxobj6.ms.com/bkt1/object1
 

  1. Получите сведения о неудачном запросе в журналах dataheadsvc. 
Журналы dataheadsvc можно найти здесь /opt/emc/caspian/fabric/agent/services/object/main/log

Либо используйте svc_request для проверки журналов:# svc_request -r <request ID> -start "<specify_start_time>" showlogs
admin@ecs:/opt/emc/caspian/fabric/agent/services/fabric/data> svc_request -r 0a51548d:16b6bc5bf6e:9b15:1 -start 14:00 showlogs
svc_request v1.0.10 (svc_tools v1.5.3)                 Started 2019-07-01 19:55:02

Time range:  2019-07-01 14:00:00 - 2019-07-01 19:55:01
Running against node(s): <All nodes>
Request ID: 0a51548d:16b6bc5bf6e:9b15:1
##################################################
Reqid:                    0a51548d:16b6bc5bf6e:9b15:1

Reply timestamp:          2019-07-01T14:56:41,806
Protocol:                 s3
Request Type:             GET
Size:                     177 Bytes (0.000 MB)
Response Time:            17 ms
URL:                      https://testjkns3.xxxobj6.ms.com/bkt1/object1
ShortURL:                 https://testjkns3.xxxobj6.ms.com/bkt1/object1
Bucket:
Object:                   /testjkns3.xxxobj6.ms.com/bkt1/object1
Options:
Status:                   404
Client IP:                10.xxx.xx.17
Thread ID:                qtp1776502451-104390

Request (or retry)
  completed:              No
Exception:                ObjectAccessException
Retry #:                  0 (of 0 total)

Multi-part upload:        -

log messages:
169.254.1.7  [qtp1776502451-104390-0a51548d:16b6bc5bf6e:9b15:1-s3-10.196.105.17] ERROR ResourceClient.java (line 331) 
request id 0a51548d:16b6bc5bf6e:9b15:2, 
command type REQUEST_BUCKET_GET failed with error code ERROR_KEYPOOL_NOT_FOUND and message 'bucket xxx1.bkt1 not found'
169.254.1.7 2019-07-01T14:56:41,801  INFO KeyPoolInfoAccess.java (line 283) 
Cannot get keypool info from DT server since kpId xxx1.bkt1 is not found there
169.254.1.7 2019-07-01T14:56:41,801  ERROR S3Exception.java (line 942) got object access exception. RequestId 0a51548d:16b6bc5bf6e:9b15:1
com.emc.storageos.objcontrol.object.exception.ObjectAccessException: NoSuchBucket
169.254.1.7  [qtp1776502451-104390] INFO RequestLog.java (line 83) 10.196.105.17 GET https://testjkns3.xxxobj6.ms.com/bkt1/object1 HTTP/1.1 404 17 - 177

 

  1. Проверьте, что настроено для базового URL на обоих сайтах:
# svc_rest_cmd object/baseurl
Example:

Output from xxxobj7 VDC, we see only a default base url

svc_rest_cmd 1.0.10

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<base_urls>
  <base_url>
    <id>urn:ObjectBaseUrl:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</id>
    <link rel="self" href="/object/baseurl/urn:ObjectBaseUrl:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"/>
    <name>DefaultBaseUrl</name>
  </base_url>
</base_urls>

VDC xxxobj6 has customer  baseurl configured which is not configured on xxxobj7
svc_rest_cmd 1.0.10

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<base_urls>
  <base_url>
    <id>urn:ObjectBaseUrl:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</id>
    <link rel="self" href="/object/baseurl/urn:ObjectBaseUrl:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"/>
    <name>DefaultBaseUrl</name>
  </base_url>
  <base_url>
    <id>urn:ObjectBaseUrl:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</id>
    <link rel="self" href="/object/baseurl/urn:ObjectBaseUrl:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"/>
    <name>xxxobj6</name>
  </base_url>
</base_urls>
 

  1. Подсистема балансировки нагрузки отправляла запросы на виртуальный ЦОД xxxobj7 с именем baseurl xxxobj6, который не был настроен на этом виртуальном ЦОД. Поэтому xxxobj7 VDC не удалось найти ведро. Базовый URL-адрес — это конфигурация, специфичная для виртуального ЦОД. Она не реплицируется между виртуальными ЦОД. 

  2. Решение состоит в том, чтобы добавить оба базовых URL-адреса в оба виртуальных ЦОД, так как подсистема балансировки нагрузки в этом случае отправляет перекрестный трафик на оба виртуальных ЦОД. Настройка «Использовать с пространством имен» здесь важна, так как именно она позволяет ECS анализировать пространство имен из URL-адреса, предоставленного клиентом. Как только эти настройки будут правильными, клиент сможет получать доступ к объектам/контейнерам из обоих виртуальных ЦОД.

Управление базовыми URL-адресами

Затронутые продукты

Elastic Cloud Storage

Продукты

ECS Appliance, ECS Appliance Hardware Series, ECS Appliance Software with Encryption, ECS Appliance Software without Encryption, Elastic Cloud Storage
Свойства статьи
Номер статьи: 000062997
Тип статьи: Solution
Последнее изменение: 08 May 2025
Версия:  5
Получите ответы на свои вопросы от других пользователей Dell
Услуги технической поддержки
Проверьте, распространяются ли на ваше устройство услуги технической поддержки.