У меня проблема с 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. :-))