白话为什么需要虚拟机和云计算有什么关系

  近来我们一直在说云计算,有人就会问究竟什么叫云计算,或许从狭义讲企业级的云计算就是将业务服务放在云主机上运行,而云主机实际是互联网机房中的虚拟机(VM)。虚拟机又是什么? 虚拟机是通过硬件虚拟化技术将一台物理服务器分割成了多个逻辑隔离的单元,每个单元都是一个虚拟的计算机,和真实的计算机一样它也有CPU、主板、内存、硬盘等等设备组成,可以为这台虚拟的计算机安装操作系统。一台物理服务器通过虚拟化技术可以同时运行多台虚拟机即多个操作系统(及其业务系统)。不仅节省了硬件采购成本与电能消耗,也降低了维护工作量。因此虚拟机技术也是云计算平台的最基础元素。

  早期做运维的一些朋友起初对虚拟机并不感兴趣。对于资金并不充余的用户会选择把多个服务(业务)都放在一台服务器上运行。比如:DHCP、DNS、WEB 共用一台服务器;SAP 和 OA 共用一台服务器… 等这样处理可以节省至少一半的服务器。对于资金不紧张的用户而言,可以为每一个业务事务系统都配置一台甚至多台服务器;比如:DHCP 、DNS、WEB、MIS、SAP、OA 等都有独立的服务器,有的中小企业都会因此而配有十多台服务器填满几个机柜。其实这两类情况在2008年以前都比较常见,看似简单没有问题,其实诸多的问题作为运维人员都只能习惯后而忍受了。上述两类原始方案的症结在哪里?

  第一类节约型用户多业务运行一台服务器系统;这种情况在中小企业、学校实验室比较常见,这种处理方式最大的问题在于资源间的互斥冲突。以WebService 为例如果把IIS 和 Tomcat 、 Apache 同时塞到一个系统里面,但http 的默认访问端口是80 ,三个服务必须得有两个作出让步使用别的端口号。多个服务使用的端口号相同、读写的配置文件相同都会引起冲突。还有一种另类的冲突是依赖库的冲突,多个软件或服务都会依赖或相互依赖一些支持库,对库的版本有严格的约定,两个业务系统对同一个包有依赖,但是版本却不同的情况也非常让运维人员恼火的事情。 更严重的是有时候一些服务或业务程序自身有BUG 缺陷,在长时间运行后会严重的拖累系统,导致同在这台服务器上的其他业务系统的响应速度也变迟缓最后至宕机,当管理人员需要重新启动计算机时,这台服务器上所有运行的业务系统都会连坐中断。

  第二类富足型用户一个业务一台服务器;这种情况在基层事业单位和一些传统制造型企业比较多。这种处理方式最大的问题在于资源和资金浪费。 因为像DHCP / DNS / WEB等一些服务的负载并不高。7 24 的运行中资源使用率仅在 10 ~ 30 % 左右,有近 70 % 是闲置的。并且每多一台服务器也会多出 500 W 7 *24 的电力消费;同时也增加管理维护的服务器工作量。

  虚拟化技术的成熟让问题得到了很好的解决,特别是Intel 和AMD 在自己的CPU 中加入虚拟化指令,Windows /Linux 也相继提供了内核虚拟机;使虚拟机可以更多的发挥物理硬件的性能。通过Hypervisor 我们可以一台物理服务器上同时运行多台虚拟服务器,每台虚拟服务器都可以独立安装不同的操作系统。可以独立运行、重启关机都相互之间不会影响。虚拟机配给的硬件资源是由管理者调配的,对硬件资源占用在配额之内,即使某个系统导致负载过高而宕机,也不影响其他虚拟机的工作。

使用虚拟机(虚拟服务器)的优势:

  创建、撤销都可以在软件管理层面上完成,以往升级服务器硬件都需要断电拆机,而虚拟机上扩展资源配给可以直接管理软件界面设定热生效。销毁服务器也同理。

  迁移、备份方便;虚拟机对应是物理服务器上的一个镜像文件,迁移服务器到异地机房以往需要下架后再小心翼翼长途托运,生怕路途碰摔。而虚拟机的迁移隔千山万水也只需要拖动一个文件。
快照功能,在服务器系统上做一些不确定的操作时,可以使用快照。如果操作有误随时可以回滚快照。但以往在物理系统上这种情况可能就有重做系统了。

  可以基于模板快速生成,以往一台祼机从安装系统到部署业务耗时平均12小时,但采用虚拟机的情况可以事先准备好各种模板,需要时只用使用模板克隆一次就可以快速的完成。

  因此现在企业内部或互联网上公有云服务商提供的云主机、VPC 等大多都是虚拟机,易于动态的创建、回收;集群中所有虚拟机的运行情况都能及时掌握和按需调配。虚拟化可以说是云计算的基础技术支撑。

上一篇:ansible 批量更新 nginx 配置,以及失败时的自动回滚样例


下一篇:08. Web大前端时代之:HTML5+CSS3入门系列 ~ QQ空间时间轴