KVM安装配置
KVM 全称 Kernel-based Virtual Machine
qemu 全称 Quick Emulator
virsh 全称 Virtual Shell
一、安装准备
# yum install kvm qemu libvirt python-virtinst -y
kvm 316506 1 kvm_intel
----------------------------------------------------
安装完成支持虚拟化相关包后,会自动建立一个名称为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-manager是RedHat共享的一个开源虚拟化管理软件,它是用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 显示
- autostart #自动加载指定的一个虚拟机
- connect #重新连接到hypervisor
- console #连接到客户会话
- create #从一个SML文件创建一个虚拟机
- start #开始一个非活跃的虚拟机
- destroy #删除一个虚拟机
- define #从一个XML文件定义一个虚拟机
- domid #把一个虚拟机名或UUID转换为ID
- domuuid #把一个郁闷或ID转换为UUID
- dominfo #查看虚拟机信息
- domstate #查看虚拟机状态
- domblkstat #获取虚拟机设备快状态
- domifstat #获取虚拟机网络接口状态
- dumpxml #XML中的虚拟机信息
- edit #编辑某个虚拟机的XML文件
- list #列出虚拟机
- migrate #将虚拟机迁移到另一台主机
- quit #退出非交互式终端
- reboot #重新启动一个虚拟机
- resume #重新恢复一个虚拟机
- save #把一个虚拟机的状态保存到一个文件
- dump #把一个虚拟机的内核dump到一个文件中以方便分析
- shutdown #关闭一个虚拟机
- setmem #改变内存的分配
- setmaxmem #改变最大内存限制值
- suspend #挂起一个虚拟机
- vcpuinfo #虚拟机的cpu信息
- 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