ALT Linux sysadmins discussion
 help / color / mirror / Atom feed
* [Sysadmins] Восстановить mdadm raid5 после двойного сбоя
@ 2009-07-04 11:00 Maxim Tyurin
  2009-07-09 11:03 ` Maxim Tyurin
  0 siblings, 1 reply; 4+ messages in thread
From: Maxim Tyurin @ 2009-07-04 11:00 UTC (permalink / raw)
  To: sysadmins

Hi!

Случилась неприятность с raid.
Был raid5 из четырех дисков
sdb, sdc, sdd, sde

Сначала был сбой на диске sdc
не успел я его переподключить в рейд - вылетает второй диск sdd.

После этого рейд замирает и комп я выключаю (этот рейд не системный)

Загружаюсь с rescue cd и пытаюсь восстановить рейд на последних трех
работающих дисках. Не восстанавливается

mdadm --assemble --force /dev/md0 --force /dev/sdb /dev/sde /dev/sdd
mdadm: /dev/md0 assembled from 2 drives and 1 spare - not enough to
start the array.

mdadm считает что sdd - hot spare 

cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : inactive sdb[0](S) sdd[4](S) sde[3](S)
     1465159488 blocks

unused devices: <none>


cat /sys/block/md0/md/array_state 
inactive

Найденный в Инете совет 
не помогает (да и не работает)
echo "clean" > /sys/block/md0/md/array_state
echo: write error: invalid argument


В суперблоке sdd и записано что он spare.

Два диска видно что активные
mdadm -E /dev/sdb
/dev/sdb:
         Magic : a92b4efc
       Version : 0.90.00
          UUID : cbdfd4d7:eb433e2c:94d4591b:cb0c55f0
 Creation Time : Wed Apr 16 19:31:35 2008
    Raid Level : raid5
 Used Dev Size : 488386496 (465.76 GiB 500.11 GB)
    Array Size : 1465159488 (1397.29 GiB 1500.32 GB)
  Raid Devices : 4
 Total Devices : 2
Preferred Minor : 0

   Update Time : Fri Jul  3 19:13:58 2009
         State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 2
 Spare Devices : 0
      Checksum : 6fa95d6e - correct
        Events : 552701

        Layout : left-symmetric
    Chunk Size : 64K

     Number   Major   Minor   RaidDevice State
this     0       8       16        0      active sync   /dev/sdb

  0     0       8       16        0      active sync   /dev/sdb
  1     1       0        0        1      faulty removed
  2     2       0        0        2      faulty removed
  3     3       8       64        3      active sync   /dev/sde

mdadm -E /dev/sde
/dev/sde:
         Magic : a92b4efc
       Version : 0.90.00
          UUID : cbdfd4d7:eb433e2c:94d4591b:cb0c55f0
 Creation Time : Wed Apr 16 19:31:35 2008
    Raid Level : raid5
 Used Dev Size : 488386496 (465.76 GiB 500.11 GB)
    Array Size : 1465159488 (1397.29 GiB 1500.32 GB)
  Raid Devices : 4
 Total Devices : 2
Preferred Minor : 0

   Update Time : Fri Jul  3 19:13:58 2009
         State : active
 Active Devices : 2
Working Devices : 2
 Failed Devices : 2
 Spare Devices : 0
      Checksum : 6fa95da3 - correct
        Events : 552701

        Layout : left-symmetric
    Chunk Size : 64K

     Number   Major   Minor   RaidDevice State
this     3       8       64        3      active sync   /dev/sde

  0     0       8       16        0      active sync   /dev/sdb
  1     1       0        0        1      faulty removed
  2     2       0        0        2      faulty removed
  3     3       8       64        3      active sync   /dev/sde

А вот sdd записан как hot spare
mdadm -E /dev/sdd
/dev/sdd:
         Magic : a92b4efc
       Version : 0.90.00
          UUID : cbdfd4d7:eb433e2c:94d4591b:cb0c55f0
 Creation Time : Wed Apr 16 19:31:35 2008
    Raid Level : raid5
 Used Dev Size : 488386496 (465.76 GiB 500.11 GB)
    Array Size : 1465159488 (1397.29 GiB 1500.32 GB)
  Raid Devices : 4
 Total Devices : 3
Preferred Minor : 0

   Update Time : Fri Jul  3 16:04:38 2009
         State : clean
Internal Bitmap : present
 Active Devices : 2
Working Devices : 3
 Failed Devices : 2
 Spare Devices : 1
      Checksum : 6fb1a16e - correct
        Events : 552700

        Layout : left-symmetric
    Chunk Size : 64K

     Number   Major   Minor   RaidDevice State
this     4       8       48        4      spare   /dev/sdd

  0     0       8       16        0      active sync   /dev/sdb
  1     1       0        0        1      faulty removed
  2     2       0        0        2      faulty removed
  3     3       8       64        3      active sync   /dev/sde
  4     4       8       48        4      spare   /dev/sdd


Все три диска полностью рабочие. Читаются без ошибок.


Можно лит такой массив восстановить? И переубедить mdadm в том что sdd
не spare, а active?
-- 

With Best Regards, Maxim Tyurin
JID:	MrKooll@jabber.pibhe.com
   ___                                 
  / _ )__ _____  ___ ____ _______ _____
 / _  / // / _ \/ _ `/ _ `/ __/ // (_-<
/____/\_,_/_//_/\_, /\_,_/_/  \_,_/___/
               /___/  

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Sysadmins] Восстановить mdadm raid5 после двойного сбоя
  2009-07-04 11:00 [Sysadmins] Восстановить mdadm raid5 после двойного сбоя Maxim Tyurin
@ 2009-07-09 11:03 ` Maxim Tyurin
  2009-07-14  6:32   ` Vladimir V. Kamarzin
  0 siblings, 1 reply; 4+ messages in thread
From: Maxim Tyurin @ 2009-07-09 11:03 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

Maxim Tyurin writes:

> Загружаюсь с rescue cd и пытаюсь восстановить рейд на последних трех
> работающих дисках. Не восстанавливается
>
> mdadm --assemble --force /dev/md0 --force /dev/sdb /dev/sde /dev/sdd
> mdadm: /dev/md0 assembled from 2 drives and 1 spare - not enough to
> start the array.
>
> mdadm считает что sdd - hot spare 
>
> cat /proc/mdstat
> Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
> md0 : inactive sdb[0](S) sdd[4](S) sde[3](S)
>      1465159488 blocks
>
> unused devices: <none>
>
>
> cat /sys/block/md0/md/array_state 
> inactive

\skip


> В суперблоке sdd и записано что он spare.
>
> Два диска видно что активные

\skip

Рассказываю как восстановил (пусть для истории будет).

Для восстановления нужно знать какой был рейд, его уровень, количество
дисков и какой диск в каком слоте был.
Ну и порядок их вылета тоже совсем не помешает.

У меня был raid5 из 4-х дисков с таким раскладом по слотам
HDD        slot
sdb        0
sdc        1
sdd        2
sde        3

Сначала вылетел sdc, потом sdd

Зная это восстановить просто:
# mdadm --create --verbose /dev/md0 --assume-clean --level=raid5 --raid-devices=4 --spare-devices=0  /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 64K
mdadm: /dev/sdb appears to be part of a raid array:
   level=raid5 devices=4 ctime=Wed Apr 16 19:31:35 2008
mdadm: /dev/sdd appears to be part of a raid array:
   level=raid5 devices=4 ctime=Wed Apr 16 19:31:35 2008
mdadm: /dev/sde appears to be part of a raid array:
   level=raid5 devices=4 ctime=Wed Apr 16 19:31:35 2008
mdadm: size set to 488386496K
Continue creating array? y
mdadm: array /dev/md0 started.

Рейд запустился
# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sde[3] sdd[2] sdc[1] sdb[0]
     1465159488 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]

unused devices: <none>

# cat /sys/block/md0/md/array_state
clean

После этого для минимизации количества сбойных файлов переподключаю
первый вылетевший диск
# mdadm /dev/md0 --fail /dev/sdc && mdadm /dev/md0 --remove /dev/sdc && mdadm /dev/md0 --add /dev/sdc

Подождал пока рейд синхронизируется, обновил описание рейда в
mdadm.conf (mdadm --create создает новый рейд с другим UUID).

После чего запустил LVM который был на рейде и fsck на все файловые
системы.

Вот в принципе и вся success story ;)
-- 

With Best Regards, Maxim Tyurin
JID:	MrKooll@jabber.pibhe.com
   ___                                 
  / _ )__ _____  ___ ____ _______ _____
 / _  / // / _ \/ _ `/ _ `/ __/ // (_-<
/____/\_,_/_//_/\_, /\_,_/_/  \_,_/___/
               /___/  

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Sysadmins] Восстановить mdadm raid5 после двойного сбоя
  2009-07-09 11:03 ` Maxim Tyurin
