所有快照操作都可限定于给定的池或项目。快照操作也可限定于文件系统或 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} 开头
|
列出设备上的可用快照。列表可包含项目快照、文件系统快照或 LUN 快照,具体取决于请求 URI。
|
请求示例:
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-"Snapshot",当前快照名称
请求正文-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 (not 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" } ] }