Настройка программного RAID (gmirror)
Добавлено: 09 фев 2012, 21:41
Предисловие:
Время диктует свои правила... вот вышла FreeBSD 9.0 в которой не осталось место утилитки atacontrol которую мы раньше использовали, а резервироваться надо. В этой статье я обобщу тот опыт, который получил при переходе на FreeBSD 9.0 с FreeBSD 8.2
Теория:
1) с приходом FreeBSD 9.0 утилитка atacontrol считается устаревшей и не работает
2) диски теперь идут по порядку и называются ada (ada0, ada1, ...)
Задача:
Настроить программный райд на базе gmirror
Решение:
Начнём с того момента, что у меня стоит FreeBSD 8.2 из которой я уже бытащил жёский жиск из зеркала и положил его как резервный. Потом обновил исходники, пересобрал мир и ядро. установил, но не перегружался. Так как изменились названия дисков надо переписать файл /etc/fstab, который должен был бы выглядеть следующим образом:
Тут лирическое отступление.
1) если у вас диски были не в райд массиве интелевском, то вы делаете как в первом варианте и не паритесь
2) если же у вас была рабочая фря, как было написано на форуме, на райде, который появлялся при загрузке сервера, то вам следует:
2.1) убедиться что оба диска системы в зеркале (atacontrol status ar0)
2.2) вытащить один диск, дабы была копия системы (atacontrol detach ata3)
2.3) перегрузить сервер (reboot)
2.4) зайти в утилиту управления raid контролером (сразу после биоса, Ctrl+I)
2.5) удалить райд раздел - он скажет что все данные на volume0 будут уничтожены - соглашаемся
2.6) сохраняем конфигураци, перегружамся, идём в биос и там выключаем RAID а ставим ARCH
2.7) сохраняем, перегружамся..
Если же вы как-то упустили этот момент, то ваш fstab должен выглядеть следующим образом:
[/color]
теперь я перегружаю сервер. Иду в биос и там выключаю райд и ставлю ARCH. Загружаюсь - всё прошло нормально. Теперь делаем по манулу http://www.freebsd.org/doc/handbook/geom-mirror.html - хочу заметить, что тут немного по другому, чем это же делалось бы в 8.2
итак
теперь
и ещё
а так же
теперь настало время проверить что натворили
и
Пока что всё хорошо. теперь надо исправить /etc/fstab - он должен выглядеть так
перезагружаемся. я в этот момент вставил ещё пустой жёский диск. система загрузилась и я увидел такую картину
всё хорошо - я загрузился с массива - посмотрим его статус
винт один, но всё хорошо )))) добавляем второй винт
и смотрим что получилось
через какое-то время процесс начинается
ну ждём окончания...
по мимо этого можно посмотреть более детальную статистику
Время диктует свои правила... вот вышла FreeBSD 9.0 в которой не осталось место утилитки atacontrol которую мы раньше использовали, а резервироваться надо. В этой статье я обобщу тот опыт, который получил при переходе на FreeBSD 9.0 с FreeBSD 8.2
Теория:
1) с приходом FreeBSD 9.0 утилитка atacontrol считается устаревшей и не работает
2) диски теперь идут по порядку и называются ada (ada0, ada1, ...)
Задача:
Настроить программный райд на базе gmirror
Решение:
Начнём с того момента, что у меня стоит FreeBSD 8.2 из которой я уже бытащил жёский жиск из зеркала и положил его как резервный. Потом обновил исходники, пересобрал мир и ядро. установил, но не перегружался. Так как изменились названия дисков надо переписать файл /etc/fstab, который должен был бы выглядеть следующим образом:
Код: Выделить всё
# Device Mountpoint FStype Options Dump Pass#
/dev/ada0s1b none swap sw 0 0
/dev/ada0s1a / ufs rw 1 1
/dev/ada0s1e /tmp ufs rw 2 2
/dev/ada0s1f /usr ufs rw 2 2
/dev/ada0s1g /usr/home ufs rw 2 2
/dev/ada0s1d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
1) если у вас диски были не в райд массиве интелевском, то вы делаете как в первом варианте и не паритесь
2) если же у вас была рабочая фря, как было написано на форуме, на райде, который появлялся при загрузке сервера, то вам следует:
2.1) убедиться что оба диска системы в зеркале (atacontrol status ar0)
2.2) вытащить один диск, дабы была копия системы (atacontrol detach ata3)
2.3) перегрузить сервер (reboot)
2.4) зайти в утилиту управления raid контролером (сразу после биоса, Ctrl+I)
2.5) удалить райд раздел - он скажет что все данные на volume0 будут уничтожены - соглашаемся
2.6) сохраняем конфигураци, перегружамся, идём в биос и там выключаем RAID а ставим ARCH
2.7) сохраняем, перегружамся..
Если же вы как-то упустили этот момент, то ваш fstab должен выглядеть следующим образом:
Код: Выделить всё
# Device Mountpoint FStype Options Dump Pass#
/dev/raid/r0s1b none swap sw 0 0
/dev/raid/r0s1a / ufs rw 1 1
/dev/raid/r0s1e /tmp ufs rw 2 2
/dev/raid/r0s1f /usr ufs rw 2 2
/dev/raid/r0s1g /usr/home ufs rw 2 2
/dev/raid/r0s1d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
теперь я перегружаю сервер. Иду в биос и там выключаю райд и ставлю ARCH. Загружаюсь - всё прошло нормально. Теперь делаем по манулу http://www.freebsd.org/doc/handbook/geom-mirror.html - хочу заметить, что тут немного по другому, чем это же делалось бы в 8.2
итак
Код: Выделить всё
stat# sysctl kern.geom.debugflags=17
kern.geom.debugflags: 0 -> 17
Код: Выделить всё
stat# gmirror label -vb round-robin gm0 /dev/ada0
Metadata value stored on /dev/ada0.
Done.
stat#
Код: Выделить всё
stat# gmirror load
Код: Выделить всё
stat# echo 'geom_mirror_load="YES"' >> /boot/loader.conf
Код: Выделить всё
stat# cat /boot/loader.conf
coretemp_load="YES"
geom_mirror_load="YES"
stat#
Код: Выделить всё
stat# ls /dev/mirror/
gm0 gm0s1 gm0s1a gm0s1b gm0s1d gm0s1e gm0s1f gm0s1g
stat#
Код: Выделить всё
stat# cat /etc/fstab
# 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/gm0s1g /usr/home ufs rw 2 2
/dev/mirror/gm0s1d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
stat#
Код: Выделить всё
stat# df -m
Filesystem 1M-blocks Used Avail Capacity Mounted on
/dev/mirror/gm0s1a 989 650 259 72% /
devfs 0 0 0 100% /dev
/dev/mirror/gm0s1e 9916 5 9117 0% /tmp
/dev/mirror/gm0s1f 198353 15276 167208 8% /usr
/dev/mirror/gm0s1g 46364 935 41720 2% /usr/home
/dev/mirror/gm0s1d 198353 40887 141597 22% /var
stat#
Код: Выделить всё
stat# gmirror status gm0
Name Status Components
mirror/gm0 COMPLETE ada0 (ACTIVE)
stat#
Код: Выделить всё
stat# gmirror insert gm0 /dev/ada1
Код: Выделить всё
stat# gmirror status gm0
Name Status Components
mirror/gm0 DEGRADED ada0 (ACTIVE)
ada1 (SYNCHRONIZING, 0%)
stat#
Код: Выделить всё
stat# gmirror status gm0
Name Status Components
mirror/gm0 DEGRADED ada0 (ACTIVE)
ada1 (SYNCHRONIZING, 3%)
stat#
по мимо этого можно посмотреть более детальную статистику
Ну и на последок советы бывалыхstat# gmirror list
Geom name: gm0
State: DEGRADED
Components: 2
Balance: round-robin
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 2821503591
Providers:
1. Name: mirror/gm0
Mediasize: 500107861504 (465G)
Sectorsize: 512
Mode: r7w6e17
Consumers:
1. Name: ada0
Mediasize: 500107862016 (465G)
Sectorsize: 512
Mode: r1w1e1
State: ACTIVE
Priority: 0
Flags: NONE
GenID: 0
SyncID: 1
ID: 3658449252
2. Name: ada1
Mediasize: 500107862016 (465G)
Sectorsize: 512
Stripesize: 4096
Stripeoffset: 0
Mode: r1w1e1
State: SYNCHRONIZING
Priority: 0
Flags: DIRTY, SYNCHRONIZING
GenID: 0
SyncID: 1
Synchronized: 21%
ID: 3035217133
stat#
При замене жесткого диска в массиве, требуется исключить старый из массива, добавить новый и перестроить масси
если жесткий диск не менялся, то достаточноКод: Выделить всё
gmirror forget gm0 gmirror insert gm0 /dev/ad1 gmirror rebuild gm0 /dev/ad1
Код: Выделить всё
gmirror rebuild gm0 /dev/ad1