Страница 1 из 1
gmirror RAID 1
Добавлено: 2011-01-17 8:17:05
Dimon5
Следующая проблема.
Дело было так.
Есть сервер на базе FreeBSD 7.2
Есть два диска по 1 Тб каждый использовались в софтовом массиве RAID-1 gmirror
Системой диски определяются как : ad8 и ad16
Три дня назад сервер завис. После перезагрузки обнаружилось, что диск ad8 как бы выпал из Raid-1 массива. Остался только ad16.
После этого я удалил диск ad8 с массива с помощью gmirror forget gm0. Потом вставил диск ad8 обратно он начал синхронизироваться и успешно синхронизировался до 100%. Тоесть массив полностью восстановился.
Но спустя два дня диск ad8 снова выпадает из массива. На этот раз даже S.M.A.R.T. до перезагрузки не хотел отображаться. Я сразу же удалил его с массива с помощью gmirror forget gm0. Таким образом, в массиве остался только диск ad16. Я решил перегрузить систему надеясь, что диск ad8 начнет обнаруживаться S.M.A.R.T.-ом. Но послав сервер на перезагрузку, я так и не дождался когда сервер поднимется самостоятельно. Так вот пришлось запрашивать в ДЦ IP-KVM и смотреть удаленно, что же в это время делает сервер.
Оказалось, что система почему-то валилась в single user mode и требовала прогона утилитой fsck.
Так я и поступил в single user mode выполнил команду fsck -y и, дождавшись ее успешного завершения я перегрузил сервер, после чего он, почему то начал грузиться не с диска ad16 (который был единственным в массиве, после которого я удалил ad8), а именно с ad8 и сигнализировать.
Код: Выделить всё
Name Status Components
mirror/gm0 DEGRADED ad8
При выводе комманды dmesg выдаются такие сообщения на счет диска ad16
Код: Выделить всё
GEOM_MIRROR: Cannot add disk ad16 to gm0 (error=22).
GEOM_LABEL: Label for provider ad16s1a is ufsid/4af19b975ec46b49.
Root mount waiting for: GMIRROR
Root mount waiting for: GMIRROR
Root mount waiting for: GMIRROR
Root mount waiting for: GMIRROR
GEOM_MIRROR: Force device gm0 start due to timeout.
GEOM_MIRROR: Device mirror/gm0 launched (1/2).
Trying to mount root from ufs:/dev/mirror/gm0s1a
em0: link state changed to UP
Вопрос, почему система стала грузиться с диска ad8.(на нем оказались более старые данные).
Каким образом можно загрузиться с диска ad16 (тоесть с более новыми данными, а потом я его уже синхронизирую с ad8).
Заранее спасибо за ответ.
Re: gmirror RAID 1
Добавлено: 2011-01-17 9:17:16
FiL
а какой диск бутовый в бивисе?
Бивис как-бы не в курсе где там у вас гмироры и что с ними происходит.
Re: gmirror RAID 1
Добавлено: 2011-01-17 9:58:01
Alex Keda
FiL писал(а):а какой диск бутовый в бивисе?
Бивис как-бы не в курсе где там у вас гмироры и что с ними происходит.
не. бивис-то не в курсе, а вот ядро запущенное бивисом, должно найти последний живой из гмиррора и моунтить корневую с енго.
вот тока иногда случаются накладки. как у тредстрера
Re: gmirror RAID 1
Добавлено: 2011-01-17 13:45:39
Dimon5
Да в Bios конечно нету обозначений дисков типа ad8 и ad16.
Но там вприницпе есть приоритет загрузки и обозначены жесткие диски. Так вот я даже поменял их местами уже, тоесть нижний переместил на первое место. Но FreeBSD все равно упорно грузится именно с диска ad8, при загрузке выдавая то, что я указал в первом посте.
Вобщем непонятно, почему FreeBSD переключилась на второй диск ad8, если раньше он сам выпал из массива и в массиве оставался именно ad16.
Так, что никто не знает каким образом можно бы загрузиться со второго диска (ad16 все же там осталась информация посвежее).
Может для этого нужно вообще развалить (тоесть уничтожить массив)?
Заранее спасибо за ответ.
Re: gmirror RAID 1
Добавлено: 2011-01-17 15:00:25
ADRE
ну при загрузке в новых матерях есть выбор с чего грузится, гдето F8 где -то f10 где f12
Re: gmirror RAID 1
Добавлено: 2011-01-17 16:14:36
Alex Keda
не. это гмиррор пнимает какой диск последний юзался
его и юзает
Re: gmirror RAID 1
Добавлено: 2011-01-17 16:57:35
Dimon5
Я предполагаю ситуация такая, что BIOS начинает загружаться с какого-то конкретного диска.
В данном случае наверно с Master, тоесть ad8 (который выпал с массива раньше и я его, потом отключил с помощью gmirror forget gm0).
И система потом работала с одним диском ad16 в массиве.
После того как я перезагрузился в режим single user mode и проверил файловую систему.
Система начала загружаться с диска ad8 который отключился раньше, тоесть на нем конфигурация gmirror осталась еще в старом состоянии.
И соответственно gmirror посчитал, что данные на диске ad16 не соответствуют данным на диске ad8, и выкинул ad16
Вследствие этого gmirror считает, что массив рассинхронизирован и выводит статус
Код: Выделить всё
Name Status Components
mirror/gm0 DEGRADED ad8
Полагаю, чтобы сделать наоборот нужно, чтобы система начала грузиться со второго диска ad16, на нем ведь должно остаться состояние массива
в статусе:
Код: Выделить всё
Name Status Components
mirror/gm0 COMPLETE ad16
Re: gmirror RAID 1
Добавлено: 2011-01-17 22:18:42
Dimon5
Уже смирился с ситуацией.
Но интересует можно ли получить досутуп к диску ad16 (нужно чтобы вытащить некоторые данные).
Если да то, что для этого нужно?
Предполагаю, что диск ad16 нужно окончательно выбросить с массива через
.
А потом подмонтировать его через:
Выйдет ли так получить доступ к данным на диске?
Заранее спасибо за ответ.
Re: gmirror RAID 1
Добавлено: 2011-01-17 22:20:43
Alex Keda
да
Re: gmirror RAID 1
Добавлено: 2011-01-18 1:05:23
FiL
Dimon5 писал(а):Уже смирился с ситуацией.
Ты смирился с тем, что у тебя дохнущий диск и ты его не хочешь менять на новый. Все проблемы отсюда.
Re: gmirror RAID 1
Добавлено: 2011-01-18 19:08:20
Dimon5
FiL писал(а):Dimon5 писал(а):Уже смирился с ситуацией.
Ты смирился с тем, что у тебя дохнущий диск и ты его не хочешь менять на новый. Все проблемы отсюда.
Да, скорее всего Вы правы. Скорее всего диск придется менять.
Так сегодня ночью попытался восстановить массив, диски синхронизировались нормально.
Но спустя 3 часа диск ad8 вывалился. И массив перешел в состояние:
Код: Выделить всё
Name Status Components
mirror/gm0 DEGRADE ad16
Вот что писалось в логи в момент, когда диск ad8 начал отваливаться.
Код: Выделить всё
Jan 18 05:27:57 mainuser kernel: ad8: WARNING - SETFEATURES SET TRANSFER MODE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES SET TRANSFER MODE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES ENABLE RCACHE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES ENABLE WCACHE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SET_MULTI taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: TIMEOUT - READ_DMA48 retrying (1 retry left) LBA=785617383
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES SET TRANSFER MODE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES SET TRANSFER MODE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES ENABLE RCACHE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES ENABLE WCACHE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SET_MULTI taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: TIMEOUT - WRITE_DMA48 retrying (1 retry left) LBA=1953525167
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES SET TRANSFER MODE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES SET TRANSFER MODE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES ENABLE RCACHE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES ENABLE WCACHE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SET_MULTI taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: TIMEOUT - READ_DMA48 retrying (0 retries left) LBA=785617383
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES SET TRANSFER MODE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES SET TRANSFER MODE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES ENABLE RCACHE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES ENABLE WCACHE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SET_MULTI taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: TIMEOUT - WRITE_DMA48 retrying (0 retries left) LBA=1953525167
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES SET TRANSFER MODE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES SET TRANSFER MODE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES ENABLE RCACHE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES ENABLE WCACHE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SET_MULTI taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: FAILURE - READ_DMA48 timed out LBA=785617383
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES SET TRANSFER MODE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES SET TRANSFER MODE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES ENABLE RCACHE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SETFEATURES ENABLE WCACHE taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: WARNING - SET_MULTI taskqueue timeout - completing request directly
Jan 18 05:30:18 mainuser kernel: ad8: FAILURE - WRITE_DMA48 timed out LBA=1953525167
Jan 18 05:30:18 mainuser kernel: GEOM_MIRROR: Cannot write metadata on ad8 (device=gm0, error=5).
Jan 18 05:30:18 mainuser kernel: GEOM_MIRROR: Cannot update metadata on disk ad8 (error=5).
Jan 18 05:30:18 mainuser kernel: GEOM_MIRROR: Device gm0: provider ad8 disconnected.
Jan 18 05:30:18 mainuser kernel: g_vfs_done():mirror/gm0s1a[READ(offset=393646133248, length=2048)]error = 5
Сейчас даже данные S.M.A.R.T. диск ad8 не показывает. Такая же ситуация была и в первый раз, когда S.M.A.R.T. начал отображаться только после перезагрузки.
Re: gmirror RAID 1
Добавлено: 2011-01-19 5:40:02
Dimon5
Кстати, очень странная проблема.
Произошла уже второй раз.
До перезагрузки система как бы показывает, что диск ad8 выпал из массива.
И я командой
по идее указываю, на то чтобы массив забыл о нем.
И как только делаю перезагрузку система вдруг, почему то нистого ниссего пытаться грузиться с диска ad8.
Естественно выдаются ошибки на файловой системе диска ad8, и после проверки fsck -y система загружается именно с ad8,
в тоже время, выкидывая ad16.
Одно только непонятно, с какого перепуга массив загружается с диска ad8 (сбоящего) если я до перезагрузки указал, чтобы
gmirror забыл о нем.
Выдаются странные ошибки:
Код: Выделить всё
GEOM_MIRROR: Cannot add disk ad16 to gm0 (error=22).
GEOM_LABEL: Label for provider ad16s1a is ufsid/4af19b975ec46b49.
Root mount waiting for: GMIRROR
Root mount waiting for: GMIRROR
Root mount waiting for: GMIRROR
Root mount waiting for: GMIRROR
GEOM_MIRROR: Force device gm0 start due to timeout.
GEOM_MIRROR: Device mirror/gm0 launched (1/2).
Почему система грузится не с нормального диска?
В интернете нашел упоминание очень похожей ситуации на английском форуме FreeBSD:
http://forums.freebsd.org/showthread.php?t=4069
Суть ее в том, что загрузится со второго диска получается, только в том случае если отключить питание на первом тоесть на ad8 (Выставление порядка загрузки в Bios, и по клавише F10 тоже не помагает, система все равно пытается, грузится с первого диска.)
Очень непонятна в данной ситуации работа gmirror, что это баг или так и должно быть?
Re: gmirror RAID 1
Добавлено: 2011-01-19 7:08:50
FiL
ну не надо грузиться с плохим диском. не надо. диск надо поменять на хороший и чистый. С него точно ничего не загрузится.
Re: gmirror RAID 1
Добавлено: 2011-01-19 7:15:07
FiL
P.S. Ты вообще знаешь что делает команда
и чем она отличается от
По-моему ты совершенно по-своему воспринимаешь gmirror forget и ожидаешь от нее результатов, на которые она совершенно не предназначена.
Re: gmirror RAID 1
Добавлено: 2011-01-19 18:53:17
Dimon5
Да действительно наверно я ошибался.
Как гласит Gmirror Manual
forget - Forget about components which are not connected. This command is useful when a disk has failed and cannot be reconnected, preventing the remove command from being used to remove it.
На сколько хватает моего английского я понял, это так, что gmirror forget используется в случае когда, например сбойный диск отключен и необходимо указать зеркалу забыть о нем. Тоесть этот случай подходит при замене диска.
remove - Remove the given component(s) from the mirror and clear meta - data on it.
gmirror remove как я понимаю, необходима для того, чтобы удалить выбранный диск из массива и очистить на нем метаданные о его принадлежности к зеркалу.
Наверно в этом и была моя ошибка, что с самого начала (если я не собирался вытаскивать выпавший диск из сервера) нужно было использовать что-типа:
Код: Выделить всё
gmirror deactivate gm0 ad8
gmirror remove gm0 ad8
Тогда, я полагаю таких как в вышеописанных мною постах накладок не произошло бы.
Re: gmirror RAID 1
Добавлено: 2011-01-19 20:04:10
FiL
в целом да, если ты не собираешься удалять диск, то надо делать remove, а не forget.
К сожалению есть одна проблема. Проблема в том, что сделать remove когда диск недоступен ты не сможешь.
а если делать forget, то метаданные на ad8 не меняются (да и как им поменяться, если диск недоступен) и при следующей загрузке система считает этот диск вполне себе живым. Ведь на нем нет никаких пометок, что он плохой.
Прросто система в принципе не предполагает такого поведения, что диск умер совсем (и недоступен для remove), а потом вернулся живой после ребута.
Re: gmirror RAID 1
Добавлено: 2011-01-19 22:34:30
Dimon5
Да вот и непонятно, что с этим диском. Почему он намертво зависал, а после перезагрузки снова, как ни в чем небывало грузился.
Сейчас снова засунул его в зеркало, все синхронизировалось.
И вот уже сутки зеркало работает нормально.
Показания S.M.A.R.T. вроде ничего катастрофического не показывают:
Код: Выделить всё
=== START OF INFORMATION SECTION ===
Device Model: WDC WD1001FALS-00J7B0
Serial Number: WD-WMATV0385277
Firmware Version: 05.00K05
User Capacity: 1,000,204,886,016 bytes
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Wed Jan 19 21:00:04 2011 EET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status: (0x84) Offline data collection activity
was suspended by an interrupting command from host.
Auto Offline Data Collection: Enabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: (19200) seconds.
Offline data collection
capabilities: (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 221) minutes.
Conveyance self-test routine
recommended polling time: ( 5) minutes.
SCT capabilities: (0x303f) SCT Status supported.
SCT Feature Control supported.
SCT Data Table supported.
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
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 - 0
3 Spin_Up_Time 0x0027 253 253 021 Pre-fail Always - 5125
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 146
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 200 200 051 Old_age Always - 0
9 Power_On_Hours 0x0032 082 082 000 Old_age Always - 13422
10 Spin_Retry_Count 0x0032 100 100 051 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 100 051 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 145
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 133
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 146
194 Temperature_Celsius 0x0022 117 091 000 Old_age Always - 33
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0008 200 200 051 Old_age Offline - 0
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 8736 -
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
Ну если он еще раз зависнет то получается только один выход вытащить этот диск физически, так как перезагрузка получается снова приведет к повторению вышеописанных ситуаций.
Re: gmirror RAID 1
Добавлено: 2011-01-19 22:58:52
rnd
А не пробовали проводки сата заменить, а еще может БП чудит...
Re: gmirror RAID 1
Добавлено: 2011-01-20 9:32:00
FiL
да, кстати.. проводки - это зло. Я тут месяц с домашним серваком бился. Оказалось дело даже не в проводках, а в коробке. такая 3.5 на 5.25 коробка для вставления дисков в 5-дюймовое отделение в корпусе. Вообще ничего не делает. А лишь из-за нее скорость падала с 90+ мегов до 10-. И месяц назад всё работало. А потом перестало. Но без коробки работает.
Вот и пойми это железо.
Re: gmirror RAID 1
Добавлено: 2011-01-20 11:35:14
manefesto
бэдный диск советую прогнать нулями через dd а потом синкнуть.
Re: gmirror RAID 1
Добавлено: 2012-02-05 18:00:58
ps
1.
скопировать /etc/fstab
2.
заменить все в /etc/fstab
/dev/mirror/gm0 на /dev/ad16
например
Код: Выделить всё
/dev/mirror/gm0s1b на /dev/ad16s1b
/dev/mirror/gm0s1e на /dev/ad16s1e
и т.д.
3.
перезагрузка
после перезагрузки у тебя система поднимется с ad16
4. самое важное!!!
скопируй все что дорого сердцу куда-нибудь на другой винт/сервер
5.
выключить
вставить НОВЫЙ ДИСК
включить
создать зеркало заново:
Код: Выделить всё
sysctl kern.geom.debugflags=16
gmirror label -v -b round-robin gm0 /dev/ad16
cp /etc/fstab_mirror /etc/fstab
shutdown -r now
после этого места если диск вставлен новый то ad
8 заменить на обозначение нового диска, если нет, то мучаться регулярным разваливанием зеркала
узнать обозначение нового диска можно командой atacontrol list
ждем когда зеркало засинхронизируется, периодически проверяем.
у меня синхронизация 500 Гб заняла 2,5 часа
p.s. удачи
Re: gmirror RAID 1
Добавлено: 2012-02-05 18:17:19
ps
в предыдущем посте .... конечно ... описка вышла
gmirror insert gm0 /dev/ad
8
надо было написать так :
Re: gmirror RAID 1
Добавлено: 2012-02-05 18:18:33
ps
в предыдущем посте .... конечно ... описка вышла
надо было написать так :