Go to main content

Oracle® ZFS Storage Appliance RESTful API 설명서, 릴리스 OS8.8.x

인쇄 보기 종료

업데이트 날짜: 2021년 8월
 
 

스냅샷 및 복제 작업

모든 스냅샷 작업의 범위는 지정된 풀 또는 프로젝트로 지정됩니다. 또한 스냅샷 작업의 범위를 파일 시스템 또는 LUN 레벨로 설정할 수 있습니다.

  • 모든 프로젝트 기반 스냅샷 작업에 대한 URI는 /api/storage/v{1|2}/pools/pool/projects/project로 시작합니다.

  • 모든 파일 시스템 기반 스냅샷 작업에 대한 URI는 /api/storage/v{1|2}/pools/pool/projects/project/filesystems/filesystem으로 시작합니다.

  • 모든 LUN 기반 스냅샷 작업에 대한 URI는 /api/storage/v{1|2}/pools/pool/projects/project/luns/lun으로 시작합니다.

클라우드에 스냅샷을 백업하거나 어플라이언스에 새 공유로 스냅샷 백업을 복원하려면 RESTful API 클라우드 서비스를 참조하십시오.

표 50  스냅샷 및 복제 명령
요청
경로 /api/storage/v{1|2}에 추가
설명
GET
/snapshots
모든 로컬 스냅샷을 나열합니다.
GET
/pools/pool/projects?snaps=true
스냅샷을 포함하여 모든 프로젝트를 나열합니다.
GET
/pools/pool/projects/project/filesystems?snaps=true
스냅샷을 포함하여 모든 파일 시스템을 나열합니다.
GET
/pools/pool/projects/project/luns?snaps=true
스냅샷을 포함하여 모든 LUN을 나열합니다.
GET
/pools/pool/projects/project/snapshots
프로젝트에 대한 모든 스냅샷을 나열합니다.
GET
/pools/pool/projects/project/filesystems/filesystem/snapshots
파일 시스템에 대한 모든 스냅샷을 나열합니다.
GET
/pools/pool/projects/project/luns/lun/snapshots
LUN에 대한 모든 스냅샷을 나열합니다.
GET
/pools/pool/projects/project/snapshots/snapshot
프로젝트 스냅샷 세부정보를 가져옵니다.
GET
/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot
파일 시스템 스냅샷 세부정보를 가져옵니다.
GET
/pools/pool/projects/project/luns/lun/snapshots/snapshot
LUN 스냅샷 세부정보를 가져옵니다.
POST
/pools/pool/projects/project/snapshots
프로젝트 스냅샷을 만듭니다.
POST
/pools/pool/projects/project/filesystems/filesystem/snapshots
파일 시스템 스냅샷을 만듭니다.
POST
/pools/pool/projects/project/luns/lun/snapshots
LUN 스냅샷을 만듭니다.
PUT
/pools/pool/projects/project/snapshots/snapshot
프로젝트 스냅샷을 수정합니다.
PUT
/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot
파일 시스템 스냅샷을 수정합니다.
PUT
/pools/pool/projects/project/luns/lun/snapshots/snapshot
LUN 스냅샷을 수정합니다.
PUT
/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot/clone
파일 시스템 스냅샷을 복제합니다.
PUT
/pools/pool/projects/project/luns/lun/snapshots/snapshot/clone
LUN 스냅샷을 복제합니다.
PUT
/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot/rollback
데이터를 지정된 파일 시스템 스냅샷으로 롤백합니다.
PUT
/pools/pool/projects/project/lun/lun/snapshots/snapshot/rollback
데이터를 지정된 LUN 스냅샷으로 롤백합니다.
DELETE
/pools/pool/projects/project/snapshots/snapshot
프로젝트 스냅샷을 삭제합니다.
DELETE
/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot
파일 시스템 스냅샷을 삭제합니다.
DELETE
/pools/pool/projects/project/luns/lun/snapshots/snapshot
LUN 스냅샷을 삭제합니다.
GET
/pools/pool/projects/project/snapshots/snapshot/dependents
프로젝트 스냅샷 종속 항목을 나열합니다.
GET
/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot/dependents
파일 시스템 스냅샷 종속 항목을 나열합니다.
GET
/pools/pool/projects/project/lun/lun/snapshots/snapshot/dependents
LUN 스냅샷 종속 항목을 나열합니다.
POST
/pools/pool/projects/project/automatic
새 프로젝트 자동 스냅샷 객체를 만듭니다.
POST
/pools/pool/projects/project/automatic?convert=true
새 프로젝트 자동 스냅샷 객체를 만듭니다. 새 일정에 맞지 않는 자동 생성된 기존 스냅샷이 수동 스냅샷으로 변환됩니다.
convert 등록 정보를 제외하면 자동 생성된 기존 스냅샷이 삭제됩니다.
GET
/pools/pool/projects/project/automatic/automatic
지정된 프로젝트 자동 스냅샷 등록 정보를 가져옵니다.
GET
/pools/pool/projects/project/automatic
모든 프로젝트 자동 스냅샷 객체를 나열합니다.
PUT
/pools/pool/projects/project/automatic/automatic
지정된 프로젝트 자동 스냅샷 객체를 수정합니다.
PUT
/pools/pool/projects/project/automatic/automatic?convert=true
지정된 프로젝트 자동 스냅샷 일정 객체를 수정합니다. 새 일정에 맞지 않는 자동 생성된 기존 스냅샷이 수동 스냅샷으로 변환됩니다.
convert 등록 정보를 제외하면 자동 생성된 기존 스냅샷이 삭제됩니다.
DELETE
/pools/pool/projects/project/automatic/automatic
지정된 자동 객체를 삭제합니다.
DELETE
/pools/pool/projects/project/automatic/automatic?convert=true
지정된 자동 스냅샷 일정 객체를 삭제합니다. 새 일정에 맞지 않는 자동 생성된 기존 스냅샷이 수동 스냅샷으로 변환됩니다.
convert 등록 정보를 제외하면 자동 생성된 기존 스냅샷이 삭제됩니다.
POST
/pools/pool/projects/project/filesystems/filesystem/automatic
새 파일 시스템 자동 스냅샷 객체를 만듭니다.
POST
/pools/pool/projects/project/filesystems/filesystem/automatic?convert=true
새 파일 시스템 자동 스냅샷 객체를 만듭니다. 새 일정에 맞지 않는 자동 생성된 기존 스냅샷이 수동 스냅샷으로 변환됩니다.
convert 등록 정보를 제외하면 자동 생성된 기존 스냅샷이 삭제됩니다.
GET
/pools/pool/projects/project/filesystems/filesystem/automatic/automatic
지정된 파일 시스템 자동 스냅샷 등록 정보를 가져옵니다.
GET
/pools/pool/projects/project/filesystems/filesystem/automatic
모든 파일 시스템 자동 스냅샷 객체를 나열합니다.
PUT
/pools/pool/projects/project/filesystems/filesystem/automatic/automatic
지정된 파일 시스템 자동 스냅샷 객체를 수정합니다.
PUT
/pools/pool/projects/project/filesystems/filesystem/automatic/automatic?convert=true
지정된 파일 시스템 자동 스냅샷 일정 객체를 수정합니다. 새 일정에 맞지 않는 자동 생성된 기존 스냅샷이 수동 스냅샷으로 변환됩니다.
convert 등록 정보를 제외하면 자동 생성된 기존 스냅샷이 삭제됩니다.
DELETE
/pools/pool/projects/project/filesystems/filesystem/automatic/automatic
지정된 자동 스냅샷 일정 객체를 삭제합니다.
DELETE
/pools/pool/projects/project/filesystems/filesystem/automatic/automatic?convert=true
지정된 파일 시스템 자동 스냅샷 일정 객체를 삭제합니다. 새 일정에 맞지 않는 자동 생성된 기존 스냅샷이 수동 스냅샷으로 변환됩니다.
convert 등록 정보를 제외하면 자동 생성된 기존 스냅샷이 삭제됩니다.
POST
/pools/pool/projects/project/luns/lun/automatic
새 LUN 자동 스냅샷을 만듭니다.
POST
/pools/pool/projects/project/luns/lun/automatic?convert=true
새 LUN 자동 스냅샷 일정을 만듭니다. 새 일정에 맞지 않는 자동 생성된 기존 스냅샷이 수동 스냅샷으로 변환됩니다.
convert 등록 정보를 제외하면 자동 생성된 기존 스냅샷이 삭제됩니다.
GET
/pools/pool/projects/project/luns/lun/automatic/automatic
지정된 LUN 자동 스냅샷 등록 정보를 가져옵니다.
GET
/pools/pool/projects/project/luns/lun/automatic
모든 LUN 자동 스냅샷 객체를 나열합니다.
PUT
/pools/pool/projects/project/luns/lun/automatic/automatic
지정된 LUN 자동 스냅샷 객체를 수정합니다.
PUT
/pools/pool/projects/project/luns/lun/automatic/automatic?convert=true
지정된 LUN 자동 스냅샷 일정 객체를 수정합니다. 새 일정에 맞지 않는 자동 생성된 기존 스냅샷이 수동 스냅샷으로 변환됩니다.
convert 등록 정보를 제외하면 자동 생성된 기존 스냅샷이 삭제됩니다.
DELETE
/pools/pool/projects/project/luns/lun/automatic/automatic
지정된 LUN 자동 객체를 삭제합니다.
DELETE
/pools/pool/projects/project/luns/lun/automatic/automatic?convert=true
지정된 LUN 자동 스냅샷 일정 객체를 삭제합니다. 새 일정에 맞지 않는 자동 생성된 기존 스냅샷이 수동 스냅샷으로 변환됩니다.
convert 등록 정보를 제외하면 자동 생성된 기존 스냅샷이 삭제됩니다.

