简介
虚拟化分为两种类型:1)Hypervisor直接运行在硬件上(kvm) 2)ypervisor运行在OS上 (vmware)
KVM (全称是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架构和处理器规范模块。
使用 KVM 可允许多个包括 Linux 和 Windows 每个虚拟机有私有的硬件,包括网卡、磁盘以及图形适配卡等
前期准备
配置CPU
设置虚拟机的处理器个数(至少为两个),开启处理器中的虚拟化 Intel VT-x/EPT或AMD-V/RVI(V)选项
启动虚拟机并查看机器是否支持KVM
#当出现vmx或者svm的字样即说明CPU支持KVM
[root@localhost ~]# egrep '(vmx|svm)' /proc/cpuinfo
配置网卡
宿主机需要配置一个使用桥接模式的网卡,因此在虚拟机上部署了两块网卡,分别为NAT模式和桥接模式
获取镜像
从官网上下载Centos6的安装镜像
安装部署KVM
#安装kvm及其依赖
[root@localhost ~]# yum install qemu-kvm libvirt virt-install bridge-utils -y
#查看安装情况
[root@localhost ~]# lsmod | grep kvm
kvm_intel 188688 0
kvm 636969 1 kvm_intel
irqbypass 13503 1 kvm
#启动服务
[root@localhost ~]# systemctl start libvirtd
配置网络信息
设置桥接模式的网卡桥接到br0上
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens37
BOTPROTO=none
DEVICE=ens37
NM_CONTROLLED=no
ONBOOT=yes
BRIDGE=br0
配置br0网卡信息
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
BOOTPROTO=static
DEVICE=br0
TYPE=Bridge
NM_CONTROLLED=no
IPADDR=192.168.1.109 #设置IP地址
GATEWAY=192.168.1.1 #设置网关
DNS1=4.2.2.2 #设置DNS服务器
DNS2=8.8.8.8
#重启网络
[root@localhost ~]# systemctl restart network
命令行部署KVM虚拟机
#创建KVM虚拟机目录
#kvm文件夹用于放置虚拟机文件
#iso文件夹用于存放KVM虚拟机的安装镜像
[root@localhost ~]# mkdir -p /mykvm/{iso,kvm}
#安装KVM虚拟机
[root@localhost ~]# virt-install --name=mycentos --memory=512,maxmemory=1024 --vcpus=1,maxvcpus=1 --os-type=linux --os-variant=rhel6 --location=/mykvm/iso/CentOS-6.10-x86_64-bin-DVD1.iso --disk path=/mykvm/kvm/mycentos.img,size=10 --bridge=br0 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"
参数说明
--name:虚拟机的名称
--memory:分配给虚拟机的内存资源大小 maxmemory:最大内存资源大小
--vcpus:分配给虚拟机的CPU核心数量 maxvcpus:最大CPU核心数量
--os-type:虚拟机安装的操作系统类型
--os-variant:系统的发行版本
--location:镜像文件所在的路径
--disk path:虚拟硬盘所存放的路径及名称,size:硬盘的可用大小,单位是G
--bridge:使用的桥接网卡
--graphics:是否开启图形
--console:定义终端的属性,target_type:是定义终端的类型
--extra-args:定义终端额外的参数
根据引导指示进行虚拟机的安装和配置
常用命令
#查看虚拟机状态
[root@localhost ~]# virsh list --all
#开启虚拟机
[root@localhost ~]# virsh start mycentos
#关闭虚拟机
[root@localhost ~]# virsh shutdown mycentos
#进入虚拟机
[root@localhost ~]# virsh console mycentos
#退出虚拟机
ctrl + ]
可视化部署KVM虚拟机
安装virt-manager
[root@localhost ~]# yum install virt-manager -y
#启动virt-manager
[root@localhost ~]# virt-manager
选择创建新的虚拟机
选择安装虚拟机的方式及iso位置
基础配置
开始安装并按照提示进行虚拟机的配置和安装
配置KVM虚拟机网络
#配置eth0网卡信息
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=52:54:00:41:ED:6B
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR="192.168.1.110"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
DNS1="192.168.1.1"
#重启网络
[root@localhost ~]# service network restart
测试验证
#连接宿主机
[root@localhost ~]# ping 192.168.1.109 -c 2
PING 192.168.1.109 (192.168.1.109) 56(84) bytes of data.
64 bytes from 192.168.1.109: icmp_seq=1 ttl=64 time=0.202 ms
64 bytes from 192.168.1.109: icmp_seq=2 ttl=64 time=0.706 ms
--- 192.168.1.109 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1019ms
rtt min/avg/max/mdev = 0.202/0.454/0.706/0.252 ms
#连接百度
[root@localhost ~]# ping www.baidu.com -c 2
PING www.a.shifen.com (182.61.200.6) 56(84) bytes of data.
64 bytes from 182.61.200.6: icmp_seq=1 ttl=50 time=55.9 ms
64 bytes from 182.61.200.6: icmp_seq=2 ttl=50 time=52.2 ms
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1060ms
rtt min/avg/max/mdev = 52.293/54.102/55.912/1.824 ms
#自此网络配置成功
自此KVM虚拟机部署成功