Автор Тема: Как на лету восстановить SoftRAID1 в Линуксе?  (Прочитано 1398 раз)

Оффлайн Ilya Evseev

  • Участник
  • *
  • Сообщений: 52
Имеется RAID1, сделан через mdadm, рассыпался при сбое питания:

# mdadm -D /dev/md2
/dev/md2:
        Version : 00.90.03
  Creation Time : Mon Jun 30 15:30:22 2008
     Raid Level : raid1
     Array Size : 204796544 (195.31 GiB 209.71 GB)
  Used Dev Size : 204796544 (195.31 GiB 209.71 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 2
    Persistence : Superblock is persistent

    Update Time : Fri Jul  3 22:15:39 2009
          State : clean, degraded
 Active Devices : 1
Working Devices : 1
 Failed Devices : 1
  Spare Devices : 0

           UUID : ad1a23ec:d3e5f6c4:2bb9068d:214a3c20
         Events : 0.452106

    Number   Major   Minor   RaidDevice State
       0       8        4        0      active sync   /dev/sda4
       1       0        0        1      removed

       2       8       20        -      faulty spare   /dev/sdb4

Вопрос: как вернуть диск из состояния "faulty spare" в рабочее?

"mdadm /dev/md2 -r /dev/sdb4" отрабатывает,
но "mdadm /dev/md2 -a /dev/sdb4" или "--re-add" ругаются:
mdadm: add new device failed for /dev/sdb4 as 2: Invalid argument
По strace видно, что ошибка происходит при выполнении
ioctl(3, 0x40140921, 0x7fffe26586f0) на /dev/md2.

Помогает перезагрузка в single mode: добавление проходит,
начинается синхронизация, но после "telinit 3" диск снова оказывается "faulty spare".
Ждать сутки, пока в single mode закончится синхронизация, не привлекает.

Оффлайн Kompas

  • Участник
  • *
  • Сообщений: 72
Придется ждать сутки, чтоб вам ответили.