|
环境:CentOS Linux release 6.0 (Final)
libvirtd (libvirt) 0.9.4
qemu-kvm-0.12.1.2-2.113.el6_0.8.x86_64 。。。
KVM可以分为两个部分:内核模块kmod-kvm(kvm-intel/kvm-amd)和qemu-kvm。前者是内核中的支持,后者是运行于用户空间的前端。
1 centos5.6 下kvm的安装
1.1 最简单的安装方法yum groupinstall KVM 默认安装libvirt,具体的安装内容可以看 http://dgiref.d-grid.de/wiki/tutor:Yum_groupinstall_KVM 可以发现并没有安装qemu-kvm
1.2 yum install kvmkmod-kvmqemukvm-qemu-img virt-viewer virt-manager libvirt libvirt-python python-virtinst
推荐第一种,第二种需要安装的所有包第一种都会安装,而且能避免依赖以及遗漏一些必须要安装的包。
2 检查kvm是否安装成功 ,成功则如下显示
lsmod | grep kvm
结果如:
kvm_intel 85256 0
kvm 224928 2 ksm,kvm_intel
可以在/lib/modules/2.6.18-238.12.1.el5/weak-updates/kmod-kvm找到如下文件:
ksm.ko kvm-amd.ko kvm-intel.ko kvm.ko
3 源码安装qemu-kvm,目的是使用qemu-system-x86_64等命令行创建和管理虚拟机,其实可以用libvirt提供的命令行virsh工具就能够对虚拟机进行管理,这里只是给出这种方式。
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.4.tar.bz2
tar xzvf qemu-kvm-0.14.0.tar.gz
cd qemu-kvm-0.14.0
./configure
make
make install
可以在/usr/local/bin目录下找到如下内容:
qemu-img qemu-io qemu-nbd qemu-system-x86_64 ulockmgr_server
4 虚拟机的网络配置,选择bridge模式
使用桥接模式,以centos上运行ubuntu虚拟机的网络配置为例
cd /etc/sysconfig/network-scripts
cp ifcfg-eth0 ifcfg-br0 //复制后修改
修改 ifcfg-eth0为如下内容
DEVICE=eth0
HWADDR=00:E0:81:D2:7A:F1
ONBOOT=yes
BRIDGE=br0
修改ifcfg-br0为如下内容
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=10.88.0.27
NETMASK=255.255.255.0
GATEWAY=10.88.0.1
ONBOOT=yes
重启网络服务 service network restart
Check如下
ifconfig -a |grep Ethernet
br0 Link encap:Ethernet HWaddr 00:E0:81:D2:7A:F1
eth0 Link encap:Ethernet HWaddr 00:E0:81:D2:7A:F1
eth1 Link encap:Ethernet HWaddr 00:E0:81:D2:7A:F2
virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
vnet0 Link encap:Ethernet HWaddr FE:16:3E:5D:C6:0A
5 虚拟机的创建和管理
5.1 使用xml格式创建虚拟机
<domain type=’kvm’>
<name>ubuntu_kvm_test01</name>
<uuid>85badf15-244d-4719-a2da-8c3de0641352</uuid>
<memory>1677721</memory>
<currentMemory>1677721</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch=’x86_64′ machine=’pc’>hvm</type>
<boot dev=’cdrom’/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset=’localtime’/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>destroy</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type=’file’ device=’disk’>
<source file=’/home/guodd/image/ubuntu_kvm_test01.img’/>
<target dev=’hda’ bus=’ide’/>
</disk>
<disk type=’file’ device=’cdrom’>
<source file=’/home/guodd/image/ubuntu-10.04.2-server-amd64.iso’/>
<target dev=’hdb’ bus=’ide’/>
<readonly/>
</disk>
/*<interface type=’bridge’>
<source bridge=’br0′/>
</interface>*/多余的网卡
<interface type=’bridge’>
<source bridge=’br0′/>
<target dev=’vnet0′/>
<mac address=”00:16:3e:5d:00:00″/>
</interface> <input type=’mouse’ bus=’ps2′/>
<graphics type=’vnc’ port=’-1′ autoport=’yes’ keymap=’en-us’/>
</devices>
</domain>
制作完镜像修改<boot dev=’hd’/>,删除虚拟机后重新创建并启动。
5.2 virsh 命令使用的注意点
a. virsh list 与xm list的不同 :virsh list 只显示运行态的虚拟机,如果需要查看所有虚拟机的信息用virsh list –all
b. 使用virsh –connect qemu:///system进行virsh命令行操作模式,不用在每次使用命令时输入virsh,如virsh@ vncdisplay test01 ,使用quit退出,通过 virsh 命令行工具来创建、启动、关闭、重启虚拟机,而且可以进入控制台管理虚拟机了,就和在 Xen中使用 xm 一样
6 kvm虚拟机的vnc配置
首先确保服务器端安装了vncserver
修改 /etc/libvirt/qemu.conf
…
vnc_listen = “0.0.0.0″
vnc_password = “netbank”
…
下一步的工作,尝试升级内核,命令行创建虚拟机的各种参数的使用方法
7 格式转换
qemu-img convert -O raw ubuntu-test.vhd test.img
启动libvirt失败
error: Failed to reconnect to the hypervisor
error: no valid connection
error: Failed to connect socket to ‘/usr/local/var/run/libvirt/libvirt-sock’: No such file or directory
ln -s /var/run/libvirt/libvirt-sock /usr/local/var/run/libvirt/libvirt-sock
http://blog.sina.com.cn/s/blog_457bb6010100ntz1.html
Centos6.0 安装kvm
1 yum install kvm
qemu-kvm x86_64 2:0.12.1.2-2.113.el6_0.8 updates 976 k
Installing for dependencies:
cairo-spice x86_64 1.8.7.1-4.el6 base 379 k
celt051 x86_64 0.5.1.3-0.el6 base 50 k
ffmpeg-spice-libs x86_64 0.4.9-0.15.5spice.20080908.el6 base 281 k
gpxe-roms-qemu noarch 0.9.7-6.3.el6_0.1 updates 218 k
pixman-spice x86_64 0.13.3-5.el6 base 105 k
qemu-img x86_64 2:0.12.1.2-2.113.el6_0.8 updates 215 k
seabios x86_64 0.5.1-3.el6 base 64 k
spice-server x86_64 0.4.2-15.el6 base 191 k
vgabios noarch 0.6b-3.4.el6 base 40 k
2 yum install libvirt libvirt-python
Installing:
libvirt x86_64 0.8.1-27.el6_0.6 updates 847 k
Installing for dependencies:
augeas-libs x86_64 0.7.2-3.el6 base 289 k
ebtables x86_64 2.0.9-5.el6 base 94 k
iscsi-initiator-utils x86_64 6.2.0.872-10.el6 base 560 k
libvirt-client x86_64 0.8.1-27.el6_0.6 updates 1.9 M
lzo x86_64 2.03-3.1.el6 base 55 k
lzop x86_64 1.02-0.9.rc1.el6 base 50 k
nc x86_64 1.84-22.el6 base 57 k
netcf-libs x86_64 0.1.6-4.el6 base 48 k
numactl x86_64 2.0.3-9.el6 base 55 k
yajl x86_64 1.0.7-3.el6 base 27 k
|
|