Чтобы повысить производительность, сохранив при этом избыточность, я пытаюсь преобразовать корневую файловую систему NAS из логического тома RAID 5 в логический том RAID 10, сохранив при этом то же количество используемых дисков.
ВэтотВ разделе справочной lvmraid
страницы говорится, что преобразование RAID 10 и RAID 5 возможно с помощью косвенного преобразования.
В настоящее время возможны следующие варианты поглощения:
...
- между striped/raid0 и raid5.
...
- между striped/raid0 и raid10.
Но при повторном запуске соответствующей lvconvert
команды (на аналогичном test
LV) с предложением выполнить промежуточные преобразования я получаю эту ошибку на последнем шаге при окончательном преобразовании из RAID 0 в RAID 10:
root@nas:~# lvcreate --type raid5 -i 3 -n test -L 100M vg
Using default stripesize 64.00 KiB.
Rounding size 100.00 MiB (25 extents) up to stripe boundary size 108.00 MiB (27 extents).
Logical volume "test" created.
root@nas:~# lvconvert vg/test --type raid10 -m 1 -i 2
Using default stripesize 64.00 KiB.
Replaced LV type raid10 (same as raid10_near) with possible type raid5_n.
Repeat this command to convert to raid10 after an interim conversion has finished.
Converting raid5 (same as raid5_ls) LV vg/test to raid5_n.
Are you sure you want to convert raid5 LV vg/test? [y/n]: y
Logical volume vg/test successfully converted.
root@nas:~# lvconvert vg/test --type raid10 -m 1 -i 2
Using default stripesize 64.00 KiB.
Replaced LV type raid10 (same as raid10_near) with possible type raid0_meta.
Repeat this command to convert to raid10 after an interim conversion has finished.
Are you sure you want to convert raid5_n LV vg/test to raid0_meta type? [y/n]: y
Logical volume vg/test successfully converted.
root@nas:~# lvconvert vg/test --type raid10 -m 1 -i 2
Using default stripesize 64.00 KiB.
Are you sure you want to convert raid0_meta LV vg/test to raid10 type? [y/n]: y
Insufficient suitable allocatable extents for logical volume : 30 more required
root@nas:~#
Даже при освобождении физических экстентов и уменьшении размера LV я получаю ту же ошибку. Все физические тома являются выделяемыми.
Вот что vgdisplay
получилось:
--- Volume group ---
VG Name vg
System ID
Format lvm2
Metadata Areas 4
Metadata Sequence No 333
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 2
Max PV 0
Cur PV 4
Act PV 4
VG Size <3.64 TiB
PE Size 4.00 MiB
Total PE 953864
Alloc PE / Size 943654 / <3.60 TiB
Free PE / Size 10210 / 39.88 GiB
VG UUID PF08Ce-xvsS-7KsA-0Vw6-zkXR-jyUf-ocDWDW
Как устранить эту ошибку? Я хотел бы использовать те же PE для преобразованного LV, сжимая файловую систему по мере необходимости.
решение1
Для целей этого описания рассмотримдискозначает диск, раздел или другой логический контейнер. Каждыйдисксчитается того же размера, держаединицаобъема памяти (1 ГБ, 1 ТБ, любой другой, не имеет значения).
- RAID 5 использует три диска для двух единиц полезного хранения
- RAID 0 использует два диска для двух единиц полезного хранения
- RAID 10 использует два диска для одной единицы полезного хранилища; обычно RAID 10 можно рассматривать как RAID 1 поверх RAID 0 (или vv), поэтому вы будете использовать четыре диска для двух единиц полезного хранилища.
Также
- При переходе с RAID 5 на RAID 0 у вас остается одна единица хранения (т.е. один диск становится запасным)
- При преобразовании из RAID 0 в RAID 10 вам понадобится дополнительная единица хранения для каждой преобразуемой единицы (т. е. два дополнительных диска сверх двух, которые вы используете в данный момент).
Следствие: вы начали с трех дисков, поэтому вам не хватает одного диска.
Одним из вариантов может быть попытка уменьшить ваш массив RAID 0 с двух дисков до одного, но это предполагает, что ваш исходный массив RAID 5 заполнен только наполовину. Другой вариант — получить четвертый диск.