ECS: La falta de BaseURL provoca errores de código 400/404 durante las operaciones de lectura y escritura

Resumen: La configuración incorrecta de BaseURL hace que las solicitudes de REST fallen con errores de código 400.

Este artículo se aplica a Este artículo no se aplica a Este artículo no está vinculado a ningún producto específico. No se identifican todas las versiones del producto en este artículo.

Síntomas

Se observan errores HTTP 400/404 cuando se intenta leer y escribir en ECS mediante S3.

Cuando las operaciones de lista se ejecutan en un entorno de varios VDC, las solicitudes pueden fallar con elmensaje E RROR_KEYPOOL_NOT_FOUND.

 

Causa

Esta situación es común para entornos con balanceadores de carga globales (carga de balanceo entre dos o más VDC), donde los objetos son accesibles en un VDC, pero no accesibles en el otro, utilizando la misma URL, pero se puede ver en cualquier entorno si un usuario no pertenece al espacio de nombres del depósito de destino.

Resolución

  1. Consulte la configuración del alcance del usuario en 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. Utilice svc_request para buscar los ID de solicitud HTTP fallidos:
# svc_request resumen de errores
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. Obtenga detalles de la solicitud fallida en los registros de dataheadsvc. 
Los registros de dataheadsvc se encuentran aquí /opt/emc/caspian/fabric/agent/services/object/main/log

Como alternativa, utilice svc_request para comprobar los registros:# 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. Compruebe lo que está configurado para la URL base en ambos sitios:
# 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. El balanceador de carga enviaba solicitudes al VDC xxxobj7 con el nombre baseurl xxxobj6, que no estaba configurado en ese VDC. Por lo tanto, xxxobj7 VDC no pudo encontrar el depósito. La URL base es una configuración específica de VDC. No se replica entre VDC. 

  2. La solución es agregar ambas URL base a ambos VDC, ya que el balanceador de carga en este caso envía tráfico cruzado a ambos VDC. La configuración "Use with Namespace" es importante aquí, ya que esta es la configuración que permite que ECS analice el espacio de nombres desde la URL proporcionada por el cliente. Una vez que estos ajustes son correctos, el cliente puede acceder a objetos/depósitos desde ambos VDC.

Administración de URL base

Productos afectados

Elastic Cloud Storage

Productos

ECS Appliance, ECS Appliance Hardware Series, ECS Appliance Software with Encryption, ECS Appliance Software without Encryption, Elastic Cloud Storage
Propiedades del artículo
Número del artículo: 000062997
Tipo de artículo: Solution
Última modificación: 08 may. 2025
Versión:  5
Encuentre respuestas a sus preguntas de otros usuarios de Dell
Servicios de soporte
Compruebe si el dispositivo está cubierto por los servicios de soporte.