Cloud Volumes Service
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

API Cloud Volumes

Collaboratori

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.

Fasi
  1. Fare clic su API access nella pagina di storage o nel menu a discesa sotto il proprio nome utente.

  2. 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.

Fasi
  1. Fare clic su documentazione API nella pagina di storage.

    La pagina elenca le API disponibili.

  2. Scorrere la pagina per visualizzare le API disponibili.

    Le API sono elencate per funzione, ad esempio:

    • volumes

    • mounttargets

    • storage

    • snapshots

  3. 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:

Nota 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>
Importante 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>"
}'
Importante 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>
Importante 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.

Nota 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'