私有云、虚拟化适用场景!
技术部
2018-06-06 16:55

作为网络工程师,应该清楚 Access 口和 Trunk 口的区别,简单说 Access 口接终端、Trunk 口接交换机。面对于服务器,很多人第一直觉是配成 Access 口,然而,在虚拟化的世界里,是不推荐的配置,我们就从这个网工常见的问题谈谈虚拟化网络。

首先,什么是虚拟化?通常我们提到的虚拟化是指计算虚拟化,计算指的就是计算机,这个计算机可以是我们的笔记本,或者机房的 X86 服务器。

在虚拟化之前,一个计算机上面只能运行一个操作系统,一个操作系统上运行很多应用,这是大部分办公计算机的场景,在商业服务器场景中,这样的配置有以下一些问题:

    ① 大家都知道电脑软件装多了软件,电脑可能会变卡,问题就是运行的程序太多,资源争夺;

    ② 很多应用程序共享一个操作系统,应用之间没有任何隔离手段。举个简单的例子,你在电脑里装了网银客户端,我装了一个网络抓包工具,那这时候我可以通过我的抓包工具看到你的任何报文;

    ③ 操作系统本身会存在漏洞,其他应用也会有漏洞,抛开应用间隔离不说,一旦操作系统中毒,所有应用不可幸免;

    ④ 解决 1、2、3 很简单,每个应用用一个操作系统,每个操作系统用一个硬件。但对于企业,硬件扩容远跟不上软件的扩展要求,成本、空间上也不允许每个应用用一套独立的硬件;

    ⑤ 即使解决了 1、2、3、4,如果硬件坏了怎么办?硬件故障上面运行的应用必然会宕机,解决办法就是将应用直接开发成集群形式,而现实是开发集群式的应用成本会很高很高。

为了解决以上 5 个问题,有了计算虚拟化,简单来说就是在服务器上安装“瘦操作系统”,此操作系统只用于资源的调度分配,这个操作系统有自己的管理界面,在这个界面里,你可以创建虚拟机(虚拟机和物理机可以做对应,物理机是真实能看到的计算机,虚拟机则是被模拟出来的,真实看不到的计算机),给这个虚拟机安装操作系统,然后再操作系统里装软件。

有了计算虚拟化:

    ① 提升 CPU、内存的利用率,降低硬件投资。如果硬件上直接装操作系统再装应用,拿 Web 服务器为例,很可能 CPU、内存占用不超过 10%,90% 的资源处于空闲;在虚拟化之后,每个硬件上可以运行 8 个操作系统,CPU、内存占用达到 80%,只有 20% 资源剩余;

图 1

    ② 硬件利用率高了,空间占用就小了,对机房制冷、耗电也会减小,降低了机房的日常维护成本;

    ③ 做到虚拟机和虚拟机之间的隔离。在传统的计算虚拟化之上,可以做到虚拟机存储、CPU 和内存的隔离,不过网络隔离依然是个空缺;

    ④ 按照业务重要性分配不同的优先级,保证重要业务稳定运行;

    ⑤ 动态按需分配资源。比如一个业务刚上线需要的资源很小,但一段时间后用户剧增,处理性能跟不上,那直接给业务在线增加虚拟内存和 CPU 即可;

    ⑥ 在硬件和虚拟机之间多了一层后,虚拟机的操作系统可以无需关心底层硬件的兼容性(比如 Windows XP 很难在新电脑上装成功,但有了虚拟化随便装),因为虚拟化有一个很重要的作用就是将硬件做了硬件标准化;

     因为上述的标准化,虚拟机理论上就可以在任意硬件上运行,虚拟化还提供一个叫迁移的功能,可以在线将一台虚拟机从主机 A 迁移到主机 B,业务不会中断(VMware 称之为 vMotion);

图 2

    ⑧ 虚拟化之后,多台硬件设备可以组成一个集群,有了集群,虚拟机可以动态在多个主机之间迁移,保证集群中硬件的使用率相对均衡(VMware 称之为 DRS);

图 3

    ⑨ 有了集群,虚拟机能够在其所属主机故障后,在集群其他主机上自动开机,此时业务有中断,但是中断时间在分钟级别(VMware 称之为 HA);

图 4

    ⑩ 统一管理,一个管理界面,可以管理成百上千个业务;

    ⑪ 如果架构合理,除非硬件坏了需要更换,否则不用进机房,在电脑前就能完成任何故障处理。

