设为首页 收藏本站
查看: 1594|回复: 0

[经验分享] KVM简介及安装

[复制链接]

尚未签到

发表于 2015-4-11 07:15:59 | 显示全部楼层 |阅读模式
  一.创建一个操作系统镜像 kvm-img create -f qcow2(或raw默认)  G
  二.在镜像中,安装一个操作系统 桥接安装: kvm -smp 4 -m 768 -drive file=/yourpath/xp.img,cache=writeback -boot d -cdrom /yourpath/zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso -vga std -soundhw es1370 -usb -usbdevice tablet -net nic,vlan=0,macaddr=08-46-84-33-69-32 -net tap,vlan=0,ifname=tap0,script=no -localtime
  
内网: kvm -smp 4 -m 768 -drive file=/yourpath/xp.img,cache=writeback -boot d -cdrom /yourpath/zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso -net nic,model=virtio,macaddr=08-46-84-33-69-32 -net user -localtime -vga std -soundhw es1370 -usb -usbdevice tablet
  三.运行系统 (内网) kvm -smp 4 -m 1024 -drive file=/yourpath/xp2.img,cache=writeback,if=virtio,boot=on -boot c -vga std -net nic,model=virtio,macaddr=08-46-84-33-69-32 -net user -localtime -soundhw es1370 -usb -usbdevice tablet -daemonize
  使用spice: kvm -smp 4 -m 1516 -drive file=/yourpath/xp2.img,cache=writeback,if=virtio -boot c -vga qxl --full-screen -net nic,model=virtio,macaddr=08-46-84-33-69-32 -net user -localtime -soundhw ac97 -usb -usbdevice tablet -spice port=3636,disable-ticketing
  /usr/bin/spicec -h localhost -p 3636














              • 半虚拟化客机驱动下载地址:












  http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers //磁盘 http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin///磁盘 http://www.linux-kvm.com/sites/default/files/vmwarevga64-kvm.iso //vmware http://www.linux-kvm.com/sites/default/files/vmwarevga32-kvm.iso //vmware http://fr.sourceforge.jp/projects/sfnet_kvm/releases/ //网络 http://sourceforge.net/projects/kvm/files/ //网络 http://spice-space.org/download.html //客机qxl视频驱动
  一些参数: 善用帮助 kvm --help kvm-img --help -m 1024 //设置虚拟系统内存1024MB,缺省内存为128M -localtime //使虚拟系统与宿主系统时间一致,最好用在网络启动后获得时间 -no-acpi //不使用acpi,原因支持不太好,安win7最好不用 -clock rtc //使用主机时钟,经实验大多不能用 -M pc //虚拟系统类型为pc -drive file=/PATCH/xp.img //指定镜像 cache=writeback //缓存设置,据说用在virtio之前会更好。writethrough(不使用缓存直接写),writeback(回写),none(无,不设置) -hda/-hdb/-hdd/-hdc “文件名” //使用“文件名”作为硬盘0/1/2/3镜像 -fda/-fdb “文件名” //使用“文件名”作为软驱磁盘0/1镜像 -smp 4 // 4个CPU -drive file=WindowsXP_x86.img,cache=writeback,boot=on //硬盘选项,虚拟磁盘是Windows7_x86.img,cache方式为writeback,可引导型磁盘。 -net tap[,vlan=n][,fd=h][,ifname=name][,script=file] //将TAP网络接口name与VLAN n进行连接,并使用网络配置脚本file进行配置.默认的网络配置脚本为/etc/qemu-ifup.如果没有指定name,OS 将会自动指定一个.fd=h可以用来指定一个已经打开的TAP主机接口的句柄.例如: -net nic,macaddr= f8:6d:08:08:f5:5k //创建网卡选项,手工指定mac地址 -net nic[,vlan=n][,macaddr=addr] //创建一个新的网卡并与VLAN n(在默认的情况下n=0)进行连接.在PC机上,NIC当前为NE2000.作为可选项的项目,MAC地址可以进行改变.如果没有指定-net选项,则会创建一个单一的NIC. -net user[,vlan=n] //使用用户模式网络堆栈,这样就不需要管理员权限来运行.如果没有指定-net选项,这将是默认的情况. 举例: -net nic,vlan=0,macaddr= f8:6d:08:08:f5:5k -net tap,vlan=0,ifname=tap0,script=no -cdrom // WindowsXP.iso 光驱,使用物理光驱为/dev/cdrom -boot d // 启动顺序。d代表光驱。 -boot c //从硬盘启动 -name kvm-win7,process=kvm-winXP //为虚拟机取名,便于识别 -vnc 127.0.0.1:0 //打开vnc远程支持 -vnc :2 //这里是通过vnc连接控制窗口,这里是在5902端口。client可用IP:2连接。 -usb //允许使用usb设备 -usbdevice tablet //启用usb设备中的tablet功能。开启该功能可使虚拟机内外的鼠标同步 -vga std //使用vga视频驱动,cirrus vmware std none -daemonize //表示kvm以后台运行 -redir tcp:3389::3389 //将虚拟机的3389端口映射为宿主机的3389端口上,这样rdesktop本机就可以进行远程桌面访问了 -full-screen //以全屏方式启动






































                                      • 半虚拟化 *********************




































  在安装了磁盘和网卡的半虚拟化驱动后,可以在-drive中加入if=virtio使用磁盘半虚拟化,在-net nic中加入model=virtio使用网卡半虚拟化驱动。






      • VM视频驱动下载 http://www.linux-kvm.com/sites/default/files/vmwarevga64-kvm.iso




  http://www.linux-kvm.com/sites/default/files/vmwarevga32-kvm.iso






      • qemu -soundhw ? 查询声音支持 -soundhw es1370
      • kvm -clock ? //查询时钟类型 有dynticks;hpet;rtc;unix
      • KVM 的 XP 虚拟机鼠标会有漂移问题 添加 -usbdevice tablet
      • 共享 主机设置好samba,客机XP中网上邻居直接可视;或在主机上搭建FTP开放写入权限,速度可达samba十倍以上。
      • 快照模式 -snapshot 意思是不更改镜像文件,启动后的所有改动均不会往镜像文件上写。临时文件存放在内存中了,具体是cached,可以通过按下Ctrl-a s来强制写回磁盘镜像文件
      • 高速网络(需要virtio驱动) -net nic,model=virtio -net user




  虚拟网络模块 网络传输速度(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) 稳定 驱动下载地址:http://sourceforge.net/projects/kvm/files/ 名字是 kvm-driver-disc 的 NETKVM-20081229.iso 具体可能有变化,使用命令: kvm -m 1024 -drive file=xp.img -cdrom /home/PATCH/NETKVM-20081229.iso -enable-kvm -net nic,model=virtio -net user 其中:-cdrom是加载光驱的意思。网络默认设置是 (-net nic -net user) 这里由于要指定virtio模块所以要把命令加上。然后自动安装驱动就行了。听说速度接近真实网卡——明显是为打造虚拟服务器配置的。以后在启动虚拟机命令后面加上-net nic,model=virtio -net user就可以了。






      • 高速IO虚拟 VirtIO paravirtual 是 Linux 虚拟机平台上统一的虚拟 IO 接口驱动,让客户机像在真实环境中一样运行。




  下载地址:http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers //viostor是磁盘的虚拟驱动。把-hda xxx.img 替换为 -drive file=/home/PATCH/virt/xp.img,if=virtio,boot=on 意思是使用virtio磁盘系统,并作为启动盘(默认是boot=off,作为附加的第二硬盘)。第一次使用的时候记得挂载viostorXXXX.img。 注:安装时用qemu-img create -f qcow2  来创建第二块硬盘,并做从盘挂载:-drive file=/home/PATCH/xp2.img,if=virtio,boot=off,进入系统后完成virtio磁盘scsi驱动安装后即可。




























                            • 镜像格式及转换 ***************






















      • “母镜像”功能




  要求,镜像格式为 qcow2 。作用:在“母镜像”的基础上,建立一个新的镜像。虚拟机操作这个新镜像时不会对“母镜像” 进行任何更改(只读“母镜像”),新镜像只保存由于操作产生的与“母镜像”的数据差异(大小很小)。 由此实现超越“快照”“还原点”的金手指功能(数量没有限制)。 命令(先cd 到你要保存镜像的位置):

