ECS: Brakujący adres BaseURL powodujący błędy 400/404 podczas operacji odczytu i zapisu

Podsumowanie: Nieprawidłowa konfiguracja BaseURL powoduje niepowodzenie żądań REST z błędami kodu 400.

Ten artykuł dotyczy Ten artykuł nie dotyczy Ten artykuł nie jest powiązany z żadnym konkretnym produktem. Nie wszystkie wersje produktu zostały zidentyfikowane w tym artykule.

Objawy

Błędy HTTP 400/404 są widoczne podczas próby odczytu i zapisu do ECS przy użyciu S3.

Gdy operacje listy są uruchomione w środowisku z wieloma VDC, żądania mogą zakończyć się niepowodzeniem zkomunikatem E RROR_KEYPOOL_NOT_FOUND.

 

Przyczyna

Taka sytuacja jest typowa dla środowisk z globalnymi modułami równoważenia obciążenia (równoważenie obciążenia między co najmniej dwoma VDC), w których obiekty są dostępne w jednym VDC, ale nie są dostępne w drugim przy użyciu tego samego adresu URL, ale może być widoczna w dowolnym środowisku, jeśli użytkownik nie należy do przestrzeni nazw zasobnika docelowego.

Rozwiązanie

  1. Wykonywanie zapytań dotyczących ustawień zakresu użytkownika w 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. Użyj svc_request, aby wyszukać identyfikatory żądań HTTP, które zakończyły się niepowodzeniem:
# svc_request errorsummary
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. Uzyskaj szczegółowe informacje o żądaniu, które zakończyło się niepowodzeniem w dziennikach dataheadsvc. 
Dzienniki DataHeadsvc można znaleźć tutaj /opt/emc/caspian/fabric/agent/services/object/main/log

Możesz także użyć narzędzia svc_request do sprawdzenia dzienników:# 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. Sprawdź, co jest skonfigurowane dla podstawowego adresu URL w obu witrynach:
# 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. Moduł równoważenia obciążenia wysyłał żądania do VDC xxxobj7 o nazwie baseurl xxxobj6, która nie została skonfigurowana w tym VDC. W związku z tym xxxobj7 VDC nie mogło znaleźć zasobnika. Podstawowy adres URL to konfiguracja specyficzna dla VDC. Nie jest on replikowany między VDC. 

  2. Rozwiązaniem jest dodanie obu podstawowych adresów URL do obu VDC, ponieważ load balancer w tym przypadku wysyła ruch krzyżowy do obu VDC. Ustawienie "Użyj z przestrzenią nazw" jest tutaj ważne, ponieważ jest to ustawienie, które umożliwia ECS analizowanie przestrzeni nazw z adresu URL podanego przez klienta. Po poprawnym ustawieniu klient może uzyskiwać dostęp do obiektów/zasobników z obu VDC.

Zarządzanie podstawowymi adresami URL

Produkty, których dotyczy problem

Elastic Cloud Storage

Produkty

ECS Appliance, ECS Appliance Hardware Series, ECS Appliance Software with Encryption, ECS Appliance Software without Encryption, Elastic Cloud Storage
Właściwości artykułu
Numer artykułu: 000062997
Typ artykułu: Solution
Ostatnia modyfikacja: 08 maj 2025
Wersja:  5
Znajdź odpowiedzi na swoje pytania u innych użytkowników produktów Dell
Usługi pomocy technicznej
Sprawdź, czy Twoje urządzenie jest objęte usługą pomocy technicznej.