Еще немного предыстории... У меня есть 4 массива реального времени (всегда работающих для моего использования) - 2 больших важных массива (40 ТБ [используется 20 ТБ] и 112 ТБ [используется 105 ТБ] резервируются на массиве Raid6 16 x 8 ТБ (всего 112 ТБ свободного места - и, как вы можете видеть, у меня больше данных для резервного копирования, чем места). Поэтому мне нужно больше места для хранения...
Моим лучшим решением было купить еще один SuperMicro 24bay JBOD, но поскольку после COVID цены выросли вдвое, сейчас более дешевый способ — это обновить мои диски. НО я не могу позволить себе 16 x 16 ТБ дисков Exos одновременно... это довольно дорого для домашнего сервера. :)
Итак, что же побудило меня попытаться найти способ все это усовершенствовать?
Вчера я купил 3 Exos по 16 ТБ. Я запустил следующие команды на резервном массиве...
#UPGRADE AN ARRAY *******************************************************
#FIRST ADD SPARES
mdadm /dev/md4 --add /dev/sdan (a 16TB drive)
mdadm /dev/md4 --add /dev/sdao (a 16TB drive)
#SECOND REPLACE DISKS (2 at a time) replace 2 8TB drives with 16TB drives.
mdadm /dev/md4 --replace /dev/sdah /dev/sdai --with /dev/sdan /dev/sdao
Вопрос №1: Я не использую LVM. Просто обычный mdadm raid6 с файловой системой ext4 поверх. ИТАК, мои предположения таковы... Я не смогу использовать дополнительное пространство, пока ВСЕ диски по 8 ТБ не будут обновлены до 16 ТБ... Вопрос №1: Это верно?
Я подумал... альтернативой было бы... как только у меня появится 9 дисков по 16 ТБ, я мог бы создать новый массив и скопировать все из этого массива 16 x 8 ТБ напрямую в массив 9 x 16 ТБ, поскольку они имеют одинаковый размер, а ПОТОМ я мог бы просто увеличить массив, как я делал раньше... Как только у меня появится массив из 9 дисков... к нему легко добавлять...
mdadm --grow --raid-devices=10 --backup-file=/root/md4_grow.bak /dev/md4
а потом...
resize2fs /dev/md4
Итак, я просто не знаю ограничений mdadm. Я знаю, что в моем Synology NAS я могу выполнить гибридное обновление и сразу же получить полное использование любого диска... но я предпочитаю mdadm, даже если у меня нет гибридного управления файловой системой. Я думаю, я мог бы добавить LVM поверх raid6... но я никогда раньше этим не пользовался... не уверен, смогу ли я преобразовать текущий массив, который у меня есть сейчас, в LVM или мне придется все стереть. Это резервный массив... так что технически я могу его уничтожить... НО тогда самое страшное... у меня больше нет резервной копии. А что, если мои основные массивы выйдут из строя, пока я перестраиваю этот новый массив? Тогда я потеряю кучу данных.
Я знаю, что raid не является резервным копированием, но этот резервный массив большую часть времени выключен. Он включается только для резервного копирования, а затем снова выключается.
Для супер важных данных... Я скопировал их на несколько дисков Exos по 10 ТБ, не в рейде, и засунул в коробку "на всякий случай". К сожалению, мне приходится выбирать, что именно резервировать таким образом, потому что у меня слишком много данных для надлежащего резервного копирования... поэтому мой резервный массив - единственное, что близко по размеру к необходимому для резервного копирования массивов в реальном времени...
Гипотетический вопрос №2: Предположим, я наконец-то заменил все свои 16 дисков IronWolf по 8 ТБ на 16 дисков Exos по 16 ТБ... мне просто запустить
resize2fs /dev/md4
и mdadm увидит... "Эй, ты используешь только 8 ТБ из 16 ТБ!!!! Давайте это исправим!!!" и продолжит расширяться, чтобы заполнить ВСЕ пространство? Или мне нужно выполнить другие команды, когда все диски будут обновлены?
Я читал, что Grow может принимать размер, но... Я никогда этим не пользовался... Я использовал Grow только для ДОБАВЛЕНИЯ еще одного диска в массив... например, перейдя с --raid-devices=9 на --raid-devices=10... а затем запустив
resize2fs /dev/md4
чтобы получить новое найденное пространство...
Что думают более опытные пользователи, чем я?
(спасибо Джеральду за форматирование кода, прошли годы с тех пор, как я задавал вопрос, и я забыл об этом).