Gmirror trouble

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
dm07
сержант
Сообщения: 222
Зарегистрирован: 2008-07-27 19:58:25
Откуда: Уфа
Контактная информация:

Gmirror trouble

Непрочитанное сообщение dm07 » 2009-11-30 22:30:10

Всем привет. Имеется проблема с расстроенным GMIRROR, которое заметил после нескольких месяцев эксплуатации :smile: .
Итак:

Код: Выделить всё

uname -s -r
FreeBSD 7.1-PRERELEASE

Код: Выделить всё

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 есть. Как такое возможно?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
angelas_
сержант
Сообщения: 212
Зарегистрирован: 2009-08-26 13:04:09
Откуда: Oslo, Norway
Контактная информация:

Re: Gmirror trouble

Непрочитанное сообщение angelas_ » 2009-11-30 22:46:49

Так и должно быть. 0 диск у вас в зеркале, поэтому партиции напрямую не показываются. Добраться можно только через /dev/mirror/gm0* (но это партиции зеркала, а не диска), ну или вынув диск из зеркала. 2 диск у вас "выпал" из зеркала, поэтому вы и видете партиции напрямую.

Сначала нужно чтоб зеркало "забыло" о недостающем диске:

Код: Выделить всё

gmirror forget gm0
Ну и потом:

Код: Выделить всё

gmirror insert gm0 ad2
Кстати, тут совсем недавно была тема именно об этом, только видать не все поиском пользуются ;-)
Тэстэд ин экстримс!

dm07
сержант
Сообщения: 222
Зарегистрирован: 2008-07-27 19:58:25
Откуда: Уфа
Контактная информация:

Re: Gmirror trouble

Непрочитанное сообщение dm07 » 2009-11-30 22:50:27

angelas_ писал(а):Так и должно быть. 0 диск у вас в зеркале, поэтому партиции напрямую не показываются. Добраться можно только через /dev/mirror/gm0* (но это партиции зеркала, а не диска), ну или вынув диск из зеркала. 2 диск у вас "выпал" из зеркала, поэтому вы и видете партиции напрямую.

Сначала нужно чтоб зеркало "забыло" о недостающем диске:

Код: Выделить всё

gmirror forget gm0
Ну и потом:

Код: Выделить всё

gmirror insert gm0 ad2
Кстати, тут совсем недавно была тема именно об этом, только видать не все поиском пользуются ;-)
Спасибо.

dm07
сержант
Сообщения: 222
Зарегистрирован: 2008-07-27 19:58:25
Откуда: Уфа
Контактная информация:

Re: Gmirror trouble

Непрочитанное сообщение dm07 » 2009-11-30 22:55:57

Кстати, насколько я понял, для проверки на bad блоки составляющих гмиррор, мне нужно перегрузиться в сингл режим, подмонтировать интересующий слайс и запустить fsck -y /dev/ad0s1(a,e,g). Все верно?

Аватара пользователя
angelas_
сержант
Сообщения: 212
Зарегистрирован: 2009-08-26 13:04:09
Откуда: Oslo, Norway
Контактная информация:

Re: Gmirror trouble

Непрочитанное сообщение angelas_ » 2009-11-30 23:07:33

fsck проверяет целостность файловой системы, но никак не сектора диска. Для этого другие утилиты есть.
Перегружаться не обязательно, можно и так извлечь диск из зеркала и делать с ним всё что угодно. По опыту могу сказать, что если в логах полно матюков на какой-то конкретный диск - скорее всего начали битые сектора лезть. А если один раз матюкнулся, то может и просто вылетел, мало ли какой timeout прошёл, особенно это на SATA часто бывает. У меня на одном сервере года так два или три назад тоже матюкнулся один раз и вылетел. Я его обратно запихал, до сих пор работает :smile:
Тэстэд ин экстримс!

Overseer
сержант
Сообщения: 221
Зарегистрирован: 2008-03-20 23:00:42

Re: Gmirror trouble

Непрочитанное сообщение Overseer » 2009-12-01 5:21:50

из порта smartmontools попользуйтесь утилитой smartctl, посмотрите есть ли битые сектора (инфу С.М.А.Р.Т.)

Код: Выделить всё

smartctl -a /dev/DEVICE
тест на чтение всего диска:

Код: Выделить всё

dd if=/dev/DEVICE of=/dev/null bs=64k
где DEVICE - имя вашего диска
в /var/log/messages будут ошибки, если что-то не так

dm07
сержант
Сообщения: 222
Зарегистрирован: 2008-07-27 19:58:25
Откуда: Уфа
Контактная информация:

Re: Gmirror trouble

Непрочитанное сообщение dm07 » 2009-12-01 9:48:42

В моем случае:

Код: Выделить всё

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.

Аватара пользователя
angelas_
сержант
Сообщения: 212
Зарегистрирован: 2009-08-26 13:04:09
Откуда: Oslo, Norway
Контактная информация:

