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

[经验分享] squeeze+kvm

[复制链接]

尚未签到

发表于 2015-4-10 12:38:59 | 显示全部楼层 |阅读模式
  http://openwares.net/linux/debian_kvm.html
  http://openwares.net/linux/kvm_client_install.html
Debian Squeeze KVM虚拟机安装笔记(1):基础

May 11th, 2011openwaresLeave a commentGo to comments

  基于内核的虚拟机KVM(Kernel-based Virtual Machine)是linux平台上的全虚拟化解决方案
  KVM需要包含虚拟化支持的x86硬件,intel VT或者AMD-V。KVM使用修改后的QEMU作为前端工具,QEMU通过/dev/kvm设备与KVM交互。自kernel版本2.6.20 KVM随主线内核一起发行。
  前提条件(prerequisite)
  可以使用KVM的前提条件是CPU支持虚拟化技术,Intel VT或者AMD-V
$egrep ‘(svm|vmx)’ /proc/cpuinfo
如果有输出则说明CPU支持硬件虚拟化,SVM(Secure Virtual Machine)是AMD CPU支持硬件虚拟化的标志,VMX是INTEL CPU支持硬件虚拟化的标志
  KVM安装
  $sudo apt-get insall qemu-kvm
从squeeze开始KVM的包名改为qemu-kvm,kvm只是个占位dummy包
  创建vdisk
  $qemu-img create -f qcow2 client.qcow2 60G
创建一个60G的qcow2格式的虚拟磁盘文件,更多参数见man qemu-img
  桥接网络
  KVM支持很多网络类型,但是使用最方便的还是桥接网络,设置桥接网络,系统中必须存在以下三个命令
/sbin/ip
/usr/sbin/brctl
/usr/sbin/tunctl
所以需要安装一下包
$sudo apt-get install bridge-utils uml-utilities
  编辑/etc/network/interfaces文件增加网络桥,增加的网络桥接口名字为br0,将主机网络接口桥接到此网络桥
1 # This file describes the network interfaces available on your system
2 # and how to activate them. For more information, see interfaces(5).
3
4 # The loopback network interface
5 auto lo
6 iface lo inet loopback
7
8 # The primary network interface
9 #allow-hotplug eth0
10 #iface eth0 inet static
11 #   address 192.168.0.18
12 #   netmask 255.255.255.0
13 #   network 192.168.0.0
14 #   broadcast 192.168.0.255
15 #   gateway 192.168.0.1
16 #   # dns-* options are implemented by the resolvconf package, if installed
17 #   dns-nameservers 211.137.191.26
18 #   dns-search localdomain
19
20 auto bond0
21 iface bond0 inet static
22     address 192.168.0.18
23     netmask 255.255.255.0
24     network 192.168.0.0
25     broadcast 192.168.0.255
26     gateway 192.168.0.1
27     slaves eth0 eth1
28     bond-mode balance-rr
29     bond-miimon 100
30
31 auto br0
32 iface br0 inet static
33     address 192.168.0.18
34     netmask 255.255.255.0
35     network 192.168.0.0
36     broadcast 192.168.0.255
37     gateway 192.168.0.1
38     bridge_ports    bond0
39     bridge_stp  off
40     bridge_maxwait  0
41     bridge_fd   0   
42
43 #auto tap0
44 #iface tap0 inet manual
45 #up ifconfig $IFACE 0.0.0.0 up
46 #down ifconfig $IFACE down
47 #tunctl_user yourusername
  第38行 bridge_ports bond0,此处将主机的bonding接口bond0加入网络桥,如果没有网络接口聚合此处一般应为eth0
第47行将youeusername改为你登陆主机的用户名
  使用桥接网络,客户机必须使用主机的一个tap设备将客户机的网络接口连接到主机的网络桥,tap设备可以用两种方式来设置
  一种是静态方式,直接把tap设备的配置写道/etc/network/interfaces文件中,并将tap接口加入网络桥,将配置文件43-47行前的注释符#去掉,并将第38行改为如下
