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], Google Feedfetcher


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

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