Re: Gmirror trouble

Непрочитанное сообщение angelas_ » 2009-12-01 14:42:04

Вот конкретный пример. Вчера 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Гб диски там стоят, места уже маловато..... :smile:
Тэстэд ин экстримс!

dm07
сержант
Сообщения: 222
Зарегистрирован: 2008-07-27 19:58:25
Откуда: Уфа
Контактная информация:

Re: Gmirror trouble

Непрочитанное сообщение dm07 » 2009-12-02 0:18:58

Ради интереса зашел на другой рабочий сервер, и вот что:

Код: Выделить всё

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. Но в любом случае, один из потребителей не вышибается из гмиррор (в отличии от сервера в сообщении ниже).
Последний раз редактировалось dm07 2009-12-02 0:29:39, всего редактировалось 1 раз.

dm07
сержант
Сообщения: 222
Зарегистрирован: 2008-07-27 19:58:25
Откуда: Уфа
Контактная информация:

Re: Gmirror trouble

Непрочитанное сообщение dm07 » 2009-12-02 0:28:35

Overseer писал(а):из порта smartmontools попользуйтесь утилитой smartctl, посмотрите есть ли битые сектора (инфу С.М.А.Р.Т.)

Код: Выделить всё

smartctl -a /dev/DEVICE
тест на чтение всего диска:

Код: Выделить всё

dd if=/dev/DEVICE of=/dev/null bs=64k
где 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)
Т.е. ошибок не найдено. В чем может быть дело? Что я делаю не так?

Аватара пользователя
angelas_
сержант
Сообщения: 212
Зарегистрирован: 2009-08-26 13:04:09
Откуда: Oslo, Norway
Контактная информация:

Re: Gmirror trouble

Непрочитанное сообщение angelas_ » 2009-12-02 15:07:44

Ну раз диск при синхронизировании после повторного возвращения в зеркало снова вылетел - похоже всё-таки проблема с диском. Советую его заменить на новый и восстановить зеркало, а со старым диском поиграться на одтельном железе с каким-нибудь badblocks или похожими программами. :smile:

Проверка на плохие сектора только чтением? Сомнительно и ненадёжно.. ;-)

Вы флаг DIRTY неправильно интерпретировали. В нормальном рабочем режиме если ведётся запись на диск он и должен быть DIRTY. По этому флагу gmirror устанавливает нужена ли ресинхронизация после перезагрузки, так как при потере питания или любом другом "unclean shutdown" этот флаг останется в состоянии "DIRTY". Примерно так. Вот коментарий Павела на этот счёт:
http://lists.freebsd.org/pipermail/free ... 37660.html
:smile:
Тэстэд ин экстримс!

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Gmirror trouble

Непрочитанное сообщение Alex Keda » 2009-12-02 19:51:45

use mhdd
Убей их всех! Бог потом рассортирует...

Overseer
сержант
Сообщения: 221
Зарегистрирован: 2008-03-20 23:00:42

Re: Gmirror trouble

Непрочитанное сообщение Overseer » 2009-12-05 0:29:48

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)
Т.е. ошибок не найдено. В чем может быть дело? Что я делаю не так?
не появились ошибки в дмесге или в смарте?
попробуйте тест на запись (только весь диск затрется!!!!)
выньте диск из рейда и запустите тест на запись

Код: Выделить всё

badblocks -s -v -w -b 4096 /dev/ad2
/usr/ports/sysutils/e2fsprogs - тут утилита

можете в скрине запустить тест, он может занять несколько часов.
после теста будет сообщение, есть ли битые сектора.
+ опять же, посмотреть смарт.
Последний раз редактировалось Overseer 2009-12-12 5:48:12, всего редактировалось 1 раз.

Dimon5
рядовой
Сообщения: 26
Зарегистрирован: 2009-12-05 3:44:34

Re: Gmirror trouble

Непрочитанное сообщение Dimon5 » 2009-12-05 3:54:23

Здраствуйте, уважаемые форумчане.

Проблема та же что и создателя этой темы, тоесть сегодня обнаружил что из Raid-1 выпал жесткий диск вот что выводит:

Код: Выделить всё

gmirror status      
Name    Status  Components
mirror/gm0  DEGRADED  ad8
Я выполнил команду:

Код: Выделить всё

gmirror forget gm0
После этого выполнил

Код: Выделить всё

gmirror insert gm0 ad16
После этого Выбивает следующую ошибку:

Код: Выделить всё

gmirror: Cannot store metadata on ad16.
Тоесть диск не хочет снова включаться в Raid.

Помогите решить эту проблему с восстановлением Raid - массива.
Последний раз редактировалось Alex Keda 2009-12-05 11:50:51, всего редактировалось 1 раз.
Причина: Товарищщи! Цените чужое время, юзайте кнопочку [code]. А то позабаниваю!

