API Cloud Volumes
Le funzionalità Cloud Volumes disponibili tramite l’interfaccia utente Web sono disponibili anche tramite le API RESTful. Le API consentono di creare e gestire volumi cloud e sviluppare script e strumenti di provisioning.
Individuazione dell’URL API, della chiave API e della chiave segreta
Per eseguire una chiamata API, è necessario ottenere l’URL API Cloud Volumes, la chiave API e la chiave segreta.
-
Fare clic su API access nella pagina di storage o nel menu a discesa sotto il proprio nome utente.
-
Registrare l’URL dell’API Cloud Volumes, la chiave API e la chiave segreta.
Elenco delle API disponibili
La pagina di storage visualizza le API disponibili che è possibile utilizzare.
-
Fare clic su documentazione API nella pagina di storage.
La pagina elenca le API disponibili.
-
Scorrere la pagina per visualizzare le API disponibili.
Le API sono elencate per funzione, ad esempio:
-
volumes
-
mounttargets
-
storage
-
snapshots
-
-
Per ottenere dettagli ed esempi su come utilizzare una chiamata API, selezionare la funzione e fare clic su una delle seguenti azioni:
-
GET
: letture -
POST
: crea -
PUT
: aggiorna o modifica -
DELETE
: distrugge
-
Utilizzo delle API Cloud Volumes
Questa sezione illustra come utilizzare le API Cloud Volumes. Gli esempi utilizzano curl da una shell bash Linux. È necessario sostituire <api_url>
, <api_key>
, e. <secret_key>
con i valori da cui hai registrato Individuazione dell’URL API, della chiave API e della chiave segreta.
Sintassi
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X [GET,POST,PUT,DELETE] <api_url>/v2/<command>
Esempi
Elenco dei volumi
Nell’esempio seguente vengono visualizzate informazioni su tutti i volumi:
Eseguire il piping del comando jq migliora la formattazione di json output. Potrebbe essere necessario installare jq sul sistema.
|
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X GET <api_url>/v2/Volumes | jq
Elenco dei dettagli di un volume specifico
Ogni volume ha un ID chiamato volumeId
, ad esempio, 07c9ab6c-b655-a9fe-f904-b9b97ef9baaa
. L’inserimento dell’ID nella chiamata API fornisce i dettagli per il volume specifico:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X GET <api_url>/v2/Volumes/<volumeId> | jq
Creazione di un volume
Nell’esempio seguente viene utilizzato un POST
chiamare per creare un volume chiamato Test
, nella regione us-west-1
, con un allocated capacity
Di 100 GB ed esportati con nfsv3
:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X POST <api_url>/v2/Volumes -d '
{
"name": "Test",
"creationToken": "grahams-test-volume3",
"region": "us-west-1",
"serviceLevel": "standard",
"quotaInBytes": 100000000000,
"exportPolicy": {"rules": [{"ruleIndex": 1,"allowedClients": "0.0.0.0/0","unixReadOnly": false,"unixReadWrite": true,"cifs": false,"nfsv3": true,"nfsv4": false}]},
"protocolTypes": ["NFSv3"],
"labels": ["test"]
}'
Aggiornamento di un volume
Nell’esempio seguente viene utilizzato un PUT
chiamare per aggiornare un volume chiamato Test
, impostare il livello di servizio su `extreme`E impostare la capacità allocata su 600 GB:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X PUT <api_url>/v2/Volumes/<volumeId> -d '
{
"serviceLevel": "extreme",
"quotaInBytes": 600000000000
}'
Eliminazione di un volume
Nell’esempio seguente viene utilizzato un DELETE
chiamare per eliminare un volume specificato da volumeId
:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X DELETE <api_url>/v2/Volumes/<volumeId>
Usare con cautela. Questa chiamata API elimina il volume e tutti i relativi dati. |
Creazione di uno snapshot
Nell’esempio seguente viene utilizzato un POST
chiamare per creare uno snapshot chiamato snappy
per un volume specifico:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X POST <api_url>/v2/Volumes/<volumeId>/Snapshots -d '
{
"name": "<snapshot-name>"
}'
Creazione di un criterio di snapshot
Nell’esempio seguente viene utilizzato un PUT
chiamare per creare policy di snapshot per un volume specifico:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X PUT <api_url>/v2/Volumes/<volumeId> -d '
{
"snapshotPolicy": {
"dailySchedule": {},
"enabled": true,
"hourlySchedule": {
"minute": 33,
"snapshotsToKeep": 24
},
"monthlySchedule": {},
"weeklySchedule": {}
}
}'
Elenco di snapshot per un volume specifico
Nell’esempio seguente viene utilizzato un GET
chiamare per elencare le snapshot di un volume specifico:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X GET <api_url>/v2/Volumes/<volumeId>/Snapshots
Ripristino di uno snapshot
Nell’esempio seguente viene utilizzato un POST
chiamare per ripristinare un volume da uno snapshot specificato da snapshotId
e. volumeId
:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X POST <api_url>/v2/Volumes/<volumeId>/Revert -d '
{
"snapshotId": "<snapshotId>"
}'
Usare con cautela. Questa chiamata API causa la perdita dei dati scritti dopo la data dello snapshot. |
Creazione di un nuovo volume da uno snapshot
Nell’esempio seguente viene utilizzato un POST
chiamare per creare un nuovo volume in base a un’istantanea di un volume esistente, specificata da snapshotId
:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X POST <api_url>/v2/Volumes -d '
{
"snapshotId": "<snapshotId>",
"name": "Copy",
"creationToken": "perfectly-copied-volume",
"region": "us-west-1",
"serviceLevel": "extreme",
"protocolTypes": ["NFSv3"]
}'
Eliminazione di uno snapshot
Nell’esempio seguente viene utilizzato un DELETE
chiamare per eliminare uno snapshot specificato da snapshotId
:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X DELETE <api_url>/v2/Volumes/<volumeId>/Snapshots/<snapshotId>
Usare con cautela. Questa chiamata API elimina lo snapshot e tutti i relativi dati. |
Accesso a un servizio di directory
Nell’esempio seguente viene utilizzato un POST
Chiamare per accedere a un servizio di directory e fornire l’indirizzo IP DNS, il dominio, il nome NetBIOS per il server SMB, il nome utente e la password per un amministratore del servizio di directory e l’unità organizzativa (facoltativo e predefinito CN=computer).
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X POST <api_url>/v2/Storage/ActiveDirectory -d '
{
"DNS": "<ip-address>",
"domain": "<domain>",
"netBIOS": "<netbios-name>",
"organizationalUnit": "OU=Cloud Servers,DC=nas-cloud,DC=local",
"password": "secret",
"region": "us-west-1",
"username": "Administrator"
}'
Visualizzazione dell’integrazione del servizio directory
Nell’esempio seguente viene utilizzato un GET
chiamare per visualizzare la configurazione per l’integrazione del servizio di directory.
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X GET <api_url>/v2/Storage/ActiveDirectory
Annullamento dell’accesso a un servizio di directory
Nell’esempio seguente viene utilizzato un DELETE
chiamare per disconnettersi dall’integrazione di un servizio di directory. Questo richiede l’UUID per il join corrente, che può essere trovato utilizzando GET
chiamate elencate sopra.
Non è possibile disconnettersi da un servizio di directory in uso; stato "in uso". |
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X DELETE <api_url>/v2/Storage/ActiveDirectory/<UUID>
Ottieni statistiche sulle performance
Nell’esempio seguente viene utilizzato un GET
Chiamare per elencare le statistiche di lettura e scrittura IOPS, throughput e latenza in un periodo di tempo specifico per un volume specificato da volumeId
.
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X GET '<api_url>/v2/Volumes/<volumeId>/PerformanceMetrics?startDate=2021-02-05T09:00&endDate=2021-02-05T09:05&type=READ_IOPS,WRITE_IOPS,TOTAL_THROUGHPUT,AVERAGE_OTHER_LATENCY'