安装KVM
- Redhat linux 系统
sudo yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install virt-manager
- Ubuntu linux. 系统
sudo apt update
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
- 开启Qemu 的守护进程
# ubuntu/redhat
sudo systemctl enable --now libvirtd
管理KVM 虚拟机工具
- virt-manager
- Openstack
- PVE proxmox ve
命令:
- virt-manager KVM的管理工具
- virt-install 使用命令安装KVM虚拟机
- Virsh 管理KVM 虚拟机,是交互式命令
- virt-manager
[root@bogon ~]# virt-manager
- Virsh 命令
[abbott@bogon ~]$ virsh version
根据库编译:libvirt 8.0.0
使用库:libvirt 8.0.0
使用的 API: QEMU 8.0.0
运行管理程序: QEMU 6.2.0
2. 列出所有主机(运行/关闭)
- 非交互式
[abbott@bogon ~]$ sudo virsh list --all #列出所有的主机(runnig/stop)
[abbott@bogon ~]$ sudo virsh list #(running)
- 交互式命令
[abbott@bogon ~]$ sudo virsh
欢迎使用虚拟化环境下的交互式终端 virsh。
输入:'help' 获得命令的帮助信息
'quit' 退出
virsh #
virsh # list --all
Id 名称 状态
-------------------------
1 rhel7.9 running
virsh # list
Id 名称 状态
-------------------------
1 rhel7.9 running
- 开启/关闭域
[y40@ansible-control-245 ~]$ sudo virsh start {域的名称}
[y40@ansible-control-245 ~]$ sudo virsh shutdown {域的名称/id/uuid}
- 设置快照
选项:
Snapshot (指定关键字'snapshot'时可以显示此部分帮助信息)
snapshot-create 使用 XML 生成快照
snapshot-create-as 使用一组参数生成快照
snapshot-current 获取或者设定当前快照
snapshot-delete 删除域快照
snapshot-dumpxml 为域快照转储 XML
snapshot-edit 编辑快照 XML
snapshot-info 快照信息
snapshot-list 为域列出快照
snapshot-parent 获取快照的上级快照名称
snapshot-revert 将域转换为快照
#查看虚拟机的快照生成时间及状态
virsh # snapshot-list --domain 1
名称 生成时间 状态
---------------------------------------------------
1729301861 2024-10-19 09:37:41 +0800 shutoff
#查看快照的详细信息
virsh # snapshot-info --domain 1 --snapshotname 1729301861
名称: 1729301861
域: rhel8.8-3
当前: 是
状态: shutoff
位置: 内部
上级: -
下级: 0
降序: 0
元数据: 是
#创建快照
virsh # snapshot-create --domain 1
已生成域快照 1741234545
virsh # snapshot-list --domain 1
名称 生成时间 状态
---------------------------------------------------
1729301861 2024-10-19 09:37:41 +0800 shutoff
1741234545 2025-03-06 12:15:45 +0800 running
#还原快照
virsh # snapshot-revert --domain {域/ID} --snapshotname {快照的名称/ID}
- 网络设备信息
virsh # net-list
名称 状态 自动开始 持久
-----------------------------------
default 活动 是 是
only 活动 是 是
- 获取虚拟机IP地址;(只限于NAT模式)
virsh # list
Id 名称 状态
-------------------------
5 rhel7.9 running
virsh # domifaddr 5
名称 MAC 地址 Protocol Address
-------------------------------------------------------------------------------
vnet4 52:54:00:87:71:a3 ipv4 192.168.122.215/24
定义网络:
1. 仅主机
- 创建一个仅主机网络的配置文件(xml)
<network>
<name>host-only</name>
</network>
- 定义网络
[root@bogon ~]# #virsh net-define --file host_only.xml #定义一个host_only 网络
[root@bogon ~]#
[root@bogon ~]#
[root@bogon ~]#
[root@bogon ~]# virsh net-list #列出活动的网卡信息
名称 状态 自动开始 持久
-----------------------------------
default 活动 是 是
[root@bogon ~]# virsh net-list --all #列出所有
名称 状态 自动开始 持久
---------------------------------------
default 活动 是 是
host-only 不活跃 否 是
- 启动网卡
[root@bogon ~]# virsh net-start --network host-only
网络 host-only 已开始
[root@bogon ~]# virsh net-list
名称 状态 自动开始 持久
-------------------------------------
default 活动 是 是
host-only 活动 否 是
- 开机自动启动
[root@bogon ~]# virsh net-autostart --network host-only
网络host-only标记为自动启动
[root@bogon ~]# virsh net-list
名称 状态 自动开始 持久
-------------------------------------
default 活动 是 是
host-only 活动 是 是
- 删除网络
[root@bogon ~]# virsh net-port-delete --network host-only
2. 桥接(就是nmtui)
virt-install 命令
使用命令安装系统,不是图形;
考虑的问题
虚拟机名字 2. 镜像 3.内存 4 cpu. 5. 网络 6. 安装位置
安装方式
virt-install \
--name=redhat8-1 \
--memory=2048 \
--vcpus=1 \
--disk path=/opt/test-redhat8.qcow2,size=10,format=qcow2 \
--cdrom=/root/redhat8.iso
注释:
--name #虚拟机的名称
--memory. #虚拟机的内存
--vcpus #虚拟cpu
--disk #指定磁盘
--cdrom #指定镜像文件