PowerStore: Verwendung der PowerStore REST API

요약: Dieser Artikel enthält eine Einführung in die PowerStore REST API, einschließlich praktischer Anwendungsbeispiele und häufiger Fehler.

이 문서는 다음에 적용됩니다. 이 문서는 다음에 적용되지 않습니다. 이 문서는 특정 제품과 관련이 없습니다. 모든 제품 버전이 이 문서에 나와 있는 것은 아닙니다.

지침

Zum Testen von REST APIs können mehrere Tools verwendet werden, einschließlich Postman, HTTPie und cURL. In diesem Artikel wird cURL für alle Beispiele verwendet, da es standardmäßig auf den meisten Betriebssystemen verfügbar ist.
 
Gängige REST API-Nutzung:

 

Node-Zustand:
curl -H "Accept: application/json" -u "admin:********" -X GET -k https://xx.xx.xx.xx/api/rest/hardware?select=id,name,type,lifecycle_state?type=eq.Node

Ausgabebeispiele:

{"id":"00b941ceea9243f0a36e85abe9504214","name":"BaseEnclosure-NodeB","type":"Node","lifecycle_state":"Healthy"},
{"id":"2877d096fd2a4cc4b3b8af97f21c1c24","name":"BaseEnclosure-NodeA","type":"Node","lifecycle_state":"Healthy"}

 

Replikationsstatus:
curl -H "Accept: application/json" -u "admin:********" -X GET -k https://xx.xx.xx.xx/api/rest/replication_session?select=id,role,state,last_sync_timestamp,local_resource_id

Ausgabebeispiele:

{"id":"047e38ee-9aeb-4761-8ca5-393204fe6584","role":"Metro_Preferred","state":"OK","last_sync_timestamp":"2026-07-16T15:48:05.628263+00:00","local_resource_id":"d34bd80e-1d43-4692-ab37-e307bc92eb73"},
{"id":"26dd4105-a24f-4d82-b40b-20dcefbfe5df","role":"Quelle","state":"OK","last_sync_timestamp":"2026-07-16T15:31:54.64127+00:00","local_resource_id":"82c40277-dee4-46de-8559-920fe5f942cc"},
{"id":"414dba20-08b1-4d5e-a521-517a3b37473a","role":"Metro_Preferred","state":"OK","last_sync_timestamp":"2026-07-16T15:51:05.525764+00:00","local_resource_id":"eb970724-cc3e-4661-8d71-bec7f44baf10"}

 

Systemwarnung:
curl -H "Accept: application/json" -u "admin:********" -X GET -k https://xx.xx.xx.xx/api/rest/alert?select=id,event_code,severity,resource_type,generated_timestamp,state,description_l10n

Ausgabebeispiele:

{"id":"008abb47-e72d-4608-b915-b8c01328b64e","event_code":"0x01700304","severity":"Major","resource_type":"remote_system","generated_timestamp":"2026-05-11T01:51:01.280627+00:00","state":"ACTIVE","description_l10n":"Alle Datenverbindungen vom Remotesystem Ghost wurden getrennt."},
{"id":"01114811-82a9-484e-8cf9-3da50c0e3d7b","event_code":"0x01701801","severity":"Info","resource_type":"volume","generated_timestamp":"2026-07-14T02:15:34.764524+00:00","state":"CLEARED","description_l10n":"Metro witness configured for resource HyperV-Node1 is enged."}

 

Auditereignisse:
curl -H "Accept: application/json" -u "admin:********" -X GET -k https://xx.xx.xx.xx/api/rest/audit_event?select=id,type,timestamp,username,resource_type,resource_action,message_l10n,client_address

Die Ausgabe kann riesig sein und einen Filter erfordern. Zum Beispiel zum Anzeigen von Ereignissen im Zusammenhang mit dem Nutzer admin. Try:
curl -H "Accept: application/json" -u "admin:********" -X GET -k https://xx.xx.xx.xx/api/rest/audit_event?select=id,type,timestamp,username,resource_type,resource_action,message_l10n,client_address?username=eq.admin

Ausgabebeispiele:

{"id":"111540","type":"Config","timestamp":"2026-03-11T20:25:57.267124+00:00","username":"admin","resource_type":"host","resource_action":"delete","message_l10n":"Host mit Name: Thors 183.24 (iSCSI) und ID: c698f28b-49ac-4268-a9c7-c6da66bdfbc8.","client_address":"10.158.49.47"},
{"id":"111541","type":"Config","timestamp":"2026-03-11T20:25:57.337655+00:00","username":"admin","resource_type":"host","resource_action":"delete"," message_l10n":"Erfolgreiche Löschung von Metadaten mit den Schlüsseln: [], die der Ressource mit dem Typ: host und der ID: c698f28b-49ac-4268-a9c7-c6da66bdfbc8 zugeordnet sind.","client_address":"10.158.49.47"}

 

Snapshot-Liste:
curl -H "Accept: application/json" -u "admin:********" -X GET -k https://xx.xx.xx.xx/api/rest/volume_snap_list_cma_view?select=id,name,source_timestamp,description,creation_timestamp

