KVM从入门到入不了门


  一直以来都使用VMware的,最近项目需要用到KVM,毕竟要追求性能,还有KVM是开源的不要钱,那摸KVM到底是个啥?

  KVM最初是由Qumranet开发的,KVM的开发人员并没有选择从底层开始新写一个Hypervisor,而是选择了基于Linux kernel,通过加载新的模块从而使linux Kernel本身变成一个Hypervisor。从Linux kernel 2.6.20开始就包含在Linux内核代码之中,所以几乎任何Linux发行版都包含KVM。

  废话不多说,建一台虚拟机试试。

1.查看系统是否支持虚拟化

egrep --color 'vmx|svm' /proc/cpuinfo
lscpu

  KVM需要CPU的VT-X或者AMD-V支持

2.安装kvm

yum install -y kvm virt-* libvirt bridge-utils qemu-img

说明: kvm:软件包中含有KVM内核模块,它在默认linux内核中提供kvm管理程序

libvirts:安装虚拟机管理工具,使用virsh等命令来管理和控制虚拟机

bridge-utils:设置网络网卡桥接

virt-* : 创建、克隆虚拟机命令,以及图形化管理工具virt-manager

qemu-img:安装qemu组件,使用qemu命令来创建磁盘等。

3.设置网络桥接

brctl show可以查看桥接状态

cat  /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge  //类型是Bridge
BOOTPROTO=static
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=X.X.X.X
PREFIX=28
GATEWAY=X.X.X.X
DNS1=X.X.X.X
cat  /etc/sysconfig/network-scripts/ifcfg-eth0 
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
UUID=4900f010-0575-4295-85b6-1c6edbc7e398
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0    //桥接到br0

  默认KVM的虚拟机是NAT的,但是我们需要虚拟机作为服务器,自然需要独立的IP地址咯。

4.启动服务

service libvirtd start

service messagebus restart

  Libvirtd是一个daemon进程,virsh、virt-manager等工具呼叫libvirtd,而Libvirtd则调用qemu-kvm操作虚拟机。

5.创建虚拟机

qemu-img create -f qcow2 -o preallocation=metadata  /kvm/test.img 30G
virt-install --name test --ram 2048 --disk path=/kvm/test.img,format=qcow2,size=30,bus=virtio --vcpus 2 --os-type linux --network bridge=br0 --graphics none --console pty,target_type=serial --location 'http://mirrors.163.com/centos/6.9/os/x86_64/' --extra-args 'console=ttyS0,115200n8 serial'

  剩下的就是centos的安装步骤,不多说。这样,我们的虚拟机就安装完成,熟练掌握virsh的命令,KVM也就开始入门了。