При выборе решения для организации хранилища самыми важными характеристиками являются скорость, надежность и стоимость. Редко все эти характеристики наличествуют одновременно; обычно быстрое и надёжное устройство хранения стоит дорого, а при уменьшении стоимости в жертву приносятся скорость работы или надёжность.
При проектировании описываемой далее системы в качестве самого важного фактора была выбрана её стоимость, затем быстродействие и надёжность. Скорость передачи данных для этой системы ограничивалась только пропускной способностью сети. И, хотя надёжность очень важна, CCD-диск, описываемый ниже, обслуживал работу с данными, полные копии которых уже хранились на дисках CD-R, так они могли быть с лёгкостью обновлены.
При выборе решения для массового хранения данных первым шагом является определение ваших требований к нему. Если в ваших требованиях главными являются скорость или надёжность, а не стоимость, то ваш выбор будет отличаться от описываемой в этом разделе системы.
Кроме системного IDE-диска, основу описываемого далее CCD-диска общим объёмом примерно в 90 Гбайт составили три IDE-диска Western Digital 30GB, 5400 RPM. В идеальном случае каждый диск IDE имеет собственный контроллер и кабель, но для минимизации стоимости дополнительные контроллеры IDE не использовались. Вместо этого диски были настроены при помощи переключателей так, что на каждом IDE-контроллере находилось по одному ведущему и одному ведомому диску.
До перезагрузки BIOS системы была настроена на автоматическое распознавание подключенных дисков. Более важно то, что при перезагрузке их распознала FreeBSD:
Если FreeBSD не распознала все диски, проверьте корректность положения переключателей на них. На большинстве IDE-дисков имеется также переключатель «Cable Select». Он не имеет отношения к выбору ведущего и ведомого устройств. Для получения помощи по правильному положению переключателей обратитесь к документации по устройствам.
Драйвер ccd(4) позволяет вам взять несколько идентичных дисков и объединить их в одну логическую файловую систему. Для использования ccd(4) нужно ядро со встроенной поддержкой ccd(4). Добавьте такую строку в файл конфигурации ядра, перестройте и установите новое ядро:
Поддержка ccd(4) также может быть обеспечена загрузкой подгружаемого модуля ядра.
Для настройки ccd(4) сначала вам нужно воспользоваться утилитой bsdlabel(8) для разметки дисков:
При этом создаются метки для ad1c
,
ad2c
и ad3c
,
которые занимают диск полностью.
Следующим шагом является изменение типа метки диска. Для редактирования дисков можно использовать утилиту bsdlabel(8):
При этом в редакторе, задаваемом переменной окружения
EDITOR
(обычно это vi(1)),
открывается текущая метка каждого диска.
Не модифицированная метка диска будет выглядеть примерно следующим образом:
Добавьте новый раздел e
для использования
драйвером ccd(4). Как правило, он может быть скопирован с
раздела c
, но поле fstype
должно иметь значение
4.2BSD
. Теперь метка диска должна выглядеть
примерно так:
Теперь, когда все диски размечены, вы должны построить ccd(4). Для этого используйте утилиту ccdconfig(8) с параметрами, подобными следующим:
Использование и значение каждого параметра описывается ниже:
Первым аргументом является конфигурируемое устройство,
в нашем случае | |
Чередование для файловой системы. Оно определяет размер единицы блока данных в количестве дисковых блоков, каждый из которых обычно имеет объём в 512 байт. Таким образом, при чередовании в 32 это будет составлять 16384 байт. | |
Опции для ccdconfig(8). Если вы хотите включить зеркалирование диска, то можете задать это здесь. В нашей конфигурации зеркалирование для ccd(4) не предусмотрено, поэтому здесь задан 0 (ноль). | |
Последним параметром для ccdconfig(8) является список устройств для объединения в массив. Для каждого устройства нужно задавать полное имя. |
После запуска ccdconfig(8) устройство ccd(4) будет отконфигурировано. Может будет построить файловую систему. Обратитесь к справке по команде newfs(8) для выяснения требуемых параметров, или просто запустите:
Вообще говоря, вам потребуется монтировать
ccd(4) при каждой перезагрузке. Для этого
сначала вы должны отконфигурировать это устройство. Запишите
вашу текущую конфигурацию в файл /etc/ccd.conf
при помощи такой команды:
При перезагрузке скрипт /etc/rc
запускает
команду ccdconfig -C
, если существует файл
/etc/ccd.conf
. При этом
ccd(4) автоматически конфигурируется так,
чтобы он мог быть смонтирован.
Если при загрузке вы входите в однопользовательский режим, то перед тем, как выполнять монтирование ccd(4) по команде mount(8), вам нужно для конфигурации массива запустить следующую команду:
Для автоматического монтирования ccd(4)
поместите запись о ccd(4) в файл
/etc/fstab
, чтобы он мог быть
смонтирован во время загрузки системы:
FreeBSD поддерживает также целый ряд аппаратных контроллеров RAID. Эти устройства самостоятельно управляют RAID-подсистемой, без необходимости иметь специфичное для FreeBSD программное обеспечения управления массивом.
При помощи встроенной в адаптер BIOS, он сам управляет большинством дисковых операций. Далее следует краткое описание установки при помощи контроллера Promise IDE RAID. После установки адаптера и запуска системы, выдаётся запрос на ввод. Следуйте указаниям для входа в настройку адаптера. Отсюда вы можете объединить все подключенные диски. После этого во FreeBSD диск(и) будут выглядеть как один диск. Аналогично могут быть настроены и другие уровни RAID.
FreeBSD позволяет вам выполнять горячую замену вышедшего из строя диска. При этом требуется, чтобы вы заметили это до перезагрузки.
Вероятно, в файле /var/log/messages
или в
выдаче команды dmesg(8) вы увидите примерно следующее:
При помощи atacontrol(8) получите дополнительную информацию:
#
atacontrol list
ATA channel 0:
Master: no device present
Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0
ATA channel 1:
Master: no device present
Slave: no device present
ATA channel 2:
Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device present
ATA channel 3:
Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device present
#
atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADEDСначала вам нужно отключить канал контроллера ATA, содержащий отказавший диск, чтобы его можно было без последствий извлечь:
#
atacontrol detach ata3
Замените диск.
Повторно подключите канал дискового контроллера:
#
atacontrol attach ata3
Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device presentДобавьте новый диск к массиву в качестве резервного:
#
atacontrol addspare ar0 ad6
Перестройте массив:
#
atacontrol rebuild ar0
Проверить состояние дел можно при помощи следующей команды:
#
dmesg | tail -10
[выдача удалена]
ad6: removed from configuration
ad6: deleted from ar0 disk1
ad6: inserted into ar0 disk1 as spare
#
atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completedДождитесь завершения этой операции.
Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.