所有快照操作都可限定于给定的池或项目。快照操作也可限定于文件系统或 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/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-"Snapshot",当前快照名称
请求正文-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 参数:
源池名称
源项目名称
文件系统快照的源共享资源名称
LUN 快照的源共享资源名称
源快照名称
克隆文件系统:
PUT /pools/pool/projects/project/filesystems/share/snapshots/snapshot/clone
克隆卷:
PUT /pools/pool/projects/project/luns/lun/snapshots/snapshot/clone
请求正文包含带以下属性的 JSON 对象。
|
请求示例:
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 参数:
源池名称
源项目名称
文件系统快照的源文件系统名称
LUN 快照的源 LUN 名称
源快照名称
回滚文件系统快照:
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 参数:
源池名称
源项目名称
源文件系统名称
LUN 名称
源快照名称
删除项目快照:
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=true 添加到 DELETE 命令中。但是,请注意,这会对 NDMP 运行产生不利影响。有关更多信息,请参见Oracle ZFS Storage Appliance 管理指南,发行版 OS8.8.0 中的 NDMP 配置。
请求示例:
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 参数:
系统存储池名称
项目名称
文件系统名称
LUN 名称
快照名称
列出文件系统相关项:
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" } ] }