虚拟化技术——CentOS 7.8 安装部署 KVM 虚拟机及基本操作
一、实验环境
VMware Workstation 16 Pro
MobaXterm Personal 20.2
CentOS-7-x86_64-DVD-2003.iso
cn_windows_server_2008_r2.iso
virtio-win-0.1.141_amd64.man
二、安装 CentOS 7.8 创建本地 yum 源
# 创建本地仓库
mkdir /repo /mnt/repo
# 挂载系统镜像
mount /dev/cdrom /mnt/repo
# 复制系统镜像的所有文件
cp -R /mnt/repo/* /repo
# 修改 yum 源配置文件
vim /etc/yum.repo.d/CentOS-Base.repo
# 写入以下内容
[base]
name=CentOS-$releasever - Base
baseurl=file:///repo
gpgcheck=0
enabled=1
# 清空 yum 缓存
yum clean all
# 建立 yum 缓存
yum makecache
三、安装及启动 KVM
# 安装 kvm 基本软件包
yum install -y virt-* qemu-kvm libvirt bridge-utils qemu-kvm-tools rsync
# 查看 kvm 服务状态
systemctl status libvirtd
# 启动 kvm 服务
systemctl start libvirtd
# 停止 kvm 服务
systemctl stop libvirtd
# 开机自动启动 kvm 服务
systemctl enable libvirtd
四、在 KVM 中安装 Windows Server 2008 虚拟机
# 安装虚拟机
virt-install \
--connect qemu:///system \
--name=winserver2008 \
--os-variant=winxp \
--ram=1024 \
--vcpus=1 \
--disk path=/var/lib/libvirt/images/winserver2008.qcow2,format=qcow2,size=10,bus=virtio \
--accelerate \
--vnc \
--vncport=5909 \
--vnclisten=0.0.0.0 \
--noautoconsole \
--disk path=/tmp/cn_windows_server_2008_r2.iso,device=cdrom \
--disk path=/tmp/virtio-win-0.1.141_amd64.man,device=floppy,perms=rw
# 关闭防火墙
systemctl stop firewalld
# 关闭 selinux
setenforce 0
五、KVM 基本操作
# 查看所有 kvm 虚拟机
virsh list --all
# 开启 kvm 虚拟机
virsh start winserver2008
# 关闭 kvm 虚拟机
virsh shutdown winserver2008
六、克隆 KVM 虚拟机
6.1 自动克隆
# 克隆虚拟机
virt-clone --auto-clone -o winserver2008
# 编辑新克隆的虚拟机
virsh edit winserver2008-clone
# 修改以下内容的 port 和 passwd
<graphics type='vnc' port='5910' autoport='yes' listen='0.0.0.0' passwd='123456'>
<listen type='address' address='0.0.0.0'/>
</graphics>
# 启动新克隆的虚拟机
virsh start winserver2008-clone
# 使用 vnc 连接查看新克隆的虚拟机
6.2 详细参数克隆
# 存放新客户端磁盘映像的新文件
mkdir /clone
# 修改 winserver2008 配置文件
vim /etc/libvirt/qemu/winserver2008.xml
# 删除以下内容
<disk type='file' device='floppy'>
<driver name='qemu' type='raw'/>
<source file='/tmp/virtio-win-0.1.141_amd64.man'/>
<target dev='fda' bus='fdc'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
# 根据配置文件重新定义虚拟机
virsh define /etc/libvirt/qemu/winserver2008.xml
# 克隆虚拟机
virt-clone \
-o winserver2008 \
-n winserver2008-hui \
-f /clone/winserver2008-hui.qcow2
# 编辑新克隆的虚拟机
virsh edit winserver2008-hui
# 修改以下内容的 port 和 passwd
<graphics type='vnc' port='5910' autoport='yes' listen='0.0.0.0' passwd='123456'>
<listen type='address' address='0.0.0.0'/>
</graphics>
七、KVM 快照创建与恢复
# 进入虚拟机文件目录
cd /clone
# 查看镜像文件格式是否为 qcow2 格式
qemu-img info winserver2008-hui.qcow2
# 进入virsh模式
virsh
# 创建快照 default
snapshot-create-as winserver2008-hui default
# 列出 winserver2008-hui 快照
snapshot-list winserver2008-hui
# 恢复虚拟机到指定的 default 快照
snapshot-revert winserver2008-hui default
# 删除 winserver2008-hui 名为 default 快照
snapshot-delete winserver2008-hui default
八、KVM 虚拟机迁移
# 导出虚拟机配置文件
virsh dumpxml winserver2008 > /etc/libvirt/qemu/winserver2008-migration.xml
# 导出虚拟机文件
rsync -av /var/lib/libvirt/images/winserver2008.qcow2 /var/lib/libvirt/images/winserver2008-migration.qcow2
# 修改虚拟机配置文件
vim /etc/libvirt/qemu/winserver2008-migration.xml
# 修改以下内容
<name>winserver2008-migration</name>
<uuid>dff6ae19-00fc-4445-bd17-a5abd2182d40</uuid>
<source file='/var/lib/libvirt/images/winserver2008-migration.qcow2'/>
# 根据配置文件重新定义虚拟机
virsh define /etc/libvirt/qemu/winserver2008-migration.xml
#启动虚拟机
virsh start winserver2008-migration
最后感谢我的仙女姐姐!