Go to main content

Oracle® ZFS Storage Appliance RESTful API 설명서, 릴리스 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 명령은 원격 복제에 대한 새 복제 대상을 만듭니다.

복제 트래픽이 특정 네트워크 인터페이스를 통과하도록 해야 하는 경우 경로 추가에서와 같이 해당 인터페이스를 지정하는 대상에 대해 정적 경로를 설정합니다.

요청 예:

hostnameauto_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)를 반환합니다.