Меню

Настройка raid на freebsd



Настройка raid на freebsd

При выборе решения для организации хранилища самыми важными характеристиками являются скорость, надежность и стоимость. Очень редко все эти параметры характеристики имеются вместе, обычно быстрое и надежное устройство хранения стоит дорого, а при уменьшении стоимости в жертву приносятся скорость работы или надежность. При проектировании моей системы я отранжировал требования по порядку от наиболее желаемых до наименее нужных. В этом случае стоимость оказалась наиболее значащим фактором. Мне нужен был большой объем за разумную цену. Следующая характеристика, скорость, не так важна, так как в основном использование будет осуществляться через стомегабитный коммутируемый Ethernet, и это, скорее всего, и будет узким местом. Возможность распараллелить файловые операции ввода/вывода по нескольким дискам даст более чем достаточную для этой сети скорость. Наконец, требование надежности легко обеспечить. Все данные, помещаемые на это устройство хранения, уже были сброшены на диски CD-R. Это устройство в основном предназначается для онлайнового хранения, облегчающего доступ, так что если диск откажет, я могу его просто заменить, перестроить файловую систему и скопировать данные с CD-R.

В итоге мне нужно нечто, что даст мне максимум дискового пространства за мои деньги. В наши дни стоимость больших дисков IDE невелика. Я нашел место, где продавались IDE-диски Western Digital 30.7gb 5400 RPM примерно за сто тридцать долларов США. Я приобрел три диска, что дало мне около девяноста гигабайт онлайнового хранилища.

Я установил винчестеры в систему, в которой уже был один диск IDE в качестве системного. Идеальным решением было бы иметь для каждого диска IDE собственный IDE-контроллер и кабель, но без дополнительных трат на двойной IDE-контроллер это невозможно. Так что я определил перемычками два диска как ведомые (slave), а один как ведущий (master). Один был подключен к первому IDE-контроллеру как ведомый в паре с системным диском, а оставшиеся два стали парой ведомый/ведущий на втором IDE-контроллере.

До перезагрузки BIOS системы была настроена на автоматическое распознавание подключенных дисков. Более важно то, что при перезагрузке их распознала FreeBSD:

ad0: 19574MB [39770/16/63] at ata0-master UDMA33 ad1: 29333MB [59598/16/63] at ata0-slave UDMA33 ad2: 29333MB [59598/16/63] at ata1-master UDMA33 ad3: 29333MB [59598/16/63] at ata1-slave UDMA33

На этом этапе, если FreeBSD не распознала диски, проверьте, что вы правильно выставили перемычки. Я слышал от многих о проблемах, возникающих при выставлении перемычек на выбор кабелем (cable select) вместо принудительной настройки ведущий/ведомый (slave/master).

Следующей проблемой был способ их подключения как части файловой системы. Я немного поразбирался с vinum (8) () и ccd (4) . В этой конкретной конфигурации ccd (4) оказался более хорошим выбором, в основном потому что он менее сложен. Меньшее количество элементов указывает на меньшую вероятность сбоя. Возможности vinum показались несколько превышающими мои потребности.

CCD позволяет мне взять несколько идентичных дисков и объединить их в одну логическую файловую систему. Для использования ccd нужно ядро со встроенной поддержкой ccd . Я добавил такую строку в мой файл конфигурации ядра и перестроил ядро:

pseudo-device ccd 4

Для FreeBSD 4.0 и более поздних версий поддержка ccd может быть также подгружена как загружаемый модуль ядра.

Для настройки ccd сначала мне нужно было разметить диски. Вот как я сделал это:

disklabel -r -w ad1 auto disklabel -r -w ad2 auto disklabel -r -w ad3 auto

При этом были созданы метки ad1c, ad2c и ad3c, которые занимали диск полностью.

Читайте также:  Инструкция по настройке универсального пульта филипс

Следующим шагом является изменение типа метки диска. Для этого я редактировал метку диска:

disklabel -e ad1 disklabel -e ad2 disklabel -e ad3

При этом в редакторе, задаваемом переменной окружения EDITOR , в моем случае это был vi (1) , открывалась текущая метка каждого соответствующего диска. Внутри редактора были видны разделы, подобные следующим:

8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 — 59597)

Мне необходимо было добавить новый раздел «e» для использования драйвером ccd (4) . Как правило, он может быть скопирован с раздела «c», но поле fstype должно быть задано в значение 4.2BSD . После того, как я это сделал, метка моего диска должна выглядеть примерно так:

8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 — 59597) e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 — 59597)

Теперь, после того, как я разметил все диски, мне нужно построить объединённый ccd -диск. Для этого я использовал утилиту под названием ccdconfig (8) . ccdconfig воспринимает несколько аргументов, первым выступает устройство, которое нужно конфигурировать, в нашем случае это /dev/ccd0c . Файл устройства для ccd0c может ещё не существовать, так что для его создания предварительно выполните такие команды:

cd /dev sh MAKEDEV ccd0