스냅샷 나열

어플라이언스에서 사용할 수 있는 어플라이언스를 나열합니다. 요청 URI에 따라 목록은 프로젝트, 파일 시스템 또는 LUN 스냅샷을 포함합니다.

표 51  스냅샷 나열 명령 형식
명령
경로 /api/storage/v{1|2}/pools/pool/projects/project에 추가
프로젝트 스냅샷 나열
/snapshots
파일 시스템 스냅샷 나열
/filesystems/share/snapshots
LUN 스냅샷 나열
/lun/share/snapshots

요청 예:

GET /api/storage/v1/pools/p1/projects/default/snapshots
Accept: application/json

결과 예:

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

{
    "snapshots": [{
        "id": "3fbbcccf-d058-4502-8844-6feeffdf4cb5",
        "display_name": "snap-001",
        "display_description": "Daily backup",
        "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c",
        "status": "available",
        "size": 30,
        "created_at": "2012-02-29T03:50:07Z"
    }, {
        "id": "e479997c-650b-40a4-9dfe-77655818b0d2",
        "display_name": "snap-002",
        "display_description": "Weekly backup",
        "volume_id": "76b8950a-8594-4e5b-8dce-0dfa9c696358",
        "status": "available",
        "size": 25,
        "created_at": "2012-03-19T01:52:47Z"
    }]
}

