分类: LINUX
2011-04-09 16:22:15
qemu是独立虚拟软件,能独立运行虚拟机(根本不需要kvm)。kqemu是该软件的加速软件。kvm并不需要qemu进行虚拟处理,只是需要它的上层管理界面进行虚拟机控制。虚拟机依旧是由kvm驱动。 所以,大家不要把概念弄错了,盲目的安装qemu和kqemu。
查看你的硬是否支持虚拟化。 命令:
egrep '(vmx|svm)' /proc/cpuinfo
要有 vmx 或 svm 的标识才行。总的说来,AMD在虚拟化方面作得更好一些。 使用intel cpu的朋友还需要进入bios进行设置——因为我的是AMD,所以设置方法不敢乱说。
打开新立得软件库,安装kvm。系统会自动安装相关的软件包,包括qemu-kvm。什么kvm-AMD 或 kvm-intel模式系统都自动处理好了。 注:过去的文章提到要设置内核模式,现在已经不需要了.
命令(先cd 到你要保存镜像的位置):
kvm-img create xxx.img 2G
由于是要安装xp精简系统,2G已经足够大了(安装下来只要700M)。xxx 代表名字,想取什么都可以。最好是连续的英文.默认格式为raw,当然你可以自己设定,比如(-f qcow2)加在 create 后面即可。(.img这个后缀是我随便编的,kvm对后缀名没有要求) 其它格式如下:
Supported formats: cow qcow vmdk cloop dmg bochs vpc vvfat qcow2 parallels nbd host_cdrom host_floppy host_device raw tftp ftps ftp https http
命令(先cd 到你要保存镜像的位置):
kvm -drive file=xxxx.img -cdrom /path/to/boot-media.iso -boot d -m 512
说明几点:/path/to/boot-media.iso 只是个举例。具体为你的系统盘镜像位置。-m 为虚拟机内存大小,单位是M默认(不写这个选项)为128M。当然,自己看着给吧。 建议如果虚拟的是xp系统,把页面缓存给关了。老版本的kvm使用-hda xxx.img参数指定镜像,如无法使用-drive,请使用-hda参数,-hda参数不带“file=”
命令(先cd 到你要保存镜像的位置):
kvm -m 1024 -drive file=xxx.img
由于默认内存是128M,所以不得不指定一下,要不连-m 1024都可以省了。此时是没有声卡的,当然也可加上声音选项。cpu默认是一颗,网络默认启动(为net-内部端口映射)(可以上网,但是主机识别不了,它也无法连接主机)。 你可以使用:
kvm -m 1024 -drive file=/xxx/xxx/xxx.img
你也可以把它作为桌面“创建启动器”的命令使用。每次轻轻一点就可使用了。
命令:
kvm --help
命令:
kvm-img --help
看看具体的选项说明,需要什么功能就在“最简单命令”后面加就是了——特别简单、功能又很多。用的满意了,可以做成“程序启动器”。或者打开gedit,把命令保存进去,把文件名改为xxx.sh。再把属性改为“可执行”,要用就点击。 比如:kvm -m 1024 -hda xxx.img -xxx xx -xxxx xxx -xxxxxx -xxx
我们希望虚拟机能和主机对一些文件夹进行共享操作。类似于vbox的共享文件夹。 首先安装 samba 。这是linux的共享功能软件,支持windows系统的访问。记住不是samba4 然后,新建一个文件夹,属性。共享选项,把所有选项开启。应用。接受系统的权限的更改。
好了,默认在虚拟机的网上邻居,就能找见了。没有?看看整个网络(侧边任务)。 简单吧,kvm早已升级了。根本不需要什么配置。
关于权限:你是否有“无法访问,权限不够……”的问题?主机无法修改共享文件“你不是该文件的创建者”? 那是因为linux的权限相当的严格,必须要放权别人才能访问、修改。 如果上级文件夹(无论哪个)不让读取(比如: 其它;文件夹访问 无),那么就会出现无法访问的情况。你要设置上级文件夹权限为(其它;文件夹访问 访问文件)就可以了,不必完全放权。
因为安全考虑,我的用户文件夹(其它;文件夹访问 无)。所以一开始就出了权限问题。我的解决办法是使用命令: sudo gnome-open /home/ 在home中再新建一个文件夹,在属性上,把创建者改为非root(改为经常使用的普通用户),组群:sambashare。权限全为:创建和删除。
经测试,外网虽然能显示共享文件夹,却无法访问——保证只有虚拟机可以访问。(我使用了ufw防火墙)
windows虚拟机在共享文件夹中创建的文件,主机是无法更改的。要设置权限: 我的电脑-打开-工具-文件夹选项-查看 把“使用简单的文件共享”选项去掉。在文件(夹)属性——安全:知道怎么弄了吧。
linux的文件夹系统权限作的十分的好。比如你把其它非受权文件夹的链接复制到共享文件夹,依然无法访问。windows那种权限的随意性,看见就想哭。
多说一点:我的电脑右键,可以把共享文件夹设置为网络硬盘。相当于移动硬盘,可以方便的安装软件,保存资料。
-snapshot write to temporary files instead of disk image files
意思是不更改镜像文件,启动后的所有改动均不会往镜像文件上写。临时文件存放在内存中了,具体是cached。 同样的功能,在vbox要独立安装软件。效率可想而知…… 在命令后面空格加上:
-snapshot
即可
虚拟网络模块的性能差异
虚拟网络模块 网络传输速度(ssh) 客户机操作系统 网络状态 rtl8029 200-300KB/s SLES10SP2 (kernel 2.6.16-60) 不稳定 e1000 4.8-5.4MB/s SLES10SP2 (kernel 2.6.16-60) 稳定 virtio 10.6-11.1MB/s SLES11 (kernel 2.6.27-19) 稳定
驱动下载地址:
名字是 kvm-driver-disc 的 NETKVM-20081229.iso
具体可能有变化,使用命令:
kvm -m 1024 -drive file=xp.img -cdrom /home/cat650/linux/kvm/NETKVM-20081229.iso -enable-kvm -net nic,model=virtio -net user
其中:-cdrom是加载光驱的意思。网络默认设置是 (-net nic -net user) 这里由于要指定virtio模块所以要把命令加上。然后自动安装驱动就行了。听说速度接近真实网卡——明显是为打造虚拟服务器配置的。 以后在启动虚拟机命令后面加上-net nic,model=virtio -net user就可以了。
VirtIO paravirtual 是 Linux 虚拟机平台上统一的虚拟 IO 接口驱动。通常主机为了让客户机像在真实环境中一样运行,需要为客户机创建各式各样的虚拟设备,如磁盘,网卡,显卡,时钟,USB 等。这些虚拟设备大大降低了客户机的性能。如果客户机不关注这些硬件设备,就可以用统一的虚拟设备代替他们,这样可以大大提高虚拟机的性能。这个统一的标准化接口在 Linux 上就是 VirtIO 。需要注意的是 VirtIO 运行在 kernel 2.6.24 以上的版本中才能发挥它的性能优势。另外 KVM 项目组也发布了 Windows 平台上的 VirtIO 驱动,这样 windows 客户机的网络性能也可以大大提高了。
下载地址:
viostor是磁盘的虚拟驱动。
带图片的参考:
命令:把-hda xxx.img 替换为-drive file=/home/cat650/virt/xp.img,if=virtio,boot=on 意思是使用virtio磁盘系统,并作为启动盘(默认是boot=off,作为附加的第二硬盘)。第一次使用的时候记得挂载viostorXXXX.img,来安装驱动。
要求,镜像格式为 qcow2 。作用:在“母镜像”的基础上,建立一个新的镜像。虚拟机操作这个新镜像时不会对“母镜像”进行任何更改(只读“母镜像”),新镜像只保存由于操作产生的与“母镜像”的数据差异(大小很小)。由此实现超越“快照”“还原点”的金手指功能(数量没有限制)。 命令(先cd 到你要保存镜像的位置):
kvm-img create -b xp.img -f qcow2 xp.test
其中xp.img是“母镜像”(参数 -b xxx),xp.test是新镜像——只能用 qcow2 格式。 新镜像的使用:正常使用即可。
能转换的格式有:raw,qcow2,qcow,cow,vmdk,cloop 如果你记不清你创建的镜像是什么格式的,可以使用命令(先cd 到你要保存镜像的位置):
kvm-img info xxx.img
关于格式的优缺点,请参看高级篇
转换命令(先cd 到你要保存镜像的位置):
kvm-img convert -f raw -O qcow2 xp.img xp.qco
注意:-O是字母o的大写。
这条命令举例的意思是:把名为xp.img格式为raw的镜像转换成新镜像xp.qco格式为qcow2 其它格式"vmdk"是 VMware 3 / 4 兼容镜像格式。
当你安装了 virtual box 然后又安装kvm,那么当你再次打开开virtual box 的时候,vmbox就会报错。
1.查看相关正在运行的mod
lsmod | grep kvm
2.停止模块运行
如果你的cpu是AMD:sudo rmmod kvm-amd
如果是Intel:sudo rmmod kvm
3.卸载模块
如果你的cpu是AMD:sudo modprobe -r kvm-amd
如果你的cpu是Intel:sudo modprobe -r kvm-intel
sudo modprobe -r kvm
4.完全卸载
sudo aptitude purge kvm qemu-kvm
sudo apt-get remove kvm qemu-kvm