LINUX.ORG.RU
ФорумAdmin

Беда с raid массивом

 , , ,


0

1

Приветствую!

Столкнулся с проблемой при замене одного из жёстких дисков в raid массиве.

Был заменён диск sda. Сделал его добавление в массив.

mdadm /dev/md0 -a /dev/sda1
mdadm /dev/md1 -a /dev/sda2
mdadm /dev/md2 -a /dev/sda3

После этого состояние рейд массива выглядит так:

cat /proc/mdstat
Personalities : [raid1] 
md2 : active raid1 sda3[2](S) sdb3[1]
      200217088 blocks super 1.2 [2/1] [_U]
      
md1 : active raid1 sda2[2] sdb2[1]
      523968 blocks super 1.2 [2/2] [UU]
      
md0 : active raid1 sda1[2](S) sdb1[1]
      33537920 blocks super 1.2 [2/1] [_U]
      
unused devices: <none>

Если убрать sda из md0, или md2 и попытаться добавить его заново, становится ясно что синхронизация прерывается не дойдя до конца.

Никогда с таким не сталкивался, что можно сделать чтобы для sda было U? Потому что sdb тоже нужно поменять.


Ответ на: комментарий от fbiagent

Выполнял это:

sgdisk --backup=part_gpt.bak /dev/sdb
sgdisk --load-backup=part_gpt.bak /dev/sda
sgdisk -G /dev/sda

Как сейчас можно проверить что они одинаковые?

VMerk ()

Убедись, что оба диска подключены к одному контроллеру.

Я однажды, по молодости, «пересобирал» RAID, воткнув новую половинку зеркала в USB вместо SATA. Чуть не запорол все данные.

Bass ★★★★★ ()
Ответ на: комментарий от fbiagent

Вот вывод:

# fdisk -l

Disk /dev/sdb: 240.1 GB, 240057409536 bytes
255 heads, 63 sectors/track, 29185 cylinders, total 468862128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00048fb8

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    67110912    33554432+  fd  Linux raid autodetect
/dev/sdb2        67112960    68161536      524288+  fd  Linux raid autodetect
/dev/sdb3        68163584   468860080   200348248+  fd  Linux raid autodetect

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sda: 240.1 GB, 240057409536 bytes
255 heads, 63 sectors/track, 29185 cylinders, total 468862128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00048fb8

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048    67110912    33554432+  fd  Linux raid autodetect
/dev/sda2        67112960    68161536      524288+  fd  Linux raid autodetect
/dev/sda3        68163584   468860080   200348248+  fd  Linux raid autodetect

Disk /dev/md0: 34.3 GB, 34342830080 bytes
2 heads, 4 sectors/track, 8384480 cylinders, total 67075840 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/md0 doesn't contain a valid partition table

Disk /dev/md1: 536 MB, 536543232 bytes
2 heads, 4 sectors/track, 130992 cylinders, total 1047936 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/md1 doesn't contain a valid partition table

Disk /dev/md2: 205.0 GB, 205022298112 bytes
2 heads, 4 sectors/track, 50054272 cylinders, total 400434176 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/md2 doesn't contain a valid partition table
# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Mon Feb 17 14:10:56 2014
     Raid Level : raid1
     Array Size : 33537920 (31.98 GiB 34.34 GB)
  Used Dev Size : 33537920 (31.98 GiB 34.34 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Sat Jun  9 11:36:32 2018
          State : clean, degraded 
 Active Devices : 1
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 1

           Name : rescue:0
           UUID : 084cb76b:60ec53ac:8bc8164e:9d4fb058
         Events : 1980

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       17        1      active sync   /dev/sdb1

       2       8        1        -      spare   /dev/sda1
# mdadm -D /dev/md2
/dev/md2:
        Version : 1.2
  Creation Time : Mon Feb 17 14:10:57 2014
     Raid Level : raid1
     Array Size : 200217088 (190.94 GiB 205.02 GB)
  Used Dev Size : 200217088 (190.94 GiB 205.02 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Sat Jun  9 12:12:07 2018
          State : active, degraded 
 Active Devices : 1
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 1

           Name : rescue:2
           UUID : 0dd43715:2fa1e69d:3e614fa9:5783c2d2
         Events : 122744

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       19        1      active sync   /dev/sdb3

       2       8        3        -      spare   /dev/sda3
VMerk ()
Ответ на: комментарий от fbiagent

Лучше подсказать) Думаю проблема в этом

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.

но что с этим делать я всё равно не знаю.

VMerk ()
Ответ на: комментарий от VMerk

Во-первых, у тебя sdb размечен в gpt, а sda - в mbr. Но это не критично.
Во-вторых, медитируй над строчками removed и spare. (правильно удали старый диск и добавь новый)

fbiagent ★★★ ()

Как диск из массива удаляли? Так:

mdadm --manage /dev/md0 --fail /dev/sda1
mdadm --manage /dev/md0 --remove /dev/sda1
после этого меняем диск. Потом (тут важно не напутать, кто там sda, кто sdb):
sfdisk -d /dev/sdb | sfdisk /dev/sda
mdadm --manage /dev/md0 --add /dev/sdb1

http://avreg.net/howto_software-raid-replacing-faulty-drive.html

Вам надо удалить диск из массива и в выводе mdadm -D будет только один диск, после чего уже добавить

samson ★★ ()
Последнее исправление: samson (всего исправлений: 2)
Ответ на: комментарий от PunkoIvan

Всё верно, mdadm, программный RAID. Но у разных контроллеров на аппаратном уровне разный размер «кванта записи».

И mdadm из-за этого может сойти с ума.

Вот здесь: https://serverfault.com/questions/216080/does-mdadm-allow-to-mix-sata-drives-..., впрочем, утверждается, что всё должно работать, но я (и не только я один) наблюдал обратное.

Bass ★★★★★ ()
Последнее исправление: Bass (всего исправлений: 1)

Если убрать sda из md0, или md2 и попытаться добавить его заново, становится ясно что синхронизация прерывается не дойдя до конца.

Смотри логи. Ошибки I/O. Помирает либо sda, и тебе нужен нормальный диск для замены. Либо sdb, и тебе нужно поторопиться, пока есть что спасать - скорее всего, копровать через dd с пропуском битых секторов

В лучшем случае у тебя диск отваливается из-за паршивого кабеля, такое тоже бывает

router ★★★★★ ()
Ответ на: комментарий от router

+еще SMART инфу можно посмотреть:

$ sudo smartctl --all /dev/sda
$ sudo smartctl --all /dev/sdb

samson ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.