понедельник, 4 февраля 2013 г.

hetzner.de проблемы с жесткими дисками

В связи с очередным сбоем на хетснеровских серверах раскопал и вернул черновик в строй.

Сегодня в выходной меня разбудили и сообщили, что сервер, расположенный у любимого мною хостера совсем молчит и что это не есть хорошо, поскольку он не партизан в плену, а боевой сервер.
Краткое расследование показало проблемы с /dev/sda
=============================================================
Feb  3 11:50:36 hz kernel: ata1.00: exception Emask 0x0 SAct 0x1c SErr 0x0 action 0x0
Feb  3 11:50:36 hz kernel: ata1.00: irq_stat 0x40000008
Feb  3 11:50:36 hz kernel: ata1.00: failed command: READ FPDMA QUEUED
Feb  3 11:50:36 hz kernel: ata1.00: cmd 60/f8:10:a8:2c:18/00:00:a8:00:00/40 tag 2 ncq 126976 in
Feb  3 11:50:36 hz kernel:         res 41/40:f8:98:2d:18/00:00:a8:00:00/00 Emask 0x409 (media error) <F>
Feb  3 11:50:36 hz kernel: ata1.00: status: { DRDY ERR }
Feb  3 11:50:36 hz kernel: ata1.00: error: { UNC }
Feb  3 11:50:37 hz kernel: ata1.00: configured for UDMA/133
Feb  3 11:50:37 hz kernel: ata1: EH complete
Feb  3 11:50:41 hz kernel: ata1.00: exception Emask 0x0 SAct 0x4 SErr 0x0 action 0x0
Feb  3 11:50:41 hz kernel: ata1.00: irq_stat 0x40000008
Feb  3 11:50:41 hz kernel: ata1.00: failed command: READ FPDMA QUEUED
Feb  3 11:50:41 hz kernel: ata1.00: cmd 60/f8:10:a8:2c:18/00:00:a8:00:00/40 tag 2 ncq 126976 in
Feb  3 11:50:41 hz kernel:         res 41/40:f8:98:2d:18/00:00:a8:00:00/00 Emask 0x409 (media error) <F>
Feb  3 11:50:41 hz kernel: ata1.00: status: { DRDY ERR }
Feb  3 11:50:41 hz kernel: ata1.00: error: { UNC }
Feb  3 11:50:41 hz kernel: ata1.00: configured for UDMA/133
Feb  3 11:50:41 hz kernel: ata1: EH complete
=============================================================
# hdparm -t /dev/sda
 /dev/sda:
 Timing buffered disk reads:  28 MB in  3.07 seconds =   9.13 MB/sec
=============================================================
cat /proc/mdadm сообщал, что он в курсе происходившего и ведет проверку (recheck) массивов, на что просит не много не мало а полтора года (размер дисков по 3Tb). А все виртуальные машины на сервере начали вести себя очень плавно и неспеша. Я естественно расстроился такому повороту событий, поскольку за полтора года меня четвертуют, колесуют и на кол посадят за тормозящие корп сайты. Гугл вселил в меня надежду, что проблема моя далеко не нова и что помочь ей можно сменив шлейф, винт ну или на крайняк контроллер - это кому уж как повезет.
Не мудрствуя лукаво я заполнил форму на robot.your-server.de в разделе requests. Где в наиболее подходящем из шаблонов ( requests - Dedicated and Virtual Server requests... - Server problems - Hard drive is broken) мне предлагалось описать с каким из винтов у меня проблемы, указать серийный номер и привести кусок логов, который поверг меня в наибольший восторг. Именно это я и сделал, не забыв указать в примечаниях, что я не уверен в настройках BIOS и тому как сервер отнесется к смене загрузочного диска.

Примерно через пол часа я получил ответ с просьбой выслать вывод от smartctl --all /dev/sda и советом почитать статьи из их базы знаний
http://wiki.hetzner.de/index.php/SMART/en - первая рассказывает о нелегких буднях smartctl и о том как правильно ее использовать во благо
http://wiki.hetzner.de/index.php/Festplattenaustausch_im_Software-RAID/en - вторая как оказалось имеет русский перевод 
http://wiki.hetzner.de/index.php/Festplattenaustausch_im_Software-RAID/ru - и содержит подробные инструкции по смене диска в RAID массиве.
Первое я незамедлительно выслал, а сам тем временем начал сверять свои действия с инструкцией и убедившись, что все выполнил правильно, так же рапортовал об этом саппорту.
Саппорт как оказалось тоже умеет гуглить и умеет считать свои денежки, видимо поэтому они первым делом предложили мне не горячиться, а попробовать начать с замены шлейфа. Я незамедлительно согласился, дав так-же свое согласие на кратковременное отключение сервера для совершения сего действа. Спустя пол часа отсутствия сервера в сети я забил тревогу и написал в саппорт, что что-то видимо пошло не так, поскольку сервер по прежнему на запросы не отвечает и в сети не виден как мне, так и сайту управления хостингом. Ответ меня несколько удивил и порадовал - мне дали шанс увидеть консоль своего сервака.
=============================================================
Dear Client.
We have connected a remote console (LARA) to your server for check this.
Access details:
Username: **
Password: ***
More information can be found in our wiki:
=============================================================
Правда радость моя не была долгой, Error:Authentication failed. обломил мои ожидания. Зато пока я тыкался в ЛАРУ коварные саппортеры успели таки ребутнуть и поправить загрузку сервака (а может просто забыли включить)) или холодный старт сервера у них занимает более получаса - ну там с каким нибудь аппаратным тестированием памяти/вентиляторов/еще чего полезного).
Однако факт, что я получил обратно свой сервак с заработавшими винтами
=============================================================
# hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads:   27346 MB in  2.00 seconds = 13688.79 MB/sec
 Timing buffered disk reads: 510 MB in  3.01 seconds = 169.66 MB/sec