스냅샷 가져오기

단일 스냅샷에 대한 모든 정보를 봅니다. 성공 시 HTTP 상태 200(OK)을 반환합니다.

요청 예:

GET /api/storage/v1/pools/p1/projects/default/snapshots/snap-001
Accept: application/json

결과 예:

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

{
    "snapshot": {
        "id": "3fbbcccf-d058-4502-8844-6feeffdf4cb5",
        "display_name": "snap-001",
        "display_description": "Daily backup",
        "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c",
        "status": "available",
        "size": 30,
        "created_at": "2012-02-29T03:50:07Z"
    }
}

스냅샷 만들기

스냅샷 만들기 명령은 프로젝트, 파일 시스템 또는 LUN에 대한 스냅샷을 만듭니다.

  • 프로젝트 스냅샷 만들기 – POST /pools/pool/projects/project/snapshots

  • 파일 시스템 스냅샷 만들기 – POST /pools/pool/projects/project/filesystems/share/snapshots

  • 볼륨 스냅샷 만들기 – POST /pools/pool/projects/project/luns/lun/snapshots

요청 예:

POST /api/storage/v1/pools/p1/projects/default/snapshots
Content-Type: application/json

{"name": "initial-backup"}

결과 예:

HTTP/1.1 201 Created
Content-Type: application/json
Location: /pools/p1/projects/default/
snapshot/initial-backup

