Читаем Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003 полностью

Рис. 6.4. Дерево устройств для тома на динамическом диске

На рис. 6.4 представлены два отдельных дерева объектов, которые читателю уже знакомы: дерево физических объектов (справа), дерево логических объектов (слева) и диспетчер логических дисков (LDM), соединяющий оба дерева. Начиная с нижнего правого угла, на рис. 6.4 представлена пары объект физического устройства-объект функционального устройства для шины PCI. Выше можно заметить пару «объект физического устройства-объект функционального устройства» для шины SCSI. В этом примере к системе подключены два динамических диска. На следующем уровне показана пара «объект физического устройства-объект функционального устройства» для двух физических дисков, установленных в системе. Диспетчер разделов расположен над объектами функциональных устройств, созданными драйвером класса диска.

Диспетчер разделов регистрирует процедуру завершения для всех обрабатываемых им пакетов IRP. В процедуре завершения особое внимание уделяется пакетам IRP_MN_QUERY_DEVICE_RELATIONSHIPS и ожидаются сообщения о создании объектов устройств дисков. Драйвер класса диска, работая как драйвер шины, создает объекты устройств для описания одного раздела, который представляет Динамический диск. Диспетчер разделов передает эту информацию об объектах устройств дисков зарегистрированным диспетчерам томов. В этом примере показан единственный диспетчер томов – LDM, который загружается как логический драйвер с корневым перечислением. В данном контексте диспетчер LDM примет на себя ответственность за объекты устройств дисков. Предположим, что нужный том сформирован из двух дисков. Диспетчер томов LDM проверяет конфигурацию тома и, как только владение всеми объектами разделов будет подтверждено, создает объект устройства, представляющий том, который в этом примере называется Том V01.

Диспетчер томов LDM перенаправляет ввод-вывод от объекта тома к одному из дисков, который содержит необходимые данные. Обратите внимание, что два объекта разделов – раздел 0 для диска 1 и раздел 0 для диска 2 – никогда не передаются подсистеме РпР, поэтому они не связаны с другими объектами.

<p>6.3 Пространство имен устройств</p>

Данное пространство имен развилось за несколько лет существования Windows NT. Для обеспечения обратной совместимости новое пространство имен объединяется со старым пространством с помощью символических ссылок. Кроме того, драйверы режима ядра создают пространство имен в режиме ядра, используя возможности диспетчера объектов. Приложения пользовательского режима воспринимают другие пространства имен, взаимодействующие друг с другом посредством символических ссылок. Иногда разобраться с хитростями пространств имен не так-то просто. В этом разделе делается скромная попытка перечислить наиболее важные для подсистемы хранения имена устройств.

Драйвер класса диска создает объекты устройств для представления каждого физического диска. Эти объекты имеют название \device\harddiskX, где X – число, начинающееся с нуля и увеличивающееся для каждого найденного жесткого диска.

Кроме того, драйвер класса диска создает объект устройства для каждого найденного основного раздела. Драйвер класса диска использует функцию IoReadPartitionTable диспетчера ввода-вывода для поиска всех основных разделов на диске. Такие основные разделы называются \device\harddiskX \partitionY, где X – номер диска, а У – номер основного раздела, расположенного на этом физическом диске. Диспетчер ввода-вывода создает символьную ссылку в формате \??\PhysicalDriveX, где X – число больше нуля, отображаемое на ссылку \device\harddiskX\partitionY.

Диспетчер томов LDM создает объект для каждого поддерживаемого тома. Эти объекты устройств имеют имена в формате \Device\HarddiskVolumes \PhysicalDmVolumes\BlockVolumeX, где X – идентификатор, который назначается тому диспетчером томов. Это устройство режима ядра соотносится с устройством Win32, которое создается диспетчером монтирования и имеет вид \??\Volume [GUID], где GUID – глобально уникальный идентификатор. Диспетчер томов также создает символьную ссылку в формате \Device\HarddiskDmVolumes\ComputerNameDgOWolumeY для каждого тома и соотносит ссылки с определенными устройствами в каталоге PhysicalVolumes При этом значение ComputerName заменяется фактическим именем компьютера, a Y – идентификатором тома.

Для предоставления прямого доступа к тому диспетчер томов LDM создает объект для каждого поддерживаемого тома. Этот объект устройства имеет имя в формате \Device\HarddiskDmVolumes\PhysicalDmVolumes\RawVolumeX.

Перейти на страницу:

Похожие книги