Как исправить & ldquo; mdadm: / dev / sdc1, недостаточно большой, чтобы присоединиться к массиву & rdquo; для трех одинаковых дисков?

После обновления до Ubuntu 12.04 LTS в моем сервере grub начал жаловаться и выдавать ошибки о моем raid-массиве, все, похоже, все еще работает, но это немного расстраивает из-за того, что grub дает ошибки.

Setting up grub-pc (1.99-21ubuntu3.7) ...
error: found two disks with the index 2 for RAID md0.
error: superfluous RAID member (3 found).

Я получаю много таких ошибок при обновлении grub.

Факты таковы: у меня три идентичных диска в наборе raid5, на двух дисках есть один основной раздел, который добавляется в массив, но третий диск добавляется без основного раздела. то есть. mdam --manage /dev/md_d0 --add /dev/sdc

Я предполагаю, что это причина жалобы личинки.

С момента обнаружения этой проблемы я отключил диск, на котором отсутствует основной раздел, создал основной раздел, проверил, что он выглядит так же, как в cfdisk /dev/xxx, а затем Print Partition table. И попытался добавить новый раздел в массив raid, и тогда я получаю сообщение о том, что раздел слишком мал для добавления в массив raid.

> sudo mdadm /dev/md_d0 --add /dev/sdc1

mdadm: /dev/sdc1 not large enough to join array

Все таблицы разделов выглядят одинаково,

 Partition Table for /dev/sdc

               First       Last
 # Type       Sector      Sector   Offset    Length   Filesystem Type (ID) Flag
-- ------- ----------- ----------- ------ ----------- -------------------- ----
   Pri/Log           0        2047*     0#       2048*Free Space           None
 1 Primary        2048* 3907029167*     0  3907027120*Linux raid auto (FD) None

Partition Table for /dev/sdd

               First       Last
 # Type       Sector      Sector   Offset    Length   Filesystem Type (ID) Flag
-- ------- ----------- ----------- ------ ----------- -------------------- ----
   Pri/Log           0        2047*     0#       2048*Free Space           None
 1 Primary        2048* 3907029167*     0  3907027120*Linux raid auto (FD) None

Partition Table for /dev/sde

               First       Last
 # Type       Sector      Sector   Offset    Length   Filesystem Type (ID) Flag
-- ------- ----------- ----------- ------ ----------- -------------------- ----
   Pri/Log           0        2047*     0#       2048*Free Space           None
 1 Primary        2048* 3907029167*     0  3907027120*Linux raid auto (FD) None

Или действительно, если вывести таблицу разделов в формате raw Данные в cfdisk есть некоторые различия, но я не могу понять, что это значит.

-> diff sde.raw sdc.raw 
1c1
 Disk Drive: /dev/sde
---
 Disk Drive: /dev/sdc
30c30
 0x1B0: 00 00 00 00 00 00 00 00 B7 E9 70 74 00 00 00 20
---
 0x1B0: 00 00 00 00 00 00 00 00 4B 0C 58 1C 00 00 00 20

Я понял, что могу попытаться скопировать mbr с одного из рабочих дисков, используя dd, но все равно получаю ту же ошибку, даже если таблица разделов идентична в необработанном выводе cfdisk.

$ sudo dd if=/dev/sdd of=/tmp/sdd-mbr.bin bs=512 count=1
$ sudo dd if=/tmp/sdd-mbr.bin of=/dev/sdc bs=512 count=1
$ cat /proc/partitions
major minor  #blocks  name
   8       48 1953514584 sdd
   8       49 1953513560 sdd1
   8       32 1953514584 sdc
   8       33 1953513560 sdc1
   8       64 1953514584 sde
   8       65 1953513560 sde1

Теперь необработанное сравнение таблицы разделов дает идентичный вывод, и разделы, похоже, имеют одинаковый размер, но я все еще получаю ту же ошибку при попытке добавить /dev/sdc1 в массив ,

Наверное, мой вопрос: есть ли способ исправить это, не разбирая весь массив и не создавая его заново?

Вывод из mdadm -D /dev/md_d0 массива все еще перестраивается так как я снова добавил / dev / sdc.

/dev/md_d0:
        Version : 0.90
  Creation Time : Sat Aug 14 21:06:13 2010
     Raid Level : raid5
     Array Size : 3907028992 (3726.03 GiB 4000.80 GB)
  Used Dev Size : 1953514496 (1863.02 GiB 2000.40 GB)
   Raid Devices : 3
  Total Devices : 3
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Fri Jan 11 18:36:06 2013
          State : clean, degraded, recovering 
 Active Devices : 2
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 64K

 Rebuild Status : 53% complete

           UUID : 74998045:22316376:01f9e43d:ac30fbff (local to host server)
         Events : 0.19988

    Number   Major   Minor   RaidDevice State
       3       8       32        0      spare rebuilding   /dev/sdc
       1       8       64        1      active sync   /dev/sde
       2       8       48        2      active sync   /dev/sdd

Теперь я понимаю, что похоже, что весь массив состоит из реальных устройств, а не из разделов, тогда возникает вопрос, почему sdd1 & amp; Разделы sde1 остаются на жестких дисках и перезаписываются в / dev / sdc, как только я добавляю их в массив.

2
задан 11 January 2013 в 22:52

2 ответа

Вам необходимо отключить HPA на вашем диске.

проверьте, включен ли HPA

$ hdparm -N /dev/sdc

   /dev/sdc:

    max sectors   = 586070255/586072368, HPA is enabled

, затем отключите HPA

$ hdparm -N p586072368 /dev/sdc

«p» необходимо для сохранения после перезагрузки. Чем вам нужно перезагрузить компьютер и добавить диск в RAID

0
ответ дан 11 January 2013 в 22:52

Хорошо, что происходит, вы изначально создали массив из целых дисков без каких-либо разделов. Похоже, что вы, возможно, позже добавили таблицу разделов, которая повреждает массив. Вы не можете добавить раздел диска сейчас, потому что он слишком мал, так как mdadm ожидает весь диск.

Ошибки, которые вы видите в grub, связаны с тем, что в формате метаданных 0.9 он не может определить, должны ли метаданные raid применяться ко всему диску или разделу. Вам следует перестроить массив, используя более новый формат метаданных, и желательно на этот раз сначала разбить отдельные диски.

0
ответ дан 11 January 2013 в 22:52

Другие вопросы по тегам:

Похожие вопросы: