Data Domain: DD 및 DDMC용 내장형 REST API를 사용하는 방법

Riepilogo: DD(Data Domain)(물리적 및 가상) 및 PowerProtect DDMC(DD Management Center) 설치에는 모두 REST 서비스가 내장되어 있습니다. 고객은 이를 사용하여 DD 및 DDMC와 상호 작용하는 자체 애플리케이션을 구축할 수 있습니다.

Questo articolo si applica a Questo articolo non si applica a Questo articolo non è legato a un prodotto specifico. Non tutte le versioni del prodotto sono identificate in questo articolo.

Istruzioni

최신 설명서는 https://developer.dell.com/apis/products/data-protection 에서 찾을 수 있습니다.

DD와 DDMC는 모두 기본적으로 웹 기반 REST API가 활성화된 상태로 제공됩니다. REST API는 DD 및 DDMC와 프로그래밍 방식으로 상호 작용하는 수단입니다. 이 문서에서는 이제부터 간단한 클라이언트 및 서버 프로토콜을 사용하여 DD에 대한 예를 사용합니다. HTTP 프로토콜은 상태를 유지하지 않으며 클라이언트가 DD에서 상태를 읽고 특수하게 조작된 HTTP 호출로 명령을 실행할 수 있도록 합니다.

명령줄에서 다음 명령을 실행하면 웹 기반 REST API 서비스(web-service)의 상태가 표시됩니다.

# adminaccess show
Service       Enabled   Allowed Hosts
-----------   -------   ---------------------
ssh           yes       -
scp           yes       (same as ssh)
telnet        no        DD3300.example.com
                        DD3300.example.com
ftp           no        DD3300.example.com
                        DD3300.example.com
ftps          yes       -
http          yes       -
https         yes       -
web-service   yes       N/A
-----------   -------   ---------------------
...

 


REST API는 UI와 동일한 포트에서 서비스되므로 별도로 비활성화할 수 있는 방법이 없습니다. API에 대한 모든 요청은 UI 또는 CLI에 대한 요청과 동일한 방식으로 인증되어야 하므로 보안 위험이 발생하지 않습니다.

REST API를 시작하는 가장 좋은 방법은 모든 DD 및 DDMC에서 번들 클라이언트를 사용하는 것입니다. 다음 위치에서 액세스할 수 있습니다.

https://DD_OR_DDMC_IP_ADDRESS/api/

 

그러면 다음과 같은 몇 가지 중요한 리소스에 대한 링크가 있는 페이지가 표시됩니다.

  • API 설명서: DD 또는 DDMC에서 지원하는 사용 가능한 모든 API 호출의 세부 목록입니다.
  • REST 테스트 클라이언트: DD 웹 인터페이스 자체에서 API 호출 테스트


API 설명서는 프로그래머가 DD REST API를 활용하여 DD 기반의 애플리케이션을 구축하는 데 사용해야 하는 모든 것입니다. 

API를 사용하려면 DD 인증이 필요합니다. 다음 두 가지 정보가 필요합니다.

  • X-DD-AUTH-TOKEN: 인증 성공 시 DD가 제공하고 추가 요청에 대한 인증자로 사용해야 하는 쿠키입니다.
  • X-DD-UUID: API에 대한 (대부분의) 요청에 사용할 고유한 DD 식별자입니다. 개별 DD의 경우 이는 불필요해 보일 수 있지만 개별 DD를 선택할 수 있는 DDMC에는 분명히 필요합니다.



DD에 대해 인증하려면 "/rest/v1.0/auth" 메서드를 사용합니다. "curl"이 설치되어 있고 DD에 대한 네트워크 액세스 권한이 있는 호스트에서 이 작업을 수행하려면 다음과 같이 요청을 실행합니다.

# curl --include --insecure -X 'POST' --header 'Content-Type: application/json' --header 'Accept: application/text' -d '{ "auth_info":{ "username":"sysadmin","password":"SomePass" } }' 'https://DD_OR_DDMC_IP_ADDRESS:3009/rest/v1.0/auth'

 

위에서 실행한 명령줄에 대한 몇 가지 설명은 다음과 같습니다.

  • 쿼리 응답 중 일부가 본문의 일부가 아닌 HTTP 응답 태그로 반환되므로 "--include" 옵션이 필요합니다
  • 알려지고 신뢰할 수 있는 CA 권한 목록과 비교하여 서버 CA 인증서를 확인하도록 curl을 구성한 경우 "--insecure" 옵션이 필요합니다. DD와 함께 번들로 제공되는 REST TEST 클라이언트는 이 옵션을 추가하지 않지만 CA 인증서를 확인하는 데 사용해야 합니다. 그렇지 않으면 테스트 클라이언트 내에서 실행되는 모든 명령이 실패합니다(undefinedERROR: 텍스트 상태: 오류). 대신 명령줄에서 예제 "curl"을 실행하려고 하면 오류는 다음과 같습니다.
