【云深知处】NFV理论与实践(2)-虚拟化
记得刚出学校的第一份工作需要了解很多操作系统:Linux系统、Solaris系统等等。而自己当时手里只有一台可怜的T20笔记本电脑(华为术语:便携机)。于是,自己找来VMWare软件,在笔记本电脑的Windows Professional操作系统上先装上VMWare软件。然后在VMWare软件上创建“虚拟机”,也就是使用软件在Windows操作系统的笔记本电脑上虚拟出两台主机,然后在这两台主机上分别安装Linux和Solaris操作系统。
图片来自vmware-converter.com,有修改
当时的VMWare软件与运行在笔记本电脑操作系统上的其他应用软件并没有区别。打开VMWare软件后,可以创建新的、或运行已经创建好的虚拟机。
创建虚拟机时可以为该虚拟机分配CPU、内存和硬盘等硬件资源。这些资源都是从“宿主”的笔记本电脑上“挖”出来的。你可以选择虚拟机占用的硬盘空间在创建时就划分给虚拟机,也可以随着虚拟机内使用的存储空间越来越大来动态扩充虚拟机在宿主机上占用的硬盘空间。
虚拟机一旦运行,笔记本电脑就变得非常“慢”,几乎做不了其他的工作。虚拟机上所有的计算、存储以及收发包的工作,都需要通过VMWare软件转换后转到真正的Windows以及笔记本电脑硬件上进行处理。在笔记本电脑看来,是VMWare软件在使用CPU的计算、内存和硬盘的存储、网卡的网络等资源。笔记本电脑的操作系统并不能意识到VMWare中Linux或者Solaris的存在。这种虚拟化技术后来被称为寄居式全虚拟化技术。(Type-2或者hosted hypervisor)
处在最底层直接与硬件打交道的宿主操作系统被称为Host OS;虚拟机上安装的操作系统被称为Guest OS;虚拟机上安装的软件被称为Guest APP;
实现虚拟化的功能单元被称为VMM( virtual machine monitor,虚拟机监视器 ),又被称为Hypervisor。在上面的例子中,Hypervisor是软件,但Hypervisor也可以是硬件或者固件。
A hypervisor or virtual machine monitor (VMM) is a piece of computer software, firmware or hardware that creates and runs virtual machines.
但这种虚拟机的实现非常低效:上层Guest APP的处理需要逐层转换,发送到底层进行处理,反方向也是一样。
所以发展出其他的虚拟化技术:Hypervisor直接运行在硬件上,直接与硬件交互提升效率。这种虚拟化技术被称为type1,或者native裸金属虚拟化(bare-metal hypervisors)。
Hypervisor在服务器上启动后,为创建在其上面的每一台虚拟机分配配置的内存、CPU、网络和磁盘资源,并加载所有虚拟机的Guest OS。
除上述type1和type2两种虚拟化技术外,Hypervisor可以在部分功能上与硬件直接交互,提升性能。比如在CPU性能较差的网络IO方面与硬件直接交互。这种虚拟化技术被称为硬件辅助虚拟化技术。
华为使用FusionSphere实现虚拟化功能。FusionSphere将物理机的处理器、内存、存储器及网络资源抽象化为多台虚拟机。(Fusion应该念“few针”,目前发音方式太多,影响品牌传播)。
严格来说,华为的Hypervisor虚拟化功能是UVP(Unified Virtualization Platform)完成的。UVP通常都集成在FusionSphere中,这种情况下,在客户界面上只呈现FusionSphere即可。对上层业务来说,是由FS提供的虚拟化能力。
但FusionSphere的理想太远大,想做增强的虚拟层“平台”,可以适配其他Hypervisor,最终实现功能增强的虚拟层。
目前市场主要厂商及产品:VMware vSphere、微软Hyper-V、Citrix XenServer 、IBM PowerVM、Red Hat Enterprise Virtulization、Huawei FusionSphere、开源的KVM、Xen、VirtualBSD等。
一句话,虚拟化解决了“将大分小”,将大粒度资源分割为众多小粒度资源,使得整块的资源可以分给不同的功能、不同的用户。今天的IT服务器,已经走在虚拟化的路上。早期的“单机版”服务器,一台服务器上可以安装不同的应用,也可以实现对硬件资源的复用,为什么还要搞虚拟化?非虚拟化的服务器安装多种应用软件存在如下问题:
1. 不同应用安装在相同的操作系统上,不能实现有效的业务隔离。而虚拟化通过Hypervisor构建不同的虚拟硬件资源环境,安装不同的操作系统,实现不同应用的操作系统层级的隔离。
2. 应用以及操作系统和硬件紧耦合。不同的应用需要在操作系统上做参数优化,并且与硬件做适配。所以,在传统IT架构下,当一个服务器或者操作系统出现问题时,应用无法迅速切换到另一个操作系统及硬件上。需要管理员在新的硬件上重新安装和配置操作系统和应用。
虚拟化架构下,Hypervisor通过对底层能力的抽象,将硬件能力标准化为计算、存储和网络资源。虚拟化之后,Guest OS看到的硬件(Hypervisor虚拟之后的硬件)均是相同的。
当一套设备出现故障时,应用可以快速迁移到其他的硬件系统上,而不必考虑系统间的硬件结构差异。
虚拟化通过Hypervisor层将能力和功能分开,屏蔽了硬件对能力实现的差异,使得功能可以在不同类型的硬件之间快速复制,实现了业务能力的快速迁移。这就是IT服务器虚拟化(Server Virtualization)的原因。
今天网络功能虚拟化NFV的全称是Network Function Virtualization。同通服务器的虚拟化一样,NFV实现了网络功能的虚拟化。NFV的架构是将网络功能(路由转发、移动性管理、会话管理)从硬件中解耦(decouple)。网络功能由软件实现,安装在被Hypervisor抽象标准化之后的虚拟硬件上。
所以,网络功能虚拟化(NFV)的是CT行业参考IT行业的方式实现网络设备功能的虚拟化,实现分层解耦。
两个行业同样经历的虚拟化过程。只是IT行业原先分层做得稍好,且一直架构在通用硬件上,给人的感觉是“顺理成章”。CT行业虚拟化与底层硬件通用化同时到来,虚拟化基于通用硬件实现。从软件架构和硬件上都完全发生了变化,所以就会让人感觉到 “沧海桑田”了。
作者|张明和 如需转载请联系作者获得授权,谢谢!
- 点赞
- 收藏
- 关注作者
评论(0)