虚拟化技术原理与实现的内容介绍
《虚拟化技术原理与实现》对云计算中关键技术之一的虚拟化技术进行了深入的分析,从x86计算机体系结构以及操作系统的工作原理出发,介绍了虚拟化技术原理以及业界主流虚拟化软件产品,并以Xen、KVM开源软件为例分析了虚拟化软件的架构及其实现方法,最后对虚拟化软件管理接口的工作原理以及实现方法进行了全面的梳理。
云服务器和云虚拟主机的区别在于,云服务器是通过虚拟化技术,将大量独立服务器虚拟为一个性能可分配的虚拟服务器,可以自由定制需要的CPU数量、内存大小,硬盘大小,带宽资源,IP资源等等。而虚拟主机则是通过虚拟技术,将一台服务器分割成很多小的空间,每个主机空间CPU资源、内存资源、IP资源等都是采用共享一台服务器的形式,其性能大大地受限于该台虚拟化服务器 。
两者在服务内容、性能、资源分配和适用用户等方面存在一些区别,具体如下:
服务内容:云服务器提供的是一台独立的虚拟机,具有自己的独立操作系统、独立的计算资源、独立的存储空间等;而云虚拟主机则是在一台物理服务器上通过虚拟技术划分出多个虚拟主机,这些虚拟主机共享同一个物理服务器的计算资源和存储空间。
性能:由于云服务器具备更多的计算资源和更独立的环境,因此相对而言其性能更强、更稳定,适合需要高性能和高可靠性的应用场景;而云虚拟主机则因为共享物理服务器资源,可能存在资源竞争和性能波动等问题。
资源分配:云服务器可以根据需求自由分配计算和存储资源,具备更高的灵活性和扩展性;而云虚拟主机则受限于所在物理服务器的资源,无法随时按需增减资源,但相对来说价格更便宜。
适用群体:云服务器适用于对性能和安全要求较高的企业、高端开发者和需要大规模扩展应用的用户;而云虚拟主机则适用于个人、小型企业和中小网站等较小规模用户。
应用虚拟化是将应用程序与操作系统解耦合,为应用程序提供了一个虚拟的运行环境。在这个环境中,不仅包括应用程序的可执行文件,还包括它所需要的运行时环境。从本质上说,应用虚拟化是把应用对低层的系统和硬件的依赖抽象出来,可以解决版本不兼容的问题。
应用虚拟化的优势
1灵活性
应用虚拟化使应用能够在不兼容的环境下运行,例如在Linux设备上运行Windows应用。虚拟化应用还提供了同时运行多个不兼容应用程序的功能,而且这些应用程序不会受到彼此的影响。
2隔离性
将应用从主机环境中隔离出来,提供了更好的安全性,降低了应用出错影响整个系统的可能性。
3资源依赖
和完整的虚拟机相比,虚拟应用对资源的依赖更小,在提供虚拟化优势的同时没有引入其他开销。
4部署更简单
虚拟化应用作为一个完整的实体存在,有自己的操作系统,与其他应用程序彼此隔离。只需要运行hypervisor启动虚拟应用程序就能够完成部署。
5粒度更细的安全性
虚拟应用有直接针对容器以防止其执行的安全策略。而且可以只授权给用户启动虚拟应用所需要的权限,并不允许其访问其他网络资源。
应用虚拟化的不足
应用虚拟化的优势让这门技术听起来像是迄今为止最好的技术,但是它也存在一些明显的不足。
1并不是所有的应用都能够被虚拟化
某些应用程序直接调用硬件,必须运行在共享内存空间中或者需要只与专有设备兼容的特定设备驱动器。这样的例子包括销售点解决方案,扫描以及其他数据捕获产品。
2本地集成
某些应用过度依赖于与特定的操作系统进行本地集成而且直接调用操作系统才能够正常使用。这方面的例子包括计算机辅助设计以及视频编辑软件。
3兼容性
在很多情况下,应用虚拟化只解决与文件以及注册表控制相关的兼容性问题。对于直接控制动态内存访问的应用程序来说,虚拟化无法避免这些调用而且可能会导致系统崩溃。
4许可问题
应用虚拟化使克隆以及部署应用变得非常简单。然而这也使违背用户许可变得简单起来。
云计算发展至今,已历经十年之久。如今的云计算,从技术种类,功能产品,到行业和市场发生了巨大的变化。很多爱好者对云计算的认知和需求,也从当年的粗浅概念,发展到渴望深度探索的阶段。
因广大爱好者个人能力的不同,另外个人的技术水平也有不同。
下面以初学者和云计算工程师两个方面给一些建议。
如果您是一个未曾进行云计算相关的工作的人,需要学习云计算,就要具备操作系统,网络,应用服务等知识。市面上实现云计算的厂商已经有很多了。商业阵营的微软,IBM,谷歌,VMWARE,华为,都有非常成熟的产品。如果资金充裕,购买任意一款云产品,您就会得到非常专业的技术支持和服务。(开个玩笑,一般也买不起啊)如果您只是一个普通爱好者,我建议选择开源阵营的KVM,XEN,OPENSTACK,DOCKER等技术入手,因为他们的开源(免费)特性,所以近些年来广泛受到各大IT互联网公司和爱好者的热捧。
学习开源阵营的云计算技术,要从Linux系统的管理和使用的角度进入学习(20天左右),以及小部分的计算机网络通信技术(5天左右),为云中的虚拟网络技术打下基础。随后还要对SHELL开发,数据库系统有一定的了解(10天左右)。这个时候,就有条件可对核心的云计算技术开展全面的学习了。如:KVM,OPENSTACK,DOCKER容器,等云技术(20天)掌握其中的架构,功能角色以及Iaas,Paas,Saas层级分类,掌握私有云的部署和运维能力。
如果您是一个已经参加相关工作的人士,对上述内容多少有些了解。那对您的建议是,在精通上述内容的同时,还需要对Python这门语言进行深入学习,能够在云平台上,对云计算服务,容器服务,集群服务,缓存等常用服务器,进行全方位的监控和管理工作,以及二次开发工作。这才能算上一个比较全面的云计算专家。因为你将面对的不在是过去的独立服务器,机房,设备。而是数以万计的计算机,并分布在不同城市或国家的云计算系统,进行全方位高效稳定的管理工作。
0条评论