Go to main content

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

退出打印视图

更新时间: 2021 年 8 月
 
 

群集

cluster 命令用于设置群集和管理群集资源。

表 13  群集命令
请求
附加到路径 /hardware/v{1|2}
说明
GET
/cluster
列出群集属性和资源
GET
/cluster/resources/resource-path
列出指定的群集资源的属性
PUT
/cluster/resources/resource-path
修改指定的群集资源
PUT
/cluster/failback
对分配给群集对等设备的所有资源都执行故障恢复
PUT
/cluster/takeover
接管所有分配给群集对等设备的资源
PUT
/cluster/unconfig
取消群集设备的单机模式配置
GET
/cluster/links
显示群集卡链路状态
PUT
/cluster/setup
执行初始群集设置

列出群集属性

cluster 命令列出当前的群集配置状态和资源属性。

请求示例:

GET /api/hardware/v2/cluster HTTP/1.1
Authorization: Basic Tm8gcGVla2luZyE=
Host: zfs-storage.example.com:215
Accept: application/json

结果示例:

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

{
  "cluster": {
    "state": "AKCS_OWNER",
    "description": "Active (takeover completed)",
    "peer_asn": "d23331e6-41f4-6a15-ac09-a4353e33b43a",
    "peer_hostname": "peer-1",
    "peer_state": "AKCS_STRIPPED",
    "peer_description": "Ready (waiting for failback)",
    "resources": [
      {
        "owner": "peer-1",
        "type": "private",
        "user_label": "peer-1",
        "details": [
          "ipaddr"
        ],
        "href": "/api/hardware/v2/cluster/resources/net/vnic1"
      },
      {
        "owner": "peer-1",
        "type": "singleton",
        "user_label": "",
        "details": [
          "8.03T"
        ],
        "href": "/api/hardware/v2/cluster/resources/zfs/cas1"
      },
      {
        "owner": "peer-2",
        "type": "singleton",
        "user_label": "",
        "details": [
          "18.7T"
        ],
        "href": "/api/hardware/v2/cluster/resources/zfs/cas2"
      }
    ]
  }
}

使用 cluster 命令列出的资源之一中的 href 属性仅列出该特定群集资源的属性,如以下示例中所示:

GET /api/hardware/v2/cluster/resources/net/vnic1 HTTP/1.1

修改群集资源

结合使用 PUT 请求与 cluster 命令所列出的资源之一中的 href 属性来为该群集资源设置属性。

群集链路状态

cluster/links 命令返回群集卡的当前链路状态。

执行初始群集设置之前,使用 cluster/links 确保所有链路都处于 AKCIOS_ACTIVE 状态。不处于 AKCIOS_ACTIVE 状态的连接可能意味着另一个系统正在重新启动/重新引导,或者可能意味着链路的电缆连接不正确,或者群集电缆未牢固地接入连接器中。有关群集布线说明,请参见Oracle ZFS Storage Appliance 布线指南中的连接群集电缆

对于不同的控制器型号,cluster/links 命令的输出也会有所不同。对于 ZS9-2 控制器,会返回两个群集 I/O 链路的状态。对于所有其他控制器,会返回三个群集 I/O 链路的状态。有关群集 I/O 链路的说明,请参见Oracle ZFS Storage Appliance 管理指南,发行版 OS8.8.x 中的 群集互连 I/O

请求示例:

GET /api/hardware/v2/cluster/links HTTP/1.1
Authorization: Basic Tm8gcGVla2luZyE=
Host: zfs-storage.example.com:215
Accept: application/json

Oracle ZFS Storage ZS9-2 的结果示例:

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

{
    "links": {
        "lio_dev/i40e0 = AKCIOS_ACTIVE\n
        lio_dev/i40e1 = AKCIOS_ACTIVE"
    }
}

ZS7-2 或 ZS5-2 控制器的结果示例:

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

{
  "links": "\n\tclustron_ng3:0/clustron_uart:0 = AKCIOS_ACTIVE
            \n\tclustron_ng3:0/clustron_uart:1 = AKCIOS_ACTIVE
            \n\tclustron_ng3:0/dlpi:0 = AKCIOS_ACTIVE\n\n"
}

其他控制器显示类似的 links 输出。唯一的区别是 /clustron/dlpi 之前的部分。例如,上述示例中的 clustron3_ng3:0 对于 ZS5-4 控制器是 clustron3:0,对于 ZS4-4 控制器是 clustron2:0,对于 ZS3-2 控制器是 clustron2_embedded:0

群集管理命令

群集管理包括 failbacktakeoverunconfig。成功后,这些命令都返回 HTTP 状态 202 (Accepted)。如果群集未处于正确状态,无法接受命令,则返回 HTTP 状态 409 (Conflict)。

只要检测到对等设备故障就会尝试自动接管。也可以由管理员执行接管。

故障恢复必须由管理员执行。故障恢复操作以异步方式执行。REST 客户机发送 failback 命令时,会在成功收到请求时返回 HTTP 状态 202。要监视故障恢复进度,客户机可以侦听警报或轮询群集状态。

有关接管和故障恢复的更多信息,请参见Oracle ZFS Storage Appliance 管理指南,发行版 OS8.8.x 中的 群集的接管和故障恢复

请求示例:

PUT /api/hardware/v2/cluster/failback HTTP/1.1

取消配置群集节点会将节点配置为独立操作。通常,请不要自行对群集节点取消配置。取消配置群集节点具有破坏性。取消配置涉及的不仅仅是 unconfig 命令。有关更多信息,请参见Oracle ZFS Storage Appliance 管理指南,发行版 OS8.8.x 中的 取消配置群集节点

群集设置

设置是初始群集配置中的一个步骤。有关更多信息,请参见Oracle ZFS Storage Appliance 管理指南,发行版 OS8.8.x 中的 将单机设备升级到群集配置 (BUI)

cluster/setup 命令针对系统执行初始群集配置。为 nodenamepassword 属性指定值。如果设置成功,则返回 HTTP 状态 202 (Accepted)。

除非同时存在以下两个条件,否则 cluster/setup 命令将失败:

  • 所有群集链路都处于 AKCIOS_ACTIVE 状态。请参见群集链路状态

  • 已打开对等设备的电源,但没有对其进行配置。


注 -  完成初始群集配置设置可能需要几分钟的时间。

请求示例:

PUT /api/hardware/v2/cluster/setup HTTP/1.1
Authorization: Basic Tm8gcGVla2luZyE=
Host: zfs-storage.example.com:215
Accept: application/json

{"nodename": "zfs-storage-2", "password": "password"}