LINUX.ORG.RU
решено ФорумAdmin

Проблемы с mdstat

 ,


0

2

1. Настроен RAID-6. C некоторого времени не могу открыть /proc/mdstat:

cat /proc/mdstat
зависает - убиваю процесс по Ctrl+C.
Что могло произойти и куда копать? Массив смонтирован и доступен. Как проверить состояние массива без mdstat?

Еще вопрос: [не нашел нормальной инфы] как замаппить определенные жесткие диски на определенные системные имена, чтобы после добавлении нового ЖД и перезагрузки системы их системные имена не сдвигались?

★★★★

1. Что в это «последнее время» происходило в системе (обновление,...)? в dmesg-е нет ругани на тему рейда.

2. LVM наше все.

vel ★★★★★
()

Как проверить состояние массива без mdstat?

mdadm -D; mdadm -X (или -x)

Еще вопрос: [не нашел нормальной инфы] как замаппить определенные жесткие диски на определенные системные имена, чтобы после добавлении нового ЖД и перезагрузки системы их системные имена не сдвигались?

ШТО. Хочешь переизобрести /dev/disk/by-*?

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

Обновлений не было. в dmesg нашел вот такое:

ata1.00: exception Emask 0x10 SAct 0x7ffffffd SErr 0x280100 action 0x6 frozen
[554871.804676] ata1.00: irq_stat 0x08000000, interface fatal error
[554871.804779] ata1: SError: { UnrecovData 10B8B BadCRC }
[554871.804863] ata1.00: failed command: READ FPDMA QUEUED
[554871.804947] ata1.00: cmd 60/80:00:80:7c:eb/00:00:0c:00:00/40 tag 0 ncq 65536 in
[554871.804950]          res 40/00:d4:00:88:eb/00:00:0c:00:00/40 Emask 0x10 (ATA bus error)
[554871.805234] ata1.00: status: { DRDY }
и такое:
INFO: task jbd2/md127-8:170326 blocked for more than 120 seconds.
[8050322.297593] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[8050322.302302] jbd2/md127-8  D ffff880254b74540     0 170326      2    0 0x00000080
[8050322.307019]  ffff88025dcf99f0 0000000000000046 ffff88025dcf9990 ffffffff8104e3c9
[8050322.311823]  00000000000009e9 0000000300000001 ffff88025dcf99a0 ffff88025a229b10
[8050322.316618]  0000000000000086 ffff880254b74b08 ffff88025dcf9fd8 ffff88025dcf9fd8

LVM наше все.

Ну это ваше... но не наше )

Хочешь переизобрести /dev/disk/by-*?

При монтировании отдельных разделов на хардах - понятно - в fstab, а как быть если харды в массиве? Есть отсылки на udev, но конкретных примеров не нашел.

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

[554871.804779] ata1: SError: { UnrecovData 10B8B BadCRC }
[554871.804863] ata1.00: failed command: READ FPDMA QUEUED

Превед. Например кабель вылетел.

При монтировании отдельных разделов на хардах - понятно - в fstab, а как быть если харды в массиве?

А чо не так? mdadm во всех нормальных дистрибутивах собирает массивы по UUID (не связано с теми, что на ФС) в суперблоках, поэтому пофиг на «/dev/sd?». Если у тебя не так, то поправь свой mdadm.conf

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

По mdadm -D информация по массиву не выводится.

В mdstat прописано так:

ARRAY /dev/md2 metadata=1.1 name=localhost.localdomain:2 UUID=df0c62c0:b4b76ca7:2f1c5330:57879102
ARRAY /dev/md1 metadata=1.1 name=localhost.localdomain:1 UUID=3cee1e3c:b4c21d57:6380c302:8c87d4ac
ARRAY /dev/md127 metadata=1.2 name=localhost.localdomain:127 UUID=f158e200:0c6c40f0:f1e6ab91:986a95f6
1 и 2 - это системные разделы RAID-1
127 - RAID-6

