BSDPORTAL.RU http://www.bsdportal.ru/ |
|
RAID1 gmirror ошибка GPT http://www.bsdportal.ru/viewtopic.php?f=58&t=29042 |
Страница 1 из 1 |
Автор: | Vasily [ Пт 21 фев, 2020 5:19 pm ] |
Заголовок сообщения: | RAID1 gmirror ошибка GPT |
Помогите дособрать gmirror после сбоя FreeBSD b2box.vd 10.2-STABLE 1 винта по 1Г сдеградировал в fstab на загрузку с ada0 и восстанавливал вот таким образом: Код: root@b2box:~ # kldstat Id Refs Address Size Name 1 6 0xffffffff80200000 1826d28 kernel 3 1 0xffffffff81c11000 3585 ums.ko 4 1 0xffffffff81c15000 f973 geom_mirror.ko root@b2box:~ # kldunload geom_mirror.ko root@b2box:~ # kldstat Id Refs Address Size Name 1 4 0xffffffff80200000 1826d28 kernel 3 1 0xffffffff81c11000 3585 ums.ko root@b2box:~ # gmirror label -vb round-robin gm0 /dev/ada0 Metadata value stored on /dev/ada0. Done. root@b2box:~ # gmirror load root@b2box:~ # ll /dev/mirror/ total 0 crw-r----- 1 root operator 0x87 Feb 19 19:37 gm0 root@b2box:~ # gmirror status Name Status Components mirror/gm0 COMPLETE ada0 (ACTIVE) root@b2box:/_bak/_manual/gpart # gpart backup ada0 > ada0_gpart_bak_d01 root@b2box:/_bak/_manual/gpart # file ada0_gpart_bak_d01 ada0_gpart_bak_d01: ASCII text root@b2box:/_bak/_manual/gpart # cat ada0_gpart_bak_d01 GPT 128 1 freebsd-boot 40 1024 [bootme] 2 freebsd-ufs 1064 2097152 3 freebsd-swap 2098216 8388608 4 freebsd-ufs 10486824 10485760 5 freebsd-ufs 20972584 2097152 6 freebsd-ufs 23069736 83886080 7 freebsd-ufs 106955816 1846569000 root@b2box:/_bak/_manual/gpart # gpart restore mirror/gm0 < ada0_gpart_bak_d01 root@b2box:/_bak/_manual/gpart # ll /dev/mirror/ crw-r----- 1 root operator 0x89 Feb 19 19:48 gm0p1 crw-r----- 1 root operator 0x8b Feb 19 19:48 gm0p2 crw-r----- 1 root operator 0x94 Feb 19 19:48 gm0p3 crw-r----- 1 root operator 0x96 Feb 19 19:48 gm0p4 crw-r----- 1 root operator 0x9f Feb 19 19:48 gm0p5 crw-r----- 1 root operator 0xa2 Feb 19 19:48 gm0p6 crw-r----- 1 root operator 0xa5 Feb 19 19:48 gm0p7 root@b2box:/_bak/_manual/gpart # gpart bootcode -b /boot/pmbr mirror/gm0 bootcode written to mirror/gm0 После чего добавил второй винтчестер и вернулся на загрузку с mirror/gm0 все работает грузиться, но смущает ошибка в GPT Код: root@b2box:~ # gpart show => 34 1953525100 mirror/gm0 GPT (932G) [CORRUPT] 34 6 - free - (3.0K) 40 1024 1 freebsd-boot [bootme] (512K) 1064 2097152 2 freebsd-ufs (1.0G) 2098216 8388608 3 freebsd-swap (4.0G) 10486824 10485760 4 freebsd-ufs (5.0G) 20972584 2097152 5 freebsd-ufs (1.0G) 23069736 83886080 6 freebsd-ufs (40G) 106955816 1846569000 7 freebsd-ufs (881G) 1953524816 318 - free - (159K) root@b2box:~ # gpart recover mirror/gm0 mirror/gm0 recovered root@b2box:~ # gpart show => 34 1953525100 mirror/gm0 GPT (932G) 34 6 - free - (3.0K) 40 1024 1 freebsd-boot [bootme] (512K) 1064 2097152 2 freebsd-ufs (1.0G) 2098216 8388608 3 freebsd-swap (4.0G) 10486824 10485760 4 freebsd-ufs (5.0G) 20972584 2097152 5 freebsd-ufs (1.0G) 23069736 83886080 6 freebsd-ufs (40G) 106955816 1846569000 7 freebsd-ufs (881G) 1953524816 318 - free - (159K) root@b2box:~ # gpart commit gpart: Invalid number of arguments. root@b2box:~ # root@b2box:~ # gpart commit mirror/gm0 gpart: Operation not permitted Подскажите что я неправильно делаю и как полечить GPT. |
Автор: | AMDmi3 [ Пт 21 фев, 2020 5:54 pm ] |
Заголовок сообщения: | Re: RAID1 gmirror ошибка GPT |
Цитата: mirror/gm0 recovered Вы же всё сделали. Цитата: gpart commit Зачем? Почитайте что делает gpart commit. |
Автор: | Vasily [ Пт 21 фев, 2020 8:47 pm ] |
Заголовок сообщения: | Re: RAID1 gmirror ошибка GPT |
Спасибо за отклик, тем не менее я не утешился ![]() после перезагрузки система мне по прежнему говорит "пошел нафиг мальчик" :: Код: root@b2box:~ # gmirror status Name Status Components mirror/gm0 COMPLETE ada0 (ACTIVE) ada1 (ACTIVE) root@b2box:~ # gpart show => 34 1953525100 mirror/gm0 GPT (932G) [CORRUPT] 34 6 - free - (3.0K) 40 1024 1 freebsd-boot [bootme] (512K) 1064 2097152 2 freebsd-ufs (1.0G) 2098216 8388608 3 freebsd-swap (4.0G) 10486824 10485760 4 freebsd-ufs (5.0G) 20972584 2097152 5 freebsd-ufs (1.0G) 23069736 83886080 6 freebsd-ufs (40G) 106955816 1846569000 7 freebsd-ufs (881G) 1953524816 318 - free - (159K) dmesg: Код: ada0 at ahcich0 bus 0 scbus0 target 0 lun 0 ada0: <TOSHIBA DT01ACA100 MS2OA750> ATA8-ACS SATA 3.x device ada0: Serial Number Z4SLXLRFS ada0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes) ada0: Command Queueing enabled ada0: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C) ada0: Previously was known as ad4 ada1 at ahcich3 bus 0 scbus3 target 0 lun 0 ada1: <WDC WD10EZEX-00BN5A0 01.01A01> ACS-2 ATA SATA 3.x device ada1: Serial Number WD-WCC3F2DLEH9K ada1: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes) ada1: Command Queueing enabled ada1: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C) ada1: Previously was known as ad10 GEOM_MIRROR: Device mirror/gm0 launched (2/2). SMP: AP CPU #1 Launched! Timecounter "TSC-low" frequency 1197319690 Hz quality 1000 GEOM: mirror/gm0: the secondary GPT table is corrupt or invalid. GEOM: mirror/gm0: using the primary only -- recovery suggested. .... Trying to mount root from ufs:/dev/mirror/gm0p2 [rw]... g_disk_kerneldump(ada1, 1074286592, 4294967296) g_post_event_x(0xffffffff80c21f20, 0xfffffe0236eeba20, 2, 262144) g_attach(0xfffff8000593b600, 0xfffff800058c3800) g_post_event_x(0xffffffff808c0330, 0xfffff8000501ba00, 2, 0) ref 0xfffff8000501ba00 g_post_event_x(0xffffffff808c0330, 0xfffff800058c3800, 2, 0) ref 0xfffff800058c3800 g_spoil_event 0xfffff8000501ba00(MIRROR:gm0:mirror/gm0) g_spoil_event 0xfffff800058c3800(PART:mirror/gm0:mirror/gm0p3) g_slice_spoiled(0xfffff80005892500/mirror/gm0p3) g_wither_geom(0xfffff800058c2000(mirror/gm0p3)) g_orphan_provider(0xfffff800058c1e00(gptid/050af7d6-5340-11ea-8289-7427ea5e8a04), 6) g_orphan_register(gptid/050af7d6-5340-11ea-8289-7427ea5e8a04) g_dev_orphan(0xfffff800058e5380(gptid/050af7d6-5340-11ea-8289-7427ea5e8a04)) g_dev_callback(0xfffff800058e5380(gptid/050af7d6-5340-11ea-8289-7427ea5e8a04))g_detach(0xfffff80005892500) g_post_event_x(0xffffffff808b8b80, 0xfffff800058e5380, 2, 0)g_destroy_consumer(0xfffff80005892500) g_dev_destroy(0xfffff800058e5380(gptid/050af7d6-5340-11ea-8289-7427ea5e8a04)) g_detach(0xfffff800058e5380) g_destroy_consumer(0xfffff800058e5380) g_destroy_geom(0xfffff800058c2100(gptid/050af7d6-5340-11ea-8289-7427ea5e8a04)) g_destroy_geom(0xfffff800058c2000(mirror/gm0p3)) .... последних мне непонятных мессаг 3 страницы |
Автор: | lavr [ Сб 22 фев, 2020 12:22 pm ] |
Заголовок сообщения: | Re: RAID1 gmirror ошибка GPT |
Vasily писал(а): GEOM: mirror/gm0: the secondary GPT table is corrupt or invalid. GEOM: mirror/gm0: using the primary only -- recovery suggested. альтернативная таблица затерта метаданными, об этом и предупреждение. Типа жертвуем копией GPT, но разрешаем работу gmirror Код: Trying to mount root from ufs:/dev/mirror/gm0p2 [rw]... g_disk_kerneldump(ada1, 1074286592, 4294967296) g_post_event_x(0xffffffff80c21f20, 0xfffffe0236eeba20, 2, 262144) g_attach(0xfffff8000593b600, 0xfffff800058c3800) g_post_event_x(0xffffffff808c0330, 0xfffff8000501ba00, 2, 0) ref 0xfffff8000501ba00 g_post_event_x(0xffffffff808c0330, 0xfffff800058c3800, 2, 0) ref 0xfffff800058c3800 g_spoil_event 0xfffff8000501ba00(MIRROR:gm0:mirror/gm0) g_spoil_event 0xfffff800058c3800(PART:mirror/gm0:mirror/gm0p3) g_slice_spoiled(0xfffff80005892500/mirror/gm0p3) g_wither_geom(0xfffff800058c2000(mirror/gm0p3)) g_orphan_provider(0xfffff800058c1e00(gptid/050af7d6-5340-11ea-8289-7427ea5e8a04), 6) g_orphan_register(gptid/050af7d6-5340-11ea-8289-7427ea5e8a04) g_dev_orphan(0xfffff800058e5380(gptid/050af7d6-5340-11ea-8289-7427ea5e8a04)) g_dev_callback(0xfffff800058e5380(gptid/050af7d6-5340-11ea-8289-7427ea5e8a04))g_detach(0xfffff80005892500) g_post_event_x(0xffffffff808b8b80, 0xfffff800058e5380, 2, 0)g_destroy_consumer(0xfffff80005892500) g_dev_destroy(0xfffff800058e5380(gptid/050af7d6-5340-11ea-8289-7427ea5e8a04)) g_detach(0xfffff800058e5380) g_destroy_consumer(0xfffff800058e5380) g_destroy_geom(0xfffff800058c2100(gptid/050af7d6-5340-11ea-8289-7427ea5e8a04)) g_destroy_geom(0xfffff800058c2000(mirror/gm0p3)) .... в остальных сообщениях, на первый взгляд криминала нет, возможно диагностика в loader включена? |
Автор: | Vasily [ Пн 24 фев, 2020 12:48 pm ] |
Заголовок сообщения: | Re: RAID1 gmirror ошибка GPT |
1) Код: GEOM: mirror/gm0: the secondary GPT table is corrupt or invalid. GEOM: mirror/gm0: using the primary only -- recovery suggested. я так понимаю, что работать на одной копии GPT - неправильно, да и сообщение как-то напрягает. так как забороть то? вариант Код: root@b2box:~ # gpart recover mirror/gm0 mirror/gm0 recovered У меня что-то не прокатил, после перезагрузки опять corrupt 2)"возможно диагностика в loader включена?" ..похоже на то, я ведь как поднял gmirror еще при изначальной установке системы 4 года тому, так его и не выключал.. эм.. ![]() |
Автор: | lavr [ Пн 24 фев, 2020 2:55 pm ] |
Заголовок сообщения: | Re: RAID1 gmirror ошибка GPT |
Vasily писал(а): 1) Код: GEOM: mirror/gm0: the secondary GPT table is corrupt or invalid. GEOM: mirror/gm0: using the primary only -- recovery suggested. я так понимаю, что работать на одной копии GPT - неправильно, да и сообщение как-то напрягает. так как забороть то? вариант Код: root@b2box:~ # gpart recover mirror/gm0 mirror/gm0 recovered У меня что-то не прокатил, после перезагрузки опять corrupt 2)"возможно диагностика в loader включена?" ..похоже на то, я ведь как поднял gmirror еще при изначальной установке системы 4 года тому, так его и не выключал.. эм.. ![]() и не прокатит, вся соль расписана: http://bu7cher.blogspot.com/search/label/gmirror |
Автор: | Vasily [ Пн 24 фев, 2020 4:49 pm ] |
Заголовок сообщения: | Re: RAID1 gmirror ошибка GPT |
Код: root@b2box:~ # gmirror resize gm0 | gmirror: Cannot expand provider mirror/gm0 | Additional options include: Приведенная в начале статьи команда то же не помогла.. продолжаю читать статью, гуглить и очень надеяться на помощь форума ![]() |
Автор: | xemul [ Вт 25 фев, 2020 12:17 am ] |
Заголовок сообщения: | Re: RAID1 gmirror ошибка GPT |
Vasily писал(а): Приведенная в начале статьи команда то же не помогла.. продолжаю читать статью, гуглить и очень надеяться на помощь форума ![]() Предположу, что lavr предполагал, что Вы осилите Варианты загрузки FreeBSD: gmirror + GPT + UFS, обратите внимание на "затем на зеркале создаётся таблица разделов GPT" и соотнесёте со своей неприятностью. (если не предполагаете одновременный отказ обоих hdd, забейте на неё, т.к. у Вас есть ada0_gpart_bak_d01) Я бы подумал о переезде на актуальную версию оси и на zraid0. |
Автор: | Vasily [ Вт 25 фев, 2020 8:19 pm ] |
Заголовок сообщения: | Re: RAID1 gmirror ошибка GPT |
Я согласен что не оправдал ожиданий по освоению хорошей статьи (пока что) ![]() |
Автор: | xemul [ Ср 26 фев, 2020 12:15 pm ] |
Заголовок сообщения: | Re: RAID1 gmirror ошибка GPT |
Вы ещё 4 года назад должны были нагуглить, что при "gmirror on GPT" будет конфликт второй копии данных разметки и метаданных gmirror. "тупой и грязный план" - ещё раз оттоптаться по тем же граблям? 4 года назад я бы уже не стал убивать время о любую комбинацию gmirror и GPT. |
Автор: | lavr [ Ср 26 фев, 2020 11:07 pm ] |
Заголовок сообщения: | Re: RAID1 gmirror ошибка GPT |
Vasily писал(а): Я согласен что не оправдал ожиданий по освоению хорошей статьи (пока что) ![]() печально что не осили, там все разжевано! Код: root@b2box:/_bak/_manual/gpart # gpart backup ada0 > ada0_gpart_bak_d01 ... root@b2box:/_bak/_manual/gpart # gpart restore mirror/gm0 < ada0_gpart_bak_d01 относительно двух команд выше, скажите, /dev/ada0 равно /dev/mirror/gm0 ? Зеркалить можно не целый диск, а каждую gpt партицию в отдельности, если уж вопрос в GPT, или целый диск но используя MBR. Можно и GPT, как - расписано у Елсукова и расписано как он изменил проверку GEOM. В случае gmirror gpt целого диска, админ сознательно идет на жертву альтернативной таблицы. |
Автор: | Vasily [ Пт 28 фев, 2020 12:28 pm ] |
Заголовок сообщения: | Re: RAID1 gmirror ошибка GPT |
Спасибо за ответ, да действительно, статьи Елсукова по данной тематике очень толковые. Пару раз прочел, но честно не до конца понял ![]() 1) dmesg: ada0: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C) 1953525168*512 = 1000204886016 2) gmirror list Geom name: gm0 State: COMPLETE Components: 2 Balance: round-robin Slice: 4096 Flags: NONE GenID: 0 SyncID: 1 ID: 413567440 Providers: 1. Name: mirror/gm0 Mediasize: 1000204885504 (932G) Если правильно смотрю - несколько(!) отличаются по размерам ![]() Цитата: В случае gmirror gpt целого диска, админ сознательно идет на жертву альтернативной таблицы. Надо понимать, что тут я уже, так сказать, занимаюсь перфекционизмом, с прагматической точки зрения, если даже полетит эта единственная копия GPT зеркала и уцелеет хоть 1 из составляющих зеркало винчестеров, то всегда можно будет по нему восстановить зеркало, что я уже и проделал на текущей тестовой системе. Я все правильно понял? |
Автор: | lavr [ Пт 28 фев, 2020 7:36 pm ] |
Заголовок сообщения: | Re: RAID1 gmirror ошибка GPT |
Vasily писал(а): Спасибо за ответ, да действительно, статьи Елсукова по данной тематике очень толковые. Пару раз прочел, но честно не до конца понял ![]() что не поняли? GPT - имеет две таблицы на диске, в начале и в конце. gmirror - сохраняет свои метаданные в последнем секторе провайдера, если Вы будете зеркалить весь диск, gmirror запишет в последний сектор метаданные и затрет один из секторов альтернативной таблицы. При загрузке, geom проверяет целостность GPT и восстанавливает ее, в итоге, затирает метаданные gmirror, и в итоге - нет зеркала. Елсуков же предложил делать следующее: - сначала создать зеркало: # gmirror label gm0 ad6 ad8 а потом, размечать не диски, а зеркало gm0 # gpart create -s gpt mirror/gm0 тогда метаданные будут записаны в предпоследний сектор физических дисков adX. И на этот предмет, он поправил проверку geom при загрузке. Разница: # gpart create -s gpt adaX # gpart create -s gpt mirror/gm0 видна? Есть два других варианта: - использовать MBR и зеркалить целый диск, потому что метаданные от gmirror в последнем секторе никому не помешают - зеркалить отдельные партиции gpt и в конце диска отставить пустыми 33 сектора: http://www.wonkity.com/~wblock/docs/html/gmirror.html Почитайте что есть GEOM framework и что данная прослойка позволяет делать, уделите внимание терминам: providers consumers class metadata |
Страница 1 из 1 | Часовой пояс: UTC + 4 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |