清单

属性

名字 描述 可选的 可选的参数值 起始支持版本
uuid 请参见 资源属性 0.6
name 请参见 资源属性 0.6
description 请参见 资源属性 0.6
zoneUuid 父区域的uuid, 请参见 zone 0.6
physicalInterface 请参见 physical interface 0.6
type L2网络类型
  • L2NoVlanNetwork
  • L2VlanNetwork
  • VxlanNetworkPool
  • VxlanNetwork
0.6
attachedClusterUuids L2网络挂载的集群的列表, 请参见 attach cluster 0.6
createDate 请参见 资源属性 0.6
lastOpDate 请参见 资源属性 0.6

示例

{
    "inventories": [
        {
            "attachedClusterUuids": [
                "553c2fd2a67b4b89a6240541959b861f"
            ],
            "createDate": "Mar 10, 2018 2:35:14 PM",
            "description": "",
            "lastOpDate": "Mar 10, 2018 2:35:14 PM",
            "name": "L2Network-1",
            "physicalInterface": "eth0",
            "type": "L2NoVlanNetwork",
            "uuid": "dde9685e3ba944bea8c643fe64200750",
            "zoneUuid": "fa18454182eb41749797f824c00cfccf"
        }
    ],
    "success": true
}

物理接口(Physical Interface)

物理接口是一个字符串(例如eth0)。它代表了数据中心里二层网络(L2)的信息。不同L2网络类型和不同虚拟机管理程序类型通常会有不同的物理接口。这主要归结于虚拟机管理程序使用自己的标记方式(notations)来描述L2网络, 并且L2网络可以被同时挂载到多个拥有不同虚拟机管理系统的集群上。

假设数据中心有一个L2网络(l2Network A),这个L2网络跨越两个集群:一个是KVM集群, 另一个是VMWare集群。在KVM中,L2网络是使用Linux操作系统中的以太网设备(ethernet device)实现的;假设每个KVM主机通过eth0连接到L2网络。 在VMWare集群中, L2网络是使用vswitch实现的;假设VMWare集群使用vswitch0连接到L2网络,这样,整个拓扑结构如Figure 1所示:
Figure 1. L2网络拓扑结构


很多看似应用到区域和集群上的操作,实际都被指派到对应的物理主机上了。 当挂载L2网络A到KVM集群和VMWare集群的时候, ZStack Cloud必须能够理解在这些集群中虚拟机管理程序是如何使用标记描述L2网络的:在KVM物理主机上eth0代表了L2网络,而在VMWare物理主机上vswitch0代表了L2网络。 所以物理接口的名字也反映了不同的虚拟机管理程序。

挂载集群(Attaching Cluster)

挂载集群是为了将L2网络和同一个区域中的集群(sibling clusters)关联起来,它提供了一种灵活的方式来维护数据中心中物理主机和二层网络(layer 2 networks)之间的关系。 例如,如Figure 2所示:
Figure 2. 挂载集群


假设数据中心中的网络拓扑结构如上图所示。 所有集群中的物理主机的eth0都连接在同一个称为L2 Network1的二层网络上;集群cluster1和cluster3中物理主机的eth1都连接在另一个称为L2 network2的二层网络上。为了在ZStack Cloud中描述这个拓扑结构,可以将L2 network1挂载到所有三个集群上,同时只将L2 network2挂载到集群cluster1和cluster3上。

几个月之后, 由于一些业务的需求,网络拓扑结构需要作一些改变。将集群cluster3中的物理主机上eth1所连接的网线从机架交换机(rack switch)上断开,这样集群cluster3就不再和L2 network2相连了;可以通过将L2 network2从cluster3上卸载来通知ZStack Cloud网络拓扑结构发生了改变。如Figure 3所示:
Figure 3. 改变挂载集群


L2NoVlanNetwork

L2NoVlanNetwork是L2网络的基本类型,名字中的NoVlan并不表示不可以使用VLAN技术,它仅仅表示ZStack Cloud不会主动使用VLAN来创建一个二层广播域.。下面两个图例可以帮助理解。

Figure 4所示:
Figure 4. L2NoVlanNetwork网络配置1


在上图这个配置中,交换机的两个端口5和12是不带VLAN 10标签(untagged VLAN 10)的端口(Cisco中的VLAN 10访问端口,即access port), 并且分别连接到host1和host2的eth0。 这对于L2NoVlanNetwork是一个有效的配置。 管理员可以使用physicalInterface = eth0创建L2NoVlanNetwork,并挂载到集群。

Figure 5所示:
Figure 5. L2NoVlanNetwork网络配置2


在上图这个配置中,交换机的两个端口5和12是带VLAN 10标签(tagged VLAN 10)的端口(Cisco中的VLAN 10干线端口,即trunk port), 并且分别连接到host1和host2上预先创建好的VLAN设备eth0.10。 对于L2NoVlanNetwork来说,这同样是一个有效的配置。管理员可以使用physicalInterface = eth0.10创建L2NoVlanNetwork,并挂载到集群。

就是说,一个L2NoVlanNetwork对应了一个预先创建好的二层广播域; ZStack Cloud不会为L2NoVlanNetwork创建任何新的广播域。

KVML2NoVlanNetwork注意事项(L2NoVlanNetwork KVM Specific)

当挂载一个L2NoVlanNetwork到KVM集群时, physicalInterface应该是一个Linux操作系统中的以太网设备名(ethernet device name); 例如:eth0、 eth0.10和 em1。 当ZStack Cloud使用brctl创建网桥(bridge)时会使用physicalInterface作为设备名。伪代码如下:
Assuming physicalInterface = eth0

