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

[经验分享] kvm入门笔记

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-10 11:15:40 | 显示全部楼层 |阅读模式
  
        公司的服务器管理的不是很好,几个人用常常出乱七八糟的问题。我觉得要是使用虚拟机的话会有很多好处,一方面可以做到彻底隔离,另一方面也不会影响到主机的环境,硬盘镜像还可以很方便的克隆。据说kvm可以达到主机70%到80%的效率,就想先在自己的电脑上试试,时机成熟了再和领导建议吧。
        Kernel-based Virtual Machine,听上去很牛逼的样子,是不是比virtualbox或vmware要更快更省资源呢?
在网上看了个教程,是用kvm XXX命令来做的。我的笔记本装的是fedora 15,没搜到kvm这个软件包……嗯,就把虚拟化的软件包组全装了吧……
        然后发现直接有图形化的虚拟机管理工具……功能还挺齐全的,试试。
        装xp,擦,那速度可不是一般的慢啊,deepin的精简xp要装差不多1个小时……
        好,上网查资料,原来kvm有自己的io驱动,virtio。于是按照前辈们的指点下载了virtio-win-0.1-mm34.iso和virtio-win-1.1.16.vfd。vfd是软盘镜像,iso是光盘镜像。可是要怎么用啊?我打开后里面没有可执行的文件啊?于是参考了下面的文章:
http://www.cnblogs.com/chinacloud/archive/2010/08/16/1800500.html
        原来要在装xp开始前按f6来安装scsi驱动……这让我想起了以前,有个同学说电脑的硬盘驱动装不上,我和其他人还狠狠地鄙视了他一下:硬盘有驱动么?汗颜……
        照前辈说的做,果然速度有极大提高,这回xp只要20分钟就装好了。很好,除了一进入桌面就会蓝屏……我也不知道怎么搞的啊,总是蓝,几次都是这样……唉,还是换个教程看看吧……
http://www.kvm123.com/linux-kvm-2003-guest-virtio.html#comment-113
        于是放弃图形管理工具,卸载整个虚拟化软件组,只安装个qemu-kvm就行了。仿照他的做法:
qemu-img create -f qcow2 winxp.qcow2 10g
        制作虚拟磁盘,格式用qcow2,写时拷贝(copy on write),这样虚拟盘就会根据需要扩展,而不是像raw那样直接把空间给吃了。大小指定为10g。启动命令如下:
qemu-kvm -m 512 -localtime -M pc -smp 2 -drive file=winxp.qcow2,cache=writeback,if=virtio -cdrom xp.iso -net nic,model=virtio -net user-usb -usbdevice tablet
        内存512m;使用主机时间;模拟为pc机;使用2个处理器;硬盘镜像为winxp.qcow2,cache按照教程写,接口使用virtio模块;光盘是xp.iso的xp安装盘;网络照着教程写,使用virtio模块;usb这样写可以让鼠标在虚拟机与主机间自由切换
          安装完成后进入系统,并安装网卡的驱动。然后用qemu-img create -b winxp.qcow2 -f qconw win.ovl 10g这个命令创建虚拟盘的快照,然后把启动命令指定硬盘的名字换成这个快照文件的名字。这样一来,就算装错东西也不怕了~
          然后加入两个设备,命令-device vmware-svga -soundhw ac97,一个是vmware的显卡,目的是使用他的显卡驱动,另一个是声卡,这样就能发出声音了。可用命令 qemu-kvm -device ?看能够加入哪些虚拟设备。嗯,如果英语没问题的话,直接看man qemu-kvm的说明,或上网查查qemu的命令吧,那个是最权威的。(当然搜索网页是最省力的~)
          加了声卡之后进入系统,会被要求安装virtio的scsi驱动。这个一开始装过了的啊?!既然它叫我装就装呗。
          好,重启之后蓝屏……
          反复试了好多次啊,原来声卡必须在装系统之前就安上去才行……
          搞定之后,进入系统,并安装vmwarevga32-kvm.iso里的显卡驱动。系统貌似快了一点(也许是心理作用)。
          如果要插入usb设备的话,-usbdevice host:设备号:设备号。这两个设备号的差别我忘了,是在主机用lsusb看到的,填进去就是了。
          然后看到了这篇经典的帖子:
  http://forum.ubuntu.org.cn/viewtopic.php?t=154792

          基本上会遇到的问题,里面都提到了。既然他说用lvm分区速度会更快一点,那就试试吧,反正也可以学学lvm命令。
          由于装系统时沿用了装windows的习惯,lvm的几个分区把磁盘全部占满了,没办法,只能缩减lv_home了:
  lvreduce -L 100g /dev/vg_bingbowan/lv_home
          这个命令一下去,home里的文件都不能用了有木有!!!重启直接进故障紧急修复的命令行界面了有木有!!
          我擦,网上那些不负责任的人,你的教程多写几个字会屎啊?这个命令不能直接用的啊……
          首先,应该收缩文件系统,然后再收缩lvm逻辑卷……
          于是找到了这个教程,还是老外写的东西比较严谨:
  https://wiki.archlinux.org/index.php/LVM_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

          还好,东西作了备份,恢复也很简单:重做lv_home,格式化,并在命令行下把里面的用户目录的归属者设为用户自己(不然会弹出个xx对话框让你不能登录)。
          继续搞虚拟机,制作一个逻辑卷lv_xp,启动命令修改为-drive file=/dev/vg_bingbowan/lv_xp,cache=none,if=virtio,boot=on,安装系统,制作磁盘快照(lvm的快照,这样以后就可以用lvconvert --merge 合并快照到原始镜像。合并结束后快照被删除。要先用lvchange -an把原始盘设为不活跃,再merge,再设为活跃lvchange-ay)
  
          搞完之后没感觉到速度有啥提升……还是搞网络去吧……
          按照上面设置,虚拟机可以上外网,但是不能和主机通信。这怎么行!!前面链接的文章提到怎么做,但是,但是——无线网不能桥接啊!!比较新的内核已经不支持把wlan弄到网桥里了,可我现在只能上wlan……
          不过不要紧,可以让主机架个nat服务嘛~
          首先按照教程里的,内核编译要选上tun设备选项,然后tunctl创建一个tap0设备,然后虚拟机启动参数改为-net tap,ifname=tap0,script=no -net nic,model=virtio,然后ifconfig tap0 192.168.1.3 up,然后虚拟机的ip设为192.168.1.33,网关设为tap0的地址。
          然后参照这位前辈的做法:
  http://felipec.wordpress.com/2009/12/27/setting-up-qemu-with-a-nat/

          输入命令:
  echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -I FORWARD 1 -i tap0 -j ACCEPT