curl: (60) SSL certificate problem: self signed certificate in certificate chain
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

 

  • HTTP 메서드 "POST"를 사용하고 있습니다. 모든 API 메서드에는 설명서에 명확하게 강조 표시된 자체 메서드가 있습니다.
  • "--header" 옵션은 호출된 DD에 HTTP 수준 헤더 또는 옵션을 전달하는 데 사용됩니다.
  • "-d"는 요청 본문을 DD로 전송합니다. 이 경우 사용자 이름과 암호를 전송합니다
  • 마지막으로 특정 인증 메서드를 호출하는 URI를 마지막 매개 변수(https://DD_OR_DDMC_IP_ADDRESS:3009/rest/v1.0/auth)로 호출합니다. HTTPS를 사용하므로 자격 증명이 유선을 통해 암호화된 상태로 이동합니다. 참고: 문서 및 내장 테스트 클라이언트는 포트 443을 통해 액세스하지만 REST API 서비스 진입점은 포트 3009에 있으며 작동하려면 HTTPS가 아닌 HTTPS(HTTP)를 사용해야 합니다



위의 인증 쿼리에 대한 응답은 다음과 같습니다.

HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 112
X-DD-AUTH-TOKEN: 434f1d6dc1528bb8d3ad66c70dc7f74f9
X-DD-UUID: 7850d7a24f93f502:1346d63c57821e38
Access-Control-Allow-Credentials: true
Cache-Control: no-cache
Server: Data Domain OS
Access-Control-Expose-Headers: AUTHORIZATION, X-DD-AUTH-TOKEN, X-DD-JSON-RESPONSE-WITH-ROOT, X-DD-PEER-USERNAME

{"service_status": {"details": "success", "code": 0, "link": [{"rel": "related", "href": "/rest/v1.0/system"}]}}

 

빈 줄 앞의 모든 것은 응답으로 전송된 HTTP 헤더입니다. 이후의 콘텐츠는 응답 본문이며, 이 경우 성공을 알려줍니다. 이 방법에서 가장 중요한 데이터는 다음과 같습니다.

  • X-DD-AUTH-TOKEN(434f1d6dc1528bb8d3ad66c70dc7f74f9) 추가 작업을 인증하기 위해 지정된 시간 동안 사용할 수 있는 임시 인증 토큰입니다
  • X-DD-UUID (7850d7a24f93f502:1346d63c57821e38) 요청 중인 DD의 ID로, 이후 요청에 사용해야 합니다.


추가 요청의 경우 해당 값을 사용해야 합니다. DD 파일 시스템에 대한 정보를 찾으려 한다고 가정해 보겠습니다. 아래


시스템 로컬 API 설명서

스크린 샷과 같이 "API 문서"로 이동하여 요구 사항에 가장 적합한 호출을 찾습니다. 필요한 매개 변수를 확인한 후 아래와 같이 요청을 작성할 수 있습니다.  이 경우 인증 방법과 같이 "POST" 대신 "GET" 유형의 요청을 실행합니다.

# curl --include --insecure -X 'GET' --header 'Content-Type: application/json' --header 'Accept: application/text' --header 'X-DD-AUTH-TOKEN:434f1d6dc1528bb8d3ad66c70dc7f74f9' 'https://DD_OR_DDMC_IP_ADDRESS:3009/rest/v1.0/dd-systems/7850d7a24f93f502%3A1346d63c57821e38/file-systems'

 

그러나 인증 토큰이 잘못되었거나 만료되었음을 나타내는 다음 응답이 표시됩니다.

{"details": "**** Authentication token \"434f1d6dc1528bb8d3ad66c70dc7f74f9\" is invalid.", "code": 5427, "link": [{"rel": "self", "href": "/rest/v1.0/auth"}]}

 

쿼리를 실행하고 의도한 결과를 얻으려면 다음과 같이 새 인증 토큰을 생성해야 합니다.

# curl --include --insecure -X GET --header 'Accept: application/json' --header 'X-DD-AUTH-TOKEN: 178a7b8f337ce3027acdcd889ed10446c' 'https://DD_OR_DDMC_IP_ADDRESS:3009/rest/v1.0/dd-systems/7850d7a24f93f502%3A1346d63c57821e38/file-systems'
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1123
X-DD-AUTH-TOKEN: 178a7b8f337ce3027acdcd889ed10446c
X-DD-UUID: 7850d7a24f93f502:1346d63c57821e38
Access-Control-Allow-Credentials: true
Cache-Control: no-cache
Server: Data Domain OS
Access-Control-Expose-Headers: AUTHORIZATION, X-DD-AUTH-TOKEN, X-DD-JSON-RESPONSE-WITH-ROOT, X-DD-PEER-USERNAME

{"hostname": "DD3300.example.com", "fs_status": "sn_enabled", "fs_clean_status": "inactive", "fs_cleaning_info": {"filesys_clean_info": {"cleaning_status": "inactive", "cleaning_dates": {"start_epoch": 1663879075, "end_epoch": 1663879131, "success_epoch": 1663679711}, "is_aborted": true, "abort_reason": "Cleaning was aborted by user.", "throttle": 50, "schedule": {"occurrence": "weekly", "days": ["Tue"], "time": "0600"}}, "cloud_clean_info": {"cleaning_status": "inactive", "cleaning_dates": {}, "is_aborted": false, "throttle": 50, "frequency": 0}}, "fs_uptime_secs": 344738, "fs_options": [{"key": "local-compression-type", "value": "gz"}, {"key": "marker-type", "value": "auto"}, {"key": "report-replica-as-writable", "value": "disabled"}, {"key": "staging-reserve", "value": "5% = 4271.2 GiB percent of total space"}, {"key": "warning-space-usage", "value": "90"}, {"key": "critical-space-usage", "value": "95"}], "link": [{"rel": "self", "href": "/rest/v1.0/dd-systems/7850d7a24f93f502%3A1346d63c57821e38/file-systems"}, {"rel": "parent", "href": "/rest/v1.0/dd-systems/7850d7a24f93f502%3A1346d63c57821e38"}]}


응답 본문의 출력은 표준인 JSON 형식으로 호출자에게 전송됩니다.

Prodotti interessati

Data Domain
Proprietà dell'articolo
Numero articolo: 000203754
Tipo di articolo: How To
Ultima modifica: 30 lug 2026
Versione:  3
Trova risposta alle tue domande dagli altri utenti Dell
Support Services
Verifica che il dispositivo sia coperto dai Servizi di supporto.