LINUX.ORG.RU
ФорумAdmin

RAID 10. Вышли из строя 2 диска из 4-х. Как определить их положение?

 


0

4

Приветствую!
Сразу скажу - по этим интернетам копался, ответа не нашел (может не прямолинейность ручных манипуляторов у меня обострилась).
Вопрос вот в чем. Есть, вернее был программный RAID 10, у него вышли из строя 2 диска из 4 (Причина кроется в SMART, но не в этом вопрос) Так вот как узнать выпавшие жесткие диски какое положение в данном RAID занимали?


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

Пропадаю часа на полтора, если что-то напишите, по приходу прочитаю.

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

Конечно, сначала:

echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
echo "HOMEHOST sysresccd" >> /etc/mdadm/mdadm.conf
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
а уже потом активировать.

mdadm uses HOMEHOST to determine which partitions to automatically assemble into arrays.

отсюда и md126 и md127.

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

безрезультатно. Ситуация остается прежней

mdadm: /dev/md126 not identified in config file.

одно отличие - файл mdadm.conf располагается в /etc/ (может это и не играет роли).

oS_a
() автор топика
Ответ на: комментарий от petav
root@sysresccd /etc % cat /etc/mdadm.conf
DEVICE partitions
HOMEHOST sysresccd
ARRAY /dev/md/0 metadata=1.2 UUID=2eb3d20c:bb602557:474e35ce:bd2ba657 name=seven:0
oS_a
() автор топика
Ответ на: комментарий от oS_a

Если располагается в /etc значит пишите в /etc, зависит от дистрибутива.

man 5 mdadm.conf

       HOMEHOST
              The homehost line gives a  default  value  for  the  --homehost=
              option  to mdadm.  There should be exactly one other word on the
              line.  It should either exactly <system> or  a  host  name.   If
              <system> is given, then the gethostname(2) systemcall is used to
              get the host name.  When arrays are created, this host name will
              be  stored  in  the  metadata.   When arrays are assembled using
              auto-assembly, only arrays with this host  name  stored  in  the
              metadata will be considered.

Т.е что бы массив собрался в md0, каким он был на исходной системе, нужно в переменную HOMEHOST записать такое имя, каким оно было на исходной машине, так как именно это имя указано в метаданных, и далее mdadm -A /dev/md0. Кстати, появление массива md126 как раз с тем и связано, что эти имена не совпадают. Или попробовать mdadm --homehost=имя_исходной_машины -A /dev/md0 и не править конфиг

mdamd --detail --query /dev/md1

нет такой команды, есть mdadm.

и смотриш, что мигает

что мигает? вы о чем?

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

Пардон, я тут не совсем в проблему вчитался, когда отвечал... игнорируйте меня пожалуста.

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

HOMEHOST seven ввел в mdadm.conf
попытка пересобрать массив

mdadm -A /dev/md0
ошибок не выдает, однако массив не собирается (хотя и другие имена подставлял в NAMEHOST, все осталось так же - ввод команды ошибок не выдает, однако изменений на наблюдаю.)
root@sysresccd /root % cat /proc/mdstat    
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md126 : inactive sdd1[3](S) sdb1[1](S) sdc1[2](S)
      2930279424 blocks super 1.2
       
md127 : inactive sda1[4](S)
      976760536 blocks super 1.2
 sdd1[3](S) sdb1[1](S) sdc1[2](S)
      2930279424 blocks super 1.2
       
md127 : inactive sda1[4](S)
      976760536 blocks super 1.2
возможно все дело в md127 : inactive и состояния дисков в данном массиве? просто это проверить пока нет возможности, остановив массивы скорее всего потребуется ребут, после которого отвалится ssh. еще не совсем понятна правильность значения name=seven:0 в разделе ARRAY. ведь имя-то seven. man adadm.conf говорит сухо что

The value should be a simple textual name as was given to mdadm when the array was created.

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

Мне, как анонимосу, лениво все это читать, можно вопрос - у вас raid 10 и вывалилось 2 диска (с концами, восстановлению не подлежат), вам хочется вытащить данные с оставшихся двух, если они попали в разные зеркала, но вы не можете определить, так ли это?

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

Если бы диски вывалились, разве /proc/mdstat не показал бы UU__ или U_U_? А тут он показывает что все диски S.

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

у вас raid 10 и вывалилось 2 диска

Все верно. у вас явно дар ясновидения, раз вы не читая темы все поняли сами:

вам хочется вытащить данные с оставшихся двух, если они попали в разные зеркала, но вы не можете определить, так ли это?

попали в точку. Тут даже вопрос не в восстановлении данных (хотя это тоже не мало важно), а в запуске этого самого массива.

oS_a
() автор топика
Ответ на: комментарий от petav

/proc/mdstat не показал бы UU__ или U_U_

разве это справедливо для не активного массива?
сразу пардонюсь, но развалившийся таким образом массив впервые вижу и не перестаю удивляться.

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

Тоесть диски физически работают, даже те, которые вывалились, так?

Посмотреть, какой диск какое месть занимал можно чтением суперблока mdadm --examine /dev/sda1 и т.д.

Должно быть что-то вроде

...Фигня...
Layout: near=2
...Фигня...
Device role: Inactive device <номер девайса>
...Фигня...

Если у вас так, то первое зеркало - это первые два диска (в порядке определения системой), вторые два - второе зеркало.

Сделайте копию данных с дисков (на всякий случай, сломаться не должно по-идее) и попробуйте запустить массив принудительно:

mdadm --assemble --force /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

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

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

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

Device role: Inactive device <номер девайса>

В моем случае все диски Device role: _active_ device. при этом

sda1 Array State : AA..
sdb1 Array State : AA..
sdc1 Array State : AAA.
sdd1 Array State : AAAA

7-м чувством чую mdadm --assemble --force ни чем хорошим не закончится. или не обосновано?

oS_a
() автор топика
Ответ на: комментарий от anonymous

Device role: Inactive device <номер девайса>

В моем случае все диски Device role: _active_ device. при этом

sda1 Array State : AA..
sdb1 Array State : AA..
sdc1 Array State : AAA.
sdd1 Array State : AAAA

7-м чувством чую mdadm --assemble --force ни чем хорошим не закончится. или не обосновано?

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

Скажем так, я собирал таким образом RAID5 из четырех дисков, в котором 2 диска временно отключились из-за неисправности прошивки дисков (судя по всему). Судя по логам, mdadm --assemble --force просто выбирает из двух убитых дисков нииболее живой (в котором лог событий имеет более поздние записи), перезаписывает на нем лог, а второй диск считает потерянным и добавленным, и по нему начинает resync.

ОТДЕЛЬНЫЕ ЛУЧИ ПОНОСА КОМПАНИИ SEAGATE - у меня были почти такие же диски, как у вас, только емкость другая - ST2000DL003-9VT166

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

Вот если пересоздавать RAID0 из непарных дисков RAID10, то, если ошибемся с номерами дисков, точно останемся без данных )))

Погуглите насчет --force, вроде бы у многих получалось

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

Все, получилось!
RAID собрался. Все очень не прямо правда, но факт в том что система запустилась.
Спасибо всем!

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