| KVM 是 kernel-based Virtual Machine 的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用 Linux 自身的调度器进行管理,所以相对于Xen,其性能更加优秀。KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。 
 libvirt 本身不是一种工具,它是一套免费开源的支持 Linux 下主流虚拟化工具的C函数库,libvirt 起初是专门为 Xen 设计的一种管理 API,后来被扩展为可支持多个虚拟机监控程序。当前主流Linux平台上默认的虚拟化管理工具virt-manager(图形化),virt-install(命令行模式)等均基于 libvirt 开发而成。 
 
 废话一大堆啦,以下就是我在 Debian7 系统下,利用 virt-install(命令行模式)安装KVM虚拟系统的全过程记录。 
 
   
 
 一、宿主机简介,与检查是否支持虚拟化技术 
 
 我的宿主机环境如下,并支持远程 SSH 访问。 
 
   
 
 CPU:AMD A8-5600K 
 
 MEM:8G 
 
 OS:Debian x64 7.1 
 
   
 
 查询是否至此虚拟化技术 
 
   
 
 Code example: 
 
   
 
 egrep 'vmx|svm' /proc/cpuinfo 
 
 ......   #经查询,确认我的宿主机支持虚拟化技术 
 
 二、安装所需软件包 
 
 Code example: 
 
 1 
 
 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: 
 
   
 
 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 
 
 四、配置虚拟机 spice 和 VNC 的监听地址 
 
 缺省情况下创建的 vHost,其虚拟桌面仅仅监听 127.0.0.1,不支持远程连接。需要修改配置文件 /etc/libvirt/qemu.conf : 
 
   
 
 vnc_listen = “0.0.0.0″ 
 spice_listen = “0.0.0.0″ 
   
 
 到这里都基本配置好了,重新启动下宿主机吧!然后我们再正式开始创建 vHost。 
 
   
 
 五、创建 vHost 
 
 创建磁盘,不要纠结选用 raw 还是 qcow2,qcow2 支持快照功能,胜过那么一点点性能需求。 
 
   
 
 Code example: 
 
   
 
 mkdir -p /home/vHost 
 
 qemu-img create -f qcow2 /home/vHost/Debian.qcow2 8G 
 
 创建虚拟机 
 
   
 
 Code example: 
 
   
 
 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/te 
 |