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

退出打印视图

更新时间: 2016 年 2 月
 
 

文件系统操作

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

{service_uri}/pools/{pool}/project/{project}
表 67  文件系统命令
请求
路径 /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>
修改文件系统用户配额

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

表 68  文件系统属性
类型
名称
描述
字符串
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-一个简单的字符串匹配过滤器,要求项目中的属性在其值中包含相同的过滤器字符串。

表 69  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

获取文件系统

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

表 70  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
    }
}

创建文件系统

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

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

请求参数:

  • name-必须提供文件系统名称以创建新的文件系统。

  • filesystem properties-文件系统属性或项目属性中列出的任何属性都可设置为初始值。

请求示例(创建由用户 "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-可修改任何文件系统或项目属性

表 72  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”
        ...
    }
}

删除文件系统

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

表 73  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 请求可用于按用户或组获取项目的使用情况数据。