实验环境基于vmware Workstation嵌套虚拟化,即Workstation开一个虚拟机,虚拟机里再开kvm虚拟机。
1、创建 一个虚拟机,1c4G,磁盘1 20GB,磁盘2 80GB,注意勾选虚拟化引擎“虚拟化Inter VT-x/EPT 或者AMD-V/RVI(V)”选项;

image.png
2、安装操作系统,最小化安装,选择“虚拟化主机”和“虚拟化平台”

image.png
3、操作系统安装完成后补充安装扩展包
#yum本地源配置参考(已执行mount /dev/cdrom /mnt)
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/
gpgcheck=0
enabled=1
安装扩展包
yum group install virtualization-client -y
yum group install gnome-desktop -y
#可选,需要远程桌面连接时安装
yum install tigervnc-server -y
4、virt-manager创建虚拟机(图形化)
在宿主机上使用virt-manager命令即可调用图形化界面管理虚拟机

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png
5、virt-install创建虚拟机(命令行)
创建硬盘和虚拟机
#创建磁盘
qemu-img create -f qcow2 /vm/vm1-disk1.qcow2 10G
#创建虚拟机
virt-install --name=vm1 \
--disk path=/vm/vm1-disk1.qcow2 \
--vcpus=1 --ram=1024 \
--cdrom=/iso/CentOS-7-x86_64-DVD-2009.iso \
--network default \
--graphics vnc
之后按照正常步骤安装操作系统即可,也可使用Kickstart无人值守安装:
virt-install --name=vm1 \
--disk path=/vm/vm1-disk1.qcow2 \
--vcpus=1 --ram=1024 \
--network default \
--graphics vnc \
--location /iso/CentOS-7-x86_64-DVD-2009.iso \
--extra-args="ks=http://192.168.84.10/mini.txt"
#无人值守不可用cdrom参数,要用location参数指定镜像(安装介质也可位于网络上),ks配置指向自件的http服务器
等待安装完成即可,http服务器搭建见我另一篇文章。

image.png
6.半虚拟化驱动virtio
为了提高内存、硬盘、网络的性能,需要支持半虚拟化,使用半虚拟化驱动virtio
查看支持:
grep -i virtio /boot/config-$(uname -r)
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTIO_VSOCKETS_COMMON=m
CONFIG_VIRTIO_BLK=m
CONFIG_SCSI_VIRTIO=m
CONFIG_VIRTIO_NET=m
CONFIG_VIRTIO_CONSOLE=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_DRM_VIRTIO_GPU=m
CONFIG_VIRTIO=m
# Virtio drivers
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_PCI_LEGACY=y
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_INPUT=m
根据输出CONFIG_VIRTIO_BLK和CONFIG_VIRTIO_NET取值判断,m:表示virtio驱动以内核模块形式存在,需要将virtio驱动添加到临时文件系统,
vim /etc/dracut.conf,添加:
#需要添加取值为m的驱动,如CONFIG_VIRTIO_NET参数取值为m,只需添加 virtio_net
add_drivers+="virtio_blk virtio_net"
生效:
dracut -f
#检查
lsinitrd /boot/initramfs-$(uname -r).img | grep virtio

image.png