LinuxGod

LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

关于Linux虚拟化解决方案的优势我们已经有所了解的

2022年12月10日 181点热度

关于Linux虚拟化的优势我们大家已经有所了解。目前使用最多的虚拟化操作系统还是Windows系列,但是Linux的成长速度是惊人的,大有替代Windows的趋势。关于Linux虚拟化技术大致上可以分为六个不同的方式。在本文中,我们将讨论实现Linux虚拟化的这六种方式,以及Linux下的多种虚拟化解决方案。

当我们讨论虚拟化解决方案的时候,常常都要提到具体厂商的具体产品,但是当我们提及Linux虚拟化解决方案的时候,我们更乐意讨论广泛而多样化的开源生态系统。Linux支持多种虚拟化平台,并延伸出多种技术,同样也是一个完整方案的一个元素。

虚拟化—老树开新花

虽然虚拟化现在如此的流行,但虚拟化不是一个新的技术,早在半个世纪之前IBM就已经开始部署虚拟化。最早虚拟化技术是在IBM M44计算机上进行实验,然后在IBM System/360大型机产品上开始普及。最早的真正意义上的整体应用虚拟化的硬件平台是IBM CP-40系统,在上世纪60年代末被用在商业应用上。

虚拟化包含多个层面,比如硬件虚拟化,这种虚拟化从底层的硬件平台直接支持软件环境;另外一种是操作系统虚拟化,这是Linux的一个亮点。

在硬件层之上,独立于操作系统的一层软件被称之为hypervisorlinux运维招聘,或者叫做虚拟机监视器。hypervisor创建了虚拟化平台,而操作系统实例则运行在这个平台上,这使得硬件平台可以被多个操作系统和应用所共享,从而降低硬件的成本。

运行在hypervisor上面的实体被称为虚拟机,即VM,是用来放置操作系统、应用和数据元的“容器”。虚拟机中的操作系统和应用程序的数据被存储在虚拟磁盘中,hypervisor利用虚拟磁盘来启动虚拟化平台。虚拟机被封装为一个文件,这样比分布式的文件更好管理。

本地虚拟化和主机虚拟化模型

linux 虚拟串口 驱动_linux 虚拟软件_linux 虚拟串口驱动

早期的虚拟化模型被称为Type 1linux 虚拟软件,或者叫本地虚拟化(native virtualization),这种模型下hypervisor直接运行在硬件之上,在hypervisor上面是虚拟机。后来出现了主机虚拟化(hosted virtualization)模式,被称为Type 2,hypervisor运行在操作系统之上,在同一平台上允许两个或更多的操作系统共存。

Linux虚拟化技术基础

了解了有关虚拟化的一些基本知识后,我们进入正题,来讨论一下Linux虚拟化的一些知识。首先是模拟(Emulation),是将一个操作系统(Host)的服务转换并显示成另一个操作系统(Guest)的过程,Host和Guest系统不一定是相同的,比如,Host系统可能是x86平台,可以提供PowerPC平台的模拟,即使是指令和架构完全不相同。

另外,hypervisor的模拟器(emulator)可以提供多个平台的模拟,比如下面的图例,在Host系统上可以仿真出PowerPC和ARM系统。模拟过程并不仅限于Type 2虚拟化模型,在虚拟化技术中都存在这个过程。

虚拟化模型中的模拟过程

Linux中最流行的两个模拟器(emulator)包括QEMU和Bochs(处理器和平台模拟器)。这种解决方案的优点是它们是非常“轻便的”,可以支持在不同的Host操作系统和平台上运行不同的Guest操作系统。而这种解决方案的缺点在于由于要模拟指令,导致效率比较低。QEMU通过动态编码转换的模拟方式,让内核和内部用户代码可以被加速。另外,QEMU是一个很好的嵌入式平台开发工具linux 虚拟软件,可以为与主机相异的CPU开发和测试代码。QEMU还可以被用来其他虚拟化解决方案来进行设备模拟。

平台虚拟化

linux 虚拟软件_linux 虚拟串口驱动_linux 虚拟串口 驱动

更加传统的虚拟化解决方案是平台虚拟化,或者叫做硬件虚拟化,具有两种主要的形式,完全虚拟化( full-virtualization)和半虚拟化(para-virtualization)。

完全虚拟化,虚拟化平台通过hypervisor来承载虚拟机(VM),完全虚拟化的关键在于这些虚拟机,也就是运行在这些虚拟机里面的操作系统可以在hypervisor上运行,并且不被修改,这在需要一个真正的虚拟平台时是非常理想的,但这种模式具有一个缺点。

在完全虚拟化下虚拟机VM会把虚拟平台当作物理平台,工作在虚拟平台上的Guest操作系统驱动就好像运行在真实的硬件之上。但需要考虑这意味着什么,Guest操作系统和虚拟平台之间通讯就好像和真实平台一样,在hypervisor里面存在着另外一个模拟层,模拟硬件平台并转发虚拟机对硬件的访问,就好像虚拟机直接在使用真实的硬件。这个过程需要大量的处理,会限制Guest系统的I/O性能。