一开始提到传统架构的五个问题,服务器虚拟化技术基本解决了,而且基于此还带来了十几项易用的功能,这就是服务器虚拟化被市场普遍接受并且还在持续增长的原因。简单的讲,服务器虚拟化对客户来讲——省钱、好用!

细心的你可能注意到了第三项,网络的隔离是个空缺。 

通常,交换机和物理服务器对接,端口只需要两个配置:

    ① 设为 Access 口,将其放在某 VLAN

    ② 如果一个网口带宽不够,或者为了保证冗余,两个接口做一个端口聚合

图 5

但在虚拟化中,这样配是不行的,因为一台主机上可能会同时存在 VLAN 10、11、12 的虚拟机,物理交换机对应接口只能配置为 Trunk,放行 VLAN10、11、12(为了简便以及未来扩展,最好不要在 Trunk 去限制 VLAN):

图 6

在这样的结构里,虚拟机发的包必须有 VLAN 标签才能正常让交换机转发,这个 VLAN 标签就由虚拟化里的虚拟交换机来打了。

普通交换机有接终端的接口(一般叫 Edge 边缘接口),有接其他交换机的(一般叫互联口)。

类似的,虚拟交换机有接虚拟机的接口(Internel,接虚拟机的虚拟网卡),有接物理交换机的接口(Uplink,关联到物理服务器的物理网卡,再连接到物理交换机)。配置 VLAN 方式略有不同,交换机配置 VLAN 是直接在接口上敲 VLAN xxx;虚拟交换机是先创建一个端口组,给这个端口组关联 VLAN,然后再将虚拟机关联给这个端口组。

图 7

这里着重提一下,虚拟交换机是不能和其他虚拟交换机直连的,或者理解为虚拟交换机就是虚拟机到物理交换机的一个桥,只做通道用。不能相互连,也就意味着没有传统交换里的二层环路,也就不需要生成树协议。

如上图所示,服务器有两个网卡,没做任何特殊的配置,多个虚拟机的流量自动从两个网卡传输,简言之,虚拟化里,没有端口聚合也可以实现负载均衡(暂且记住这点,不要每个和服务器对接的环境都去做端口聚合,未来会展开讲这部分设计)。

说了这么多,其实想表达,在虚拟化这么长时间里,计算虚拟化能有那么多的特性和优点,而网络层面却只做了个“桥”,严重依赖于物理网络设备提供的特性,没有安全功能。

2008 年,斯坦福大学的一位博士生成立了一家创业公司叫 Nicira,他推出了一款产品叫NVP(Network Virtualization Platform),提出了“网络虚拟化”的概念,彻底改变了这一点。传统的虚拟交换机和物理交换机组成支撑的虚拟机的网络其实是一个“通道”。而网络虚拟化融合了虚拟二层、三层网络,安全,支持各种标准网络协议,在虚拟世界里构建了一个完整的网络。众所周知,这家公司后来被 VMware 收购,这款产品就成了现在的 NSX。

以前虚拟机需要网络功能,在硬件交换机、路由器、防火墙、负载均衡、IPS、WAF 挨个去配置,去串接,架构无比复杂,有时候还达不到想要的效果(颗粒度不够细)。

图 8

NSX 之后,自身提供基础网络功能(路由、交换、安全),提供接口引入高级服务(NGFW、IPS、防病毒)。更重要的是,以上功能和服务可以无缝集成起来,实现网络和安全的联动,更加适应一个虚拟化和云计算的环境。

图 9

图 10

那既然网络都虚拟化了,还要硬件网络做什么?

    ① NSX 目前仅用于数据中心的虚拟化环境,纯物理服务器环境和传统园区网络的一大部分是不去管的;因为这两个领域传统网络已经足够很好的支撑;

    ② NSX 需要硬件交换机来做传输通道,只是将其功能部分上移,而不是替代。

对于技术人员来说:NSX 也需要网络架构师来设计网络的,发挥才能的时候到了。


正如计算虚拟化对硬件服务器的改造一样,NSX 是对数据中心网络的改造。计算虚拟化解决了 5 个问题,还增加了几十上百个优化,NSX 在这个基础上,又带来更多的便利。


相关推荐
您想要定制属于自己的方案吗?
如果您想要走进互联网,并且想找一个出色的团队,那就赶紧联系我们吧~