在计算机技术中,虚拟化(Virtualization) 是将计算机物理资源如服务器、网络、内存及存储等予以抽象、转换后呈现出来,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不 受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料储存。

  需要注意的是虚拟化并不等同于云计算,虚拟化只是庞大的云计算生态圈中一个子应用。

Hypervisor

  在介绍具体的虚拟化技术之前,我们首先要来说一说计算机是如何进行虚拟化的。其中不得不提Hypervisor:
  Hypervisor是用来创建和运行虚拟机的软件,固件或硬件。运行Hypervisor的电脑叫做主机(host machine),hypervisor之上运行的操作系统叫做客户机(guest machine)。hypervisor把主机的硬件资源虚拟化,从而为客户机提供了运行其操作系统的平台。按hypervisor运行的层次不同,可以把它可以分为两类,如下所示:

  1)type1 hypervisor(也叫bare metal hypervisor)直接运行在硬件层面上,常见的type1 hypervisor有vmware的Esxi(集成在vmware vsphere中的)和开源软件Xen,两者都是免费的。我们可以把它们刻录到光盘中然后从光盘启动就可以直接安装到硬件层面上了。由于type1 hypervisor提供的界面是非常简单的使得对其的管理还需借助另一种管理软件——hypervisor management software(这个是要收费的)。Vmware把hypervisor和hypervisor management software集成到一起了,也即是vsphere。
  2)type2 hypervisor相信大家就比较熟悉了,像我们平常使用的vmware workstation或者vitual box都属于此类,我们在自己的windows机上安装上vmware workstation或者vitual box,然后创建新的操作系统,接着就同时运行几个虚拟的操作系统了(前提是你的内存足够大以容纳这些操作系统)。

  type1 hypervisor和type2 hypervisor的工作机制是差不多的(vsphere的管理界面甚至和vmware workstation类似),只是前者直接工作在硬件层面,效率较高,两者还有一个区别是前者的虚拟客户机所需要的内存是按需分配的(例如你分配了1G内存给虚拟客户机,如果现在该客户机只需512M就可以了,那么type1 hypervisor就只给它分配512M内存),这样你所有正在运行的虚拟机的所分配内存之和可以比实际的物理内存大(后者就不行);而type2 hypervisor是你给虚拟客户机分配多少内存,你的虚拟客户机就在内存中占用多少内存空间,此外在type2 hypervisor中还要考虑主机的操作系统的内存使用。

  现在比较流行的虚拟化技术有服务器虚拟化和桌面虚拟化,下面我们就来一一介绍。