解决这个问题的一个方法就是让Guest操作系统意识到自身是被虚拟化的,这种形式被称作半虚拟化(para-virtualization),如下图,在这种模式下,Guest系统包含了缩短硬件访问过程所需的驱动程序,这让把Guest系统从不必要的工作中解放出来,来进行更高级别的工作。

两种平台虚拟化方式

虽然完全虚拟化是一个理想的方案,但是通过修改Guest操作系统可以最大限度的减少处理开销,获得相当大的性能提升。

Linux包含两个重要的解决方案,可以同时实现完全虚拟化和半虚拟化。如Citrix的Xen是一个流行的解决方案,可以同时执行Type1和Type2型hypervisor,Amazon的EC2就采用Xen来进行服务器的虚拟化。

linux 虚拟串口 驱动_linux 虚拟软件_linux 虚拟串口驱动

另一个重要的hypervisor是Linux Kernel Virtual Machine(KVM),同样都支持本地虚拟化和主机虚拟化模型。KVM是有特点的,它通过夹在内核模块可以对Linux内核进行小的修改,从而变成一个全特性的hypervisor。KVM通过应用virtio可以支持半虚拟化,在Guest系统中包括用于半虚拟化的标准Linux驱动。

KVM也是第一个完全集成在主线内核(mainline kernel)的hypervisor,由Rad Hat开发,在一些关键领域被采用,比如IBM对云计算的开发和测试中。

需要注意的是无论是完全虚拟化还是半虚拟化,每种解决方案都应用了硬件协助虚拟化(hardware-assisted virtualization)。目前新的AMD和英特尔CPU都集成了优化hypervisor的指令集,来增强Guest虚拟机的I/O性能。

操作系统虚拟化

操作系统虚拟化是另外一个重要的虚拟化技术,正如其名,是对操作系统本身进行虚拟化,而不是平台。在这种方式下,操作系统提供一组用户空间(User-Space)彼此隔离,而应用被限制在每个用户空间里面,就好像一个独立的主机。这种形式的虚拟化在虚拟主机环境中非常流行,让多个独立的用户可以共享一个操作系统。

操作系统虚拟化

操作系统虚拟化依赖于可以创建和隔离用户空间(或者叫做容器或者私有虚拟服务器)的Linux内核,OS虚拟化最大的好处在于几乎没有任何开销,因为用户只是简单的共享OS和主机,而不需要通过虚拟机。而缺点在于目前我们采用的OS虚拟化解决方案缺乏灵活性,不能在任意的操作系统上实施,用户共享主机和操作系统还需要注意版本。尽管有这些不足,服务器虚拟化还是应用的非常广泛。

linux 虚拟软件_linux 虚拟串口驱动_linux 虚拟串口 驱动

Linux包含很多的操作系统解决方案,具有很高的可配置性。比如OpenVZ、Linux-VServer和FreeVPS是其中三个最流行的,均支持CPU、内存网络、I/O和存储配额配置,OpenVZ还支持主机之间的在线VPSes迁移。

其他Linux虚拟化技术

在上面的文章中,我们讨论了模拟、平台虚拟化和操作系统虚拟化,这三种是最常用的虚拟化技术,除此之外,还有很多其他种类的虚拟化技术可以满足我们的需求,下面我们来看看几种不同于之前谈论范畴的虚拟化技术。

CoLinux

CoLinux,或者叫做协作Linux,是一种利用协作虚拟机的虚拟化方式。在CoLinux模式下,Linux Guest系统运行在微软Windows操作系统之上,共享底层的硬件资源。CoLinux需要Guest系统(即CoLinux本身)被修改,让它认为自己运行在其他操作系统之上。CoLinux是一种半虚拟化的方式,是将Windows作为Host操作系统,并且每个Host系统上只能运行一个CoLinux实例。由于这种限制,CoLinux被定义为一种特别的虚拟化技术。

CoLinux:特别的半虚拟化架构

用户模式(User-Mode)Linux

linux 虚拟串口驱动_linux 虚拟软件_linux 虚拟串口 驱动

用户模式(User-Mode)Linux,即UML,和CoLinux有些类似,但是更加灵活。如上图右边的架构,UML允许在一个Linux Host系统上运行多个Linux Guest操作系统linux是什么,UML也是一种半虚拟化架构,实现更好的性能。UML吸引人的一个方面是可以支持更高一层的UML,所以运行在Linux Host操作系统上的UML Guest内核可以支持更高级别的UML Guest系统。

Wine和Cygwin

Wine和Cygwin也是有趣的虚拟化解决方案,Wine实际上是“Wine is Not an Emulator”的缩写,表示“不是一个模拟器”,是在Linux Host操作系统上运行Windows应用的一种方式。Wine并不是完全的表现为Windows应用的模拟层,而是一个DLL(动态链接库)层来表示Windows API。

Wine和Cygwin虚拟化方案

Cygwin是与之相反的解决方案,即在Windows上运行Linux应用,这是由Rat Hat开发,这是一种模拟的Unix环境,允许在Windows平台上开发Unix应用,比如POSIX以及其他类Unix工具。

