JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle® ZFS Storage Appliance RESTful API 指南,发行版 2013.1.3.0
Oracle 技术网
文档库
PDF
打印视图
反馈
search filter icon
search icon

文档信息

Oracle ZFS Storage Appliance RESTful API 入门

使用 RESTful API

RESTful API 警报服务

Analytics 服务

硬件服务

日志命令

网络命令

RESTful API 问题服务

RESTful API 角色服务

RESTful API SAN 服务

服务命令

RESTful API 存储服务

存储池操作

列出池

获取池

配置池

向池中添加存储

池清理

取消配置池

项目操作

列出项目

获取项目属性

创建项目

修改项目

删除项目

项目使用情况

文件系统操作

列出文件系统

获取文件系统

创建文件系统

修改文件系统

删除文件系统

文件系统配额和使用情况

LUN 操作

列出 LUN

获取 LUN

创建新的 LUN

修改 LUN

删除 Lun

快照和克隆操作

列出快照

获取快照

创建快照

重命名快照

克隆快照

回滚快照

删除快照

列出快照相关项

模式

列出属性

获取属性

创建属性

修改属性

删除属性

复制

获取复制服务

修改复制服务状态

复制目标

列出复制目标

获取复制目标

创建复制目标

删除复制目标

复制操作

列出复制操作

获取复制操作

创建复制操作

修改复制操作

取消更新

发送更新

删除复制操作

复制数据包

列出复制源

列出复制数据包

修改数据包

删除数据包

取消更新

克隆数据包

提供数据包

反转数据包

系统命令

RESTful API 用户服务

工作流命令

RESTful 客户机

项目操作

所有项目操作都可限定到给定池。在所有项目中运行的命令会将 "/projects" 附加到 URI,而在单个项目中运行的命令则附加 "/projects/{project}"。

表 12-3  项目命令
请求
路径 /api/storage/v1
描述
GET
/projects
列出所有项目
GET
/pools/<pool>/projects
列出项目
GET
/pools/<pool>/projects /<project>
获取项目详细信息
POST
/pools/<pool>/projects
创建项目
PUT
/pools/<pool>/projects /<project>
修改项目
DELETE
/pools/<pool>/projects /<project>
销毁项目
GET
/pools/<pool>/projects /<project>/usage/groups
获取项目组的使用情况
GET
/pools/<pool>/projects /<project>/usage/groups/<group>
获取指定组的项目使用情况
GET
/pools/<pool>/projects /<project>/usage/users
获取项目用户的使用情况
GET
/pools/<pool>/projects /<project>/usage/users/<user>
获取指定的用户的项目使用情况

下表显示了项目资源中的可编辑属性的列表。

表 12-4  项目属性
类型
名称
描述
字符串
aclinherit
ACL 继承行为("discard"、"noallow"、"restricted"、"passthrough"、"passthrough-x")
字符串
aclmode
模式更改时的 ACL 行为("discard"、"mask"、"passthrough")
布尔型
atime
读取时更新访问时间标志
字符串
canonical_name
规范名称
字符串
checksum
块校验和("fletcher2"、"fletcher4"、"sha256")
字符串
compression
数据压缩设置("off"、"lzjb"、"gzip-2"、"gzip"、"gzip-9")
数字
copies
其他复制副本的数量
日期时间
creation
项目(或 LUN、文件系统)创建的日期和时间
布尔型
dedup
重复数据删除标志
字符串
default_group
项目默认文件系统组:"other"
字符串
default_permissions
项目默认文件系统权限 "700"
布尔型
default_sparse
项目默认 LUN 稀疏数据标志
字符串
default_user
项目默认文件系统用户:"nobody"
数字
default_volblocksize
项目默认 LUN 块大小:8192
数字
default_volsize
项目默认 LUN 大小
布尔型
exported
已导出标志
字符串
logbias
同步写入偏向("latency"、"throughput")
字符串
mountpoint
共享挂载点默认值 "/export/proj-01"
字符串
name
项目名称
布尔型
nbmand
非阻塞强制性锁定标志
布尔型
nodestroy
阻止销毁标志
数字
quota
项目配额大小(单位为字节)
字符串
origin
克隆来源
字符串
pool
池名称
布尔型
readonly
仅在此属性设置为 true 时才读取数据
字符串
recordsize
数据库记录大小为 "128k"
数字
reservation
数据预留空间大小
布尔型
rstchown
限制所有权更改标志
字符串
secondarycache
二级高速缓存使用情况("all"、"metadata"、"none")
字符串
sharedav
HTTP 共享资源("off"、"rw"、"ro")
字符串
shareftp
FTP 共享资源("off"、"rw"、"ro")
字符串
sharenfs
NFS 共享资源("off"、"on"、"ro"、"rw")
字符串
sharesftp
SFTP 共享资源("off"、"rw"、"ro")
字符串
sharesmb
SMB/CIFS 共享资源("off"、"rw"、"ro")
字符串
sharetftp
TFTP 共享资源("off"、"rw"、"ro")
字符串
snapdir
.zfs/snaphsot 可见性("hidden"、"visible")
字符串
snaplabel
调度的快照标签
布尔型
vscan
病毒扫描标志

列出项目

此命令列出给定池中的所有项目。每个返回的项目都包含上述可修改属性的列表以及池名称、创建时间、装入状态、复制操作和数据使用情况。

