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 liées aux systèmes de fichiers

Les opérations liées aux systèmes de fichiers répertorient et gèrent les partages de systèmes de fichiers. Toutes les commandes sont configurées pour porter sur un pool de stockage ou un projet donné.

service_uri/pools/pool/project/project
Table 46  Commandes des systèmes de fichiers
Demande
Ajouter au chemin /api/storage/v{1|2}
Description
GET
/filesystems
Liste de tous les systèmes de fichiers
GET
/pools/pool/projects/project/filesystems
Enumération des systèmes de fichiers spécifiés
GET
/pools/pool/projects/project/filesystems?snaps=true
Liste de tous les systèmes de fichiers, y compris les instantanés
GET
/pools/pool/projects/project/filesystems/filesystem
Obtention des détails des systèmes de fichiers
POST
/pools/pool/projects/project/filesystems
Création d'un système de fichiers
PUT
/pools/pool/projects/project/filesystems/filesystem
Modification d'un système de fichiers
DELETE
/pools/pool/projects/project/filesystems/filesystem
Destruction d'un système de fichiers
GET
/pools/pool/projects/project/filesystems/filesystem/usage/groups
Obtention de l'utilisation d'un groupe de systèmes de fichiers
GET
/pools/pool/projects/project/filesystems/filesystem/usage/groups/group
Obtention de l'utilisation d'un groupe de systèmes de fichiers par rapport au groupe spécifié
POST
/pools/pool/projects/project/filesystems/filesystem/usage/groups
Création d'un quota de groupe de systèmes de fichiers
PUT
/pools/pool/projects/project/filesystems/filesystem/usage/groups/name
Modification d'un quota de groupe de systèmes de fichiers
GET
/pools/pool/projects/project/filesystems/filesystem/usage/users
Obtention de l'utilisation par un utilisateur de système de fichiers
GET
/pools/pool/projects/project/filesystems/filesystem/usage/users/user
Obtention de l'utilisation d'un système de fichiers par l'utilisateur spécifié
POST
/pools/pool/projects/project/filesystems/filesystem/usage/users
Création d'un quota d'utilisateur de systèmes de fichiers
PUT
/pools/pool/projects/project/filesystems/filesystem/usage/users/name
Modifie un quota d'utilisateur de systèmes de fichiers
GET
/pools/pool/projects/project/filesystems/filesystem/shadow/errors
Liste des erreurs de migration shadow

Chaque système de fichiers contient des propriétés liées au projet ainsi que les propriétés spécifiques au système de fichiers suivantes.

Table 47  Propriétés des systèmes de fichiers
Propriété
Type
Description
casesensitivity
string
Paramètre de sensibilité à la casse : mixed, sensitive ou insensitive
group
string
Nom du groupe
normalization
string
Normalisation
permissions
string
Autorisations du système de fichiers
project
string
Nom du projet
quota_snap
boolean
Indicateur d'inclusion d'instantanés dans le quota
reservation_snap
boolean
Indicateur d'inclusion d'instantanés dans la réservation
shadow
string
Source de migration de données
errors
string
Erreurs de migration de données
sharesmb_name
string
Nom du partage SMB
source
object
Propriétés d'héritage du projet
usage
object
Information d'utilisation du système de fichiers
user
string
Nom de l'utilisateur détenteur du partage
utf8only
boolean
Indicateur de rejet d'éléments hors UTF-8

Liste des systèmes de fichiers

La commande d'énumération des systèmes de fichiers affiche tous les systèmes de fichiers 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.

Paramètres de requête : filter – simple filtre de correspondance de chaîne nécessitant une propriété au sein du projet pour contenir la même chaîne de filtre par rapport à sa valeur.

La commande list filesystems utilise les paramètres URI suivants :

pool

Nom du pool de stockage

project

Nom de projet

Exemple de demande :

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

Une demande traitée avec succès renvoie un code de statut HTTP 200 (OK) ainsi qu'un tableau contenant les propriétés du système de fichiers au format JSON.

Exemple de résultat :

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

{
    "filesystems": [{
        "name": "filesystem-01",
        "project": "proj-01",
        "pool": "p1",
        ...
    }, {
        "name": "filesystem-02",
        "project": "proj-01",
        "pool": "p1",
        ...
    }]
}

Une liste de tous les systèmes de fichiers contenus dans tous les pools et projets est également prise en charge. Dans ce cas, l'URI serait /api/storage/v{1|2}/filesystems.

Exemple de demande d'obtention de tous les systèmes de fichiers dont les propriétés contiennent la chaîne "abcd" :

GET /api/storage/v1/filesystems?filter=abcd HTTP/1.1
Host: zfs-storage.example.com:215
Accept: application/json

Obtention d'un système de fichiers

La commande d'obtention des systèmes de fichiers renvoie les propriétés d'un système de fichiers 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

filesystem

Nom de système de fichiers

Exemple de demande pour répertorier le projet nommé proj-01 :

GET /api/storage/v1/pools/p1/projects/proj-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 système de fichiers au format JSON.

Exemple de résultat :

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