Linux虚拟化的未来

在虚拟化领域,Linux虚拟化增长的很快速,不仅仅是对核心组件基于Linux的hypervisor的开发,还包括Linux虚拟化生态系统中的其他部分,包括工具和管理应用程序的开发。Linux虚拟化能够延伸出多种虚拟化技术,将不断的推动虚拟化技术的前进发展。

【编辑推荐】

十大Linux虚拟化优点Linux虚拟化的优势比Windows更明显Linux虚拟化:10个不得不爱的理由红帽和思科共同发布新的 企业Linux虚拟化整合计算解决方案

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: host hypervisor kvm创建虚拟机 虚拟化技术 虚拟机
最后更新:2022年12月10日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
写入数据覆盖的分析与执行 解读Rainbond集群的安装和运维的原理,便于用户搭建Rainbond Linux基础知识:文件描述符、文件指针、索引节点 如何解决Linux下的无线网卡驱动的问题? linux 文件描述符 (师)-unused-fdKernel:2.6.14CPUarchitecture Linux系统下如何搭建SVN服务器,详细说明各配置项的功能 修改软件源文件、UI界面设置换源操作|Ubuntu Ubuntu14.04.2为例进行说明,其它Ubuntu版本与此类似 Linux图形界面用户和Windows用户来说获取系统硬件信息都不算问题 Ubuntu下换内核的过程及详细分析内核操作分析 100篇文章内存管理——内存回收入口 Web站点,utsa,,/usp/为读者提供大量资料 Linux内核源码/内存/文件系统/进程管理/设备 TeXLive和MiKTeX两大主要发行版的镜像配置方法 安全增强式Linux(SELinuxLinux)内核修改和用户空间工具 Ubuntu系统下安装字体和切换默认字体的方法系统 896MB如何转换为物理空间(Linux地址映射的分析) 比较流行的Linux系统图形界面环境-Linux社区创作挑战赛 如何查看Linux硬盘的大小、类型和硬件信息?方法 Linux内核中的虚拟服务器集合:ipvsadm命令
Android官方网站:OpenHandsetAlliance源码模式:开发源码内核linux中makefile文件 cdeveloper的第21篇原创技术文章建议横屏Makefile简介Fedora17新特色特色说明桌面环境28bata集成了GNOMELinux嵌入式系统智能手机系统的硬件设计Unix或者类Unix文件系统中的每个文件(或者目录)打开U盘什么文件都看不到小编总结了基于嵌入式Linux的智能手机系统软件的设计与实现如何在Linux中使用Firejail运行应用程序访问某个目录基于嵌入式��闹悄苁只�长沙理工大学C语言教程-Qt.12安装教程05-27Linux有7个运行级别(关机,停机模式、DellG3)(Linux基础知识)文件压缩、打包命令解析的Linux操作系统怎样执行?LinuxDNS服务器,如何安装、配置和维护它?AMD2950x+技嘉x399免驱USB网卡,我的无线网卡linux解压gz文件命令 蓝易云香港五网CN2网络压缩比率的测试环境Linux系统中用于管理和控制系统服务的强大工具介绍围绕API创建封装器的开源项目正变得越来越流行主频93.75MHz的MIPS64NECVR4300处理器在N64上运行如何在Linux系统中实现开机自启动呢?
RedHatLinux软件安装包软件后缀为.rpm最初 安装linux的系统光驱redhat安装的方法 在文档中查找字符串用grep命令的使用:几个 命令:mke2fsmke2fs[选项]磁盘 linux集群软件 Linux基础知识:一般而言分的三种情况及解决办法! Linux内核技术组成、组织和重要的数据结构等(组图) 如何在Ubuntu上为Android系统编写的Linux内核驱动程序? 本发明可动态检测C/C++内存泄露的方法,所述方法 proc的缩写与内核相关的文件-上海怡健医学 Linux上向普通用户授予sudo权限通常使用adduser命令验证用户 第十二讲、Linux服务器操作系统ppt4.1引导与关闭系统4.1.1GRUB引导器 SSH安全加固的文字,网友点评通过密钥登录更加安全 第三届AKA2008Linux内核开发者大会将于10月25日拉开帷幕 如何查看Linux操作系统版本_谦杯的博客_51CTO博客 普联技术有限公司程序的安装包使用方法通过-LINK Ubuntu18验证dhcp服务器配置是否成功?.04的配置 Ubuntu14.04.2为例进行说明,其它Ubuntu版本与此类似 Linux的软件安装方式进行汇总和安装的方式汇总 Linux内核设计与线程上周的运作机制与实现及其相关资料 Linux添加普通用户到sudo列表的解决方法介绍
标签聚合
文件目录 linux脚本 电脑 sudo 命令模式 虚拟机 软件 linux服务器 命令 linux系统
书籍
课程
技术群
技术干货大合集↓
  • 2023年6月 / 16篇
  • 2023年5月 / 93篇
  • 2023年4月 / 90篇
  • 2023年3月 / 129篇
  • 2023年2月 / 84篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.