BSDPORTAL.RU

На этом сайте обсуждаются вопросы использования ОС FreeBSD
 Портал  •  Статьи  •  Форум  •  Wiki  •  Поиск  •  FAQ  •  Обои  •   Официальная документация  •  Новые темы 

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: RAID1 gmirror ошибка GPT
СообщениеДобавлено: Пт 21 фев, 2020 5:19 pm 
Не в сети

Зарегистрирован: Сб 24 янв, 2009 2:42 pm
Сообщения: 42
Помогите дособрать 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.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAID1 gmirror ошибка GPT
СообщениеДобавлено: Пт 21 фев, 2020 5:54 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5313
Откуда: Москва
Цитата:
mirror/gm0 recovered

Вы же всё сделали.

Цитата:
gpart commit

Зачем? Почитайте что делает gpart commit.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAID1 gmirror ошибка GPT
СообщениеДобавлено: Пт 21 фев, 2020 8:47 pm 
Не в сети

Зарегистрирован: Сб 24 янв, 2009 2:42 pm
Сообщения: 42
Спасибо за отклик, тем не менее я не утешился :)
после перезагрузки система мне по прежнему говорит "пошел нафиг мальчик" ::

Код:
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 страницы


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAID1 gmirror ошибка GPT
СообщениеДобавлено: Сб 22 фев, 2020 12:22 pm 
Не в сети

Зарегистрирован: Пт 03 сен, 2004 1:26 pm
Сообщения: 2458
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 включена?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAID1 gmirror ошибка GPT
СообщениеДобавлено: Пн 24 фев, 2020 12:48 pm 
Не в сети

Зарегистрирован: Сб 24 янв, 2009 2:42 pm
Сообщения: 42
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 года тому, так его и не выключал.. эм.. :))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAID1 gmirror ошибка GPT
СообщениеДобавлено: Пн 24 фев, 2020 2:55 pm 
Не в сети

Зарегистрирован: Пт 03 сен, 2004 1:26 pm
Сообщения: 2458
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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAID1 gmirror ошибка GPT
СообщениеДобавлено: Пн 24 фев, 2020 4:49 pm 
Не в сети

Зарегистрирован: Сб 24 янв, 2009 2:42 pm
Сообщения: 42
Код:
root@b2box:~ # gmirror resize gm0                                                             |
gmirror: Cannot expand provider mirror/gm0                                                    |                 Additional options include:

Приведенная в начале статьи команда то же не помогла.. продолжаю читать статью, гуглить и очень надеяться на помощь форума :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAID1 gmirror ошибка GPT
СообщениеДобавлено: Вт 25 фев, 2020 12:17 am 
Не в сети

Зарегистрирован: Ср 14 окт, 2009 2:26 pm
Сообщения: 596
Vasily писал(а):
Приведенная в начале статьи команда то же не помогла.. продолжаю читать статью, гуглить и очень надеяться на помощь форума :)

Предположу, что lavr предполагал, что Вы осилите Варианты загрузки FreeBSD: gmirror + GPT + UFS, обратите внимание на "затем на зеркале создаётся таблица разделов GPT" и соотнесёте со своей неприятностью.
(если не предполагаете одновременный отказ обоих hdd, забейте на неё, т.к. у Вас есть ada0_gpart_bak_d01)
Я бы подумал о переезде на актуальную версию оси и на zraid0.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAID1 gmirror ошибка GPT
СообщениеДобавлено: Вт 25 фев, 2020 8:19 pm 
Не в сети

Зарегистрирован: Сб 24 янв, 2009 2:42 pm
Сообщения: 42
Я согласен что не оправдал ожиданий по освоению хорошей статьи (пока что) :) Есть у меня тупой и грязный план - разбить на чистом винте таким жа размером разделы, перелить туда содержимое с рабочего диска и уже на основании собрать зеркало, так должно ведь получиться? Да пересесть на свежую версию ОС было бы еще правильнее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAID1 gmirror ошибка GPT
СообщениеДобавлено: Ср 26 фев, 2020 12:15 pm 
Не в сети

Зарегистрирован: Ср 14 окт, 2009 2:26 pm
Сообщения: 596
Вы ещё 4 года назад должны были нагуглить, что при "gmirror on GPT" будет конфликт второй копии данных разметки и метаданных gmirror.
"тупой и грязный план" - ещё раз оттоптаться по тем же граблям? 4 года назад я бы уже не стал убивать время о любую комбинацию gmirror и GPT.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAID1 gmirror ошибка GPT
СообщениеДобавлено: Ср 26 фев, 2020 11:07 pm 
Не в сети

Зарегистрирован: Пт 03 сен, 2004 1:26 pm
Сообщения: 2458
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 целого диска, админ сознательно идет на жертву
альтернативной таблицы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAID1 gmirror ошибка GPT
СообщениеДобавлено: Пт 28 фев, 2020 12:28 pm 
Не в сети

Зарегистрирован: Сб 24 янв, 2009 2:42 pm
Сообщения: 42
Спасибо за ответ, да действительно, статьи Елсукова по данной тематике очень толковые. Пару раз прочел, но честно не до конца понял :)

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 из составляющих зеркало винчестеров, то всегда можно будет по нему восстановить зеркало, что я уже и проделал на текущей тестовой системе. Я все правильно понял?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAID1 gmirror ошибка GPT
СообщениеДобавлено: Пт 28 фев, 2020 7:36 pm 
Не в сети

Зарегистрирован: Пт 03 сен, 2004 1:26 pm
Сообщения: 2458
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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: Bing [Bot], Majestic-12 [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Яндекс.Метрика