Назад | Перейти на главную страницу

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

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

Вот результат pvs и vgs, прежде чем я попытаюсь создать LV RAID 5:

Выход ПВС:

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,73 ТБ. 4 * 2,73 = 10,92. Вычитание единицы для четности дает мне 8,19 Тл, что соответствует размеру оригинального 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.

В результате получается 2/3 LV от ожидаемого мной размера. Выход из 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.

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

Как я сказал в своем вопросе, я делал это раньше и у меня есть журнал регистрации того, что я сделал для этого два года назад. По какой-то причине идентичная команда lvcreate не работала. Чтобы создать этот LV, мне пришлось указать количество полос с помощью -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 <prajnoha@redhat.com> - 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. :-))