网络与存储虚拟化的意义何在

云计算 虚拟化
如果把CPU虚拟化定义为抽象物理CPU以方便工作负载使用计算资源,则VMware并不是第一个实现CPU虚拟化的厂商,现代操作系统早就做到了。负载包括线程和进程,操作系统负责将这些线程和进程调度到CPU中运行。

VMware, Microsoft, Red Hat和Citrix都已经在各自的虚拟化层中实现了对CPU和内存的虚拟化。VMware则更进一步,提出了软件定义数据中心的理念,旨在将虚拟化技术延伸到网络和存储。虚拟化这些资源的意义何在呢?对用户而言有什么益处?相对于虚拟化CPU和内存而言,虚拟化网络和存储又有什么特殊的价值?这绝对值得我们认真思考。

CPU虚拟化

我们回过头看一下,如果把CPU虚拟化定义为抽象物理CPU以方便工作负载使用计算资源,则VMware并不是***个实现CPU虚拟化的厂商,现代操作系统早就做到了。负载包括线程和进程,操作系统负责将这些线程和进程调度到CPU中运行。

VMware通过CPU虚拟化技术解决难题的是如何在一个操作系统实例中运行多个应用。实现这一任务的困难之处在于每一个应用都与操作系统之间有着密切的依赖关系。一个应用通常只能运行于特定版本的操作系统和中间件之上。这就是Windows用户常常提到的“DLL地狱”。因此,大多数用户只能在一个Windows操作系统实例上运行一种应用,操作系统实例独占一台物理服务器。这种状况会导致物理服务器的CPU资源被极大地浪费。能够使多个操作系统实例同时运行在一台物理服务器之上,是VMware所提供的CPU虚拟化技术的价值所在。通过整合服务器充分利用CPU资源,可以给用户带来极大的收益。

服务器整合的益处能够得以实现的前提是工作负载并不需要知晓它们正在共享CPU,虚拟化层必须具备这种能力。这是CPU虚拟化与其它虚拟化形式所不同的地方。

内存虚拟化

VMware的CPU虚拟化通过时间片的方式实现CPU的共享。而通过虚拟化技术来共享内存就没这么简单了。假设一个应用程序需要2GB物理内存,即使分配2GB虚拟内存给它,后面对应的物理内存也必须存在。否则应用程序的性能将变得很差(使用磁盘交换内存页)。VMware通过透明页共享技术可以实现一定程度上的内存共享。虚拟化层能够识别出各操作系统只读内存区域(代码页)中的相同部分,这些页面在内存中只保留一个副本。Windows操作系统自身所使用的内存大多为代码页,因此在运行有N个Windows实例的物理服务器上vSphere只保留一个Windows操作系统副本。这就是为什么在VDI的环境中你只需要为VDI映像分配比物理桌面少得多的内存。

需要强调的是,CPU时间分片是虚拟化层能够实现的,内存却不能按时间分片。多个应用可以共用一个CPU,但多个应用却不能同时使用一段内存区域。CPU的速度在持续增长,虚拟机的密度主要受限于服务器上物理内存的数量。

网络虚拟化

聊完了虚拟化技术的历史,我们再看看未来。我们现在面对的主要问题之一是,网络虚拟化如何工作,能给我们带来什么样的收益?这个问题的答案差不多是这样:网络虚拟化将虚拟网络的配置从硬件交换机移到了虚拟化平台。使虚拟化管理员可以更容易地创建和变更虚拟网络。网络配置也可以很容易地随着虚拟机移动。云管理软件可以基于服务目录自动创建工作负载所需要的虚拟网络。这与虚拟化层可以很容易地配置虚拟CPU和虚拟内存所带来的好处是相似的。但是在节省成本,提高投资回报方面,它并不像服务器整合所带来的收益那么明显。

