Oracle® ZFS Storage Appliance RESTful API 指南,发行版 2013.1.5.0

退出打印视图

更新时间: 2016 年 2 月
 
 

快照和克隆操作

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

表 81  快照和克隆命令
请求
路径 /api/storage/v1
描述
GET
/snapshots
列出所有本地快照
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
创建新项目自动快照
GET
/pools/<pool>/projects /<project>/automatic /<automatic>
获取指定的项目自动快照属性
GET
/pools/<pool>/projects /<project>/automatic
列出所有项目自动快照对象
PUT
/pools/<pool>/projects /<project>/automatic /<automatic>
修改指定的项目自动快照对象
DELETE
/pools/<pool>/projects /<project>/automatic /<automatic>
销毁指定的自动对象
POST
/pools/<pool>/projects /<project>/filesystems /<filesystem>/automatic
创建新文件系统自动快照
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>
修改指定的文件系统自动快照对象
DELETE
/pools/<pool>/projects /<project>/filesystems /<filesystem>/automatic /<automatic>
销毁指定的自动对象
POST
/pools/<pool>/projects /<project>/luns/<lun>/automatic
创建新的 LUN 自动快照
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 自动快照对象
DELETE
/pools/<pool>/projects /<project>/luns/<lun>/automatic /<automatic>
销毁指定的自动对象

列出快照

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

表 82  列出快照命令表单
命令
/api/storage/v1/pools/{pool}/projects/{project}
列出项目快照
/snapshots
列出文件系统快照
/filesystems/{share}/snapshots
列出 lun 快照
/lun/{share}/snapshots

请求示例:

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
表 83  URI 参数
参数
描述
pool
源池名称
project
源项目名称
filesystem
源共享资源名称(适用于文件系统快照)
lun
源共享资源名称(适用于 LUN 快照)
snapshot
源快照名称

请求正文包含带以下属性的 JSON 对象。

表 84  克隆快照属性
类型
名称
描述
字符串
pool
目标克隆池名称
字符串
project
目标克隆项目名称
字符串
lun
目标 LUN 名称(适用于 LUN 快照)

请求示例:

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
表 85  URI 参数
参数
描述
pool
源池名称
project
源项目名称
filesystem
源文件系统名称(适用于文件系统快照)
lun
源 LUN 名称(适用于 LUN 快照)
snapshot
源快照名称

请求示例:

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

删除快照

DELETE 快照命令可用于从系统中删除项目快照、文件系统快照或 LUN 快照。

表 86  删除快照命令表单
命令
DELETE /api/storage/v1/pools/{pool}/projects/{project}
删除使用给定池名称、项目名称和快照名称的项目快照
/snapshots/{snapshot_name}
删除使用给定池名称、项目名称、文件系统名称和快照名称的文件系统快照
/filesystems/{share_name}/snapshots/{snapshot_name}
删除使用给定池名称、项目名称、文件系统名称和快照名称的文件系统 LUN
/luns/ {lun_name}/snapshots/{snapshot_name}
表 87  URI 参数
参数
描述
pool
源池名称
project
源项目名称
filesystem
源文件系统名称
lun
LUN 名称
snapshot
源快照名称

如果快照中存在 NDMP 控制数据,则必须将 ?confirm=true 添加到 DELETE 命令中。但是,请注意,这会对 NDMP 运行产生不利影响。有关更多信息,请参见Working with NDMP in Oracle ZFS Storage Appliance Administration Guide, Release 2013.1.5.0

示例

DELETE /pools/gold/projects/default/filesystems/fs-01/snapshots/initial-backup?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"}}

列出快照相关项

列出文件系统或卷的相关项。

表 88  列出快照相关项命令表单
命令
/api/storage/v1/pools/{pool}/projects/{project}
列出文件系统相关项
/filesystems/{share}/snapshots/{snapshot}/dependents
列出卷相关项
lun/{lun}/snapshots/{snapshot}/dependents
表 89  URI 参数
参数
描述
pool
系统存储池的名称
project
项目名称
filesystem
文件系统的名称
lun
LUN 名称

请求示例:

GET /api/storage/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"
        }
    ]
}