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
 
 

Cibles de réplication

Le tableau suivant répertorie les commandes cible de réplication disponibles.

Table 56  Commandes liées aux cibles de réplication
Demande
Ajouter au chemin /api/storage/v{1|2}
Description
POST
/replication/targets
Création d'une nouvelle cible de réplication
GET
/replication/targets/target
Obtention des propriétés de la cible de réplication spécifiée
GET
/replication/targets
Enumération de tous les objets de cible de réplication
PUT
/replication/targets/target
Modifier l'objet de la cible de réplication spécifiée
DELETE
/replication/targets/target
Destruction de l'objet cible spécifié

Le tableau suivant répertorie les propriétés d'une cible de réplication.

Propriété
Description
label
Nom de la cible à afficher.
hostname
Nom de domaine complet ou adresse IPv4 de l'appareil cible.
host_match
Exécution ou omission de la vérification du nom d'hôte. Reportez-vous à Vérification du certificat de la cible.
auto_accept_cert
Acceptation automatique du certificat de la cible. Reportez-vous à Vérification du certificat de la cible.

Liste des cibles de réplication

Répertorie toutes les cibles de réplication disponibles sur un système.

Exemple de demande :

GET /api/storage/v2/replication/targets HTTP/1.1
Host: zfs-storage.example.com:215
Authorization: Basic Tm8gcGVla2luZyE=
Accept: application/json

Exemple de résultat :

HTTP/1.1 200 OK
X-Zfssa-Replication-Api: 1.0
Content-Type: application/json
Content-Length: 529

{ 
        "targets": [{     
            "address": "ipaddr-1", 
            "label": "zfs-storage-1", 
            "hostname": "ipaddr-2", 
            "asn": "9d7a7543-ca83-68f5-a8fc-f818f65e1cfc", 
            "actions": 0, 
            "target": "target-000", 
            "href": "/api/storage/v2/replication/targets/zfs-storage-1" 
        }, { 
            "address": "ipaddr-3", 
            "label": "zfs-storage-2", 
            "hostname": "ipaddr-4", 
            "asn": "16a4c82c-26c1-4a50-e317-ac53181f2e86", 
            "actions": 0, 
            "target": "target-001", 
            "href": "/api/storage/v2/replication/targets/zfs-storage-2" 
        }] 
}

Affichage d'une cible de réplication spécifique

Cette commande répertorie les détails d'une cible de réplication unique. L'accès à cette cible s'effectue par son nom d'hôte.

Exemple de demande :

GET /api/storage/v2/replication/targets/zfs-storage-1 HTTP/1.1
Authorization: Basic Tm8gcGVla2luZyE=
Host: zfs-storage.example.com:215
Accept: application/json

Exemple de résultat :

HTTP/1.1 200 OK
X-Zfssa-Replication-Api: 1.0
Content-Type: application/json
Content-Length: 337

{ 
        "target": { 
            "href": "/api/storage/v2/replication/targets/zfs-storage-1", 
            "address": "ipaddr-1", 
            "label": "zfs-storage-1", 
            "hostname": "ipaddr-2", 
            "asn": "9d7a7543-ca83-68f5-a8fc-f818f65e1cfc", 
            "actions": 0 
        } 
}

Création d'une cible de réplication

La commande targets crée une nouvelle cible de réplication pour une réplication distante.

Pour garantir que le trafic de réplication passe sur une interface réseau précise, configurez une route statique pour la cible qui comprend cette interface, comme indiqué dans Ajout d'une route.

Exemple de demande :

Reportez-vous à Vérification du certificat de la cible pour plus d'informations sur les propriétés hostname et auto_accept_cert.

POST /api/replication/v2/targets HTTP/1.1
Authorization: Basic Tm8gcGVla2luZyE=
Host: zfs-storage.example.com:215
Accept: application/json
Content-Type: application/json
Content-Length: 54

{
    "label":"zfs-storage-3",
    "hostname":"zfs-storage-3.example.com",
    "root_password":"root-password",
    "auto_accept_cert":true
}

Exemple de résultat :