ata1 в приведенной выше ошибке относится к системному массиву... Видимо, дело в нем.

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

По mdadm -D информация по массиву не выводится.

Ты ведь заглянул в ман или хотя бы подумал немного, прежде чем вводить команду без аргументов? Или оно не хочет ничего говорить о работающем массиве?

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

Странно. И даже завершается с нулевым кодом выхода? Как вариант, можно ещё mdadm -E с компонентами. Хотя набор данных, конечно, другой, но получить представление о состоянии массива позволит.

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

И даже завершается с нулевым кодом выхода?

извиняюсь, не уточнил - процесс просто виснет - ждал минуту - потом убил через Ctrl+C

Igorrr ★★★★
() автор топика
Ответ на: комментарий от edyard
ps ax | grep mdadm
   1602 ?        Ss     0:02 mdadm --monitor --scan -f --pid-file=/var/run/mdadm/mdadm.pid
Igorrr ★★★★
() автор топика

сервер? возможен ли ребут? возможен ли простой?

имхо, проверять лучше все не с смонтированным массивом, а загрузившись к примеру с liveCD/флешки. я бы перед проверкой raid, проверил бы диски (mhdd или подобным).

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

У тебя какие-то крепкие проблемы с железом скорее всего. Такие ошибки об этом и свидетельствуют.

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

сервер? возможен ли ребут? возможен ли простой?

да, да, да ))
Просто хочу решить проблему не ребутая, если это возможно. Но что-то мне подсказывает...

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

″strace″ на ″mdstat″ показывает, что тот тоже читает /proc/mdstat. Не знаю, нужно ли ему это, или он сможет отработать в chroot-окружении, где нет /proc.

Попробуйте поработать с отдельными дисками, допустим через ″hdparm -i″, может будет понятно, какой диск отпал. Может получится выкинуть его из системы через

echo 1 > /sys/block/sdb/device/delete

хотя, если ошибиться с диском, может RAID порушится.

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

будет понятно, какой диск отпал

В системе все диски на месте (смотрел по ls -a /dev | grep sd)
посмотрел диски по hdparm -i, произошел затык на sdc - причем процесс висит и не удаляется через kill:

555642 ?        D      0:00 hdparm -i /dev/sdc
Нихрена не понимаю, что случилось... Завтра ребутну.

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

посмотрел диски по hdparm -i, произошел затык на sdc - причем процесс висит и не удаляется через kill:

Нихрена не понимаю, что случилось... Завтра ребутну.

посмотри в dmesg на предмет sdc, а так же в логи за предыдущие дни (messages или там kern.log), наверняка будет какая-нибудь ругань с OOPS