服务器虚拟化

   随着技术的发展,对于独立建站的站长来说,如何托管他们的服务器就有了更多的选择:虚拟主机,VPS,云主机~~(关于其区别请看这里
  关于虚拟主机的实现技术,我了解不多,这里暂且把它假设为在一个物理机上通过type1 hypervisor虚拟出多个操作系统(这里每个操作系统需要事先安装好且设置了最大使用cpu和内存等硬件资源),每个操作系统作为一个虚拟主机向外界提供服务。
  通过把一系列物理机器连成一个“云”,我们可以开放一个接口向公众提供公共云平台,也即云主机服务,用户可以自定义自己的云主机内存,cpu,操作系统等等,更加灵活,也更加快捷(几分钟即可完成部署),目前提供云主机服务的成熟产品挺多,感兴趣的读者可以免费试用一下易云公司的在线云主机

  另外为了避免公有云可能存在的数据安全性等因素,除了公有云以外,公司还可以选择搭建自己的私有云平台,关于私有云:
  私有云(Private Clouds)是为一个客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制。该公司拥有基础设施,并可以控制在此基础设施上部署应用程序的方式。私有云可部署在企业数据中心的防火墙内,也可以将它们部署在一个安全的主机托管场所。私有云可由公司自己的 IT 机构,也可由云提供商进行构建。在此“托管式专用”模式中,像 Sun ,IBM这样的云计算提供商可以安装、配置和运营基础设施,以支持一个公司企业数据中心内的专用云。此模式赋予公司对于云资源使用情况的极高水平的控制能力,同时带来建立并运作该环境所需的专门知识。
  通常情况下,我们可以把公有云和私有云结合起来使用:在私有云里实现利用存储、数据库和服务处理,同时,在无须购买额外硬件的情况下,在需求高峰期充分利用共有云来完成数据处理需求。目前,已经有很多企业都朝着这种集中云(cloud-bursting)的架构发展,同时这也是实现利益最大化的关键。

  搭建云平台的工具有vmware公司的vmware vcloud(需要的附属组件还有vcloud,vsphere等工具),思杰公司(Citrix)的XenServer和开源软件openStack。关于openStack:
  OpenStack 是由 Rackspace 和 NASA 共同开发的云计算平台,帮助服务商和企业内部实现类似于 Amazon EC2 和 S3 的云基础架构服务(Infrastructure as a Service, IaaS)。OpenStack 包含两个主要模块:Nova 和 Swift,前者是 NASA 开发的虚拟服务器部署和业务计算模块;后者是 Rackspack 开发的分布式云存储模块,两者可以一起用,也可以分开单独用。OpenStack 是开源项目,除了有 Rackspace 和 NASA 的大力支持外,后面还有包括 Dell、Citrix、 Cisco、 Canonical 这些重量级公司的贡献和支持,发展速度非常快。

虚拟化桌面

参考维基百科的定义:

'Desktop virtualization' (sometimes called client virtualization), as a concept, separates a personal computer desktop environment from a physical machine using the client–server model of computing.
桌面虚拟化(有时候也叫客户端虚拟化),就是通过服务器-客户端计算模型把一个个人计算机的桌面环境(注意不是操作系统)同物理机分离开来

Virtual desktop infrastructure, sometimes referred to as virtual desktop interface (VDI) is the server computing model enabling desktop virtualization, encompassing the hardware and software systems required to support the virtualized environment.
VDI(Virtual desktop infrastructure,虚拟桌面基础设施)是使能桌面虚拟化的服务器计算模型,它包装了支持相应虚拟环境的硬件和软件系统。

  实现桌面虚拟化的商业软件有vmware的vmware view,citrix的XenDesktop,开源软件有cantivo(相应的配套文档还未完善),Ulteo,QVD(Quality Virtual Desktop)。其中:
  QVD安装在linux中,也只能虚拟化linux桌面。Ulteo可以在客户端提供windows和linux,操作系统界面可以在浏览器中显示(cantivo也是,当然也可以使用客户端的方式),对比商业的vmware view来说效果不是很好,浏览网页有时都不太连贯(vmware view可以在虚拟桌面流畅的观看高清视频)。另外,虚拟桌面中的操作系统与虚拟主机并不一样,虚拟化桌面的操作系统(也可能一个虚拟化桌面根本就不会对应于一个操作系统,具体技术有待深究)在server上并不是以一个完整的整体存在的,而是分散在各个数据库中,从而可以在windows中使用linux应用程序,在linux中也可以使用windows应用程序。

  注意,虚拟化桌面并不是在客户端你只要有一个显示器和一个键盘及鼠标就可以了(这是偶以前愚蠢的错觉),你仍然需要一个主机来安装虚拟化桌面的客户端,只不过这个主机可以不必拥有像普通的家用PC机那样配置,一个普通的几百元的迷你电脑就完全能胜任了。
  附:不要把迷你电脑和云终端机混淆了,前者相当于一个主机,只不过硬件配置较低罢了;而后者只是用来连接某个具体的操作系统的工具,相当于一个终端机,本身不具备计算的特性。从设计角度讲,两者也不一样,前者是用来连接一个物理主机上虚拟出的多个“操作系统”桌面,后者是多个用户连接到同一个操作系统上(即“多用户”操作系统,这里的多用户在windows上也适用,只要在windows上安装一个多用户插件就可以了)。

  实现虚拟化桌面的典型案例之一是学校的机房,这样可以使每个学生都有自己的一台虚拟电脑,从而省去了还原卡硬件的使用和u盘拷贝带来的病毒风险,而且可以随时随地同步工作。关于其解决方案可以参看这里

关于vmware的两个虚拟化产品vmware vcenter和vmware vcloud的区别:
vcenter: manages the cloud environment
    VCenter Server is installed at the primary server of a virtualized data center and operates as the virtualization or virtual machine manager for that environment. It also provides data center administrators and a central management console to manage all the system's virtual machines.
    Virtual center provides statistical information about the resource use of each virtual machine and provisions the ability to scale and adjust the compute, memory, storage and other resource management functions from a central application. It manages the performance of each virtual machine against specified benchmarks, and optimizes resources wherever required to provide consistent efficiency throughout the networked virtual architecture. Besides routine management, virtual center also ensures security by defining and monitoring access control to and from the virtual machines, migration of live machines, and interoperability and integration among other Web services and virtual environments. 
vcloud:creates IaaS
    vCloud is a cloud computing initiative from VMware which will allow customers to migrate work on demand[1] from their "internal cloud" of cooperating VMware hypervisors to a remote cloud of VMware hypervisors. The goal of the initiative is to provide the power of cloud computing with the flexibility allowed by virtualization

 

其他专业术语介绍:
Datacenter:
    A data center or computer centre (also datacenter) is a facility used to house computer systems and associated components, such as telecommunications and storage systems. It generally includes redundant or backup power supplies, redundant data communications connections, environmental controls (e.g., air conditioning, fire suppression) and security devices. Large data centers are industrial scale operations using as much electricity as a small town[1] and sometimes are a significant source of air pollution in the form of diesel exhaust.
CPU socket:
    A CPU socket or CPU slot is a mechanical component that provides mechanical and electrical connections between a microprocessor and a printed circuit board (PCB). This allows the CPU to be replaced without soldering.
LXC:
    LXC (LinuX Containers) is an operating system-level virtualization method for running multiple isolated Linux systems (containers) on a single control host.

 转载请注明出处:http://www.cnblogs.com/beanmoon/archive/2012/12/17/2822050.html

posted on 2014-01-21 10:52  飘荡小黄鸭  阅读(720)  评论(0编辑  收藏  举报