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

退出打印视图

更新时间: 2016 年 2 月
 
 

目标

iSCSI 目标命令用于管理 iSCSI 目标和 iSCSI 目标组。下面列出了可用命令:

表 50  目标命令
请求
路径 /san/v1.0
描述
GET
/<protocol>/targets
针对给定协议(FC、iSCSI、SRP)对象列出所有 SAN 目标
GET
/<protocol>/targets/<target>
针对给定协议(FC、iSCSI、SRP)属性获取指定的 SAN 目标
POST
/<protocol>/targets
针对给定协议(FC、iSCSI、SRP)创建新的 SAN 目标
PUT
/<protocol>/targets/<target>
针对给定协议(FC、iSCSI、SRP)对象修改指定的 SAN 目标
DELETE
/<protocol>/targets/<target>
销毁指定的目标对象

这些命令使用以下 URI 参数

表 51  URI 参数
类型
名称
描述
字符串
protocol
SAN 协议(FC、iSCSI、SRP)
字符串
target
目标 ID(IQN、WWN、EUI)

所有 "get" 目标命令都会返回目标属性,且 "create" 和 "modify" 目标命令使用以下属性作为输入。

表 52  目标属性
名称
协议
描述
alias
iscsi
简单的人工可读名称
iqn
iscsi
iSCSI 限定名称
state
iscsi
iSCSI 目标的状态("online"、"offline")
auth
iscsi
可选验证类型("none"、"chap")
targetchapuser
iscsi
可选 CHAP 用户验证
targetchapsecret
iscsi
可选 CHAP 密钥验证
interfaces
iscsi
目标可用的网络接口的列表
wwn
fc
此目标的全局名称
port
fc
此端口的物理位置
mode
fc
此端口的模式(启动器或目标)
speed
fc
此端口的协商速率
discovered_ports
fc
已发现的远程启动器端口的数量
alias
srp
SRP 目标的别名
eui
srp
此目标的扩展唯一标识符

以下属性用于获取 iSCSI 目标组信息。

表 53  目标组属性
类型
名称
描述
字符串
protocol
目标组协议(FC、iSCSI、SRP)
字符串
name
iSCSI 目标组名称
数组
targets
iSCSI 目标 IQN 组成员的列表

列出目标

列出设备上可用的指定协议的所有 SAN 目标。

请求示例:

GET /api/san/v1/iscsi/targets HTTP/1.1
Host: zfs-storage.example.com:215
Authorization: Basic abcd123MWE=
Accept: application/json

响应示例:

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

{
    "size": 7,
     "targets": [{
        "alias": "tst.volumes.py.12866.target",
        "href": "/api/san/v1/iscsi/targets/iqn.1986-03.com.sun:02:
            72b6fa9a-96c4-e511-db19-aadb9bac2052",
        "iqn": "iqn.1986-03.com.sun:02:72b6fa9a-96c4-
            e511-db19-aadb9bac2052",
        ...
    }, {
        "alias": "tst.volumes.py.96238.target",
         "href": "/api/san/v1/iscsi/targets/iqn.1986-03.com.sun:02:
            31d26d2e-6aa0-6054-fe58-8b1fb508b008",
        "iqn": "iqn.1986-03.com.sun:31d26d2e-6aa0-6054-fe58-8b1fb508b008",
        ...
    }
    ...]
}

获取目标详细信息

从单个目标中获取属性。可使用 "iqn" 属性或使用 "alias=<alias>" 选择此目标。

请求示例:

GET /api/san/v1/iscsi/targets/alias=test-target HTTP/1.1
Host: zfs-storage.example.com:215
Authorization: Basic abcd123MWE=
Accept: application/json

响应示例:

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

{
    "target": {
        "alias": "test-target",
        "auth": "none",
        "href": "/api/san/v1/iscsi/targets/alias=test-target",
        "interfaces": ["ixgbe0"],
        "iqn": "iqn.1986-03.com.sun:02:31d26d2e-6aa0-6054-fe58-8b1fb508b008",
        "targetchapsecret": "",
        "targetchapuser": ""
    }
}

创建目标

创建新的目标。请求正文包含一个带有 name 属性的 JSON 对象,此属性是新的 iSCSI 目标组的名称。

请求示例:

POST /api/san/v1/iscsi/targets HTTP/1.1
Host: zfs-storage.example.com:215
Authorization: Basic abcd123MWE=
Content-Type: application/json
Content-Length: 23
Accept: application/json

{"alias": "test-target"}

响应示例:

HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 233
X-Zfssa-San-Api: 1.0
Location: /api/san/v1/iscsi/targets/iqn.1986-03.com.sun:02:31d26d2e-6aa0-6054-fe58-8b1fb508b008

{
    "target": {
        "href": "/api/san/v1/iscsi/targets/iqn.1986-03.com.sun:02:31d26d2e-6aa0-6054-fe58-8b1fb508b008",
        "alias": "test-target",
        "iqn": "iqn.1986-03.com.sun:02:31d26d2e-6aa0-6054-fe58-8b1fb508b008",
        "auth": "none",
        "targetchapuser": "",
        "targetchapsecret": "",
        "interfaces": ["ixgbe0"]
    }
}

修改目标

修改现有 iSCSI 目标。请求正文包含带有已修改的 iSCSI 目标属性的 JSON 对象。成功后,将返回 HTTP 状态 202 (Accepted)。响应正文包含在 JSON 对象中编码的目标的结果 iSCSI 目标属性。

请求示例:

PUT /api/san/v1/iscsi/targets/alias=test-target HTTP/1.1
Host: zfs-storage.example.com:215
Authorization: Basic abcd123MWE=
Host: zfs-storage.example.com
Content-Type: application/json
Content-Length: 54
Accept: application/json

{"targetchapsecret":"letmeinnowplease", "auth":"chap",
 "targetchapuser":"argus"}

响应示例:

HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 189
X-Zfssa-San-Api: 1.0

{
    "target": {
        "href": "/api/san/v1/iscsi/targets/alias=test-target",
        "auth": "chap",
        "targetchapsecret": "letmeinnowplease",
        "alias": "test-arget",
        "iqn": "iqn.1986-03.com.sun:02:31d26d2e-6aa0-6054-fe58-8b1fb508b008",
        "targetchapuser": "argus",
        "interfaces": ["ixgbe0"]
    }
}

删除目标

从系统中删除 SAN 目标。

请求示例:

DELETE /api/san/v1/iscsi/targets/iqn.1986-03.com.sun:02:e7e688b1 HTTP/1.1
Host: zfs-storage.example.com:215
Authorization: Basic abcd123MWE=

成功删除后,将返回 HTTP 代码 204 (No Content):

HTTP/1.1 204 No-Content