Интересная проблема при реконструкции raid-1

12
Romka_Kharkov
На сайте с 08.04.2009
Offline
485
1762

День добрый,

Имеем изначально:

sda - Якобы живой. (Позже станет ясно почему)

sdb - Мертвый.

Произвел замену sdb на новый винт, начинаю реконструкцию массива, проходит какое-то время в логах получаю:


SCSI device sdb: drive cache: write back
ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
ata2.00: BMDMA stat 0x64
ata2.00: cmd 25/00:08:2f:0b:68/00:00:2f:00:00/e0 tag 0 dma 4096 in
res 51/40:00:30:0b:68/40:00:2f:00:00/e0 Emask 0x9 (media error)
ata2.00: status: { DRDY ERR }
ata2.00: error: { UNC }
ata2.00: configured for UDMA/133
ata2.01: configured for UDMA/133
ata2: EH complete
ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
ata2.00: BMDMA stat 0x64
ata2.00: cmd 25/00:08:2f:0b:68/00:00:2f:00:00/e0 tag 0 dma 4096 in
res 51/40:00:30:0b:68/40:00:2f:00:00/e0 Emask 0x9 (media error)
ata2.00: status: { DRDY ERR }
ata2.00: error: { UNC }
ata2.00: configured for UDMA/133
ata2.01: configured for UDMA/133
ata2: EH complete
ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
ata2.00: BMDMA stat 0x64
ata2.00: cmd 25/00:08:2f:0b:68/00:00:2f:00:00/e0 tag 0 dma 4096 in
res 51/40:00:30:0b:68/40:00:2f:00:00/e0 Emask 0x9 (media error)
ata2.00: status: { DRDY ERR }
ata2.00: error: { UNC }
ata2.00: configured for UDMA/133
ata2.01: configured for UDMA/133
ata2: EH complete
ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
ata2.00: BMDMA stat 0x64
ata2.00: cmd 25/00:08:2f:0b:68/00:00:2f:00:00/e0 tag 0 dma 4096 in
res 51/40:00:30:0b:68/40:00:2f:00:00/e0 Emask 0x9 (media error)
ata2.00: status: { DRDY ERR }
ata2.00: error: { UNC }
ata2.00: configured for UDMA/133
ata2.01: configured for UDMA/133
ata2: EH complete
ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
ata2.00: BMDMA stat 0x64
ata2.00: cmd 25/00:08:2f:0b:68/00:00:2f:00:00/e0 tag 0 dma 4096 in
res 51/40:00:30:0b:68/40:00:2f:00:00/e0 Emask 0x9 (media error)
ata2.00: status: { DRDY ERR }
ata2.00: error: { UNC }
ata2.00: configured for UDMA/133
ata2.01: configured for UDMA/133
ata2: EH complete
ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
ata2.00: BMDMA stat 0x64
ata2.00: cmd 25/00:08:2f:0b:68/00:00:2f:00:00/e0 tag 0 dma 4096 in
res 51/40:00:30:0b:68/40:00:2f:00:00/e0 Emask 0x9 (media error)
ata2.00: status: { DRDY ERR }
ata2.00: error: { UNC }
ata2.00: configured for UDMA/133
ata2.01: configured for UDMA/133
sd 1:0:0:0: Unhandled sense code
sd 1:0:0:0: SCSI error: return code = 0x08000002
Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
sda: Current [descriptor]: sense key: Medium Error
Add. Sense: Unrecovered read error - auto reallocate failed

Descriptor sense data with sense descriptors (in hex):
72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00
2f 68 0b 30
raid1: sda: unrecoverable I/O read error for block 795347584

Т.е проблема при чтении с sda !!!

При этом:


# ./hdparm --read-sector 795347584 /dev/sda

/dev/sda:
reading sector 795347584: succeeded
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000

Так же пробовал write-sector (с целью убить его), запись производится так же без проблем :)


# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb2[1] sda2[0]
2096384 blocks [2/2] [UU]