dmesg|grep -i sdc
grep -i sdc /var/log/*
zgrep -i sdc /var/log/*.gz
bzgrep -i sdc /var/log/*.bz
slash
()
Ответ на: комментарий от slash

в dmesg все в порядке.
а вот из boot.log вылезло интересное:

var/log/boot.log-20120305:ERROR: asr: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120305:ERROR: ddf1: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120305:ERROR: ddf1: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120305:ERROR: hpt37x: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120305:ERROR: hpt45x: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120305:ERROR: isw: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120305:ERROR: jmicron: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120305:ERROR: lsi: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120305:ERROR: nvidia: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120305:ERROR: pdc: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120305:ERROR: pdc: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120305:ERROR: pdc: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120305:ERROR: pdc: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120305:ERROR: pdc: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120305:ERROR: pdc: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120305:ERROR: pdc: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120305:ERROR: pdc: reading /dev/sdc[Input/output error]
<...>
/var/log/boot.log-20120329:ERROR: asr: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120329:ERROR: ddf1: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120329:ERROR: ddf1: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120329:ERROR: hpt37x: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120329:ERROR: hpt45x: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120329:ERROR: isw: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120329:ERROR: jmicron: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120329:ERROR: lsi: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120329:ERROR: nvidia: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120329:ERROR: pdc: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120329:ERROR: pdc: reading /dev/sdc[Input/output error]
/var/log/boot.log-20120329:ERROR: pdc: reading /dev/sdc[Input/output error]
<...>
Похоже диск загибается...
Но самый вопрос - почему команды не отрабатываются и зависают?...

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

почему команды не отрабатываются и зависают

Похоже, что где-то в драйвере ядра не предусмотрели подобное поведение железа, возможно что это не помирающий НЖМД, а что-то с контроллером. Обычно после сообщения:

[554871.805234] ata1.00: status: { DRDY }

Идёт сообщение:

ata1: hard resetting link

Странно, что его у вас нету.

А сообщения «ERROR: asr: reading /dev/sdc[Input/output error]» относятся к dmraid и, ЕМНИП, ничего страшного не означают, просто что dmraid пытался собрать fake-raid различных форматов и у него не получилось.

mky ★★★★★
()

УРА!

Забыл отписать, что выяснил после перезагруза системы.
Вышел из строя диск на отдельном контроллере Adaptec. Утилита arcconf всё честно показала:

Device #1
         Device is a Hard drive
         State                              : Failed
         Supported                          : Yes
         Transfer Speed                     : Failed
         Reported Channel,Device(T:L)       : 0,1(1:0)
         Reported Location                  : Connector 1, Device 1
         Vendor                             : WDC
         Model                              : WD20EADS-00W4B0
         Firmware                           : 01.00A01
         Serial number                      : WD-WCAVY4355219
         Size                               : 0 MB
         Write Cache                        : Unknown
         FRU                                : None
         S.M.A.R.T.                         : No
         S.M.A.R.T. warnings                : 0
         NCQ status                         : Disabled
Состояние массива при этом выглядело так:
cat /proc/mdstat 
Personalities : [raid1] [raid0] [raid6] [raid5] [raid4] 
md127 : inactive sdd1[1](S) sdh1[6](S) sdg1[5](S) sdf1[3](S) sde1[2](S) sdc1[0](S)
      11711576058 blocks super 1.2
После остановки и попытки сборки командой mdadm --assemble --scan состояние массива не изменилось.

Остановил массив и вернул к жизни командой:

# mdadm -v --assemble --force /dev/md127 /dev/sd{c,d,e,f,g,h}1
mdadm: looking for devices for /dev/md127
mdadm: /dev/sdc1 is identified as a member of /dev/md127, slot 0.
mdadm: /dev/sdd1 is identified as a member of /dev/md127, slot 1.
mdadm: /dev/sde1 is identified as a member of /dev/md127, slot 2.
mdadm: /dev/sdf1 is identified as a member of /dev/md127, slot 3.
mdadm: /dev/sdg1 is identified as a member of /dev/md127, slot 5.
mdadm: /dev/sdh1 is identified as a member of /dev/md127, slot 6.
mdadm: Marking array /dev/md127 as 'clean'
mdadm: added /dev/sdc1 to /dev/md127 as 0
mdadm: added /dev/sde1 to /dev/md127 as 2
mdadm: added /dev/sdf1 to /dev/md127 as 3
mdadm: no uptodate device for slot 4 of /dev/md127
mdadm: added /dev/sdg1 to /dev/md127 as 5
mdadm: added /dev/sdh1 to /dev/md127 as 6
mdadm: added /dev/sdd1 to /dev/md127 as 1
mdadm: /dev/md127 has been started with 6 drives (out of 7)
стало так:
# cat /proc/mdstat 
Personalities : [raid1] [raid0] [raid6] [raid5] [raid4] 
md127 : active raid6 sdd1[1] sdh1[6] sdg1[5] sdf1[3] sde1[2] sdc1[0]
      9751728640 blocks super 1.2 level 6, 512k chunk, algorithm 2 [7/6] [UUUU_UU]

Остался вопрос: можно ли делать chkfs на неполном массиве?

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