Страница 1 из 1
Gmirror trouble
Добавлено: 2009-11-30 22:30:10
dm07
Всем привет. Имеется проблема с расстроенным GMIRROR, которое заметил после нескольких месяцев эксплуатации
.
Итак:
Код: Выделить всё
gmirror status
Name Status Components
mirror/gm0 DEGRADED ad0
Код: Выделить всё
gmirror list
Geom name: gm0
State: DEGRADED
Components: 2
Balance: round-robin
Slice: 4096
Flags: NONE
GenID: 2
SyncID: 1
ID: 1898931226
Providers:
1. Name: mirror/gm0
Mediasize: 320072932864 (298G)
Sectorsize: 512
Mode: r6w6e7
Consumers:
1. Name: ad0
Mediasize: 320072933376 (298G)
Sectorsize: 512
Mode: r1w1e1
State: ACTIVE
Priority: 0
Flags: NONE
GenID: 2
SyncID: 1
ID: 1569215859
Код: Выделить всё
gmirror insert gm0 /dev/ad2
gmirror: Not all disks connected.
Но вот что не пойму: если из гмиррор отвалился ad2, а ad0 в строю, то смотрю:
Код: Выделить всё
ls /dev | grep ad
ad0
ad2
ad2s1
ad2s1a
ad2s1b
ad2s1c
ad2s1d
ad2s1e
ad2s1f
ad2s1g
Видим, что на ad0 нет слайсов, а ad2 есть. Как такое возможно?
Re: Gmirror trouble
Добавлено: 2009-11-30 22:46:49
angelas_
Так и должно быть. 0 диск у вас в зеркале, поэтому партиции напрямую не показываются. Добраться можно только через /dev/mirror/gm0* (но это партиции зеркала, а не диска), ну или вынув диск из зеркала. 2 диск у вас "выпал" из зеркала, поэтому вы и видете партиции напрямую.
Сначала нужно чтоб зеркало "забыло" о недостающем диске:
Ну и потом:
Кстати, тут совсем недавно была тема именно об этом, только видать не все поиском пользуются
Re: Gmirror trouble
Добавлено: 2009-11-30 22:50:27
dm07
angelas_ писал(а):Так и должно быть. 0 диск у вас в зеркале, поэтому партиции напрямую не показываются. Добраться можно только через /dev/mirror/gm0* (но это партиции зеркала, а не диска), ну или вынув диск из зеркала. 2 диск у вас "выпал" из зеркала, поэтому вы и видете партиции напрямую.
Сначала нужно чтоб зеркало "забыло" о недостающем диске:
Ну и потом:
Кстати, тут совсем недавно была тема именно об этом, только видать не все поиском пользуются
Спасибо.
Re: Gmirror trouble
Добавлено: 2009-11-30 22:55:57
dm07
Кстати, насколько я понял, для проверки на bad блоки составляющих гмиррор, мне нужно перегрузиться в сингл режим, подмонтировать интересующий слайс и запустить fsck -y /dev/ad0s1(a,e,g). Все верно?
Re: Gmirror trouble
Добавлено: 2009-11-30 23:07:33
angelas_
fsck проверяет целостность файловой системы, но никак не сектора диска. Для этого другие утилиты есть.
Перегружаться не обязательно, можно и так извлечь диск из зеркала и делать с ним всё что угодно. По опыту могу сказать, что если в логах полно матюков на какой-то конкретный диск - скорее всего начали битые сектора лезть. А если один раз матюкнулся, то может и просто вылетел, мало ли какой timeout прошёл, особенно это на SATA часто бывает. У меня на одном сервере года так два или три назад тоже матюкнулся один раз и вылетел. Я его обратно запихал, до сих пор работает
Re: Gmirror trouble
Добавлено: 2009-12-01 5:21:50
Overseer
из порта smartmontools попользуйтесь утилитой smartctl, посмотрите есть ли битые сектора (инфу С.М.А.Р.Т.)
тест на чтение всего диска:
где DEVICE - имя вашего диска
в /var/log/messages будут ошибки, если что-то не так
Re: Gmirror trouble
Добавлено: 2009-12-01 9:48:42
dm07
В моем случае:
Код: Выделить всё
smartctl -a /dev/ad2 | grep Pre-fail
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 102
3 Spin_Up_Time 0x0027 155 155 021 Pre-fail Always - 3216
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
Т.е. налицо проблемы чтения из-за имеющегося бэд-блока.
Также при ребилде гмиррора:
Код: Выделить всё
Dec 1 06:49:05 hosting kernel: ad2: FAILURE - WRITE_DMA48 status=51<READY,DSC,ERROR> error=10<NID_NOT_FOUND> LBA=303583616
Dec 1 06:49:05 hosting kernel: GEOM_MIRROR: Synchronization request failed (error=5). ad2[WRITE(offset=155434745856, length=131072)]
Dec 1 06:49:05 hosting kernel: GEOM_MIRROR: Device gm0: provider ad2 disconnected.
Dec 1 06:49:05 hosting kernel: GEOM_MIRROR: Device gm0: rebuilding provider ad2 stopped.
Чтож, придется планировать покупку нового HDD.
Re: Gmirror trouble
Добавлено: 2009-12-01 14:42:04
angelas_
Вот конкретный пример. Вчера 2 раза вылетел один и тот же диск из зеркала:
Код: Выделить всё
Nov 30 11:15:19 audit kernel: ad0: FAILURE - READ_DMA status=51<READY,DSC,ERROR> error=40<UNCORRECTABLE> LBA=140384799
Nov 30 11:15:19 audit kernel: GEOM_MIRROR: Request failed (error=5). ad0[READ(offset=71877017088, length=16384)]
Nov 30 11:15:19 audit kernel: GEOM_MIRROR: Device gm0: provider ad0 disconnected.
Запихал его обратно. Сегодня:
Код: Выделить всё
angelas@audit:~> gmirror status
Name Status Components
mirror/gm0 COMPLETE ad2
ad0
angelas@audit:~>
Всё ещё на месте.
Точно такое же было с этим диском года 3 назад. Если ещё вылетит, надо будет посмотреть что там смарт говорит. А мож просто поменяем диски, а то старенькие 80Гб диски там стоят, места уже маловато.....
Re: Gmirror trouble
Добавлено: 2009-12-02 0:18:58
dm07
Ради интереса зашел на другой рабочий сервер, и вот что:
Код: Выделить всё
smartctl -a /dev/ad0 | grep Pre-fail
1 Raw_Read_Error_Rate 0x000f 056 055 006 Pre-fail Always - 3189513
3 Spin_Up_Time 0x0003 096 096 000 Pre-fail Always - 0
5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0
7 Seek_Error_Rate 0x000f 074 060 030 Pre-fail Always - 64891441049
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
Обратите внимание на значения (:shock:) Raw_Read_Error_Rate и Seek_Error_Rate. При этом на машинке стоит gmirror и он целый. Правда у обоих потребителей стоит флаг DIRTY. Но в любом случае, один из потребителей не вышибается из гмиррор (в отличии от сервера в сообщении ниже).
Re: Gmirror trouble
Добавлено: 2009-12-02 0:28:35
dm07
Overseer писал(а):из порта smartmontools попользуйтесь утилитой smartctl, посмотрите есть ли битые сектора (инфу С.М.А.Р.Т.)
тест на чтение всего диска:
где DEVICE - имя вашего диска
в /var/log/messages будут ошибки, если что-то не так
Итак, добавил в разрушенный гмиррор вылетивший диск. Ребилд закончился этим:
Код: Выделить всё
Dec 1 06:49:05 hosting kernel: ad2: FAILURE - WRITE_DMA48 status=51<READY,DSC,ERROR> error=10<NID_NOT_FOUND> LBA=303583616
Dec 1 06:49:05 hosting kernel: GEOM_MIRROR: Synchronization request failed (error=5). ad2[WRITE(offset=155434745856, length=131072)]
Dec 1 06:49:05 hosting kernel: GEOM_MIRROR: Device gm0: provider ad2 disconnected.
Dec 1 06:49:05 hosting kernel: GEOM_MIRROR: Device gm0: rebuilding provider ad2stopped.
Проверка на бэд-блоки:
Код: Выделить всё
dd if=/dev/ad2 of=/dev/null bs=64k
4883925+1 records in
4883925+1 records out
320072933376 bytes transferred in 18203.830190 secs (17582725 bytes/sec)
Т.е. ошибок не найдено. В чем может быть дело? Что я делаю не так?
Re: Gmirror trouble
Добавлено: 2009-12-02 15:07:44
angelas_
Ну раз диск при синхронизировании после повторного возвращения в зеркало снова вылетел - похоже всё-таки проблема с диском. Советую его заменить на новый и восстановить зеркало, а со старым диском поиграться на одтельном железе с каким-нибудь badblocks или похожими программами.
Проверка на плохие сектора только чтением? Сомнительно и ненадёжно..
Вы флаг DIRTY неправильно интерпретировали. В нормальном рабочем режиме если ведётся запись на диск он и должен быть DIRTY. По этому флагу gmirror устанавливает нужена ли ресинхронизация после перезагрузки, так как при потере питания или любом другом "unclean shutdown" этот флаг останется в состоянии "DIRTY". Примерно так. Вот коментарий Павела на этот счёт:
http://lists.freebsd.org/pipermail/free ... 37660.html
Re: Gmirror trouble
Добавлено: 2009-12-02 19:51:45
Alex Keda
use mhdd
Re: Gmirror trouble
Добавлено: 2009-12-05 0:29:48
Overseer
dm07 писал(а):
Проверка на бэд-блоки:
Код: Выделить всё
dd if=/dev/ad2 of=/dev/null bs=64k
4883925+1 records in
4883925+1 records out
320072933376 bytes transferred in 18203.830190 secs (17582725 bytes/sec)
Т.е. ошибок не найдено. В чем может быть дело? Что я делаю не так?
не появились ошибки в дмесге или в смарте?
попробуйте тест на запись (только весь диск затрется!!!!)
выньте диск из рейда и запустите тест на
запись
/usr/ports/sysutils/e2fsprogs - тут утилита
можете в скрине запустить тест, он может занять несколько часов.
после теста будет сообщение, есть ли битые сектора.
+ опять же, посмотреть смарт.
Re: Gmirror trouble
Добавлено: 2009-12-05 3:54:23
Dimon5
Здраствуйте, уважаемые форумчане.
Проблема та же что и создателя этой темы, тоесть сегодня обнаружил что из Raid-1 выпал жесткий диск вот что выводит:
Код: Выделить всё
gmirror status
Name Status Components
mirror/gm0 DEGRADED ad8
Я выполнил команду:
После этого выполнил
После этого Выбивает следующую ошибку:
Тоесть диск не хочет снова включаться в Raid.
Помогите решить эту проблему с восстановлением Raid - массива.
Re: Gmirror trouble
Добавлено: 2009-12-05 4:19:07
Dimon5
Кстати вот какие записи в логе в момент когда диск вылетел из Raid-1
Код: Выделить всё
Dec 3 19:57:25 novograd kernel: ad16: FAILURE - WRITE_DMA48 status=61<READY,DMA_READY,ERROR> error=4<ABORTED> LBA=715944531
Dec 3 19:57:25 novograd kernel: GEOM_MIRROR: Request failed (error=5). ad16[WRITE(offset=366563599872, length=2048)]
Dec 3 19:57:25 novograd kernel: GEOM_MIRROR: Device gm0: provider ad16 disconnected.
Dec 3 19:57:26 novograd kernel: ad16: FAILURE - WRITE_DMA status=61<READY,DMA_READY,ERROR> error=4<ABORTED> LBA=16789279
Dec 3 19:57:26 novograd kernel: ad16: FAILURE - WRITE_DMA status=61<READY,DMA_READY,ERROR> error=4<ABORTED> LBA=16789311
Dec 3 19:57:26 novograd kernel: ad16: FAILURE - WRITE_DMA status=61<READY,DMA_READY,ERROR> error=4<ABORTED> LBA=16789343
Dec 3 19:57:26 novograd kernel: ad16: FAILURE - WRITE_DMA status=61<READY,DMA_READY,ERROR> error=4<ABORTED> LBA=16789375
Dec 3 19:57:26 novograd kernel: ad16: FAILURE - WRITE_DMA status=61<READY,DMA_READY,ERROR> error=4<ABORTED> LBA=16789407
Dec 3 19:57:26 novograd kernel: ad16: FAILURE - WRITE_DMA status=61<READY,DMA_READY,ERROR> error=4<ABORTED> LBA=16789439
Re: Gmirror trouble
Добавлено: 2009-12-05 11:51:57
Alex Keda
диск меняйте
Re: Gmirror trouble
Добавлено: 2009-12-05 14:51:04
Dimon5
Но неужели больше ничего кроме замены диска не можно сделать? Просто сервер новый куплен месяц назад,
все это время работал в датацентре, жесткие диски новые 2Х1 Tb Western Digital.
Из-за чего такое могло случиться, ведь на сервер практически не было нагрузки приблизительно 1-2%.
При выполнении команды жесткий диск видно в системе, может, стоит проверить его специальными утилитами, может быть что-то с файловой системой.
Код: Выделить всё
ls /dev | grep ad
ad16
ad8
ad8s1
cuad0
cuad0.init
cuad0.lock
Порекомендуйте, пожалуйста.
Re: Gmirror trouble
Добавлено: 2009-12-05 20:21:57
Alex Keda
mhdd
Re: Gmirror trouble
Добавлено: 2009-12-05 23:42:22
angelas_
Dimon5 писал(а):Но неужели больше ничего кроме замены диска не можно сделать? Просто сервер новый куплен месяц назад,
все это время работал в датацентре, жесткие диски новые 2Х1 Tb Western Digital.
Из-за чего такое могло случиться, ведь на сервер практически не было нагрузки приблизительно 1-2%.
Вам надо было перед тем, кад сервер запускать в продакшн его хорошенько протестировать. Теперь конечно выбор действий очень ограничен.
Бывает что и с новыми дисками вылезают косяки. Скорее всего диски были куплены из одной партии и серии, то вы сейчас ходите по лезвию бритвы, поэтому предлагаю, пока не поздно, купить ещё один диск и как можно быстрее заменить. Когда замените и восстановите зеркало, можете поиграться с отвалившимся диском и если с ним действительно проблемы - заменить по гарантии. А там уже заменив протестировать и если всё хорошо - положить в чулан как запасной к вашему серверу.
Re: Gmirror trouble
Добавлено: 2009-12-10 14:38:19
shroo0m
Если сервер- тазик, собранный из дешевого железа, позиционируемого производителем, как офисное, то это скорее всего контроллер жестких дисков, встроенный в материнку. С объемистыми дисками они имеют свойство глючить жестоко Юзайте внешние (любой, даже дешевый, просто как "дырка для жестака", подойдет). Это не дефект. Ответ на вопрос "почему" вот: размечталися о серверной материнке за 2-3 тысячи рублев=). Не бывает таких.
Re: Gmirror trouble
Добавлено: 2009-12-12 4:48:07
Overseer
Dimon5 писал(а):
После этого выполнил
После этого Выбивает следующую ошибку:
sysctl kern.geom.debugflags=16
gmirror insert gm0 ad16
а так?
Re: Gmirror trouble
Добавлено: 2009-12-12 10:46:27
shroo0m
попробуй убить метаданные на диске и пересобрать с нуля зеркало
Re: Gmirror trouble
Добавлено: 2009-12-12 22:12:01
Alex Keda
иногда требуется ребут, или нетривиальные дейсвия по записи метаданных на диск с помощью dd и удалениия их оттуда штатными средствами
в /var/log/messages смотрите. там есть причина для всего.