虚拟化技术
引言
先举个例子,一台物理主机有16G内存,用户A的程序只需要2G内存,用户B的程序只需要4G内存,如果没有用虚拟化技术,他们的解决方案如下:
- 两用户程序放到同一台物理机器上,各自配置运行环境。资源都能满足了。问题是,程序的运行环境一个是Linux,一个是windows呢?如何防止用户A的程序不会窃取用户B数据呢?
- 再买一台2G的物理主机,这样就解决了上面两个问题,呵呵。问题是,好浪费啊!如果再有个需要1G内存的用户来了,就买个1G的物理主机?如果老板有的是钱,没问题~
有个更加省钱的方法:采用虚拟化的技术,在那台物理主机上生成两个操作系统出来,一个4G内存,一个2G内存,操作系统的类型任选,虚拟化能够提供资源隔离的功能。这样就完美解决了上述的问题。对普通人来讲,可能VMware虚拟计算机是最了解的吧。
为什么要进行虚拟化?
虚拟化是云计算技术的基础。
百度百科上说:是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。虚拟化使用软件的方法重新定义划分IT资源,可以实现IT资源的动态分配、灵活调度、跨域共享,提高IT资源利用率,使IT资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。
因为虚拟化本质不是对硬件的改变,而是用软件的方法抽象,虚拟出的IT资源与底层硬件相隔离,所以虚拟化技术能够实现IT资源的自动化分配、调度、共享、迁移、监控。这种特性对于大型网站运维来说非常有用,谁不想啥事都是自动化的?人总是比较容易马虎出错。另外,有些业务是IO密集型,有些业务是计算密集型,需求各有不同,虚拟化可以让IT资源按需分配。虚拟IT资源与硬件无关,所以当需要更多的资源的时候,只需要增加一些物理计算机即可,小型机与普通机器可以混合使用。
服务器虚拟化主要有以下四方面的功能:
虚拟化的好处
效率:将原本一台服务器的资源分配给了数台虚拟化的服务器,有效的利用了闲置资源,确保企业应用程序发挥出最高的可用性和性能。
隔离:虽然虚拟机可以共享一台计算机的物理资源,但它们彼此之间仍然是完全隔离的,就像它们是不同的物理计算机一样。因此,在可用性和安全性方面,虚拟环境中运行的应用程序之所以远优于在传统的非虚拟化系统中运行的应用程序,隔离就是一个重要的原因。
可靠:虚拟服务器是独立于硬件进行工作的,通过改进灾难恢复解决方案提高了业务连续性,当一台服务器出现故障时可在最短时间内恢复且不影响整个集群的运作,在整个数据中心实现高可用性。
成本:降低了部署成本,只需要更少的服务器就可以实现需要更多服务器才能做到的事情,也间接降低了安全等其他方面的成本。
兼容:所有的虚拟服务器都与正常的x86系统相兼容,他改进了桌面管理的方式,可部署多套不同的系统,将因兼容性造成问题的可能性降至最低。
便于管理:,提高了服务器/管理员比率,一个管理员可以轻松的管理比以前更多的服务器而不会造成更大的负担。
通过实现 IT 基础架构的虚拟化,可以降低 IT 成本,同时提高现有资产的效率、利用率和灵活性。在全世界,各种规模的公司都享受着服务器的虚拟化带来的好处。数千家组织都在采用服务器虚拟化解决方案。
虚拟化的工作原理
虚拟化的工作原理是直接在物理服务器硬件上或主机操作系统上插入一个精简的软件层,该软件层包含一个以动态和透明方式分配硬件资源的虚拟机监视器(虚拟化管理程序,也成为Hypervisor)。相信很多人都学习过面向对象的编程语言,明白"封装"的原理,以Java为例,将特定的属性和方法封装到一个类中。虚拟化的工作原理也包含一个类似的“封装过程”,将硬件资源(包括CPU、内存、操作系统和网络设备)"封装"起来、因此虚拟机可与所有标准的操作系统、应用程序和设备驱动程序完全兼容,可与同时在一台物理服务器上安装运行多个操作系统和应用程序,每个操作系统和应用程序都可以在其需要时访问其所需的资源。
虚拟机(VM)
"虚拟机(VM)"即虚拟计算机系统,它是一种严密隔离的软件容器,内含操作系统和应用。每个功能完整的虚拟机都是完全独立的,包含自己独立(即基于软件实现的)的CPU、内存、硬盘、显卡、声卡、网卡。如
设置完成的虚拟机对于用户来说,是与"物理"计算机,与"虚拟"计算机不同。对于运行与计算机中的操作系统来说,它们是等价的,是不会、也无从分辨物理机与虚拟机的区别的。简而言之,对于运行其中的操作系统和应用,虚拟机与物理机基本上没什么区别。
将设置好的多台虚拟机放置在一台计算机上,即可实现在一台物理服务器或"主机"上运行多个操作系统和应用。
虚拟化的优势
1.虚拟化是一个过程,它打破了物理硬件与操作系统及在其上运行的应用程序之间的硬性连接。
2.虚拟化应用方面很广,可以应用到计算机、操作系统、存储设备、应用或网络
3.虚拟化平台下,整合服务器的资源,使得资源的利用率大幅度提升,同时虚拟化平台本身提供了故障恢复、业务部署、迁移、转换、更新、维护等方面的便利,降低了IT费用并提高了使用效率和灵活性。