条带化逻辑卷管理(LVM)

lvdisplay -m

在我们构建的 LVM 中,数据是如何分布的,可以通过 -m 参数查看 ( --maps ):

检查LVM磁盘数据分布
lvdisplay -m /dev/mapper/vg--data-lv--thanos
检查LVM磁盘数据分布
  --- Logical volume ---
  LV Path                /dev/vg-data/lv-thanos
  LV Name                lv-thanos
  VG Name                vg-data
  LV UUID                mz432T-ISFa-ifKq-DqzF-nQdY-duq9-2V3JOO
  LV Write Access        read/write
  LV Creation host, time alipaydockerphy010052095245.et15, 2023-07-29 15:43:08 +0800
  LV Status              available
  # open                 1
  LV Size                <6.08 TiB
  Current LE             1593389
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           251:0

  --- Segments ---
  Logical extents 0 to 1525877:
    Type		linear
    Physical volume	/dev/dfb1
    Physical extents	0 to 1525877

  Logical extents 1525878 to 1593388:
    Type		linear
    Physical volume	/dev/sda5
    Physical extents	0 to 67510

可以看到这里的类型是 linear ,也就是顺序分布

构建条代化分布LVM

条代化 striped 配置实际上也非常简单,主要是传递参数 -i 表示数据跨几块物理磁盘分布,以及 -I 参数设置条代化大小。我在 XFS文件系统快速起步 为数据库构建的就是跨3块磁盘的条代化LVM,以便能够实现性能提升以及大容量磁盘:

创建条代化LVM卷
pvcreate /dev/nvme0n{0..2}p1
vgcreate vg_db /dev/nvme0n{0..2}p1

lvcreate -n vl_log -l 10%FREE -i 3 -I 128k vg_db
lvcreate -n vl_data -l 100%FREE -i 3 -I 128k vg_db

说明:

  • -i 3 表示使用3块磁盘作为volume group,这样条带化会分布到3个磁盘上

  • -I 128k 表示使用 128k 作为条带化大小,也可以使用单纯数字 128 默认单位就是 k

  • -l 表示扩展百分比,这里采用了 10%FREE100%FREE 表示空闲空间的10%和100% ; 另外一种常用的扩展大小表示是使用 -L 参数,则直接表示扩展多少容量,例如 -L 10G 表示扩展 10GB 空间

参考