当前位置: 首页 > news >正文

KVM安装配置

KVM   全称  Kernel-based Virtual Machine

qemu 全称  Quick Emulator 

virsh  全称  Virtual Shell

一、安装准备

1.确定机器有VT
终端输入命令:
grep vmx /proc/cpuinfo ( INTEL芯片)
grep svm  /proc/cpuinfo ( AMD芯片)
不知道芯片的生产厂商则输入:egrep  '(vmx|svm)' /proc/cpuinfo
如果flags: 里有vmx 或者svm就说明支持VT; 如果没有任何的输出,说明你的cpu不支持,将无法成功安装KVM虚拟机
2. 确保BIOS里开启VT
Intel(R) Virtualization Tech [Enabled]
如有必要,还需在BIOS中开启VT-d
3. 确保内核版本较新,支持KVM
用uname –r查看内核版本,如果在2.6.20以下的linux版本,需升级内核。
 
二、安装KVM 
1、 安装 KVM 和  virtinst (一个创建 virtual machines 的工具 )
# yum install  kvm  qemu  libvirt  python-virtinst  -y
2、重启后确认libvirtd是否正常启动
# /etc/init.d/libvirtd  restart
3、装完后记的重起,重起后检查模块是否有加载
# lsmod |grep kvm
kvm_intel              53484  0
kvm                   316506  1 kvm_intel
4、检查KVM是否成功安装,出现以下信息说明安装成功了
#  virsh list --all            ##--all关闭的也会显示
 Id         Name                         State
----------------------------------------------------
 
5、 安装桥接管理的工具
# yum  install  bridge-utils
6、安装 GUI 的管理软件
# yum  install  virt-manager
7、版本信息查询
# virsh --version  
8、修改qemu.conf配置
# vim /etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0"  修改vnc监听端口
 
参考资料:
http://lvmy.iteye.com/blog/1297409
http://www.server110.com/kvm/201404/10467.html
 
三、KVM网卡桥接设置
1、关闭 virbr0

安装完成支持虚拟化相关包后,会自动建立一个名称为virbr0的虚拟网卡,在多网卡情况下,此网卡默认与eth1或em1网卡绑定,使用的是 NAT 模式(采用 IP Masquerade)。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。所以说这个virbr0不是必须的,不用的情况下为避免混乱建议关闭。

默认的网络连接是virbr0,它的配置文件在/var/lib/libvirt/network目录下。

# virsh net-list 
Name                State      Autostart 
----------------------------------------- 
default              active    yes
# virsh net-destroy default 
Network default destroyed 
# virsh net-undefine default 
Network default has been undefined 
# service libvirtd restart 
Stopping libvirtd daemon:                                  [  OK  ] 
Starting libvirtd daemon:                                   [  OK  ]

2、另外一种方式是bridge方式,可以使虚拟机成为网络中具有独立IP的主机。创建将要使用的br0虚拟网卡。

#cd /etc/sysconfig/network-scripts/

#cp ifcfg-em1 ifcfg-br0

修改成如下效果:

#cat ifcfg-em1  (IP地址、网关、DNS1等信息移至br0)

DEVICE=em1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
BRIDGE=virbr0
HWADDR=C8:1F:66:F7:29:C8

 

#cat ifcfg-br0  (HWADDR去除)

DEVICE=br0
TYPE=Bridge 
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.100.0.3
NETMASK=255.255.255.0
GATEWAY=10.100.0.254

#service network restart

3、查看修改后的网卡桥接信息和路由信息

#brctl show

#route

配置完毕后通过ifconfig命令,em1口则不会显示地址信息,新配置的br0口代替em1口成为真机网口,装好的虚拟机em1口将与真机br0口互相通信。

四、利用virsh工具管理生成虚拟机,virt-managerRedHat共享的一个开源虚拟化管理软件,它是用Python编写的GUI程序,底层使用了Libvirt对各类Hypervisor进行管理。

# virsh list     //查看现有虚拟机信息

# virt-manager  //打开图形化管理窗口

新生成虚拟机硬盘img文件默认位置:/var/lib/libvirt/images/jia.img

新生成虚拟机的配置文件默认位置:/etc/libvirt/qemu/jia.xml   这个文件只能用virsh edit 编辑用vi无效,修改相应的文件即可重新配置虚拟机。

 

 

Virsh语法参考:

