云计算虚拟化技术解读1
胡经国
本文作者的话
本文是根据有关文献和资料编写的《漫话云计算》系列文稿之一。现作为云计算学习笔录奉献给云计算业外读者作为进一步学习和研究的参考。希望能够得到大家的指教和喜欢
下面是正文
本文主要内容涉及虚拟化及其层次、虚拟化方式选择、虚拟化管理、数据中心虚拟化。
一、虚拟化及其层次
虚拟化是指在同一台物理机器上模拟多台虚拟机的能力。每台虚拟机在逻辑上拥有独立的处理器、 内存、硬盘和网络接口。使用虚拟化技术能够提高硬件资源的利用率使得多个应用能够运行在同一台物理机上各自拥有彼此隔离的运行环境。
虚拟化也有不同的层次。例如硬件层面虚拟化和软件层面虚拟化。
下图中
App licatio n应用程序
Operating System操作系统
VMware Virtua lizatio n Layer VMware虚拟化层次
Inte l Arc hite cture英特尔架构
CPU 中央处理器
Memory 内存
NIC 网卡
Disk磁盘、硬盘
链接 VMware
VMwa re 中文名威睿纽约证券交易所代码VMW是一家虚拟机软件公司的英文名称。该公司是全球桌面到数据中心虚拟化解决方案的领导厂商。全
1
球不同规模的客户依靠VM ware来降低成本和运营费用、确保业务持续性、加强安全性并走向绿色。 2008年 VM war e年收入达到19亿美元拥有逾150000的用户和接近22000多家合作伙伴是增长最快的上市软件公司之一。 VMw are总部设在加利福尼亚州的帕罗奥多市Palo Alto 。
虚拟化层次
1、硬件层面虚拟化
硬件层面虚拟化是指通过模拟硬件的方式获得一个类似于真实计算机的环境可以运行一个完整的操作系统。
硬件层面虚拟化又可分为不同的实现方式例如
⑴、 Full Virtua liza tio n 全虚拟化
几乎是完整地模拟一套真实的硬件设备。大部分操作系统无须进行任何修改即可直接运行在全虚拟化环境中。
⑵、 Partial Virtualization 部分虚拟化
仅仅提供了对关键性计算组件或者指令集的模拟。操作系统可能需要做某些修改才能够运行在部分虚拟化环境中。
⑶、 Paravirtualizatio n 半虚拟化
不对硬件设备进行模拟虚拟机拥有独立的运行环境通过虚拟机管理程序共享底层的硬件资源。大部分操作系统需要进行修改才能够运行在半虚拟化环境中。
2
在硬件虚拟化层面现代的虚拟化技术通常是全虚拟化和半虚拟化的混合体。常见的虚拟化技术例如VMWare、 Xe n和KVM都同时提供了对全虚拟化和半虚拟化的支持。
以硬件虚拟化的方式所提供的虚拟机通常都在运行一个完整的操作系统在同一台宿主机上存在大量相同或者相似的进程和内存页。从而导致明显的性能损耗。 目前通过KSM等技术可以识别与合并含有相同内容的内存页。但是还没有对大量相同或者相似的进程进行优化处理的有效手段。 因此硬件虚拟化也往往被称为重量级虚拟化。在同一宿主机上能够同时运行的虚拟机数量是相当有限的。
链接宿主机和目标机
宿主机是指安装虚拟机软件的计算机。
目标机是指除了宿主机、虚拟机以外的网络上的第三方机器。
链接 KS M技术
KSMKernel Shared Memory或Kernel Samepage Merging 内核共享内存或内核相同页合并技术。对于KVM虚拟化有一个功能就是内存合并。简单说就是把相同的内存合并这样可以让你的物理机运行更多的虚拟机。
KVM就是Keyboard Video Mouse 键盘、视频、 鼠标的缩写。KVM交换机通过直接连接键盘、视频和鼠标端口让您能够访问和控制计算机。
2、软件层面虚拟化
软件层面虚拟化往往是指在同一个操作系统实例的基础上提供多个隔离的虚拟运行环境也常常被称为容器技术。
在软件虚拟化层面 同一宿主机上的所有虚拟机共享同一个操作系统实例不存在由于运行多个操作系统实例所造成的性能损耗。因此软件虚拟化也往往被称为轻量级虚拟化。在同一宿主机上能够同时运行的虚拟运行环境数量是比较宽松的。 以S o laris操作系统上的Container 容器为例一个Solaris操作系统的实例理论上可以支持多达8000个Container 实际能够运行的C onta ine r数量取决于系统资源和负载 。与此类似 L inux操作系统上的LXC可以轻松地在同一宿主机上同时支持数量可观的虚拟运行环境。
链接容器技术
由于hypervisor 虚拟机监控程序虚拟化技术仍然存在一些性能和资源使用效率方面的问题 因而出现了一种称为容器技术C onta ine r的新型虚拟化技术来帮助解决这些问题。
链接 LXC
3
LXC L inux C o nta ine r L inux容器 是一种内核虚拟化技术可以提供轻量级的虚拟化 以便隔离进程和资源而且不需要提供指令解释机制以及全虚拟化的其他复杂性。
二、虚拟化方式选择
在虚拟化这个领域 国内的公司对硬件虚拟化的兴趣较大。在研发和生产环境中也大都采用硬件虚拟化技术。淘宝是国内较早地研究并应用软件虚拟化技术的。淘宝主站的实践经验表明使用c gro up替代Xe n能够提升资源利用率。
链接 Cgroups
Cgroups Control groups对照组 是Linux内核提供的一种可以限制、记录、隔离进程组process groups所使用的物理资源如 cup memory IO等等的机制。最初由Go o g le的工程师提出后来被整合进L inux内核。C gro up s也是LXC为实现虚拟化所使用的资源管理手段可以说没有C gro up s就没有LXC。
链接 Xe n
Xen是一个开放源代码虚拟机监视器 由剑桥大学开发。它打算在单个计算机上运行多达100个满特征的操作系统。操作系统必须进行显式地修改移植 以便在Xe n上运行但是提供对用户应用的兼容性 。这使得Xe n无需特殊硬件支持就能达到高性能的虚拟化。
至于在一个实际的应用场景中到底应该选择硬件虚拟化还是软件虚拟化应该重点考虑最终用户是否需要对操作系统的完全控制权例如升级内核版本 。如果最终用户仅仅需要对运行环境的控制权例如PaaS层面的各种AppEngine服务软件虚拟化可能性价比更高。对于为同一应用提供横向扩展能力的应用场景软件虚拟化也是比较好的选择。
对于需要深入了解虚拟化技术的技术人员来说 VM Ware发表的白皮书
《Understanding Full Virtualization,Paravirtualization,and Hardware Ass ist》是一份很好的参考资料。
通常来讲能够直接使用虚拟化技术的用户数量是比较少的。 以L inux操作系统为例能够进行虚拟机生命周期管理的用户一般就是具有访问lib virt权限的用户。在一个公司或者其他实体中这些用户通常是系统管理员。
链接 libvi rtlib v irt是一套免费、开源的支持L inux下主流虚拟化工具的C函数库其旨
4
在为包括Xe n在内的各种虚拟化工具提供一套方便、可靠的编程接口。
三、虚拟化管理
1、两种管理情况
早期的虚拟化技术解决的是在同一台物理机上提供多个相互独立的运行环境的问题。
当需要管理的物理机数量较小时系统管理员可以手动登录到不同的物理机上进行虚拟机生命周期管理资源配置、启动、关闭等等 。
当需要管理的物理机数量较大时就需要写一些脚本程序来提高虚拟机生命周期管理的自动化程度。
2、虚拟化管理工具
以管理和调度大量物理虚拟计算资源为目的软件称为虚拟化管理工具。虚拟化管理工具使得系统管理员可以从同一个位置执行如下任务
⑴、对不同物理机上的虚拟机进行生命周期管理
⑵、对所有的物理机和虚拟机进行查询甚至监控
⑶、建立虚拟机命名与虚拟机实例直接的映射关系使得虚拟机的识别和管理更加容易。
链接虚拟机生命周期
使用虚拟机生命周期管理工具制定一个计划可以帮助你保持虚拟化环境平稳运行。虽然虚拟机可以永远运行但并不意味着应该这样使用。虚拟机生命周期管理帮助你判断虚拟机应该何时收回。
虚拟机生命周期过程相对来讲比较复杂从虚拟机生命周期的四个阶段开始规划、准备、生产和收回。
虚拟机生命周期管理的关键在于弄明白何时应该更换虚拟机。
L inux操作系统上的Virt M a na ge r 是一个简单的虚拟化管理工具。在VMWare VM W虚拟机软件是全球桌面到数据中心虚拟化解决方案的领导厂商产品家族中 VMWare vSp he re是一个功能强大的虚拟化管理工具。
虚拟化管理工具是虚拟化技术的自然延伸。简单的虚拟化管理工具解决的是由于物理机数量增多所导致的工作内容繁杂问题。在这个层面虚拟化管理通常和集群的概念同时出现。一个虚拟化管理工具往往需要获得各台物理机上的虚拟机生命周期管理权限例如具有访问lib virt权限的用户名和密码 。在同一个集群当中为了方便起见可能需要设定一个在整个集群层面通
5
用的管理用户。可以认为虚拟化管理为系统管理员提供了便利但是并没有将虚拟机生命周期管理的权限下放给其他用户。
四、数据中心虚拟化
1、数据中心虚拟化管理系统
在数据中心层面系统管理员需要面对大量不同类型的硬件和应用。与小型集群相比较数据中心的系统复杂度大大提高了。这时简单的虚拟化管理工具 已经无法满足系统管理员的要求。 因此在虚拟化管理工具的基础上又发展出各种数据中心虚拟化管理系统。
在硬件层面数据中心虚拟化管理系统通过划分资源池一个资源池通常是一个集群的方式对硬件资源进行重新组织并以虚拟基础构架Virtua lInfras truc ture的方式将计算资源暴露给用户。
在软件层面数据中心虚拟化管理系统 引入系统管理员和普通用户两种不同的角色甚至是基于应用场景的需要设定颗粒度更细的基于角色的权限控制Role Based Access Control RBAC 。系统管理员对整个数据中心的物理机和虚拟机拥有管理权限但是一般不对正常的虚拟机进行干涉。普通用户只能在自己具有权限的资源池内进行虚拟机生命周期管理操作不具有控制物理机的权限。在极端的情况下普通用户只能够看到分配给自己的资源池而不了解组成该资源池的物理机细节。
在数据中心虚拟化之前创建虚拟机的动作是需要系统管理员来完成的。在数据中心虚拟化管理系统中通过基于角色的权限控制虚拟机生命周期管理的权限被下放给所谓的“普通用户” 在一定程度上可以减轻系统管理员的负担。但是 出于系统安全的考虑并不是公司里所有的员工都能够拥有这样的“普通用户”账号。一般来说这种“普通账号”只能够分配给某个团队的负责人。可以认为一直到数据中心虚拟化这个层面虚拟机的生命周期还是集中式管理的。
数据中心虚拟化管理系统是虚拟化管理工具的进一步延伸。它所解决的是由于硬件和应用规模上升所带来的系统复杂度问题。具体的物理设备被抽象成资源池之后公司高管只需要了解各个资源池的规模、负载和健康状况最终用户只需要了解分配给自己的资源池的规模、负载和健康状况。只有系统管理员还需要对每一台物理设备的配置、负载和故障了如指掌。但是 资源池的概念也从逻辑上对所有的物理设备进行了重新整理和分类使得系统管理员的工作变得更加容易了。
2、数据中心虚拟化管理系统提供的运维自动化功能
现代的数据中心虚拟化管理系统往往提供了大量有助于运维自动化的功能。这些功能包括
⑴、基于模板快速部署一系列相同或者是相似的运行环境
⑵、监控、报表、预警、会计功能
⑶、高可用性、动态负载均衡、备份与恢复等等。
6
一些相对开放的数据中心虚拟化管理系统甚至以开放API的方式使得系统管理员能够根据自身的应用场景和流程开发额外的扩展功能。
3、值得推荐的数据中心虚拟化管理软件
在VMWare产品家族中 VMWare vC e nter是一个数据中心虚拟化管理软件。其他值得推荐的数据中心虚拟化管理软件包括 C onvirt Xe nS e rverOracle VM OpenQRM等等。
五、云计算——对数据中心虚拟化的进一步封装
1、云计算管理软件
云计算是对数据中心虚拟化的进一步封装。
在云计算管理软件中 同样需要有云管理员和普通用户两种甚至更多不同的角色以及不同的权限。管理员对整个数据中心的物理机和虚拟机拥有管理权限但是一般不对正常的虚拟机进行干涉。普通用户可以通过浏览器自助地进行虚拟机生命周期管理也可以编写程序通过Web Service Web服务自动地进行虚拟机生命周期管理。
2、云计算层面虚拟机生命周期管理
在云计算这个层面虚拟机生命周期管理的权限被彻底下放给真正的普通用户。但是也将资源池和物理机等等概念从普通用户的视野中屏蔽了。普通用户可以获得计算资源但是无需对其背后的物理资源有任何了解。从表面上看云计算似乎就是以与Amazon EC2/S3相兼容的模式提供计算资源。而在实质上云计算使计算资源管理的模式发生了改变最终用户不再需要系统管理员的帮助即可自助地获得和管理计算资源。
3、云计算管理软件的数据中心虚拟化管理功能
对于云管理员来说将虚拟机生命周期管理权限下放到最终用户并没有降低其工作压力。相反他有了更加令人头疼的事情需要去处理。
在传统的IT架构中往往是一个应用配备一套计算资源应用之间存在物理隔离 问题诊断也相对容易。
在升级到云计算模式之后多个应用可能共享同一套计算资源应用之间存在资源竞争 问题诊断就相对困难。因此云管理员往往希望选用的云计算管理软件能够有相对全面的数据中心虚拟化管理功能。对于云管理员来说至关重要的功能包括
⑴、监控、报表、预警、会计功能
⑵、高可用性、动态负载均衡、备份与恢复等等
⑶、动态迁移可以用于局部负载调整以及故障诊断。
显而易见从虚拟化到云计算对物理资源的封装程度不断提高虚拟机生命周期的管理权限逐步下放。
7
4、值得推荐的云计算管理软件
在VMWare产品家族中 VMWare vC loud是一个云计算管理软件。其他值得推荐的云计算管理软件包括 OpenStack OpenNebula Euca lyptus和CloudStack。
虽然OpenStack、 OpenNeb ula、 Eucalyptus和C lo udSta ck都是云计算管理软件但是其功能有较大的差别。这些差别源于不同的软件具有不同的设计理念。 OpenNebula和C lo udStack最初的设计目标是数据中心虚拟化管理软件。因此具有比较全面的数据中心虚拟化管理功能。
云计算的概念兴起之后 OpenNebula增加了O C CI和EC2接口 C lo udStack则提供了称为CloudBridge的额外组件C loudStack从4.0版本开始缺省地包含了CloudBridge组件 从而实现了与Amazon EC2的兼容。
Eucalyptus和OpenStack则是以Amazon EC2为原型自上而下地设计成云计算管理软件的。从一开始就考虑与Amazon EC2的兼容性OpenStack还增加了自己的扩展 。但是在数据中心虚拟化管理方面的功能尚有所欠缺。在这两者当中 Eucalyptus项目由于起步较早在数据中心虚拟化管理方面的功能明显强于Op enStack项目。
2017年2月14日编写于重庆
2017年6月20日修改于重庆
8
官方网站:点击访问酷番云官网活动方案:优惠方案一(限时秒杀专场)有需要海外的可以看看,比较划算29月,建议年付划算,月付续费不同价,这个专区。国内节点可以看看,性能高IO为主, 比较少见。平常一般就100IO 左右。优惠方案二(高防专场)高防专区主要以高防为主,节点有宿迁,绍兴,成都,宁波等,节点挺多,都支持防火墙自助控制。续费同价以下专场。 优惠方案三(精选物理机)西南地区节点比较划算,赠送5...
最近上洛杉矶机房联通CUVIP线路主机的商家越来越多了,HostKvm也发来了新节点上线的邮件,适用全场8折优惠码,基于KVM架构,优惠后最低月付5.2美元起。HostKvm是一家成立于2013年的国人主机商,提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,君选择国内直连或优化线路,延迟较低,适合建站或者远程办公等。以洛杉矶CUVIP线路主机为例,...
亚洲云Asiayun怎么样?亚洲云成立于2021年,隶属于上海玥悠悠云计算有限公司(Yyyisp),是一家新国人IDC商家,且正规持证IDC/ISP/CDN,商家主要提供数据中心基础服务、互联网业务解决方案,及专属服务器租用、云服务器、云虚拟主机、专属服务器托管、带宽租用等产品和服务。Asiayun提供源自大陆、香港、韩国和美国等地骨干级机房优质资源,包括BGP国际多线网络,CN2点对点直连带宽以...