Go to main content
Guide RESTful API des systèmes Oracle® ZFS Storage Appliance, version OS8.6.x

Quitter la vue de l'impression

Mis à jour : Septembre 2016
 
 

Opérations LUN

Toutes les opérations LUN ou de volume sont configurées pour porter sur un pool de stockage ou un projet donné. Les commandes LUN suivantes sont disponibles.

Table 77  Commandes de volume
Demande
Chemin /api/storage/v1
Description
GET
/luns
Liste de tous les LUN
GET
/pools/<pool>/projects /<project>/luns
List LUNS
GET
/pools/<pool>/projects /<project>/luns/<lun>
Obtention des détails du LUN
POST
/pools/<pool>/projects /<project>/luns
Création d'un LUN
PUT
/pools/<pool>/projects /<project>/luns/<lun>
Modification d'un LUN
DELETE
/pools/<pool>/projects /<project>/luns/<lun>
Destruction d'un LUN

Le tableau suivant répertorie les propriétés des LUN : Les volumes peuvent également hériter des ou remplacer les propriétés du projet.

Table 78  Propriétés du volume
Type
Nom
Description
string
assignednumber
Numéro assigné à la LU
boolean
fixednumber
Indicateur de définition du numéro d'unité logique à la valeur actuelle
string
initiatorgroup
Groupe d'initiateurs
string
lunguid
STMF GUID
string
lunnumber
Numéro de LU. Nombre ou "auto"
string
project
Nom du projet (inaltérable)
object
source
Liste de la source des propriétés ("local", "inherited")
boolean
sparse
Indicateur d'activation du provisionnement fin
string
status
Etat de l'unité logique ("online", "offline")
string
targetgroup
Groupe cible
object
usage
Liste des statistiques d'utilisation du LUN
number
volblocksize
Taille de bloc des volumes
number
volsize
Taille des volumes
boolean
writecache
Indicateur d'activation du cache d'écriture

Certaines propriétés peuvent être héritées du projet. L'objet source répertorie chacune de ces propriétés et détermine si la propriété est "local" par rapport au LUN ou "inherited" du projet. Par défaut, ces propriétés sont héritées par le projet. Une fois définies, elles sont locales par rapport au LUN. L'objet source est inaltérable. Pour repasser la source sur "inherited", les propriétés peuvent être définies sur "unset".

Exemple de demande JSON pour annuler le paramétrage de la compression :

{"unset": ["compression"]}

List LUNS

La commande d'énumération des LUN renvoie une liste de LUN disponibles dans un pool ou un projet donné.

Table 79  Paramètres URI
Paramètre
Description
pool
Nom du pool de stockage
project
Nom du projet

Exemple de demande d'énumération des LUN au sein d'un projet "proj-01" :

GET /api/storage/v1/pools/gold/projects/proj-01/luns HTTP/1.1
Host: zfs-storage.example.com
Accept: application/json

En cas de succès de la commande Get, un statut HTTP 200 (OK) est renvoyé ainsi qu'un tableau des propriétés du LUN au format JSON.

Exemple de réponse :

HTTP/1.1 200 OK
Content-Type: application/json
{
    "luns": [{
        "id": "fa4ac6fb-0bcc-d2e3-0000-000000000000",
        “name”: “vol-01”
        ...
    }, {
         "id": "690ae407-7c4d-b5d2-0000-000000000000",
         “name”: “vol-01”,
         ....
    }]
}

Get LUN

La commande d'obtention de LUN renvoie les propriétés d'un LUN unique dans un pool ou un projet donné.

Table 80  Paramètres URI
Paramètre
Description
pool
Nom du pool de stockage
project
Nom du projet
lun
Nom du LUN

Exemple de demande d'obtention d'un LUN nommé "vol-01" :

GET /api/storage/v1/pools/gold/projects/proj-01/lun/vol-01 HTTP/1.1
Host: zfs-storage.example.com
Accept: application/json

En cas de succès de la commande Get, un statut HTTP 200 (OK) est renvoyé ainsi qu'un tableau des propriétés du LUN au format JSON.

Exemple de réponse :

HTTP/1.1 200 OK
Content-Type: application/json