HTTP/1.1 201 Created
Content-Length: 135
Content-Type: application/json
Location: /service/v2/services/replication/targets/target-000
X-Zfssa-Replication-Api: 1.0
{
    "target": {
        "actions": 0,
        "address": "123.45.78.9:216",
        "asn": "fa5bf303-0dcb-e20d-ac92-cd129ccd2c81",
        "auto_accept_cert": true,
        "hostname": "zfs-storage-3.example.com",
        "href": "/service/v2/services/replication/targets/target-000",
        "label": "zfs-storage-3"
    }
}

Vérification du certificat de la cible

Lorsque vous créez une cible de réplication, une vérification de certificat est effectuée. Cette dernière est composée des deux étapes suivantes :

  1. Vérification du nom d'hôte figurant sur le certificat

  2. Vérification de la validité du certificat

Si l'une des deux vérifications échoue, la cible n'est pas créée.

Vérification du nom d'hôte

La valeur de la propriété hostname peut être un nom de domaine complet ou une adresse IPv4. Il est recommandé d'utiliser le nom de domaine complet de la cible.

Cette vérification sert à confirmer que le nom d'hôte indiqué dans la propriété hostname pour la cible correspond à l'hôte du certificat. Si vous indiquez une adresse IP ou un nom de domaine non qualifié pour hostname, et que le certificat ne comporte que des noms de domaine complets, la vérification du nom d'hôte échoue et la cible n'est pas créée.

Si la cible utilise un certificat ASN, indiquez le nom de domaine complet de la cible comme valeur de la propriété hostname.

La vérification du nom d'hôte est exécutée par défaut. Si la propriété host_match est définie sur false, la vérification du nom d'hôte n'a pas lieu.

Pour renforcer la sécurité, utilisez le nom de domaine complet de la cible comme valeur de la propriété hostname et assurez-vous que la propriété host_match est définie sur true.

Vérification de la validité du certificat

La vérification de la validité du certificat sert à confirmer que l'un des certificats suivants figure dans la liste des certificats sécurisés de la source et que son utilisation par des pairs est autorisée :

  • Le certificat de l'appareil cible.

  • Le certificat de l'autorité de certification qui a émis celui de l'appareil cible.

Si le certificat n'est pas approuvé, le code HTTP 409 (Conflict) est renvoyé et la cible n'est pas créée. Dans l'exemple suivant, la ligne de message est divisée pour une meilleure lisibilité :

{
    "fault": {
        "code": 409,
        "name": "ERR_ILLEGAL_STATE",
        "message": "operation failed due to illegal state (Certificate is not trusted 
                    (encountered while attempting to run command \"commit\"))"
    }
}

La première fois que vous créez cette cible pour cette source, la validité du certificat de l'hôte cible n'est pas reconnue. Comme l'API RESTful ne peut pas vous inviter à confirmer le certificat, définissez la propriété auto_accept_cert sur true pour accepter automatiquement le certificat de la cible.

Une fois la cible créée, son certificat peut perdre son approbation. Par exemple, l'administrateur de la source a pu retirer le certificat de la liste des certificats sécurisés ou l'administrateur de la cible a pu le remplacer. Modifiez la cible afin de définir la propriété auto_accept_cert sur true pour indiquer à la source d'accepter la validité du certificat.

La vérification de la validité du certificat est effectuée pour chaque connexion de paire et de réplication. Si le certificat n'est pas approuvé, la source refuse la connexion.

Pour vérifier les propriétés d'un certificat, comme l'empreinte digitale ou la propriété commonName ou SubjectAltName de l'émetteur, pour charger ou supprimer un certificat, voir Gestion des certificats.

Modification d'une cible de réplication

Cette commande modifie les propriétés d'une cible de réplication.

Exemple de demande :

PUT /api/replication/v2/targets/target-001 HTTP/1.1
Authorization: Basic Tm8gcGVla2luZyE=
Host: zfs-storage.example.com:215
Accept: application/json
Content-Type: application/json
Content-Length: 78

{ "hostname": "zfs-storage-3.example.com" }

Suppression d'une cible de réplication

Cette commande supprime une cible de réplication existante.

Exemple de demande :

DELETE /service/v2/services/replication/targets/target-000 HTTP/1.1
Host: zfs-storage.example.com:215
Authorization: Basic Tm8gcGVla2luZyE=

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