모든 스냅샷 작업의 범위는 지정된 풀 또는 프로젝트로 지정됩니다. 또한 스냅샷 작업의 범위를 파일 시스템 또는 LUN 레벨로 설정할 수 있습니다.
모든 프로젝트 기반 스냅샷 작업에 대한 URI는 /api/storage/v1/pools/{pool}/projects/{project}로 시작됩니다.
모든 파일 시스템 기반 스냅샷 작업에 대한 URI는 /api/storage/v1/pools/{pool}/projects/{project}/filesystems/{filesystem}으로 시작됩니다.
모든 LUN 기반 스냅샷 작업에 대한 URI는 /api/storage/v1/pools/{pool}/projects/{project}/luns/{lun}으로 시작됩니다.
|
어플라이언스에서 사용할 수 있는 어플라이언스를 나열합니다. 요청 URI에 따라 목록은 프로젝트, 파일 시스템 또는 LUN 스냅샷을 포함합니다.
|
요청 예:
GET /api/storage/v1/pools/gold/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/gold/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/gold/projects/default/snapshots Content-Type: application/json {"name": "initial-backup"}
응답 예:
HTTP/1.1 201 Created Content-Type: application/json Location: /pools/gold/projects/default/ snapshot/initial-backup { "snapshot": { "name": "initial-backup", "numclones": 0, "creation": "20130610T21:00:49", "collection": "local", "project": "default", "canonical_name": "gold/local/default@initial-backup", "usage": { "unique": 0.0, "loading": false, "data": 145408.0 }, "type": "snapshot", "id": "a26abd24-e22b-62b2-0000-000000000000", "pool": "gold" } }
기존 스냅샷의 이름을 바꿉니다.
요청 URI - 스냅샷, 현재 스냅샷 이름
요청 본문 - 새 스냅샷 이름을 포함하는 name 매개변수의 JSON 객체
요청 예:
PUT /api/storage/v1/pools/gold/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/gold/projects/default/snapshot/initial-backup
기존 스냅샷에서 새 파일 시스템 또는 LUN을 만듭니다.
요청 URI 복제 파일 시스템:
PUT /pools/{pool}/projects/{project}/filesystems/{share}/snapshots/{snap}/clone
볼륨 복제:
PUT /pools/{pool}/projects/{project}/luns/{lun}/snapshots/{snapshot}/clone
|
요청 본문은 다음 등록 정보가 있는 JSON 객체를 포함합니다.
|
요청 예:
PUT /api/storage/v1/pools/gold/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/gold/projects/rest/filesystem/snap01clone01 Content-Type: application/json; charset=utf-8 { "filesystem": { "origin": { "project": "default", "share": "fs01", "snapshot": "snap01", "pool": "gold", "collection": "local" }, "href": "/api/storage/v1/pools/gold/projects/rest/filesystems/snap01clone01", "mountpoint": "/export/snap01clone01", "compression": "gzip-9", "source": { "compression": "local", ... }, ... "canonical_name": "gold/local/rest/snap01clone01" } }
스냅샷을 롤백하면 스냅샷이 사용되었을 때 소스 파일 시스템 또는 LUN이 해당 상태로 다시 수정됩니다. 성공한 응답은 HTTP 상태 202(Accepted) 및 JSON 형식의 스냅샷 등록 정보를 반환합니다.
파일 시스템 스냅샷 롤백:
PUT /pools/{pool}/projects/{project}/filesystems/{share}/snapshots/{snap}/rollback
LUN 스냅샷 롤백:
PUT /pools/{pool}/projects/{project}/luns/{lun}/snapshots/{snapshot}/rollback
|
요청 예:
PUT /api/storage/v1/pools/gold/projects/default/filesystems/fs-01 /snapshots/initial-backup/rollback
응답 예:
HTTP/1.1 202 Accepted Location: /pools/gold/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": "gold/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": "gold" } }
스냅샷 삭제 명령은 시스템에서 프로젝트, 파일 시스템 또는 LUN 스냅샷을 삭제합니다.
지정된 스냅샷의 단일 스냅샷 삭제 - DELETE /snapshots/{snapshot_id}
지정된 풀 이름, 프로젝트 이름 및 스냅샷 이름의 프로젝트 스냅샷 삭제 - DELETE /pools/{pool}/projects/{project}/snapshots/{snapshot_name}
지정된 풀 이름, 프로젝트 이름, 파일 시스템 이름 및 스냅샷 이름의 파일 시스템 스냅샷 삭제 - DELETE /pools/{pool}/projects/{project}/filesystems/{share}/snapshots/{snapshot_name}
지정된 풀 이름, 프로젝트 이름, 파일 시스템 이름 및 스냅샷 이름의 파일 시스템 LUN 삭제 - DELETE /pools/{pool}/projects/{project}/luns/{lun}/snapshots/{snapshot_name}
요청 예:
PUT /pools/gold/projects/default/filesystems/fs-01/ snapshots/initial-backup HTTP/1.1
성공한 삭제는 HTTP 상태 204(No Content)를 반환합니다.
HTTP/1.1 204 No-Content
파일 시스템 또는 볼륨에 대한 종속 항목을 나열합니다.
|
|
요청 예:
GET /apistorage/v1/pools/gold/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/gold/projects/rest/filesystems/snap01clone01", "share": "snap01clone01" }, { "project": "rest", "href": "/api/storage/v1/pools/gold/projects/rest/filesystems/snap01clone02", "share": "snap01clone02" }, { "project": "rest", "href": "/api/storage/v1/pools/gold/projects/rest/filesystems/snap01clone03", "share": "snap01clone03" } ] }