文档章节

KVM虚拟化学习总结之简介

perofu
 perofu
发布于 2014/10/30 14:53
字数 1614
阅读 6019
收藏 151

KVM虚拟化学习总结之简介

1、虚拟化分为:全虚拟化和半虚拟化,需要CPU的支持。

 

2、全虚拟化:不需要做任何配置,让用户觉得就是一台真实的服务器

 

3、半虚拟机化:需要用户配置,有点麻烦。

 

4KVM 仅仅是 Linux 内核的一个模块。管理和创建完整的 KVM 虚拟机,需要更多的辅助工具。

 

5、与Xen相比较,KVM就简化的多了。它不需要重新编译内核,也不需要对当前kernel做任何修改,它只是几个可以动态加载的.ko模块。它结构更加精简、代码量更小。所以,出错的可能性更小。并且在某些方面,性能比Xen更胜一筹。

 

6/etc/libvirt/qemu目录,存放虚拟机的配置文件。

 

7kvm的备份:拷贝/etc/libvirt/qemu目录下的xml配置文件,以及xml中设置的img文件。

 

8kvm的还原:进入virsh,执行define 目录下的xml文件路径,且确保镜像文件的存在。

virsh # define /etc/libvirt/qemu/winxp.xml

 

9KVM允许客户机过载使用(over-commit)物理资源,即给客户机分配的CPU和内存数量多于物理上实际存在的资源。

 

10CPU的过载使用,是让一个或多个客户机使用vCPU的总数量超过实际拥有的物理CPU数量,QEMU会启动更多的线程来为客户机提供服务,这些线程也是被Linux内核调度运行在物理CPU硬件上。

 

11、最推荐的做法是对多个CPU的客户机使用over-commit,比如:在拥有4个逻辑CPU的宿主机中,同时运行多于4个(如8个、16个)客户机,其中每个客户机都被分配一个vCPU。这时,如果每个宿主机的负载不很大的情况下,宿主机Linux对每个客户机的调度是非常有效的,这样的过载使用并不会带来客户机中的性能损失。

 

12最不推荐的做法是让某一个客户机的vCPU数量超过物理CPU数量。比如,在拥有4个逻辑CPU的宿主机中,同时运行一个或多个客户机,其中每个客户机的vCPU数量多于4(如16个)。这样的使用方法会带来比较明显的性能下降,其性能反而不如将客户机分配2个(或4个)vCPU,而且如果客户机中负载过重时,可能会让整个系统运行不稳定。不过,在并非100%满负载的情况下,一个(或多个)有4vCPU的客户机运行在拥有4个逻辑CPU的宿主机中并不会带来明显的性能损失。

 

13、总的来说,KVM允许CPU的过载使用,但是并不推荐在实际的生产环境(特别是负载较重的环境)中过载使用CPU。在生产环境中过载使用CPU,有必要在部署前进行严格的性能和稳定性测试。

 

14KVM中内存也是允许过载使用(over-commit)的,KVM能够让分配给客户机的内存总数大于实际可用的物理内存总数。

 

15、一般来说,有如下三种方式来实现内存的过载使用:

 

1)内存交换(swapping):用交换空间(swap space)来弥补内存的不足。

2)气球(ballooning):通过virio_balloon驱动来实现宿主机Hypervisor和客户机之间的协作来完成。

3)页共享(page sharing):通过KSMKernel Samepage Merging)合并多个客户机进程使用的相同内存页。

 

其中,第一种内存交换的方式是最成熟的(Linux中很早就开始应用),但不推荐使用虚拟内存swap

 

16KVM(模块):

     modprobe 命令加载 KVM 模块,如果用 RPM 安装 KVM 软件包,系统会在启动时自动加载模块。加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有 KVM 模块是远远不够的,因为用户无法直接控制内核模块去做事情,还必须有一个用户空间的工具。

 

17QEMU (管理工具):

    QEMU 是一个强大的虚拟化软件,它可以虚拟不同的 CPU 构架。比如说在 x86 CPU 上虚拟一个 Power CPU,并利用它编译出可运行在 Power 上的程序。

 

18QEMU-KVM (管理工具):

KVM 使用了 QEMU 的基于 x86 的部分,并稍加改造,形成可控制 KVM 内核模块的用户空间工具 QEMU-KVM。所以 Linux 发行版中分为 内核部分的 KVM 内核模块和 QEMU-KVM 工具。

 

