Зеркальный набор томов RAID-1 в FreeBSD

Документация связанная с установкой, настройкой и работой пользовательского ПО
Ответить
Аватара пользователя
zaka
Эникейщик
Эникейщик
Сообщения: 461
Зарегистрирован: 19 май 2010, 08:52

Зеркальный набор томов RAID-1 в FreeBSD

Сообщение zaka » 12 ноя 2011, 11:04

Зеркальный набор томов RAID-1 в FreeBSD


[spoilerЧто такое RAID*?:]RAID (англ. redundant array of independent disks — избыточный массив независимых жёстких дисков) — массив из нескольких дисков, управляемых контроллером, взаимосвязанных скоростными каналами и воспринимаемых внешней системой как единое целое. В зависимости от типа используемого массива может обеспечивать различные степени отказоустойчивости и быстродействия. Служит для повышения надёжности хранения данных и/или для повышения скорости чтения/записи информации (RAID 0).
Аббревиатура RAID изначально расшифровывалась как «redundant array of inexpensive disks» («избыточный (резервный) массив недорогих дисков», так как они были гораздо дешевле RAM). Именно так был представлен RAID его создателями Петтерсоном (David A. Patterson), Гибсоном (Garth A. Gibson) и Катцом (Randy H. Katz) в 1987 году. Со временем RAID стали расшифровывать как «redundant array of independent disks» («избыточный (резервный) массив независимых дисков»), потому что для массивов приходилось использовать и дорогое оборудование (под недорогими дисками подразумевались диски для ПЭВМ).
Калифорнийский университет в Беркли представил следующие уровни спецификации RAID, которые были приняты как стандарт де-факто:
RAID 0 представлен как дисковый массив повышенной производительности, без отказоустойчивости.
RAID 1 определён как зеркальный дисковый массив.
RAID 2 зарезервирован для массивов, которые применяют код Хемминга.
RAID 3 и 4 используют массив дисков с чередованием и выделенным диском чётности.
RAID 5 используют массив дисков с чередованием и "невыделенным диском чётности".
RAID 6 используют массив дисков с чередованием и двумя независимыми "чётностями" блоков.
RAID 10 — RAID 0, построенный из RAID 1 массивов
RAID 50 — RAID 0, построенный из RAID 5
RAID 60 - RAID 0, построенный из RAID 6
По подробнее а RAID'ах википед[/spoiler]

Описание RAID-1

RAID 1
Два диска — минимальное количество для построения «зеркального» RAID 1

Схема RAID 1

Изображение

RAID 1 (mirroring — «зеркалирование»).
(+): Обеспечивает приемлемую скорость записи и выигрыш по скорости чтения при распараллеливании запросов.

(+): Имеет высокую надёжность — работает до тех пор, пока функционирует хотя бы один диск в массиве. Вероятность выхода из строя сразу двух дисков равна произведению вероятностей отказа каждого диска, см. Вероятность пересечения событий. На практике при выходе из строя одного из дисков следует срочно принимать меры — вновь восстанавливать избыточность. Для этого с любым уровнем RAID (кроме нулевого) рекомендуют использовать диски горячего резерва. Достоинство такого подхода — поддержание постоянной доступности.
(-): Недостаток заключается в том, что приходится выплачивать стоимость двух жёстких дисков, получая полезный объём одного жёсткого диска (классический случай, когда массив состоит из двух дисков).

Зеркало на многих дисках — RAID 1+0 или RAID 0+1. Под RAID 1+0 имеют в виду вариант RAID 10, когда два RAID 1 объединяются в RAID 0. Вариант, когда два RAID 0 объединяются в RAID 1 называется RAID 0+1, и "снаружи" представляет собой тот же RAID 10. Достоинства и недостатки такие же, как и у уровня RAID 0. Как и в других случаях, рекомендуется включать в массив диски горячего резерва из расчёта один резервный на пять рабочих.

Примечание:

Начиная с 5.3-Release, в состав FreeBSD входит утилита gmirror(8),
которая позваляет вам более легко создавать решения RAID 1
GEOM является модульной дисковой структурой,
появившейся в FreeBSD 5.0. В результате модульной структуры,
появляется возможность создавать программы, способные управлять
дисками. Лучшие примеры - программные реализации RAID, появившиеся в
FreeBSD 5.3:

* gstripe(8) обеспечивает чередование или RAID 0
* mirror(8) обеспечиват зеркалирование/дуплекс или RAID 1
* graid3(8) обеспечивает чередование с контролем четности или RAID 3

Что у нас есть?

Виртуальная машина qemu-kvm установленная в ubuntu 10.10
Установил FreeBSD 7.2 на виртуалку
RAM: 512 мб
CPU: 1 (2.6)
HDD: 2 по 5гб (10 гб)
Network card: 1

Таак поехали:

Смотри видет ли систем HDD:

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

dmesg  | grep ^ad
Изображение
Смотрим размер и т д. Изображение
Создание зеркалирования/дублекса осуществляется вводом следующей команды:

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

gmirror label -v -b round-robin gm0 /dev/ad0
Где gmirror label создает зеркало, функция -v включает режим отладки,
-b round-robin выбирает алгоритм балансировки (в настоящее время это
наиболее быстродействующий алгоритм), gm0 - имя первого зеркала GEOM и
/dev/ad0 указывает на диск, содержащий данные для зеркалирования.

Но у меня влезла ошибка:
Изображение
не много по гуглив нашел ответ:
Это особенность защиты, которая указывает, что диск в настоящее время
установлен для записи и поэтому недоступен. Однако, вы можете обойти
эту проблему цыпленка-и-яйца и временно вынудить
gmirror обойти эту меру, чтобы создать зеркалирование/дуплекс,
устанавливая sysctl MIB:
# sysctl kern.geom.debugflags=16
kern.geom.debugflags: 0 -> 16
Не волнуйтесь, после перезагрузки этот параметр снова примет значение "0".
Выполняем команду еще раз:

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

gmirror label -v -b round-robin gm0 /dev/ad0
Как видим на этот раз все ОК теперь у нас есть RAID 1.
Изображение
Так же теперь нам необходимо отредактировать два файла. Первый из них в настоящее время пуст, используем утилиту echo для того, чтобы внести в него необходимый параметр.
Добавляем в авто загрузку:

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

echo geom_mirror_load="YES" > /boot/loader.conf
Примечание: В некоторых документах советует добавить в авто загрузку а не которые вообще молчат я например добавил )).

Теперь сохраняем копию файла и редактируем файл /etc/fstab:

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

cp /etc/fstab fstab.backup
До редактирование:
Изображение
После редактирование:
Изображение
Измените каждый ad на gm и вставьте mirror после /dev. Для примера, /dev/ad0s1a трансформируется в /dev/mirror/gm0s1a. Если вы не делали
дополнительные разделы, то у вас будут устройства ad0s1, оканчивающиеся на a, b, d, e и f. Необходимо отредактировать каждую строку.
Редактируем файл fstab

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

vi /etc/fstab
Нажимаем на Esc потом на Shift+: {клавиша Ж или :} и набираем:
Изображение
Меняем ad0 на mirror gm0
Нажимаем на Enter и снова нажимаем на Shift+: {клавиша Ж или :} и набираем команду записать и сохранить qw и Enter.
Хотите узнать про vi по больше смотри man vi

Синхронизируем диски и перезагружаемый:

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

sync  # cинхронизируем
shutdown -r now # перезагружаемый
После ресета появились такие ошибки:
  • .....................................................
    e.g. ufs:da0s1a
    ? List valid disk boot devices
    Abort manual input

    mountroot>
по гуглив нашел ответ:
[spoiler]Система не загружается
Если система прекращает загрузку и выдает строку:
ffs_mountroot: can't find rootvp
Root mount failed: 6
mountroot>
Перезагрузите компьютер кнопкой питания или кнопкой ''Reset''. В загрузочном меню выберите опцию (6). Это приведет к тому, что система выдаст приглашение loader(8). Загрузите модуль ядра вручную:

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