但是网络虚拟化也有CPU虚拟化和内存虚拟化所不具备的独到之处。它将一部分通过网络硬件实现的工作转移给了虚拟网络软件。VMware很早就已经在软件中实现了虚拟交换机。微软的Hyper-V中也有类似的东西。运行在同一主机上的两台虚拟机要相互通讯,网络流量不需要通过物理网卡传送到物理交换机。如果你把服务于某个应用的WEB服务器、应用服务器和数据库服务器放在同一台主机上。只有数据库服务器的流量会流经网卡(使用NAS)或HBA卡(使用光纤存储),因此网络虚拟化可以减少物理服务器所需网口的数量。这是不是可以称之为“网络整合”呢?减少三分之一到一半的网线(以及TOR交换机的端口)也算是一大成就了。

把交换设备的控制权和交换设备本身移到软件中还有更深远的意义和价值。用户将不再需要那些昂贵且智能的交换机。所有的智能都移到了软件之中,谁还需要智能交换机呢?你只需要一台能够转发数据包的傻瓜交换机就可以了。网络虚拟化技术将改变交换机产业。这两点可以解释VMware收购Nicira时Cisco所做出的反映。

存储虚拟化

与CPU的虚拟化不同,存储虚拟化并不是VMware或Microsoft的主要投资目标。早就有多种抽象物理存储的方法在应用了,LUN就是一种逻辑抽象,存储管理员负责将它映射到物理存储。一些创新型的企业如Tintri和Virsto也是通过提供独特的存储抽象技术来创造价值的。

要理解VMware的软件定义数据中心所提供的价值,我们得首先介绍一下将要提供的存储虚拟化技术是什么样子的。VMware现在有一款名为vSphere Storage Appliance的产品,可以将最多三台物理服务器的本地硬盘存储整合成池,这个虚拟存储池可以通过一个访问点进行访问,提供冗余能力和高可用服务。如果VMware将vSphere Storage Appliance扩展为32节点的服务器集群会如何?为32节点集群提供存储虚拟化服务,如果服务器内部有足够多的磁盘来容纳数据,而且虚拟存储阵列能够满足应用对存储性能的要求,你可能就不需要另外购买NAS或者光纤存储了。如果VMware实现了上述构想,存储虚拟化在CPU、内存和网络虚拟化的基础上又会增加什么好处呢?答案或许是这样:

与内存类似,这种方式的虚拟存储并不能实现多个负载共享同一块存储区域。如果一个负载需要2TB网络存储,也就意味着需要占用2TB的本地存储池。所以不会像CPU虚拟化和服务器虚拟化一样有明显的整合收益。

但管理收益是明显的。管理这些本地存储设备池要比管理EMC和NetApp的高端阵列要简单多了。关键在于这个本地存储池能否提供与高端阵列相仿的性能。

如果这些本地存储池能够取代网络和光纤存储阵列,则会带来与网络虚拟化类似的收益。服务器本地的直连存储要比网络上的共享存储便宜得多。如果这一技术能在VMware客户中得以大量应用,在存储方面的成本节省将是非常显著的。

责任编辑:老门 来源: 论坛
相关推荐

2013-08-12 17:33:53

网络存储虚拟化

2011-11-03 09:44:51

虚拟化混合存储虚拟机

2013-03-18 10:12:25

存储虚拟化虚拟化技术

2011-07-28 09:44:37

存储虚拟化

2013-09-22 09:58:37

虚拟化

2022-09-01 09:42:48

SDS软件定义存储存储虚拟化

2020-03-04 20:42:55

服务器存储网络虚拟化

2010-05-25 11:40:55

存储虚拟化服务器虚拟化

2015-06-15 11:33:11

SDN网络虚拟化

2018-07-25 15:13:40

存储虚拟化技术

2010-08-20 06:12:22

网络虚拟化

2011-07-08 12:02:31

IBM私有云存储

2011-11-19 15:53:59

虚拟化存储虚拟化网络虚拟化

2011-03-07 10:14:39

网络虚拟化数据中心资源整合

2015-07-02 10:09:23

存储虚拟化软件定义存储云平台

2014-08-22 11:15:52

2009-07-20 09:18:38

存储虚拟化服务器虚拟化iSCSI

2010-09-15 16:05:31

存储虚拟化

2012-03-07 09:39:03

2013-08-14 09:22:52

存储虚拟化服务器虚拟哈
点赞
收藏

51CTO技术栈公众号