$ kvm-img create -b xp.img -f qcow2 xp.test

  其中xp.img是“母镜像”(参数 -b xxx),xp.test是新镜像——只能用 qcow2 格式。 新镜像的使用:正常使用即可。
























                        • 镜像信息查询、镜像格式转换、压缩、扩容 ************


















      • “母镜像”功能




  要求,镜像格式为 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




  转换并压缩镜像: kvm-img convert -c /path/srcyouxp.img -O qcow2 /path/outyouxp.img 注意:-O是字母o的大写。 这条命令举例的意思是:把名为xp.img格式为raw的镜像转换成新镜像xp.qco格式为qcow2 其它格式"vmdk"是 VMware 3 / 4 兼容镜像格式。 fmt 指镜像格式;一般单位使用 G M b "raw" Raw disk image format (默认).该格式精简,易被多种虚拟机接受。如果你的系统支持 holes (如 linux 的 ext2 ext3 ext4? windows 的 NTFS),那么它将有效节约空间(比如你创建的磁盘是2G,虚拟系统只使用了800M,那么它实际也只占用800M的空间)。使用命令“kvm-img info 镜像文件名”,将显示实际使用的大小。linux用户还可以使用“ls -ls”命令直接查看。 "qcow2" QEMU 镜像格式, 使用最多的格式. 创建的镜像比较小(用多少就占多少),对于系统文件不支持 holes 的(比如windows系统下使用qemu)很有帮助。可进行AES加密,zlib基本压缩,并支持多种VM的快照(snapshots)。安装vista或win7最好用qcow2。 "qcow" 古老的 QEMU 镜像格式. "cow" 不能运行win32 "vmdk" VMware 3 / 4 兼容镜像格式






      • 主机不开KVM直接挂载使用raw和qcow2镜像,raw扩容




  1.挂载qcow2 sudo modprobe nbd max_part=n //加载nbd特殊设备模块,n=?自定 sudo qemu-nbd --connect=/dev/nbd0 xxx.img //转换镜像为nbd设备,可用参数-c简化 sudo mount /dev/nbd0p1 /挂载点 //以nbd设备挂载,这里多个p1目录深度 sudo umount /挂载点 //卸载 sudo qemu-nbd --disconnect /dev/nbd0 //卸载nbd设备 sudo modprobe -r nbd //移除nbd模块
  2.挂载raw sfdisk -l -uS xx.img //查看镜像或分区表,实际偏移的字节数等于512×柱面的偏移数(即起始位置的数字),然后直接mount即可sudo mount -o loop,offset=乘出来的值 挂载对象 挂载点
  3.镜像扩容 $ qemu-img convert -O raw image.qcow2 image.img $ dd if=/dev/zero of=image.img bs=1G count=0 seek=[NUMBER_OF_GB] $ qemu-img convert -O qcow2 -o cluster_size=64K image.img imageplus.qcow2 $ qemu-kvm -hda imageplus.qcow2 -m 512 -cdrom  -boot d -vga std $ fdisk /dev/sda [delete the partition, create new one occupying whole disk] $ e2fsck -f /dev/sda1 $ resize2fs /dev/sda1
  






      • 更换光盘及ISO




  按 ctrl+art+2 进入qemu-shell info block //得到光驱信息 ide1-cd0 eject ide1-cd0 //弹出光驱 change ide1-cd0 /home/PATH/xxx.iso //更换光盘镜像 按 ctrl+art+1 返回系统可看到更换后的光盘






      • 客机使用主机 usb 设备




  主机中lsusb或客机中ctrl+art+2进入kvm命令界面(qemu)info usbhost返回如下: Bus 002 Device 010: ID 05e3:0723 Genesys Logic, Inc. 即该usb设备的vid是05e3;pid是0723;bus号即是:2.10 可以用usb_add host:05e3:0723 或 usb_add host:2.10 来加载usb设备 usb_del卸载设备;info usb来查看已有哪些被加载;ctrl+art+1返回虚拟桌面 挂载USB需要sudo;否则出现Permission denied无权限提示,所以当需要使用USB设备时加入sudo kvm......
  快捷键: Ctrl-Alt-f 全屏 Ctrl-Alt-n 切换虚拟终端'n'.标准的终端映射如下: * n=1 : 目标系统显示 * n=2 : 临视器 * n=3 : 串口 Ctrl-Alt 抓取鼠标和键盘 在虚拟控制台中,我们可以使用Ctrl-Up, Ctrl-Down, Ctrl-PageUp 和 Ctrl-PageDown在屏幕中进行移动. 在模拟时,如果我们使用`-nographic'选项,我们可以使用Ctrl-a h来得到终端命令: Ctrl-a h 打印帮助信息 Ctrl-a x 退出模拟 Ctrl-a s 将磁盘信息保存入文件(如果为-snapshot) Ctrl-a b 发出中断 Ctrl-a c 在控制台与监视器进行切换 Ctrl-a Ctrl-a 发送Ctrl-a sendkey ctrl-alt-f2 在qemu-shell中发送 ctrl+alt+f2

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-55857-1-1.html 上篇帖子: KVM是定义 下篇帖子: 使用KVM操作SUN服务器无法输入竖线“|”求解?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表