OK? load geom_mirror
OK? boot
Если это сработало, модуль ядра по какой-либо причине не загрузился правильно. Проверьте корректность соответствующей записи в /boot/loader.conf. Если проблема осталась, добавьте строку:

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

options    GEOM_MIRROR
в файл конфигурации ядра, пересоберите и переустановите ядро. Это должно устранить проблему[/spoiler]
И все загрузилась удачно ))
Смотри mirror диски

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

gmiror status
Изображение

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

gmirror list
Изображение
Видим что есть одни активный диск.
Добавляем наш второй диск ad1.

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

gmirror insert gm0 /dev/ad1
Описание gmiror <вставить> <куда><что>
Смотрим командами:

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

gmirror status
Изображение

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

gmirror list
Изображение
и если видим что то в этом то значить все ОК.
Последний раз редактировалось zaka 12 ноя 2011, 20:46, всего редактировалось 6 раз.
Помни прошлое, живи настоящим и думай о будущем.
Изображение
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2800
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 8
Откуда: Из серверной

Re: Зеркальный набор томов RAID-1 в FreeBSD

Сообщение Raven » 12 ноя 2011, 14:16

zaka писал(а):В некоторых документах советует добавить в авто загрузку а не которые вообще молчат я например добавил )).
Можно сделать надежнее - вшить в ядро.

Пересобираем ядро с добавлением в конфиг опции

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

options GEOM_MIRROR
перезагружаемся и можно в принципе забыть о необходимости подгрузки модуля из loader.conf
Я не злопамятный, я просто часто ковыряю логи
Аватара пользователя
zaka
Эникейщик
Эникейщик
Сообщения: 461
Зарегистрирован: 19 май 2010, 08:52

Re: Зеркальный набор томов RAID-1 в FreeBSD

Сообщение zaka » 12 ноя 2011, 14:24

Raven писал(а):
zaka писал(а):В некоторых документах советует добавить в авто загрузку а не которые вообще молчат я например добавил )).
Можно сделать надежнее - вшить в ядро.

Пересобираем ядро с добавлением в конфиг опции

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

options GEOM_MIRROR
перезагружаемся и можно в принципе забыть о необходимости подгрузки модуля из loader.conf
да я таки понял но ща я просто тестирую (raid-1) по этому просто загрузил ядро с поддержкой mirror не стал пере собирать ядро времени нет)).
Помни прошлое, живи настоящим и думай о будущем.
Изображение
Аватара пользователя
zaka
Эникейщик
Эникейщик
Сообщения: 461
Зарегистрирован: 19 май 2010, 08:52

Re: Зеркальный набор томов RAID-1 в FreeBSD

Сообщение zaka » 14 ноя 2011, 08:30

на физическом сервере пере собрал ядро с поддержкой options GEOM_MIRROR и все нормуль 10 гб зеркалил где то 25-35 мин.
Помни прошлое, живи настоящим и думай о будущем.
Изображение
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2800
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 8
Откуда: Из серверной

Re: Зеркальный набор томов RAID-1 в FreeBSD

Сообщение Raven » 14 ноя 2011, 09:04

zaka
Ну дальше быстрее пойдет - легче зеркалить инфу на лету, нежели потом перешвыривать гигами как в начале.
Я не злопамятный, я просто часто ковыряю логи
Аватара пользователя
zaka
Эникейщик
Эникейщик
Сообщения: 461
Зарегистрирован: 19 май 2010, 08:52

Re: Зеркальный набор томов RAID-1 в FreeBSD

Сообщение zaka » 14 ноя 2011, 09:11

Raven писал(а):zaka
Ну дальше быстрее пойдет - легче зеркалить инфу на лету, нежели потом перешвыривать гигами как в начале.
Я НАДЕЮСЬ НА ЭТО :)
Помни прошлое, живи настоящим и думай о будущем.
Изображение
Ответить

Вернуться в «Документация *nix»