Хорошо, я надеюсь, что этот вопрос достаточно уникален, чтобы его нельзя было рассматривать как еще один «В чем разница между LVM и RAID?» вопросы. Поехали...
Я настраиваю Linux-сервер, на котором есть отсек для дисков, который позволяет мне в горячем режиме подключать около 6 дисков. Характеристики, которые мне нужны:
Если я только хотел иметь возможность увеличить пространство, заменяя диски на диски меньшего размера, я мог бы просто использовать LVM с lvreduce (при условии, конечно, что я использую сжимаемую FS, такую как Reiser или ext [2-4], а также что текущая FS может быть уменьшенным на величину привода, которую я хочу вытащить). Но это не дает мне лишнего.
Первое решение, которое я могу придумать, чтобы получить как избыточность и возможность замены дисков заключается в использовании дисков в качестве зеркальных пар. Одна пара будет md0, следующая пара будет md1 и т. Д. Затем я бы добавил их в одну группу томов. Когда я хотел добавить пространство, я уменьшал одно из устройств md * из группы томов, вытаскивал два диска, добавлял два больших, создавал новое зеркало md и добавлял их в группу томов, расширял ФС, и я закончил.
Но это снижает мою эффективность использования пространства до 50%, потому что каждый физический диск получает собственное зеркало. У меня всего 3 ТБ ... и это заставит меня раньше заменить диски на более крупные.
Конечно, вместо зеркальных пар я мог бы подключить их как наборы RAID5 с 3 дисками. Каждые 3 диска давали мне 2 ТБ. Итак, я получил бы 4 ТБ, но теперь я столкнулся с проблемой, когда, чтобы вытащить устройство md из группы томов, оно занимает намного больше места (вытаскивание одного заняло бы 2 ТБ вместо 1 ТБ). Это означает, что мне понадобится гораздо больше свободного места в FS, иначе я не смогу поменять диски таким образом.
Итак, вот где я застрял. Единственный известный мне способ получить избыточность с помощью разнородных дисков и замены дисков в режиме онлайн требует от меня принятия компромиссного решения между более высокой эффективностью использования пространства и более высокими требованиями к свободному пространству, чтобы вытащить диск (или набор дисков). ).
Есть какой-то хитрый трюк, который мне не хватает?
Я думаю, что то, что вы предлагаете (LVM с несколькими PV RAID-1), правильно, за исключением одной детали: вам не обязательно извлекать набор RAID из вашего VG, чтобы заменить его:
mdadm
сбой, удаление, физическая замена, повторное добавление)mdadm --grow
pvresize
Конечно, это предполагает, что у вас есть хорошие резервные копии, и что ваш единственный диск не умирает, пока вы делаете восстановление.
Одним из решений было бы полагаться на ZFS в качестве файловой системы. Однако это характерно для Solaris, нескольких вариантов BSD, поэтому в Linux нет необходимости. Одним из возможных решений может быть использование Debian в варианте Debian / kFreeBSD, что означает ядро BSD с пользовательской средой GNU.
ZFS идеально подходит для очень динамического выделения памяти из пула ZFS. С 6 дисками вы можете использовать один RAID-2Z, что означает, что из 6 дисков два могут выйти из строя. Однако цена, которую придется заплатить, заключается в том, что вы можете использовать только дисковое пространство, соответствующее 4 дискам. Существуют и другие возможности, так как в ZFS неважно, из какой конфигурации дисков создается пул.
Взгляни на