Перенос системы на ноые HDD

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Nick_mad
сержант
Сообщения: 280
Зарегистрирован: 2008-05-30 12:16:02
Откуда: Киев
Контактная информация:

Перенос системы на ноые HDD

Непрочитанное сообщение Nick_mad » 2018-03-07 12:54:22

Здравствуйте.

Посоветуйте, пожалуйста, как лучше и менее геморойно сделать.

Есть сервак стоит на нем 10.3-RELEASE-p14, скоро обновляться нужно так как EOL April 30, 2018.
Но тут все усложнилось тем что начинают винты немного подшаливать.
Винты настроины в софт рейд (gmirror), размер винта 250 гб.

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

gmirror status
      Name    Status  Components
mirror/gm0  COMPLETE  ada0 (ACTIVE)
                      ada1 (ACTIVE)
диск разбит

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

Filesystem            Size    Used   Avail Capacity  Mounted on
/dev/mirror/gm0s1a    1,9G    893M    927M    49%    /
devfs                 1,0K    1,0K      0B   100%    /dev
/dev/mirror/gm0s1d    107G     76G     22G    78%    /usr
/dev/mirror/gm0s1e    112G     80G     23G    78%    /var
/dev/mirror/gm0s1f    1,7G    6,4M    1,6G     0%    /tmp

Купили новые винты по 1т и теперь думаю как бы мне лучше и быстрее перекинуть все на новые винты?

1. подключить новый винт в зеркало и когда за синхронизируется то вытягивать старые? А потом неразмеченое место нарезать под какие то разделы, типа /usr/home, /usr/mail
2. Разметить диск в один корневой раздел и туда слить всю инфу. Тут тоже начинаются танцы как правильней переписывать инфу
3. разметить диск на те же разделы в новом размере и dump restore перенести
4. поставить на новые винты свежую фрю и перетянуть конфиги

Подскажите коллеги, как лучше и менее геморойно сделать. Спасибо

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

Перенос системы на ноые HDD

Непрочитанное сообщение guest » 2018-03-07 14:21:26

Nick_mad писал(а):Здравствуйте.

Посоветуйте, пожалуйста, как лучше и менее геморойно сделать.

Есть сервак стоит на нем 10.3-RELEASE-p14, скоро обновляться нужно так как EOL April 30, 2018.
Но тут все усложнилось тем что начинают винты немного подшаливать.
Винты настроины в софт рейд (gmirror), размер винта 250 гб.

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

gmirror status
      Name    Status  Components
mirror/gm0  COMPLETE  ada0 (ACTIVE)
                      ada1 (ACTIVE)
диск разбит

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

Filesystem            Size    Used   Avail Capacity  Mounted on
/dev/mirror/gm0s1a    1,9G    893M    927M    49%    /
devfs                 1,0K    1,0K      0B   100%    /dev
/dev/mirror/gm0s1d    107G     76G     22G    78%    /usr
/dev/mirror/gm0s1e    112G     80G     23G    78%    /var
/dev/mirror/gm0s1f    1,7G    6,4M    1,6G     0%    /tmp

Купили новые винты по 1т и теперь думаю как бы мне лучше и быстрее перекинуть все на новые винты?

1. подключить новый винт в зеркало и когда за синхронизируется то вытягивать старые? А потом неразмеченое место нарезать под какие то разделы, типа /usr/home, /usr/mail
2. Разметить диск в один корневой раздел и туда слить всю инфу. Тут тоже начинаются танцы как правильней переписывать инфу
3. разметить диск на те же разделы в новом размере и dump restore перенести
4. поставить на новые винты свежую фрю и перетянуть конфиги

Подскажите коллеги, как лучше и менее геморойно сделать. Спасибо
gmirror на mbr, посмотрите для начала в своем релизе:
# man gmirror - поиск resize
должен поддерживаться, далее проделайте лабораторную работу под виртуалкой:

gmirror
- вывести один диск 250GB
- ввести новый 1TB
- не забыть про оформление загрузчика на новом
- дождаться синхронизации
- вывести еще один диск 250GB
- далее добавить 1TB
- дождаться синхронизации
- снова не забыть про оформление загрузчика на втором 1TB
- проверить reboot
теперь можно приступить к gmirror resize (возможно перед этим сделать gpart resize)

так как у Вас MBR и последняя bsd-партиция "/dev/mirror/gm0s1f" - расширить через growfs можно только
ее: /tmp, ну либо создать еще партицию и задействовать ее.

Другой вариант - перейти на gpt и сделать всего две партиции "/" и "swap", сделать лучше
с livecd через dump|restore, ну или остаться на mbr но тоже только "/" и "swap".

Или уйти на zfs-mirror.

Sorry, gmirror resize не делал, ибо ушел от gmirror на zfs.
Сделайте пару тестовых лаб в виртуалке и будет понятно как удобней и какие затраты по времени.

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Перенос системы на ноые HDD

Непрочитанное сообщение snorlov » 2018-03-07 21:24:42

А вы сами как думаете, точнее? что хотите получить в конечном итоге, я в вашем случае ушел бы на gpt с zfs, а gmirror оставил бы для свопа...

Nick_mad
сержант
Сообщения: 280
Зарегистрирован: 2008-05-30 12:16:02
Откуда: Киев
Контактная информация:

Перенос системы на ноые HDD

