KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案。KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;虚机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KMV 能够使用 Linux 内核的已有功能。
1、环境准备
[root@kvm-host ~]# grep -E 'vmx|svm' /proc/cpuinfo #(查看是否支持虚拟化)
注意:intel为vmx,adm为svm
2、确定宿主机相关参数
[root@kvm-host ~]# cat /proc/cpuinfo | grep name | cut -d: -f2 | uniq -c #CPU型号
[root@kvm-host ~]# cat /proc/cpuinfo | grep physical | sort -n | uniq -c #CPU核数
2*2 即4核cpu
[root@kvm-host ~]# dmidecode | grep -A16 "Memory Device" | grep Speed | sort -n | uniq -c #主频
3、检查相关Yum源
配置好公共yum源,推荐网易yum源。
关闭selinux
[root@kvm-host~]# vi /etc/sysconfig/selinux
SELINUX=disabled
4、部署KVM
-
libvirt:操作和管理KVM虚机的虚拟化 API,使用 C 语言编写,可以由 Python,Ruby, Perl, PHP, Java 等语言调用。可以操作包括 KVM,vmware,XEN,Hyper-v, LXC 等 Hypervisor。
-
virsh:基于 libvirt 的 命令行工具 (CLI)
-
virt-Manager:基于 libvirt 的 GUI 工具
-
virt-v2v:虚机格式迁移工具
-
virt-* 工具:包括 Virt-install (创建KVM虚机的命令行工具), Virt-viewer (连接到虚机屏幕的工具),Virt-clone(虚机克隆工具),virt-top 等
-
sVirt:安全工具
5、Yum安装kvm
[root@kvm-host ~]# yum -y install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install virt-manager
[root@kvm-host ~]# lsmod | grep kvm #验证kvm模块是否添加
kvm_intel 162153 0
kvm 525259 1 kvm_intel #配置软连接,便于管理。
6、设置libvirtd服务自启
[root@kvm-host ~]# systemctl enable libvirtd
[root@kvm-host ~]# systemctl start libvirtd
[root@kvm-host ~]# virsh -c qemu:///system list #查看虚拟机环境(virsh list --all)
Id Name State
----------------------------------------------------
[root@kvm-host ~]# ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
7、创建宿主机相关目录
[root@kvm-host~]#mkdir -p /data/images #存放kvm虚拟机目录
[root@kvm-host~]#mkdir -p /data/iso # 存放ISO镜像目录
8、配置网桥
新增虚拟网桥
[root@kvm-host ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0
[root@kvm-host ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
TYPE="Bridge"
BOOTPROTO=static
DEVICE="br0"
ONBOOT="yes"
DNS1=223.5.5.5
IPADDR=172.24.8.32
PREFIX=24
GATEWAY=172.24.8.2
DELAY="0"
[root@kvm-host ~]# vi /etc/sysctl.conf #修改sysctl.conf
net.ipv4.ip_forward=1
[root@kvm-host ~]# sysctl -p /etc/sysctl.conf
[root@kvm-host ~]# systemctl restart network #重启网卡服务
查看网桥
[root@kvm-host ~]# brctl show
bridge name bridge id STP enabled interfavces
br0 8000.000c29dd8149 no eth0
virbr0 8000.525400a5f00a yes vurbr0-nic