Назад | Перейти на главную страницу

Обновление программного обеспечения Linux RAID5

Мой домашний Linux-сервер имеет программный RAID 5 с четырьмя дисками, где каждый диск SATA имеет два раздела, названных sd [abcd] [12]. / dev / md1 создается из sd [abcd] 1, / dev / md2 создается из sd [abcd] 2. Каждый диск составляет 500 ГБ, а каждый раздел - 250 ГБ. Я использую LVM для объединения md1 и md2 в одну группу томов.

Что было бы хорошей процедурой для обновления этих дисков до 1 ТБ каждый? У меня больше нет доступных портов SATA. Я подумал о том, чтобы вытащить один из дисков, заменить его новым диском емкостью 1 ТБ, разделенным на два раздела по 250 ГБ и раздел на 500 ГБ, и перестроить массив. Повторите эти действия для каждого диска, затем создайте новый RAID5 на sd [abcd] 3. Это кажется «менее чем оптимальным»: злоупотребление процессом синхронизации / восстановления кажется неправильным способом сделать это.

Имеет ли смысл использовать внешний USB-корпус, вставить новый диск емкостью 1 ТБ, разбить его на разделы, добавить в массивы md1 и md2, выполнить повторную синхронизацию, а затем удалить один из старых дисков из массива, повторяя это для каждого диска?

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

Спасибо за ваши предложения!

Во-первых, разбиение дисков на несколько RAID-массивов и их обратное объединение с помощью LVM не имеет смысла.

USB невероятно медленный и интенсивно использует процессор, поэтому последовательное подключение четырех дисков и копирование такого большого объема данных займет много времени. Я бы предпочел просто менять диски по одному.

Мой рецепт для этого был бы следующим (если ваши данные очень важны и вы очень параноик, вы можете добавить USB-накопитель в качестве горячего резерва во время этой операции, но это займет намного больше времени):

  1. Вытащите один из старых дисков и вставьте новый. Подождите, пока он синхронизируется
  2. Повторите для остальных дисков
  3. Теперь у вас есть четыре диска по 1 ТБ, из которых 500 ГБ выделено как два раздела по 250 ГБ, а неиспользуемое пространство - 500 ГБ.
  4. Расширьте один из существующих разделов с 250 ГБ до 750 ГБ, чтобы использовать весь диск.
  5. Увеличьте рейд, содержащий расширенный раздел, используя mdadm grow
  6. Расширьте свой LVM, чтобы использовать весь размер
  7. Удалите ваш массив 250GBx4 pv из LVM. Это переместит ваши данные из небольших разделов в большие разделы, поэтому это займет некоторое время.
  8. Удалите разделы 250 ГБ и повторите процесс увеличения для разделов 750 ГБ.

После этого у вас будет четыре диска по 1 ТБ с одним разделом по 1 ТБ каждый, объединенных в RAID5 с LVM наверху. Отличный результат.

Рекомендую проделать такую ​​работу в песочнице.
Я написал более длинную статью о том, как настроить такую ​​песочницу с файлами, а не с разделами: Могу ли я "атомарно" заменить диск raid 5 в программном raid Linux?

Вы можете выполнить танец с повторной синхронизацией и заменой, как вы предлагаете, но как только вы закончите, скопируйте все файлы из md1 и 2 на md3, затем уничтожьте разделы md1 и 2 и разверните раздел md3, чтобы использовать новое пространство. Для этого вам нужно сделать первый раздел на дисках TB частью md3, чтобы вам не приходилось перемещать данные позже.

Если ваше текущее использование HD меньше 1 ТБ, я бы хотел сделать следующее:

  • вытащите один из дисков емкостью 500 ГБ и установите 1 ТБ
  • скопировать все на диск емкостью 1 ТБ
  • установите другие диски емкостью 1 ТБ
  • создайте новый деградированный RAID5 + lvm и разделите его так, как вы хотите, с другими дисками
  • скопируйте свои данные с автономного диска емкостью 1 ТБ в деградировавший raid5
  • добавить автономный диск в массив.