{
    "filesystem": {
        "logbias": "latency",
        "creation": "20130423T21:30:34",
        "nodestroy": false,
        "dedup": false,
        "sharenfs": "on",
        "sharesmb": "off",
        "mountpoint": "/export/mnt1",
        "snaplabel": "",
        "id": "424ca2ec-b3fa-df86-0000-000000000000",
        "readonly": false,
        "rrsrc_actions": [],
        "compression": "off",
        "sharetftp": "",
        "source": {
            "logbias": "default",
            "dedup": "default",
            "sharenfs": "inherited",
            "sharesmb": "off",
            "mountpoint": "inherited",
            "rrsrc_actions": "local",
            "compression": "default",
            "sharetftp": "inherited",
            "snapdir": "default",
            "aclmode": "default",
            "copies": "default",
            "aclinherit": "default",
            "shareftp": "inherited",
            "readonly": "default",
            "secondarycache": "default",
            "exported": "inherited",
            "vscan": "default",
            "reservation": "local",
            "atime": "default",
            "recordsize": "default",
            "checksum": "inherited",
            "sharesftp": "inherited",
            "nbmand": "default",
            "rstchown": "default"
        },
        "snapdir": "hidden",
        "aclmode": "discard",
        "copies": 1,
        "aclinherit": "restricted",
        "shareftp": "",
        "canonical_name": "p1/local/default/mnt1",
        "recordsize": 131072.0,
        "usage": {
            "available": 880395477504.0,
            "loading": false,
            "quota": 0.0,
            "snapshots": 18432.0,
            "compressratio": 100.0,
            "reservation": 0.0,
            "total": 50176.0,
            "data": 31744.0
        },
        "secondarycache": "all",
        "collection": "local",
        "exported": true,
        "vscan": false,
        "reservation": 0.0,
        "shadow": "none",
        "atime": true,
        "pool": "p1",
        "quota_snap": true,
        "name": "mnt1",
        "checksum": "fletcher4",
        "project": "default",
        "sharesftp": "",
        "nbmand": false,
        "reservation_snap": true,
        "sharedav": "",
        "rstchown": true,
        "root_acl": {
             "owner@:cC:fd:deny",
             "everyone@:rw:fd:allow",
             "user:admin1:rw:allow",
        }
        "smbshareacl": {
             "owner@:cC:fd:deny",
             "everyone@:rw:fd:allow",
             "user:admin1:rw:allow",
        }
}

Création d'un système de fichiers

La commande de création de système de fichiers crée un système de fichiers avec un nom donné situé dans le pool de stockage ou projet donné. Le nouveau système de fichiers avec les propriétés par défaut est renvoyé.

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

Paramètres de demande :

  • nom : le nom du système de fichiers doit être renseigné pour créer un nouveau système de fichiers.

  • Propriétés du système de fichiers : chaque propriété répertoriée dans les propriétés du système de fichiers peut être définie en tant que valeur initiale.

Exemple de demande de création d'un système de fichiers nommé share-01 et dont l'utilisateur admin1 est le propriétaire :

POST /api/storage/v1/pools/p1/projects/proj-01/filesystems HTTP/1.1
Host: zfs-storage.example.com:215
Content-Type: application/json
Accept: application/json

{
    "name": "share-01",
    "root_user": "admin1"
}

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

Exemple de résultat :

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

{
    "filesystem": {
        "name": "share-01",
        "pool": "p1",
        "collection": "local",
        "project": "proj-01",
        "root_user": "admin1"
        ...
    }
}

Modification d'un système de fichiers

La commande de modification d'un système de fichiers modifie les attributs d'un système de fichiers existant. Une réponse obtenue avec succès renvoie le code de statut HTTP 202 (Accepted) et répertorie toutes les propriétés du système de fichiers.

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

Paramètres de demande, propriétés de système de fichiers : chaque propriété du système de fichiers ou projet peut être modifiée.

Exemple de demande de modification d'un nom de système de fichiers share-01 en new-name et de modification de l'utilisateur en nobody :

PUT /api/storage/v1/pools/p1/projects/proj-01/filesystems/share-01 HTTP/1.1
Host: zfs-storage.example.com:215
Content-Type: application/json
Accept: application/json

{
    "name": "new-name",
    "root_user": "nobody",
}

Exemple de résultat :

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: http://zfs-storage.example.com:215/pools/p1/projects/proj-01/filesystems/share-01

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

Suppression d'un système de fichiers

La commande de suppression de système de fichiers supprime un système de fichiers 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

filesystem

Nom de système de fichiers

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 /api/storage/v1/pools/p1/projects/proj-01/filesystems/share-01 HTTP/1.1
Host: zfs-storage.example.com:215
Accept: application/json

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

Exemple de résultat :

HTTP/1.1 204 No-Content

Quota et utilisation des systèmes de fichiers

Les quotas d'utilisateur ou de groupe peuvent être créés ou modifiés respectivement avec les demandes POST et PUT. Les demandes GET liées aux ressources d'utilisation de système de fichiers peuvent être utilisées pour obtenir les données d'utilisation par utilisateur ou par groupe associé au projet.