kvm、xen只关注虚拟机的调度,内存管理等,外设交给qemu来管理,libvirt则可以统一管理kvm与xen,libvirt的命令是virsh
image文件在
/var/lib/libvirt/images/下 都是以vm名字开头
kvm安装:
1、支持虚拟化:egrep -o "(vmx|svm)" /proc/cpuinfo
2、安装kvm:apt-get install qemu-kvm ubuntu-vm-builder bridge-utils(配置桥接依赖)
3、启动KVM内核:modprobe kvm;modprobe kvm_intel|
modprobe kvm_amd
4、验证:kvm-ok
5、添加root至kvm组:adduser root kvm
apt-ge
qemu,libvirt安装:
1、apt-get install libvirt-bin qemu virt-manager
2、服务:service libvirt-bin start
3、启动管理界面:virt-manager
4、通过配置文件管理虚拟机
5、关闭虚拟接口(安装后会生成一个采用NAT的virbr0 的虚拟网络接口,我们需要的是桥接的虚拟网络接口,所以安装libvirt后需要关闭这个virbr0接口)
virsh net-list找到default net
virsh net-destroy default
virsh net-undefine default
service libvirt-bin restart即可
6、配置桥接接口(
我们经常所说的Bridge设备其实就是网桥设备,也就相当于想在的二层交换机,用于连接同一网段内的所有机器,所以我们的目的就是将网络设备eth0配置成br0,此时br0就成为了所谓的交换机设备,我们物理机的eth0也是连接在上面的,我们创建两个虚拟机之后,所有的虚拟机网卡均连接br0,此时查看br0上面连接的设备,brctl show 可以查看连接的设备,没添加一个vm,interfaces上就会多一个vnetN)
手工添加:
brctl addbr br0
brctl addif br0 eth0
ip addr del dev eth0 ip/mask(删除eth0上的ip)
ifconfig br0 ip/mask up(配置br0的ip)
route add default gw gateway(重新加入默认路由)
配置文件:
创建ifcfg-br0文件,修改ifcfg-eth0,添加BRIDGE=br0等(红帽系列)
在interface增加auto br0项(ubuntu)
auto br0
iface br0 inet static
bridge_ports eth0
brigde_stp off
bridge_maxwait 0
bridge_fd 0
address、netmask等注意这些参数和eth0的要相同
网络重启service network|networking restart
创建image
(创建的image相当于给一台计算机添加了一块硬盘,上面还没有操作系统)
raw格式:
qemu-img create -f raw ubuntu-12.10.raw 20G
qemu-img info
ubuntu-12.10.raw 查看格式
qcow2格式(推荐):
qemu-img create -f qcow2 ubuntu-12.10.qcow2 40G
qemu-img create -f qcow2 -o cluster_size=2M,backing_file=ubuntu-12.10.raw ubuntu-nova.qcow2 40G(
采用backing_file模式,
速度非常快,和ls命令相当,推荐backing_file采用raw格式)
一般来说qcow2格式的最后文件是raw的2到3倍,40G指的是限制了文件的最大大小,qcow2采用的是动态增长的策略,这里的
ubuntu-nova.qcow2也不能单独使用,要和ubuntu-12.10.raw(注意路径)一起使用
图形化创建虚拟机(domain):
virt-manager进入图像化界面即可
命令行创建虚拟机(domain):
1、可以自行创建一个xml,也可以在现有的xml上修改,
virsh dumpxml 虚拟机ID号 > filename.xml,注意其中的<source file>要写上已经创建好的image的路径
2、virsh define filename.xml
3、virsh start filename
4、virsh vncdisplay 虚拟机ID号,查看vnc的登陆端口,之后vncviewer ip:port登陆即可(需要安装vncviewer)
(define与undefine是指这个虚拟机是否接受libvirt管理)
5、
关闭虚拟机:virsh shutdown|destroy(强制) 虚拟机名字 (注意用virsh create的虚拟机关闭后会直接被删除)
查看虚拟机:
virsh list --all
xml描述hypervisor,image的xml描述文件默认在/etc/libvirt/qemu下
需要注意并修改的key:<name>,
<uuid>,<source file>,<mac address>
快速的大量创建ubuntu主机可以通过复制image的方法采用backing_file模式实现,不过虚拟机的主机名与网络会相同