GPT + gmirror

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

GPT + gmirror

Непрочитанное сообщение icb » 2016-04-18 17:51:16

Пытаюсь сделать зеркало на свежеустановленной FreeBSD.
grart show показывает свободные 512b в самом конце диска.
Делаю gmirror label gm0 ada0 - ошибок нет, но и gm0 не появляется.
gmirror list и gmirror status тоже не показывают созданный массив.
В чем может быть проблема?

Хостинговая компания 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/

guest
проходил мимо

GPT + gmirror

Непрочитанное сообщение guest » 2016-04-18 19:05:54

icb писал(а):Пытаюсь сделать зеркало на свежеустановленной FreeBSD.
брр, это как это?
grart show показывает свободные 512b в самом конце диска.
Делаю gmirror label gm0 ada0 - ошибок нет, но и gm0 не появляется.
gmirror list и gmirror status тоже не показывают созданный массив.
В чем может быть проблема?
gmirror сырого диска выполняется из shell или livecd/usb режима при загрузке
с установочного cd/usb

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

GPT + gmirror

Непрочитанное сообщение icb » 2016-04-18 20:03:31

undefined писал(а): брр, это как это?
Установил систему на диск, теперь хочу добавить второй диск и сделать зеркало.
undefined писал(а): gmirror сырого диска выполняется из shell или livecd/usb режима при загрузке
с установочного cd/usb
Насколько я понимаю - это один из вариантов. Даже когда GPT не оставляла зазор, gmirror работал затирая резервную копию (есть куча статей с таким режимом работы).
Но теперь похоже это предусмотрели и оставляют 512b - значит по идее можно без проблем делать на существующем диске (выставляя sysctl kern.geom.debugflags=16).

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

GPT + gmirror

Непрочитанное сообщение Alex Keda » 2016-04-18 21:57:16

Ну, вы вот попробовали.
Не получилось.

Значит низя.

А вообще, перезагрузите или попросите контроллер пересканировать ATA, не факт что изменения на живом диске без телодвижений увидятся
Убей их всех! Бог потом рассортирует...

guest
проходил мимо

GPT + gmirror

Непрочитанное сообщение guest » 2016-04-18 22:16:08

icb писал(а):
undefined писал(а): брр, это как это?
Установил систему на диск, теперь хочу добавить второй диск и сделать зеркало.
undefined писал(а): gmirror сырого диска выполняется из shell или livecd/usb режима при загрузке
с установочного cd/usb
Насколько я понимаю - это один из вариантов. Даже когда GPT не оставляла зазор, gmirror работал затирая резервную копию (есть куча статей с таким режимом работы).
Но теперь похоже это предусмотрели и оставляют 512b - значит по идее можно без проблем делать на существующем диске (выставляя sysctl kern.geom.debugflags=16).
ну так делайте по куче статей...

У Вас в заголовке: GPT + gmirror

вариант 1 (рекомендуемый): зеркалирование отдельных партиций
вариант 2: зеркалирование сырого диска (жертвуя копией таблицы GPT)

вариант по Handbook: зеркалирование сырого диска, но с MBR.

Если вернуться к вариант 2/GPT, то была изменена проверка geom при загрузке,
для некоторых классов, например, geom_mirror, отменена проверка альтернативной копии gpt.

Но Вы не можете установить систему на диск и потом создать geom_mirror, затрете метаданные,
поэтому, сначала создаете зеркало из двух дисков и затем его размечаете как GPT.

Вот как это делается (использовался virtualbox):

- загрузились, вышли в shell или live (live удобней)

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

# camcontrol devlist
<VBOX HARDDISK 1.0>                at scbus0 target 0 lun 0 (ada0,pass0)
<VBOX HARDDISK 1.0>                at scbus0 target 1 lun 0 (ada1,pass1)
<VBOX CD-ROM 1.0>                  at scbus1 target 0 lun 0 (pass2,cd0)
# gmirror load
# kldstat
Id Refs Address            Size     Name
 1    3 0xffffffff80200000 179ddb0  kernel
 2    1 0xffffffff81a11000 f973     geom_mirror.ko
# gpart show
# gmirror label gm0 ada0 ada1
# ls -la /dev/mirror
total 2
dr-xr-xr-x   2 root  wheel      512 Apr 18 18:15 .
dr-xr-xr-x  11 root  wheel      512 Apr 18 18:13 ..
crw-r-----   1 root  operator  0x4e Apr 18 18:15 gm0
# gpart create -s gpt mirror/gm0
mirror/gm0 created
# gpart show mirror/gm0
=>     34  8388540  mirror/gm0  GPT  (4.0G)
       34  8388540              - free -  (4.0G)
