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 客户机

文件系统操作

文件系统操作命令可列出和管理文件系统共享资源。所有命令都可限定于给定的存储池或项目。

{service_uri}/pools/{pool}/project/{project}
表 12-10  文件系统命令
请求
路径 /api/storage/v1
描述
GET
/filesystems
列出所有文件系统
GET
/pools/<pool>/projects /<project>/filesystems
列出文件系统
GET
/pools/<pool>/projects /<project>/filesystems /<filesystem>
获取文件系统详细信息
POST
/pools/<pool>/projects /<project>/filesystems
创建文件系统
PUT
/pools/<pool>/projects /<project>/filesystems /<filesystem>
修改文件系统
DELETE
/pools/<pool>/projects /<project>/filesystems /<filesystem>
销毁文件系统
GET
/pools/<pool>/projects /<project>/filesystems /<filesystem>/usage/groups
获取文件系统组使用情况
GET
/pools/<pool>/projects /<project>/filesystems /<filesystem>/usage/groups /<group>
获取指定的组的文件系统使用情况
POST
/pools/<pool>/projects /<project>/filesystems /<filesystem>/usage/groups
创建文件系统组配额
PUT
/pools/<pool>/projects /<project>/filesystems /<filesystem>/usage/groups /<name>
修改文件系统组配额
GET
/pools/<pool>/projects /<project>/filesystems /<filesystem>/usage/users
获取文件系统用户使用情况
GET
/pools/<pool>/projects /<project>/filesystems /<filesystem>/usage/users /<user>
获取指定的用户的文件系统使用情况
POST
/pools/<pool>/projects /<project>/filesystems /<filesystem>/usage/users
创建文件系统用户配额
PUT
/pools/<pool>/projects /<project>/filesystems /<filesystem>/usage/users /<name>
修改文件系统用户配额

每个文件系统都包含此项目中的属性,并具有以下特定于文件系统的属性。

表 12-11  文件系统属性
类型
名称
描述
字符串
casesensitivity
"Case Sensitivity" 设置("mixed"、"sensitive" 或 "insensitive")
字符串
group
组名
字符串
normalization
标准化
字符串
permissions
文件系统权限
字符串
project
项目名称
布尔型
quota_snap
指示配额中包括快照的标志
布尔型
reservation_snap
指示预留空间中包括快照的标志
字符串
shadow
数据迁移源
字符串
sharesmb_name
SMB 共享资源的名称
对象
source
项目继承属性
对象
Usage
文件系统使用情况信息
字符串
user
拥有共享资源的用户名
布尔型
utf8only
拒绝非 UTF-8 的标志

列出文件系统

列出文件系统命令显示给定池或项目中的所有文件系统。

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

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

请求示例:

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

成功执行请求后,将返回 HTTP 状态 200 (OK) 以及系统文件属性数组(使用 JSON 格式)。

结果示例:

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

{
    “filesystems”: [{
        “name”: “filesystem-01”,
        “project”: “proj-01”,
        “pool”: “gold”,
        ...
    }, {
        “name”: “filesystem-02”,
        “project”: “proj-01”,
        “pool”: “gold”,
        ...
    }]
}

系统也支持所有池和项目中的所有文件系统的列表。在这种情况下,URI 将是 /api/storage/v1/filesystems

请求示例(获取所有文件系统并以 "abcd" 字符串作为其部分属性):

GET /api/storage/v1/filesystems?filter=abcd HTTP/1.1
Host: zfs-storage.example.com
Accept: application/json

获取文件系统

获取文件系统命令返回给定池或项目中的单个文件系统的属性。

表 12-13  URI 参数
参数
描述
pool
存储池名称
project
项目名称
filesystem
文件系统的名称

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

GET /api/storage/v1/pools/gold/projects/proj-01 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

