一、KVM简介
KVM是开源软件,全称是kernel-based virtual machine(基于内核的虚拟机),是一个开源的系统虚拟化模块,基于硬件的完全虚拟化,不过需要硬件支持(如Intel VT技术或者AMD V技术)。自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。
二、KVM安装
1. 准备工作
- 关闭iptables防火墙
- BIOS开启CPU支持虚拟化(一般默认是开启的)
- 查看CPU是否支持KVM完全虚拟化
查看方法:
# cat /proc/cpuinfo | egrep --color=always 'vmx|svm' #如有信息输出则可判断支持
2. 安装虚拟化相关软件包
系统yum升级
#yum update #或是用yum upgrade
安装虚拟化和图形桌面软件包组
#yum -y groupinstall "Virtualization" "Desktop" "X Window System" "Desktop Platform"
安装KVM相关
#yum -y install kvm libvirt libvirt-python python-virtinst virt-manager qemu-kvm-tools virt-viewer virt-v2v
安装完成后重启系统
#reboot
3. 查看加载的KVM模块
# lsmod|grep kvm
kvm_intel 55656 6
kvm 345659 1 kvm_intel
# stat /dev/kvm
File: "/dev/kvm"
Size: 0 Blocks: 0 IO Block: 4096 character special file
Device: 5h/5d Inode: 10640 Links: 1 Device type: a,e8
Access: (0666/crw-rw-rw-) Uid: ( 0/ root) Gid: ( 36/ kvm)
Access: 2016-04-21 17:20:39.789558372 +0800
Modify: 2016-04-21 17:20:39.789558372 +0800
Change: 2016-04-21 17:20:39.789558372 +0800
4. 查看libvirtd运行状态
#/etc/init.d/libvirtd status
libvirtd (pid 2491) is running...
5. 配置网络桥接
备份ifcfg-eth0
#cp /etc/sysconfig/network-scripts/ifcfg-eth0 /root
创建br0
#cd /etc/sysconfig/network-scripts/
#cp ifcfg-eth0 ifcfg-br0
查看配置的内容,这里选择了自动获取IP地址,
[root@node4 network-scripts]# cat ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BRIDGE=br0
[root@node4 network-scripts]# cat ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
6.禁用网络过滤器
编辑/etc/sysctl.conf添加如下内容
#sysctl -p
...
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
7.重启网络服务
#/etc/init.d/network restart
三、安装虚拟机
在/data/vm目录下创建2个用于安装虚拟机的磁盘镜像:
#qemu-img create -f raw /data/vm/vm01.img 10G #用于图形化安装虚拟机
#qemu-img create -f qcow2 /data/vm/vm02.img 10G #用于命令行安装虚拟机
#qemu-img info /data/vm/vm01.img #查看镜像信息
1. 用virt-manager图形化安装虚拟机
打开应用程序->系统工具->虚拟系统管理器
点击创建虚拟机按钮,输入虚拟机名称,点前进,
选择挂载的CD光盘和操作系统选项,点前进,
确定虚拟机的内存和CPU,点前进,
为虚拟机启用已经建好的存储硬盘,点前进,
下一步确认虚拟机的信息,点击完成后就进入到安装系统的界面,安装系统步骤这里就不介绍了。
2. 命令行安装虚拟机的命令如下:
#virt-install --virt-type kvm -n vm02 -r 1024 --disk path=/data/vm/vm02.img,size=10,format=qcow2 -w bridge:br0 --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel6 --location=http://192.168.1.166/centos6
参数说明:
--virt-type kvm #The hypervisor to install on. Example choices are kvm, qemu, xen, or kqemu.
-n --name= #虚拟机实例名称,即虚拟机的name
-r --ram= #给虚拟机分配的内存大小,单位为M
--disk #Specifies media to use as storage for the guest
-w --network= #设置使用的网络
--graphics 确定图形展示的类型,默认就是VNC,监听在0.0.0.0
--os-type= #系统类型
--os-variant= #确定系统系列类型,以优化虚拟机的配置,--os-variant list可查看支持哪些类型值
-l --location= #确定安装介质或是说安装源,这里用了http服务做了系统的安装源,就是把光盘挂载目录链接到了网站根目录下。
命令执行后可以用VNC客户端软件访问VNC界面,就是正常安装系统的界面。
查看 vnc 启动在哪个端口
#virsh vncdisplay vm02
不用VNC,直接在命令行启动一个console用文本状态的界面安装,命令:
#virt-install --virt-type kvm -n vm03 -r 1024 --vcpus 1 --os-variant=rhel6 --accelerate -v -w bridge:br0 --disk path=/data/vm/vm03.img,size=10,format=qcow2 --location=http://192.168.1.166/centos6 --nographics -x "console=ttyS0"
virt-install 相关参数可以查看帮助,
#man virt-install
#virt-install -h
3. virsh 管理虚拟机的命令
virsh list 列出当前虚拟机列表,不包括没有启动的
virsh list --all 列出所有虚拟机列表,包含没有启动的
virsh start vm01 启动虚拟机vm01
virsh shutdown vm01 正常关闭虚拟机vm01
virsh destroy vm01 强制关闭虚拟机vm01,相当于断电式关机
virsh undefine vm01 删除虚拟机vm01,即删除对vm01的定义,vm01镜像文件并没删除
virsh reboot vm01 重启vm01
virsh autostart vm01 虚拟机随宿主机启动
virsh# 查看dominfo的子命令
• domid 查看虚拟机的标识符
• domname 查看虚拟机的名称
• domuuid 查看虚拟机的 UUI
• domstate 查看虚拟机目前的状
• dominfo 查看虚拟机的信息
virsh dumpxml vm01 > file.xml 导出虚拟机vm01的配置到一个xml文件
virsh define file.xml 从xml文件从新定义一个虚拟机实例,file.xml需要修改相关配置以避免与vm01冲突
转载于:https://blog.51cto.com/8869176/1766355