Go to main content

Guide RESTful API des systèmes Oracle® ZFS Storage Appliance, version OS8.8.x

Quitter la vue de l'impression

Mis à jour : Août 2021
 
 

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 48  Commandes de volume
Demande
Ajouter au chemin /api/storage/v{1|2}
Description
GET
/luns
Liste de tous les LUN
GET
/pools/pool/projects/project/luns
Liste de LUN
GET
/pools/pool/projects/project/luns?snaps=true
Liste de tous les LUN, y compris les instantanés
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 49  Propriétés du volume
Propriété
Type
Description
assignednumber
nombre ou liste de nombres
Numéro assigné à la LU Si présenté à plusieurs groupes d'initiateurs, le type est une liste de numéros.
Si présenté à plusieurs groupes d'initiateurs, l'ordre des propriétés assignednumber et initiatorgroups est aligné. Par exemple, le premier élément de la liste assignednumber est associé au premier élément de la liste initiatorgroups.
fixednumber
boolean
Indicateur de définition du numéro d'unité logique à la valeur actuelle.
initiatorgroups
liste de chaînes
Groupe d'initiateurs.
Si le LUN est présenté à plusieurs groupes d'initiateurs, l'ordre des propriétés assignednumber et initiatorgroups est aligné. Par exemple, le premier élément de la liste assignednumber est associé au premier élément de la liste initiatorgroups.
lunguid
string
STMF GUID.
lunumber
number ou string
Numéro de LU. Nombre ou auto.
project
string
Nom du projet (inaltérable).
source
object
Liste de la source des propriétés : local ou inherited.
sparse
boolean
Indicateur d'activation du provisionnement fin.
status
string
Etat de l'unité logique : online or offline.
targetgroup
string
Groupe cible
usage
object
Liste des statistiques d'utilisation du LUN
volblocksize
number
Taille de bloc des volumes
volsize
number
Taille des volumes
writecache
boolean
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"]}

Liste de LUN

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


Remarque -  Les paramètres de requête depth et match_property-name=value ne sont pas pris en charge.

Les paramètres URI suivants sont utilisés :

pool

Nom du pool de stockage

project

Nom de projet

filesystem

Nom de système de fichiers

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

GET /api/storage/v1/pools/p1/projects/proj-01/luns HTTP/1.1
Host: zfs-storage.example.com:215
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ésultat :

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",
         ....
    }]
}

Obtention d'un LUN

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

Les paramètres URI suivants sont utilisés :

pool

Nom du pool de stockage

project

Nom de projet

lun

Nom de LUN

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

GET /api/storage/v1/pools/p1/projects/proj-01/lun/vol-01 HTTP/1.1
Host: zfs-storage.example.com:215
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ésultat :

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": "p1/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": "p1",
        "volblocksize": 8192,
        "checksum": "fletcher4",
        "project": "default",
        "sparse": false
    }
}

Création d'un LUN

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

Les paramètres URI suivants sont utilisés :

pool

Nom du pool de stockage

project

Nom de 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/p1/projects/proj-01/luns HTTP/1.1
Host: zfs-storage.example.com:215
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
        lunumber : 'auto',          // Volume LU 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ésultat :

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

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

Modification d'un LUN

La commande de modification de LUN modifie les attributs d'un LUN existant.

Les paramètres URI suivants sont utilisés :

pool

Nom du pool de stockage

project

Nom de projet

lun

Nom de 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é vol-01 en new-name :

POST /api/storage/v1/pools/p1/projects/proj-01/luns/vol-01 HTTP/1.1
Host: zfs-storage.example.com:215
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ésultat :

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

{
    "lun": {
        "name": "new-name",
        "pool": "p1",
        "collection": "local",
        "project": "proj-01",
        ...
    }
}

Suppression d'un LUN

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

Les paramètres URI suivants sont utilisés :

pool

Nom du pool de stockage

project

Nom de projet

lun

Nom de LUN

Pour surveiller l'espace à récupérer dans le pool de stockage, saisissez la commande GET pour pools/pool. Notez l'espace pour la propriété async_destroy_reclaim_space. Lorsque l'opération est terminée, un 0 (zéro) s'affiche.

Exemple de demande :

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

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

Exemple de résultat :

HTTP/1.1 204 No-Content