|
|
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
|
|
|
|
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 и внешние скрипты.
|
Комментарии пользователей [16 шт.]