移动云计算libvirt LVM卷管理存储池
在 移动云架构 由于ARM架构的 Asahi Linux 内核对ZFS支持不佳,所以采用更为成熟可靠的 Linux LVM逻辑卷管理 作为 libvirt LVM卷管理存储池 :
创建LVM存储卷
准备工作
磁盘分区规划: 分区9作为 Linux LVM逻辑卷管理 构建 Ceph 的KVM虚拟机集群
分区名 |
LVM卷 |
大小 |
用途 |
---|---|---|---|
btrfs-data |
50G |
个人数据存储 |
|
btrfs-docker |
48G |
|
|
lvm-libvirt |
|
用于libvirt的LVM卷(合计) |
|
base-1 |
16G |
基础虚拟机1 |
|
base-2 |
16G |
基础虚拟机2 |
|
base-3 |
16G |
基础虚拟机3 |
|
ceph-1 |
56G |
ceph数据盘1 |
|
ceph-2 |
56G |
ceph数据盘2 |
|
ceph-3 |
56G |
ceph数据盘3 |
|
磁盘采用 移动云计算的Btrfs实践 划分磁盘分区:
parted分区: 50G data, 48G docker, 216G libvirt
# 50G data,48G docker,216G libvirt(3个vm 共48G + 3个Ceph存储 168G)
parted -a optimal /dev/nvme0n1 mkpart primary 181GB 231GB
parted -a optimal /dev/nvme0n1 mkpart primary 231GB 279GB
parted -a optimal /dev/nvme0n1 mkpart primary 279GB 495GB
parted /dev/nvme0n1 name 7 btrfs-data
parted /dev/nvme0n1 name 8 btrfs-docker
parted /dev/nvme0n1 name 9 lvm-libvirt
创建LVM存储卷
检查当前存储卷:
virsh pool-list --all
在 arch linux ARM KVM虚拟化 部署安装的 Libvirt虚拟机管理器 没有自动创建存储池,所以当前没有任何存储池:
Name State Autostart
---------------------------
创建 Linux LVM逻辑卷管理 的PV和VG:
创建vg-libvirt卷
# 将分区9的LVM标记激活
parted /dev/nvme0n1 set 9 lvm on
# 在分区9上创建LVM的PV和VG
pvcreate /dev/nvme0n1p9
vgcreate vg-libvirt /dev/nvme0n1p9
这里有一个提示(未明):
Using metadata size 960 KiB for non-standard page size 16384.
Using metadata size 960 KiB for non-standard page size 16384.
Volume group "vg-libvirt" successfully created
此时检查
vgs
输出可以看到已经建立的卷组:VG #PV #LV #SN Attr VSize VFree vg-libvirt 1 0 0 wz--n- <201.08g <201.08g
在livirt中使用LVM卷组
定义
images_lvm
存储池: 使用逻辑卷组vg-libvirt
目标磁盘/dev/nvme0n1p9
,并且启动激活:
定义使用LVM卷组的libvirt存储池
# 定义libvirt存储池images_lvm,指定使用LVM卷组vg-libvirt,目标设备/dev/nvme0n1p9
virsh pool-define-as images_lvm logical --source-name vg-libvirt --target /dev/nvme0n1p9
# 启动存储卷images_lvm并设置为自动启动
virsh pool-start images_lvm
virsh pool-autostart images_lvm
此时使用
virsh pool-list
可以看到存储池:Name State Autostart ---------------------------------- images_lvm active yes
接下来就可以使用以下命令为 arch linux ARM KVM虚拟化 创建VM使用的磁盘(卷),类似: