Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  mount_nullfs
  badsect
  clri
  bsdlabel
  dump (rdump)
  dumpfs
  ffsinfo
  fsirand
  mount_nfs
  mount_smbfs
  swapon
  tunefs
  umount
  recovery files
  growfs
  Pax
  clonehdd
  Мониторинг RAID
  gstripe
  fusefs-ntfs
  UFS->ZFS
  RAID5
  freebsd lvm
  root ZFS, GPT
  FreeBSD on flash
  Восстановление ZFS
  Лечим FFS
  gmirror
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> Файловая система —> gmirror

Создание зеракала gmirror с разбивкой gpart и использованием меток glabel

Автор: lissyara.


Жил был сервер, с одним диском. Недолго, месяца два =) Потом как-то "резко" стал важным звеном инфраструктуры, и, соответственно, кроме бэкапирования было решено доткнуть второй диск и сделать зеркало - программное, т.к. контроллер в нём ставить банально некуда (это HP ProLiant MicroServer, и все PCI разъёмы в нём уже заняты сетевухами).

Вполне естественно, что куда-то ехать и что-то делать лениво, поэтому диск дотыкают специально обученные люди, ну а я из дома делаю зеркало. Наличия ssh на сервер вполне достаточно.

Итого, после дотыкания диска имеем:
bsd1$ dmesg -a | grep ada
ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
ada0: <VB0250EAVER HPG9> ATA-8 SATA 2.x device
ada0: Serial Number Z3TR4KJ3
ada0: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
ada0: Command Queueing enabled
ada0: 238475MB (488397168 512 byte sectors: 16H 63S/T 16383C)
ada0: Previously was known as ad4
ada1 at ahcich1 bus 0 scbus1 target 0 lun 0
ada1: <VB0250EAVER HPG9> ATA-8 SATA 2.x device
ada1: Serial Number Z3TSPMND
ada1: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
ada1: Command Queueing enabled
ada1: 238475MB (488397168 512 byte sectors: 16H 63S/T 16383C)
ada1: Previously was known as ad6
bsd1$ uname -a
FreeBSD bsd1.XXXX.ru 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Thu Jan 16
 22:34:59 UTC 2014 root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64
bsd1$ 

ada0 - на нём живёт система, ada1 - доткнули. Выглядит это таким образом:
bsd1$ df -h
Filesystem           Size    Used   Avail Capacity  Mounted on
/dev/ada0p2          222G    2,2G    202G     1%    /
devfs                1,0K    1,0K      0B   100%    /dev
linprocfs            4,0K    4,0K      0B   100%    /proc
tmpfs                5,3G    4,0K    5,3G     0%    /tmp

Прописываем загрузку модуля geom_mirror в /boot/loader.conf
bsd1$ grep mirror /boot/loader.conf
geom_mirror_load="YES"
bsd1$ 

Перезагружаем машину, проверяем загрузился ли модуль:
bsd1$ kldstat | grep mirr
 4    1 0xffffffff818be000 23288    geom_mirror.ko
bsd1$ 

(вообще, в спокойной обстановке, предпочитаю всё прописать в конфиг-файлах и перезагрузить машину - чтобы точно знать что всё будет работать, когда ты в отпуске гденить на даче копаешь очередную траншею, а в офисе отключили электричество и нехватило бесперебойников)

Итак, создаём зеркало из одного второго диска, первый в него доткнём потом:
bsd1$ gmirror label -v -b round-robin gm0 /dev/ada1
Metadata value stored on /dev/ada1.
Done.
bsd1$ 

Бэкапим таблицу разделов с первого диска, и, разворачиваем её на созданное зеркало:
bsd1$ gpart backup ada0 > /tmp/gpart.txt
bsd1$ gpart restore mirror/gm0 < /tmp/gpart.txt

Записываем загрузчик:
bsd1$ gpart bootcode -b /boot/pmbr mirror/gm0
bootcode written to mirror/gm0
bsd1$ gpart bootcode -p /boot/gptboot -i 1 mirror/gm0

Создаём файловую систему:
bsd1$ newfs -U /dev/mirror/gm0p2

Также, прибиваем метки к разделам - всё таки по меткам работать удобней, нежели по названиям дисков:
bsd1$ glabel label rootFS /dev/mirror/gm0p2
bsd1$ glabel label swapFS /dev/mirror/gm0p3

Монтируем раздел зеркала, переносим содержимое файловой системы:
bsd1$ mount /dev/label/rootFS /mnt
bsd1$ tar --one-file-system --create --file=- / | (cd /mnt; tar -xvf -)

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

После переноса, правим новый и старый fstab до такого состояния:
bsd1$ cat /mnt/etc/fstab 
# Device                Mountpoint      FStype  Options Dump    Pass#
/dev/label/rootFS       /               ufs     rw      1       1
/dev/label/swapFS       none            swap    sw      0       0
linprocfs               /proc           linprocfs rw    0       0
tmpfs                   /tmp            tmpfs   rw,nosuid,noexec 0 0
bsd1$
bsd1$ cp -p /mnt/etc/fstab /etc/fstab

(можно было поправить один, до переноса. Но - я об этом подумал уже после =)) и перезагружаем машину.

При перезагрузке происходит следующий фокус: загрузка начинается с диска ada0 - который не в зеркале. С него грузится ядро, запускается... Доходит до монтирования файловых систем и монтирует файловую систему с зеркала - которое пока стоит из одного диска ada1. Итого, после перезагрузки получаем такое:
bsd1$ df -h
Filesystem           Size    Used   Avail Capacity  Mounted on
/dev/label/rootFS    222G    2,2G    202G     1%    /
devfs                1,0K    1,0K      0B   100%    /dev
linprocfs            4,0K    4,0K      0B   100%    /proc
tmpfs                5,3G    4,0K    5,3G     0%    /tmp
bsd1$
bsd1$ swapinfo 
Device          1K-blocks     Used    Avail Capacity
/dev/label/swapFS   4074644        0  4074644     0%
bsd1$ 

Втыкаем в зеркало второй диск:
bsd1$ gmirror insert gm0 ada0
bsd1$ gmirror status
      Name    Status  Components
mirror/gm0  DEGRADED  ada1 (ACTIVE)
                      ada0 (SYNCHRONIZING, 0%)

Процесс прошёл. Ввиду того что рейд софтверный, скорость синхронизации можно посмотреть обычными методами:
bsd1$ iostat -w 1
       tty            ada0             ada1            pass0             cpu
 tin  tout  KB/t tps  MB/s   KB/t tps  MB/s   KB/t tps  MB/s  us ni sy in id
   0    29 126.12 549 67.62  126.97 546 67.74   0.33   0  0.00   0  0  1  1 98
   0   236 126.75 613 75.88  128.00 608 76.00   0.00   0  0.00   0  0  2  0 97
   0    76 126.81 616 76.29  128.00 611 76.41   0.00   0  0.00   0  0  1  0 99
   0    80 126.83 652 80.72  128.00 645 80.59   0.00   0  0.00   0  0  2  0 98
   0    80 126.72 598 74.05  128.00 592 74.05   0.00   0  0.00   0  0  1  0 99
   0    80 126.63 650 80.42  128.00 644 80.54   0.00   0  0.00   0  0  2  1 97
   0    80 126.79 633 78.35  128.00 626 78.22   0.00   0  0.00   0  0  2  1 97
^C
bsd1$ 

Через 50 минут - всё готово:
bsd1$ gmirror status
      Name    Status  Components
mirror/gm0  COMPLETE  ada1 (ACTIVE)
                      ada0 (ACTIVE)
bsd1$ 

В лог событий также пишутся сообщения о статусе зеркала:
bsd1$ tail -5 /var/log/messages
Jul 27 19:26:00 bsd1 newsyslog[1647]: logfile turned over due to size>100K
Jul 27 19:27:01 bsd1 kernel: GEOM_MIRROR: Device gm0: rebuilding provider ada0.
Jul 27 20:18:18 bsd1 kernel: GEOM_MIRROR: Device gm0: rebuilding provider ada0
 finished.
bsd1$ 



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=1340.

размещено: 2014-07-27,
последнее обновление: 2014-07-27,
автор: lissyara

оценить статью:

alex, 2014-07-28 в 9:34:56

> tar --one-file-system --create --file=- / | (cd /mnt; tar -xvf -)
dump -a0Lf- ... | restore -rf- ... не нравится?

Alex Keda, 2014-07-28 в 10:55:44

