0

非常感谢您提供的任何帮助/输入/建议。

我们有 XenServer 6.0.2,上面配置了多个 IPAddress,但只有 1 个管理地址。

我们有使用 Xenserver JAVA API 绑定来查询 Xenserver 的 Java 代码。我们一直在使用下面的代码来检索池中所有 xenserver 的管理 IP 地址。

           Map<Host, Host.Record> hypervisors = Host.getAllRecords(getConnection());

    for (Host.Record hypRecord : hypervisors.values()) {
        String mgmtIP = hypRecord.address;
                      .........
                      .........
            }

此代码在我们的实验室中有效,但在合作伙伴站点的测试发现此代码存在问题。返回的IP地址和管理IP地址不一样?例如,在合作伙伴站点,xenserver 在盒子上配置了 3 个 IP。让我们将其命名为 ip1、ip2 和 ip3。我们使用 ip1 发出 xen api 请求并登录,它工作正常。但是上面代码中返回的变量“mgmtIP”的值是 ip2。这让我想到:一个 xenserver 可以有多个管理 IP 吗?湾。不是行“String mgmtIP = hypRecord.address;” 在上面的代码中返回管理 ip ?湾。xen api请求不应该总是发送到管理IP地址(如果在池中,则为master)?C。检索 xenserver 的管理 IP 地址的最佳方法是什么?由于我们使用的是 6.0.2,因此方法:

谢谢。

4

1 回答 1

0

使用 xe:

user@host ~# IFS=,; for uuid in $(xe pif-list management=true --minimal); do echo -n   "$uuid -> "; xe pif-param-get param-name=IP uuid=$uuid; done
12334567-1234-1234-1234-123456787890 -> x.x.x.x
12334567-1234-1234-1234-123456787890 -> x.x.x.x
12334567-1234-1234-1234-123456787890 -> x.x.x.x
12334567-1234-1234-1234-123456787890 -> x.x.x.x

使用 api 您将查询相同的逻辑 http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=PIF 对于主机上的 pif,pif 是否具有管理功能?获取 IP

另一个可能对您有用的技巧是

user@host ~# xe host-param-get uuid=12334567-1234-1234-1234-123456787890 param-name=address
x.x.x.x

http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=host

于 2014-01-04T17:53:06.550 回答