bridge_ports bond0 tap0
增加更多的tap接口依次类推
  另一种为动态方式,网络配置文件中不写任何tap设备的配置,而由KVM的脚本/etc/kvm/kvm-ifup来动态完成tap接口的创建,以后创建客户机是会提到怎么用。
  半虚拟化驱动Virtio
  Virtio是KVM/Linux的I/O虚拟化框架,以增强KVM的IO效率,是与其他虚拟化平台的半虚拟化(Paravirtualized)类似的东西,主要应用于磁盘设备和网络接口设备。主流的linux发行版已经默认支持Virtio,如果客户机是linux则无需其他设置,直接可以使用Virtio设备,但是如果客户机是windows,则需要在客户机安装Virtio设备驱动,甚至在windows开始安装之前需要提前加载块设备驱动。windows Virtio驱动可从Fedora下载。
  如何安装客户虚拟机下篇再议。



Debian Squeeze KVM虚拟机安装笔记(2):客户机安装

May 13th, 2011openwaresLeave a commentGo to comments

  KVM主机端设置完毕后,开始安装客户机,这里介绍两个客户机的安装,Debian Squeeze AMD64和Windows 2003 x64
  当然主机系统是64位平台,必须的。
  准备
  因为要使用半虚拟化(Paravirtualized)驱动virtio,但是当前的Debian Stable版本也就是squeeze发行版的kvm并不支持从virtio驱动器启动,所以需要更新一下seabios,从Debian官方sid源下载seabios 0.6.1.2,然后手动安装该包 seabios_0.6.1.2-2_all.deb
  $sudo dpkg -i seabios_0.6.1.2-2_all.deb
  主机系统只安装了debian基本系统(base system),没有X,因此使用VNC来远程安装客户机,如果使用windows系统,请自行下载TightVNC Viewer。
  KVM核心参数
  这是只简单介绍几个主要的参数,详细的文档请见man kvm。
  -bios file
指定虚拟机使用的BIOS,file指定BIOS文件路径
  -smp n[,cores=cores][,threads=threads][,sockets=sockets][,maxcpus=maxcpus]
模拟一个有n个cpu的smp系统,可以简单的指定n为一个数值,或者分别指定socket数,core数/socket,线程数/core
  -m megs
指定虚拟机使用的内存数量,可以使用M或G后缀
  -rtc [base=utc|localtime|date][,clock=host|vm][,driftfix=none|slew]
指定虚拟机使用的时间,linux客户机使用-rtc base=utc,clock=host,windows客户机使用-rtc base=localtime,clock=host
  -net nic,model=virtio,macaddr=52-54-00-12-34-01 -net tap,ifname=tap0
桥接网络,客户机网络接口通过tap接口桥接到主机网络,使用的tap接口名为tap0,由/etc/kvm/kvm-ifup来动态配置tap0接口。model=virtio指定虚拟机网卡使用半虚拟化驱动,如果有多个虚拟客户机同时运行则必须指定macaddr为一个独一无二的值,否则会出现mac地址冲突。如果通过主机的/etc/network/interfaces来静态配置tap接口,则此处应在-net tap接口处附加两个另外的参数script=no,downscript=no
  -drive file=debian.img,if=virtio,index=0,media=disk,format=qcow2,cache=writeback
指定客户机使用的硬盘驱动器,if=virtio指定使用半虚拟化驱动,index=0指定该硬盘为接口的第一个驱动器,media=disk指定为硬盘驱动器,如果是光盘则为media=cdrom。旧式指定第一个硬盘驱动器的参数为-hda debian.img,已经不再推荐使用。
  -drive file=debian.iso,index=2,media=cdrom或者-hdc debian.iso
指定光盘驱动器,debian.iso为使用的光驱映像文件
  -fda file
指定软盘驱动器,file为软磁盘镜像
  -no-fd-bootchk
客户机启动时不检查软盘驱动器,加速客户机启动
  -boot order=c
指定引导顺序,c为第一个硬盘驱动器,d为第一个光盘驱动器
  -vnc :0
将虚拟机的视频输出重定向到vnc端口,通过vnc viewer可以连接到虚拟机的视频输出
  -nographic
禁止kvm虚拟机的视频输出
  -daemonize
后台运行虚拟机
  安装Debian Squeeze AMD64客户机
  使用一下脚本开始安装debian客户机
  1 #!/bin/bash
