所有快照操作都可限定于给定的池或项目。快照操作也可限定于文件系统或 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"
}
]
}