KVM安装部署,virsh命令基础
虚拟化的软件
qemu: 软件纯模拟全虚拟化软件,性能低,慢 ,AIX,兼容性好!例如:手机安装windos
xen(半) 性能特别好,需要使用专门修改之后的内核,兼容性差! redhat 5.5 xen
KVM(linux) 全虚拟机,它有硬件支持cpu,基于内核,而且不需要使用专门的内核 centos6 kvm
性能较好,兼容较好
准备环境 : 10.0.0.11
虚拟机模拟时需要开启

不开启报如下错误

1.安装虚拟化管理软件
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install libvirt virt-install qemu-kvm -y
systemctl start libvirtd.service
systemctl status libvirtd.service
软件解释:
libvirt 作用:虚拟机的管理软件
libvirt:
virt virt-install virt-clone 作用:虚拟机的安装工具和克隆工具
qemu-kvm qemu-img (qcow2,raw) 作用:管理虚拟机的虚拟磁盘
vnc:远程的桌面管理工具(输出画面)
2.上传镜像: CentOS-7-x86_64-DVD-1708.iso
执行如下命令
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
连接端口
vnc-service:5900
命令详解:
vnc:10.0.0.11:5900 (vnc连接)
--virt-type kvm (虚拟化的类型(qemu))
--os-type=linux (系统类型)
--os-variant rhel7 (系统版本)
--name centos7 (虚拟机的名字)
--memory 1024 (虚拟机的内存)
--vcpus 1 (虚拟cpu的核数)
--disk /opt/centos2.raw,format=raw,size=10 (磁盘格式:raw 大小10G 整下创建出虚拟机的时候,磁盘格式推荐用QCOW2 )
raw:不支持做快照,性能好
qcow2:支持快照
--cdrom /opt/CentOS-7-x86_64-DVD-1708.iso (利用的镜像目录地址)
--network network=default (使用默认NAT的网络)
--graphics vnc,listen=0.0.0.0 (图形话界面 工具vnc 监听任意网段)
--noautoconsole (不自动运行控制台)
vnc软件进行连接


创建完成后:(会产生 /etc/libvirt/qemu/centos7.xml)
KVM虚拟机安装完成
-
3.KVM虚拟机的日常管理 和配置 virsh
1.)virsh 常用命令
virsh list 显示运行的虚拟机 (--all 全部显示)

例如: 开启的centos7
.开启: virsh start + centos7
.关机 : virsh shut down + centos7
删除 : virsh undefine + centos7 (/etc/libvirt/qemu/下的centos7.xml会被清掉)
.强制关机: virsh destroy + centos7 拔电源关机
挂起: virsh suspend centos7 (挂起时虚拟机时间会停滞,记得做时间同步)
恢复挂起: virsh resume centos7
查看端口号 virsh vncdisplay centos7
修改配置文件: virsh edit centos7
导出备份配置: virsh dumpxml centos7 >centos7.xml
恢复导入配置: virsh define centos7.xml
(注意:关机前,检查【/etc/libvirt/qemu/下的centos7.xml】是否存在配置文件,备份一份配置文件。否则关闭一台丢失一台)
3) virsh edit centos7修改配置文件
小测试
把启动磁盘迁移到/opt/目录下

4)修改虚拟机名称
修改虚拟机名称方式1:virsh domrename centos7 lzl

修改虚拟机名称方式2: 修改配置文件,删除UUID 然后导入配置文件

5)设置开机自启
开机自启:
[root@kvm-2 qemu]# virsh autostart --disable lzl
实则添加一个软连接

关闭开机自启
[root@kvm-2 qemu]# virsh autostart --disable lzl

实则取消了软连接
注意:设置开机自启之前,把libvirtd设置为开机自启
[root@kvm-2 qemu]# systemctl enable libvirtd
6)宿主机利用virsh console 进入KVM虚拟机(目的:无网状态下正常系统操作)

用宿主机(xshell工具)连接KVM的IP
[root@kvm-2 qemu]# ssh 192.168.122.206
添加允许console进入的配置
[root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
检查是否添加成功 记得 reboot
[root@localhost ~]# vi /boot/grub2/grub.cfg
tip:位置在100行左右

进入测试 退出就 ctrl+ ]
[root@kvm-2 qemu]# virsh console lzl
Connected to domain lzl
Escape character is ^]
回车
[root@localhost ~]#
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
· 全程使用 AI 从 0 到 1 写了个小工具