拨开迷雾,近距离见识CloudStack的物理网络架构
想理解并配置部署的CloudStack系统中某个主机的物理连接,可能一开始让人完全一头雾水。虽然软件定义网络(SDN)势必会大大简化一些方面,但是SDN在CloudStack里面的整合还没有完全成熟起来,它也不会是适合每个人的解决方案。
云计算专业公司ShapeBlue的云计算架构师Paul Angus,在本文中阐明了一些可能导致人们对CloudStack的物理网络架构方面一头雾水的部分。
物理主机与逻辑主机的区别
导致大家一头雾水的根源之一是,人们提到CloudStack环境中的“主机”时,他们可能指两种不同的东西:物理主机和与Cloudstack进行通信的“主机”。可以理解,物理主机是含有处理器、内存和网络接口等部件的物理设备。通过管理网络与Cloudstack进行通信的主机则是物理主机里面的虚拟机管理程序。所以比如说,公共流量需要连接到物理主机(那样系统的虚拟机可以对外连接),而不需要连接到逻辑主机(虚拟机管理程序)。
你的物理网络拓扑结构中第一个决定性因素将是所要实施的区域(zone)的类型。我们不妨从物理网络的角度来考虑CloudStack的“基本”区域和“高级”区域。
基本区域
在基本区域中,你只有一个“物理网络”,因为你没有虚拟局域网(VLAN)隔离,不过你仍可以将流量划分到多个物理网卡上(这方面稍后会有详细介绍)。
基本区域还可能只有一个访客网络,没有公共网络。
高级区域
在高级区域中,Cloudstack允许一个公共网络、创建多个访客网络,它们既可以是物理网络,也可以是逻辑网络(通常使用被标记的VLAN)。
额外物理访客网络的使用场合可能是:建立从主机到数据中心内非CloudStack网段的物理分隔的链路,比如MPLS网络。
其他使用场合可能是:启用专门的访客网络DD这些网络只供某些域或某些帐户使用,或者提供速度更快的访客网络,比如10GB链路而不是1GB链路。
网络标签
这种配置中最重要的部分是网络标签。如果是ESXi主机,它们是指主机上vSwitch(虚拟交换机)的名称;如果是KVM主机,它们是指你将要建立的网桥;如果是Xenserver主机,它们就是指主机上针对每个网络接口或每个绑定(bond)的网络标签。
网络标签告诉CloudStack:主机中哪些物理网络接口连接访客和系统实例上的各个虚拟接口。比如说,SSVM在公共网络、专有网络、存储网络和管理网络上有接口;这些接口连接到主机里面相应的虚拟网络,这点很重要,而这些虚拟网络反过来连接到物理网络。实际名称/标签可以随意取,但是最好取一个具有提示性的名称,这始终是个好的做法。
存储流量
在不同的Cloudstack流量类型中,存储流量总是最让人混淆。“存储流量”和“存储网络”这两个术语是指二级存储流量、快照(备份)、ISO和模板都通过该网络传入到二级存储系统,或者从二级存储系统传出。
默认情况下,Cloudstack的主存储流量和二级存储流量通过管理网络传输。二级存储流量经配置后,可以通过有别于管理网络的单独网络(存储网络)传输。现在有办法可以在虚拟机管理程序层面分隔主存储流量,不过那是另一个话题。
在以下两种情况下,能看到分隔二级存储流量和管理流量(因而分隔主存储流量和二级存储流量)的主要好处:一是创建访客实例时,模板从二级存储系统复制到主存储系统;二是创建快照时,磁盘映像从主存储系统复制到二级存储系统。
基本网络流量
在基本网络中,所有流量都将通过同样的一个或多个接口传输,每种流量类型都会有同样的网络标签。我们不推荐这么做。
管理流量、存储流量和访客流量可以分隔开来,只要在主机上为它们使用单独的物理接口,然后用不同的标签来称呼它们。现在你可以让它们连接到同一个交换机、不同的交换机或者连接到同一交换机,但在不同的未被标记的VLAN上。将它们连接到同一个交换机会带来额外的进出主机的吞吐量。
将接口连接到不同的VLAN(交换机层面加以配置,见图6)提供了额外的吞吐量和安全性,因为访客流量可与管理流量和存储流量分隔开来。在基本区域配置中,让访客流量通过主机上与管理流量不同的接口传输,这被认为是最佳实践DD每个主机至少需要两个接口。
高级网络流量
在高级网络中,CloudStack可以通过使用VLAN标记机制,实现流量的逻辑分隔。从某些方面来看,分隔机制在基本网络中更容易配置,因为你只需要设置交换机上的端口,让你使用的所有VLAN都通过隧道来实现。
不过,你仍需要实现流量的物理分隔,以提高吞吐量、增强安全性。这再次可以通过根据你想要通过该接口传输的流量类型来映射所要使用的每个物理接口来完成。
主机内部
将这一切结合起来,含有两个网络接口的高级区域主机的合并后的逻辑和物理图应该就像这样:
总结