Effettua il provisioning delle condivisioni file CIFS e NFS utilizzando le API di Active IQ Unified Manager
Puoi eseguire il provisioning di CIFS share e condivisioni file NFS sulle tue Storage Virtual Machines (SVM) utilizzando le API di provisioning fornite come parte di Active IQ Unified Manager. Questo flusso di lavoro di provisioning descrive in dettaglio i passaggi per recuperare le chiavi delle SVM, i livelli di servizio delle prestazioni e le policy di efficienza dello storage prima di creare le condivisioni file.
Il diagramma seguente illustra ogni fase del flusso di lavoro per il provisioning di una condivisione file. Include il provisioning sia delle CIFS share sia delle condivisioni file NFS.
|
|
Assicurarsi quanto segue:
|
-
Verifica se sono disponibili Data LIF o endpoint di accesso sull'SVM su cui vuoi creare la CIFS share. Ottieni l'elenco degli endpoint di accesso disponibili sull'SVM:
Categoria Verbo HTTP Percorso storage-provider
GET
/storage-provider/access-endpoints/storage-provider/access-endpoints/{key}Esempio di cURL
curl -X GET "https://<hostname>/api/storage-provider/access-endpoints?resource.key=7d5a59b3-953a-11e8-8857-00a098dcc959" -H "accept: application/json" -H "Authorization: Basic <Base64EncodedCredentials>"
-
Se il tuo endpoint di accesso è presente nell'elenco, ottieni la chiave dell'endpoint di accesso, altrimenti crea l'endpoint di accesso.
Assicurati di creare endpoint di accesso con il protocollo CIFS abilitato. Il provisioning delle CIFS share non andrà a buon fine se non hai creato un endpoint di accesso con il protocollo CIFS abilitato.
Categoria Verbo HTTP Percorso storage-provider
POST
/storage-provider/access-endpointsEsempio di cURL
Devi inserire i dettagli dell'endpoint di accesso che vuoi creare come parametri di input.
curl -X POST "https://<hostname>/api/storage-provider/access-endpoints" -H "accept: application/json" -H "Content-Type: application/json" -H "Authorization: Basic <Base64EncodedCredentials>" { \"data_protocols\": \"nfs\", \"fileshare\": { \"key\": \"cbd1757b-0580-11e8-bd9d-00a098d39e12:type=volume,uuid=f3063d27-2c71-44e5-9a69-a3927c19c8fc\" }, \"gateway\": \"10.132.72.12\", \"ip\": { \"address\": \"10.162.83.26\", \"ha_address\": \"10.142.83.26\", \"netmask\": \"255.255.0.0\" }, \"lun\": { \"key\": \"cbd1757b-0580-11e8-bd9d-00a098d39e12:type=lun,uuid=d208cc7d-80a3-4755-93d4-5db2c38f55a6\" }, \"mtu\": 15000, \"name\": \"aep1\", \"svm\": { \"key\": \"cbd1757b-0580-11e8-bd9d-00a178d39e12:type=vserver,uuid=1d1c3198-fc57-11e8-99ca-00a098d38e12\" }, \"vlan\": 10}"L'output JSON visualizza una chiave dell'oggetto Job che puoi usare per verificare l'endpoint di accesso che hai creato.
-
Verifica l'endpoint di accesso:
Categoria Verbo HTTP Percorso server di gestione
GET
/management-server/jobs/{key} -
Determina se devi creare una CIFS share o una condivisione file NFS. Per creare CIFS share, segui questi passaggi:
-
Verifica se il server CIFS è configurato sul tuo SVM, ovvero se sull'SVM è stata creata una mappatura Active Directory.
Categoria Verbo HTTP Percorso storage-provider
GET
/storage-provider/active-directories-mappings -
Se la mappatura di Active Directory è stata creata, prendi la chiave, altrimenti crea la mappatura di Active Directory sull'SVM.
Categoria Verbo HTTP Percorso storage-provider
POST
/storage-provider/active-directories-mappingsEsempio di cURL
Devi inserire i dettagli per creare la mappatura di Active Directory, come parametri di input.
curl -X POST "https://<hostname>/api/storage-provider/active-directories-mappings" -H "accept: application/json" -H "Content-Type: application/json" -H "Authorization: Basic <Base64EncodedCredentials>" { \"_links\": {}, \"dns\": \"10.000.000.000\", \"domain\": \"example.com\", \"password\": \"string\", \"svm\": { \"key\": \"9f4ddea-e395-11e9-b660-005056a71be9:type=vserver,uuid=191a554a-f0ce-11e9-b660-005056a71be9\" }, \"username\": \"string\"}"+ Si tratta di una chiamata sincrona e puoi verificare la creazione del mapping di Active Directory nell'output. In caso di errore, viene visualizzato il messaggio di errore per aiutarti a risolvere il problema e rieseguire la richiesta.
-
-
Ottieni la chiave SVM per l'SVM su cui vuoi creare la CIFS share o la condivisione file NFS, come descritto nell'argomento del flusso di lavoro Verifica degli SVM sui cluster.
-
Ottieni la chiave per il Performance Service Level eseguendo la seguente API e recuperando la chiave dalla risposta.
Categoria Verbo HTTP Percorso storage-provider
GET
/storage-provider/performance-service-levelsPuoi recuperare i dettagli dei livelli di servizio delle prestazioni definiti dal sistema impostando il
system_defined`parametro di input su `true. Dall'output, ottieni la chiave del livello di servizio delle prestazioni che vuoi applicare alla condivisione di file. -
Facoltativamente, ottieni la chiave di Storage Efficiency Policy per la Storage Efficiency Policy che vuoi applicare alla condivisione file eseguendo la seguente API e recuperando la chiave dalla risposta.
Categoria Verbo HTTP Percorso storage-provider
GET
/storage-provider/storage-efficiency-policies -
Crea la condivisione file. Puoi creare una condivisione file che supporti sia CIFS che NFS specificando l'elenco di controllo degli accessi e la policy di esportazione. I sottopassaggi seguenti forniscono informazioni se vuoi creare una condivisione file per supportare solo uno dei protocolli sul volume. Puoi anche aggiornare una condivisione file NFS per includere l'elenco di controllo degli accessi dopo aver creato la condivisione NFS. Per informazioni, consulta l'argomento Modifying storage workloads.
-
Per creare solo una CIFS share, raccogli le informazioni relative all'elenco di controllo degli accessi (ACL). Per creare la CIFS share, fornisci valori validi per i seguenti parametri di input. Per ogni gruppo di utenti che assegni, viene creato un ACL quando esegui il provisioning di una CIFS/SMB share. In base ai valori che inserisci per ACL e mappatura di Active Directory, il sistema determina il controllo degli accessi e la mappatura per la CIFS share al momento della creazione.
Un comando cURL con valori di esempio
{ "access_control": { "acl": [ { "permission": "read", "user_or_group": "everyone" } ], "active_directory_mapping": { "key": "3b648c1b-d965-03b7-20da-61b791a6263c" }, -
Per creare solo un file share NFS, raccogli le informazioni sulla policy di esportazione. Per creare il file share NFS, fornisci valori validi per i seguenti parametri di input. In base ai valori inseriti, la policy di esportazione viene associata al file share NFS al momento della creazione.
Durante il provisioning della condivisione NFS, puoi creare una policy di esportazione fornendo tutti i valori richiesti oppure fornire la chiave della policy di esportazione e riutilizzare una policy di esportazione esistente. Se vuoi riutilizzare una policy di esportazione per la VM di storage, devi aggiungere la chiave della policy di esportazione. A meno che tu non conosca la chiave, puoi recuperare la chiave della policy di esportazione usando l' `/datacenter/protocols/nfs/export-policies`API. Per creare una nuova policy, devi inserire le regole come mostrato nell'esempio seguente. Per le regole inserite, l'API tenta di cercare una policy di esportazione esistente facendo corrispondere host, VM di storage e regole. Se esiste una policy di esportazione, viene utilizzata. In caso contrario, viene creata una nuova policy di esportazione.
Un comando cURL con valori di esempio
"export_policy": { "key": "7d5a59b3-953a-11e8-8857-00a098dcc959:type=export_policy,uuid=1460288880641", "name_tag": "ExportPolicyNameTag", "rules": [ { "clients": [ { "match": "0.0.0.0/0" }
Dopo aver configurato l'access control list e la policy di esportazione, fornisci i valori validi per i parametri di input obbligatori per le condivisioni di file CIFS e NFS:
-
|
|
Storage Efficiency Policy è un parametro facoltativo per la creazione di condivisioni di file. |
| Categoria | Verbo HTTP | Percorso |
|---|---|---|
storage-provider |
POST |
|
L'output JSON visualizza una chiave oggetto Job che puoi utilizzare per verificare la condivisione file che hai creato. . Verifica la creazione della condivisione file utilizzando la chiave oggetto Job restituita dall'interrogazione del job:
| Categoria | Verbo HTTP | Percorso |
|---|---|---|
server di gestione |
GET |
|
Alla fine della risposta, vedi la chiave della condivisione file creata.
],
"job_results": [
{
"name": "fileshareKey",
"value": "7d5a59b3-953a-11e8-8857-00a098dcc959:type=volume,uuid=e581c23a-1037-11ea-ac5a-00a098dcc6b6"
}
],
"_links": {
"self": {
"href": "/api/management-server/jobs/06a6148bf9e862df:-2611856e:16e8d47e722:-7f87"
}
}
}
-
Verifica la creazione della condivisione di file eseguendo la seguente API con la chiave restituita:
Categoria Verbo HTTP Percorso storage-provider
GET
/storage-provider/file-shares/{key}Esempio di output JSON
Come puoi vedere, il metodo POST di
/storage-provider/file-sharesrichiama internamente tutte le API necessarie per ciascuna funzione e crea l'oggetto. Ad esempio, richiama l'API/storage-provider/performance-service-levels/per assegnare il Performance Service Level al file share.{ "key": "7d5a59b3-953a-11e8-8857-00a098dcc959:type=volume,uuid=e581c23a-1037-11ea-ac5a-00a098dcc6b6", "name": "FileShare_377", "cluster": { "uuid": "7d5a59b3-953a-11e8-8857-00a098dcc959", "key": "7d5a59b3-953a-11e8-8857-00a098dcc959:type=cluster,uuid=7d5a59b3-953a-11e8-8857-00a098dcc959", "name": "AFFA300-206-68-70-72-74", "_links": { "self": { "href": "/api/datacenter/cluster/clusters/7d5a59b3-953a-11e8-8857-00a098dcc959:type=cluster,uuid=7d5a59b3-953a-11e8-8857-00a098dcc959" } } }, "svm": { "uuid": "b106d7b1-51e9-11e9-8857-00a098dcc959", "key": "7d5a59b3-953a-11e8-8857-00a098dcc959:type=vserver,uuid=b106d7b1-51e9-11e9-8857-00a098dcc959", "name": "RRT_ritu_vs1", "_links": { "self": { "href": "/api/datacenter/svm/svms/7d5a59b3-953a-11e8-8857-00a098dcc959:type=vserver,uuid=b106d7b1-51e9-11e9-8857-00a098dcc959" } } }, "assigned_performance_service_level": { "key": "1251e51b-069f-11ea-980d-fa163e82bbf2", "name": "Value", "peak_iops": 75, "expected_iops": 75, "_links": { "self": { "href": "/api/storage-provider/performance-service-levels/1251e51b-069f-11ea-980d-fa163e82bbf2" } } }, "recommended_performance_service_level": { "key": null, "name": "Idle", "peak_iops": null, "expected_iops": null, "_links": {} }, "space": { "size": 104857600 }, "assigned_storage_efficiency_policy": { "key": null, "name": "Unassigned", "_links": {} }, "access_control": { "acl": [ { "user_or_group": "everyone", "permission": "read" } ], "export_policy": { "id": 1460288880641, "key": "7d5a59b3-953a-11e8-8857-00a098dcc959:type=export_policy,uuid=1460288880641", "name": "default", "rules": [ { "anonymous_user": "65534", "clients": [ { "match": "0.0.0.0/0" } ], "index": 1, "protocols": [ "nfs3", "nfs4" ], "ro_rule": [ "sys" ], "rw_rule": [ "sys" ], "superuser": [ "none" ] }, { "anonymous_user": "65534", "clients": [ { "match": "0.0.0.0/0" } ], "index": 2, "protocols": [ "cifs" ], "ro_rule": [ "ntlm" ], "rw_rule": [ "ntlm" ], "superuser": [ "none" ] } ], "_links": { "self": { "href": "/api/datacenter/protocols/nfs/export-policies/7d5a59b3-953a-11e8-8857-00a098dcc959:type=export_policy,uuid=1460288880641" } } } }, "_links": { "self": { "href": "/api/storage-provider/file-shares/7d5a59b3-953a-11e8-8857-00a098dcc959:type=volume,uuid=e581c23a-1037-11ea-ac5a-00a098dcc6b6" } } }