При выборе решения для организации хранилища самыми важными характеристиками являются скорость, надежность и стоимость. Редко все эти характеристики наличествуют одновременно; обычно быстрое и надёжное устройство хранения стоит дорого, а при уменьшении стоимости в жертву приносятся скорость работы или надёжность.
При проектировании описываемой далее системы в качестве самого важного фактора была выбрана её стоимость, затем быстродействие и надёжность. Скорость передачи данных для этой системы ограничивалась только пропускной способностью сети. И, хотя надёжность очень важна, CCD-диск, описываемый ниже, обслуживал работу с данными, полные копии которых уже хранились на дисках CD-R, так они могли быть с лёгкостью обновлены.
При выборе решения для массового хранения данных первым шагом является определение ваших требований к нему. Если в ваших требованиях главными являются скорость или надёжность, а не стоимость, то ваш выбор будет отличаться от описываемой в этом разделе системы.
Кроме системного IDE-диска, основу описываемого далее CCD-диска общим объёмом примерно в 90 Гбайт составили три IDE-диска Western Digital 30GB, 5400 RPM. В идеальном случае каждый диск IDE имеет собственный контроллер и кабель, но для минимизации стоимости дополнительные контроллеры IDE не использовались. Вместо этого диски были настроены при помощи переключателей так, что на каждом IDE-контроллере находилось по одному ведущему и одному ведомому диску.
До перезагрузки BIOS системы была настроена на автоматическое распознавание подключенных дисков. Более важно то, что при перезагрузке их распознала FreeBSD:
ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33 ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33 ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33 ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33
Замечание: Если FreeBSD не распознала все диски, проверьте корректность положения переключателей на них. На большинстве IDE-дисков имеется также переключатель ''Cable Select''. Он не имеет отношения к выбору ведущего и ведомого устройств. Для получения помощи по правильному положению переключателей обратитесь к документации по устройствам.
Затем определите, как сделать их частью файловой системы. Изучите справку по vinum(8) (Гл. 17) и ccd(4). В нашем конкретном случае была выбрана технология ccd(4).
Драйвер ccd(4) позволяет вам взять несколько идентичных дисков и объединить их в одну логическую файловую систему. Для использования ccd(4) нужно ядро со встроенной поддержкой ccd(4). Добавьте такую строку в файл конфигурации ядра, перестройте и установите новое ядро:
pseudo-device ccd 4
В системах 5.X вместо этого вам нужно использовать такую строку:
device ccd
Замечание: Во FreeBSD 5.X нет нужды указывать количество устройств ccd(4) так как драйвер устройства ccd(4) теперь клонируется сам -- новые экземпляры устройств будут создаваться автоматически по необходимости.
Во FreeBSD 3.0 и последующих версиях поддержка ccd(4) также может быть обеспечена загрузкой подгружаемого модуля ядра.
Для настройки ccd(4) сначала вам нужно воспользоваться утилитой disklabel(8) для разметки дисков:
disklabel -r -w ad1 auto disklabel -r -w ad2 auto disklabel -r -w ad3 auto
При этом создаются метки для ad1c, ad2c и ad3c, которые занимают диск полностью.
Замечание: Начиная с FreeBSD 5.1-RELEASE, на смену старой программе disklabel(8) пришла утилита bsdlabel(8). У bsdlabel(8) отсутствуют некоторые устаревшие опции и параметры; в примере выше параметр -r не может использоваться с bsdlabel(8). Для получения дополнительной информации обратитесь к справочной странице п о bsdlabel(8).
Следующим шагом является изменение типа метки диска. Для редактирования дисков можно использовать утилиту disklabel(8):
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)
Файл устройства для ccd0c может ещё не существовать, так что для его создания предварительно выполните такие команды:
cd /dev sh MAKEDEV ccd0
Замечание: Во FreeBSD 5.0 devfs(5) будет управлять файлами устройств в каталоге /dev автоматически, так что в использовании MAKEDEV необходимости нет.
Теперь, когда все диски размечены, вы должны построить ccd(4). Для этого используйте утилиту ccdconfig(8) с параметрами, подобными следующим:
ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e
Использование и значение каждого параметра описывается ниже:
После запуска ccdconfig(8) устройство ccd(4) будет отконфигурировано. Может будет построить файловую систему. Обратитесь к справке по команде newfs(8) для выяснения требуемых параметров, или просто запустите:
newfs /dev/ccd0c
Вообще говоря, вам потребуется монтировать ccd(4) при каждой перезагрузке. Для этого сначала вы должны отконфигурировать это устройство. Запишите вашу текущую конфигурацию в файл /etc/ccd.conf при помощи такой команды:
ccdconfig -g > /etc/ccd.conf
При перезагрузке скрипт /etc/rc запускает команду ccdconfig -C, если существует файл /etc/ccd.conf. При этом ccd(4) автоматически конфигурируется так, чтобы он мог быть смонтирован.
Замечание: Если при загрузке вы входите в однопользовательский режим, то перед тем, как выполнять монтирование ccd(4) по команде mount(8), вам нужно для конфигурации массива запустить следующую команду:
ccdconfig -C
Для автоматического монтирования ccd(4) поместите запись о ccd(4) в файл /etc/fstab, чтобы он мог быть смонтирован во время загрузки системы:
/dev/ccd0c /media ufs rw 2 2
Менеджер томов Vinum является драйвером блочного устройства, который реализует виртуальные диски. Он отделяет дисковое оборудование от интерфейса блочного устройства и работает с данными таким образом, что в результате повышается гибкость, производительность и надёжность по сравнению с традиционным взглядом на дисковое хранилище как на кусок дискового пространства. vinum(8) реализует модели RAID-0, RAID-1 и RAID-5, как по отдельности, так и в комбинациях.
Обратитесь к Гл. 17 для получения более полной информации о vinum(8).
FreeBSD поддерживает также целый ряд аппаратных контроллеров RAID. Эти устройства самостоятельно управляют RAID-подсистемой, без необходимости иметь специфичное для FreeBSD программное обеспечения управления массивом.
При помощи встроенной в адаптер BIOS, он сам управляет большинством дисковых операций. Далее следует краткое описание установки при помощи контроллера Promise IDE RAID. После установки адаптера и запуска системы, выдаётся запрос на ввод. Следуйте указаниям для входа в настройку адаптера. Отсюда вы можете объединить все подключенные диски. После этого во FreeBSD диск(и) будут выглядеть как один диск. Аналогично могут быть настроены и другие уровни RAID.
FreeBSD позволяет вам выполнять горячую замену вышедшего из строя диска. При этом требуется, чтобы вы заметили это до перезагрузки.
Вероятно, в файле /var/log/messages или в выдаче команды dmesg(8) вы увидите примерно следующее:
ad6 on monster1 suffered a hard error. ad6: READ command timeout tag=0 serv=0 - resetting ad6: trying fallback to PIO mode ata3: resetting devices .. done ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)\\ status=59 error=40 ar0: WARNING - mirror lost
При помощи 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
Сначала вам нужно отключить диск от массива, чтобы его можно было без последствий извлечь:
# atacontrol detach 3
Замените диск.
Повторно подключите диск в качестве резервного:
# atacontrol attach 3 Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present
Перестройте массив:
# atacontrol rebuild ar0
Команда перестроения будет работать, пока не закончит. Однако имеется возможность открыть другой терминал (комбинацией клавиш Alt+Fn) и проверить состояние дел при помощи следующей команды:
# 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
Дождитесь завершения этой операции.
Пред. | Начало | След. |
Добавление дисков | Уровень выше | USB устройства хранения |
Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
По вопросам связанными с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.