Debian7 安装 KVM 虚拟机
KVM 是 kernel-based Virtual Machine 的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用 Linux 自身的调度器进行管理,所以相对于Xen,其性能更加优秀。KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。
一、宿主机简介,与检查是否支持虚拟化技术
Code example:
1 2 |
egrep 'vmx|svm' /proc/cpuinfo ...... #经查询,确认我的宿主机支持虚拟化技术 |
如果有输出则说明CPU支持硬件虚拟化,SVM(Secure Virtual Machine)是AMD CPU支持硬件虚拟化的标志,VMX是INTEL CPU支持硬件虚拟化的标志
二、安装所需软件包
Code example:
1 2 3 4 5 6 |
apt-get install kvm qemu-kvm bridge-utils libvirt-bin virtinst kvm:这个是KVM的核心,是一个内核模块。 qemu-kvm:KVM的设备模拟,由开源虚拟化软件QEMU中的管理工具演变而来。 bridge-utils:用于桥接网卡 libvirt-bin:虚拟机命令行管理工具 virtinst:虚拟机创建工具 |
PS:如果你的宿主机安装有图形界面,推荐你安装图形化管理工具 virt-manager,而且这个工具还支持SSH远程连接(qemu+SSH)。
Code example:
1 2 3 4 5 6 7 8 9 10 11 12 |
cat /etc/network/interfaces auto lo iface lo inet loopback auto br0 iface br0 inet static address 192.168.1.10 netmask 255.255.255.0 gateway 192.168.1.254 bridge_ports eth0 # 桥接到eth0网卡 bridge_stp off # 关闭STP协议 bridge_fd 0 # 转发延迟设置为0 |
完整的配置文件,编辑/etc/network/interfaces文件增加网络桥,增加的网络桥接口名字为br0,将主机网络接口桥接到此网络桥:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
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 manual 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开始安装之前需要提前加载块设备驱动。
缺省情况下创建的 vHost,其虚拟桌面仅仅监听 127.0.0.1,不支持远程连接。需要修改配置文件 /etc/libvirt/qemu.conf :
1 2 |
vnc_listen = “0.0.0.0″ spice_listen = “0.0.0.0″ |
到这里都基本配置好了,重新启动下宿主机吧!然后我们再正式开始创建 vHost。
Code example:
1 2 3 |
mkdir -p /home/vHost qemu-img create -f qcow2 /home/vHost/Debian.qcow2 8G 创建虚拟机 |
Code example:
1 2 3 4 5 6 7 8 9 10 11 12 |
virt-install \ --name=test \ # guest主机名称 --virt-type=kvm \ # 虚拟机类型 --hvm --ram=256 \ # 分配给guest主机256M内存 --vcpus=1 \ # 虚拟CPU数量 --network bridge=br0,model=virtio \ # 桥接方式,和设置虚拟网卡型号 --graphics vnc,port=5900 \ # 配置VNC显示及其端口 --disk path=/home/vhost/test.qcow2,bus=virtio \ # 分配磁盘文件和磁盘型号 --os-type=linux \ # 安装的guest系统类型 --cdrom=/home/backups/software/debian-7.1.0-amd64-CD-1.iso \ # 装载光盘文件 --debug # 开启调试信息 PS:阅读资料上说网卡型号设置 virtio 性能接近物理网卡。 |
Code example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
virsh virsh # list # 查看已经运行的虚拟机 ...... virsh # list --all # 查看所有虚拟机 ...... quit # 退出virsh命令模式 更多virsh命令请输入help查看,以下是我列出一些常用的: list [--all] # 查看虚拟机 start $id # 启动虚拟机 shutdown $id # 停止虚拟机 destroy $id # 强制停止虚拟机 dominfo $id # 查看虚拟机信息 undefine $id # 删除与虚拟机的所有文件,慎用 quit # 退出virsh命令模式 |
1 |
qemu-img create -f qcow2 test.img 10G |
1 2 3 4 5 6 7 8 9 10 |
Debian:/home/vhost# qemu-img info mantis.img image: mantis.img file format: qcow2 virtual size: 10G (10737418240 bytes) disk size: 2.1G cluster_size: 65536 Snapshot list: ID TAG VM SIZE DATE VM CLOCK 1 new 0 2013-07-24 12:35:29 00:00:00.000 2 20170724 0 2013-07-24 17:10:07 00:00:00.000 |
其它快照命令:
1 2 3 |
创建快照:qemu-img snapshot -c <标签> test.qcow2 恢复快照:qemu-img snapshot -a <标签> test.qcow2 删除快照:qemu-img snapshot -d <标签> test.qcow2 |
如果遇到无法启动提示“权限不足”的问题,请参考《libvirt 升级后 无法启动kvm虚拟机权限不足问题》;如果遇到VNC打开一闪而过的情况,修改一下配置,如图:
近期评论