查询参数 filter-一个简单的字符串匹配过滤器,要求项目中的属性在其值中包含相同的过滤器字符串。

表 12-5  URI 参数
参数
描述
pool
存储池名称

请求示例:

GET /api/storage/v1/pools/gold/projects HTTP/1.1
Host: zfs-storage.example.com
Accept: application/json

成功执行 get 后,将返回 HTTP 代码 200 (OK) 以及项目属性数组(使用 JSON 格式)。

结果示例:

HTTP/1.1 200 OK
Content-Type: application/json

{
    “projects”: [{
        “name”: “proj-01”,
        ...
    }, {
        “name”: “proj-02”,
        ...
    }
}

系统也支持所有池中的所有项目的列表;URI 将仅包含 /projects 路径。

获取所有项目并以 "backup" 作为其部分属性的请求示例:

GET /projects?filter=backup HTTP/1.1
Host: zfs-storage.example.com
Accept: application/json

获取项目属性

此命令列出给定池中单个项目的属性。成功执行 get 后,将返回 HTTP 代码 200 (OK) 以及项目属性(使用 JSON 格式)。

表 12-6  获取项目 URI 参数
参数
描述
pool
存储池名称
project
项目名称

列出 "gold" 池中名为 "proj-01" 的项目的请求示例:

GET /api/storage/v1/pools/gold/projects/proj-01 HTTP/1.1
Host: zfs-storage.example.com
Accept: application/json

响应示例:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "project": {
        "default_volblocksize": 8192.0,
        "logbias": "latency",
        "creation": "20130411T20:02:35",
        "nodestroy": false,
        "dedup": false,
        "sharenfs": "on",
        "sharesmb": "off",
        "default_permissions": "700",
        "mountpoint": "/export",
        "snaplabel": "",
        "id": "042919bb-0882-d903-0000-000000000000",
        "readonly": false,
        "rrsrc_actions": [],
        "compression": "off",
        "sharetftp": "",
        "default_sparse": false,
        "snapdir": "hidden",
        "aclmode": "discard",
        "copies": 1,
        "aclinherit": "restricted",
        "shareftp": "",
        "canonical_name": "gold/local/default",
        "recordsize": 131072.0,
        "usage": {
            "available": 1758424767306.0,
            "loading": false,
            "quota": 0.0,
            "snapshots": 0.0,
           "compressratio": 100.0,
           "child_reservation": 0.0,
           "reservation": 0.0,
           "total": 45960.0,
            "data": 45960.0
        },
        "default_volsize": 0.0,
        "secondarycache": "all",
        "collection": "local",
        "exported": true,
        "vscan": false,
        "reservation": 0.0,
        "atime": true,
        "pool": "gold",
        "default_user": "nobody",
        "name": "default",
        "checksum": "fletcher4",
        "default_group": "other",
        "sharesftp": "",
        "nbmand": false,
        "sharedav": "",
        "rstchown": true
    }
}

创建项目

创建项目命令将在给定存储池中创建使用给定名称的项目。将返回具有默认属性的新项目。

表 12-7  URI 参数
参数
描述
pool
存储池名称

JSON 正文请求参数:

请求示例(创建名为 "proj-01" 的项目):

POST /api/storage/v1/pools/gold/projects HTTP/1.1
Hosta: zfs-storage.example.com
Content-Type: application/json
Accept: application/json

{
    “name”: “proj-01”,
    “sharenfs”: “ro”
}

成功创建后,将返回 HTTP 状态 201 (Created),且位置头包含新项目的 URI。正文包含所有项目属性(使用 JSON 格式)。

结果示例:

HTTP/1.1 201 Created
Content-Type: application/json
Location: http://zfs-storage.example.com:215
          /pools/gold/projects/proj-01

{
    “project”: {
        “name”: “proj-01”,
        "href": "/api/storage/v1/pools/gold/projects/proj-01",
        “mountpoint”: “/export/acme/gold”,
        ...
    }
}

修改项目

此修改项目命令用于更改现有项目的属性。

表 12-8  URI 参数
参数
描述
pool
存储池名称
project
项目名称

请求参数-Project Properties-任何项目属性都可设置为新项目的初始值。

请求示例(将项目名称从 "proj-01" 更改为 "new-name"):

POST /api/storage/v1/pools/gold/projects/proj-01 HTTP/1.1
Host: zfs-storage.example.com
Content-Type: application/json
Accept: application/json

{
    “name”: “new-name”,
    “sharenfs”: “rw”,
    “compression”: “gzip-9”
}

成功响应后,将返回 HTTP 状态 202 (Accepted) 并列出所有项目属性。

响应示例:

HTTP/1.1 201 Created
Content-Type: application/json
Location: /api/storage/v1/pools/gold/projects/new-name

{
    “project”: {
        “name”: “new-name”,
        “sharenfs”: “rw”,
        “compression: “gzip-9”,
         ...
    }
}

删除项目

此删除项目命令用于删除给定池中的单个项目。

表 12-9  URI 参数
参数
描述
pool
存储池名称
project
项目名称

请求示例:

DELETE /api/storage/v1/pools/gold/projects/proj-01 HTTP/1.1
Host: zfs-storage.example.com
Accept: application/json

项目使用情况

获取请求项目使用情况资源可用于按用户或用户组获取项目的使用情况数据。