FreeBSD: номенклатура дисков

Номенклатура носителей информации во FreeBSD подчиняется более простым правилам, нежели в Linux, и за всю историю этой ОС менялась всего один раз -- при смене подсистемы ядра, отвечающей за работу с IDE-накопителями: с древних времён и по версию 3 включительно файлы этих устройств именовались /dev/wd#, с версии 4 и по настоящее время зовутся /dev/ad#. Диски же с интерфейсом SCSI испокон веков носят имена вида /dev/da#, как и USB-флэшки и подобные им накопители (карты цифровых камер и так далее).

В отличие от Linux, SATA-диски во FreeBSD унаследовали номенклатуру своих PATA-предшественников. Зато собственные имена получили диски, подсоединённые к дополнительным контроллерам ATA-RAID. Независимо от того, включены ли они в аппаратные RAID-массивы или используются просто в режиме обычных IDE, имена таких дисков будут иметь вид /dev/ar#.

Также надо сказать: CD/DVD-приводы во FreeBSD исстари и поныне имеют собственные имена, причём разные для разных интерфейсов: /dev/acd для ATAPI и /dev/cd для SCSI.

Интересно, что (опять же в отличие от Linux), что переход, начиная 5-й ветки, на файловую систему devfs не повлёк за собой смены номенклатуры. Единственное новшество, которая она принесла в систему именования накопителей, связан с теми же дополнительными контроллерами ATA-RAID. Как только что говорилось, в любом из двух возможных режимов их работы файлы подсоединённых к ним устройств называются /dev/ar#. Однако с внедрением devfs при работе этих контроллеров в режиме обычных IDE для тех же самых дисков возникают параллельно и имена вида /dev/ad#, причём те и другие абсолютно равноправны, и обращаться к ним можно, используя любое имя.

И вообще реализация devfs во FreeBSD оказалась вполне удачной, почему и применяется в этой ОС по сей день.

Индивидуальные накопители во FreeBSD, в отличие от Linux, маркируются не литерами, а цифрами, причём нумеруются они с нуля: /dev/ad0, /dev/ad1 и так далее.

Как и в Linux'е, именование устройств во FreeBSD по умолчанию статическое, то есть диску, подключённому как Slave на втором IDE-канале, всегда будет соответствовать файл /dev/ad3, вне зависимости от наличия или отсутствия в машине других носителей информации. И, скажем, подключение диска на первый IDE-канал имени ранее подключённого винчестера не изменит.

Однако это правило можно изменить, пересобрав ядро с опцией динамического именования. В этом случае тот же самый Slave на втором канале, будучи в единственном экземпляре, воспримется системой как /dev/ad0, а подключение любого "впереди идущего" диска изменит его имя на /dev/ad1. Во времена исключительного использования интерфейса PATA это было неудобно, почему по умолчанию и принят (по сей день) обратный, статический, порядок. Однако с внедрением дисков SATA такая пересборка может иметь смысл, и сейчас я расскажу, почему.

Во FreeBSD первые четыре номера дисков, от 0 до 3, зарезервированы за накопителями, подсоединёнными к PATA-контроллеру, который некогда был основным, и мог нести до четырёх устройств. Однако нынче он давно превратился в дополнительный, и имеет обычно только один разъём на два устройства, а то и вовсе отсутствует.

Поэтому SATA диск, подсоединённый к первому из соответствующих разъёмов,получает следующий номер, то есть 4. А накопитель, подсоединённый ко второму разъёму, будет маркирован как? правильно, номером 6-м. Потому что система по прежнему предполагает, что на одном разъёме может сидеть два устройства, хотя в случае с SATA этого не может быть, потому что этого не может быть никогда. И при задействовании остальных STA-разъёмов будет продолжаться та же самая чересполосица номеров.

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

В заключение просуммируем всё сказанное выше для конфигурации, описанной на предыдущей странице, сведя имена возможных накопителей в таблице:

Имя файла Устройство
/dev/ad0 Master на 1-м PATA-разъёме
/dev/ad1 Slave на 1-м PATA-разъёме
/dev/ad2 Зарезервировано под Master на 2-м PATA-разъёме (отсутствующем)
/dev/ad3 Зарезервировано под Slave на 2-м PATA-разъёме (отсутствующем)
/dev/ad4 Диск на 1-м SATA-разъёме
/dev/ad5 Не используется
/dev/ad6 Диск на 2-м SATA-разъёме
/dev/ad7 Не используется
/dev/ad8 Диск на 3-м SATA-разъёме
/dev/ad9 Не используется

Однако разобраться с именованием дисков и первичных разделов во FreeBSD -- только полдела. Впереди нас ожидает рассмотрение логической разметки физических дисков.


Теги: ,