Непрочитанное сообщение Nick_mad » 2018-03-12 17:13:33

Спасибо, за ответы.
Я так понимаю ZFS сейчас более актуальна, но я глянул (в хендбуке) что
Подсистема ZFS занимает значительную часть ресурсов системы.
У меня довольно слабенький сервачок х86 с 4 гигами памяти, я подумываю, какой бы сервис мне на нем остановить что бы в своп не лез, а то иногда бывает.
И вот думаю не будет ли переезд на ZFS скажем так, неоправданным, в моем случае. Вероятно я не буду использовать широкий функционал ZFS и я с ней никогда не работал.
Если вы авторитетно скажите что UFS вчерашний день и уже давно нужно юзать ZFS, я при держусь ваших рекомендаций.

То есть сейчас фактически выбираю между:
1. zfs-mirror
2. gpt и сделать всего две партиции "/" и "swap"

Кстати вопрос в догонку а можно мигрировать с х86 на х64?

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Перенос системы на ноые HDD

Непрочитанное сообщение snorlov » 2018-03-12 17:34:55

Для zfs желательно иметь 4гб или больше и x64 проц... на сайтике статья есть как мигрировать...

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

Перенос системы на ноые HDD

Непрочитанное сообщение guest » 2018-03-12 18:20:50

Nick_mad писал(а):Спасибо, за ответы.
Я так понимаю ZFS сейчас более актуальна, но я глянул (в хендбуке) что
Подсистема ZFS занимает значительную часть ресурсов системы.
У меня довольно слабенький сервачок х86 с 4 гигами памяти, я подумываю, какой бы сервис мне на нем остановить что бы в своп не лез, а то иногда бывает.
И вот думаю не будет ли переезд на ZFS скажем так, неоправданным, в моем случае. Вероятно я не буду использовать широкий функционал ZFS и я с ней никогда не работал.
Если вы авторитетно скажите что UFS вчерашний день и уже давно нужно юзать ZFS, я при держусь ваших рекомендаций.

То есть сейчас фактически выбираю между:
1. zfs-mirror
Если RAM=4GB, не советую использовать ZFS.

прим: возможно настало время озаботиться апгрейдом железа или покупкой нового?
2. gpt и сделать всего две партиции "/" и "swap"
зеркало можно сделать используя:
- gmirror
- graid

в свое время, в списках рассылки проходило что raid1 через graid - работает быстрей.

В случае с GPT, есть ньюанс, не рекомендуется делать зеркало сырого диска: adaX + adaY, связано
с тем что GEOM пишет метаданные в последний сектор провайдера. Но на практике, сделать это можно,
сперва создав raid1 через gmirror или graid, и уже ПОСЛЕ этого, размечать через gpart - рейд (ибо Елсуков
правил проверку geom на этот случай, см ссылку):

- gmirror
# gmirror load
# gmirror label gm0 ada1 ada2
далее основное, в чем соль:
# gpart create -s gpt mirror/gm0
# gpart add -t freebsd-boot -s 128k mirror/gm0
# gpart add -t freebsd-swap -s XG -l mswap mirror/gm0
# gpart add -t freebsd-ufs -l mroot mirror/gm0
# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 mirror/gm0
далее newfs и развернуть руками дистрибутив

- graid
# graid label Intel raid RAID1 /dev/ada0 /dev/ada1
соль:
# gpart create -s GPT /dev/raid/r0
# gpart add -t freebsd-boot -s 64k /dev/raid/r0
# gpart add -t freebsd-swap -s XG -l mswap /dev/raid/r0
# gpart add -t freebsd-ufs -l mroot /dev/raid/r0
# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 /dev/raid/r0
далее newfs и развернуть руками дистрибутив

где X - размер свопа, для graid можете выбрать для RAID1 любой формат метаданных: man graid
graid - альтернатива старому atacontrol и поддерживает метаданные известных fake-raid'ов.

Либо зеркалить отдельно gpt партиции, если только root-fs "/" - то одну партицию, imho
зеркалить swap - не логично.

gmirror (gpt):
http://bu7cher.blogspot.ru/search/label/gmirror - как создать зеркало целого диска
http://www.wonkity.com/~wblock/docs/html/gmirror.html - зеркалирование gpt партиций
Кстати вопрос в догонку а можно мигрировать с х86 на х64?
практические подходы - есть, но это настолько геморройно что проще установить 64bit'ную
- огромная экономия времени и нервов.

gmirror и graid с MBR проще, но MBR = бяка, особенно в случае выравнивания: 4kxHDD align или SSD align.

Nick_mad
сержант
Сообщения: 280
Зарегистрирован: 2008-05-30 12:16:02
Откуда: Киев
Контактная информация:

Перенос системы на ноые HDD

Непрочитанное сообщение Nick_mad » 2018-03-16 12:22:04

Спасибо, вам всем огромное, вы мне реально сильно помогли. Вроде все и понимаешь, но раскрыли тонкости.

Единственное что меня еще интересует не будет ли работать не штатно винт (ST1000NM0008) (Bytes per Sector 512) если сейчас его для меньшей мороки в mbr сделать? так сказать что бы совсем по быстрому, или лучше gpt для такого объема?

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

Перенос системы на ноые HDD

Непрочитанное сообщение guest » 2018-03-16 16:08:46

Nick_mad писал(а):Спасибо, вам всем огромное, вы мне реально сильно помогли. Вроде все и понимаешь, но раскрыли тонкости.

