LVM RAID 5 не приводит к ожидаемому размеру логического тома

LVM RAID 5 не приводит к ожидаемому размеру логического тома

У меня проблема с LVM RAID 5, не позволяющая мне создать LV, который использует пространство на всех четырех дисках в VG. Что особенно раздражает, так это то, что я создал этот же VG/LV, используя ту же модель дисков два года назад, и я не помню, чтобы у меня была эта проблема.

Вот вывод pvs и vgs перед попыткой создания RAID 5 LV:

Выход 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

Команда, которую я использовал в прошлый раз для создания LV с использованием дисков той же модели в той же системе, была следующей:

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, который у меня есть в этой системе. Удар. Моей. головой. Об. Монитор. :?

Цепляясь за соломинку, я также попытался:

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

Это дает LV размером 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-a-r---   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-a-r---   5.46t                                    2.31            

По какой-то причине в vg_sklad02 (VG, над которой я работаю) есть нераспределенное пространство. Разве -l 100%VG не должна использовать все доступное пространство в VG?

LV lv_sklad01 и lv_sklad02 должны быть одинакового размера, поскольку они созданы с одних и тех же дисков, и, насколько я помню, я пытался использовать одну и ту же команду create.

Есть ли у кого-нибудь предположения, что я делаю не так?

решение1

Как я уже сказал в своем вопросе, я уже делал это раньше и у меня есть журнал захвата того, что я делал для достижения этого два года назад. По какой-то причине идентичная команда lvcreate не сработала. Чтобы получить этот LV create, мне пришлось указать количество полос с помощью -i 3. Итак, рабочая команда была:

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

Полагаю, что-то изменилось в обновлениях инструментов LVM?

ОБНОВЛЯТЬ

Они действительно внесли изменения в 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, но, видимо, не тот FM. :-))

Связанный контент