ECS: Fehlende BaseURL verursacht 400/404-Fehler bei Lese- und Schreibvorgängen

Summary: Eine falsche BaseURL-Konfiguration führt dazu, dass REST-Anforderungen mit 400-Codefehlern fehlschlagen.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

HTTP 400/404-Fehler werden beim Lese- und Schreibversuch in ECS mithilfe von S3 angezeigt.

Wenn Listenvorgänge in einer Multi-VDC-Umgebung ausgeführt werden, können Anforderungen mit derMeldung E RROR_KEYPOOL_NOT_FOUND fehlschlagen.

 

Cause

Diese Situation tritt häufig in Umgebungen mit globalen Lastenausgleichsmodulen (Lastenausgleich zwischen zwei oder mehr VDCs) auf, in denen Objekte über dieselbe URL auf einem VDC zugänglich sind, auf dem anderen jedoch nicht. Sie kann jedoch in jeder Umgebung auftreten, wenn ein Nutzer nicht zum Namespace des Ziel-Buckets gehört.

Resolution

  1. Abfragen der Nutzerbereichseinstellungen auf dem ECS: 
# svc_rest_cmd Konfiguration/Objekt/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. Verwenden Sie svc_request, um nach den fehlgeschlagenen HTTP-Anforderungs-IDs zu suchen:
# svc_request Fehlerzusammenfassung
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. Rufen Sie Details der fehlgeschlagenen Anforderung in dataheadsvc-Protokollen ab. 
dataheadsvc-Protokolle finden Sie hier /opt/emc/caspian/fabric/agent/services/object/main/log

Alternativ können Sie svc_request verwenden, um die Protokolle zu überprüfen:# 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. Überprüfen Sie, was für die Basis-URL auf beiden Websites konfiguriert ist:
# 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. Der Load Balancer hat Anforderungen an das VDC xxxobj7 mit dem baseurl-Namen xxxobj6 gesendet, der auf diesem VDC nicht konfiguriert war. Daher konnte xxxobj7 VDC den Bucket nicht finden. Die Basis-URL ist eine VDC-spezifische Konfiguration. Sie wird nicht zwischen VDCs repliziert. 

  2. Die Lösung besteht darin, beiden VDCs beide Basis-URLs hinzuzufügen, da der Load Balancer in diesem Fall Querdatenverkehr an beide VDCs sendet. Die Einstellung "Use with Namespace" ist hier wichtig, da dies die Einstellung ist, die es ECS ermöglicht, den Namespace aus der vom Client bereitgestellten URL zu analysieren. Sobald diese Einstellungen korrekt sind, kann der Client von beiden VDCs aus auf Objekte/Buckets zugreifen.

Management von Basis-URLs

Affected Products

Elastic Cloud Storage

Products

ECS Appliance, ECS Appliance Hardware Series, ECS Appliance Software with Encryption, ECS Appliance Software without Encryption, Elastic Cloud Storage
Article Properties
Article Number: 000062997
Article Type: Solution
Last Modified: 08 May 2025
Version:  5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.