=============================================================
И настала пора возвращать разделы в RAID из которого, как оказалось, я зря их вывел. Вот только автоматическое определение дисков не дало мне и тут поскучать и оставшиеся бесхозными разделы были определены как новые RAID массивы
=============================================================
# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md125 : active (auto-read-only) raid1 sda1[0]
      33553336 blocks super 1.2 [2/1] [U_]

md126 : active (auto-read-only) raid1 sda2[0]
      524276 blocks super 1.2 [2/1] [U_]

md127 : active raid1 sda3[0]
      2896184639 blocks super 1.2 [2/1] [U_]

md2 : active raid1 sdb3[1]
      2896184639 blocks super 1.2 [2/1] [_U]

md1 : active (auto-read-only) raid1 sdb2[1]
      524276 blocks super 1.2 [2/1] [_U]

md0 : active (auto-read-only) raid1 sdb1[1]
      33553336 blocks super 1.2 [2/1] [_U]

unused devices: <none>
=============================================================
Но тут уже было все просто и первые два раздела были добавлены за пару минут:
=============================================================
# mdadm -S /dev/md125
# mdadm --manage /dev/md0 --add /dev/sda1
# cat /proc/mdstat

Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md126 : active (auto-read-only) raid1 sda2[0]
      524276 blocks super 1.2 [2/1] [U_]

md127 : active raid1 sda3[0]
      2896184639 blocks super 1.2 [2/1] [U_]

md2 : active raid1 sdb3[1]
      2896184639 blocks super 1.2 [2/1] [_U]

md1 : active (auto-read-only) raid1 sdb2[1]
      524276 blocks super 1.2 [2/1] [_U]

md0 : active raid1 sda1[2] sdb1[1]
      33553336 blocks super 1.2 [2/1] [_U]
      [>....................]  recovery =  2.4% (812160/33553336) finish=6.0min speed=90240K/sec
=============================================================
А вот повторив операцию с последним я напоролся на ошибочку
=============================================================
# mdadm -S /dev/md127
mdadm: failed to stop array /dev/md127: Device or resource busy
Perhaps a running process, mounted filesystem or active volume group?

# vgscan
  Reading all physical volumes.  This may take a while...
  Found duplicate PV RrnPfgBunCs217VgnxsZifyY9Lxw42Jx: using /dev/md127 not /dev/md2
  Found volume group "vg0" using metadata type lvm2
=============================================================
самым простым мне показалось поправить /etc/lvm/lvm.conf и перегрузиться
=============================================================
filter = [ "a|^/dev/md2$|", "r/.*/" ]
=============================================================
# reboot
...
# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "vg0" using metadata type lvm2
# pvdisplay
  --- Physical volume ---
  PV Name               /dev/md2
  VG Name               vg0
  PV Size               2.70 TiB / not usable 1.31 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              707076
  Free PE               367876
  Allocated PE          339200
  PV UUID               RrnPfg-BunC-s217-Vgnx-sZif-yY9L-xw42Jx

# mdadm -S /dev/md127
# mdadm --manage /dev/md2 --add /dev/sda3
mdadm: added /dev/sda3

 # cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sda3[2] sdb3[1]
      2896184639 blocks super 1.2 [2/1] [_U]
      [>....................]  recovery =  0.0% (2571392/2896184639) finish=731.4min speed=65933K/sec

md1 : active raid1 sda2[2] sdb2[1]
      524276 blocks super 1.2 [2/2] [UU]

md0 : active (auto-read-only) raid1 sda1[2] sdb1[1]
      33553336 blocks super 1.2 [2/2] [UU]

unused devices: <none>
=============================================================
Осталось поправить обратно /etc/lvm/lvm.conf, дождаться пока соберется массив и ребутнуться для проверки.



Комментариев нет:

Отправить комментарий