2
3 sudo kvm -bios /usr/share/seabios/bios.bin -smp 16 -m 4G -rtc base=utc,clock=host       \
4     -net nic,model=virtio,macaddr=52-54-00-12-34-01 -net tap,ifname=tap0                \
5     -boot order=c -no-fd-bootchk                                                        \
6     -drive file=debian.img,if=virtio,index=0,media=disk,format=qcow2,cache=writeback    \
7     -drive file=debian.iso,index=2,media=cdrom                                          \
8     -vnc :0
  这里指定虚拟机使用的BIOS,这样安装完成后才能从virtio磁盘启动客户机,debian.iso为客户机安装光盘镜像,远程通过vnc viewer连接到主机开始安装客户机,Debian Squeeze内置支持virtio设备支持,因此正常安装即可。
  安装完毕开启sshd后,将-vnc :0参数更换为-nographic -daemonize,以后通过ssh登录即可。
  安装windows 2003 R2 x64客户机
  首先从Fedora下载virtio for windows驱动,使用如下脚本启动虚拟安装
1 #!/bin/bash
2
3 sudo kvm -bios /usr/share/seabios/bios.bin -smp 16 -m 2G -rtc base=localtime,clock=host     \
4     -boot order=d                                                                           \
5     -net nic,model=virtio,macaddr=52-54-00-12-34-02 -net tap,ifname=tap1                    \
6     -drive file=win2k3_dns.qcow2,if=virtio,index=0,media=disk,format=qcow2,cache=writeback  \
7     -drive file=windows_2003_r2_x64_cd1.iso,index=2,media=cdrom                             \
8     -fda virtio-win-1.1.16.vfd                                                              \
9     -vnc :0
  使用vnc viewer连接到主机开始安装,按F6加载virto驱动,否则会找不到硬盘驱动器,系统安装完成后将光驱换上virtio-win-1.1.16.iso安装virtio网卡驱动,打开远程桌面后将-vnc :0替换成-nographic -daemonize,然后用远程桌面管理虚拟机即可。
  
  
  =====================================
  
  http://forum.ubuntu.org.cn/viewtopic.php?f=65&t=360580
  虚拟机及网络终极方案(VBox 与 KVM 齐行)



代码: [ 下载 ] [ 隐藏 ] [ 选择 ] [ 展开 ]
使用 text 语法高亮


# 更新日志:
2012-03-06
        行文排版有所变动。取消 starbr 脚本,直接利用 ifplugd 特性在后台启动网桥,因此也就显得简洁了些。
2012-03-03
        较上次无实质性改变,仅因 ifplugd 可弹出消息而略有变动。
2012-02-27
        此次更新及以前并无记录。

格式化 0.001 秒, 使用 GeSHi 1.0.8.4  
环境:
Debian 6 squeeze
Ubuntu 兼容,其特别之处文中均有说明
壹:虚拟机安装
一、 VirtualBox


代码: [ 下载 ] [ 隐藏 ] [ 选择 ] [ 展开 ]
使用 bash 语法高亮


# ============================================================================
# 虚拟机(VirtualBox)
# http://www.virtualbox.org/wiki/Linux_Downloads
cd /tmp
wget http://download.virtualbox.org/virtualb ... e_vbox.asc
apt-key add oracle_vbox.asc
rm oracle_vbox.asc
cd -
cat >> /etc/apt/sources.list >/var/run/ifplugd.map
#}

格式化 0.011 秒, 使用 GeSHi 1.0.8.4  
eth0 和 br0 构成互斥项,启动任何一个将自动停止另外一个。 tap1 可随 br0 启动但绝不可随 br0 关闭,因为 tap1 连接着若干虚拟机,不可轻易断开。
tap1 中 address 与 netmask 纯粹摆设,因为那是 static 方式必须的字段。不能用 manual 方式,因为那将导致 vde_switch 并不与之连接。
tap0、 tap1 最后都有三行为其专门特设一物理地址,以便于管理和使用。
无论开机时是要自动启动 eth0 还是启动网桥 br0, auto 与 allow-hotplug 行都不要填写 eth0 及 br0,我们利用 ifplugd 代劳。因为网桥通过 DHCP 获取 IP 太慢了, ifplugd 可在后台工作而不会拖延开机时间。
若希望一开机就能使用网桥,则应启用“iface lo”下面有“eth0=br0”那行,上例便是如此。若希望开机时自动启动 eth0 而不要网桥,则应注释掉该行。注意,该行是一个而不是两个大于号。
若启用了“eth0=br0”行但实际上开机后见到的只是 eth0 而不是 br0,则说明“[ "`runlevel`" = "unknown" ]”那里判断有误,只要临时开启下面一行“pre-up runlevel >/root/runlevel”并重启后查看 /root/runlevel 文件,将其内容替换掉“unknown”再重启即可。
4. 设置特权:


代码: [ 下载 ] [ 隐藏 ] [ 选择 ] [ 展开 ]
使用 bash 语法高亮


# ----------------------------------------------------------------------------
# 设置特权,方便切换
visudo #{
%vde2-net localhost= /sbin/ifup br0
%vde2-net localhost= /sbin/ifup eth0
%vde2-net localhost= /sbin/ifup tap0, /sbin/ifdown tap0
%vde2-net localhost= /sbin/ifup tap1, /sbin/ifdown tap1
#}
# ----------------------------------------------------------------------------
# 入组
gpasswd -a $USERNAME vde2-net

格式化 0.007 秒, 使用 GeSHi 1.0.8.4  
br0 和 eth0 只有 ifup 而没有 ifdown,正如前面所说——互斥。
之所以对 vde2-net 组启用特权在于最小化风险范围,因为要使用 vde 的账户必然是该组成员。
5. 毕:
至此,凡是连接到 /var/run/vde2/tap0.ctl/ 的所有虚拟机都处于一内网之中,宿主机通过 tap0 加入该网络。所以宿主机和各虚拟机两两通信绝无障碍。
slirpvde 进程提供 DHCP 和 NAT 服务,以使该局域网中的机器能访问外网。当然,高级用户也可不用 slirpvde 而配置 iptable。
同理,凡是连接到 /var/run/vde2/tap1.ctl/ 的所有虚拟机都为桥接,与宿主机处于同一网络之中。
此处可连接多台虚拟机,而不再仅限一台,因为我们用了“交换机”,虚拟机接的是交换机而不是宿主机的 tap1。
正常使用虚拟机时并不需要 sudo 等提权手段。
四、何时用桥接
如果你只是想宿主机能访问虚拟机的服务或者各虚拟机之间能相互通信,那请用 NAT。
只有在你确定宿主机之外的其它物理主机需要访问你的虚拟机时才用桥接。
桥接是一种依赖外部网络的接入方式,如果外部网络出现问题(比如宿主掉线),那宿主机和虚拟机也将断掉联系。所以说没事别用桥接。
五、感慨
Debian 的 ifupdown 确实是个灵活统一而又优雅的机制。
其实整个配置并不难,关键在于你想要什么。总归一句“拓扑明而众结解”。
六、附
连接 VDE 示例,请配合相应虚拟机文档共同参考
1. Qemu / KVM:
启动参数加 -net vde,sock=...

代码:
-net nic,model=rtl8139,macaddr=52:53:00:00:08:01 -net vde,sock=/var/run/vde2/tap1.ctl  
2. VirtualBox(两种方法):
其一,命令行:


代码: [ 下载 ] [ 隐藏 ] [ 选择 ] [ 展开 ]
使用 bash 语法高亮


# 在关闭相应虚拟机(例如 vm-debian1)的情况下,执行下述命令,一次便可,日后可照常启动虚拟机
VBoxManage modifyvm vm-debian1 --nic1 generic
VBoxManage modifyvm vm-debian1 --nicgenericdrv1 VDE
VBoxManage modifyvm vm-debian1 --nicproperty1 network=/var/run/vde2/tap1.ctl

格式化 0.006 秒, 使用 GeSHi 1.0.8.4  
其二,图形界面设置:
网络设置页 -> 连接方式 -> Generic Driver -> 界面名称 -> VDE -> 高级 -> Generic Properties(属性) -> 输入“network=/var/run/vde2/tap1.ctl” -> 确定
_________________
?(2012-03-07 首发)Debian 源列表说明(第二版)
?(2012-03-06 首发)适合 WM 的截图脚本
?(2012-03-06 更新)虚拟机及网络终极方案(VBox 与 KVM 齐行)
?(2012-03-04 更新)令 ifplugd 支持网桥和弹出消息
???【 更 多 在 此 】?? ?
如何表示感谢?右边小黄手。未见?新手当努力,发满十贴即见。
最后由 自由建客 编辑于 2012-03-08 19:37,总共编辑了 35 次
  
  
  
  http://blog.sina.com.cn/s/blog_56fcfe4e0100v7tc.html

Debian Linux系统上的虚拟机KVM(完美安装windows系统)
(2011-11-13 22:24:30)
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif转载
分类: Debian-squeeze

一、KVM基本知识
    关于KVM的基础知识,在这里不想做过多的介绍,那是你自己需要去了解的,这里我只将一些参考文档罗列出来:,,,,,