19Libvirtvirshvirt-manager(管理工具):

    RedHat KVM 开发了更多的辅助工具,比如 libvirtlibguestfs 等。原因是 QEMU 工具效率不高,不易于使用Libvirt 是一套提供了多种语言接口的 API,为各种虚拟化工具提供一套方便、可靠的编程接口,不仅支持 KVM,而且支持 Xen 等其他虚拟机。使用 libvirt,你只需要通过 libvirt 提供的函数连接到 KVM Xen 宿主机,便可以用同样的命令控制不同的虚拟机了。Libvirt 不仅提供了 API,还自带一套基于文本的管理虚拟机的命令virsh,你可以通过使用 virsh 命令来使用 libvirt 的全部功能。但最终用户更渴望的是图形用户界面,这就是 virt-manager。它是一套用 python 编写的虚拟机管理图形界面,用户可以通过它直观地操作不同的虚拟机。Virt-manager 就是利用 libvirt API 实现的。

 

20、在 KVM 模型中,每一个虚拟机都是一个由 Linux 调度程序管理的标准进程,你可以在用户空间启动客户机操作系统。一个普通的 Linux 进程有两种运行模式:内核和用户。 KVM 增加了第三种模式:客户模式(有自己的内核和用户模式)

 

 

21、内核模块导出了一个名为 /dev/kvm 的设备,它可以启用内核的客户模式(除了传统的内核模式和用户模式)。有了 /dev/kvm 设备,VM 使自己的地址空间独立于内核或运行着的任何其他 VM 的地址空间。



© 著作权归作者所有

共有 人打赏支持
perofu
粉丝 128
博文 155
码字总数 131715
作品 0
广州
系统管理员
私信 提问
加载中

评论(20)

代码之美
代码之美

引用来自“smtih”的评论

windows7下装centos7 64bit,建议用VMware Workstation 10。
windows下肯定用VMware,我是在CentOS7上装windows 2012 R2
代码之美
代码之美

引用来自“代码之美”的评论

我在centos 7上面使用--video=vmvga选项提示vmware svga II不可用,什么原因呢

引用来自“perofu”的评论

是显卡驱动吧?

引用来自“代码之美”的评论

不是驱动,是无法创建虚拟机,似乎是centos7不支持vmvga

引用来自“perofu”的评论

你可以先创建虚拟机,在配置文件里加上video段,重启试下

引用来自“代码之美”的评论

好的,我目前是用--video=vga来创建的,回来用你方法试下

引用来自“perofu”的评论

不好意思,不玩centos 7

引用来自“代码之美”的评论

你玩的什么

引用来自“Shane_Wayne”的评论

我今天有时间的话试试CentOS7。
vmvga显卡应该是废弃了,现在主推的是qxl+spice,在windows 7上面qxl+spice安装成功,但是qxl和spice不支持windows8和windows 2012以上的系统,我看qxl和spice的git上没什么人提交代码,kvm的图形支持还是开发不积极啊
perofu
perofu

引用来自“smtih”的评论

windows7下装centos7 64bit,建议用VMware Workstation 10。
smtih
smtih
windows7下装centos7 64bit,建议用VMware Workstation 10。
Shane_Wayne
Shane_Wayne

引用来自“代码之美”的评论

我在centos 7上面使用--video=vmvga选项提示vmware svga II不可用,什么原因呢

引用来自“perofu”的评论

是显卡驱动吧?

引用来自“代码之美”的评论

不是驱动,是无法创建虚拟机,似乎是centos7不支持vmvga

引用来自“perofu”的评论

你可以先创建虚拟机,在配置文件里加上video段,重启试下

引用来自“代码之美”的评论

好的,我目前是用--video=vga来创建的,回来用你方法试下

引用来自“perofu”的评论

不好意思,不玩centos 7

引用来自“代码之美”的评论

你玩的什么
我今天有时间的话试试CentOS7。
Shane_Wayne
Shane_Wayne
全虚化和版虚化的解释并不准确。
马博文
马博文
到最后也没有说KVM全称, Kernel-based Virtual Machine,全虚拟化技术
代码之美
代码之美

引用来自“代码之美”的评论

我在centos 7上面使用--video=vmvga选项提示vmware svga II不可用,什么原因呢

引用来自“perofu”的评论

是显卡驱动吧?

引用来自“代码之美”的评论

不是驱动,是无法创建虚拟机,似乎是centos7不支持vmvga

