一、硬件要求
1.处理器需求:需要一台可以运行最新linux内核的Intel处理器(含VT虚拟化技术)或AMD处理器(含SVM安全虚拟机技术的AMD处理器, 也叫AMD-V)。查询命令如下:
INTEL芯片 grep vmx /proc/cpuinfo AMD芯片 grep svm /proc/cpuinfo |
输出信息flags中如有vmx或者svm则说明系统支持kvm
2.BIOS中开启VT
Interl virtualization Tech 【Enabled】 =====bios中设置
3.内核版本在2.6.20以上。可用uname -a查看
二、安装KVM
1.安装KVM模块、virt-manager管理工具(图形化)、libvirt(虚拟机创建工具)、qemu相关模块。
yum -y install kvm virt-* bridge-utils libvirt qemu* ===配置本地yum源即可 /sbin/service libvirtd start ===启动libvirt |
2.检查是否正确安装kvm并加载kvm模块
lsmod |grep kvm ====如正确安装会有两行关于kvm的输出,如没有请检查qemu相关组件是否安装。 virsh -c qemu:///system list ===列出所有虚拟机,刚安装会显示出空列表 |
3、如果没有加载,可手动加载
modprobe kvm_intel |
4、reboot后确认随系统加载
三、网络配置
KVM安装完成后会生成一个名为virbr0的网卡,此网卡默认与本地网卡(eth0)绑定,向虚拟机提供网络功能,kvm使用virbr0作
为默认设备,因此需要将virbr0与本地网卡绑定
1、拷贝etho网卡为virbr0
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-virbr0 |
2、修改eth0配置文件
DEVICE=eth0 BOOTPROTO=static HWADDR=78:45:C4:27:29:4F UUID=45c75c9f-36a1-4653-939a-017c87b37724 ONBOOT=yes BRIDGE=virbr0 |
3、修改virbr0配置文件
DEVICE=virbr0 HWADDR=52:54:00:B6:4A:97 ONBOOT=yes TYPE=Bridge IPADDR=192.168.11.7 NETMASK=255.255.255.0 GATEWAY=192.168.11.1 DNS1=192.168.100.11 DNS2=192.168.100.12 |
修改完成后,重启网卡。service network restart
如果重启报错,可关闭NetworkManager服务
service NetworkManager stop chkconfig NetworkManager off |
默认的virbr0配置保存在/etc/libvirt/qemu/networks/default.xml文件。可使用brctl show显示已有网卡
四、修改vnc配置
vi /etc/libvirt/qemu.conf vnc_listen = "0.0.0.0" #取消前面的注释 vnc_password = "###" #设置vnc密码 |
五、使用virt-manager建立一个KVM虚拟机【方法一】
virt-manager 是基于 libvirt 的图像化虚拟机管理软件,创建KVM虚拟机最简单的方法是通过virt-manager接口。从控制台窗口启动这个工具,从root身份输入virt-manager命令,点击file菜单的"Add"选项进入创建子栏目
1.新建给虚拟机起一个名字后进入选择管理程序界面(就是选择虚拟机的形式)virt-manager显示两种虚拟化方法:Qemu/KVM或者Xen
2.选择ISO文件。可以通过网络安装服务器或者使用本地光盘映像。并选择操作系统类型和版本(如windows和linux)
3.设置虚拟机的内存容量和cpu个数。
4.设置虚拟机使用的磁盘情况。可以给虚拟机创建磁盘映像或直接使用现有的文件系统
5.设置虚拟机网络类型。默认为default:nat(即使用br0网桥)
6.按照正常安装程序安装完成即可。
六、使用virt-install命令安装KVM虚拟机【方法二】
1.安装virt-viewer模块(yum -y install virt-viewer)
2.创建虚拟机使用的文件。(KVM中每个虚拟机均使用一个物理文件保存安装的系统,模拟成磁盘,用来安装guest操作系统。此文件一般为创建好并格式化的专门虚拟文件如qcow2,也可在虚拟机建立过程中指定,由虚拟机自动生 成)
虚拟文件可用qemu-img命令先创建好,也可使用virt-manager、virt-install创建虚拟机时建立。
qemu-img create -f qcow2 win7.img 20G ====建立一个格式为qcow2,大小为20G的文件以供虚拟机使用 |
创建完成后会在当前目录生成win7.img的文件。
qemu-img info win7.img ===查看win7.img的文件信息。可查看到虚拟文件创建的大小和文件类型 |
七、建立虚拟机
完成上述的准备后,可以建立虚拟机了,这里使用virt-install命令完成本项工作。命令如下:
virt-install --name=vm-win7 --hvm --ram=512 --vcpus=2 --disk path=/usr/win7.img,size=20 --network network:default --accelerate --vnc --vncport=5906 --os-variant=win2k --cdrom /tmp/windows7.iso -c #创建win7虚拟机 |
virt-install --name=vm-centos --ram 512 --vcpus=1 --disk path=/home/vhost/vm-centos.img,size=20,bus=virtio --accelerate --cdrom /home/ISO/CentOS-6.6-x86_64-bin-DVD1.iso --vnc --vncport=5910 --vnclisten=0.0.0.0 --network bridge=virbr0,model=virtio --noautoconsole #创建centos虚拟机 |
各个参数的意义如下 :
--ame 虚拟机名称 |
virt中有复杂的命令参数,具体可使用man来查看
八、virt常用的管理虚拟机的命令
生成kvm虚拟机:virt-install 查看在运行的虚拟机:virsh list 显示虚拟机的ID号:virsh domid name 查看所有虚拟机:virsh list --all 查看kvm虚拟机配置文件:virsh dumpxml name 启动kvm虚拟机:virsh start name 显示虚拟机当前状态:virsh domstate name 停止虚拟机:virsh destroy name 删除虚拟机:virsh undefine name 根据配置文件定义虚拟机:virsh define file-name.xml 克隆虚拟机:virsh console name |
注:kvm内置有vnc机制,因此本地不需要安装vnc服务即可连接。
VNC服务使用断开了号与桌面号对应关系
桌面号为“1” ---- 端口号为5901 #连接时就输入:192.168.11.7:1 桌面号为“2” ---- 端口号为5902 桌面号为“3” ---- 端口号为5910 #连接时就输入:192.168.11.7:10 防火墙加入配置 iptables -I INPUT -p tcp --dport 5901 -j ACCEPT |
总结:
1.一个虚拟机占用一个进程,所有的虚拟机都通过qemu-kvm进行启动和管理。
2.kvm虚拟机的配置文件默认存放位置和配置文件
kvm虚拟机配置文件位置/etc/libvirt/qemu/ <---都是xml文件 kvm虚拟机文件位置:var/lib/libvirt/p_w_picpaths/ <---可以在建立虚拟机时指定 |
3.qemu不使用linux下的vncserver提供vnc服务,因此在此服务没有启动的情况下,也能通过vnc客户端连接到虚拟机。
4、设置虚拟机鼠标同步
编辑虚拟机配置文件
virsh edit vname 在devices方法内添加 <input type='mouse' bus='ps2'/> |
转载至:http://blog.csdn.net/starshine/article/details/6990599