二、桥接基本知识
    KVM中让guest系统同外界连通主要的一种方法。这里需要指明的是这种连接是让guest系统访问外界,也让外界访问guest,它和NAT(network address translate)是不同的。关于桥接的基本知识可以到网上查,其中有一篇有关于桥接常问问题的解答非常好。
三、在Debian Linux squezze上使用KVM
    (1)安装
         #apt-get install qemu-kvm virtinst libvirt-bin
         安装后两个的目的是使用一种统一的方法来管理虚拟机,不仅可用于管理KVM,还可以管理xen,virtualbox,openVZ等,不然的话,只需要安装第一个就可以了,但是你就要用qemu-kvm命令了,而下面的安装方法就不适合你了,但是我想说的是,一种统一的方法的出现是有它的理由的,自己琢磨去。
    (2)将你所需要运行KVM的用户加入组libvirt
         #adduser `id -un` libvirt      (这里将root用户加入libvirt组,如果要让其他用户可以运行KVM,那么用#adduser username libvirt)
    (3)virt-install命令有两个bug,一个是在使用virt-install安装过程中,因为使用的是光驱启动,如果加载了virtio硬盘驱动,那么virtio驱动的硬盘就处于离线状态,故在拷贝完文件后的重启就会遇到问题;第二个是virt-install不识别qcow2文件格式,故使用raw方式来创建硬盘。
    (4)创建硬盘
         #kvm-img create -f raw win2003.img 15G
    (5)安装win2003系统
         (一)#virt-install --connect qemu:///system --arch=x86_64 -n win2003 -r 1024 --vcpus=2 \
               --disk path=/u01/vm/disk-img/win2003.img,cache=writeback,device=disk,bus=virtio \
               --cdrom /u01/iso/win2003.iso \
               --os-type windows --os-variant win2k3 \
               --network bridge=br0,model=virtio --soundhw=ac97 --video=cirrus \
               --disk path=/u01/iso/virtio-win-1.1.16.vfd,device=floppy \
               --accelerate --hvm --vnc 0.0.0.0:1
         说明:win2003.iso这个是window2003的安装光盘,只要你有实际的安装光盘,它的制作就非常简单:#dd if=/dev/sr0 of=/u01/iso/win2003.iso。创建的虚拟机的硬盘的目录也是自己的爱好,上面的目录的构造是我喜欢把iso映像都放在一起,而虚拟机的硬盘映像也都放在一起,以及小驱映像也放在一个统一的目录中方便自己管理,个人可根据自己的习惯来安排。virtio-win-1.1.16.vfd是硬盘的virtio驱动,在安装启动时,按下F6键加载的,virtio-win-1.1.16.vfd和后面要用到的network的驱动程序自己去网上下载(virtio-win-1.1.15.iso),关于--network选项,可以去看关于桥接的内容,如果需要我会在后面的文章中写一下)。
         (二)现在,windows开始安装了,不要管它,另外开一个rxvt终端,输入:
               #virsh -c qemu:///system dumpxml win2003 > /root/win2003.xml
         (三)切换到安装界面,按F3终止windows的安装过程
         (四)修改我们刚才导出的文件win2003.xml,在的后面加上一行:
               #vi win2003.xml (修改win2003.xml文件,加入:)
               
         说明:这个修改就是因为前面所说的那个硬盘bug。
         (五)用我们刚才修改的文件来定义新的win2003虚拟机并启动它
               #virsh -c qemu:///system
               virsh# define win2003.xml
               virsh# start win2003
         (六)再开一个rxvt,输入:
               #virt-viewer -c qemu:///system win2003
         说明:开一个虚拟机的查看窗口,及时按下F6键(上面的输入和切换窗口的动作要快哦:),不然你又要按F3退出安装,重新来过,选择正确的驱动程序,win2003-32位的virtio驱动。
         (七)用这种方法安装不管是win2003,还是xp等系统不会超过20分钟,一次我只用了16分钟就装好了一个xp。
         (八)安装完之后,我们可以启动virt-manager,用来更换光驱内容,安装网络的驱动,当然了,可以用virtsh命令,但是我觉得太麻烦,有些东西还是图形的要方便一些。

运维网声明 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-55668-1-1.html 上篇帖子: QEMU KVM Libvirt手册(7): 硬件虚拟化 下篇帖子: QEMU KVM libvirt手册(4) – images
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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