LVM RAID 5不会导致预期的逻辑卷大小

我遇到了LVM RAID 5的问题,不允许我创build一个使用VG中所有四个驱动器上的空间的LV。 特别恼人的是,我在两年前在同一系统上使用相同型号的硬盘创build了同样的VG / LV,我不记得有这个问题。

在尝试创buildRAID 5 LV之前,以下是pvs和vgs的输出:

pvs的输出:

PV VG Fmt Attr PSize PFree /dev/sda1 vg_sklad02 lvm2 a-- 2.73t 2.73t /dev/sdb1 vg_sklad01 lvm2 a-- 2.73t 0 /dev/sdc1 vg_sklad02 lvm2 a-- 2.73t 2.73t /dev/sdd1 vg_sklad01 lvm2 a-- 2.73t 0 /dev/sde1 vg_sklad01 lvm2 a-- 2.73t 0 /dev/sdf1 vg_sklad02 lvm2 a-- 2.73t 2.73t /dev/sdg1 vg_sklad02 lvm2 a-- 2.73t 2.73t /dev/sdh1 vg_sklad01 lvm2 a-- 2.73t 0 /dev/sdi2 vg_bootdisk lvm2 a-- 118.75g 40.00m /dev/sdj2 vg_bootdisk lvm2 a-- 118.75g 40.00m 

vgs的输出:

 VG #PV #LV #SN Attr VSize VFree vg_bootdisk 2 2 0 wz--n- 237.50g 80.00m vg_sklad01 4 1 0 wz--n- 10.92t 0 vg_sklad02 4 0 0 wz--n- 10.92t 10.92t 

我上次在同一个系统上使用相同型号的驱动器创buildLV的命令是:

 lvcreate --type raid5 -L 8.18T -n lv_sklad01 vg_sklad01 

当我发出这个改变VG和LV目标名字的命令时,我得到:

 lvcreate --type raid5 -L 8.18T -n lv_sklad02 vg_sklad02 Using default stripesize 64.00 KiB. Rounding up size to full physical extent 8.18 TiB Insufficient free space: 3216510 extents needed, but only 2861584 available 

这是没有道理的,因为我有两个容量为2.73T的四个驱动器。 4 * 2.73 = 10.92。 减去一个奇偶校验给我8.19T,这是我在这个系统上的原始LV的大小。 敲打。 我的。 头。 反对。 监控。 :?

抓着吸pipe,我也试过:

 [root@sklad ~]# lvcreate --type raid5 -l 100%VG -n lv_sklad02 vg_sklad02 Using default stripesize 64.00 KiB. Logical volume "lv_sklad02" created. 

这导致了我所期望的尺寸的2/3。 来自lvs的输出:

 LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv_root vg_bootdisk rwi-aor--- 102.70g 100.00 lv_swap vg_bootdisk rwi-aor--- 16.00g 100.00 lv_sklad01 vg_sklad01 rwi-aor--- 8.19t 100.00 lv_sklad02 vg_sklad02 rwi-ar--- 5.46t 0.18 

发出上面的lvcreate命令后,pvs,vgs和lvs的输出如下:

 [root@sklad ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda1 vg_sklad02 lvm2 a-- 2.73t 0 /dev/sdb1 vg_sklad01 lvm2 a-- 2.73t 0 /dev/sdc1 vg_sklad02 lvm2 a-- 2.73t 0 /dev/sdd1 vg_sklad01 lvm2 a-- 2.73t 0 /dev/sde1 vg_sklad01 lvm2 a-- 2.73t 0 /dev/sdf1 vg_sklad02 lvm2 a-- 2.73t 0 /dev/sdg1 vg_sklad02 lvm2 a-- 2.73t 2.73t /dev/sdh1 vg_sklad01 lvm2 a-- 2.73t 0 /dev/sdi2 vg_bootdisk lvm2 a-- 118.75g 40.00m /dev/sdj2 vg_bootdisk lvm2 a-- 118.75g 40.00m [root@sklad ~]# vgs VG #PV #LV #SN Attr VSize VFree vg_bootdisk 2 2 0 wz--n- 237.50g 80.00m vg_sklad01 4 1 0 wz--n- 10.92t 0 vg_sklad02 4 1 0 wz--n- 10.92t 2.73t [root@sklad ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv_root vg_bootdisk rwi-aor--- 102.70g 100.00 lv_swap vg_bootdisk rwi-aor--- 16.00g 100.00 lv_sklad01 vg_sklad01 rwi-aor--- 8.19t 100.00 lv_sklad02 vg_sklad02 rwi-ar--- 5.46t 2.31 

由于某种原因,在vg_sklad02(我正在工作的VG)中有未分配的空间。 -100%VG不应该使用VG中的所有可用空间吗?

LV lv_sklad01和lv_sklad02的大小应该和从同一个驱动器创build的大小相同,并且据我所知,我试图使用相同的create命令。

有没有人有任何build议,我做错了什么?

正如我在我的问题中所说的那样,我之前做过这件事,并且logging了两年前我做了什么。 出于某种原因,相同的lvcreate命令不起作用。 为了得到这个LV创build,我不得不使用-i 3来指定条纹的数量。所以,工作命令是:

 lvcreate -i 3 --type raid5 -L 8.18T -n lv_sklad02 vg_sklad02 

我猜想LVM工具的更新有所改变?

UPDATE

他们确实改变了LVM2。 从rpm -q –changelog lvm2

 * Fri Jul 29 2016 Peter Rajnoha <[email protected]> - 7:2.02.162-1 <...> - Add allocation/raid_stripe_all_devices to reinstate previous behaviour. - Create raid stripes across fixed small numbers of PVs instead of all PVs. <...> 

很高兴知道我不是完全疯了。 :-)我RTFM'd,但不是我猜的正确的FM。 :-))