Dimon5
рядовой
Сообщения: 26
Зарегистрирован: 2009-12-05 3:44:34

Re: Gmirror trouble

Непрочитанное сообщение Dimon5 » 2009-12-05 4:19:07

Кстати вот какие записи в логе в момент когда диск вылетел из 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
Последний раз редактировалось Alex Keda 2009-12-05 11:51:04, всего редактировалось 1 раз.
Причина: Товарищщи! Цените чужое время, юзайте кнопочку [code]. А то позабаниваю!

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Gmirror trouble

Непрочитанное сообщение Alex Keda » 2009-12-05 11:51:57

диск меняйте
Убей их всех! Бог потом рассортирует...

Dimon5
рядовой
Сообщения: 26
Зарегистрирован: 2009-12-05 3:44:34

Re: Gmirror trouble

Непрочитанное сообщение Dimon5 » 2009-12-05 14:51:04

Но неужели больше ничего кроме замены диска не можно сделать? Просто сервер новый куплен месяц назад,
все это время работал в датацентре, жесткие диски новые 2Х1 Tb Western Digital.
Из-за чего такое могло случиться, ведь на сервер практически не было нагрузки приблизительно 1-2%.

При выполнении команды жесткий диск видно в системе, может, стоит проверить его специальными утилитами, может быть что-то с файловой системой.

Код: Выделить всё

ls  /dev | grep ad
ad16
ad8
ad8s1
cuad0
cuad0.init
cuad0.lock
Порекомендуйте, пожалуйста.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Gmirror trouble

Непрочитанное сообщение Alex Keda » 2009-12-05 20:21:57

mhdd
Убей их всех! Бог потом рассортирует...

Аватара пользователя
angelas_
сержант
Сообщения: 212
Зарегистрирован: 2009-08-26 13:04:09
Откуда: Oslo, Norway
Контактная информация:

Re: Gmirror trouble

Непрочитанное сообщение angelas_ » 2009-12-05 23:42:22

Dimon5 писал(а):Но неужели больше ничего кроме замены диска не можно сделать? Просто сервер новый куплен месяц назад,
все это время работал в датацентре, жесткие диски новые 2Х1 Tb Western Digital.
Из-за чего такое могло случиться, ведь на сервер практически не было нагрузки приблизительно 1-2%.
Вам надо было перед тем, кад сервер запускать в продакшн его хорошенько протестировать. Теперь конечно выбор действий очень ограничен.
Бывает что и с новыми дисками вылезают косяки. Скорее всего диски были куплены из одной партии и серии, то вы сейчас ходите по лезвию бритвы, поэтому предлагаю, пока не поздно, купить ещё один диск и как можно быстрее заменить. Когда замените и восстановите зеркало, можете поиграться с отвалившимся диском и если с ним действительно проблемы - заменить по гарантии. А там уже заменив протестировать и если всё хорошо - положить в чулан как запасной к вашему серверу.
:smile:
Тэстэд ин экстримс!

Аватара пользователя
shroo0m
ефрейтор
Сообщения: 61
Зарегистрирован: 2008-06-17 20:44:17
Контактная информация:

Re: Gmirror trouble

Непрочитанное сообщение shroo0m » 2009-12-10 14:38:19

Если сервер- тазик, собранный из дешевого железа, позиционируемого производителем, как офисное, то это скорее всего контроллер жестких дисков, встроенный в материнку. С объемистыми дисками они имеют свойство глючить жестоко Юзайте внешние (любой, даже дешевый, просто как "дырка для жестака", подойдет). Это не дефект. Ответ на вопрос "почему" вот: размечталися о серверной материнке за 2-3 тысячи рублев=). Не бывает таких.

Overseer
сержант
Сообщения: 221
Зарегистрирован: 2008-03-20 23:00:42

Re: Gmirror trouble

Непрочитанное сообщение Overseer » 2009-12-12 4:48:07

Dimon5 писал(а): После этого выполнил

Код: Выделить всё

gmirror insert gm0 ad16
После этого Выбивает следующую ошибку:

Код: Выделить всё

gmirror: Cannot store metadata on ad16.
sysctl kern.geom.debugflags=16
gmirror insert gm0 ad16

а так?

Аватара пользователя
shroo0m
ефрейтор
Сообщения: 61
Зарегистрирован: 2008-06-17 20:44:17
Контактная информация:

Re: Gmirror trouble

Непрочитанное сообщение shroo0m » 2009-12-12 10:46:27

попробуй убить метаданные на диске и пересобрать с нуля зеркало

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Gmirror trouble

Непрочитанное сообщение Alex Keda » 2009-12-12 22:12:01

иногда требуется ребут, или нетривиальные дейсвия по записи метаданных на диск с помощью dd и удалениия их оттуда штатными средствами
в /var/log/messages смотрите. там есть причина для всего.
Убей их всех! Бог потом рассортирует...