{
    "filesystem": {
        "logbias": "latency",
        "creation": "20130423T21:30:34",
        "nodestroy": false,
        "dedup": false,
        "sharenfs": "on",
        "sharesmb": "off",
        "mountpoint": "/export/grape",
        "snaplabel": "",
        "id": "424ca2ec-b3fa-df86-0000-000000000000",
        "readonly": false,
        "rrsrc_actions": [],
        "compression": "off",
        "sharetftp": "",
        "source": {
            "logbias": "default",
            "dedup": "default",
            "sharenfs": "inherited",
            "sharesmb": "off",
            "mountpoint": "inherited",
            "rrsrc_actions": "local",
            "compression": "default",
            "sharetftp": "inherited",
            "snapdir": "default",
            "aclmode": "default",
            "copies": "default",
            "aclinherit": "default",
            "shareftp": "inherited",
            "readonly": "default",
            "secondarycache": "default",
            "exported": "inherited",
            "vscan": "default",
            "reservation": "local",
            "atime": "default",
            "recordsize": "default",
            "checksum": "inherited",
            "sharesftp": "inherited",
            "nbmand": "default",
            "rstchown": "default"
        },
        "snapdir": "hidden",
        "aclmode": "discard",
        "copies": 1,
        "aclinherit": "restricted",
        "shareftp": "",
        "canonical_name": "platinum/local/default/grape",
        "recordsize": 131072.0,
        "usage": {
            "available": 880395477504.0,
            "loading": false,
            "quota": 0.0,
            "snapshots": 18432.0,
            "compressratio": 100.0,
            "reservation": 0.0,
            "total": 50176.0,
            "data": 31744.0
        },
        "secondarycache": "all",
        "collection": "local",
        "exported": true,
        "vscan": false,
        "reservation": 0.0,
        "shadow": "none",
        "atime": true,
        "pool": "platinum",
        "quota_snap": true,
        "name": "grape",
        "checksum": "fletcher4",
        "project": "default",
        "sharesftp": "",
        "nbmand": false,
        "reservation_snap": true,
        "sharedav": "",
        "rstchown": true
    }
}

创建文件系统

创建文件系统命令可在给定存储池或项目中创建使用给定名称的文件系统。将返回带默认属性的新文件系统。

表 12-14  URI 参数
参数
描述
pool
存储池名称
project
项目名称
filesystem
文件系统的名称

请求参数:

请求示例(创建由用户 "joe" 拥有的名为 "share-01" 的文件系统):

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

{
    “name”: “share-01”,
    “owner”: “joe”
}

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

响应示例:

HTTP/1.1 201 Created
Content-Type: application/json
Location: /api/storage/v1/pools/gold/projects/proj-01/filesystems/share-01

{
    “filesystem”: {
        “name”: “share-01”,
        “pool”: “gold”,
        “collection”: “local”,
        “project”: “proj-01”,
        “owner”: “joe”
        ...
    }
}

修改文件系统

修改文件系统命令用于更改现有文件系统的属性。成功响应后,将返回 HTTP 状态 202 (Accepted) 并列出所有文件系统属性。

请求参数-Filesystem Properties-可修改任何文件系统或项目属性

表 12-15  URI 参数
参数
描述
pool
存储池名称
project
项目名称
filesystem
文件系统的名称

请求示例(将文件系统名称从 "share-01" 更改为 "new-name" 并将所有者更改为 "nobody"):

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

{
    “name”: “new-name”,
    “owner”: “nobody”,
}

响应示例:

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: http://zfs-storage.example.com:215
          /pools/gold/projects/proj-01/filesystems/share-01

{
    “filesystem”: {
        “name”: “new-name”,
        “pool”: “gold”,
        “collection”: “local”,
        “project”: “proj-01”,
        “owner”: “nobody”
        ...
    }
}

删除文件系统

删除文件系统命令用于删除给定池或项目中的单个文件系统。

表 12-16  URI 参数
参数
描述
pool
存储池名称
project
项目名称
filesystem
文件系统的名称

请求示例:

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

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

响应示例:

HTTP/1.1 204 No-Content

文件系统配额和使用情况

可使用 POSTPUT 请求分别创建或修改用户或组配额。对文件系统使用资源的 GET 请求可用于按用户或组获取项目的使用情况数据。