KVM是指基于Linux内核的虚拟机(Kernel-base Virtual Machine),增加到Linux内核是Linux发展的一个重要里程碑,这也是第一个整合到Linux主线内核的虚拟化技术。在KVM模型中,每一个虚拟机都是一个由Linux调度程序管理的标准进程,你可以在用户空间启动客户机操作系统,一个普通的Linux进程有两种运行模式:内核和用户,KVM增加了第三种模式:客户模式(有自己的内核和用户模式)。
1 KVM虚拟机的管理工具
准确的来说,KVM仅仅是Linux内核的一个模块,管理和创建完整的KVM虚拟机,需要更多的辅助工具。
QEMU-KVM:在Linux系统中,首先我们可以用modprobe命令加载KVM模块,如果用RPM安装KVM软件包,系统会在启动时自动加载模块,QEMU是一个强大的虚拟软件,它可以虚拟不同的构架。
Virt-manager:尽管QEMU-KVM工具可以创建和管理KVM虚拟机,RedHat为KVM开发了更多的辅助工具,比如 libvirt libguestfs等,原因是QEMU工具效率不高,不易于使用。
1、首先检查系统是否支持kvm,有两个先决条件
a、系统是x86的,通过命令uname -a
b、CPU 支持虚拟化技术egrep 'vmx|svm' /proc/cpuinfo
如果看到有输出结果,即证明cpu 支持虚拟化。同时特别注意需要检查 BIOS 中是否开启VT,如果没有启用,虚拟机将会十分慢。
2、使用yum安装kvm
1
2
3
4
5 |
安装kvm内核 yum install -y qemu-kvm.x86_64 qemu-kvm-tools.x86_64 安装virt管理工具 yum install libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64 libvirt-java.noarch libvirt-python.x86_64 |
加载kvm 内核
1
2 |
modprobe kvm modprobe kvm-intel |
查看内核是否开启
1 |
modprobe -ls | grep kvm |
3、配置网络桥接,
进入目录 /etc/sysconfig/network-scripts,复制一份原有的ifcfg-eth0 为 ifcfg-br0
cp ifcfg-eth0 ifcfg-br0
修改ifcfg-br0,内容如下:
1
2
3
4
5
6
7
8 |
DEVICE="br0" BOOTPROTO=static ONBOOT="yes" TYPE="Bridge" IPADDR=192.168.31.60 GATEWAY=192.168.31.1 NETMASK=255.255.255.0 DEFROUTE=yes |
IPADDR、GATEWAY、NETMASK根据自己的实际情况修改。
修改 ifcfg-eth0, 内容如下:
1
2
3
4
5
6
7
8
9
10 |
DEVICE="eth0" BOOTPROTO=none NM_CONTROLLED="no" ONBOOT="yes" TYPE="Ethernet" BRIDGE="br0" HWADDR=F8:DB:88:FF:99:E3 DEFROUTE=yes IPV4_FAILURE_FATAL=yes NAME="System eth0" |
重启网络服务即可。
/etc/init.d/network restart
如果出现问题,关闭 NetworkManager 后重试。
1
2 |
chkconfig NetworkManager off service NetworkManager stop |
4、使用virt-install 工具安装 guest 系统。
a、创建硬盘映像文件
使用 qemu-img 命令创建
qemu-img create -f raw /var/lib/libvirt/images/test.img 8G
或使用 dd 命令创建
dd bs=1M count=8096 if=/dev/zero of=/var/lib/libvirt/images/test.img
qemu-img 是创建是文件格式是稀疏文件,优点是速度超快,由于是稀疏文件,性能可能会比第二种略差,通过如下命令查看详情
qemu-img info /var/lib/libvirt/images/test.img
输出为:注意其中 disk size 为 0
image: test.img
file format: raw
virtual size: 8.0G (8589934592 bytes)
disk size: 0
更多关于稀疏文件的信息,请自行搜索。
b、通过iso文件安装系统
1 |
virt-install --name=test --ram 1024 --vcpus=2 --disk path=/var/lib/libvirt/images/test.img,size=3 --accelerate --cdrom /home/CentOS-6.6-x86_64-minimal.iso --graphics vnc,listen=0.0.0.0 --network bridge=br0 --force --autostart --connect qemu:///system |
使用 vnc 客户端连接,IP 用host的ip,如果是第一个虚拟机,端口为 5900, 如果出现连不上,确认host的iptables的状态,最好是先关闭iptables。连上后就像安装系统一样一步步来安装即可。