Создаем программный RAID1 в FreeBSD 8.2
31.03.2011 - 11:33
Для построения зеркала, необходимо добавить в переменную sysctl значение:
Создаем зеркало, в результате в "/dev/mirror/gm" будут созданы устройства:
Загрузим модуль ядра или при необходимости, можно скомпилировать ядро с его поддержкой "options GEOM_MIRROR".
Смотрим загрузился ли?
или
Проверить статус нашего RAID1 можно с помощью:
или
Ps:
Предположим, что один из дисков отвалился(ad12), его необходимо заменить новым. После его установки необходимо выполнить замещение старого диска в зеркале на новый:
Нагрузку на винты рейда можно посмотреть с помощью утилиты - gstat.
Для проверки RAID1, можно по очередности отсоединить каждый винт и проверить загрузку ОС с него. При последующем подсоединении двух винтов они синхронизируются между собой автоматически.
Решил попробовать софт-рейд в FreeBSD, как раз под рукой оказалось 2 идентичных винта (желательно одного производителя и объема).
При установке FreeBSD, первый определился как ad10, другой - ad12.
[X] ad10 - на него будем устанавливать систему.
[ ] ad12 - будет выступать зеркалом.
[ ] ad12 - будет выступать зеркалом.
Для построения зеркала, необходимо добавить в переменную sysctl значение:
fs1# sysctl kern.geom.debugflags=17
kern.geom.debugflags: 0 -> 17
fs1#
kern.geom.debugflags: 0 -> 17
fs1#
Создаем зеркало, в результате в "/dev/mirror/gm" будут созданы устройства:
fs1# gmirror label -v -b round-robin gm0 /dev/ad10
Metadata value stored on /dev/ad10.
Done.
fs1#
Metadata value stored on /dev/ad10.
Done.
fs1#
Загрузим модуль ядра или при необходимости, можно скомпилировать ядро с его поддержкой "options GEOM_MIRROR".
fs1# gmirror load
Смотрим загрузился ли?
fs1# kldstat
Id Refs Address Size Name
1 3 0xc0400000 bd97b4 kernel
2 1 0xc6230000 15000 geom_mirror.ko
fs1#
Id Refs Address Size Name
1 3 0xc0400000 bd97b4 kernel
2 1 0xc6230000 15000 geom_mirror.ko
fs1#
Включите автоматическую загрузку модуля geom_mirror.ko при старте ОС:
fs1# echo 'geom_mirror_load="YES"' >> /boot/loader.conf
В результате в /dev/mirror вы увидете новые разделы(например):
gm0 gm0s1 gm0s1a gm0s1b gm0s1d gm0s1e gm0s1f
Редактируем fstab
Первоначальный вид /etc/fstab после установки ОС:
# Device Mountpoint FStype Options Dump Pass#
/dev/ad10s1b none swap sw 0 0
/dev/ad10s1a / ufs rw 1 1
/dev/ad10s1e /tmp ufs rw 2 2
/dev/ad10s1f /usr ufs rw 2 2
/dev/ad10s1d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
/dev/ad10s1b none swap sw 0 0
/dev/ad10s1a / ufs rw 1 1
/dev/ad10s1e /tmp ufs rw 2 2
/dev/ad10s1f /usr ufs rw 2 2
/dev/ad10s1d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
Вид после редактирования (заменяем /dev/ad10XXX на /dev/mirror/gm0XXX):
# Device Mountpoint FStype Options Dump Pass#
/dev/mirror/gm0s1b none swap sw 0 0
/dev/mirror/gm0s1a / ufs rw 1 1
/dev/mirror/gm0s1e /tmp ufs rw 2 2
/dev/mirror/gm0s1f /usr ufs rw 2 2
/dev/mirror/gm0s1d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
/dev/mirror/gm0s1b none swap sw 0 0
/dev/mirror/gm0s1a / ufs rw 1 1
/dev/mirror/gm0s1e /tmp ufs rw 2 2
/dev/mirror/gm0s1f /usr ufs rw 2 2
/dev/mirror/gm0s1d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
Перезагружаемся:
fs1# shutdown -r now
При загрузке вы должны увидеть:
Starting file system checks:
/dev/mirror/gm0s1a: FILE SYSTEM CLEAN; SKIPPING CHECKS
/dev/mirror/gm0s1a: clean, 924756 free (3556 frags, 115150 blocks, 0.4% fragmentation)
/dev/mirror/gm0s1e: FILE SYSTEM CLEAN; SKIPPING CHECKS
/dev/mirror/gm0s1e: clean, 1013009 free (49 frags, 126620 blocks, 0.0% fragmentation)
/dev/mirror/gm0s1f: FILE SYSTEM CLEAN; SKIPPING CHECKS
/dev/mirror/gm0s1f: clean, 141380597 free (39757 frags, 17667605 blocks, 0.0% fragmentation)
/dev/mirror/gm0s1d: FILE SYSTEM CLEAN; SKIPPING CHECKS
/dev/mirror/gm0s1d: clean, 5076043 free (371 frags, 634459 blocks, 0.0% fragmentation)
/dev/mirror/gm0s1a: FILE SYSTEM CLEAN; SKIPPING CHECKS
/dev/mirror/gm0s1a: clean, 924756 free (3556 frags, 115150 blocks, 0.4% fragmentation)
/dev/mirror/gm0s1e: FILE SYSTEM CLEAN; SKIPPING CHECKS
/dev/mirror/gm0s1e: clean, 1013009 free (49 frags, 126620 blocks, 0.0% fragmentation)
/dev/mirror/gm0s1f: FILE SYSTEM CLEAN; SKIPPING CHECKS
/dev/mirror/gm0s1f: clean, 141380597 free (39757 frags, 17667605 blocks, 0.0% fragmentation)
/dev/mirror/gm0s1d: FILE SYSTEM CLEAN; SKIPPING CHECKS
/dev/mirror/gm0s1d: clean, 5076043 free (371 frags, 634459 blocks, 0.0% fragmentation)
или
fs1# mount
/dev/mirror/gm0s1a on / (ufs, local)
devfs on /dev (devfs, local, multilabel)
/dev/mirror/gm0s1e on /tmp (ufs, local, soft-updates)
/dev/mirror/gm0s1f on /usr (ufs, local, soft-updates)
/dev/mirror/gm0s1d on /var (ufs, local, soft-updates)
fs1#
/dev/mirror/gm0s1a on / (ufs, local)
devfs on /dev (devfs, local, multilabel)
/dev/mirror/gm0s1e on /tmp (ufs, local, soft-updates)
/dev/mirror/gm0s1f on /usr (ufs, local, soft-updates)
/dev/mirror/gm0s1d on /var (ufs, local, soft-updates)
fs1#
Добавляем ваш другой диск в зеркало для синхронизации (у меня это "ad12"):
fs1# gmirror insert gm0 /dev/ad12
Проверить статус нашего RAID1 можно с помощью:
fs1# gmirror status
Name Status Components
mirror/gm0 DEGRADED ad10
ad12 (20%)
Name Status Components
mirror/gm0 DEGRADED ad10
ad12 (20%)
или
fs1# gmirror list
Geom name: gm0
State: COMPLETE
Components: 2
Balance: round-robin
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 1292398990
Providers:
1. Name: mirror/gm0
Mediasize: 320072932864 (298G)
Sectorsize: 512
Mode: r5w5e14
Consumers:
1. Name: ad10
Mediasize: 320072933376 (298G)
Sectorsize: 512
Mode: r1w1e1
State: ACTIVE
Priority: 0
Flags: DIRTY
GenID: 0
SyncID: 1
ID: 2183162714
2. Name: ad12
Mediasize: 320072933376 (298G)
Sectorsize: 512
Mode: r1w1e1
State: ACTIVE
Priority: 0
Flags: DIRTY
GenID: 0
SyncID: 1
ID: 4069705096
Geom name: gm0
State: COMPLETE
Components: 2
Balance: round-robin
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 1292398990
Providers:
1. Name: mirror/gm0
Mediasize: 320072932864 (298G)
Sectorsize: 512
Mode: r5w5e14
Consumers:
1. Name: ad10
Mediasize: 320072933376 (298G)
Sectorsize: 512
Mode: r1w1e1
State: ACTIVE
Priority: 0
Flags: DIRTY
GenID: 0
SyncID: 1
ID: 2183162714
2. Name: ad12
Mediasize: 320072933376 (298G)
Sectorsize: 512
Mode: r1w1e1
State: ACTIVE
Priority: 0
Flags: DIRTY
GenID: 0
SyncID: 1
ID: 4069705096
После полной синхронизации:
fs1# gmirror status
Name Status Components
mirror/gm0 COMPLETE ad10
ad12
Name Status Components
mirror/gm0 COMPLETE ad10
ad12
Ps:
Предположим, что один из дисков отвалился(ad12), его необходимо заменить новым. После его установки необходимо выполнить замещение старого диска в зеркале на новый:
fs1# gmirror forget gm0
fs1# gmirror insert gm0 /dev/ad12
fs1# gmirror insert gm0 /dev/ad12
Нагрузку на винты рейда можно посмотреть с помощью утилиты - gstat.
Для проверки RAID1, можно по очередности отсоединить каждый винт и проверить загрузку ОС с него. При последующем подсоединении двух винтов они синхронизируются между собой автоматически.
- Войдите на сайт для отправки комментариев
- Версия для печати