{
    "snapshot": {
        "name": "initial-backup",
        "numclones": 0,
        "creation": "20130610T21:00:49",
        "collection": "local",
        "project": "default",
        "canonical_name": "zfs-storage-1/local/default@initial-backup",
        "usage": {
            "unique": 0.0,
            "loading": false,
            "data": 145408.0
        },
        "type": "snapshot",
        "id": "a26abd24-e22b-62b2-0000-000000000000",
        "pool": "p1"
    }
}

스냅샷 이름 바꾸기

기존 스냅샷의 이름을 바꿉니다.

  • 요청 URI – 스냅샷, 현재 스냅샷 이름

  • 요청 본문 – 새 스냅샷 이름을 포함하는 name 매개변수의 JSON 객체

요청 예:

PUT /api/storage/v1/pools/p1/projects/default/snapshots/initial-snapshot
Content-Type: application/json
Accept: application/json

{"name": "old-snapshot"}

결과 예:

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /pools/p1/projects/default/snapshot/initial-backup

스냅샷 복제

기존 스냅샷에서 새 파일 시스템 또는 LUN을 만듭니다.

다음 URI 매개변수가 사용됩니다.

pool

소스 풀 이름

project

소스 프로젝트 이름

filesystem

파일 시스템 스냅샷에 대한 소스 공유 이름

lun

LUN 스냅샷에 대한 소스 공유 이름

snapshot

소스 스냅샷 이름

파일 시스템 복제:

PUT /pools/pool/projects/project/filesystems/share/snapshots/snapshot/clone

볼륨 복제:

PUT /pools/pool/projects/project/luns/lun/snapshots/snapshot/clone

요청 본문은 다음 등록 정보가 있는 JSON 객체를 포함합니다.

표 52  복제 스냅샷 등록 정보
등록 정보
유형
설명
pool
string
대상 복제 풀 이름
project
string
대상 복제 프로젝트 이름
lun
string
LUN 스냅샷에 대한 대상 LUN 이름

요청 예:

PUT /api/storage/v1/pools/p1/projects/default/filesystems/fs01/
    snapshots/snap01/clone

{"project":"rest", "share":"snap01clone01", "compression": "gzip-9"}

결과 예:

HTTP/1.1 201 Created
Content-Length: 2035
X-Zfssa-Storage-Api: 1.0
Location: /api/storage/v1/pools/p1/projects/rest/filesystem/snap01clone01
Content-Type: application/json; charset=utf-8

{
    "filesystem": {
        "origin": {
            "project": "default",
            "share": "fs01",
            "snapshot": "snap01",
            "pool": "p1",
            "collection": "local"
        },
        "href": "/api/storage/v1/pools/p1/projects/rest/filesystems/snap01clone01",
        "mountpoint": "/export/snap01clone01",
        "compression": "gzip-9",
        "source": {
            "compression": "local",
            ...
        },
        ...
       "canonical_name": "zfs-storage-1/local/rest/snap01clone01"
   }
} 

스냅샷 롤백

스냅샷을 롤백하면 스냅샷이 사용되었을 때 소스 파일 시스템 또는 LUN이 해당 상태로 다시 수정됩니다. 성공한 응답은 HTTP 상태 202(Accepted) 및 JSON 형식의 스냅샷 등록 정보를 반환합니다.

다음 URI 매개변수가 사용됩니다.

pool

소스 풀 이름

project

소스 프로젝트 이름

filesystem

파일 시스템 스냅샷에 대한 소스 파일 시스템 이름

lun

LUN 스냅샷에 대한 소스 LUN 이름

snapshot

소스 스냅샷 이름

파일 시스템 스냅샷 롤백:

PUT /pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot/rollback

LUN 스냅샷 롤백:

PUT /pools/pool/projects/project/luns/lun/snapshots/snapshot/rollback

요청 예:

PUT /api/storage/v1/pools/p1/projects/default/filesystems/fs-01
    /snapshots/initial-backup/rollback

