Go to main content

Oracle® ZFS Storage Appliance RESTful API 指南,发行版 OS8.8.0

退出打印视图

更新时间: 2018 年 11 月
 
 

快照和克隆操作

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

表 65  快照和克隆命令
请求
附加到路径 /api/storage/v1
说明
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 属性会导致销毁自动生成的现有快照。

列出快照

列出设备上的可用快照。列表可包含项目快照、文件系统快照或 LUN 快照,具体取决于请求 URI。

表 66  列出快照命令表单
命令
附加到路径 /api/storage/v1/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-"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 参数:

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 对象。

表 67  克隆快照属性
属性
类型
说明
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=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 参数:

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"
        }
    ]
}