Go to main content

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

退出打印视图

更新时间: 2018 年 11 月
 
 

复制数据包

本节详述了复制数据包和源命令。

表 80  复制数据包命令
请求
附加到路径 /api/storage/v1/replication
说明
GET
/packages
列出所有复制数据包
GET
/packages/package
获取指定的复制数据包
PUT
/packages/package
修改指定的复制数据包
DELETE
/packages/package
销毁指定的复制数据包
PUT
/packages/package/cancelupdate
对指定的数据包运行 cancelupdate
PUT
/packages/package/sever
对指定的数据包运行 sever
PUT
/packages/package/pkgreverse
对指定的数据包运行 reverse
PUT
/packages/package/clone
克隆指定的数据包
GET
/packages/package/clone/conflicts
列出共享资源属性冲突
GET
/packages/package/projects
列出数据包项目
GET
/packages/package/projects/project
获取数据包项目
PUT
/packages/package/projects/project
修改数据包项目
GET
/packages/package/projects/project/usage/groups
获取数据包项目组的使用情况
GET
/packages/package/projects/project/usage/users
获取数据包项目用户的使用情况
GET
/packages/package/projects/project/snapshots
列出所有快照对象
GET
/packages/package/projects/project/snapshots/snapshot
获取指定的快照属性
DELETE
/packages/package/projects/project/snapshots/snapshot
销毁指定的快照对象
PUT
/packages/package/projects/project/snapshots/snapshot
重命名数据包项目快照
GET
/packages/package/projects/project/automatic
列出所有数据包项目自动快照对象
GET
/packages/package/projects/project/automatic/automatic
获取指定的数据包项目自动快照属性
GET
/packages/package/projects/project/filesystems
列出数据包文件系统
GET
/packages/package/projects/project/filesystems/filesystem
获取数据包文件系统
PUT
/packages/package/projects/project/filesystems/filesystem
修改数据包文件系统
GET
/packages/package/projects/project/filesystems/filesystem/usage/groups
获取数据包文件系统组的使用情况
GET
/packages/package/projects/project/filesystems/filesystem/usage/users
获取数据包文件系统用户的使用情况
GET
/packages/package/projects/project/filesystems/filesystem/snapshots/snapshot
获取指定的快照属性
GET
/packages/package/projects/project/filesystems/filesystem/snapshots
列出所有快照对象
DELETE
/packages/package/projects/project/filesystems/filesystem/snapshots/snapshot
销毁指定的快照对象
PUT
/packages/package/projects/project/filesystems/filesystem/snapshots/snapshot
重命名数据包文件系统快照
GET
/packages/package/projects/project/filesystems/filesystem/automatic
列出所有数据包文件系统自动快照对象
GET
/packages/package/projects/project/filesystems/filesystem/automatic/automatic
获取指定的数据包文件系统自动快照属性
GET
/packages/package/projects/project/luns
列出数据包 LUN
GET
/packages/package/projects/project/luns/lun
获取数据包 LUN
PUT
/packages/package/projects/project/luns/lun
修改数据包 LUN
GET
/packages/package/projects/project/luns/lun/usage/groups
获取数据包 LUN 组的使用情况
GET
/packages/package/projects/project/luns/lun/usage/users
获取数据包 LUN 用户的使用情况
GET
/packages/package/projects/project/luns/lun/snapshots/snapshot
获取指定的快照属性
GET
/packages/package/projects/project/luns/lun/snapshots
列出所有快照对象
DELETE
/packages/package/projects/project/luns/lun/snapshots/snapshot
销毁指定的快照对象
PUT
/packages/package/projects/project/luns/lun/snapshots/snapshot
重命名数据包 LUN 快照
GET
/packages/package/projects/project/luns/lun/automatic
列出所有数据包 LUN 自动快照对象
GET
/packages/package/projects/project/luns/lun/automatic/automatic
获取指定的数据包 LUN 自动快照属性

复制源及其相应的数据包还可以使用下面的命令来访问。