iptables -I FORWARD 1 -o tap0 -m state --state RELATED,ESTABLISHED -j ACCEPT

      于是虚拟机能够和主机及外网通信了(我自己搞了半天没成功,还得抄别人的,学艺不精啊……)。另外,nat服务还有一个很好的应用:共享无线网~
      我现在用的是某运营商的wlan,它计费的原理,大致是这样:
  1.用户连上wlan路由器,浏览网页。wlan发现用户的ip未登记,于是把网页定向到登录界面
  2.用户输入用户名密码注册
  3.服务器核对用户名密码,成功后将这个ip登记为有效。同时,登录页面弹出一个独立窗口,告诉用户登录成功,而且不能关闭窗口才能正常上网
  4.用户点击窗口里的下线按钮或关闭窗口,服务器注销用户的ip
      其实那个独立窗口没有想象的那么复杂,我电脑意外重启后没有它照样可以上网。监控了一下网络流量,平时它也没与服务器有什么交互。实际上,wlan是根据ip是否活跃来判断用户是否在线的,只有在按下下线按钮或关闭那个窗口时,它才会向后台发送下线请求。这就是所谓的浏览器认证。
      嗯,然后我用网线把自己的路由器与笔记本相连,把有线网卡设为nat的入口端,无线网卡设为出口端,路由器开放无线网。其他电脑连上我的路由器后,把网关设为我笔记本有线网卡的地址。只要我登录,他们就都可以上网了~
      nat是所谓的透明网关嘛,把内网主机ip包的源地址改成了服务器地址,内网机器对外网是透明的~
      继续搞kvm。为了传文件,就在主机搭了个ftp服务器。配置本身不是很复杂,但是怎么搞都不通……后来才发现防火墙默认不信任ftp接口,selinux默认不允许ftp访问,需要把allow_ftpd_full_access值设为1,以及匿名用户的根目录不可写……
     搞到这里,虚拟机可以用了,不过说实话有点失望啊,在里面解压个文件,速度远远不如vbox里的机器。当然,这可能是因为kvm的显示系统不够好,毕竟它的目的是企业级的虚拟服务,在服务器上应该还是很有优势的。虽然用libvirt工具可以进行管理,比如suspend功能,但是……我已经丧失兴趣了,个人用还是vbox吧,服务器应该是用不着suspend的。
  最后,附上相关工具的下载地址:
  http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/

  http://www.linux-kvm.com/content/using-vmware-vga-kvm-windows-guests

  以及最终的启动命令:
  qemu-kvm \
-m 512 \
-localtime \
-M pc \
-smp 2 \
-drive file=/dev/vg_bingbowan/lv_xp,cache=none,if=virtio,boot=on \
-fda virtio-win-1.1.16.vfd \
-cdrom virtio-win-0.1-mm34.iso \
-net tap,ifname=tap0,script=no \
-net nic,model=virtio \
-usb -usbdevice tablet \
-soundhw ac97 \
-vga vmware

  

  低版本的qemu有kqemu加速模块,用于没有kvm的系统,比如windows
         版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 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-125029-1-1.html 上篇帖子: KVM 虚拟机管理,创建 下篇帖子: 开源云平台 CloudStack 4.1.0 安装详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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