Выбрать главу
7.8.2.1 Архитектура RSM в Windows 2000

На рис. 7.7 представлена общая архитектура подсистемы RSM в Windows 2000. Служба RSM играет важную роль во всей подсистеме RSM. Служба работает в качестве хранилища для кода реализации API RSM. Она получает запросы от приложений и размещает их в очереди, обрабатывая при получении доступа к соответствующим ресурсам. При запуске службы осуществляется поиск и инициализация различных библиотек, определение изолированных накопителей и ассоциирование накопителей с системами замены носителей.

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

Рис. 7.7. Архитектура RSM

Обратите внимание: RSM принимает участие в управлении и настройке устройства, которое содержит сменный носитель, а также в управлении и настройке самого носителя. После установки прав владения устройством, монтирования и позиционирования носителя RSM исключается из пути передачи данных, т.е. дополнительные операции ввода-вывода не проводятся.

7.8.2.2 Программные интерфейсы приложений RSM в Windows 2000

В наборе Windows 2000 Platform SDK описано создание приложения с помощью API RSM и предоставлена дополнительная информация об этом интерфейсе. Преимущество таких API состоит в эффективности создания приложений управления хранилищами.

На рис. 7.8 демонстрируется ситуация, которая существовала до появления интерфейсов RSM. Каждое приложение обладало сложной структурой, так как должно было работать со множеством устройств и поддерживать разные их типы. Более того, каждый раз при появлении нового устройства или типа устройства приложения требовали модификации.

На рис. 7.9 приведена схема реализации, предоставленная после появления RSM API. Очевидно, что, кроме всего прочего, RSM обеспечивает расширяемость. Как только RSM добавляет поддержку для нового устройства, приложение может использовать это устройство практически без изменений. Список устройств, поддерживаемых RSM, постоянно меняется; последняя версия списка доступна на Web-узле списка совместимого аппаратного обеспечения по адресу: http://www.microsoft.com/hwdq/hcl.

Рис. 7.8. Схема разработки приложений до появления RSM API

Рис. 7.9. Разработка приложений, упрощенная благодаря использованию RSM API

Программные интерфейсы приложений RSM можно разделить на несколько категорий в зависимости от предоставляемых функций. Вот некоторые из них:

интерфейсы очистки содержимого накопителя, например резервная очистка, принудительная, запланированная и интерактивная;

интерфейс для определения изменений состояния изолированных дисков;

интерфейс базы данных для резервного копирования и восстановления базы данных RSM, а также для регистрации и прекращения регистрации уведомлений базы данных;

функции управления библиотекой для вставки, перемещения и извлечения носителя (в рамках библиотеки), а также для включения или отключения ресурсов накопителя или автоматической системы смены носителей;

монтирование, размонтирование и управление пулами носителей;

другие интерфейсы, необходимые для создания эффективного приложения управления хранилищем, например интерфейсы для опроса состояния, отмены выполняющихся операций или для работы с объектами RSM.

7.8.2.3 База данных RSM

База данных RSM хранит информацию, необходимую для работы подсистемы RSM. Примерами такой информации могут служить:

список носителей; *

подробная информация о пуле носителей, включая конфигурацию пула и его содержимое;

конфигурация библиотеки.

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

Пользователи могут создавать резервную копию базы данных, вручную копируя файлы. Обычно эти файлы расположены в папке %SystemRoot%\System32\ntmsdata. Очевидно, что служба RSM должна быть остановлена перед копированием файлов.