开发者学堂课程【KVM 虚拟化第一课时:KVM 虚拟化】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/809/detail/13903
KVM 虚拟化
在本系列课程中,主要学习KVM虚拟化,并且在电脑上完成KVM的安装和简单的使用,在最后的课程当中为大家介绍一些KVM管理和使用上的一些技巧,并且给出大家进一步的学习和指引。
一、云计算的发展
云计算于2006年,首次被Google前首席执行官Eric Schmidt提出;
在20世纪60年代,麦卡锡就提出了把计算能力作为一种像水和电一样的公用事业提供给用户;
在20世纪90年代,网格计算的诞生让人们看到了云计算的雏形
二、云计算与虚拟化
虚拟化正是构建云计算基础架构不可或缺的一个关键技术。
云计算的云端系统,其实质上就是一个大型的分布式系统。
虚拟化通过在一个物理平台上虚拟出更多的虚拟平台,而其中的每一个虚拟平台则可以作为独立的终端加入云端的分布式系统。
比起直接使用物理平台,虚拟化在资源的有效利用、动态调配和高可靠性方面有着巨大的优势。
利用虚拟化,企业不必抛弃现有的基础架构即可构建全新的基础架构,从而更加充分地利用原有的IT投资。
借助于虚拟化,企业可以更好的去管理他们的这些资产。
三、何为虚拟化
我们可以将一般的计算模型抽象成为一定的物理资源和运行之上的计算元件,它们之间通过定义的物理资源接口进行交互,将这样的一种行为称为虚拟化。
随着计算机硬件技术的发展,物理资源的容量越来越大而价格越来越低,在既有的计算元件架构下,物理资源不可避免地产生了闲置和浪费。
为了充分利用新的物理资源,提高效率,一个比较直接的方法就是更新计算元件以利用更加丰富的物力资源。
但是,人们往往出于对稳定性和兼容性的追求,并不情愿频繁地对已经存在的计算元件作大幅度的变更。
虚拟化技术则是另辟蹊径,通过引入一个新的虚拟化层,对下管理真实的物理资源,对上提供虚拟的系统资源,从而实现了在扩大硬件容量的同时,简化软件的重新配置过程。
四、不同的虚拟化
最为常见的虚拟化主要有以下4种:
1. 服务器虚拟化,我们实现服务器虚拟化以后,多个操作系统可以作为虚拟机在单台物理服务器上运行,并且每个操作系统都可以访问底层服务器计算资源,从而解决了运行效率低下的问题。
2. 网络虚拟化,网络虚拟化以软件的形式完整的再现了物理网络,将已经连接的工作负载提供逻辑的网络连接设备和服务,一方面提供了与物理设备相同的特性和保障。另一方面还提供了虚拟化所具有的运维优势和硬件的独立性。
3. 桌面虚拟化,它是以代管服务所形式来去部署桌面,这样可以让使用者更加快速地对不断变化的需求做出响应。比如说企业可以快速轻松地向分支机构、外包员工或者是海外员工以及那些在使用平板电脑的移动工作人员交付一个虚拟化的桌面和应用,降低了使用的成本。
4. 软件定义存储,随着互联网发展海量的数据和实时的应用程序,使存储需求达到了一种新的高度,而存储的虚拟化可以对服务器内部的磁盘和内存进行一个抽象,把它们组合到一个高性能的存储,然后以软件的形式来交付,通过软件定义的存储可以提升运维模式的效率。
五、软件虚拟化和硬件虚拟化
纯软件虚拟化,使用纯软件的方法在现有的物理平台上(往往并不支持硬件虚拟化)实现对物理平台访问的截获和模拟。
常见的软件虚拟机例如QEMU、VMWtualBox等。
硬件虚拟化是物理平台本身提供了对特殊指令的截获和重定向的硬件支持。甚至,新的硬件会提供额外的资源来帮助软件实现对关键硬件资源的虚拟化,从而提升性能。
硬件虚拟化是一整套完整的解决方案,包括CPU主板的芯片组和系统软件的支持,只有把这些东西全部组合起来才能够真正的去享受到硬件虚拟化的特性。
六、全虚拟化与半性化
软件虚拟化可以在缺乏硬件虚拟化支持的平台上完全通过VMM软件来实现对各个虚拟机的监控,以保证它们之间彼此独立和隔离。但是付出的代价是软件复杂度的增加,和性能上的损失。
半虚拟化是通过修改操作系统,使它以为自己运行在虚拟环境下,能够与虚拟机监控机协同工作。
全虚拟化为客户机提供了一个完整的虚拟X86平台,包括处理器,内存和外设,支持运行任何理论上可在真实物理平台上运行的操作系统,为虚拟机的配置提供了最大程度的灵活性。
区分半虚拟化和全虚拟化:
在这个过程当中我们的修改是否会影响到虚拟机的操作系统,如果我们需要对虚拟机的操作系统进行的修改,那么就可以将其认知为半虚拟化,而如果不需要对我们的虚拟机系统进行修改,那你就可以视为全虚拟化。