Единственное что меня еще интересует не будет ли работать не штатно винт (ST1000NM0008) (Bytes per Sector 512) если сейчас его для меньшей мороки в mbr сделать? так сказать что бы совсем по быстрому, или лучше gpt для такого объема?
архитектура gpt - проста и прозрачна, в отличие от MBR, позволяет иметь 128 партиций, не имеет MBR ограничений по адресации,
имеет в конце диска альтернативную копию gpt table (33 сектора) - не страшно потерять соновную. GEOM проверяет и сообщает
об этом, увы, это наложило другие проблемы - хранение метаданных GEOM в последнем секторе провайдера.
С выравниванием в GPT никаких проблем в отличие от MBR.

Верхнее - присказка к тому что достижения GPT не только для дисков более 2TB, они более глобальны.

По Вашему вопросу:
- никаких проблем с указанным диском быть не должно
- 512b per sector - align не нужен
- gmirror подхватит 1TB диск и by default откусит от него нужный размер (выравнивание по меньшему размеру)

допустим gmirror = gm0 состоит из ada0 и ada1
# gmirror forget gm0
# shutdown -p now
- вытащили к примеру ada1
- на его место вставили новый ada1 / 1TB
# загрузились
# gmirror list
# gmirror status
# gmirror insert gm0 /dev/ada1
все, ждем синхронизации
# gmirror status

Проблем быть не должно, НО, размер у Вас останется 250GB.

Рано или поздно, придется озаботиться:
- миграция на amd64 и увеличение размера

Миграция: у Вас изменится только система, настройки софта останутся прежними
- на другой машине - ставите 1TB
- загружаетесь с FreeBSD/amd64 Disc1
- запускаете Установку, доходите до разметки
- в разметке выбираете Shell и получаете подсказку:
a) после разметки и newfs - монтируете FS в /mnt
b) создаете файл /tmp/bsdinstall_etc/fstab - в которой записываете в формате fstab вашу разметку
c) в командной строке набираете "exit"
- система автоматически развернется в Вашу FS

пример:
- Install
- Keyboard
...
- Allocate Disk Space
выбираем Shell (допустим у нас только один 1TB диск: ada0 )
# camcontrol devlist
...
# gpart destroy -F /dev/ada0

- подгружаем модуль gmirror
# gmirror load
...
# kldstat

- создаем зеркало на весь диск
# gmirror label gm0 ada0
# gmirror status
- размечаем в GPT
далее основное, в чем соль:
# gpart create -s gpt mirror/gm0
# gpart add -t freebsd-boot -s 128k mirror/gm0
# gpart add -t freebsd-swap -s XG -l mswap mirror/gm0
# gpart add -t freebsd-ufs -l mroot mirror/gm0
# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 mirror/gm0

