.KVM介绍
虚拟化技术已经成为未来计算机技术个重要发展方向.linux在虚拟化方面已经有了很多中解决方案:VMware,VirtualBox,Xen和KVM
KVM是个全虚拟化解决方案可以在x86架构计算机上实现虚拟化功能但KVM需要CPU中虚拟化功能支持只可在具有虚拟化支持CPU上运行即具有VT功能Intel CPU和具有AMD-V功能AMD CPU
Xen和KVM比较
Xen也是Linux下个虚拟化解决方案,也将很快被编入内核中Xen实现思路方法是,运行支持Xen功能kernel,这个kernel是工作在Xen控制的下,叫做Do0,使用这个kernel启动机器后,你可以在这个机器上使用qemu软件Software,虚拟出多个系统Xen缺点是,如果你需要更新Xen版本,你需要重新编译整个内核,而且,稍有设置不慎,系统就无法启动
相比较,KVM就简化多了它不需要重新编译内核,也不需要对当前kernel做任何修改,它只是几个可以动态加载.ko模块它结构更加精简,代码量更小,所以,出错可能性更小并且在某些方面,性能比Xen更胜筹
2.KVM使用
现在以Turbolinux 11版本为基础,介绍KVM使用思路方法
在安装的前,你需要先确认,你CPU是否支持虚拟化技术,执行:
# egrep '^flags.*(vmx|svm)' /proc/cpuinfo
如果有输出返回,则表示,你CPU支持虚拟化技术
1.KVM安装
从官方网站WebSite下载KVM源码包:http://kvm.qumranet.com/
我们使用KVM-33版本
# tar zxf kvm-33.tar.gz
# cd kvm-33
# ./configure --prefix=/usr/local/kvm-33
# make
# make
make 后,kvm模块会安装到/lib/modules/$KernelVersion/extra/目录下.其他相关文件会安装到/usr/local/kvm-33/目录下
将kvm相关目录连接到系统目录中
# ln -s /usr/local/kvm-33/bin/* /usr/bin/
# ln -s /usr/local/kvm-33/lib/* /usr/lib/
(若为x86_64系统,则执行: ln -s /usr/local/kvm-33/lib64/* /usr/lib64/)
# ln -s /usr/local/kvm-33//kvmctl.h /usr//
# ln -s /usr/local/kvm-33//linux/* /usr//linux/
# ln -s /usr/local/kvm-33/share/qemu /usr/share/
2.KVM使用
a.你需要先建立个映像文件,作为虚拟系统硬盘
# mkdir /images
# cd /images
# /usr/bin/qemu-img -f qcow gtes11.img 20G
b.创建网络配置脚本
# echo '/sbin/config $1 10.0.1.1 netmask 255.255.255.0' > /etc/qemu-up
c.加载KVM模块
Intel CPU使用:
# modprobe kvm-el
AMD CPU使用:
# modprobe kvm-amd
d.安装虚拟系统
# /usr/bin/qemu-i386 -m 512 -k en-us -M pc -hda /images/gtes11.img -cdrom /iso/zuma-SP3-rc3-6-\
disc1-20061031.iso -net nic,vlan=1,model=rtl8139,macaddr=00:00:00:00:99:01 -net tap,vlan=1,name=tap0,\
script=/etc/qemu-up -vnc localhost:1 -boot d
在另个终端执行:
# vncviewer localhost:1
参数分析:
我们为虚拟系统分配512MB内存.使用gtes11.img作为它第块硬盘,使用Turbolinux10.5disc1作为它光盘
并从光盘引导.它有块rtl8139网卡,MAC地址为:00:00:00:00:99:01,并把这个网卡和主机tap0接口连接
tap0接口使用/etc/qemu-up脚本进行化.虚拟系统输出作为个vnc服务器,绑定在主机localhost:1上
注:
1.若为x86_64系统,则使用/usr/bin/qemu-system-x86_64 代替qemu-i386
2.在64位系统上,可以安装32位和64位虚拟系统.但在32位系统上,只能安装32位虚拟系统
qemu参数介绍:
-da 映像文件: 使用映像文件作为虚拟系统第块硬盘.同样还可以使用hdb,hdc,hdd指定第2,3,4块硬盘
-drom 光盘映像文件: 使用光盘映像文件作为虚拟系统光盘
-oot [a|c|d|n]: 设置虚拟系统引导顺序,a为软驱,c为硬盘,d为光驱,n为网络
- 内存大小: 设置虚拟系统使用内存大小,单位为MB
- 语言: 设置虚拟系统键盘类型
-et nic[,vlan=n][,macaddr=addr][,model=type]
建立个虚拟网卡,并把它连接到VLANn端口上
-net tap[,vlan=n][,fd=h][,name=name][,script=file]
把主机TAP网络接口连接到VLANn端口上,并使用script指定脚本进行化
最新评论