KVM配置存储池
- KVM存储池
- 使用本地目录创建iso存储池
- 使用nfs创建存储池
- 删除存储池
- 从存储池中快速选择iso和磁盘文件
KVM存储池
在 KVM
中,存储池(storage pool)
是一种用于管理虚拟机磁盘镜像
、ISO 镜像
等文件的机制。
存储池
由一个或多个存储卷(storage volume)
组成,每个存储卷
实际上是一个磁盘镜像文件或一个物理存储设备(如磁盘分区、LVM 卷等)。存储池可以使用本地文件系统、NFS、iSCSI 等不同的后端存储技术来存储存储卷和其他文件。
在 KVM 中,您可以使用命令行工具(如 virsh)或图形界面工具(如 virt-manager)来创建、修改和管理存储池。
您可以使用存储池来创建新的虚拟机、将虚拟机迁移至其他主机、备份和还原虚拟机等操作。
存储池是 KVM 虚拟化平台中非常重要的一个概念,它提供了一种集中管理虚拟机磁盘镜像和其他文件的方法,简化了虚拟机管理的过程。通过存储池,用户可以将虚拟机磁盘镜像和其他文件存储在统一的位置,方便管理和维护。同时,存储池还可以通过多种后端存储技术实现灵活的存储管理方式,满足不同场景下的存储需求。
libvirt
默认的数据存储路径
是/var/lib/libvirt/
# 查看该路径下有哪些目录
ll /var/lib/libvirt/
-
images
文件夹主要用于存储虚拟机磁盘文件
(以.qcow2
或.img
格式保存); -
dnsmasq
文件夹主要用于存储网络配置文件
(不是在network文件夹中), -
qemu
文件夹主要用于存储KVM的元数据文件
,还有其他虚拟机配置文件
和存储池配置文件
等(以.xml
格式保存)。
使用本地目录创建iso存储池
https://opstrip.com/2017/01/17/Using-Notes-For-KVM-02/ 在/var/lib/libvirt/images/
目录下创建一个isopool
文件夹来存放安装镜像
,同时将此目录作为iso存储池
的挂载点
# 创建iso安装镜像存储目录
mkdir -p /var/lib/libvirt/images/isopool
# 配置目录属主
chown -R qemu:qemu /opt/kvm/images
# 配置目录权限
chmod -R 700 /opt/kvm/images
# 确认目录权限
ls -al /opt/kvm
# 创建iso存储池
## virsh pool-define-as:Libvirt存储池定义命令
## --name=iso:指定存储池的名称为"iso"
## --type=dir:指定存储池的类型为目录(dir)
## --target=/path/ 指定存储池的目标路径
virsh pool-define-as --name=iso --type=dir --target=/var/lib/libvirt/images/isopool
# 激活iso存储池
virsh pool-start iso
# 设置iso存储池为自动启动
virsh pool-autostart iso
# 查看iso存储池是否创建成功
virsh pool-list
# 查看ios存储池详细信息
virsh pool-info iso
使用nfs创建存储池
# --source-host 参数指定 NFS 服务器的 IP 地址
# --source-path 参数指定共享目录的路径。
virsh pool-define-as --name nfs-pool --type netfs --source-host 192.168.1.100 --source-path /nfs-share-path/to/share
删除存储池
# 停用名为"iso"的存储池
virsh pool-destroy iso
# 删除名为"iso"的存储池
## 此命令只能在存储池已被停用时执行。
virsh pool-undefine iso
# 查看删除的iso存储池还在不在
virsh pool-list
从存储池中快速选择iso和磁盘文件
## --name 指定虚拟机的名称
## --ram 指定虚拟机的内存大小
## --vcpus 指定虚拟机的 CPU 核心数量
## --disk pool=disks 指定磁盘文件的存储池和大小
## --cdrom 指定虚拟机安装所需的 ISO镜像文件
## --network 指定虚拟机的网络配置
## --graphics 指定虚拟机的图形界面类型
virt-install \
--name rhel8 \
--ram 2048 \
--vcpus 2 \
--disk pool=disks,size=20 \
--cdrom /path/to/iso/rhel8.iso \
--network bridge=virbr0 \
--graphics vnc