云计算和虚拟化本质上是不同的。虚拟化是在单台服务器上创建多个虚拟环境的过程。它通过使用虚拟化软件来实现此目的,这使得可以在同一台服务器上同时运行多个 *** 作系统。
一什么是虚拟化?
简单来讲,虚拟化就是为一些组件创建虚拟(而不是物理)版本的过程。虚拟化可以应用到计算机、 *** 作系统、存储设备、应用或网络。但是,服务器虚拟化才是虚拟化的核心。 现如今的 x86 服务器的设计存在局限性,每次只能运行一个 *** 作系统和应用,这为 IT 部门带来了挑战。因此,即使是小型数据中心也必须部署大量服务器,而每台服务器的容量利用率只有 5% 到 15%,无论以哪种标准来衡量,都十分的低效。
虚拟化使用软件来模拟硬件并创建虚拟计算机系统。这样一来,企业便可以在单台服务器上运行多个虚拟系统,也就是运行多个 *** 作系统和应用,而这可以实现规模经济以及提高效益。
二为什么要虚拟化?
虚拟化技术能为我们解决很多以前解决不了的技术:
1、服务器整合技术:这个技术在没有虚拟化技术之前是很难完成的。因为什么东西都是实际存在的,想把两个工作相对较少的服务器整合到一起是很困难的。然而当有了虚拟化技术以后使这种服务器整合技术变得非常容易。而这个技术需要借助我下面介绍的2、3条技术。
2、负载均衡技术:
负载均衡技术是只在每台服务器上安装一个负载均衡器,然后设置很多的调度算法及临界值。来判断此时此刻服务器的压力是轻还是重。然后根据轻重来完成服务器的合并,而合并又依据了第三条技术。
3、动态迁移技术:这个技术是前两个技术的根基,但是却不只仅仅限于前两个技术。它的目的是可以在服务器开启的状态下,把其上面的虚拟机迁移到其他的服务器上面。工作原理大体是先将目标服务器上模拟出此服务器的硬件状态,然后迁移数据,最后释放此服务器的信息。
4、克隆技术:这个技术说起来和上面那个技术很像,但是却不一样。克隆技术是把一台服务器的环境配置好了后可以通过克隆技术使其他的机子都达到和这台机子一样的效果,假如要配置100台甚至1000台服务器的话这种克隆技术是非常可观的。它和动态迁移的区别是在服务器不停机的状态下,动态迁移要求迁移的彼此必须是共享内存的,但是克隆并没有这个限制。
5、灾难恢复技术:灾难恢复是所有大型公司必须考虑的问题,因为当一些意外发生时,比如:突然断电,硬件损坏,洪水,地震,等一系列情况是,如何把灾难所造成的数据损失降到最低甚至是不损失。这要依靠第六条技术。
6、虚拟快照技术:虚拟快照技术是将虚拟机此时的状态像照片一样保存下来,当然我说的很容易,其实现原理需要非常复杂,包括cpu运行状态,内存中的数据等等。这样保存下这些虚拟技术当发生灾难或者某些失误导致虚拟机出问题时,可以很快恢复。
7、改善系统可用性。这里的可用性只得是零 down机,在这种情况下我们才可以使得效率最大化。而零down机的前提是每台服务器必须要有一个镜像,在主虚拟机和次虚拟机之间有一条心跳线来维持两者之间的关系,当心跳线停止时,次虚拟机立马启动,代替主虚拟机。
8、安全性:我们直到虚拟化在硬件层上都有一层VMM来时时刻刻侦测每台虚拟机的动向,包括捕获异常,解决门事件,完成调度等等。所以当一些危险因素来临时由于VMM的存在使得我们可以非常快的侦测到这个问题并解决它。这能比以前的硬件层上面直接是 *** 作系统快速很多。
看了一些虚拟化的博客,还有文章,发现很多人对于虚拟化技术到底是什么,为什么要使用虚拟化技术还不是很明白。绝大多数人目前理解的虚拟化技术就是把 *** 作系统和硬件分离,一个硬件能够同时运行多个 *** 作系统认为就是虚拟化技术,其实这只是虚拟化技术中很小的一个部分,和很初级的阶段。
什么是虚拟化技术?
百度百科中给出的解释其实也是相对片面的:
“ 虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个 *** 作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
虚拟化技术与多任务以及超线程技术是完全不同的。多任务是指在一个 *** 作系统中多个程序同时并行运行,而在虚拟化技术中,则可以同时运行多个 *** 作系统,而且每一个 *** 作系统中都有多个程序运行,每一个 *** 作系统都运行在一个虚拟的CPU或者是虚拟主机上;而超线程技术只是单CPU模拟双CPU来平衡程序运行性能,这两个模拟出来的CPU是不能分离的,只能协同工作。”
虽然其强调广义概念,但是在后面的描述上也都是在强调 *** 作系统与硬件的隔离。
gartner给过一个相对简单但是很准确的定义(记不住原文,大概含义):将不同的资源和逻辑单元剥离,形成松耦合的关系的技术。
其实根据计算过程中的逻辑组成部分,将他们的紧耦合,变为松耦合(耦合大家学过软件工程的都应该懂什么意思了吧)。其实“耦合”的概念是计算机领域一直研究的内容:
面向对象的设计讲,不同的类应该是松耦合的,而类内部的信息应该是紧耦合的,这样可以更好地应对需求变化,快速动态地调整,构建新的系统;
web service其实也是将传统的紧耦合功能,转变为可以灵活组织的,像搭积木一样的松耦合关系,使得我们可以将很多大家都需要的功能通用化,我们可以利用不同的服务组合构建我们的应用。
而虚拟化,只是对计算环境这个更高层次的概念进行“松耦合化”,让我们的IT应用就像我们攒机器一样,几个通用的标准模块搭起来就能够成一个满足特定需求的计算环境。
我们可以看到,“松耦合化”是很多很热的技术的主线,之所以它是计算机研究中的重要元素之一,就是因为它会给我们提供更多的灵活性!
举个简单的比喻:计划经济时代,我们都是每个工厂有自己的食堂,自己的澡堂,托儿所,幼儿园,学校等等,这就好比我们的计算环境,或者是一个软件,所有的组成部分都紧紧的配合在一起,是比较全,对于自己工厂的员工来说很方便;但是对于工厂来说,这个很不经济,成本很高,因为什么都要做,什么都做不好,而且没有规模经济,自然就不好,对于社会来说,浪费非常多。后来市场经济,所有的都专业化了,于是我们一个写字楼的所有人都可以去楼下的食堂吃饭,也可以去别的地方吃饭;洗澡也有专业澡堂了,托儿所与学校也分出去了。这样我们的选择性多了,可以选好的地方或者合适的地方,另外专业化也提高了效率,社会浪费也少了,这就跟我们的web service或者虚拟化一样,每个公司或者个体都是提供一个专业服务,效率高,成本低;而你要做一种事情,可以有多种选择,选择最合适你的,也让你整体成本地,而且更好地完成任务。对于社会来说,浪费少了,而且更灵活了。
世间诸多事情都一脉相通,而诸多厂商所谓的“敏捷IT”,本质上就是利用“松耦合”带来的灵活性来实现的,实现“IT系统的计划经济向市场经济的过渡!”。而这就是为什么,在计算环境层面,我们需要“虚拟化”技术的原因。
但是,计算环境的虚拟化可不仅仅指的是 硬件与 *** 作系统的松耦合,它是更大的一个概念,包含更广泛的内容。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)