Go to main content

Oracle® ZFS Storage Appliance RESTful API ガイド、Release OS8.8.x

印刷ビューの終了

更新: 2021 年 8 月
 
 

レプリケーションターゲット

次の表に、使用可能なレプリケーションターゲットのコマンドを示します。

表 56  レプリケーションターゲットコマンド
リクエスト
パス /api/storage/v{1|2} の後ろに追加
説明
POST
/replication/targets
新しいレプリケーションターゲットを作成します
GET
/replication/targets/target
指定されたレプリケーションターゲットプロパティーを取得します
GET
/replication/targets
すべてのレプリケーションターゲットオブジェクトを一覧表示します
PUT
/replication/targets/target
指定されたレプリケーションターゲットオブジェクトを変更します
DELETE
/replication/targets/target
指定されたターゲットオブジェクトを破棄します

次の表に、レプリケーションターゲットのプロパティーを示します。

プロパティー
説明
label
表示するターゲット名。
hostname
ターゲットアプライアンスの完全修飾ドメイン名または IPv4 アドレス。
host_match
ホスト名の検証を実行またはバイパスします。ターゲット証明書の検証を参照してください。
auto_accept_cert
ターゲットの証明書を自動的に受け入れます。ターゲット証明書の検証を参照してください。

レプリケーションターゲットの一覧表示

システム上の使用可能なレプリケーションターゲットをすべて一覧表示します。

リクエストの例:

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

結果例:

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

指定されたレプリケーションターゲットの一覧表示

このコマンドは、単一のレプリケーションターゲットの詳細を表示します。ターゲットはそのホスト名によってアクセスされます。

リクエストの例:

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

結果例:

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 
        } 
}

レプリケーションターゲットの作成

targets コマンドは、リモートレプリケーション用に新しいレプリケーションターゲットを作成します。

レプリケーショントラフィックが特定のネットワークインタフェースを通過するようにする必要がある場合は、ルートの追加に示すように、そのインタフェースを指定するターゲットの静的ルートを設定します。

リクエストの例:

hostname および 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
}

結果例:

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"
    }
}

ターゲット証明書の検証

レプリケーションターゲットを作成すると、証明書の検証が実行されます。証明書の検証は、次のステップで構成されます。

  1. 証明書ホスト名チェック

  2. 証明書信頼チェック

ホスト名チェックまたは証明書信頼性チェックのいずれかが失敗した場合、ターゲットは作成されません。

ホスト名チェック

hostname プロパティーの値は、完全修飾ドメイン名または IPv4 アドレスにすることができます。推奨される値は、ターゲットの完全修飾ドメイン名です。

ホスト名チェックは、ターゲットの hostname プロパティーで指定されたホスト名が証明書で指定されたホストと一致することを確認します。hostname に IP アドレスまたは非修飾ドメイン名を指定し、証明書に完全修飾ドメイン名しかない場合、ホスト名チェックは失敗し、ターゲットは作成されません。

ターゲットが ASN ベースの証明書を使用している場合は、hostname プロパティーの値にターゲットの完全修飾ドメイン名を指定します。

ホスト名チェックはデフォルトで実行されます。host_match プロパティーを false に設定すると、ホスト名チェックは実行されません。

セキュリティーを強化するには、hostname プロパティーの値をターゲットの完全修飾ドメイン名に設定し、host_match プロパティーが true に設定されていることを確認してください。

証明書信頼チェック

証明書信頼チェックでは、次の証明書のいずれかがソースの信頼できる証明書リストに追加され、ピアでの使用が有効になっていることを確認します。

  • ターゲットアプライアンスの証明書。

  • ターゲットアプライアンスの証明書を発行した認証局の証明書。

証明書が信頼されていない場合、HTTP ステータス 409 (Conflict) が返され、ターゲットは作成されません。次の例では、読みやすくするためにメッセージ行を改行しています。

{
    "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\"))"
    }
}

このソースに対してこのターゲットを初めて作成するとき、ターゲットホストの証明書が信頼されているかどうかはわかりません。RESTful API は証明書の確認を求めるプロンプトを表示できないため、auto_accept_cert プロパティーを true に設定して、ターゲットの証明書を自動的に受け入れます。

ターゲットが作成された後、その証明書は信頼できなくなることがあります。たとえば、ソースの管理者が信頼できる証明書のリストから証明書を削除したり、ターゲットの管理者が証明書を置き換えたりすることができます。ターゲットを変更して、auto_accept_cert プロパティーを true に設定し、この証明書を信頼できるものとして受け入れるようにソースに指示します。

証明書信頼チェックは、すべてのピアおよびレプリケーション接続に対して実行されます。証明書が信頼されていない場合、ソースは接続を拒否します。

フィンガープリントや発行者の commonName、SubjectAltName などの証明書のプロパティーを確認したり、証明書をアップロードしたり、証明書を削除したりするには、証明書の管理を参照してください。

レプリケーションターゲットの変更

このコマンドは、レプリケーションターゲットのプロパティーを変更します。

リクエストの例:

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" }

レプリケーションターゲットの削除

このコマンドは、既存のレプリケーションターゲットを削除します。

リクエストの例:

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

削除に成功すると、HTTP ステータス 204 (No Content) が返されます。