Нет. пару раз оно у меня "залипало". А с tar проблем никогда не было. Разве что --one-file-system забудешь =))

alex, 2014-07-28 в 14:23:45

"залипало" это как? Любопытно очень...
У меня с 2007 (тьфу тьфу тьфу) с dump - restore не было проблем, даже пару раз пользовался копиями после смерти hdd. Причем копии делались и вручную, и по планировщику на др. сервере по ssh.

Alex Keda, 2014-07-28 в 14:38:28

именно "залипало" - очущение будто к устройству типа /dev/zero прицепилось и с концами...
--
плюс, несколько раз сервер при его работе падал в панику. чаще всего с файловой системой на gjournal. лечится принудительным тестированием файловой системы, но, как говорится, осадочек остаётся...
--
в общем, я пересел на tar, все проблемы кончились, кроме вариантов когда на нечеканой файловой системе его запускаешь - тоже вплоть до паники может быть. но, в любом случае, реже чем dump/restore

alex, 2014-07-28 в 15:43:20

ясно, ну я пока что с таким не сталкивался, видимо, масштабы не те :-)
А с tar в самом-самом начале общения с unix-like системами бэкап не понравился (причем сам виноват, ман невнимательно прочитал в части --numeric-owner --uname --gname, лень было, с именами пользователей или id напортачил в итоге), так дампом и пользуюсь.
А вообще шкурка-то (софтовый массив) выделки стоила? Довольны остались?

Alex Keda, 2014-07-28 в 15:50:25

работает. просто работает =))
предыдущая версия статьи: http://www.lissyara.su/archive/gmirror/ сервер с которого статья писалась до сих пор работает. за почти 8 лет пару раз вручную запускал сборку, после того как питание особо жёстко дёргали и всё.
даже диски до сих пор работают =))

alex, 2014-07-28 в 16:17:14

ну раз оба диска работают, значит, случая оценить mirror еще не было :-D
Спасибо за статью Да и за сайт вообще: толковая информация, простое, но удобное оформление сайта, минимум рекламы!

Alex Keda, 2014-07-28 в 16:28:19

Было когда и ломались. На других серверах. Просто менял на новый и ручками втыкал. Записать как-то не догадался...
--
блин, сайт был вообще без рекламы. задрали вопросами - почему нет рекламы. необычно это выглядит в современном интернете. пришлось повесить, чтоб остали. серьёзно.

andy, 2014-10-03 в 15:31:39

Это в Москоме такие финты ушами?

Alex Keda, 2014-10-03 в 15:33:28

Не. У нас микросерверов нету. у нас не меньше юнита =))

andy, 2014-10-06 в 16:33:42

Вы в облако еще не перешли?

Alex Keda, 2014-10-06 в 17:41:13

ф топку =)

Неоригинально, 2014-12-22 в 12:54:31

Неоригинально. И заколебали уже :)

SergeySL, 2015-07-13 в 12:13:42

А что показывают gpart show и gpart status на таких зеркалах? CORRUPT?

bomich, 2017-08-13 в 20:15:56

root@zz:/usr/home/zz # gpart status
           Name  Status  Components
mirror/sysraidp1      OK  mirror/sysraid
mirror/sysraidp2      OK  mirror/sysraid
mirror/sysraidp3      OK  mirror/sysraid
root@zz:/usr/home/zz # gpart show
=>        34  1953525100  mirror/sysraid  GPT  (931G)
         34           6                  - free -  (3.0k)
         40         128               1  freebsd-boot  (64k)
        168         344                  - free -  (172k)
        512     8388608               2  freebsd-swap  (4.0G)
    8389120  1944059904               3  freebsd-ufs  (927G)
 1952449024     1076110                  - free -  (525M)

SergeySL, 2017-08-13 в 23:00:56

2 года спустя :)
У меня была проблема с кривым контроллером дисков на тестовом компе. А. Елсуков помог во всем разобраться, после этого тоже везде OK.


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 37 чел.
За последние 30 мин было: 155 человек
За сегодня было
12737 показов,
1107 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Стопшум предлагает sylomer sr силомер с доставкой.
clinic-rost.ru

Время генерации страницы 0.046 секунд
Из них PHP: 36%; SQL: 64%; Число SQL-запросов: 77 шт.
Исходный размер: 118722; Сжатая: 21663