精华内容
下载资源
问答
  • 服务器虚拟化的成功是因为实现了在虚拟机上运行与物理服务器相同的应用软件和操作系统。虚拟I/O也是同样原理。   将I/O虚拟化后,你仍拥有与你当前拥有的存储和网络适配器(NICs和HBAs)相似的设备,但是其成为...
    服务器虚拟化的成功是因为实现了在虚拟机上运行与物理服务器相同的应用软件和操作系统。虚拟I/O也是同样原理。 

      将I/O虚拟化后,你仍拥有与你当前拥有的存储和网络适配器(NICs和HBAs)相似的设备,但是其成为软件设备而非硬件。你仍有多个物理端口来连接单独的LAN和SAN,但是现在适配器(NICs和HBAs)可以被分配到那些软件端口而非物理端口。 

      成本总加 

      你首先需要计算你的I/O成本,你可能会发现被忽视的成本节约空间。将服务器、交换机、网卡和电缆的成本考虑在内。不要忘记能源、机架空间以及管理基础设施所花费的时间。在你了解成本节约空间之前你必须先了解问题的严重性。 

      估算灵活性 

      你的企业需求是周期性变动的吗?你是否考虑给企业IT系统操作实施管理服务或者云计算模式?如果是这样,提高灵活性将有巨大的回报。当给服务器分配新的连接,你将可能从这些设备中得到更大的回报。当估算设备的互联需求时,要考虑到非预期费用。假设任一服务器必须在一个时间点获取任何资源。你就可以更快地对非预期变化做出反应,同时更好地迎合需求。 

      找到瓶颈 

      你的服务器I/O受限吗?这将导致设备利用率下降和不必要的成本支出。如果你有监控工具,比如有VMwareESX的设备,看看I/O利用率是多少。你或许将发现I/O是一个限制因素,你本来可以进一步深化整合。 

      简化 

      由于I/O的成本几乎与服务器自身的成本接近,因此需要在下一步配置中对其进行简化。一个简化的I/O基础设施的购买和安装成本都将减少,并将减少由于人为失误造成的宕机风险。 

      寻找成本节约的办法 

      一个成本节约可能导致另一成本节约的可能。简化的I/O基础设施会使得服务器更小、花费更少。这就实现了每台服务器节约上千美元。 

      通过革新手段 

      在未来采用同样的方式意味着你的成本结构也不会发生变化。寻找能通过革新得到改进的高成本领域。革新技术(例如服务器虚拟化、iSCSI存储和I/O虚拟化)比强制节约提供了更多的成本节约可能。虚拟化的核心就在于:用最少的花费做更多事情。 

      开展试运行 

      新技术采用的投资回报需要时间,而成本节约则收效很快。为了加速这一过程,考虑在企业部分IT环境中开展新的成本节约方式。这样在大范围开展之前,你可以将这一方式进行最优化。并且你有日常数据来证明这一方法的实施是有益处的,而你自己也将获得确保成功的经验。 

      虚拟化的部署,需要采用系统的架构。目前虚拟化方案涵盖了方方面面,从服务器、桌面系统一直到展示系统。其中日常运作过程中的管理显得格外重要。因为这是一个动态过程,而不是一个静态过程,特别是虚拟化管理套件,在虚拟机的动态迁移、服务器应用过程中动态资源的调配、动态资源的监控、动态资源的配置,都会发挥很大的作用。
    展开全文
  • 二、虚拟化

    2018-05-11 17:18:20
    一、虚拟化技术的发展虚拟化技术和并行计算、分布式计算、网格计算等的发展促进了云计算技术的产生和发展,通过云计算技术,我们将大量的计算机资源组成资源池来创建高度虚拟化的资源提供给用户,即云计算技术解决...

    一、虚拟化技术的发展

    虚拟化技术和并行计算、分布式计算、网格计算等的发展促进了云计算技术的产生和发展,通过云计算技术,我们将大量的计算机资源组成资源池来创建高度虚拟化的资源提供给用户,即云计算技术解决方案依靠并利用虚拟化提供服务。

    虚拟化技术主要应用在基础设施即服务的服务模式(IaaS)中,大多资源都可以通过虚拟化技术对其进行统一管理。

    虚拟化在计算机领域的发展至今已有50多年了,在这期间产生了很多种虚拟化形式,如网络虚拟化、微处理器虚拟化、桌面虚拟化等。

    这些虚拟化技术的产生、成熟离不开计算机技术的发展。

    虚拟化从概念上来说就是将在实际环境运行的程序、组件,放在虚拟的环境中来运行,从而达到以小的成本来实现与真实环境相同或类似的功能的目的。

    1.广义上的虚拟化技术

    从广义来说,虚拟化技术的范围非常宽,它不但是云计算的核心技术,也是计算机科学的核心技术,甚至是整个工业领域的核心技术。

    工业领域,机械的虚拟化技术:

    如开汽车,汽车机械运动的复杂形态,被逻辑上简化为方向盘、油门、刹车、离合器的简单运动方式。这种简化使汽车机械系统的复杂性被全面屏蔽,转向盘、油门、制动器、离合器成为了最终的人机交互设备。

    金融领域

    如复杂的股市变化规律被几个简单的指数所描述,指数的变化反映了股票市场的运行情况,甚至整个经济的运行规律。

    物理学

    广泛地应用了虚拟化技术,原子核内部的复杂运动情况通过各种宏观的物理设备,如拉曼谱、正电子谱、核磁共振等表现出来,其实我们谁也没有真正地看到过原子核的形态,但我们能通过对这些物理量的分析而得到原子核的结构,这些物理设备就实现了对原子核内部结构的虚拟化工作。

    虚拟化技术是一门应用很广泛的技术,甚至可以说是一门相当基础的学科。广义地定义虚拟化技术可以这么来看:虚拟化技术就是一种逻辑简化技术,实现物理层向逻辑层的变化。从这个定义来看,一个系统采用虚拟化技术后,其对外表现出的运动方式是一种逻辑化的运动方式,而不是真实的物理运动方式。所以采用虚拟化技术能实现对物理层运动复杂性的屏蔽,使系统对外运行状态呈现出简单的逻辑运行状态。

    2.计算机学科中的虚拟化技术

    早期的计算机大多用于科学计算,计算机不仅价格昂贵,而且硬件资源的利用率低,用户的体验效果也差强人意,从而有了分时系统的提出。

    为满足分时系统的需求,克里斯托弗(Christopher Strachey)提出了虚拟化的概念。在1959年召开的国际信息处理大会上,其发表了一篇名为《 大型高速计算机中的时间共享 》   (Time Sharing in Large Fast Computers)的学术报告,在这篇文章中他提出了虚拟化的基本概念。虚拟化作为一个概念被正式提出就是从此时开始的。

    在随后的10年中,由于当时工业、科技条件的限制,计算机的硬件资源是相当昂贵的,IBM在1956年推出的首部磁盘储存器件,总容量仅5MB,但是平均每MB需花费1万美元。这远远超出了普通大众的承受范围,严重阻碍了人们对计算机的购买力。

    为了使昂贵的硬件资源得到充分利用,来提高自己的销售额,IBM最早发明了一种操作系统虚拟机技术,能够让用户在一台主机上运行多个操作系统,IBM 7044计算机就是典型的代表。

    随后虚拟化技术一直只在大型机上应用,而在PC、服务器的x86平台上仍然进展缓慢。

    随着科技水平的提高,计算机硬件资源的价格逐渐降低,从20世纪90年代末开始,x86计算机由于其成本低廉渐渐代替大型机,为了抢占市场的份额,VMware就在考虑如何节省客户的开支,来提高自己产品的竞争力。这时就有了虚拟化技术的再次发展。以VMware为代表的虚拟化软件产商率先实施了以虚拟机监视器为中心的软件解决方案,为虚拟化技术在x86计算机环境的发展开辟了道路。

    最近的十几年间,诸多厂商(如微软、Intel公司、AMD公司等)都开始进行虚拟化技术的研究。

    为了与VMware展开直接的竞争,微软开发了Hyper-V技术。微软凭借其强大的技术支持,成为VMware竞争小企业市场的主要对手。 同时,虚拟化技术的飞速发展也引起了芯片厂商的重视,Intel公司和AMD公司在2006年以后都逐步在其x86处理器中增加了硬件虚拟化功能。

    2008年以后,云计算技术的发展推动了虚拟化技术成为研究热点,由于虚拟化技术能够屏蔽底层的硬件环境,充分利用计算机的软硬件资源,是云计算技术的重要目标之一,虚拟化技术成为切分型云计算技术的核心技术。虚拟化对云计算技术的发展产生重大意义的是基于x86架构的服务器虚拟化技术。

    二、虚拟化的描述

    现代计算机系统被分为多个自下而上的层次。从下到上依次是裸机(底层硬件)、操作系统,操作系统提供应用程序编程接口及运行在操作系统之上的各种各样的应用程序。

    虚拟化技术可以在这些不同层次之间建立虚拟化层,向上提供与真实层次相同或相近的功能,向下只需知道下层的抽象接口,不需要知道下层的具体实现。

    虚拟化层的引入,必然给系统带来一定的性能损耗,构建、维护虚拟化层也会增加一定的费用。

    虚拟化涉及的领域比较多,虚拟化的技术在不断发展,虚拟化的定义也在不断发展中。

    维基百科中虚拟化的描述:

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

    我们可以从虚拟化的对象、过程及其要达到的结果方面来对虚拟化进行如下描述:

    • 对象:计算机的各种资源,这些资源包括基础设施、系统和软件。
    • 过程:将各种资源进行抽象、转换。
    • 结果:为这些资源提供标准的接口来接收输入和提供输出,使用户能以更好的方式来应用这些资源。

    三、虚拟化技术的优势和劣势

    1.虚拟化技术的优势

    (1)虚拟化技术可以提高资源利用率。

         传统的IT企业为每一项业务分配一台单独的服务器,服务器的实际处理能力往往远超服务器的平均负载,使得服务器大部分时间都处于空闲状态,造成资源的浪费;

        而虚拟化技术可以减少必须进行管理的物理资源的数量,隐藏了物理资源的部分复杂性。为了达到资源的最大利用率,虚拟化还把一组硬件资源虚拟化为多组硬件资源,并动态地调整空闲资源,减小服务器的规模。

    例如,VMware的用户在使用VMware的虚拟基础架构解决方案之后服务器的利用率通常可由原先的5%~15%提升到60%~80%。

    (2)提供相互隔离、高效的应用执行环境。

    虚拟化技术能够实现较简单的共享机制无法实现的隔离和划分,从而对数据和服务进行可控和安全的访问。

    例如,用户可以在一台计算机上模拟多个不同、相互之间独立的操作系统,这些虚拟的操作系统可以是Windows或Linux系统。其中的一个或多个子系统遭受攻击而崩溃时,不会对其他系统造成影响。在使用备份机制后,受到攻击的子系统可以快速恢复。

    (3)虚拟化可以简化资源和资源的管理

    计算机有硬盘、磁盘等硬件资源和Web服务等软件资源。用户对计算机资源进行访问是通过标准接口来进行的。

    使用标准接口的好处是用户不用知道虚拟资源的具体实现。底层的基础设施发生变化时,只要标准接口没有发生变化,用户基本上感受不到这种变化。这是因为,与用户直接接触的是标准接口,虽然底层的具体实现发生改变,但是用户与虚拟资源进行交互的方式并没有改变。

    传统的IT服务器资源是硬件相对独立的个体,对每一种资源都要进行相应的维护和升级,会耗费大量的人力、物力。

    而虚拟化系统降低了用户与虚拟资源之间的耦合度,利用这种松耦合的关系,管理者可以在对用户影响最小的基础上对资源进行管理。

    此外,虚拟化系统还将资源进行整合,在管理上相对而言比较方便,在升级时也只需添加动作,从而提高工作效率。

    (4)虚拟化技术实现软件和硬件的分离

    用户在同一个计算机系统上可以运行多个软件系统,不同的软件系统通过虚拟机监视器(VMM, Virtual Machine Monitor)来使用底层的硬件资源,从而实现多个软件系统共享同一个硬件资源,达到软件和硬件的分离。这样,在虚拟化的统一的资源池能够运行更多的软件系统,充分利用已有的硬件资源。

    2.虚拟化技术的劣势   

    (1)可能会使物理计算机负载过重

    虚拟化技术虽然是在虚拟的环境中运行的,但是其并不是完全虚拟的,依然需要硬件系统的支持。

    以服务器虚拟化为例,一台物理计算机上可以虚拟化出多台客户机,每台客户机上又可以安装多个应用程序。若这些应用程序全部运行的话,就会占用大量的物理计算机的内存、CPU等硬件系统,从而给物理计算机带来沉重的负担,可能会导致物理计算机负载过重,使各虚拟机上的应用程序运行缓慢,甚至系统崩溃。

    (2)升级和维护引起的安全问题

    物理计算机的操作系统及操作系统上的各种应用软件都需要不定时地进行升级更新,以增强其抵抗攻击的能力。每台客户机也都需要进行升级更新。一台物理计算机上安装多台客户机,会导致在客户机上安装补丁速度缓慢。如果客户机上的软件不能及时更新,则很可能会被病毒攻击,带来安全隐患。

    (3)物理计算机的影

    传统的物理计算机发生不可逆转的损坏时,若不是作为服务器出现,则只有其自身受到影响。当采用虚拟化技术的物理计算机发生宕机时,其所有的虚拟机都会受到影响。在虚拟机上运行的业务也会受到一定程度的影响,甚至是损坏。此外,一台物理计算机的虚拟机往往会有相互通信,在相互通信的过程中,可能会导致安全风险。 

    四、虚拟化技术的分类

    虚拟化技术从计算体系结构的层次上可分为:

    指令集架构级虚拟化、硬件级虚拟化、操作系统级虚拟化、编程语言级虚拟化数据库级虚拟化。

    1.指令集架构级虚拟化

    指令集架构级虚拟化是通过纯软件方法,模拟出与实际运行的应用程序(或操作系统)所不同的指令集去执行,采用这种方法构造的虚拟机一般称为模拟器(Emulator)。

    模拟器是将虚拟平台上的指令翻译成本地指令集,然后在实际的硬件上执行。其特点是简单、具有鲁棒性、可跨平台。当前比较典型的模拟器系统有Bochs、VLIW等。

    以Bochs为例,Bochs是用C++编写的模拟x86平台的模拟器。用户可以在任何编译运行Bochs的平台上模拟x86的各种硬件。并且在Bochs的仿真平台上可以安装大多数的操作系统。


    2.硬件抽象层虚拟化

    硬件抽象层虚拟化是指将虚拟资源映射到物理资源,并在虚拟机的运算中使用实实在在的硬件。即使用软件来虚拟一台标准计算机的硬件配置,如CPU、内存、硬盘、声卡、显卡、光驱等,成为一台虚拟的裸机。

    这样做的目的是为客户机操作系统呈现和物理硬件相同或类似的物理抽象层。客户机绝大多数指令在宿主机上直接运行,从而提高了执行效率。但是,给虚拟机分配的硬件资源的同时虚拟软件本身也要占用实际硬件资源的,对性能损耗较大。虽然如此,硬件抽象层虚拟化的优点仍不可忽视。硬件抽象层的虚拟机具有以下优点:

    • 高度的隔离性;
    • 可以支持与宿主机不同的操作系统及应用程序
    • 易于维护及风险低。

    比较有名的硬件抽象层虚拟化解决方案有VMWare、Virtual PC、Xen、KVM等。

    以Xen为例,Xen是剑桥大学开发的一个基于x86的开源虚拟机监视器,可以在一台物理机上执行多台虚拟机。它特别适用于服务器整合,具有性能高、占用资源少,节约成本等优点。

    3.操作系统层虚拟化

    操作系统层虚拟化是指通过划分一个宿主操作系统的特定部分,产生一个个隔离的操作执行环境。操作系统层的虚拟化是操作系统内核直接提供的虚拟化,虚拟出的操作系统之间共享底层宿主操作系统内核和底层的硬件资源。

    操作系统虚拟化的关键点在于将操作系统与上层应用隔离开,将对操作系统资源的访问进行虚拟化。使得上层应用觉得自己独占操作系统。

    操作系统虚拟化的好处是实现了虚拟操作系统与物理操作系统的隔离并且有效避免物理操作系统的重复安装。

    比较有名的操作系统虚拟化解决方案有Virtual Server、Zone、Virtuozzo及虚拟专用服务器(Virtual Private Server,VPS)。VPS是利用虚拟服务器软件在一台物理机上创建多个相互隔离的小服务器。这些小服务器本身就有自己的操作系统,其运行和管理与独立主机完全相同。其可以保证用户独享资源,且可以节约成本。


    操作系统虚拟化看似与硬件虚拟化出的虚拟机上安装的操作系统一样,都是产生多个操作系统,但操作系统虚拟化与硬件虚拟化之间还是有很多不同之处,区别如下:

    (1)操作系统虚拟化是以原系统为模板,虚拟出的是原系统的副本,而硬件虚拟化虚拟的是硬件环境,然后真实地安装系统。

    (2)操作系统虚拟化虚拟出的系统只能是物理操作系统的副本,而硬件虚拟化虚拟出的系统可以为不同的系统,如Linux、Windows 等。

    (3)虚拟出的系统间关系不同,操作系统虚拟化虚拟的多个系统有较强的联系,比如,多个虚拟系统能够同时被配置。原系统发生了改变,所有虚拟出的系统都会改变。而硬件虚拟化虚拟的多个系统是相互独立的,与原系统也没有联系,原系统的损坏不会殃及虚拟系统。

    (4)性能损耗不同,操作系统虚拟化虚拟出的系统都是虚拟的,性能损耗低,而硬件虚拟化是在硬件虚拟层上实实在在安装的操作系统,性能损耗高。

    4.编程语言层上的虚拟化

    计算机若不安装操作系统和其他软件的话,就是一台裸机。编程语言层上的虚拟机是在应用层上创建的,并支持一种新定义的指令集。这一类虚拟机运行的是针对虚拟体系结构的进程级作业,通常这种虚拟机是作为一个进程在物理计算机系统中运行的,使得用户感觉不到应用程序是在虚拟机上运行的。

    这种层次上的虚拟机主要有JVM(Java Virtual Machine)和CLR(Common Language Runtime)。以JVM为例,JVM是通过在物理计算机上仿真模拟计算机的各种功能来实现的,是虚拟出来的计算机。 JVM使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上进行无缝迁移。

    5.库函数层的虚拟化

    在操作系统中,应用程序的编写会使用由应用级的库函数提供的一组API函数。这些函数隐藏了一些操作系统的相关底层细节,降低了程序员的编程难度。

    库函数层的虚拟化就是对操作系统中的应用级库函数的接口进行虚拟化,创造出了不同的虚拟化环境。使得应用程序不需要修改,就可以在不同的操作系统中迁移。

    当然不同的操作系统库函数的接口不一样。如属于这类虚拟化的Wine,是利用API转换技术做出Linux与Windows相对应的函数来调用DLL,从而能在Linux系统中运行Windows程序。

    五、常见虚拟化软件

    VirtualBox

    VirtualBox是一款开源免费的虚拟机软件,使用简单、性能优越、功能强大且软件本身并不臃肿,VirtualBox是由德国软件公司InnoTek开发的虚拟化软件,现隶属于Oracle 旗下,并更名为Oracle VirtualBox。

    其宿主机的操作系统支持Linux、Mac、Windows三大操作平台,在Oracle VirtualBox虚拟机里面,可安装的虚拟系统包括各个版本的Windows操作系统、Mac OS X(32位和64位都支持)、Linux内核的操作系统、OpenBSD、Solaris、IBM OS2甚至Android 4.0系统等操作系统,在这些虚拟的系统里面安装任何软件,都不会对原来的系统造成任何影响。

    它与同类的VMware Workstation虚拟化软件相比,VirtualBox对Mac系统的支持要好很多,运行比较流畅,配置比较傻瓜化,对于新手来说也不需要太多的专业知识,很容易掌握,并且免费这一点就足以比商业化的VMware Workstation更吸引人,因此VirtualBox更适合预算有限的小环境。

    VMware Workstation

    一款功能强大的商业虚拟化软件,和VirtualBox一样,仍然可以在一个宿主机上安装多个操作系统的虚拟机,宿主机的操作系统可以是Windows或Linux,可以在VMware Workstation中运行的操作系统有DOS、Windows 3.1、Windows 95、Windows 98、Windows 2000、Linux、FreeBSD等。

    VMware Workstation虚拟化软件虚拟的各种操作系统仍然是开发、测试 、部署新的应用程序的最佳解决方案。VMware Workstation占的空间比较大,VMware公司同时还提供一个免费、精简的Workstation环境—VMware Player,可在VMware官方网站下载使用。

    对于企业的 IT开发人员和系统管理员而言, VMware Workstation在虚拟网络、实时快照、拖曳共享文件夹、支持 PXE 等方面的特点使它成为必不可少的工具。

    总体来看,VMware Workstation的优点在于其计算机虚拟能力,物理机隔离效果非常优秀,它的功能非常全面,倾向于计算机专业人员使用,其操作界面也很人性化;VMware Workstation的缺点在于其体积庞大,安装时间耗时较久,并且在运行使用时占用物理机的资源较大。

    KVM

    KVM(Kernel-based Virtual Machine)是一种针对Linux内核的虚拟化基础架构,它支持具有硬件虚拟化扩展的处理器上的原生虚拟化。

    最初,它支持x86处理器,但现在广泛支持各种处理器和操作系统,包括Linux、BSD、Solaris、Windows、Haiku、ReactOS 和AR-OS等。

    基于内核的虚拟机 (KVM) 是针对包含虚拟化扩展(Intel VT 或 AMD-V)的 x86 硬件上的Linux的完全原生的虚拟化解决方案。对半虚拟化(Paravirtualization)的有限支持也可以通过半虚拟网络驱动程序的形式用于Linux和Windows Guest系统。

    尽管KVM是一个相对较新的虚拟机管理程序,但这个随主流 Linux内核发布的轻量型模块提供简单的实现和对Linux重要任务的持续支持。

    KVM使用很灵活,Guest 操作系统与集成到Linux内核中的虚拟机管理程序通信,以直接寻址硬件,无需修改虚拟化的操作系统。这使得KVM 成为更快的虚拟机解决方案。

    KVM的补丁与Linux内核兼容,KVM在Linux内核本身内实现,这进而简化对虚拟化进程的控制,但是没有成熟的工具可用于KVM服务器的管理,KVM仍然需要改进虚拟网络的支持、虚拟存储的支持,并且增强安全性、高可用性、容错、电源管理、HPC/实时支持、虚拟 CPU 可伸缩性、跨供应商兼容性、VM 可移植性。


    六、系统虚拟化

    1.什么是系统虚拟化

    系统虚拟化是指在一台物理计算机系统上虚拟出一台或多台虚拟计算机系统。

    虚拟计算机系统(简称虚拟机)是指使用虚拟化技术运行在一个隔离环境中的具有完整硬件功能的逻辑计算机系统,包括操作系统和应用程序。一台虚拟机中可以安装多个不同的操作系统,并且这些操作系统之间相互独立。

    虚拟机和物理计算机系统可以有不同的指令集架构,这样会使得虚拟机上的每一条指令都要在物理计算机上模拟执行。显而易见,会导致性能低下。所以,我们一般使虚拟机的指令集架构与物理计算机系统相同。这样大部分指令都会在处理器上直接运行,只有那些需要虚拟化的指令才会在虚拟机上运行。

    2.系统虚拟化的典型特征

    1974年,Popek和Goldberg在发表的文章“Formal Requirements for Virtualizable Third Generation Architectures”中指出虚拟机可以看作是物理机的一种高效隔离的复制,并指出虚拟机有同一性、高效性、受控性的3个典型特征:

    同一性是指虚拟机的运行环境和物理机的运行环境在本质上应该是相同,表现形式上可以有所差别;

    高效性是指软件在虚拟机上运行时,大部分是在硬件上运行的,只有少数是在虚拟机中运行的,从而在虚拟机中运行的软件的性能接近在物理机上运行的性能;

    资源受控是指VMM完全控制和管理系统资源。

    3.系统虚拟化的优点

    系统虚拟化提供了多个相互隔离的执行环境,虚拟机之间隔离性,虚拟机与底层硬件之间的无关性所带来的好处是很难估量的。此外,虚拟化层作为特权层能够提供一些特有的功能。

    (1)硬件无关性

    虚拟机与底层硬件之间是虚拟化层,其与底层硬件之间并没有直接的联系。所以只要另一台计算机提供相同的虚拟硬件抽象层,一个虚拟机就可以无缝地进行迁移。

    (2)隔离性

    使用虚拟机,应用软件可以独立地在虚拟机上运行,不受其他虚拟机的影响。即使其他的虚拟机崩溃,也可以正常运行。这种隔离性的好处是:可以在一台物理机虚拟出的多台虚拟机上进行不同的操作,相互之间没有影响。

    (3)多实例

    在一台物理机上可以运行多台虚拟机,而一台虚拟机上又可以安装多个操作系统。不同的虚拟机的繁忙、空闲时间又不同,这样虚拟机交错使用物理计算机的硬件资源,资源利用率比较高。

    (4)特权功能

    系统虚拟化的虚拟化层是在本地硬件与虚拟机之间,其将下层的资源抽象成另一种形式的资源,提供给上层的虚拟机使用。

    虚拟化层拥有更高的特权体现在:虚拟化层中添加的功能不需要了解客户机的具体语义,实现起来更加容易,并且添加的功能具有较高的特权级,不能被客户机绕过。



    七、服务器虚拟化

    系统虚拟化的最大价值在于服务器虚拟化。服务器虚拟化是将系统虚拟化技术应用于服务器上,将一台或多台服务器虚拟化为若干台服务器使用。

    现在,数据中心大部分使用的是x86服务器。一个数据中心可能有成千上万台x86服务器。以前,出于性能、安全等方面的考虑,一台服务器只能执行一个服务,导致服务器利用率低下。

    服务器虚拟化是在一台物理服务器上虚拟出多个虚拟服务器,每个虚拟服务器执行一项任务。这样的话,服务器的利用率相对较高。

    1.服务器虚拟化的分类

    服务器虚拟化按虚拟的服务器台数可以分为以下3种类型

    (1)将一台服务器虚拟成多台服务器,即将一台物理服务器分割成多个相互独立、互不干扰的虚拟环境;
    (2)服务器整合,就是多个独立的物理服务器虚拟为一个逻辑服务器,使多台服务器相互协作,处理同一个业务;
    (3)服务器先整合、再切分,就是将多台物理服务器虚拟成一台逻辑服务器,然后再将其划分为多个虚拟环境,即多个业务在多台虚拟服务器上运行。

    2.服务器虚拟化所需的技术

    物理服务器有其不可缺少的关键部件,如CPU、I/O等。服务器虚拟化的关键技术是对CPU、内存、I/O硬件资源的虚拟。

    (1)CPU虚拟化

    CPU虚拟化技术是把物理CPU抽象成虚拟CPU,任意时刻一个物理CPU只能运行一个虚拟CPU指令。每个客户操作系统可以使用一个或多个虚拟CPU。在这些客户操作系统之间,虚拟CPU的运行相互隔离,互不影响。

    在纯软件的CPU虚拟化中,有全虚拟化和半虚拟化两种不同的软件方案。

    全虚拟化是采用二进制动态翻译技术(Dynamic Binary Translation)来解决客户操作系统的特权指令问题。

    半虚拟化是通过修改客户操作系统来解决虚拟机执行特权指令的问题,即将所有敏感指令替换为对底层虚拟化平台的超级调用。这两种方案都会增加系统的复杂性和性能开销。

    原来的x86 CPU 不能有效地支持虚拟化,那时,CPU虚拟化只能在软件层面上进行。随着硬件技术的发展,硬件的性能有了很大的提高,现在主流的x86 CPU开始在硬件层面上支持CPU虚拟化,从而就有了CPU的硬件辅助虚拟化。

    CPU的硬件辅助虚拟化是在CPU中加入新的指令集和处理器运行模式来支持CPU虚拟化,使得系统软件能更加容易、高效地实现虚拟化功能。

    CPU的硬件辅助虚拟化主要有Intel VT-x和AMD。

    以VT-x为例,VT-x的原理是:首先,其引入了根(VMX root operation)和非根(VMX non-root operation)两种操作模式,这两种模式统称为VMX操作模式。

    根操作模式是VMM运行所处的模式,其行为和早期的没有VT-x技术的x86 CPU相同。

    非根操作模式是客户机运行时所处的模式,提供了一个支撑虚拟机运行所需的CPU环境。

    这两种操作模式都有特权级0~特权级3,共4种特权级。

    在VT-x中,从非根操作模式到根操作模式的转换形式称为VM-Exit. 而从根操作模式到非根操作模式的转换形式为VM-Entry。此外,VT-x还引入了保存虚拟CPU相关状态的VMCS来更好地支持CPU虚拟化。

    (2)内存虚拟化

    内存虚拟化是对宿主机的真实物理内存统一管理,虚拟化成虚拟的物理内存,然后分别供若干个虚拟机使用,使得每个虚拟机拥有各自独立的内存空间。
    对于真实的操作系统而言,内存是从物理地址0开始的,且是连续的,至少在一些大粒度上是连续的。在虚拟化中,所有的客户操作系统可能会同时使用起始地址是0的物理内存,为了满足所有的客户操作系统的起始物理地址都是0且它们内存地址的连续性,VMM引入了一层新的地址空间—客户机物理地址空间。

    虚拟机监视器(VMM)通过虚拟机内存管理单元(Memory Management Unit,MMU)来管理虚拟机内存,即其负责分配和管理每个虚拟机的物理内存。

    客户机操作系统看到的是一个虚拟的物理内存地址空间(即客户机物理地址空间),不再是真正的物理内存地址空间。

    有了客户机物理地址空间就形成了两层地址映射即应用程序所对应的客户机虚拟地址空间到客户机物理地址的映射,客户机物理地址到宿主机物理地址的映射。

    前一种映射是由客户机操作系统完成的,后一种是由VMM通过动态地维护镜像页表来管理的。

    (3)I/O虚拟化

    在一台虚拟机上可以安装多个操作系统,这些客户操作系统都会对外设资源进行访问。但是,外设资源是有限的,为了使所有的客户操作系统都能访问外设资源,虚拟机监视器需通过I/O虚拟化的方式复用有限的外设资源。此时,VMM截获客户操作系统对外设的访问请求,然后通过软件的方式模拟真实外设的效果。但并不要求完整地虚拟化出所有外设的所有接口。

    I/O虚拟化的第一步是发现设备,设备的发现取决于被虚拟的设备类型。设备类型不同,设备的发现方式也不同。

    以模拟一个完全虚拟的设备为例,这种虚拟设备所处的总线类型完全由VMM自行决定,VMM可以自定义一套虚拟总线协议,也可以将虚拟设备挂在PCI总线上。

    第二步是截获访问,虚拟设备已经发现,此时VMM的工作是使客户机操作系统对其进行访问。VMM会根据设备的不同性能提供不同的截获方式。

    例如,对于直接分配给客户操作系统并有端口I/O资源的设备,VMM的处理方式是把该设备所属的端口I/O从I/O位图中打开,访问就会被处理器发送给系统总线,最后到达目标物理设备。

    在I/O设备中有一种比较特殊的设备—网卡。网卡除了和一般的I/O设备一样作为虚拟机的共享设备外,还要解决虚拟机与外部网络或者虚拟机相互之间的通信问题。

    网卡虚拟化技术主要分为两类:虚拟网卡技术和虚拟网桥技术。

    虚拟网卡是指虚拟机中的网卡,是由模拟器通过软件的方法模拟出来的;

    虚拟网桥是指利用软件方法实现的网桥其作用是在一台服务器中,使多块共享一块物理网卡的虚拟网卡对外表现为多块独立的网卡。

    八、桌面虚拟化

    桌面虚拟化依赖于服务器虚拟化,直观上来说就是将计算机的桌面进行虚拟化,是将计算机的桌面与其使用的终端设备相分离。

    桌面虚拟化为用户提供部署在云端的远程计算机桌面环境,用户可以使用不同的终端设备通过网络来访问该桌面环境,即在虚拟桌面环境服务器上运行用户所需要的操作系统和应用软件。

    桌面虚拟化的应用软件安装在云端服务器上,即使本地服务器上没有应用软件,用户依然可以通过虚拟桌面来访问相关的应用。

    1.桌面虚拟化的优势

    (1)更灵活的访问和使用

    传统的计算机桌面,需要在特定的设备上使用,例如,某用户的计算机桌面上安装了PhotoShop软件,若要使用,只能用自己的那台计算机。

    虚拟桌面不是本人直接安装在设备上,而是部署在远程服务器上的。任何一台满足接入要求的终端设备在任何时间、任何地点都可以进行访问。例如,拥有虚拟桌面的用户,在上班的时候可以使用单位提供的瘦客户端设备来访问虚拟桌面,在出行的路上可以使用智能手机、平板计算机上安装的客户端软件来访问虚拟桌面,更加方便、快捷。

    (2)更低的用户终端配置

    虚拟桌面部署在远程服务器上,所有的计算都在远程服务器上进行,而终端设备主要是用来显示远程桌面内容。所以,终端设备没有必要拥有与远程服务器相似的配置,对其配置要求更低、维护相对而言也更加容易。

    (3)更便于集中管控终端桌面

    虚拟桌面并不是没有自己的个人桌面,其完全可以与本地的个人桌面同时存在,两者可以互不干扰。

    使用虚拟桌面,运行商将所有的桌面管理放在后端的数据中心中,数据中心可以对桌面镜像和相关的应用进行管理、维护。而终端用户不用知道具体的管理和维护,就可以使用经过维护后的桌面。

    (4)更高的数据安全性

    用户在虚拟桌面上所做的应用是在后台的数据中心中执行的,所产生的数据也存储在数据中心,并没有存储在用户的终端设备上。从而,用户终端设备的损坏对数据没有影响。

    此外,由于传统的物理桌面会接入内部网,一旦一个终端感染病毒,就可能殃及整个内部网络。而虚拟桌面的镜像文件受到感染,受影响的只是虚拟机,能很快地得到清除和恢复。

    (5)更低的成本

    虚拟桌面简化了用户终端,用户可以选择配置相对较低的终端设备,从而节省购买成本。

    传统的每台计算机上都要有一个桌面环境。而且这些计算机分布在世界各地。管理起来比较困难,管理成本也比较高。

    而虚拟桌面及其相关应用的管理和维护都是在远程服务器端运行的,成千上万的用户可以使用同一个虚拟桌面,从而降低了管理和维护的成本。

    2.虚拟桌面的解决方案

    用户开始使用桌面已经很多年了,最先是在自己的计算机上使用,现在已经形成了基于虚拟桌面基础架构(Virtual Desktop Infrastructure,VDI)和基于服务器计算技术(Server-Based Computing,SBC)两种技术解决方案,这两种技术方案都是一种端到端的桌面管理解决方案。

    (1)基于VDI的虚拟桌面解决方案

    基于VDI的虚拟桌面解决方案是基于服务器虚拟化的,拥有服务器虚拟化的所有优点。

    其原理是在远程数据中心的服务器上安装虚拟机并在其中部署用户所需要的操作系统及操作系统上的各种应用,此时虚拟桌面就是虚拟机上的操作系统及其上的各种应用。然后通过桌面显示协议将完整的虚拟桌面交付给终端用户使用。终端用户通过一对一的方式连接和控制运行在远端服务器上的实例。

    桌面显示协议是指在远程桌面与终端之间所使用的通信协议,用于键盘等输入设备、显示设备等与桌面信息之间的数据传输。

    桌面显示协议是桌面虚拟化软件的核心部件。当前主流的显示协议包括RDP(Remote Desktop Protocol)、PCoIP、SPICE、ICA等。

    基于VDI的虚拟桌面解决方案,用户可以“暂停”单个虚拟机,然后将它们从一个服务器迁移到另一个服务器。如果服务器端的Windows XP是基于VMware VDI基础架构的,数据中心的管理员就可以保有一些很酷的灵活性。

    例如,管理员可以通过管理控制台中的一个按钮来“移动”用户到另一台服务器上。用户会收到一个弹出框,显示“请稍等片刻”,然后服务器将Windows XP桌面VM的内存内容转储到磁盘,虚拟机将被置备到另一个物理硬件上。这整个过程大概需要不到30s,而用户会正好回到他们离开的地方。

    这项技术的另一个用途是,管理员可能有一个额外的“超时”设置。例如,20min后没有活动的用户会话将被中断(它仍然是在服务器上运行,但是从客户端断开连接)。如果在1h后用户仍然没有进行连接,该系统就可以“暂停”会话并转储内存内容到磁盘,然后释放出硬件资源供其他的用户使用。每当该用户连接时,会话将重新开始,无论过了多久,用户都将回到他们离开的地方。

    2)基于SBC的虚拟桌面解决方案

    基于SBC的虚拟桌面解决方案的原理是在数据中心内的物理机上直接安装、运行操作系统和应用软件,此时的桌面就是服务器上的物理桌面。用户通过和服务器建立的会话对服务器桌面及相关应用进行访问和操作。

    这类解决方案在服务器上部署的操作系统是必须支持多用户多会话的,并且允许多个用户共享操作系统桌面。同时,用户会话产生的输入/输出数据被封装为桌面交付协议格式在服务器和客户端之间传输。

    基于SBC的虚拟桌面解决方案,管理员可以在一个数据中心的服务器上运行50~75个的桌面会话,并且该服务器的一个实例是由Windows来管理的;

    当使用VDI方案时,若有50~75个用户就要有50~75个操作系统,每一个操作系统都要进行配置、管理、维护,很浪费人力、物力。

    九、网络虚拟化

    网络虚拟化并不是一个新的概念,已经提出了十多年了,但是其依然处在早期的运用阶段。由于在不同的虚拟机之间可以建立一个私有的虚拟网络,可以说,网络虚拟化是服务器虚拟化产品的一部分。

    网络虚拟化一般是指虚拟专用网。虚拟专用网对网络连接进行了抽象,远程用户可以像物理连接在组织内部网络的用户一样来访问该网络。

    虚拟专用网络是通过一个公用网络建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定隧道。使用这条隧道可以对数据进行几倍加密达到安全使用互联网的目的。虚拟专用网可以保护网络环境,使用户能够快捷、安全地访问组织内部的网络。

    网络虚拟化还有另外一种形式—虚拟局域网。

    虚拟局域网能把一物理局域网中的节点在逻辑上划分为多个虚拟局域网,或者是把多个物理局域网中的节点划分到一个虚拟局域网中。每一个虚拟局域网都有一组相同需求的计算机工作站,其工作方式与物理局域网类似。

    虚拟局域网增强了网络安全和网络管理。如,在同一个虚拟局域网中的计算机工作站之间的通信与直接在独立的交换机上运行是一样的,虚拟局域网中的广播只有虚拟局域网中的计算机工作站才能收到,控制了不必要的广播风暴的产生。




    展开全文
  • 虚拟化特性(一)通用虚拟化特性

    千次阅读 2020-03-03 16:18:19
    前面我们说过,云计算是一种模式,而虚拟化是一种技术,我们也说过,云计算1.0时代是以虚拟化为主的,那么虚拟化究竟有什么特性可以使其成为云计算中很重要的部分呢? 回顾 在介绍虚拟化特性之前,我们先回...

    前言

    前面我们说过,云计算是一种模式,而虚拟化是一种技术,我们也说过,云计算1.0时代是以虚拟化为主的,那么虚拟化究竟有什么特性可以使其成为云计算中很重要的部分呢?

    回顾

    在介绍虚拟化特性之前,我们先回顾一下虚拟化的特点:分区、隔离、封装、独立

    基于这些特点,虚拟化具备很多特性,我们从集群和虚拟机两个角度介绍。

    虚拟化集群特性介绍

    集群

    集群是一种把一组计算机组合起来作为一个整体向用户提供资源的方式,在虚拟化集群中可以提供计算资源、存储资源和网络资源,只有包含了这些资源以后,该集群才是完整的。

    HA特性

    先分享一个李开复耳熟能详的故事。早年,李开复博士曾在苹果电脑公司任职,专门负责新产品的研制和开发。有一次,李开复与公司CEO史考利先生,受到美国当时最红的早间电视节目“早安美国”的邀请。在当时,能上这个收视率非常高的节目,不仅是苹果公司的荣誉,也是李开复展现个人魅力的机会。电视台方面提前和苹果公司沟通,希望他们能在电视直播中,演示苹果公司最新发明的语音识别系统,让更多消费者了解公司的新产品。
    但是,该系统成功的概率大概是90%,史考利希望把成功率提高到99%。
    李开复并没有修改程序,而是准备两台一样的电脑,如果一台电脑出了问题,立刻切换到另外一台电脑,那么根据概率原则,两台电脑出现故障的为10%*10%=1%,那么成功率就到了99%。

    这个就是HA实现的基本原理:使用集群技术,克服单台物理主机的局限性,最终达到业务不中断或者中断时间减少的效果。

    在虚拟化中的HA只保证计算层面,具体来说,虚拟化层面的HA是虚拟机系统层面的HA,即当一台计算节点出现故障时,在集群中的另外一台节点中能快速自动的将其启动起来。
    HA
    如上图中的场景,当集群中第一台节点出现故障时,该节点上的虚拟机会自动迁移到其它工作正常的主机上。

    虚拟化集群一般都会使用共享存储,我们前面讲过,虚拟机由配置文件和数据盘组成,而数据盘是保存在共享存储上的,配置文件则保存在计算节点上。当计算节点出现故障时,虚拟化管理系统(如vCenter、VRM等)会根据记录的虚拟机配置信息在其它节点重建出现故障的虚拟机。

    在实现HA的过程中,有两个难点需要解决:

    1. 如何发现主机是否发生了故障?
    2. 如果虚拟机不能正常启动该怎么办?
    

    首先看第一个问题。如果要检测到计算节点是否故障,管理员需要定期和集群内所有的节点建立通讯,一旦某个节点无法通讯,则证明该节点可能出现了故障。以华为的FusionCompute为例,CNA主机和VRM通过心跳机制来保证VRM有效的感知CNA节点是否发生了异常,具体过程如下:

    • CNA主机侧有某个进程或服务承载着心跳机制的任务;
    • 主机每间隔3s会向VRM主动上报心跳,如果连续10次,即30s内主机没有向VRM上报心跳,则会置此主机为“故障”状态,此时FC-Portal上会有“主机与VRM心跳异常”的告警出现;
    • 主机每次向VRM上报心跳的时候都有超时机制,socket连接、接收、发送超时时间均为10s,如果VRM服务有异常或网络出现异常,都可能导致超时出现,而每次打印超时日志的时机=“超时探测时间间隔3s”+“socket超时时间10s”= 13s 的日志时间戳;
    • VRM侧每收到一个主机侧发来的心跳就会将心跳频率heartBeatFreq变量设置为10(默认为10,此值可以通过修改配置文件修改),检测线程每3s会将该值减1,同时对该参数当前值进行判断,如果<=0,则认为此值对应的主机节点异常,在FC-Portal 上报告警,同时会把此主机异常的消息发送给VRM进行虚拟机HA机制判断。

    接下来看一下第二个问题。虚拟机在其它主机上启动的时候,有可能会虚拟机上的业务无法自启动,甚至可能操作系统都无法正常启动,所以虚拟机层面的业务不能恢复的风险很大,同时业务恢复的时间也较长,这时候我们需要启用业务层面的HA,一旦主用的虚拟机出现故障或者不能恢复时,业务会借助浮动IP、Keepalived等与高可用相关的技术,将业务在备用的虚拟机上恢复。

    因此,虚拟机层面的HA一般会和应用层面的HA配合使用,可以缩短业务恢复的时间,提高业务恢复的几率。

    除了以上问题外,如何防止脑裂也是需要考虑的问题。脑裂是由于共享存储有可能会同时被两个虚拟机执行写操作而造成的。在系统进行HA前,管理系统会通过心跳机制检测计算节点是否故障,但是如果只是心跳网络出现了故障,就会造成管理系统误判计算节点故障的情况发生,这时候就可能造成脑裂现象。所以,系统在进行启动虚拟机以前会检测对应的存储是否有写操作,如果有的话,则证明主机有可能没有出现故障,这时候,系统就不会在继续执行虚拟机的启动操作了,而是直接在管理系统的页面显示HA成功。

    负载均衡

    负载均衡在许多的地方都有出现这个名词,在网络中有链路做负载均衡、网卡做负载均衡。在云计算中,负载均衡和网络中的概念其实一样,只是对象换成了虚拟机。
    负载均衡可以简单理解为:一个公司内部,有三个员工:小明、小红、小刚,工资相同,做的工作也一样。小明做了比较鸡贼,平时爱偷懒,做了正常工作量的80%;小红是老板的亲戚,平时工作有恃无恐,做了正常工作的60%;小刚比较老实,勤劳能干,做了平常工作的160%,所以小刚经常加班。过了几个月,良心的老板发现了这个问题,指出了小明和小红的不足,要求他们要分担小刚的工作。之后三个人都做到了正常工作的100%。
    负载均衡
    如上图在集群中发现有一台主机上运行虚拟机较多(大家都是一模一样的服务器,你凭什么这么优秀呢?)但是他自己心里也挺苦的,负担这么重,又不加工资,运行一段时间后,这时候集群的虚拟化软件和自动发现该主机负载较大(两种选择:要么加工资,要么不要这么多的活)会把该主机上的虚拟机迁移到其他主机上,使主机达到相对于负载均衡的状态。(公平的状态)

    解决了一台服务器卖力干活,其他服务器看戏的问题。提升服务器寿命。

    详细解释

    负载均衡是一种集群技术,它将特定的业务(网络服务、网络流量等)分担给多台网络设备(包括服务器、防火墙等)或多条链路,从而提高了业务处理能力,保证了业务的高可靠性。

    优势

    • 高性能:负载均衡技术将业务较均衡地分配到多台设备上,提高了整个系统的性能。
    • 可扩展性:负载均衡技术可以方便地增加集群中设备或链路的数量,在不降低业务质量的前提下满足不断增长的业务需求。
    • 高可靠性:单个甚至多个设备或链路发生故障也不会导致业务中断,提高了整个系统的可靠性。
    • 可管理性:大量的管理工作都集中在应用负载均衡技术的设备上,设备群或链路群只需要常规的配置和维护即可。
    • 透明性:对用户而言,集群等同于一个可靠性高、性能好的设备或链路,用户感知不到也不必关心具体的网络结构。增加和减少设备或链路均不会影响正常的业务。

    判断依据:

    在虚拟化环境中,负载均衡的对象一般是计算节点,判断依据为计算节点的CPU和内存的利用率。管理系统会在虚拟机创建和运行的过程中,感知整个集群所有物理资源的使用情况,并使用智能调度算法,确定适合虚拟机运行的最佳主机,并通过热迁移等手段将虚拟机迁移过去,从而提升全局业务体验。
    负载的阈值可以由系统管理员指定,也可以使用系统自定义。比如,在华为FusionCompute中,系统自定义如果某台主机的CPU和内存的使用率超过60%时,VRM就会将此CNA主机上的虚拟机迁移到其它节点上,在迁移前,管理员可以将迁移任务设置为自动,也可以向管理员发通知,等管理员确认后,再进行迁移。

    易扩容

    在传统非虚拟化的环境中,所有的业务都部署在物理机上,有可能在系统建设的初期,业务量不是很大,所以为物理机配置的硬件资源是比较低的,随着业务量的增加,原先的硬件无法满足需求,只能不停的升级硬件,比如将原先的一路CPU升级为两路,将256G的内存升级为512G,这种扩容方式称为纵向扩容(Scale-up)。然而,物理机的所能承担的硬件是有上限的,如果业务量持续增加,最后只能更换服务器,停机割接是必然的。

    拿个人电脑升级举例:想要升级内存、硬盘,要考虑是否有多余的接口,支持的最大容量等问题。

    在虚拟化中,将所有的资源进行池化,承载业务虚拟机的资源全部来自于这个资源池,当上面业务量持续增加的事情发生时,我们不需要升级单台服务器的硬件资源,只需要增加资源池中资源即可,具体在实施的时候,只需要增加服务器的数量即可,这种扩容方式称为水平扩容(Scale-out)。

    集群支持水平扩容,所以相对传统的非虚拟化IT,扩容更容易。

    内存复用

    内存复用是指在服务器物理内存一定的情况下,通过一定技术手段,使得虚拟机内存总和大于服务器物理内存总和,提高服务器中虚拟机密度。

    内存复用的技术主要包括:内存气泡、内存置换、内存共享。一般情况下,这三种技术需要综合应用,同时生效。

    内存共享

    Hypervisor作用:虚拟化技术的核心。最主要的作用:分配内存、CPU资源等等
    内存共享
    在图中,物理主机为hypervisor提供了4G的物理内存,分别分配给三台虚拟机,这三台虚拟机恰好会读取同一段物理内存中的数据,根据我们前面讲的内存虚拟化的实现方式,Hypervisor在做内存映射时,会同时将这一段内存映射给不同的虚拟机,**为了保证这一段内存里的数据不会被任意虚拟机修改,所有的虚拟机对该内存只有读操作权限,**如果虚拟机需要对内存进行写操作,需要Hypervisor新开辟一段内存进行映射。通过内存共享技术,只有4G的物理内存可以分配出6G的虚拟内存给虚拟机。

    总结:不同的虚拟机会共享同一段内存,但是有一个前提:虚拟机都会读取这段内存中的数据。(可以简单的理解:两个虚拟机都开了相同的应用)

    内存气泡

    内存气泡
    同样是三台虚拟机,每台虚拟机有2G的虚拟内存,然而VM1的内存利用率仅为20%,而VM2和VM3的内存利用率都到了70%(有的虚拟机业务没那么多,有的虚拟机负载比较大),此时,系统会自动将分配给VM1的物理内存在后台映射给VM2和VM3以达到缓解内存压力的效果。(将没有用的内存像气泡一样挤出来)

    总结:系统主动回收虚拟机暂时不用的物理内存,分配给需要复用内存的虚拟机。内存的回收和分配均为系统动态执行,虚拟机上的应用无感知。整个物理服务器上的所有虚拟机使用的分配内存总量不能超过该服务器的物理内存总量。

    内存置换

    内存置换
    将外部存储虚拟成内存给虚拟机使用,将虚拟机上暂时不用的数据存放到外部存储上。系统需要使用这些数据时,再与预留在内存上的数据进行交换。(内存中有一部分数据不用,将数据先存到硬盘,(本来内存只有1G,现在可以使用2G)用的时候再又放回到内存上。)

    内存置换类似于windows的虚拟内存和linux的swap分区的作用,都是使用存储模拟内存的功能,将一部分已被调用到内存但是使用频率很低的数据先放到磁盘中,当这些数据到用到的时候,这些数据会再被调回到内存中。

    总结

    在部分虚拟化产品中,比如FusionCompute中,内存复用是基于集群设置的,打开内存复用功能后,由内存复用策略接管物理内存的分配,在内存不紧张时虚拟机可以使用全部物理内存。当出现竞争时,由内存复用策略为虚拟机实时调度内存资源,综合运用内存复用技术释放虚拟机的空闲内存,为其它虚拟机的内存需求提供条件。

    使用了内存复用后,可在一定程度上降低客户的成本。

    • 当计算节点的内存数量固定时,可以提高计算节点的虚拟机密度。
    • 当计算节点的虚拟机密度固定时,可以节省计算节点的内存数量。

    但是有些地方是不建议开启内存复用的。开启了内存复用了之后,虚拟机分配的内存可能是小于实际分配到的内存的。这时候就造成虚拟机性能下降。

    虚拟机特性介绍

    虚拟机快速部署

    我们前面的文章说了,虚拟化的本质就是将物理的服务器逻辑化成一个文件或者文件夹。每一个文件或者文件夹都会对应一个虚拟机。我们可以通过复制、移动文件夹来复制、移动虚拟机。复制就是形成了一个新的虚拟机

    但是有一个问题:

    复制的时候,原本虚拟机的资料、IP地址、用户名、MAC地址等都复制过去了。这些设备信息如果是一样的那么虚拟机就会造成地址冲突等一系列的问题,导致虚拟机不可以使用。
    

    解决方法:

    1. 重新创建新的虚拟机,但是很慢,浪费时间
    2. 虚拟机的快速部署
    

    虚拟机的快速部署分两种方式:按模板部署和虚拟机克隆。

    模板部署

    将一台虚拟机,转化成模板。模板不允许开机、启动(为了保证模板不被编辑、改变,同时永远不占用资源),模板的本质也是一台虚拟机,可以理解为虚拟机的副本,它同样包含了虚拟机磁盘和虚拟机的配置文件。但是不开机,不启动。所以不占用计算资源。
    要建新的虚拟机的时候,就直接用模板部署
    部署的时候,我们人为的给每一台虚拟机的加上个性化的信息(IP地址、用户、主机名等等信息)
    模板部署
    优点

    1. 大幅度节省配置新虚拟机和安装操作系统的时间(普通创建大概要30~60分钟。模板部署只要几分钟)
    2. 可以一次性大量部署虚拟机
    3. 可以保持虚拟机的一致性,同时还可以自动将所需要更改的参数进行修改。

    比如,现有一组测试人员需要对公司新开发的软件进行测试,那么管理员可以将安装了该软件的虚拟机制作为模板,然后快速部署出一批配置相同的虚拟机分配给不同的测试人员进行不同场景不同要求的测试,一旦测试过程中出现了任何问题,管理员可以删除故障的虚拟机,然后重新部署一台同样的虚拟机给测试人员。另外,不同的虚拟机模板中可以包含不同的软件,比如财务人员使用的模板可以预先安装好财务系统,销售人员的模板中可以安装ERP系统,使用这些不同的模板可以随时为对应部门的工作人员创建出符合他们需求的虚拟机。

    模板的本质也是一台虚拟机,可以理解为虚拟机的一个副本,它同样包含了虚拟机磁盘和虚拟机的配置文件,使用模板创建虚拟机能够大幅节省配置新虚拟机和安装操作系统的时间。虚拟机模板创建后,不允许开机,也不允许启动,这样的设计是为了保证这个模板不会被其它随意的编辑而改变,同时它永远不占用集群的计算资源。使用模板部署出来的虚拟机和模板是相互独立的,如果想要更新或者重新编辑模板,需要先把模板转换为虚拟机才可,编辑完成后,再把虚拟机重新制作为模板。

    虚拟机克隆

    但是有些时候,我们也会需要包括个性化信息在内的所有信息都要一样的虚拟机。

    除了模板部署虚拟机,使用虚拟机本身也可以快速的部署出一台虚拟机,这个功能称为虚拟机克隆。
    与使用模板部署不同,虚拟机克隆是在某个时间点对源虚拟机进行完全的复制,每个被克隆出来的虚拟机的所有设置,包括主机名、IP地址等个性化数据,都和源虚拟机一模一样。我们都知道,如果局域网中出现了两个完全一致的IP地址,系统会自动报错,所以,克隆出来的虚拟机最好不要同时开机。
    虚拟机复制

    虚拟机资源热添加

    此处的热添加指的是在虚拟机开机状态下为虚拟添加计算、存储和网络资源。

    在我们的个人电脑,开机的状态下。比如我们正在玩游戏,发现画面怎么这么卡?然后发现问题是内存不够,CPU太老了。但是在开机的状态下我们什么都干不了。

    那么为什么虚拟机能干呢?
    从管理员的角度,虚拟机的CPU、内存等参数都是配置文件里的一部分,我们可以通过修改配置文件中对应参数,来修改虚拟机的硬件配置。

    假设用户在使用虚拟机的过程中,CPU和内存的使用率达到了75%,用户侧的体验可能会非常不好,甚至有可能会影响正常的使用,这时,使用虚拟机资源热添加的功能,可以为该虚拟机在线添加CPU和内存资源,使客户侧的资源利用率快速降到正常水平。

    除了CPU和内存,存储资源和网络资源也支持热添加。比如对虚拟机磁盘扩容、为虚拟机增加网卡等。

    注意

    • 除了需要虚拟机本身支持热添加的功能,虚拟机的操作系统也要支持,才能使热添加上的资源立刻生效,否则,需要重启虚拟机,经过操作系统对硬件资源的识别后才可以使用。

    • 大部分情况下,**资源只支持热添加,而不支持减少。**比如,管理员要将虚拟机的一个磁盘从10G扩容到20G可以,但是从20G减容到10G则不一定可以执行。

    • 对存储资源的添加,除了可以对已有的磁盘进行扩容外,还支持为虚拟机增加不同的磁盘。

    虚拟机Console控制

    虚拟机不像物理机,可以使用显示器进行操作,一旦网络不通或者其它原因,很有可能就无法进行控制,这时就需要一种新的技术随时对虚拟机进行控制。

    有些 朋友可能知道:Telnet、SSH远程控制、远程桌面。但是有个问题:新安装的操作系统没有IP地址,没有远程控制服务。

    所以大部分不能通过接显示系统的硬件设备都会单独配置一个管理接口供用户进行管理操作,比如存储设备除了业务接口还有控制口、网络设备都会配置Console口等等,那么虚拟机能不能也使用同样的方式呢?答案是肯定的。

    各个虚拟机厂商都为虚拟机配置了Console管理的功能,比如VMware使用的是Remote Console,华为和KVM使用的VNC的方式。使用Console不代表不依赖网络,Console登录虚拟机时,虚拟机可以不配置IP地址,但是虚拟机所在的计算节点需要配置IP地址,并且该计算节点会作为服务端,为用户登录虚拟机提供服务,所以,用户端和服务端之间的网络需要通讯正常。

    虚拟机快照

    在日常的生活中,我们会使用拍照记录生活中的美好时刻,在虚拟化中,虚拟机的“快照”和我们生活中的拍照非常相似,可以记录某一时刻虚拟机的状态,照片可以留下那一刻的美好,快照也可以将虚拟机完全保留。通过照片我们可以找回曾经的岁月和记忆,通过快照,我们也可以将虚拟机恢复到那一刻的状态。

    虚拟机快照一般应用在当对虚拟机进行升级、打补丁、测试等破坏性试验前,一旦虚拟机出现了故障,使用快照可以对虚拟机进行迅速恢复。虚拟机快照功能是通过存储系统来完成的,SNIA(存储网络行业协会)对快照(Snapshot)的定义是:关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。

    快照技术有如下特点:

    快照可迅速生成,并可用作传统备份和归档的数据源,缩小甚至消除了数据备份的窗口。

    快照存储在磁盘上,可以快速直接存取,提高了数据恢复的速度。

    基于磁盘的快照使存储设备有灵活和频繁的恢复点,可以快速通过不同时间点的快照简易恢复意外擦除或损坏的数据,对其进行在线数据恢复。

    从具体的技术细节来讲,快照建立一个指针列表,指示读取数据的地址,当数据改变时,该指针列表能够在极短时间内提供一个实时数据,并进行复制。

    常见的快照模式分为两种:写前拷贝(COW,Copy-On-Write)快照和写时重定向(ROW,Redirect-On-Write)快照。COW和ROW都属于存储领域的知识,大部分厂商在创建虚拟机快照时使用的是ROW技术,无论是COW还是ROW都不会发生真正的物理拷贝的动作,只是做映射上的修改。

    NUMA

    NUMA,全称为非统一内存访问(Non Uniform Memory Access Architecture),它是一种可以提高数据读写速度的技术。

    简单的来说,NUMA就是给CPU和内存做绑定。内存和CPU做了绑定,CPU从绑定的内存(Local Access)中读取数据的响应时间较短,而如果跨CPU访问内存(Remote Access)读取数据的响应时间较长,既然Local Access速度快,那么就让程序在运行时全部使用一个CPU和与其相绑定的内存,这样就可以提高工作效率,这就是NUMA。

    使用了NUMA后,它会把CPU和与其绑定的内存当做一个NUMA Node,每个node都有自己内部CPU、总线和内存,如果跨Node进行访问,需通过CPU之间的Interconnect。

    对应到虚拟化中,使用NUMA技术可以让虚拟机使用同一NUMA Node上的硬件资源,以提高虚拟机的响应速度。

    展开全文
  • 通过有效利用资金上或各种IT相关的资源,云计算(提供服务的途径)和虚拟化(主要的使能技术)为客户提供了越来越多的业务灵活性。 虚拟化从根本上来说就是对技术资产的最充分利用。获得虚拟化基础设施的投资回报和...

    在当今市场上,客户需要各种灵活的基础设施和解决方案以快速适应不断变化的业务需求。通过有效利用资金上或各种IT相关的资源,云计算(提供服务的途径)和虚拟化(主要的使能技术)为客户提供了越来越多的业务灵活性。

    虚拟化从根本上来说就是对技术资产的最充分利用。获得虚拟化基础设施的投资回报和所有潜力的关键在于:在适当的时候,定期使用正确的资源并灵活快速地以一种协调性的方式,实现数据中心端到端虚拟化。

    虚拟化技术帮助企业提高投资回报率,提升到利用率70%以上。到目前为止,许多企业一直集中精力进行服务器虚拟化。事实上,实现存储、网络和管理虚拟化的融合基础设施所产生的投资回报往往更大。例如,由于存储管理不善或效率低下,可能导致服务器虚拟化的优势无法真正意义上实现。

    为了获得融合基础设施的真正好处,我们需要各种能够简便支持数据扩展并与业务应用程序紧密一致的存储解决方案。采用虚拟化技术的存储基础设施能够帮助设备使用率提高近一倍,同时降低管理成本,有时可节省一半成本。因此,每个企业都应该积极主动地使用虚拟化技术充分利用其带来的益处。

    另一方面,云计算则是为用户提供使用便利,帮助其随地获取各种高度可扩展的、灵活的IT资源,并按需使用,按使用付费。云计算是一种“一切皆服务”的模式,通过该模式在网络上或“云”上提供服务。

    基于云计算的存储产品正在逐渐改变企业经营大量数据的方式。对于那些希望从这些产品中获得最佳回报的企业而言,硬件基础设施要求服务器和存储器完全基于能够提供可扩展性、可靠性和灵活性而设计。

    尽管云计算和虚拟化并非捆绑技术,二者同时使用仍可正常运行并实现优势互补。云计算和虚拟化二者交互工作,云计算解决方案依靠并利用虚拟化提供服务,而那些尚未部署云计算解决方案的公司仍然可以利用端到端虚拟化从内部基础设施中获得更佳的投资回报和收益。

    例如,为了提供“按需使用,按使用付费”服务模式,云计算供应商必须利用虚拟化技术。因为只有利用虚拟化,他们才能获得灵活的基础设施以提供终端用户所需的灵活性,这一点对外部(公有或共享的云)供应商和内部(私有云)供应商都适用。

    对于许多公司而言,初次利用云计算可能有点令人担忧,因而需要一些支持。现在有很多公司为客户提供了许多云资源以及培训,例如惠普的研讨会等,以此帮助企业开发其自己的云计算方法并找到利用技术的最佳途径,其中包括提供云服务,提供云服务资源或部署私有云计算基础设施。

    对于那些希望部署更有效解决方案的用户以及希望创建大量云解决方案的供应商而言,一种完全融合的基础设施无疑是其最佳选择,该基础设施还能为用户提供能够快速适应不断变化需求的技术环境。
      人工智能、大数据、云计算和物联网的未来发展值得重视,均为前沿产业,多智时代专注于人工智能和大数据的入门和科谱,在此为你推荐几篇优质好文:
    企业为何采用云计算?主要用途是什么?
    http://www.duozhishidai.com/article-14574-1.html
    企业云计算的基本特征是什么,在建设过程中主要分为哪几个阶段?
    http://www.duozhishidai.com/article-13379-1.html
    什么是云计算技术,对云计算技术的产生、概念、原理、应用和前景又在哪里?
    http://www.duozhishidai.com/article-527-1.html


    多智时代-人工智能大数据学习入门网站|人工智能、大数据、物联网云计算的学习交流网站

    多智时代-人工智能大数据学习入门网站|人工智能、大数据、云计算、物联网的学习服务的好平台
    展开全文
  • 物理机到虚拟机的迁移(Physical-to-Virtual)P2V 指迁移物理服务器上的操作系统及其上的应用软件和数据到 VMM(Virtual Machine Monitor)管理的虚拟服务器中。这种迁移方式,主要是使用各种工具软件,把物理服务器...
  • 虚拟化经营

    千次阅读 2009-04-01 09:10:00
    什么虚拟化经营? 虚拟化经营源自于“虚拟企业”的概念。1991年美国学者肯尼斯·普瑞斯等提出了“虚拟企业”的概念,随后世界范围内挂起了一场虚拟化经营的浪潮。 虚拟经营是1991年,由美国著名学者罗杰·内格尔...
  • 虚拟化技术笔记

    千次阅读 2014-06-18 11:25:48
    虚拟化技术理解 Created Wednesday 05 March 2014 虚拟机监控程序 : Virtual Machine Monitor 简称VMM虚拟化最大优势: 将不同的应用程序或者服务器运行在不同的虚拟机中, 可以不同不同程序间的相互干扰...
  • 云计算技术 之 虚拟化技术

    千次阅读 2019-03-10 16:06:12
    一、什么虚拟化 虚拟化是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新...
  • Linux中的虚拟化

    千次阅读 2014-01-03 14:49:11
    大数据、云计算孕育而生,随着计算机硬件的高速发展,单台计算机用途的单一化(在大规模的服务器机房中很多机器职责单一,有些只负责计算,有些只负责存储处理等),硬件的性能潜力不能被高效开发,于是虚拟化技术也...
  • 数据中心的发展正在经历从整合,虚拟化到自动化的演变,基于云计算的数据中心是未来的更远的目标。整合是基础,虚拟化技术为自动化、云计算数据中心的实现提供支持。 数据中心的虚拟化有很多的技术优点:可以通过...
  • USB虚拟化和虚拟桌面USB重定向

    千次阅读 2016-04-04 11:46:17
    随着虚拟化技术的盛行和发展,在虚拟化中引入对USB技术的支持,是必须的必然的结果,同时,由于传统桌面使用USB技术和大量的外设进行交互,因而在使用和实现虚拟桌面的时候,必须引入对USB技术的支持,以达到...
  • 云管理之虚拟化——Xen简介

    千次阅读 2012-10-18 17:38:05
    标签:虚拟化 休闲 Xen简介 硬件 职场 版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。 NOTE:该篇主要内容来自Best Damn Server Virtualization Period Book 5.Xen简介  Xen是一个...
  • 英特尔虚拟化技术发展蓝图

    千次阅读 2014-06-04 09:36:36
    当前非常热门的Virtualization虚拟化技术的出现和应用其实已经有数十年的历史了,在早期,这个技术主要应用在服务器以及大型主机上面,现在,随着PC性能的不断增长,Virtualization也开始逐渐在x86架构上流行起来。...
  • 云计算的基础架构:并行计算+资源虚拟化 (2011-08-20 12:15:51) 标签: 校园 分类: 工作篇 高性能云计算:从科学应用的角度   科学计算往往需要可用的数量庞大的计算机来执行大...
  • Intel虚拟化技术-从VT-x到VT-d

    千次阅读 2012-05-17 14:47:39
    当前非常热门的Virtualization虚拟化技术的出现和应用其实已经有数十年的历史了,在早期,这个技术主要应用在服务器以及大型主机上面,现在,随着PC性能的不断增长,Virtualization也开始逐渐在x86架构上流行起来。...
  • 1. 概述 Kvm是一种全虚拟化架构的虚拟机,其IO通常由qemu进行模拟实现...将virtio运用虚拟化思想,分为前端驱动和后端驱动,前端驱动在客户机中,因此,需要在原来客户机操作系统中增加一个新的virtio前端驱动模块...
  • 近年来,云计算随着无所不在的宽带互联技术以及服务器虚拟化技术在商业模式上的创新性运用而兴起,IT的使用方式正在发生一个革命性的变更:以按需租用服务为主的IT使用新方式正在逐步,也必将会,取代作为财产拥有的...
  • 笔者研究过的虚拟化软件有IBM PowerVM,VMware vSphere,还有Red Hat RHEV。其中,IBM是最早做虚拟化的;vSphere是虚拟化市场最大市场份额的占有者;RHEV则是开源虚拟化软件最好的选择。关于开源和商业软件...
  • 从VT-x到VT-d Intel虚拟化技术发展蓝图

    千次阅读 2007-11-24 19:13:00
    【IT168评测中心】当前非常热门的Virtualization虚拟化技术的出现和应用其实已经有数十年的历史了,在早期,这个技术主要应用在服务器以及大型主机上面,现在,随着PC性能的不断增长,Virtualization也开始逐渐在x86...
  • 虚拟地球原理与实现

    千次阅读 2012-08-27 10:36:23
    虚拟地球原理与实现 摘要:构建一个虚拟地球,需要解决三个问题,全球角度空间数据模型的构造,海量地理空间数据(包括地形、影像)的组织、管理和调度,空间数据的三维可视。本文对这三个问题进行了详细的...
  • 云计算=SaaS+网格计算+虚拟化

    千次阅读 2012-11-08 09:14:27
    云计算=SaaS+网格计算+虚拟化 到底什么是云计算? 到底什么是云计算? 在 IT 业界,对于“云计算”至少有超过 20 种的解释。 维基百科的定义为“云计算(cloud computing),是这样一种计算方式, 计算资源是动态...
  • 虚拟化 : VT-x VT-d VT-c的分别

    万次阅读 2012-11-12 10:50:01
    Intel运用Virtualization虚拟化技术中的一个指令集。VT-x有助于提高基于软件的虚拟化解决方案的灵活性与稳定性。通过按照纯软件虚拟化的要求消除虚拟机监视器(VMM)代表客户操作系统来听取、中断与执
  • Intel虚拟化技术(Intel VT-x)

    万次阅读 2013-01-07 10:01:01
    在电脑上安装64位的openflow时遇到的。在芯片支持VT-x的条件下,bios里enable一下就行了。...1、处理器:Intel虚拟化技术(Intel VT-x),包括Intel虚拟化灵活迁移技术(Intel VT FlexMigration)、Intel VT FlexPrior
  • 在企业信息日益发达的今天,庞大的企业分支,日益增多的移动办公,都需要有一种安全、快捷的接入方式,来作为企业信息应用的保障。通行的方法是通过硬件形式,如VPN设备,或者通过远程接入软件,来实现企业分支...
  • 腾讯云虚拟化:坚定的开源主义者

    千次阅读 2020-11-05 16:02:19
    腾讯云虚拟化技术团队正在思考,采用什么样的技术栈,能够保障好更大规模云上用户业务安全性、连续性和稳定性。 业界当时最主流的虚拟化技术是Xen,由剑桥大学开发。不管其他云服务商,还是腾讯内部,Xen都是计算...
  • 虚拟化是一种资源管理技术, 是将计算机的各种物理资源, 如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破物理设备结构间的不可切割的障碍,使用户可以比原本的架构...
  • 通过XenCenter连接到XenServer,以实现建立虚拟机、克隆虚拟机、创建虚拟机模版和导入导出虚拟机,这在日常运维中是经常用到的几个操作,可以让管理员更好地管理虚拟资源,给企业带来使用Citrix Xense

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,908
精华内容 9,563
关键字:

虚拟化运用什么原理