Есть ли способ заменить диск RAID 5, не подведя его сначала?

346
Rodrigo

У меня есть программный RAID-5, состоящий из 3 дисков, назовите их A, B, C. Я хотел бы заменить старый диск C новым и более емким, чтобы в конечном итоге расширить массив. Это в системе Ubuntu 16.04 с запущенным mdadm для управления дисками.

При поиске в Интернете рекомендуется перевести диск C в автономный режим, установив режим сбоя, удалить его из массива, добавить новый диск D и разрешить повторную синхронизацию массива. Я беспокоюсь о том, что во время процесса повторной синхронизации (порядка суток для диска емкостью 1,5 ТБ) массив хрупок и может быть потерян в случае отказа дисков A или B.

Есть ли способ вместо этого добавить новый диск D в массив и позволить ему сначала «зеркалировать / синхронизировать» содержимое диска C, а затем просто сбить / удалить диск C таким образом, чтобы массив не нуждался в повторной синхронизации?

Примечание: я отредактировал некоторые термины, чтобы прояснить проблему благодаря комментариям

0
Вы задаете неправильный вопрос. Если вы назвали свои данные, прекратите использовать RAID5 - он не считается надежным после 2 ТБ общего хранилища. Может быть, посмотрите на переход на RAID10. davidgo 6 лет назад 0
Ваша терминология неверна. Вы не «ломаете» диск, вы делаете его * автономным *. Кроме того, вы не упоминаете ОС или программное обеспечение RAID. Это будет ограничивающим фактором. Keltari 6 лет назад 0

2 ответа на вопрос

0
Austin Hemmelgarn

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

  • Измените массив, чтобы включить новый диск, а затем измените его снова, чтобы удалить старый диск. Практически любая здравомыслящая программная реализация RAID должна быть в состоянии сделать это, большинство из них также онлайн, хотя это ужасно неэффективно.
  • Добавьте новый диск в массив в качестве «горячего» резерва, выйдите из строя старый, а затем удалите старый из массива (так как теперь он должен рассматриваться массивом как «горячий» резерв). Обычно это поддерживается большинством программных реализаций RAID и является гораздо более эффективным, чем первый вариант (он восстанавливает четность только один раз, а не дважды).
  • Если у вас действительно хорошая реализация программного RAID или вы используете BTRFS (или, возможно, ZFS, я не знаю, поддерживают ли они это или нет), вы можете заменить диск, даже не восстанавливая массив. Для BTRFS это делается с помощью btrfs device replaceкоманды, которая, по сути, делает онлайн-клонирование старого устройства.
Спасибо за этот указатель. Я посмотрю на BTRFS и ZFZ. Я использую mdadm. Rodrigo 6 лет назад 0
@Rodrigo Просто предварительное предупреждение относительно BTRFS, он использует терминологию, как RAID, но есть некоторые довольно важные различия между поведением BTRFS и классическим RAID (RIAD1, например, в настоящее время только 2 копии на BTRFS, независимо от того, сколько устройств у вас в объем). Austin Hemmelgarn 6 лет назад 0
Спасибо @ Остин. Я изучил BTRFS и RAID-5 выглядит реализованным, но еще не зрелым. Вместо этого я узнал, что mdadm может на самом деле - заменить диск. Это именно то, что я искал и пойду по этому пути. Rodrigo 6 лет назад 0
0
plugwash

Это похоже на копию https://unix.stackexchange.com/questions/74924/how-to-safely-replace-a-not-yet-failed-disk-in-a-linux-raid5-array

Согласно принятому там ответу, при условии, что у вас есть по крайней мере mdadm 3.3 и ядро ​​3.2 (afaict ubuntu 16.04 делает), вы сначала добавляете устройство как запасное, а затем говорите mdadm, что хотите заменить старый диск на новый.

# mdadm /dev/md0 --add /dev/sdc1 # mdadm /dev/md0 --replace /dev/sdd1 --with /dev/sdc1 

Где sdc1 - новый диск, а sdd1 - старый диск.

Да!!! Это именно то, что я искал. Спасибо. Rodrigo 6 лет назад 0