清单

属性

名字 描述 可选的 可选的参数值 起始支持版本
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必须能够理解在这些集群中虚拟机管理程序是如何使用标记描述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中描述这个拓扑结构,可以将L2 network1挂载到所有三个集群上,同时只将L2 network2挂载到集群cluster1和cluster3上。

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


L2NoVlanNetwork

L2NoVlanNetwork是L2网络的基本类型,名字中的NoVlan并不表示不可以使用VLAN技术,它仅仅表示ZStack不会主动使用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不会为L2NoVlanNetwork创建任何新的广播域。

KVML2NoVlanNetwork注意事项(L2NoVlanNetwork KVM Specific)

当挂载一个L2NoVlanNetwork到KVM集群时, physicalInterface应该是一个Linux操作系统中的以太网设备名(ethernet device name); 例如:eth0、 eth0.10和 em1。 当ZStack使用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主动使用VLAN创建二层广播域的L2网络。根据集群中虚拟机管理程序的不同, ZStack创建L2网络对应的二层广播域的方式也不同。 相比l2Network inventory, L2VlanNetwork还有一个额外的属性:
名字 描述 可选的 可选的参数值 起始支持版本
vlan 用来创建二层广播域的VLAN号(VLAN id) [0,4095] 0.6

当挂载L2VlanNetwork到集群的时候,ZStack会配合使用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会在集群中的所有物理主机上创建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
}