表 81  复制源命令
请求
附加到路径 /api/storage/v1/replication/sources
说明
GET
仅使用 /api/storage/v1/replication/sources
列出复制源
GET
/source
列出复制源详细信息
GET
/source/packages/package
获取指定的复制数据包
PUT
/source/packages/package
修改指定的复制数据包
DELETE
/source/packages/package
销毁指定的复制数据包
PUT
/source/packages/package/cancelupdate
对指定的数据包运行 cancelupdate
PUT
/source/packages/package/sever
对指定的数据包运行 sever
PUT
/source/packages/package/pkgreverse
对指定的数据包运行 reverse
PUT
/source/packages/package/clone
克隆指定的数据包
GET
/source/packages/package/clone/conflicts
列出共享资源属性冲突
GET
/source/packages/package/projects
列出数据包项目
GET
/source/packages/package/projects/project
获取数据包项目
PUT
/source/packages/package/projects/project
修改数据包项目
GET
/source/packages/package/projects/project/usage/groups
获取数据包项目组的使用情况
GET
/source/packages/package/projects/project/usage/users
获取数据包项目用户的使用情况
GET
/source/packages/package/projects/project/snapshots/snapshot
获取指定的快照属性
GET
/source/packages/package/projects/project/snapshots
列出所有快照对象
DELETE
/source/packages/package/projects/project/snapshots/snapshot
销毁指定的快照对象
PUT
/source/packages/package/projects/project/snapshots/snapshot
重命名数据包项目快照
GET
/source/packages/package/projects/project/automatic
列出所有数据包项目自动快照对象
GET
/source/packages/package/projects/project/automatic/automatic
获取指定的数据包项目自动快照属性
GET
/source/packages/package/projects/project/filesystems
列出数据包文件系统
GET
/source/packages/package/projects/project/filesystems/filesystem
获取数据包文件系统
PUT
/source/packages/package/projects/project/filesystems/filesystem
修改数据包文件系统
GET
/source/packages/package/projects/project/filesystems/filesystem/usage/groups
获取数据包文件系统组的使用情况
GET
/source/packages/package/projects/project/filesystems/filesystem/usage/users
获取数据包文件系统用户的使用情况
GET
/source/packages/package/projects/project/filesystems/filesystem/snapshots/snapshot
获取指定的快照属性
GET
/source/packages/package/projects/project/filesystems/filesystem/snapshots
列出所有快照对象
DELETE
/source/packages/package/projects/project/filesystems/filesystem/snapshots/snapshot
销毁指定的快照对象
PUT
/source/packages/package/projects/project/filesystems/filesystem/snapshots/snapshot
重命名数据包文件系统快照
GET
/source/packages/package/projects/project/filesystems/filesystem/automatic
列出所有数据包文件系统自动快照对象
GET
/source/packages/package/projects/project/filesystems/filesystem/automatic/automatic
获取指定的数据包文件系统自动快照属性
GET
/source/packages/package/projects/project/luns
列出数据包 LUN
GET
/source/packages/package/projects/project/luns/lun
获取数据包 LUN
PUT
/source/packages/package/projects/project/luns/lun
修改数据包 LUN
GET
/source/packages/package/projects/project/luns/lun/usage/groups
获取数据包 LUN 组的使用情况
GET
/source/packages/package/projects/project/luns/lun/usage/users
获取数据包 LUN 用户的使用情况
GET
/source/packages/package/projects/project/luns/lun/snapshots/snapshot
获取指定的快照属性
GET
/source/packages/package/projects/project/luns/lun/snapshots
列出所有快照对象
DELETE
/source/packages/package/projects/project/luns/lun/snapshots/snapshot
销毁指定的快照对象
PUT
/source/packages/package/projects/project/luns/lun/snapshots/snapshot
重命名数据包 LUN 快照
GET
/source/packages/package/projects/project/luns/lun/automatic
列出所有数据包 LUN 自动快照对象
GET
/source/packages/package/projects/project/luns/lun/automatic/automatic
获取指定的数据包 LUN 自动快照属性

列出复制源

列出所有可用的复制源。

请求示例:

GET /api/storage/v1/replication/sources HTTP/1.1
Host: zfs-storage.example.com
Accept: application/json

输出示例:

HTTP/1.1 200 OK
X-Zfssa-Replication-Api: 1.0
Content-Type: application/json
Content-Length: 529

{
    "sources": [{
        "asn": "314d252e-c42b-e844-dab1-a3bca680b563",
        "href": "/api/storage/v1/replication/sources/zfs-repl-host",
        "ip_address": "ipaddr-1",
        "name": "zfs-repl-host",
        "source": "source-000"
    }]
}

列出复制数据包

列出所有复制数据包。

请求示例:

GET /api/storage/v1/replication/packages HTTP/1.1
Host: zfs-storage.example.com
Accept: application/json

结果示例:

HTTP/1.1 200 OK
X-Zfssa-Replication-Api: 1.0
Content-Type: application/json
Content-Length: 529

{
  "packages": [
    {
      "href": "/api/storage/v1/replication/packages/0efaab49-7b22-4d4a-def8-813c27780894",
      "id": "0efaab49-7b22-4d4a-def8-813c27780894",
      "source_name": "sourceA",
      "source_asn": "8a22f6e0-4ee4-4b85-f141-e152f5fac961",
      "source_ip": "ipaddr-1",
      "source_pool": "poolA",
      "target_pool": "poolA",
      "replica_of": "projTest",
      "enabled": true,
      "state": "idle",
      "state_description": "Idle (no update in progress)",
      "offline": false,
      "import_path": "",
      "data_timestamp": "2017-03-09T22:36:12Z",
      "last_sync": "2017-03-09T22:36:22Z",
      "last_try": "2017-03-09T22:36:22Z",
      "last_result": "success"
    }
  ]
}

