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

Восстановите Linux raid1 после переустановки ОС

У меня на сервере 4 диска. sda и sdb были объединены в RAID1 и имели операционную систему. sdc и sdd были вторым устройством RAID1, у которого была одна группа томов с кучей LVM. sdd умер, поэтому мой RAID данных ухудшился. После замены sdd (но до добавления в RAID) grub решил сойти с ума и отказаться от загрузки. Самый быстрый способ исправить это - просто переустановить ОС, так как в ней не было ничего важного.

Я удалил sdc и sdd во время установки, чтобы убедиться, что они не были перезаписаны по ошибке. После завершения установки я вставил диски обратно, и Centos автоматически нашел мою группу томов. Однако sdc больше не был частью RAID-массива.

Он разделен на / dev / sdc1 Linux raid auto detect

Мой вопрос - как я могу использовать mdadm для воссоздания RAID-массива sdc1, sdd1 без потери данных, уже находящихся на sdc?

Мое лучшее предположение заключалось в том, чтобы сначала создать массив только с sdc1, а затем добавить sdd1 после (чтобы он перестраивался с sdc на sdd)

РЕДАКТИРОВАТЬ. Посмотрев снова на вывод / cat / mdstat, я заметил кое-что странное. Мой диск с данными отображался как часть RAID-массива, но один из RAID-массивов моей ОС отсутствовал (и fstab попытался связать мой своп с моим диском данных).

fdisk /dev/sda
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          32      257008+  fd  Linux raid autodetect
/dev/sda2              33        2072    16386300   fd  Linux raid autodetect
/dev/sda3            2073       30401   227552692+  fd  Linux raid autodetect

md1 должен был быть / dev / sda2 и / dev / sdb2, но он отсутствует

cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sdb1[1] sda1[0]
      256896 blocks [2/2] [UU]

md3 : active raid1 sdc1[0]
      1465135936 blocks [2/1] [U_]

md0 : active raid1 sdb3[1] sda3[0]
      227552576 blocks [2/2] [UU]

Когда я пытаюсь создать md2, я получаю:

[root@xen2 ~]# mdadm --create /dev/md1 --level=1 --raid-disks=2 /dev/sda2 /dev/sdb2
mdadm: /dev/sda2 appears to be part of a raid array:
    level=raid1 devices=2 ctime=Wed Aug 15 02:48:06 2012
mdadm: /dev/sdb2 appears to be part of a raid array:
    level=raid1 devices=2 ctime=Wed Aug 15 02:48:06 2012
Continue creating array? n

Сканирование mdadm также показывает, что он отсутствует

[root@xen2 ~]# mdadm --detail --scan
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=0.90 UUID=51ef54bd:770bb58e:90183df1:d82a79c7
ARRAY /dev/md3 level=raid1 num-devices=2 metadata=0.90 UUID=2d7dfb1e:6b091396:a7558ec2:4d288e6f
ARRAY /dev/md2 level=raid1 num-devices=2 metadata=0.90 UUID=ecdd769b:c49d51b6:fe43f166:465b7073

Я не уверен, почему / dev / md1 решил потеряться после перезагрузки, но безопасно ли его восстанавливать?

Да, вам нужно запустить массив в деградированном режиме с помощью sdc drive. Затем вы можете повторно добавить сбойный диск sdd.

Обычно я использую команду mdadm с параметром --assemble для сборки и запуска массива в деградированном режиме, используя только один диск. Что-то вроде этого:

$ mdadm --assemble /dev/md1 /dev/sda2

Возможно, вам придется использовать -f возможность принудительного запуска деградированного массива.

Если это работает нормально, вы можете продолжить, повторно добавив замененный диск.

$ mdadm --re-add /dev/md1 /dev/sdb2

Раньше я использовал эти команды много раз и не испытывал потери данных. Работали без сбоев при исправных дисках.

Меры предосторожности: сделайте резервную копию ваших дисков перед запуском таких команд, чтобы избежать возможной потери данных.