В чем разница между созданием массива mdadm с использованием разделов или целых дисков напрямую?

В чем разница между созданием массива mdadm с использованием разделов или целых дисков напрямую?

Может кто-нибудь объяснить мне, в чем разница между созданием mdadmмассива с использованием разделов или целых дисков напрямую? Предположим, я собираюсь использовать целые диски.

Представьте себе RAID6, созданный двумя способами:

mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

или:

mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

В чем разница и возможные проблемы, возникающие при использовании любого из двух вариантов?

Например, я имею в виду надежность или управляемость или операции восстановления на таких массивах и т. д.

решение1

Самое важное отличие в том, что это позволяет увеличить гибкость замены диска. Это более подробно описано ниже вместе с рядом других рекомендаций.

Следует рассмотреть возможность использования раздела вместо всего диска. Это должно соответствовать общим рекомендациям по настройке массива и, безусловно, может избавить вас от головной боли в будущем, когда возникнет необходимость в дальнейшей замене дисков.

Наиболее важные аргументы:

Диски разных производителей (или даже разные модели "той же" емкости одного производителя) не обязательно имеют одинаковый размер диска, и даже самая маленькая разница в размере не позволит вам заменить неисправный диск на новый, если второй меньше первого. Разделение позволяет обойти это;

Примечание о том, почему следует использовать диски разных производителей: Диски выйдут из строя, это вопрос не «если», а «когда». Диски одного производителя и одной модели имеют схожие свойства, и поэтому более высокие шансы выйти из строя одновременно при одинаковых условиях и времени использования. Поэтому предлагается использовать диски разных производителей, разных моделей и, в особенности, не из одной партии (рассмотрите возможность покупки в разных магазинах, если вы покупаете диски одного производителя и модели). Нередко второй отказ диска происходит во время восстановления после замены диска, когда используются диски из одной партии. Вы, конечно, не хотите, чтобы это случилось с вами.

Итак, рекомендации:

1)Разбить диски на разделыкоторый будет использоваться снемного меньшая емкостьчем общее дисковое пространство (например, у меня есть массив RAID5 из дисков по 2 ТБ, и я намеренно разбил их на разделы, тратя около 100 МБ на каждом). Затем используйте /dev/sd?1 каждого из них для составления массива - это добавит запас прочности на случай, если новый заменяющий диск будет иметь меньше места, чем исходные, использованные для сборки массива при его создании;

2) Используйте диски разных производителей;

3) Используйте диски разных моделей, если разные производители для вас не подходят;

4) Используйте диски из разных партий;

5) Проактивно заменяйте диски до того, как они выйдут из строя, и не все одновременно. Это может быть немного параноидально и действительно зависит от критичности данных, которые у вас есть. У меня были диски, которые имели разницу в возрасте в 6 месяцев друг от друга;

6) Регулярно делайте резервные копии (всегда, независимо от того, используете ли вы массив или нет). Raid не выполняет ту же функцию, что и резервные копии. Массивы гарантируют вам высокую доступность, резервные копии позволяют восстанавливать потерянные файлы (включая те, которые были случайно удалены или повреждены вирусами, некоторые примеры того, от чего использование массивов вас не защитит).

OBS: За исключением всехнепренебрежимоКак было сказано выше, особых технических различий между использованием /dev/sd? и /dev/sd?# нет.

Удачи

решение2

Другим важным аргументом является то, что некоторыематеринские платы могут удалить ваши RAID-суперблокиесли вы используете целые дисковые устройства и не очень аккуратно очищаете их при добавлении дисков в RAID-массив, которые когда-то были устройствами GPT.

Я усвоил это на собственном горьком опыте, когда UEFI моей материнской платы ASRock сделал мой RAID непригодным для использования:

Чтобы защитить себя от этого, всегда работайте sgdisk --zapс диском, ранее отформатированным в формате GPT, который вы хотите использовать для RAID-массива всего устройства.

wipefs -a также может работатьдля удаления всех видов остаточной информации о разделах (не только GPT) перед добавлением устройства на диск.


Тем не менее,просто использование разделов кажется лучшей практикой, чтобы сделать это менее вероятным.

Я никогда не знал, чтонастоящийаргументы были в пользу этой лучшей практики (помимо ответа @Marcelo, объясняющего, что она может работать с дисками немного разных размеров). Теперь я знаю.

Кстати, если это произойдет с вами, ваши данные не будут потеряны.Скорее всего, вы можете просто выбрать sgdisk --zapустройство, а затем заново создать RAID, например, с помощью mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc /dev/sdd(mdadm сообщит вам, что он уже обнаружил прошлые данные, и спросит, хотите ли вы продолжить повторное использование этих данных). Я пробовал это несколько раз, и это сработало, но я все равно рекомендую сделать резервную копию, прежде чем вы это сделаете.

решение3

Есть несколько сообщений, в которых упоминается проблема использования всего устройства в качестве члена RAID, а не раздела,один здесь. Я могу подтвердить, что это так.

Итак, если вы создаете RAID, используя все устройство (например, /dev/sda, /dev/sdb, ... вместо на /dev/sda1, /dev/sdb1, ...), устройство RAID не будет повторно собрано после перезагрузки, даже если у вас есть конфигурация, сохраненная в mdadm.conf. Существует также вероятность перезаписи прошивки материнской платы или удаления суперблока RAID. В моей настройке запуск mdadm --assemble --scan --verboseне возвращает мне мою настройку RAID, и, похоже, это случай, когда суперблок RAID недоступен.

решение4

Совсем не редкость объединять диски, а не разделы в RAID, перед тем как разбить RAID на разделы. В частности, большинство аппаратных RAID-контроллеров не могут даже читать таблицы разделов, поэтому они всегда работают с целыми дисками. Но то же самое возможно и с программными RAID. И если правильно настроить, программные RAID будут нормально собираться заново при перезагрузке. Конечно, убедитесь, что на диске не осталось никаких следов прежней таблицы разделов. Это особенно важно, так как многие диски поставляются предварительно отформатированными, и многие инструменты (программные RAID, файловые системы и т. д.) имеют тенденцию оставлять «пустые сектора» в начале, где эти следы прежних таблиц разделов затем могут сохраниться.

Также окупается покупка одного или двух дополнительных дисков в качестве запасных, когда вы настраиваете RAID. Если какой-либо диск выйдет из строя, вы сможете быстро заменить его, что особенно важно в RAID5 или двухдисковом RAID1, где после отказа одного диска у вас не останется избыточности, пока не будет заменен неисправный диск и RAID не будет повторно синхронизирован. Имея точно соответствующий запасной диск, вы также избежите тех проблем, которые могут возникнуть из-за «слабого» диска в RAID, например, когда новый диск медленнее или немного меньше старых.

Тем не менее, проблема "чуть меньшего" может быть исправлена ​​независимо от того, есть ли у вас разделы. Просто используйте device mapper для создания виртуального диска, который получает 99,9% своей емкости от нового диска и недостающие 0,1% от системного диска или SSD. В качестве альтернативы вы можете сжать файловую систему во время перезагрузки на этапе initramfs (см.https://serverfault.com/a/888830как это сделать), затем уменьшите RAID, и вы снова будете в сети.

Другими словами: использование целых дисков для аппаратного или программного RAID или пула памяти ZFS совершенно нормально.

Связанный контент