修改数据包

修改数据包属性。

属性
类型
说明
enabled
boolean
复制更新的当前状态

请求示例:

PUT /api/storage/v1/replication/packages/8373d331-de60-e590-90e8-9ad69fcb4aec HTTP/1.1
Host: zfs-storage.example.com
Authorization: Basic ab6rt4psMWE=
Content-Type: application/json

{"enabled": false}

结果示例:

HTTP/1.1 202 Accepted
X-Zfssa-Replication-Api: 1.0

请求示例:

PUT /api/storage/v1/replication/packages/8373d331-de60-e590-90e8-9ad69fcb4aec/pkgreverse HTTP/1.1
Host: zfs-storage.example.com
Authorization: Basic ab6rt4psMWE=
Content-Type: application/json

{"new_project_name":"restrev", "enable_action_upon_reversal":"true"}

结果示例:

HTTP/1.1 202 Accepted
X-Zfssa-Replication-Api: 1.0

删除数据包

销毁复制数据包。

请求示例:

DELETE /api/storage/v1/replication/packages/8373d331-de60-e590-90e8-9ad69fcb4aec HTTP/1.1
Host: zfs-storage.example.com
Authorization: Basic ab6rt4psMWE=

成功删除后将返回 HTTP 状态 204 (No Content)。

响应示例:

HTTP/1.1 204 No-Content
X-Zfssa-Replication-Api: 1.0

取消更新

取消此数据包正在进行的更新。

请求示例:

PUT /api/storage/v1/replication/packages/8373d331-de60-e590-90e8-9ad69fcb4aec/cancelupdate HTTP/1.1
Host: zfs-storage.example.com
Authorization: Basic ab6rt4psMWE=

如果未进行更新,将返回 HTTP 状态 409 (Conflict)。

响应示例:

HTTP/1.1 409 Conflict
X-Zfssa-Replication-Api: 1.0
Content-Type: application/json
Content-Length: 137

{
    "cancelupdate": {
        "AKSH_ERROR": "EAK_NAS_REPL_BADSTATE",
        "message": "operation illegal for state"
    }
}

响应示例:

HTTP/1.1 202 Accepted
X-Zfssa-Replication-Api: 1.0

克隆数据包

克隆数据包项目。

请求示例:

PUT /api/v1/storage/replication/packages/8373d331-de60-e590-90e8-9ad69fcb4aec/clone HTTP/1.1
Host: zfs-storage.example.com
Authorization: Basic ab6rt4psMWE=

响应示例:

HTTP/1.1 202 Accepted
X-Zfssa-Replication-Api: 1.0

克隆成功返回 HTTP 状态 202 (Accepted)。帮助命令可用于确定克隆操作是否出现冲突。

克隆冲突请求示例:

GET /api/storage/v1/replication/packages/8373d331-de60-e590-90e8-9ad69fcb4aec/clone/conflicts HTTP/1.1
Host: zfs-storage.example.com
Authorization: Basic ab6rt4psMWE=

克隆/冲突返回冲突:

HTTP/1.1 200 OK
X-Zfssa-Replication-Api: 1.0
Content-Type: application/json
Content-Length: 58

{
    "conflicts": "There are no conflicts."
}

属性:

Default settings:
            target_project = (unset)
       original_mountpoint = /export
       override_mountpoint = false
                mountpoint =

提供数据包

提供复制连接并将数据包内容移到新项目中。此操作永久性提供此数据包以及其在源系统中的复制的共享资源,使它们成为此系统上的本地项目。任何方向的后续复制更新都需要定义新操作和发送完整更新。

请求示例:

PUT /api/storage/v1/replication/packages/8373d331-de60-e590-90e8-9ad69fcb4aec/sever HTTP/1.1
Host: zfs-storage.example.com
Authorization: Basic ab6rt4psMWE=

{"projname":"restsev"}

成功响应:

HTTP/1.1 202 Accepted
X-Zfssa-Replication-Api: 1.0

反转数据包

反转复制方向。此操作禁用此数据包的复制,并将此数据包内容移到配置用于复制回源的新本地项目。当新项目首次复制回源后,自上次成功更新后对源所做的所有元数据或数据更改都将丢失。

请求示例:

PUT /api/storage/v1/replication/packages/8373d331-de60-e590-90e8-9ad69fcb4aec/reverse HTTP/1.1
Host: zfs-storage.example.com
Authorization: Basic ab6rt4psMWE=

{"projname":"restrev"}

成功响应:

HTTP/1.1 202 Accepted
X-Zfssa-Replication-Api: 1.0