{
    “lun”: {
        "logbias": "latency",
        "creation": "20130423T21:31:17",
        "nodestroy": false,
        "dedup": false,
        "rrsrc_actions": [],
        "id": "e3045406-319b-cf7a-0000-000000000000",
        "writecache": false,
        "compression": "off",
        "copies": 1,
        "stmfguid": "600144F0D8E0AE4100005176FDA60001",
        "source": {
            "compression": "default",
            "checksum": "inherited",
            "logbias": "default",
            "dedup": "default",
            "copies": "default",
            "exported": "inherited",
            "rrsrc_actions": "inherited",
            "secondarycache": "default"
        },
        "canonical_name": "platinum/local/default/disk1",
        "snaplabel": "",
        "usage": {
            "available": 881469214720.0,
            "loading": false,
            "snapshots": 0.0,
            "compressratio": 100.0,
            "total": 1073758208.0,
            "data": 1073758208.0
        },
        "secondarycache": "all",
        "collection": "local",
        "exported": true,
        "volsize": 1073741824.0,
        "pool": "platinum",
        "volblocksize": 8192,
        "checksum": "fletcher4",
        "project": "default",
        "sparse": false
    }
}

Create a New LUN

Cette commande crée un nouveau LUN. Vous devez indiquer une taille ou une source de clonage pour le nouveau LUN.

Table 81  Paramètres URI
Paramètre
Description
pool
Nom du pool de stockage
project
Nom du projet

Paramètres de demande :

  • nom : le nom du LUN doit être renseigné pour créer un nouveau LUN.

  • propriétés du volume : chaque propriété répertoriée dans les propriétés du LUN peut être définie en tant que valeur initiale.

Exemple de demande :

POST /api/storage/v1/pools/gold/projects/proj-01/luns HTTP/1.1
Host: zfs-storage.example.com
Accept: application/json

Request JSON:
{
        name : "vol-001",           // Volume name (required)

        size : 500000,              // New Volume size
        blocksize : 8192,           // New Volume block size
        sparse : true,              // New Volume sparse data flag

        initiatorgroup : 'default', // Initiator group name
        targetgroup : 'default',    // Target group name
        lunnumber : 'auto',         // Volume LUN number
        status : 'online',          // Initial Status ('online', 'offline')
        fixednumber : false,

        "source": {
            "snapshot_id" : "76b8950a-8594-4e5b-8dce-0dfa9c696358",
            "snapshot": "/pool-001/local/proj-001/snap-001"
        }
}

Une création réussie renvoie un statut HTTP 201 (Created) dont l'en-tête d'emplacement contient l'URI du nouveau LUN. Le corps contient toutes les propriétés du LUN au format JSON.

Exemple de résultats :

HTTP/1.1 201 Created
Content-Type: application/json
Location: http://zfs-storage.example.com:215
          /pools/gold/projects/proj-01/luns/vol-001

{
    “lun”: {
        "name": "vol-001",
        ...
    }
}

Modify LUN

La commande Modify LUN modifie les attributs d'un LUN existant.

Table 82  Paramètres URI
Paramètre
Description
pool
Nom du pool de stockage
project
Nom du projet
lun
Nom du LUN

Paramètres de demande, propriétés de volume : chaque propriété du LUN ou du projet peut être modifiée

Exemple de demande de modification d'un LUN nommé "proj-01" en "new-name" :

POST /api/storage/v1/pools/gold/projects/proj-01/luns/vol-01 HTTP/1.1
Host: zfs-storage.example.com
Content-Type: application/json
Accept: application/json

{
    “name”: “new-name”,
}

Une réponse obtenue avec succès renvoie le code de statut HTTP 202 (Accepted) et répertorie toutes les propriétés du LUN.

Exemple de réponse :

HTTP/1.1 201 Created
Content-Type: application/json
Location: /api/storage/v1/pools/gold/projects/proj-01/luns/new-name

{
    “lun”: {
        “name”: “new-name”,
        “pool”: “gold”,
        “collection”: “local”,
        “project”: “proj-01”,
        ...
    }
}

Delete Lun

La commande de suppression d'un LUN supprime un LUN unique dans un pool ou projet donné.

Table 83  Paramètres URI
Paramètre
Description
pool
Nom du pool de stockage
project
Nom du projet
lun
Nom du LUN

Exemple de demande :

DELETE /pools/gold/projects/proj-01/luns/lun-01 HTTP/1.1
Host: zfs-storage.example.com
Accept: application/json

Une commande Get réussie renvoie le code HTTP 204 (No Content).

Exemple de réponse :

HTTP/1.1 204 No-Content