Ausgabebeispiele:
{"id":"24d7856d-d389-4f05-9752-ebb1de61a6d6","name":"Walid Snaps.PowerTriage-RHEL (Walid NICHT LÖSCHEN).2026-07-15T00:" 00:00Z 189403910","source_timestamp":"2026-07-15T00:03:16.096762+00:00","description":"","creation_timestamp":"2026-07-15T00:03:16.096762+00:00"},
{"id":"2cfd727f-b09c-4895-8fd5-93850fd63698","name":"Daily-File.7DSL0M2-1-001.2026-07-14T00:08:08Z 281536767","source_timestamp":"2026-07-14T00:08:08.618343+00:00"," description":null,"creation_timestamp":"2026-07-14T00:08:08.618343+00:00"}

 

Performancekennzahlen:
curl -H "Accept: application/json" -H "Content-Type: application/json" -u "admin:********" -X POST -k https://xx.xx.xx.xx/api/rest/metrics/generate -d '{ "entity": "performance_metrics_by_appliance", "entity_id": "A1","interval": "One_Day" }'|jq '.'

Ausgabebeispiele:


{ "appliance_id": "A1",
"timestamp": "2026-07-15T00:00:00Z",
"avg_read_latency": 172.76094,
"avg_write_latency": 404.14536,
"avg_mirror_write_latency": 924.59375,
"avg_mirror_overhead_latency": 364.82297,
"avg_latency": 273.2135,
"avg_read_size": 91601.2,
"avg_write_size": 6204.5635,
"avg_io_size": 54527.355,
"avg_read_iops": 9.996701,
"avg_write_iops": 7.669595,
"avg_mirror_write_iops": 0.024386574,
  "avg_total_iops": 17.666296,
"avg_read_bandwidth": 915709.9,
"avg_write_bandwidth": 47586.49,
"avg_mirror_write_bandwidth": 190.67259,
"avg_total_bandwidth": 963296.4,
"avg_io_workload_cpu_utilization": 0.00399437453597784,
"max_avg_read_latency": 401.14688,
"max_avg_write_latency": 1679.9584,
"max_avg_latency": 652.1067,
"max_avg_mirror_write_latency": 3842,
"max_avg_mirror_overhead_latency": 3319,
  "max_avg_read_size": 99656.45,
"max_avg_write_size": 30189.037,
"max_avg_io_size": 85726.97,
"max_read_iops": 161.2,
"max_write_iops": 680.6,
"max_mirror_write_iops": 3.8,
"max_total_iops": 834,
"max_read_bandwidth": 8509440,
"max_write_bandwidth": 8792986,
"max_mirror_write_bandwidth": 22732.8,
"max_total_bandwidth": 17252044,
"max_io_workload_cpu_utilization": 0.2170485556125641,
"repeat_count": 1,

  ...

  "response_definition": "performance_metrics_by_appliance_rollup",
"entity": "performance_metrics_by_appliance"
}

 

Häufige Fehler mit REST API:

Fügen Sie Ihrem curl-Befehl "-v" hinzu, um den Fehler anzuzeigen. 

Beispiel 1: falsche Zugangsdaten.

curl -H "Accept: application/json" -u "admin:wrong_password" -k https://10.241.219.160/api/rest/hardware?select=id,name,type,lifecycle_state?type=eq.Node

* Anfrage vollständig abgeschickt
* TLSv1.3 (IN), TLS-Handshake, Newsession-Ticket (4):
< HTTP/1.1 401 Unbefugt
< WWW-Authentifizierung: SSOCustom realm="Cyclone Realm"
< content-type: application/json
< content-length: 0

Beispiel 2: httpd wird nicht ausgeführt.

curl -v -H "Accept: application/json" -u "admin:********" -k https://xx.xx.xx.xx/api/rest/hardware?select=id,name,type,lifecycle_state?type=eq.Node
* Ich versuche xx.xx.xx.xx:443...
* Verbindung zu XX.XX.XX.XX Port 443 von XX.XX.XX.XX Port 59124 fehlgeschlagen: Verbindungstimeout
* Verbindung zu xx.xx.xx.xx Port 443 konnte nach 31939 ms nicht hergestellt werden: Verbindung zum Server
konnte nicht hergestellt werden* Verbindung wird geschlossen #0
cURL: (28) Verbindung zu xx.xx.xx.xx Port 443 konnte nach 31939 ms nicht hergestellt werden: Verbindung zum Server konnte nicht hergestellt werden

Beispiel 3: falsche Syntax ohne Inhaltstyp.

curl -v -H "Accept: application/json" -u "admin:********" -X POST -k https://xx.xx.xx.xx/api/rest/metrics/generate -d '{ "entity": "performance_metrics_by_appliance", "entity_id": "A1","interval": "One_Day" }'{
"messages":[{"severity":"Error","code":"0xE04040030001","message_l10n":"Validation failed: Request Content-Type header '[application/x-www-form-urlencoded]' stimmt mit keinem zulässigen Typ überein. Muss einer der folgenden sein: [application/json]., Ein Anforderungstext ist erforderlich, aber keiner wurde gefunden..","arguments":[{"delimiter":", ","messages":[{"severity":"Error","code":"validation.request.contentType.notAllowed","message_l10n":"Request Content-Type-Header '[application/x-www-form-urlencoded]' stimmt mit keinem zulässigen Typ überein. Muss einer der folgenden sein: [application/json].","arguments":["[application/x-www-form-urlencoded]","[application/json]"]},{"severity":"Error","code":"validation.request.body.missing","message_l10n":"Ein Anforderungstext ist erforderlich, aber keiner wurde gefunden."}]}]]}]}

 

Nützliche Links:

https://dl.dell.com/content/manual55475248-dell-powerstore-rest-api-developers-guide.pdf?language=en-us

https://< PWST_CLUSTER_IP>/Swaggerui/

 

해당 제품

PowerStore, PowerStoreOS
문서 속성
문서 번호: 000490125
문서 유형: How To
마지막 수정 시간: 31 7월 2026
버전:  2
다른 Dell 사용자에게 질문에 대한 답변 찾기
지원 서비스
디바이스에 지원 서비스가 적용되는지 확인하십시오.