# gpart add -t freebsd-swap -s 512k -l swap mirror/gm0
mirror/gm0p1 added
# gpart show
=>     34  8388540  mirror/gm0  GPT  (4.0G)
       34      256           1  freebsd-boot  (128K)
      290     1024           2  freebsd-swap  (512K)
     1314  8387260              - free -  (4.0G)

# gpart add -t freebsd-ufs mirror/gm0
mirror/gm0p3 added
# gpart show
=>     34  8388540  mirror/gm0  GPT  (4.0G)
       34      256           1  freebsd-boot  (128K)
      290     1024           2  freebsd-swap  (512K)
     1314  8387260           3  freebsd-ufs  (4.0G)

# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 mirror/gm0
bootcode written to mirror/gm0
# ls /dev/mirror
/dev/mirror/gm0p1 /dev/mirror/gm0p2 /dev/mirror/gm0p3
# newfs -L root /dev/mirror/gm0p3
/dev/mirror/gm0p3: 4095.3MB (8387256 sectors) block size 32768, fragment size 4096
        using 7 cylinder groups of 626.09MB, 20035 blks, 80256 inodes.
super-block backups (for fsck_ffs -b #) at:
 192, 1282432, 2564672, 3846912, 5129152, 6411392, 7693632
# mount
/dev/iso9660/10_2_RELEASE_AMD64_CD on / (cd9660, local, read-only)
devfs on /dev (devfs, local, multilabel)
/dev/md0 on /var (ufs, local)
/dev/md1 on /tmp (ufs, local)
# mount /dev/ufs/root /mnt
# cd /usr/freebsd-dist/
# ls -la
total 677052
drwxr-xr-x   2 root  wheel       2048 Aug 12  2015 .
drwxr-xr-x  15 root  wheel       2048 Aug 12  2015 ..
-rw-r--r--   1 root  wheel        782 Aug 12  2015 MANIFEST
-rw-r--r--   1 root  wheel   67410700 Aug 12  2015 base.txz
-rw-r--r--   1 root  wheel    1432104 Aug 12  2015 doc.txz
-rw-r--r--   1 root  wheel     886316 Aug 12  2015 games.txz
-rw-r--r--   1 root  wheel   95799284 Aug 12  2015 kernel.txz
-rw-r--r--   1 root  wheel   17165256 Aug 12  2015 lib32.txz
-rw-r--r--   1 root  wheel   39402500 Aug 12  2015 ports.txz
-rw-r--r--   1 root  wheel  124551336 Aug 12  2015 src.txz

# for i in base.txz kernel.txz lib32.txz; do tar --unlink -xvpJf $i -C /mnt; done
# ls -la /mnt
# cat > /mnt/boot/loader.conf
geom_mirror_load="YES"
vfs.root.mountfrom="ufs:/dev/ufs/rootfs"
CTRL-D

# cat > /mnt/etc/rc.conf
fsck_y_enable="YES"
background_fsck="YES"

ifconfig_em0="dhcp"
hostname="mirror.local"

firewall_enable="YES"
firewall_type="OPEN"

sshd_enable="YES"

sendmail_enable="NONE"
CTRL-D

# cat > /mnt/etc/fstab
/dev/gpt/swap  none            swap    sw              0       0
/dev/ufs/root  /               ufs     rw              1       1
CTRL-D
# reboot
можно заранее подготовить скрипт или rc.conf/fstab/loader.conf
и в livecd поднять руками сеть:

# ifconfig ...
# route add ...
# scp

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

GPT + gmirror

Непрочитанное сообщение icb » 2016-04-19 9:19:56

undefined писал(а): Но Вы не можете установить систему на диск и потом создать geom_mirror, затрете метаданные, поэтому, сначала создаете зеркало из двух дисков и затем его размечаете как GPT.
Так не очень удобно в реальности, но тоже пробовал.
Перед установкой зашел в shell и сделал gm0
В установщике выбрал ручное разбиение - на gm0 сделал GPT и создал разделы. Система развернулась. Захожу в shell (хочу включить gmirror в автозапуск), но в mnt пусто. При этом df выдает что в mnt подключен /dev/mirror/gm0p3 и занято там 926M :(

Отправлено спустя 16 минут 54 секунды:
Да и при таком раскладе при загрузке все равно пишет "gptboot: backup GPT header checksum mismatch"
Т.е. GPT все равно бьется :(

guest
проходил мимо

GPT + gmirror

Непрочитанное сообщение guest » 2016-04-19 10:28:53

icb писал(а):
undefined писал(а): Но Вы не можете установить систему на диск и потом создать geom_mirror, затрете метаданные, поэтому, сначала создаете зеркало из двух дисков и затем его размечаете как GPT.
Так не очень удобно в реальности, но тоже пробовал.
Перед установкой зашел в shell и сделал gm0
В установщике выбрал ручное разбиение - на gm0 сделал GPT и создал разделы. Система развернулась. Захожу в shell (хочу включить gmirror в автозапуск), но в mnt пусто. При этом df выдает что в mnt подключен /dev/mirror/gm0p3 и занято там 926M :(
Так не пользуйте установщик, Вам расписано КАК УСТАНОВИТЬ.
Отправлено спустя 16 минут 54 секунды:
Да и при таком раскладе при загрузке все равно пишет "gptboot: backup GPT header checksum mismatch"
Т.е. GPT все равно бьется :(
И снова про это было расписано, это учтено в gptboot, в чем проблемы?
Вы либо используете gmirror для целых дисков и жертвуете копией GPT, либо отказываетесь
и используете варианты:

- mbr + gmirror
- zfs mirror

gmirror или graid(raid1) - используется в продакшн с условием потери альтернативной копии gpt,
ничего тут страшного нет, зеркало через graid работает быстрей чем gmirror.

Как говорят, Вы уж выбирайте, "шашечки или ехать"

Аватара пользователя
Amadeus
ст. сержант
Сообщения: 332
Зарегистрирован: 2008-10-05 12:42:44
Откуда: Kiev

GPT + gmirror

Непрочитанное сообщение Amadeus » 2016-04-19 13:52:25

http://bu7cher.blogspot.com/2011/03/fre ... t-ufs.html

Вот линк, который целиком отвечает на вопрос "как".

Он + немного понимания того, что мы делаем вообще.
Нет ничего невозможного

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

GPT + gmirror

Непрочитанное сообщение icb » 2016-04-19 18:21:16

undefined писал(а): Так не пользуйте установщик, Вам расписано КАК УСТАНОВИТЬ.
Ну как не пользуйся - он же специально для установки сделан. Можно конечно ручками, но есть ведь инструмент готовый.
Оказалось что установщик при последнем выходе в shell хоть и показывает (через df и mount) точки монтирования, но реально пользователь находится в / свежеуствновленного диска (может chroot делает).
undefined писал(а): gmirror или graid(raid1)
До этого момента я думал это просто синонимы. :)
undefined писал(а): зеркало через graid работает быстрей чем gmirror.
За счет чего? Ведь то и то программная реалиазация.
undefined писал(а): Как говорят, Вы уж выбирайте, "шашечки или ехать"
В том то и дело, что надо ехать.
Появилась задача - сделать зеркало из существующего диска, и ее хотелось решить.
И по идее проблем то возникать не должно, а везде натыкаешься на детские болезни. Ощущение что на geom забили и особо не поддерживают.
Amadeus писал(а): Вот линк, который целиком отвечает на вопрос "как".
Читал, и там написано что "в 10-ке поведение gptboot и GEOM_PART_GPT уже синхронизировано".
Вот и подумал, что все должно работать без ошибок и без затирания метаданных.

guest
проходил мимо

GPT + gmirror

Непрочитанное сообщение guest » 2016-04-19 18:33:11

icb писал(а):
undefined писал(а): Так не пользуйте установщик, Вам расписано КАК УСТАНОВИТЬ.
Ну как не пользуйся - он же специально для установки сделан. Можно конечно ручками, но есть ведь инструмент готовый.
Оказалось что установщик при последнем выходе в shell хоть и показывает (через df и mount) точки монтирования, но реально пользователь находится в / свежеуствновленного диска (может chroot делает).
undefined писал(а): gmirror или graid(raid1)
До этого момента я думал это просто синонимы. :)
undefined писал(а): зеркало через graid работает быстрей чем gmirror.
За счет чего? Ведь то и то программная реалиазация.
undefined писал(а): Как говорят, Вы уж выбирайте, "шашечки или ехать"
В том то и дело, что надо ехать.
Появилась задача - сделать зеркало из существующего диска, и ее хотелось решить.
И по идее проблем то возникать не должно, а везде натыкаешься на детские болезни. Ощущение что на geom забили и особо не поддерживают.
Amadeus писал(а): Вот линк, который целиком отвечает на вопрос "как".
Читал, и там написано что "в 10-ке поведение gptboot и GEOM_PART_GPT уже синхронизировано".
Вот и подумал, что все должно работать без ошибок и без затирания метаданных.
странные у Вас рассуждения, GEOM Framework - развивался и развивается, метаданные как писались
в последний сектор провайдера, так и пишутся, из-за чего вся эта засада с GPT, переписывать
море классов в GEOM никто не захотел ради смены сектора для метаданных.

graid - софтверный рейд, реализация его была позже gmirror и алгоритм там иной, за счет
этого быстрей, ньюансы уже не помню.

Инсталлятор на все случаи жизни не заточишь, многие давно им не пользуются, а разворачивают
систему руками на нужную конфигурацию, благо удобней, быстрей и со всеми нужными шашечками.

Вывод: если Вам ехать - езжайте, если Вам инсталлятор, красуйтесь шашечками.