md1 : active raid1 sdb1[2](S) sda1[0]
728378944 blocks [2/1] [U_]

Что скажет дорогая мне редакция :D ? :crazy::crazy::crazy:

Скажу сразу, что бекапы у меня есть, просто очень не хочется переставлять систему меняя sda целиком..... :(((( Хочется каким-то образом завершить реконструкцию на sdb и потом уже штатно заменить sda... как думаете если взять 'dd', есть шансы ?

С Уважением,

Есть около 15.000 ipv4 !!! (http://onyx.net.ua/price.php#ipv4) Качественный хостинг с 2005 года - лучшее клиентам! (http://onyx.net.ua/)
Andreyka
На сайте с 19.02.2005
Offline
822
#1

Дорогая редакция говорит, что когда на диске возникает ошибка - репликация останавливается

Не стоит плодить сущности без необходимости
Pavel.Odintsov
На сайте с 13.05.2009
Offline
169
#2

Сектор всегда один и тот же? Вытирали его так http://www.stableit.ru/2010/05/dmesg-reallocate-failed.html ?

Решение по обнаружению DDoS атак для хостинг компаний, дата центров и операторов связи: FastNetMon (https://fastnetmon.com)
Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#3
Andreyka:
Дорогая редакция говорит, что когда на диске возникает ошибка - репликация останавливается

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

---------- Добавлено 18.09.2014 в 13:31 ----------

Pavel.Odintsov:
Сектор всегда один и тот же? Вытирали его так http://www.stableit.ru/2010/05/dmesg-reallocate-failed.html ?

Да, сектор всегда один. По данной схеме пробовал, однако без высвобождения диска из массива, но получил результат с нулями который и привел выше, могу конечно же попробовать с live CD... но мне не выдавало ничего из серии "не могу записать" и.т.п все было ОК. Да и в общем-то не совсем понимаю, чем может мешать mdraid записи или чтению в какой-то сектор.... Вы считаете стоит попробовать с live cd без запущенного raid ?

Glueon
На сайте с 26.07.2013
Offline
172
#4

Может не совсем в тему, но смотрели ли в SMART данные?

Есть много IP-сетей в аренду под прокси, парсинг, рассылки (optin), vpn и хостинг. Телега: @contactroot ⚒ ContactRoot команда опытных сисадминов (/ru/forum/861038), свой LIR: сдаем в аренду сети IPv4/v6 (/ru/forum/1012475).
Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#5
Glueon:
Может не совсем в тему, но смотрели ли в SMART данные?

Данные то я смотрел, и там есть Pending Sector


]# smartctl -a /dev/sda|grep -i sector
Sector Sizes: 512 bytes logical, 4096 bytes physical
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 1

Однако мой вопрос не заключается в том "что это", мой вопрос в том "как бы завершить синхронизацию" возможно с пропуском этого сектора, возможно с его ремапом, кстати на сколько я понимаю , если сектор помечен как Pending, то remap уже произошел.....

Иначе я просто вижу только одно решение: у меня сейчас в сервере работает всего 1 винт с которого нельзя сделать синхронизацию штатным путем, стало быть мне надо его менять и .... переставлять ось на новый рейд и все из бекапов поднимать, что конечно же родит кучу гемора + Downtime....

Изучаю еще более менее штатный вариант: из single user сделать глухое dd sda->sdb.... тогда хоть переставлять ничего не надо будет, но это так же будет Downtime и хочется понять, не будет ли проблем с тем же сектором, как себя поведет dd в этом случае.... :( ?

Оптимизайка
На сайте с 11.03.2012
Offline
396
#6
Romka_Kharkov:
из single user сделать глухое dd sda->sdb.... тогда хоть переставлять ничего не надо будет, но это так же будет Downtime и хочется понять, не будет ли проблем с тем же сектором, как себя поведет dd в этом случае.... :( ?

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

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
N
На сайте с 06.05.2007
Offline
419
#7

Я бы создал создал второй "сломанный" raid1 из одного нового диска. Потом и скопировал бы на него файлы, установил загрузчик и загрузился уже со второго. А после замены sda можно синхронизировать raid1 как обычно и ставить туда загрузчик.

Если сбойные сектора вообще ничего полезного не содержали, то может все удачно и быстро пройти.

Загрузка с другого диска потребует некоторой внимательности и понимания процесса загрузки, но это вполне реально.

Кнопка вызова админа ()
Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#8
Оптимизайка:
Так нельзя делать, метаданные же в конце диска записаны. Неоходимо вывести сбойный диск из массива, отформатировать (забить нулями/разметить, если есть физический доступ - пройтись программой mhdd, а лучше вообще физически заменить, т.к. он может продолжать сыпаться), после чего снова добавить в массив и синхронизировать.

А вы прочитали что написано в первом посте?

Сейчас в сервере всего 1 винт рабочий, вы предлагаете его отформатировать :D ?

Зачетно :D

sda - якобы рабочий, с него сейчас работает система, но при этом у него Read-error.

sdb - Новый винт который вставлен в замен умершему. Т.е он полупустой, md0 - мелкий раздел - заребилдился удачно, а вот на md1 пойман указанный выше глюк.

---------- Добавлено 18.09.2014 в 15:46 ----------

netwind:
Я бы создал создал второй "сломанный" raid1 из одного нового диска. Потом и скопировал бы на него файлы, установил загрузчик и загрузился уже со второго. А после замены sda можно синхронизировать raid1 как обычно и ставить туда загрузчик.
Если сбойные сектора вообще ничего полезного не содержали, то может все удачно и быстро пройти.
Загрузка с другого диска потребует некоторой внимательности и понимания процесса загрузки, но это вполне реально.

Спасибо, такой вариант я уже рассматривал и рассматриваю, но обратился на форум в надежде получить решение не прибегая даже к такому варианту, возможно есть вариант как-то указать mdraid что вот этот самый сектор мертвый , не читать его или вообще исключить из синхронизации, или устроить некое подобие "force" что бы синхронизация прошла с битым сектором..... как-то так.... А сложные пути я понимаю, можно и из бекапов поднимать, можно и скопировать данные As is и грузится с sdb (В моем случае) но это все ведет к неизбежному даунтайму системы, который хотелось бы избежать... Но конечно если вариантов не будет..... придется идти возможно описанным вами путем. Еще раз спасибо. Может у кого-то еще есть какие-то мнения?

---------- Добавлено 18.09.2014 в 15:47 ----------

Оптимизайка:
Так нельзя делать, метаданные же в конце диска записаны.

Погодите, а что в этом плохого? В конце, в начале? Если я сделаю полную копию сектор в сектор?

Я что-то не понял?

Andreyka
На сайте с 19.02.2005
Offline
822
#9
Romka_Kharkov:
Я же о решении спросил как бы а не о том что написано в логе который я подсветил красным, но вы в принципе в своем репертуаре.

Решение достаточно примитивное - восстановить данные с этого диска на новый и вернуть raid 1 взад

Можно тупо dd и скрестить пальцы, а можно сотню баксов и Эпос.

Мне они в свое время диплом с диска восстановили

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#10
Andreyka:
Решение достаточно примитивное - восстановить данные с этого диска на новый и вернуть raid 1 взад
Можно тупо dd и скрестить пальцы, а можно сотню баксов и Эпос.
Мне они в свое время диплом с диска восстановили

Ну, мне баксы платить нет смысла, есть третий винт (не зеркало, а бекапный) на котором все данные целы, просто не хочется сейчас заниматься восстановлением всего сервера и переустановкой всего ПО из за одного пустого сектора который как бы не читается по какой-то причине :))))

Так что наверное ДД и пальцы :D Будем сегодня пробовать :)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий