硬件准备
由于是在实验环境中部署KVM,所以对硬件资源的要求并不算特别高。
以下是本人的KVM主机硬件配置:
MEM: 32GB
Disk: 1.5TB
以上配置跑6~8台虚拟机(1vCPU,2GB内存)压力不大,主要是环境中的CPU配置过低(伪4核),如果按照内存和硬盘的配置,跑个十来台完全没问题。
虚拟化支持
KVM虚拟化需要CPU的硬件虚拟化加速的支持,在本环境中为Intel的CPU,使用的Intel VT技术。(该功能在有些主机里面可能需要去BIOS里面开启)
软件准备
(CentOS已预装,本篇内容不涵盖CentOS的安装过程)
IP地址: 192.168.2.10
软件包: CentOS自带yum源
关闭防火墙
关闭SELinux
检查CPU虚拟化支持
# grep -E 'svm|vmx' /proc/cpuinfo
vmx 为Intel的CPU指令集
svm 为AMD的CPU指令集
安装软件包
# yum install qemu-kvm libvirt virt-install virt-manager
在这条命令中我们安装了qemu-kvm,libvirt,virt-install,virt-manager这四个包,下面了解一下这4个包到底是干啥的。
qemu-kvm
依赖包qemu-img
libvirt
依赖包libvirt-client
依赖包libvirt-daemon
依赖包libvirt-daemon-driver-xxx
依赖包bridge-utils
virt-install
virt-manager
当然安装KVM的依赖包远不止这些,由于本人水平有限,所以仅挑了一些跟KVM架构有主要联系的软件包进行描述。
激活并启动libvirtd服务
# systemctl enable libvirtd
# systemctl start libvirtd
配置桥接网络
默认情况下所有虚拟机只能够在host内部互相通信,如果需要通过局域网访问虚拟机,需要创建一个桥接网络。
1.停止NetworkManager服务
# systemctl stop NetworkManager
该服务开启的情况下直接去修改网卡的配置文件会造成信息的不匹配而导致网卡激活不了。
2.修改以太网卡配置文件
(修改前先备份)
# cd /etc/sysconfig/network-scripts
# vi ifcfg-eno1
BOOTPROTO=static
ONBOOT=yes
BRIDGE=br0
HWADDR=b8:ae:ed:7d:9d:11
NM_CONTROLLED=no
原有的以太网络不需要配置IP地址,指定桥接的网卡设备(如br0)即可。
3.修改桥接网卡配置文件
# cd /etc/sysconfig/network-scripts
# vi ifcfg-br0
HWADDR=b8:ae:ed:7d:9d:11
BOOTPROTO=static
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.2.10
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
DNS1=202.103.24.68
NM_CONTROLLED=no
桥接网卡的需要配置IP地址,当然也可以用DHCP。需要注意的是桥接网卡br0中DEVICE的名字一定要与以太网卡eno1中BRIDGE对应。
NM_CONTROLLED参数表示该网卡是否被NetworkManager服务管理,设置为no的话就是不接管,那么之前不用停止NetworkManager服务。(未经测试)
开启主机IP地址转发
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
# sysctl -p
(这里有个小疑问就是,如果是桥接网络是否依然需要开启IP转发?)
重启网络服务
# systemctl restart network
# systemctl restart NetworkManager
验证网络
# ip a
br0: mtu 1500 qdisc noqueue state UP
inet 192.168.2.10/24 brd 192.168.2.255 scope global br0
截取了部分输出,eno1和br0网卡都处于激活状态,eno1桥接到br0,br0被分配了静态IP地址。
验证内核模块
# lsmod |grep kvm
kvm_intel
以上输出说明内核模块加载成功,其中:
kvm作为核心模块,协同QEMU实现整个虚拟化环境的正常运行。
kvm_intel作为平台(Intel)独立模块,激活KVM环境的CPU硬件虚拟化支持。
尝试连接Hypervisor
# virsh connect --name qemu:///system
# virsh list
----------------------------------------
(由于没有创建虚拟机,所以没有条目显示)
创建虚拟机
# virt-manager
使用virt-manager图形化工具很容易对KVM进行管理,但因朋友说这种居然在Linux下还使用图形界面的做法实在太弱,本人也羞于在这里一步步演示了,相信只要接触过虚拟机的朋友都能够轻松上手。
自此整个KVM的虚拟化环境已经部署完成,如果不是本人废话比较多,可能码一堆不到20行的命令就行了…
发表评论