Следующим аргументом, который ожидает ccdconfig , является параметр чередования для файловой системы. Чередование задает размер полосы в дисковых блоках, обычно размером в пятьсот двенадцать байт. Таким образом, чередование в тридцать два будет соответствовать шестнадцати тысячам восьмидесяти четырем байтам.

После чередования следуют флаги для ccdconfig . Если вы хотите включить зеркалирование диска, вы можете задать флаг здесь. В нашей конфигурации я не зеркалирую ccd , так что он остается нулевым.

Последним параметром для ccdconfig являются устройства, помещаемые в массив. Для их объединения я дал такую команду:

ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e

При этом выполняется начальная настройка ccd . Теперь можно создавать новую файловую систему при помощи newfs (8) .

Наконец, если я хочу монтировать ccd , мне нужно сначала его настроить. Я записал мою текущую конфигурацию в файл /etc/ccd.conf при помощи такой команды:

ccdconfig -g > /etc/ccd.conf

При перезагрузке скрипт /etc/rc запускает команду ccdconfig -C , если существует файл /etc/ccd.conf. При это ccd автоматически конфигурируется так, чтобы он мог быть смонтирован.

Если при загрузке вы входите в однопользовательский режим, то перед тем, как выполнять монтирование ccd по команде mount , вам нужно для конфигурации массива запустить следующую команду:

Затем нам нужна запись для ccd в файле /etc/fstab , чтобы он мог быть смонтирован во время загрузки системы.

/dev/ccd0c /media ufs rw 2 2

Мнеджер томов Vinum является драйвером блочного устройства, который реализует виртуальные диски. Он отделяет дисковое оборудование от интерфейса блочного устройства и работает с данными таким образом, что в результате повышается гибкость, производительность и надёжность по сравнению с традиционным взглядом на дисковое хранилище как на кусок дискового пространства. vinum (8) реализует модели RAID-0, RAID-1 и RAID-5, как по отдельности, так и в комбинациях.

Обратитесь к для получения более полной информации о about vinum (8) .

FreeBSD поддерживает также целый ряд аппаратных контроллеров RAID . В этом случае реальная система RAID строится и управляется самим адаптером. При помощи встроенной в адаптер BIOS он самостоятельно управляет большинством операций с диском. Далее следует краткая руководство по настройке с использованием контроллера IDE RAID от Promise. Когда этот адаптер установлен и система стартует, выдаётся запрос на ввод информации. Следуйте экранным указаниям для входа в экран настройки адаптера. Отсюда пользователь должен иметь возможность объединить все подключенные диски. Когда он это сделает, диск или диски будут выглядеть для FreeBSD как один большой накопитель. Другие уровни RAID могут быть настроены аналогичным образом.

Читайте также:  Настройка батника для майнинга eth на пуле etherminer

Источник

Поднимаем RAID1 массив на FreeBSD

Для того чтобы поднять зеркальный RAID1 массив в FreeBSD воспользуемся замечательной утилиткой уже встроенной в FreeBSD — gmirror.

Итак приступим, для начала добавим в файл /boot/loader.conf строчку

После чего создаем raid1 добавив туда первый из 2ух дисков

gmirror label -v -b round-robin gm0 /dev/ad4

-b round-robin — режим балансировки (везде советуют выбирать именно этот)

gm0 — название создаваемого нами raid1 массива

/dev/ad4 — название 1-ого диска включаемого в массив

ВАЖНО: стоит отметить если вы собираете RAID1 из диска на котором стоит система, то при попытке выполнить команду вылезет ошибка:

Can’t store metadata on /dev/ad4: Operation not permitted.

так как FreeBSD не позволит делать вам массив из системного диска наживую, чтобы решить эту проблему необходимо выполнить команду:

Тем самым вы снимите ограничение, не беспокойтесь все встанет на место после перезагрузки.

Итак, выполняем команду добавления первого диска повторно, так как в прошлый раз у нас она не получилась (если получилась то соответственно не выполняем) и видим примерно следующий вывод:

Metadata value stored on /dev/ad4.
Done.

Значит первая часть работы успешно завершена

Можно проверить это командой

Теперь необходимо править файл /etc/fstab . Тем самым мы указываем нашей системе, что после перезагрузки необходимо монтировать нашу систему с диска gm0 (тобишь с массива). Делаем это заменяя наше устройство на /dev/mirror/gm0, например:

/dev/ad4s1b none swap sw 0 0
/dev/ad4s1a / ufs rw 1 1
/dev/ad4s1e /tmp ufs rw 2 2
/dev/ad4s1f /usr ufs rw 2 2
/dev/ad4s1d /var ufs rw 2 2

Стало:

/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

Хочется отметить если системный диск не участвует в массиве, то не нужно производить манипуляций с заменой, а надо просто примонтировать наш раздел, например добавив такую строчку в /etc/fstab

/dev/mirror/gm0s1d /mnt/RAID ufs rw 2 2

где, /mnt/RAID созданная нами заранее папка

Теперь осталось только добавить второй диск в зеркало, для этого выполняем команду

где, insert gmo — указывает что добавляем диск в массив с именем gm0