- получили /dev/mirror/*
- создаем FS
# newfs -U -L mroot /dev/gpt/mroot
- монтируем в /mnt
# mount /dev/gpt/mroot /mnt
- создаем шаблон /tmp/bsdinstall_etc/fstab для инсталлятора
# vi /tmp/bsdinstall_etc/fstab

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

# Device                      Mountpoint      FStype  Options Dump    Pass
/dev/gpt/mroot          /                     ufs         rw        1           1
/dev/gpt/mswap        none                swap      sw        0           0
# exit
- автоматически стартует установка
- когда дойдем до "Final Configuration" -> переходим ALT-F4 и создаем /mnt/boot/loader.conf
# vi /mnt/boot/loader.conf
geom_mirror_load="YES"
#
- завершаем установку и перезагружаемся
- проверяем что gmirror загружен и зеркало работает (ибо корень монтируется по gpt label)
# kldstat
# gmirror status
# cat /boot/loader.conf

Все, теперь нужно настроить все как на рабочей системе:
- установить и настроить пакеты, порты
- настроить или скопировать конфиги
- скопировать данные и логи
- синхронизировать данные/логи, хоть через rsync

Время "Ч" - переставить новый диск в боевой сервер
Загрузиться, проверить, если все Ok, добавить второй диск
# gmirror insert gm0 ada1

Получаем новую 64'bit систему с зеркалом на GPT всего диска.

ps. В gpart разметке изменить размеры, имена меток под себя

Nick_mad
сержант
Сообщения: 280
Зарегистрирован: 2008-05-30 12:16:02
Откуда: Киев
Контактная информация:

Перенос системы на ноые HDD

Непрочитанное сообщение Nick_mad » 2018-03-20 10:30:15

Здравствуйте.

Снял с сервака один винт, и поехал его курочить домой.

Мигрировал на х64 + GPT gmirror.

Систему пересобрал по мануалу с сайта
Разметил диск как предложили выше.

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

gmirror label gm0 ada0
gpart create -s gpt mirror/gm0
gpart add -t freebsd-boot -s 128k mirror/gm0
gpart add -t freebsd-swap -s 32G -l mswap mirror/gm0
gpart add -t freebsd-ufs -l mroot mirror/gm0
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 mirror/gm0
Слил dump | restore файлы и вроде все получилося.

Теперь нужно поехать подцепить новый винт и загрузится с него, синхронизировать БД и почту (я так думаю можно простым копированием).

и подцепить второй винт в зеркало.

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

gmirror insert gm0 ada1
Спасибо большое всем за помощь, особенно guest .
Вложения
Screenshot_3.jpg
Screenshot_2.jpg
Screenshot_1.jpg

Nick_mad
сержант
Сообщения: 280
Зарегистрирован: 2008-05-30 12:16:02
Откуда: Киев
Контактная информация:

Перенос системы на ноые HDD

Непрочитанное сообщение Nick_mad » 2018-03-20 10:34:23

Кстати, хотелось бы получить копию результирующего диска для VirtualBox, кто то знает как это сделать?

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Перенос системы на ноые HDD

Непрочитанное сообщение snorlov » 2018-03-20 10:49:02

Самый простой dump в файл, а потом в VBox'е restore...

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

Перенос системы на ноые HDD

Непрочитанное сообщение guest » 2018-03-20 10:50:23

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

#  vboxmanage | grep convert
- сливаем образ диска ada0 в файл

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

# dd if=/dev/ada0 of=/path/ada0.raw bs=1M conv=sync,noerror
- конвертируем raw образ в vdi

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

# VBoxManage convertfromraw ada0.raw ada0.vdi --format VDI
простое копирование БД в процессе работы - принципиально неверно,
если major один, то остановить сервер бд и тогда можно копировать,
в ином случае через dump бд.
Последний раз редактировалось Alex Keda 2018-03-20 22:06:43, всего редактировалось 1 раз.
Причина: Торварищщи! Цените чужое время, юзайте кнопочку [code]...

Nick_mad
сержант
Сообщения: 280
Зарегистрирован: 2008-05-30 12:16:02
Откуда: Киев
Контактная информация:

Перенос системы на ноые HDD

Непрочитанное сообщение Nick_mad » 2018-03-20 10:50:57

А вот что еще досмотрел
у Елсукова

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

# cat > /mnt/etc/fstab
# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/gpt/swap           none            swap    sw              0       0
/dev/ufs/rootfs         /               ufs     rw              1       1
а у меня

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

# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/gpt/mswap           none            swap    sw              0       0
/dev/gpt/mroot         /               ufs     rw              1       1
Я так понимаю у него ufs что бы можно было без gmirror грузиться, а как правильней?

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

Перенос системы на ноые HDD

Непрочитанное сообщение guest » 2018-03-20 13:23:29

А вот что еще досмотрел
у Елсукова

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

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

# cat > /mnt/etc/fstab
# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/gpt/swap           none            swap    sw              0       0
/dev/ufs/rootfs         /               ufs     rw              1       1
а у меня

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

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

# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/gpt/mswap           none            swap    sw              0       0
/dev/gpt/mroot         /               ufs     rw              1       1
Я так понимаю у него ufs что бы можно было без gmirror грузиться, а как правильней?
и у Вас тоже может без gmirror.
Пора б уж самостоятельно развиваться, метки и uuid поддерживаемые в FreeBSD:

- метки на уровне FS (UFS):
a) ufs label -> /dev/ufs/* - создаются через newfs/tunefs
b) ufsid -> /dev/ufsid/* - генерятся автоматически системой при создании ufs

- метки для GPT таблицы
a) gpt label -> /dev/gpt/* - gpart
b) gptid -> /dev/gptid/* - генерятся автоматически системой при создании gpt партиций

- метки созданные утилитой glabel для провайдеров GEOM (для дисков и партиций): /dev/label/*

- метки дисков -> /dev/diskid/* - генерятся автоматически системой

для всех есть ядерные переменные, которые позволяют отключать те или иные метки/uuid - установка значения в "0"

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

# sysctl -a | grep kern.geom.label.
У Вас в fstab - только gpt labels через gpart, у Елсукова общий пример для ufs и gpt label.
Последний раз редактировалось Alex Keda 2018-03-20 22:07:23, всего редактировалось 1 раз.
Причина: Торварищщи! Цените чужое время, юзайте кнопочку [code]...

Nick_mad
сержант
Сообщения: 280
Зарегистрирован: 2008-05-30 12:16:02
Откуда: Киев
Контактная информация:

Перенос системы на ноые HDD

Непрочитанное сообщение Nick_mad » 2018-03-20 13:33:55

Пора б уж самостоятельно развиваться
Ну, не серчайте. То что Вы мне выдали в сжатой форме, я бы собирал по крупицам в нете днями, да и еще все проверять нужно.
ибо как писал тот же Елсуков
Важно понимать, что и как ты настраиваешь, а не просто копировать набор команд из какого-то howto.
А понимание приходит со временем и опытом. Еще раз спасибо за помощь.

Nick_mad
сержант
Сообщения: 280
Зарегистрирован: 2008-05-30 12:16:02
Откуда: Киев
Контактная информация:

Перенос системы на ноые HDD

Непрочитанное сообщение Nick_mad » 2018-03-21 11:07:13

Здравствуйте.

В общем где то я накосячил.

Подцепил новый винт с gpt и посмотрел как там мой mirror и мне ничего не вывело, как буд-то его и не существует. Но дело было ночью, нужно было спешить поэтому, подцепил еще новый винт с mbr (копия старого винта, я на ней мигрировал и т.д.), подцепил старый винт который стоял в сервере для того что бы слить актуальную инфу. Настроил что бы грузилось с HDD на котором новая система и gpt.

Инфу актуализировал, сервер работает но вот с зеркалом не срослось.

итого имеем

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

#camcontrol devlist
<WDC WD2502ABYS-02B7A0 02.03B03>   at scbus0 target 0 lun 0 (ada0,pass0)
<ST1000NM0008-2F2100 SN02>         at scbus3 target 0 lun 0 (ada1,pass1)
<ST1000NM0008-2F2100 SN02>         at scbus4 target 0 lun 0 (ada2,pass2)
<AHCI SGPIO Enclosure 1.00 0001>   at scbus6 target 0 lun 0 (pass3)

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

df -h
Filesystem        Size    Used   Avail Capacity  Mounted on
/dev/gpt/mroot    871G    207G    594G    26%    /
devfs             1,0K    1,0K      0B   100%    /dev

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


State: DEGRADED
Components: 2
Balance: round-robin
Slice: 4096
Flags: NONE
GenID: 3
SyncID: 24
ID: 3716749362
Providers:
1. Name: mirror/gm0
   Mediasize: 251059543552 (234G)
   Sectorsize: 512
   Mode: r0w0e0
Consumers:
1. Name: ada0
   Mediasize: 251059544064 (234G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 3
   SyncID: 24
   ID: 802464862

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

gpart show mirror/gm0
=>       63  490350608  mirror/gm0  MBR  (234G)
         63  490335867           1  freebsd  [active]  (234G)
  490335930      14741              - free -  (7.2M)

Видим что видит только старый gm0 на 250 гиг.

Вот теперь нужен не совет а помощь, как сделать что бы зеркало нормально работало?
Экспериментировать на живой машине боюсь.

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

Перенос системы на ноые HDD

Непрочитанное сообщение guest » 2018-03-21 11:41:33

Здравствуйте.

В общем где то я накосячил.

Подцепил новый винт с gpt и посмотрел как там мой mirror и мне ничего не вывело, как буд-то его и не существует. Но дело было ночью, нужно было спешить поэтому, подцепил еще новый винт с mbr (копия старого винта, я на ней мигрировал и т.д.), подцепил старый винт который стоял в сервере для того что бы слить актуальную инфу. Настроил что бы грузилось с HDD на котором новая система и gpt.

Инфу актуализировал, сервер работает но вот с зеркалом не срослось.

итого имеем

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

#camcontrol devlist
<WDC WD2502ABYS-02B7A0 02.03B03>   at scbus0 target 0 lun 0 (ada0,pass0)
<ST1000NM0008-2F2100 SN02>         at scbus3 target 0 lun 0 (ada1,pass1)
<ST1000NM0008-2F2100 SN02>         at scbus4 target 0 lun 0 (ada2,pass2)
<AHCI SGPIO Enclosure 1.00 0001>   at scbus6 target 0 lun 0 (pass3)

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

df -h
Filesystem        Size    Used   Avail Capacity  Mounted on
/dev/gpt/mroot    871G    207G    594G    26%    /
devfs             1,0K    1,0K      0B   100%    /dev

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

State: DEGRADED
Components: 2
Balance: round-robin
Slice: 4096
Flags: NONE
GenID: 3
SyncID: 24
ID: 3716749362
Providers:
1. Name: mirror/gm0
   Mediasize: 251059543552 (234G)
   Sectorsize: 512
   Mode: r0w0e0
Consumers:
1. Name: ada0
   Mediasize: 251059544064 (234G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 3
   SyncID: 24
   ID: 802464862

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

gpart show mirror/gm0
=>       63  490350608  mirror/gm0  MBR  (234G)
         63  490335867           1  freebsd  [active]  (234G)
  490335930      14741              - free -  (7.2M)
Видим что видит только старый gm0 на 250 гиг.

Вот теперь нужен не совет а помощь, как сделать что бы зеркало нормально работало?
Экспериментировать на живой машине боюсь.
Вы оба зеркала назвали gm0?

почему df -h показывает /dev/gpt/mroot ?

У Вас каша в голове и как результат в действиях, ибо Вы тупо копировали не обдумывая
действия и возможные перекрытия label'ов в gmirror и тд и тп

Выньте диски 1TB и проверьте работу gmirror на другом PC.

Ну и чтение man gmirror, man gpart и про labels & uuid - просветляет.

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

# gmirror label [-Fhnv] [-b balance] [-s slice] name prov ...

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

# gmirror label NAME prov ...
У Вас что, обе метки имеют одно имя gm0?

ps. Ну и учитесь грамотно излагать и показывать логи, удачи.
Последний раз редактировалось Alex Keda 2018-03-23 11:08:16, всего редактировалось 1 раз.
Причина: Товарищщи! Цените чужое время, юзайте кнопочку [code]...

Nick_mad
сержант
Сообщения: 280
Зарегистрирован: 2008-05-30 12:16:02
Откуда: Киев
Контактная информация:

Перенос системы на ноые HDD

Непрочитанное сообщение Nick_mad » 2018-03-21 12:10:47

У Вас каша в голове и как результат в действиях, ибо Вы тупо копировали не обдумывая
действия и возможные перекрытия label'ов в gmirror и тд и тп
С этим я не спорю, а по поводу перекрытия меток я подумал но уже как то слишком поздно.

отвечая на Ваши вопросы
почему df -h показывает /dev/gpt/mroot ?
вероятно потому что

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

cat /etc/fstab
# Device                Mountpoint      FStype  Options                 Dump    Pass#
/dev/gpt/mswap          none    swap    sw            0 0
/dev/gpt/mroot          /       ufs     rw            1 1
У Вас что, обе метки имеют одно имя gm0?
да.

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

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

Перенос системы на ноые HDD

Непрочитанное сообщение guest » 2018-03-21 13:30:41

Не задумывались, над вопросом, почему df - показывет
монтирование нового диска?!
Поймите, нет желания заниматься мазохизмом - задавать наводящие вопросы,
просить показать вывод определенных команд... Это ж Вам нужно, а не мне,
тем более, что расписал Вам пошагово + тонкие моменты.

Вы бы посмотрели вывод команды:

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

# uname -a
# freebsd-version
ибо смонтировались у Вас новые партиции с новыми FS, что видно по "df"

Посмотрите:

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

# kldstat
# cat /boot/loader.conf - там должно быть
geom_mirror_load="YES"
Допустим у Вас 2'а зеркала gmirror c одним леблом gm0, далее вопрос,
откуда пойдет загрузка?
Во FreeBSD не стлакивался с верхней ситуацией, а в Linux наблюдал следующие
выкрутасы:
- использование одинаковых label'ов
- загрузка с одного диска - ОДНО ЯДРО
- а монтирование корня с другого диска с таким же лейблом

В вашем случае, подобное невозможно, ибо одна система i386, другая amd64 - просто
не загрузилась бы система, а раз смонтирован корень от новой системы, значит
она и работает, а вот gmirror - не завелся, корень смонтировался по gpt лейблам.
Почему не завелся gmirror:
- либо отсутствие загрузки модуля geom_mirror в /boot/loader.conf
- либо конфликт одинаковых лейблов
Последний раз редактировалось Alex Keda 2018-03-23 11:08:37, всего редактировалось 1 раз.
Причина: Товарищщи! Цените чужое время, юзайте кнопочку [code]...

Nick_mad
сержант
Сообщения: 280
Зарегистрирован: 2008-05-30 12:16:02
Откуда: Киев
Контактная информация:

Перенос системы на ноые HDD

Непрочитанное сообщение Nick_mad » 2018-03-21 13:52:43

Помогите до разобраться.

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

 uname -a
FreeBSD server.faaf.org.ua 10.3-RELEASE-p14 FreeBSD 10.3-RELEASE-p14 #0 r309728: Sun Mar 18 18:05:30 UTC 2018     root@:/usr/obj/mnt/usr/src/sys/FAAF64  amd64
gmirror вкомпилирован в ядро

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

cat /usr/src/sys/amd64/conf/FAAF64 | grep MIRROR
options         GEOM_MIRROR

У меня сейчас система на одном диске (/dev/ada1). Второй не пустой, но будем его таковым считать (/dev/ada2).
Понял что никакого gmirror у меня сейчас нет.
Поэтому начал делать по этой статье

Я удалил старый gm0

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

gpart delete -i 1 mirror/gm0
gpart destroy -F mirror/gm0
gmirror destroy gm0
потом создал новый

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

gmirror label -v -b round-robin gm0 /dev/ada2
Metadata value stored on /dev/ada2.
Done.
Скопировал таблицу разделов и записал загрузчик

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

gpart backup ada0 > /tmp/gpart.txt
gpart restore mirror/gm0 < /tmp/gpart.txt
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 mirror/gm0
в итоге имеем

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

gpart show mirror/gm0
=>        34  1953525100  mirror/gm0  GPT  (932G)
          34         256           1  freebsd-boot  (128K)
         290    67108864           2  freebsd-swap  (32G)
    67109154  1886415980           3  freebsd-ufs  (900G)

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

gmirror status
      Name    Status  Components
mirror/gm0  COMPLETE  ada2 (ACTIVE)
root@server:/dev # gmirror list
Geom name: gm0
State: COMPLETE
Components: 1
Balance: round-robin
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 3877288464
Providers:
1. Name: mirror/gm0
   Mediasize: 1000204885504 (932G)
   Sectorsize: 512
   Mode: r0w0e0
Consumers:
1. Name: ada2
   Mediasize: 1000204886016 (932G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 2283792500
дошел до
Создаём файловую систему:
bsd1$ newfs -U /dev/mirror/gm0p2
Также, прибиваем метки к разделам - всё таки по меткам работать удобней, нежели по названиям дисков:
bsd1$ glabel label rootFS /dev/mirror/gm0p2
bsd1$ glabel label swapFS /dev/mirror/gm0p3
а ранее когда я размечал первый диск я делал

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

- создаем FS
# newfs -U -L mroot /dev/gpt/mroot
- монтируем в /mnt
# mount /dev/gpt/mroot /mnt
и тут "каша в голове" дает знать свое.
Я понимаю что мне нужно gmirror смонтировать в mnt и на него перекинуть инфу

Я пока правильно все делаю??

Nick_mad
сержант
Сообщения: 280
Зарегистрирован: 2008-05-30 12:16:02
Откуда: Киев
Контактная информация:

Перенос системы на ноые HDD

Непрочитанное сообщение Nick_mad » 2018-03-21 14:28:57

далее

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

newfs -U /dev/mirror/gm0p3
glabel label gmswap /dev/mirror/gm0p2
glabel label gmroot /dev/mirror/gm0p3
mount /dev/label/gmroot /mnt
и получаем

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

df -h
Filesystem           Size    Used   Avail Capacity  Mounted on
/dev/gpt/mroot       871G    207G    594G    26%    /
devfs                1,0K    1,0K      0B   100%    /dev
/dev/label/gmroot    871G    8,0K    802G     0%    /mnt

А в этом выводе видно что
gpt/mswap прибит к ada1p2
gpt/mroot прибит к ada1p3
и когда я загружался первый раз с одним винтом с новой разметкой и обновленной системой, то я выполнял команду gmirror status и оно ничего не выводило, что означает что я не правильно создавал mirror, и просо загрузился с диска.

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

 glabel list
Geom name: ada1p1
Providers:
1. Name: gptid/e2f74de2-2bb7-11e8-b456-408d5cc87618
   Mediasize: 131072 (128K)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 17408
   Mode: r0w0e0
   secoffset: 0
   offset: 0
   seclength: 256
   length: 131072
   index: 0
Consumers:
1. Name: ada1p1
   Mediasize: 131072 (128K)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 17408
   Mode: r0w0e0

Geom name: ada1p2
Providers:
1. Name: gpt/mswap
   Mediasize: 34359738368 (32G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 148480
   Mode: r1w1e0
   secoffset: 0
   offset: 0
   seclength: 67108864
   length: 34359738368
   index: 0
Consumers:
1. Name: ada1p2
   Mediasize: 34359738368 (32G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 148480
   Mode: r1w1e1

Geom name: ada1p3
Providers:
1. Name: gpt/mroot
   Mediasize: 965844981760 (900G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 148480
   Mode: r1w1e1
   secoffset: 0
   offset: 0
   seclength: 1886415980
   length: 965844981760
   index: 0
Consumers:
1. Name: ada1p3
   Mediasize: 965844981760 (900G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 148480
   Mode: r1w1e2

Geom name: ada0
Providers:
1. Name: diskid/DISK-WD-WCAT1E646120
   Mediasize: 251059544064 (234G)
   Sectorsize: 512
   Mode: r0w0e0
   secoffset: 0
   offset: 0
   seclength: 490350672
   length: 251059544064
   index: 0
Consumers:
1. Name: ada0
   Mediasize: 251059544064 (234G)
   Sectorsize: 512
   Mode: r0w0e0

Geom name: mirror/gm0p1
Providers:
1. Name: gptid/791f03e0-2cef-11e8-96a5-001517c7ef61
   Mediasize: 131072 (128K)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 17408
   Mode: r0w0e0
   secoffset: 0
   offset: 0
   seclength: 256
   length: 131072
   index: 0
Consumers:
1. Name: mirror/gm0p1
   Mediasize: 131072 (128K)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 17408
   Mode: r0w0e0

Geom name: mirror/gm0p2
Providers:
1. Name: label/gmswap
   Mediasize: 34359737856 (32G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 148480
   Mode: r0w0e0
   secoffset: 0
   offset: 0
   seclength: 67108863
   length: 34359737856
   index: 0
Consumers:
1. Name: mirror/gm0p2
   Mediasize: 34359738368 (32G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 148480
   Mode: r0w0e0

Geom name: mirror/gm0p2
Providers:
1. Name: gptid/791ff48d-2cef-11e8-96a5-001517c7ef61
   Mediasize: 34359738368 (32G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 148480
   Mode: r0w0e0
   secoffset: 0
   offset: 0
   seclength: 67108864
   length: 34359738368
   index: 0
Consumers:
1. Name: mirror/gm0p2
   Mediasize: 34359738368 (32G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 148480
   Mode: r0w0e0

Geom name: mirror/gm0p3
Providers:
1. Name: label/gmroot
   Mediasize: 965844981248 (900G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 148480
   Mode: r1w1e1
   secoffset: 0
   offset: 0
   seclength: 1886415979
   length: 965844981248
   index: 0
Consumers:
1. Name: mirror/gm0p3
   Mediasize: 965844981760 (900G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 148480
   Mode: r1w1e2


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

Перенос системы на ноые HDD

Непрочитанное сообщение guest » 2018-03-21 14:56:44

Вы хотите чтобы я прочел Вам персональную лекцию и кашу превратил
в структурированные знания?
Я уже это делал...

Еще раз:

1) можно сделать зеркало "ВСЕГО" диска, в терминах: зеркало "сырого" диска - главная проблема
в том что МЕТАДАННЫЕ записываются в последний сектор провайдера
(проблема GPT - последние 33 сектора это альтернативная GPT таблица, копия основной)
Эта проблема решается осознанной жертвой - жертвуем альтернативной GPT таблицей для того
чтобы сделать зеркало целого диска. Елсуков изменил проверки в GEOM FreeBSD.

2) можно сделать зеркало отдельной/ых партиций GPT

Сделайте ВЫБОР - какую вариант выбираете?

Nick_mad
сержант
Сообщения: 280
Зарегистрирован: 2008-05-30 12:16:02
Откуда: Киев
Контактная информация:

Перенос системы на ноые HDD

Непрочитанное сообщение Nick_mad » 2018-03-21 14:58:40

Спасибо за понимание и терпение.

Хочу первую, разницу между первым и вторым осознаю

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

Перенос системы на ноые HDD

Непрочитанное сообщение guest » 2018-03-21 16:03:16

Спасибо за понимание и терпение.

Хочу первую, разницу между первым и вторым осознаю
тогда так:
1) что на боевом сервере: один диск 250GB

вывод сюда:

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

# uname -a
# freebsd-version
# cat /boot/loader.conf
# cat /etc/fstab
# mount
# df -h
# camcontrol devlist
# kldstat
# gmirror status
# gpart show
2) где сейчас стоят новые диски в боевом сервере или в отдельном:

вывод верхних команд сюда

3) На какой машине, боевой или сторонней, хотите делать настройку gmirror и установку релиза FreeBSD и какого?
Последний раз редактировалось Alex Keda 2018-03-23 11:09:02, всего редактировалось 1 раз.
Причина: Товарищщи! Цените чужое время, юзайте кнопочку [code]...

Nick_mad
сержант
Сообщения: 280
Зарегистрирован: 2008-05-30 12:16:02
Откуда: Киев
Контактная информация:

Перенос системы на ноые HDD

Непрочитанное сообщение Nick_mad » 2018-03-21 16:33:04

Если можно я не по порядку.

Дома я мигрировал с x86->x64 и развернул его на одном из новых HDD.

думая что все ок, я поехал к боевому серверу, загрузился с нового HDD размеченого GPT.
Проверил что все работает, потом подцепил второй новый HDD и один старый HDD для того что бы синхронизировать информацию.
Сейчас на новом HDD с которого загрузился сервер и сейчас на нем работает актуализирован, на нем система x64.
То есть его можно так и оставить, а старый HDD на 250г вытянуть и где то положить.

Итого сейчас в сервере 3 HDD

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

 
 camcontrol devlist
<WDC WD2502ABYS-02B7A0 02.03B03>   at scbus0 target 0 lun 0 (ada0,pass0)
<ST1000NM0008-2F2100 SN02>         at scbus3 target 0 lun 0 (ada1,pass1)
<ST1000NM0008-2F2100 SN02>         at scbus4 target 0 lun 0 (ada2,pass2)
<AHCI SGPIO Enclosure 1.00 0001>   at scbus6 target 0 lun 0 (pass3)
ada0 это старый, ada1 это на котором сейчас работает, ada2 условно пустой
Хочу завершить все работы на сервере.

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

uname -a
FreeBSD server.faaf.org.ua 10.3-RELEASE-p14 FreeBSD 10.3-RELEASE-p14 #0 r309728: Sun Mar 18 18:05:30 UTC 2018 root@:/usr/obj/mnt/usr/src/sys/FAAF64  amd64

# freebsd-version
10.3-RELEASE-p14

# cat /boot/loader.conf
if_vr_load=YES

 # cat /etc/fstab
 # Device                Mountpoint      FStype  Options                 Dump    Pass#
/dev/gpt/mswap          none            swap    sw              0       0
/dev/gpt/mroot          /               ufs     rw              1       1
/dev/acd0               /cdrom          cd9660  ro,noauto               0       0

# mount
/dev/gpt/mroot on / (ufs, local, soft-updates)
devfs on /dev (devfs, local, multilabel)
/dev/label/gmroot on /mnt/d (ufs, local, soft-updates)

 # df -h
Filesystem           Size    Used   Avail Capacity  Mounted on
/dev/gpt/mroot       871G    207G    594G    26%    /
devfs                1,0K    1,0K      0B   100%    /dev
/dev/label/gmroot    871G    8,0K    802G     0%    /mnt/d

# kldstat
Id Refs Address            Size     Name
 1   10 0xffffffff80200000 e19de8   kernel
 2    1 0xffffffff8101a000 ad80     if_vr.ko
 3    1 0xffffffff81211000 22d2     ums.ko

# gmirror status
      Name    Status  Components
mirror/gm0  COMPLETE  ada2 (ACTIVE)

# gpart show
=>        34  1953525101  ada1  GPT  (932G)
          34         256     1  freebsd-boot  (128K)
         290    67108864     2  freebsd-swap  (32G)
    67109154  1886415980     3  freebsd-ufs  (900G)
  1953525134           1        - free -  (512B)

=>       63  490350609  ada0  MBR  (234G)
         63  490335867     1  freebsd  [active]  (234G)
  490335930      14742        - free -  (7.2M)

=>       63  490350609  diskid/DISK-WD-WCAT1E646120  MBR  (234G)
         63  490335867                            1  freebsd  [active]  (234G)
  490335930      14742                               - free -  (7.2M)

=>        0  490335867  ada0s1  BSD  (234G)
          0    4194304       1  freebsd-ufs  (2.0G)
    4194304    8388608       2  freebsd-swap  (4.0G)
   12582912  230686720       4  freebsd-ufs  (110G)
  243269632  243269632       5  freebsd-ufs  (116G)
  486539264    3796603       6  freebsd-ufs  (1.8G)

=>        0  490335867  diskid/DISK-WD-WCAT1E646120s1  BSD  (234G)
          0    4194304                              1  freebsd-ufs  (2.0G)
    4194304    8388608                              2  freebsd-swap  (4.0G)
   12582912  230686720                              4  freebsd-ufs  (110G)
  243269632  243269632                              5  freebsd-ufs  (116G)
  486539264    3796603                              6  freebsd-ufs  (1.8G)

=>        34  1953525100  mirror/gm0  GPT  (932G)
          34         256           1  freebsd-boot  (128K)
         290    67108864           2  freebsd-swap  (32G)
    67109154  1886415980           3  freebsd-ufs  (900G)