Autostart                        自动开始一个域
Create                           从一个 XML 文件创建一个域
Define                           从一个 XML 文件定义(但不开始)一个域
edit                               编辑某个域的 XML 配置
shutdown                      关闭一个域
start                             开始一个(以前定义的)非活跃的域
reboot                          重新启动一个域
suspend                        挂起一个域
resume                         重新恢复一个域
vncdisplay                     vnc 显示

  1. autostart         #自动加载指定的一个虚拟机  
  2. connect           #重新连接到hypervisor  
  3. console           #连接到客户会话  
  4. create            #从一个SML文件创建一个虚拟机  
  5. start             #开始一个非活跃的虚拟机  
  6. destroy           #删除一个虚拟机  
  7. define            #从一个XML文件定义一个虚拟机  
  8. domid             #把一个虚拟机名或UUID转换为ID  
  9. domuuid           #把一个郁闷或ID转换为UUID  
  10. dominfo           #查看虚拟机信息  
  11. domstate          #查看虚拟机状态  
  12. domblkstat        #获取虚拟机设备快状态  
  13. domifstat         #获取虚拟机网络接口状态  
  14. dumpxml           #XML中的虚拟机信息  
  15. edit              #编辑某个虚拟机的XML文件  
  16. list              #列出虚拟机  
  17. migrate           #将虚拟机迁移到另一台主机  
  18. quit              #退出非交互式终端  
  19. reboot            #重新启动一个虚拟机  
  20. resume            #重新恢复一个虚拟机  
  21. save              #把一个虚拟机的状态保存到一个文件  
  22. dump              #把一个虚拟机的内核dump到一个文件中以方便分析  
  23. shutdown          #关闭一个虚拟机  
  24. setmem            #改变内存的分配  
  25. setmaxmem         #改变最大内存限制值  
  26. suspend           #挂起一个虚拟机  
  27. vcpuinfo          #虚拟机的cpu信息  
  28. version           #显示virsh版本 

 

 

1、图形化配置:

从菜单中启动,或者运行virt-manager进入图形管理界面,比较简单,不过img的位置需要注意一下,kvm安装后会有一个默认位置,不注意的话容易占满空间。或者直接硬盘分区时单独给/var分一个区。
2、虚拟机重新配置:
虚拟机的配置文件保存在/etc/libvirt/qemu目录下,扩展名是xml。修改相应的文件即可重新配置虚拟机。
3、虚拟机备份及恢复:
备份:拷贝/etc/libvirt/qemu目录下的xml配置文件,以及xml中设置的img文件。
恢复:进入virsh,执行define 目录下的xml文件路径
virsh # define /etc/libvirt/qemu/winxp.xml
4、开机自动启动虚拟机:
[root@vfeelit qemu]# virsh autostart Winxp
5、克隆KVM虚拟机:
[root@vfeelit ~]# virt-clone -o Winxp -n winxpclong -f /var/lib/libvirt/images/winxpclong.img
(-o 原始客体的名称,-n新客户端的名称,-f作为新客户端磁盘映像的新文件)
6、虚拟机意外关机报下述错误:
[root@vfeelit qemu]# virsh start winxp
错误:开始域 winxp 失败
错误:Unable to read from monitor: Connection reset by peer
解决方法:virsh managedsave-remove winxp

 

参考资料: 

http://blog.51yip.com/linux/1633.html

http://blog.51yip.com/linux/1627.html

http://www.showerlee.com/archives/309

http://www.server110.com/kvm/201404/10467.html 

相关文章:

  • java中Random随机种子使用
  • linux启动顺序
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • Spring Cloud Sleuth使用简介
  • Android学习笔记:Handler初步
  • Corosync+Pacemaker+DRBD+MySQL 实现高可用(HA)的MySQL集群
  • Google Spanner论文翻译
  • Node.js爬虫抓取数据 -- HTML 实体编码处理办法
  • 牛客网-约数的个数
  • 变量get、set设置
  • 《C语言及程序设计》实践参考——递归函数
  • CSS空白符处理!
  • SQL判断一个数是整数还是小数
  • 第9章 Spring Boot开发者工具
  • Objective C多态
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 2017前端实习生面试总结
  • 77. Combinations
  • angular组件开发
  • co模块的前端实现
  • DOM的那些事
  • npx命令介绍
  • Python - 闭包Closure
  • select2 取值 遍历 设置默认值
  • Shell编程
  • SOFAMosn配置模型
  • windows-nginx-https-本地配置
  • 编写高质量JavaScript代码之并发
  • 人脸识别最新开发经验demo
  • 如何设计一个微型分布式架构?
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 在Mac OS X上安装 Ruby运行环境
  • ​io --- 处理流的核心工具​
  • !!java web学习笔记(一到五)
  • #单片机(TB6600驱动42步进电机)
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (三)Honghu Cloud云架构一定时调度平台
  • (未解决)macOS matplotlib 中文是方框
  • (转)jQuery 基础
  • (转)scrum常见工具列表
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .net MySql
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .net程序集学习心得
  • .NET导入Excel数据
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——
  • [20150904]exp slow.txt
  • [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)