/dev/ad6 — наш второй диск

Если размер дисков большой, то процесс синхронизации может занять длительное время, посмотреть как там все проходит можно все той же командой

после выполнения синхронизации, все можно считать что массив собран и работает и мы должны увидеть «COMPLETE» в выводе статуса.

И напоследок хочется привести список действий которые необходимо проделать если все таки один из дисков вышел из строя.

Для начала выключаем компьютер и вытаскиваем вышедший из строя диск, затем включаем компьютер и

1-ой командой мы говорим нашему массиву забыть диск которого нет в массиве сейчас:

Затем выключаем компьютер, вставляем новый диск и 2-ой командой добавляем его в массив:

И 3-я часть данной статьи как же мониторить состояние массива? Добавляем в cron (/etc/crontab) следующую строчку:

0 */2 * * * root gmirror status | grep COMPLETE || echo «SROCHNO Neobhodimo proverit RAID» | mail -s «RAID DANGER» ваш_ящик@домен.com

Каждые 2 часа мы проверяем статус массива, и если что-то не так отправляем себе на почту сообщение с темой «RAID DANGER»

Источник

RAID1 в FreeBSD

Поступило задание сделать сервер из обычного ПК. Ну вот так бывает, что в качестве серверной машины, до сих пор выступают «машинки», вышедшие из употребления у пользователей, и отданных на растерзание в качестве сервера, с установкой какой-нибудь *nix-системы. Почему *nix? Потому что она жрёт мало ресурсов.

Читайте также:  Какие настройки ставить в dota 2

После того, как такое решение принято, сразу же встаёт вопрос о живучести машины. Как мы знаем, самое уязвимое место в ПК, которые отдают под серверы — это жёсткие диски и информация, которая на этих жёстких дисках хранится.

Есть несколько решений по поводу сохранности информации на компьютерах. Один из них backup — то есть резервное копирование данных. Этот процесс запускается с некоторой периодичностью и сохраняет данные на каком-то другом сервере, для этого специально предназначненном.

Но нам это не подходит, так как строится сервер, который должен будет иметь актуальную информацию и изменяться ежеминутно. Собственно, BACKUP всё равно никто не отменяет и это будет, а для увеличения живучести машины было принято решение о создании RAID-массива. В нашем случае будет производиться зеркалирование.

Зеркалирование — это стандарт RAID1 и его мы сейчас рассмотрим. Хочу заметить сразу и обратить особое внимание на следующий факт: если вы поставили систему и сделали RAID-массив, и один из дисков вышел из строя, то менять шлейфы и перетыкать с одного интерфейса на другой нельзя, так как меняются названия дисков.

Для исключения и подключения новых дисков, взамен вышедших из строя существуют определённые команды, о которых мы поговорим в конце.

1. Подготовка железа

a. Для создания RAID диски должны быть примерно равного объёма

b. ПК нужно настроить так, что при отключении одного из дисков, всё равно один из дисков был бы доступен.

с. Если в ПК есть два слота IDE, то жёсткие диски подключить на разные порты IDE

2. Устанавливаем FreeBSD

a. Устанавливаем операционную систему на диск меньшей ёмкости

b. Программой fdisk разбивать только первый диск, на который устанавливаем операционную систему. Второй диск подключаем таким, какой он есть. Если на нём были какие-то разбивки, то это можно удалить.

3.Cоздаём программный RAID на сервере.

a. # echo ‘geom_mirror_load=YES’ >> /boot/loader.conf

b. # sysctl kern.geom.debugflags=16

c. # gmirror label -v -b round-robin gm0 /dev/ad0 (при условии, что диск, на который мы ставим ОС определился, как ad0 . Посмотреть это можно разными способами. Самый простой: # sysinstall=>configuration=>fdisk)

d. В /etc/fstab меняем все устройства, начинающиеся с /dev/ad0XXX на /dev/mirror/gm0XXX .

Источник

Небольшой Блог Системного Администратора

Памятка о настройки RAID-1 поверх уже установленной FreeBSD версии 9 или 10. Неоднократно проверенный способ, когда используется именно GPT разметка. В примере будет создан RAID-1 массив, он же зеркало, из всех разделов на основном диске. Т.е. зеркалируются именно разделы, а не полностью диск.

1. Загружаем в shell FreeBSD с LiveCD.

2. Просматриваем имеющиеся разделы:

Пример автоматической разбивки диска установщиком bsdinstall

3. Копируем таблицу разделов исходного диска на второй:

4. Делаем второй диск возможным для загрузки:

5. Создаем зеркало каждого из разделов и загружаем gmirror:

6. Просмотр состояния:


7. Монтируем корневой раздел, делаем резервную копию файла fstab и редактируем оригинал с помощью «ee»:

Было:

Стало:

8. Тут же, можно настроить ssh доступ для root, если необходимо, или другие необходимые настройки:

9. Обязательно добавляем загрузку GEOM:

10. Размонтируем диск и перезагружаемся в установленную ОС:

11. Добавляем зеркала для каждого из разделов:

Источник

Adblock
detector