引用来自“perofu”的评论

你可以先创建虚拟机,在配置文件里加上video段,重启试下

引用来自“代码之美”的评论

好的,我目前是用--video=vga来创建的,回来用你方法试下

引用来自“perofu”的评论

不好意思,不玩centos 7
你玩的什么
perofu
perofu

引用来自“代码之美”的评论

我在centos 7上面使用--video=vmvga选项提示vmware svga II不可用,什么原因呢

引用来自“perofu”的评论

是显卡驱动吧?

引用来自“代码之美”的评论

不是驱动,是无法创建虚拟机,似乎是centos7不支持vmvga

引用来自“perofu”的评论

你可以先创建虚拟机,在配置文件里加上video段,重启试下

引用来自“代码之美”的评论

好的,我目前是用--video=vga来创建的,回来用你方法试下
不好意思,不玩centos 7
代码之美
代码之美

引用来自“代码之美”的评论

我在centos 7上面使用--video=vmvga选项提示vmware svga II不可用,什么原因呢

引用来自“perofu”的评论

是显卡驱动吧?

引用来自“代码之美”的评论

不是驱动,是无法创建虚拟机,似乎是centos7不支持vmvga

引用来自“perofu”的评论

你可以先创建虚拟机,在配置文件里加上video段,重启试下
好的,我目前是用--video=vga来创建的,回来用你方法试下
开源虚拟化 KVM 视频教程在51CTO上线了

  《开源虚拟化KVM极速入门》视频教程,正式在51CTO上线了!   访问地址:http://edu.51cto.com/course/courseid-6815.html   由浅入深、循序渐进地掌握开源虚拟化KVM的体系结构、构建...

dbtrain
2016/08/20
0
0
KVM虚拟化学习笔记系列文章列表

kvm虚拟化学习笔记(一)之kvm虚拟化环境安装 http://koumm.blog.51cto.com/703525/1288795 kvm虚拟化学习笔记(二)之linux kvm虚拟机安装 http://koumm.blog.51cto.com/703525/1289627 kvm虚拟...

蓝狐乐队
2015/03/19
0
0
独行快、众行远,推荐几个优秀的原创公众号

对软件开发、架构设计和系统运维人员来说,在技术日新月异发展的时代,必须及时补充新的知识,储备技能,才能在职场竞争中处于优势地位。架构师更是如此,不但要追求技术深度,还要兼顾技术广...

bjweimengshu
2017/12/19
0
0
Hypervisor, KVM, QEMU总结

Hypervisor 概念 作用 种类 特点 多Hypervisor QEMU和KVM KVM QEMU QEMU-KVM libvirt Hypervisor 1.概念 Hypervisor——一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作...

simpower
2018/08/08
0
0
CentOS6.5部署KVM及实现在线迁移

CentOS6.5部署KVM及实现在线迁移 一、前言   虚拟化技术已经成为未来计算机技术的一个重要的发展方向。Linux在虚拟化方面已经有了很多种解决方案:VMware、VirtualBox、Xen和KVM!现在给大...

yangxuncai110
2018/06/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据教程(11.9)hive操作基础知识

上一篇博客分享了hive的简介和初体验,本节博主将继续分享一些hive的操作的基础知识。 DDL操作 (1)创建表 #建表语法CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name ...

em_aaron
今天
1
0
OSChina 周四乱弹 —— 我家猫真会后空翻

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @我没有抓狂 :#今天听这个# 我艇牛逼,百听不厌,太好听辣 分享 Led Zeppelin 的歌曲《Stairway To Heaven》 《Stairway To Heaven》- Led Z...

小小编辑
今天
2
0
node调用dll

先安装python2.7 安装node-gyp cnpm install node-gyp -g 新建一个Electron-vue项目(案例用Electron-vue) vue init simulatedgreg/electron-vue my-project 安装electron-rebuild cnpm ins......

Chason-洪
今天
3
0
scala学习(一)

学习Spark之前需要学习Scala。 参考学习的书籍:快学Scala

柠檬果过
今天
3
0
通俗易懂解释网络工程中的技术,如STP,HSRP等

导读 在面试时,比如被问到HSRP的主备切换时间时多久,STP几个状态的停留时间,自己知道有这些东西,但在工作中不会经常用到,就老是记不住,觉得可能还是自己基础不够牢固,知识掌握不够全面...

问题终结者
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部