@ 2009-07-14  6:32   ` Vladimir V. Kamarzin
  2009-07-14  9:04     ` Maxim Tyurin
  0 siblings, 1 reply; 4+ messages in thread
From: Vladimir V. Kamarzin @ 2009-07-14  6:32 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

>>>>> On 09 Jul 2009 at 17:03 "MT" == Maxim Tyurin writes:

MT> Рассказываю как восстановил (пусть для истории будет).

MT> Для восстановления нужно знать какой был рейд, его уровень, количество
MT> дисков и какой диск в каком слоте был.
MT> Ну и порядок их вылета тоже совсем не помешает.

MT> У меня был raid5 из 4-х дисков с таким раскладом по слотам
MT> HDD        slot
MT> sdb        0
MT> sdc        1
MT> sdd        2
MT> sde        3

MT> Сначала вылетел sdc, потом sdd

MT> Зная это восстановить просто:
MT> # mdadm --create --verbose /dev/md0 --assume-clean --level=raid5 --raid-devices=4 --spare-devices=0  /dev/sdb /dev/sdc /dev/sdd /dev/sde
MT> mdadm: layout defaults to left-symmetric
MT> mdadm: chunk size defaults to 64K
MT> mdadm: /dev/sdb appears to be part of a raid array:
MT>    level=raid5 devices=4 ctime=Wed Apr 16 19:31:35 2008
MT> mdadm: /dev/sdd appears to be part of a raid array:
MT>    level=raid5 devices=4 ctime=Wed Apr 16 19:31:35 2008
MT> mdadm: /dev/sde appears to be part of a raid array:
MT>    level=raid5 devices=4 ctime=Wed Apr 16 19:31:35 2008
MT> mdadm: size set to 488386496K
MT> Continue creating array? y
MT> mdadm: array /dev/md0 started.

