一、什么是网络虚拟化
现在有一种流行的说法叫做软件定义网络,网络中有不同的解释,我自己简单理解为是更多通过软件编程来实现对网络的集中管理。比如之前在交换机上的VLAN功能,需要在每台交换机进行配置,不同厂商就有不同的配置方式,配置复杂且管理成本高昂,那么通过一个开放、统一和标准的软件平台对网络硬件进行控制,那将极大改善这一状况。当然由于商业竞争的因素,让各个厂商拥有开放包容的心,不是件容易的事,因而软件定义网络还有很长的路要走。那么回到网络虚拟化,即可以认为是一种在特殊情形下的软件定义网络,即在一个或者多个数据中心里实现软件定义网络的美好图景。除了通过统一软件平台来管理网络外,网络虚拟化也有自己特殊的应用目的和需求。
1、需要实现每个虚拟机都可以像单个物理机一样的网络功能。同一台物理机上的不同虚拟机之间,不同物理机上的虚拟机之间,虚拟机与物理机之间,虚拟机与外部网络能够屏蔽底层的硬件差异,在虚拟化网络上互联互通。
2、需要实现物理网络的更高效的利用。在一个物理网络上(通物理机上同一个物理网卡)承载更多的相互隔离且负载均衡的网络(这点类似VLAN)。数据中心往往需要配置多种相互隔离的网络以承载各类应用,例如域网络、集群心跳网络、集群管理网络、虚拟机迁移网络和外部网络等等,如果在硬件上通过VLAN或者直接增加硬件的方式实现,那将是一件费时费力费钱的工作。
3、需要实现网络的高可用性。物理设备,包括网线、网卡和交换机等都有损坏的可能,需要有一种方案降低他们损坏后对网络造成的影响。