결과 예:

HTTP/1.1 202 Accepted
Location: /pools/p1/projects/default/filesystems/fs-01/snapshot/fs-01-initial-clone
Content-Type: application/json

{
    "snapshot": {
        "name": "fs-01-initial-clone",
        "numclones": 0,
        "creation": "20130610T21:00:49",
        "filesystem": "fs-01",
        "collection": "local",
        "project": "default",
        "canonical_name": "zfs-storage-1/local/default/
               fs-01@fs-01-initial-clone",
        "usage": {
            "unique": 0.0,
            "loading": false,
            "data": 31744.0
        },
        "type": "snapshot",
        "id": "5c9bda07-21c1-2238-0000-000000000000",
        "pool": "p1"
    }
}

스냅샷 삭제

스냅샷 DELETE 명령은 시스템에서 프로젝트, 파일 시스템 또는 LUN 스냅샷을 삭제합니다.

다음 URI 매개변수가 사용됩니다.

pool

소스 풀 이름

project

소스 프로젝트 이름

filesystem

소스 파일 시스템 이름

lun

LUN 이름

snapshot

소스 스냅샷 이름

프로젝트 스냅샷 삭제:

DELETE /api/storage/v1/pools/pool/projects/project/snapshots/snapshot

파일 시스템 스냅샷 삭제:

DELETE /api/storage/v1/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot

파일 시스템 LUN 삭제:

DELETE /api/storage/v1/pools/pool/projects/projectsnapshot

스냅샷에 NDMP 보류가 있는 경우 ?confirm=trueDELETE 명령에 추가합니다. 하지만 이렇게 하면 NDMP 작업에 부정적인 영향이 미칠 수 있습니다. 자세한 내용은 NDMP Configuration in Oracle ZFS Storage Appliance Administration Guide, Release OS8.8.x을 참조하십시오.

요청 예:

DELETE /pools/p1/projects/default/filesystems/fs-01/snapshots/initial-backup?confirm=true

?confirm=true가 추가되지 않은 경우 결과 예:

스냅샷에 NDMP 보류가 있을 때 ?confirm=true가 추가되지 않은 경우 다음 출력과 함께 명령이 실패합니다(가독성을 위해 인위적으로 줄바꿈이 설정됨).

HTTP/1.1 409 Conflict

{"fault": {"message": "request requires confirm=true to complete (confirmation
needed for scripted command (scripted commands must be prefixed with \"confirm\"
to automatically confirm or \"deny\" to automatically deny) (encountered while
attempting to run command \"confirm destroy snap\"))", "code": 409, "name": 
"ERR_CONFIRM_REQUIRED"}}

스냅샷 종속 항목 나열

파일 시스템 또는 볼륨에 대한 종속 항목을 나열합니다. 다음 URI 매개변수가 사용됩니다.

pool

시스템 스토리지 풀 이름

project

프로젝트 이름

filesystem

파일 시스템 이름

lun

LUN 이름

snapshot

스냅샷 이름

파일 시스템 종속 항목을 나열합니다.

GET /api/storage/v1/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot/dependents

볼륨 종속 항목을 나열합니다.

GET /api/storage/v1/pools/pool/projects/project/lun/lun/snapshots/snapshot/dependents

요청 예:

GET /api/storage/v1/pools/p1/projects/default/filesystems/fs01/snapshots/snap01/dependents
Accept: application/json

결과 예:

HTTP/1.1 200 OK
X-Zfssa-Storage-Api: 1.0
Content-Type: application/json; charset=utf-8
X-Zfssa-Api-Version: 1.0

{
    "dependents": [
        {
            "project": "rest",
            "href": "/api/storage/v1/pools/p1/projects/rest/filesystems/snap01clone01",
            "share": "snap01clone01"
        },
        {
            "project": "rest",
            "href": "/api/storage/v1/pools/p1/projects/rest/filesystems/snap01clone02",
            "share": "snap01clone02"
        },
        {
            "project": "rest",
            "href": "/api/storage/v1/pools/p1/projects/rest/filesystems/snap01clone03",
            "share": "snap01clone03"
        }
    ]
}