MT> Рейд запустился
MT> # cat /proc/mdstat
MT> Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
MT> md0 : active raid5 sde[3] sdd[2] sdc[1] sdb[0]
MT>      1465159488 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]

MT> unused devices: <none>

MT> # cat /sys/block/md0/md/array_state
MT> clean

MT> После этого для минимизации количества сбойных файлов переподключаю
MT> первый вылетевший диск
MT> # mdadm /dev/md0 --fail /dev/sdc && mdadm /dev/md0 --remove /dev/sdc && mdadm /dev/md0 --add /dev/sdc

Я не понял, были задействованы вылетевшие диски без замены? Т.е. рэйд собран
заново на тех же самых дисках, и потом последовала их поочерёдная замена?

-- 
vvk

Postfix page on f.i: http://freesource.info/wiki/Dokumentacija/Postfix

Russian Postfix irc: irc.freenode.net #postfix-ru

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Sysadmins] Восстановить mdadm raid5 после двойного сбоя
  2009-07-14  6:32   ` Vladimir V. Kamarzin
@ 2009-07-14  9:04     ` Maxim Tyurin
  0 siblings, 0 replies; 4+ messages in thread
From: Maxim Tyurin @ 2009-07-14  9:04 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

Vladimir V. Kamarzin writes:

> MT> После этого для минимизации количества сбойных файлов переподключаю
> MT> первый вылетевший диск
> MT> # mdadm /dev/md0 --fail /dev/sdc && mdadm /dev/md0 --remove /dev/sdc && mdadm /dev/md0 --add /dev/sdc
>
> Я не понял, были задействованы вылетевшие диски без замены? Т.е. рэйд собран
> заново на тех же самых дисках, и потом последовала их поочерёдная замена?

sdb, sdd, sde те-же
sdc тоже старый но его я вытаскивал и проверял (соотв. сохранность
информации на нем совсем не гарантируется)
-- 

With Best Regards, Maxim Tyurin
JID:	MrKooll@jabber.pibhe.com
   ___                                 
  / _ )__ _____  ___ ____ _______ _____
 / _  / // / _ \/ _ `/ _ `/ __/ // (_-<
/____/\_,_/_//_/\_, /\_,_/_/  \_,_/___/
               /___/  

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-07-14  9:04 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-07-04 11:00 [Sysadmins] Восстановить mdadm raid5 после двойного сбоя Maxim Tyurin
2009-07-09 11:03 ` Maxim Tyurin
2009-07-14  6:32   ` Vladimir V. Kamarzin
2009-07-14  9:04     ` Maxim Tyurin

ALT Linux sysadmins discussion

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \
		sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com
	public-inbox-index sysadmins

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sysadmins


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git