brctl create br_eth0
brctl addif br_eth0 eth0
L2NoVlanNetwork清单示例(L2NoVlanNetwork Inventory Example)
{
    "inventories": [
        {
            "attachedClusterUuids": [
                "967a353c2893409dab9312cf3033a98c"
            ],
            "createDate": "Oct 30, 2017 1:53:20 PM",
            "description": "",
            "lastOpDate": "Oct 30, 2017 1:53:20 PM",
            "name": "L2NoVlan",
            "physicalInterface": "eth0",
            "type": "L2NoVlanNetwork",
            "uuid": "5f0391e0c7ed45dba5ee5ed9c638f146",
            "zoneUuid": "e59b71e99d8a4ea1952b578388b8cd1d"
        }
    ],
    "success": true
}

L2VlanNetwork

L2VlanNetwork是ZStack Cloud主动使用VLAN创建二层广播域的L2网络。根据集群中虚拟机管理程序的不同, ZStack Cloud创建L2网络对应的二层广播域的方式也不同。 相比l2Network inventory, L2VlanNetwork还有一个额外的属性:
名字 描述 可选的 可选的参数值 起始支持版本
vlan 用来创建二层广播域的VLAN号(VLAN id) [0,4095] 0.6

当挂载L2VlanNetwork到集群的时候,ZStack Cloud会配合使用vlan属性和physicalInterface属性在集群中的主机上创建vlan设备; 为了使这种方式工作,physicalInterface所指定的以太网设备所连接的交换机端口必须是带相应vlan标签的。

Figure 6所示:
Figure 6. L2VlanNetwork网络配置


在上图这个配置中,交换机的两个端口5和12是带VLAN 10标签(tagged VLAN 10)的端口, 这样管理员就可以使用physicalInterface = eth0vlan = 10创建L2VlanNetwork,并将它挂载到集群上。

L2VlanNetwork KVM注意事项(L2VlanNetwork KVM Specific)

当挂载L2VlanNetwork到KVM集群时, ZStack Cloud会在集群中的所有物理主机上创建VLAN设备并创建网桥。 伪代码如下:
Assuming physicalInterface = eth0, vlan = 10

vconfig add eth0 10
brctl create br_eth0_10
brctl addif br_eth0_10 eth0.10
L2VlanNetwork清单示例(L2VlanNetwork Inventory Example)
{
    "inventories": [        
        {
            "attachedClusterUuids": [],
            "createDate": "Oct 30, 2017 1:41:19 PM",
            "description": "",
            "lastOpDate": "Oct 30, 2017 1:41:19 PM",
            "name": "L2Vlan",
            "physicalInterface": "eth0",
            "type": "L2VlanNetwork",
            "uuid": "ae97ba4adcb7404690344dde407b429c",
            "vlan": 2222,
            "zoneUuid": "e59b71e99d8a4ea1952b578388b8cd1d"
        }
    ],
    "success": true
}

SDN控制器清单(SdnController Inventory)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 请参见 资源属性 3.7.0
name 请参见 资源属性 3.7.0
description 请参见 资源属性 3.7.0
ip 3.7.0
password 密码 3.7.0
username 3.7.0
vendorType 3.7.0
vniRanges 3.7.0
vxlanPools 3.7.0
groupBy 以字段分组,相当于MySQL中的group by关键字。例如groupBy=type 3.7.0
createDate 请参见 资源属性 3.7.0
lastOpDate 请参见 资源属性 3.7.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 3.7.0
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 3.7.0
示例
{
    "inventories": [
        {
            "createDate": "Oct 23, 2019 3:17:40 PM",
            "ip": "172.20.12.165",
            "lastOpDate": "Oct 23, 2019 3:17:40 PM",
            "name": "gtt",
            "password": "Password",
            "username": "shixin",
            "uuid": "5ce966372dde4169865474b88973a9d8",
            "vendorType": "H3C VCFC",
            "vniRanges": [
                {
                    "endVni": 3000,
                    "startVni": 3000
                },
                {
                    "endVni": 2009,
                    "startVni": 10
                }
            ],
            "vxlanPools": [
                {
                    "attachedCidrs": {},
                    "attachedClusterUuids": [
                        "f34570997a594344ad698280305a1a9a"
                    ],
                    "attachedVniRanges": [
                        {
                            "createDate": "Oct 23, 2019 3:17:52 PM",
                            "endVni": 29,
                            "l2NetworkUuid": "0b03b34eb79b46d99d2c0aa074bc2385",
                            "lastOpDate": "Oct 23, 2019 3:17:52 PM",
                            "name": "gtt",
                            "startVni": 23,
                            "uuid": "3691fb6e4d194eb39d9c49dc3c780816"
                        }
                    ],
                    "attachedVtepRefs": [],
                    "attachedVxlanNetworkRefs": [],
                    "createDate": "Oct 23, 2019 3:17:52 PM",
                    "description": "",
                    "lastOpDate": "Oct 23, 2019 3:17:52 PM",
                    "name": "gtt",
                    "physicalInterface": "eth0",
                    "sdnControllerUuid": "5ce966372dde4169865474b88973a9d8",
                    "type": "hardware-vxlan-pool",
                    "uuid": "0b03b34eb79b46d99d2c0aa074bc2385",
                    "zoneUuid": "182bd537a902404a94f6412d285d277e"
                }
            ]
        }
    ],
    "success": true
}