Введение
Гордон Мур (Gordon Moore), один из основателей компании Intel, однажды заметил, что плотность транзисторов на квадратный дюйм удваивается каждый год. Впоследствии скорость немного снизилась и удвоение стало происходить за полтора года. Если верить аналитикам, развитие индустрии систем хранения данных для предприятий все еще соответствует закону Мура.
Существует предположение, что в течение нескольких следующих лет будет сгенерировано больше данных, чем было создано за всю историю человечества! Не отвлекаясь на детали, можно согласиться, что серверы под управлением операционной системы Windows играют важную роль в индустрии систем хранения данных для предприятий. Таким образом, знание аспектов систем хранения данных на базе Windows оказывается крайне важным, и эта книга представляет собой скромную попытку предоставить необходимые сведения.
Понятия «Windows NT» и «семейство Windows Server» в данной книге равнозначны. Оба термина упоминаются при рассмотрении возможностей, которые доступны одновременно в операционных системах Windows NT 4.0, Windows 2000 и Windows Server 2003. В случае необходимости указывается определенная версия операционной системы, например Windows 2000 или Windows Server 2003.
Книга предназначена для читателей, хорошо знакомых с компьютерными системами и индустрией информационных технологий и желающих расширить познания в области систем хранения данных и архитектуры Windows NT, непосредственно связанной с подобными системами; Другими словами, в книге описываются корпоративные системы хранения данных, в то время как системам потребительского уровня уделяется гораздо меньше внимания. В книге делается попытка поддержать интересы специалистов по программному обеспечению, мало знакомых с технологиями хранения данных, и специалистов по системам хранения данных, которые стремятся получить дополнительные знания по архитектуре обработки и хранения данных в Windows NT.
Еще одна цель книги – донести до читателя мысль, что каждая новая версия операционной системы Windows NT привносит на рынок массу новых возможностей для корпоративных систем хранения данных.
Следует отметить ряд особенностей, касающихся содержания книги.
Удобное изложение информации.
Предоставление подробных сведений с соблюдением прав на интеллектуальную собственность. В книге рассматривается несколько инструментов для разработки программного обеспечения (SDK), которые доступны только после подписания соглашения о неразглашении (nondisclosure agreement – NDA). Таким образом, описание этих инструментов ограничено до информации, которая уже представлена в открытых источниках. Здесь выбран осторожный подход к этому вопросу и приводится только открытая информация, которая, впрочем, тщательно проработана, а к данным, трудным для понимания, добавлены необходимые объяснения.
Предоставление информации о следующих версиях операционных систем Windows NT, а не только устаревших сведений об уже выпущенных системах. Компания Microsoft намерена уделить серьезное внимание реализации поддержки корпоративных систем хранения данных в следующих версиях Windows NT. Безусловно, это несколько рискованный подход, так как планы могут измениться. Поэтому в книге всегда явно указывается, что та или иная описываемая технология относится к будущим версиям Windows NT.
Небольшое отступление. В книге описывается ряд возможностей, которые будут представлены в следующих версиях Windows NT. Компания Microsoft без устали твердит, что гарантированный метод получения информации о возможностях операционной системы – это знакомство с ней после выпуска финальной версии. Хотя такого рода информация широко обсуждается на выставках и семинарах, нет никакой гарантии, что эти возможности вообще появятся в финальной версии. Подобные предположения не должны становиться основой для конкретных планов.
Каждый читатель, который не понял всей серьезности этого предостережения, должен изучить (а не только прочитать) его еще раз.
В начале книги приводится обзор архитектуры Windows NT, включая подсистему ввода-вывода и архитектуру драйверов подсистемы хранения данных. В главе 1 делается попытка кратко изложить огромный объем информации, которая рассматривалась в серии книг
В главе 2 описывается технология хранилищ данных, непосредственно подключенных к серверу (direct-attached storage), которая исторически была первой реализацией систем хранения данных.
В главе 3 рассматривается технология NAS (Network-Attached Storage – сетевое устройство хранения данных), которая стала следующим шагом на пути эволюции корпоративных систем хранения данных. Особое внимание уделяется стеку сетевых протоколов Windows NT.
В главе 4 описываются системы SAN (Storage Area Network – сети хранения данных) на основе технологии Fibre Channel. Эта технология продолжает развиваться и по-прежнему составляет конкуренцию таким новшествам, как iSCSI и InfiniBand.
В главе 5 освещаются базовые концепции резервного копирования и восстановления данных. Кроме того, затрагиваются вопросы, связанные с новой службой теневого копирования дисковых томов, которая впервые появилась в операционной системе Windows Server 2003.
В главе 6 рассматриваются файловые системы и виртуализация дисков в контексте Windows NT. Кроме того, описываются кластерные файловые системы.
Глава 7 посвящена управлению системами хранения данных как в рамках общих аспектов, так и в контексте Windows NT.
В главе 8 рассматриваются новые технологии хранения данных (особое внимание уделяется IP-хранилищам, которые являются попыткой связать воедино системы хранения данных и сети на базе протокола IP), а также технология InfiniBand.
В главе 9 описываются методы реализации отказоустойчивых служб (включая защиту и восстановление целостности данных, а также балансировку нагрузки) средствами Windows Server 2003 и Windows 2000 на основе многопортовых парных адаптеров локальной шины (НВА), установленных на серверах Windows NT. Кроме того, приводятся более простые методы обеспечения отказоустойчивости и повышения быстродействия систем, например массивы RAID.
Хотя глава 10 посвящена различным технологиям, она организована в соответствии с разными версиями Windows NT. Независимо от технологий хранения данных, которые рассматриваются в каждой конкретной главе, глава 10 основана на хронологическом порядке появления технологий в операционных системах Windows NT 4.0, Windows 2000, Windows Server 2003. Особое внимание уделяется ожидаемым функциям в следующих версиях Windows.
Надеюсь, книга вам понравится.
Отзывы и предложения присылайте по адресу: dilipnSniriva.com.
Дайлип С. Наик
Редмонд, Вашингтон
dilipn@niriva.com
Благодарности
Предприятие такого масштаба никогда не могло бы быть завершено в одиночку. Я искренне благодарен всем, кто помог мне в этой работе.
Моим редакторам Карен Гетман (Karen Gettman) и Эмили Фрей (Emily Prey). Они постоянно поддерживали мою веру в собственные силы, когда я стремился придерживаться графика и старался передать свои идеи в корректной и доступной форме.
Тому Кларку (Tom Clark), который очень помог при реализации идеи этой книги, а также оказал содействие в других вопросах.
Техническим рецензентам Джеймсу Андерсону (James Anderson), Элен Бек Гарднер (Ellen Beck Gardner), Роберту Грисволду (Robert Griswold), Барине Хаммонд (Varina Hammond),. Милану Мерхару (Milan Merhar), Бобу Сниду (Bob Snead) и Ричарду Вилеру (Richard Wheeler), которые опознали бриллиант в куске необработанной породы и помогали шлифовать его до тех пор, пока он не приобрел вид, вполне отвечающий своему назначению.
Редактору Лори МакГайр (Laurie McGuire).
Редактору тиражирования Стефани Гиберт (Stephanie Hiebert).
Джеффу Голднеру (Jeff Goldner) и Каран Мехра (Karan Mehra) из компании Microsoft, которые предоставили бесценную информацию.
И наконец, но не в последнюю очередь, моей семье: жене Варше (Varsha), которая несколько месяцев мирилась с моей работой за портативным компьютером IBM Thinkpad, сыну Нихару (Nihar) и дочери Рити (Riti), которые терпели странного папу, приносившего портативный компьютер на игры по футболу и бейсболу, а также на практические занятия.
Спасибо всем вам!
Ждем ваших отзывов!
Вы, уважаемый читатель, и есть главный критик и комментатор этой книги. Мы ценим ваше мнение и хотим знать, что было сделано нами правильно, что можно было сделать лучше и что еще вы хотели бы увидеть изданным нами. Нам интересно услышать и любые другие замечания, которые вам хотелось бы высказать в наш адрес.
Мы ждем ваших комментариев и надеемся на них. Вы можете прислать нам бумажное или электронное письмо либо просто посетить наш Web-сервер и оставить свои замечания там. Одним словом, любым удобным для вас способом дайте нам знать, нравится или нет вам эта книга, а также выскажите свое мнение о том, как сделать наши книги более интересными для вас.
Посылая письмо или сообщение, не забудьте указать название книги и ее авторов, а также ваш обратный адрес. Мы внимательно ознакомимся с вашим мнением и обязательно учтем его при отборе и подготовке к изданию следующих книг. Наши координаты:
E-mainame = "note" infoQwilliamspublishing.com
WWW:http://www.williamspublishing.com
Адреса для писем: из России:115419, Москва, а/я 783
из Украины:03150, Киев, а/я 152
Глава 1
Знакомство с Windows NT и драйверами устройств хранения данных
В этой главе рассматриваются драйверы устройств Windows NT, драйверы фильтрации и стек драйверов устройств хранения данных для семейства Windows Server. Приведенных сведений достаточно для того, чтобы познакомить неискушенного читателя с особенностями подсистемы ввода-вывода операционной системы Windows NT, а также структуры драйверов устройств хранения данных. Основное внимание уделяется ключевым понятиям, которые широко рассматриваются в книге, например групповому вводу-выводу (multipath I/O), функции SIS (Single Instance Storage) в службах удаленной установки (Remote Installation Services – RIS), точкам переопределения Windows NT (reparse points) и службам удаленного хранения Windows (Remote Storage Services – RSS).
Если быть более точным, то эта глава
Основное внимание в этой главе уделяется Windows NT и архитектуре драйверов в контексте устройств хранения данных. Возможности Windows NT и архитектура драйверов, которые не касаются устройств хранения, если и рассматриваются, то очень кратко.
В разделах 1.1 и 1.2 предоставлена терминология, которая будет часто использоваться на протяжении всей книги. В этих разделах приводятся такие термины, как
1.1 Режимы ядра и пользователя Windows
В этой книге регулярно используются термины
Система Windows NT проектировалась, как переносимая операционная система, в которой весь код, зависимый от процессора и аппаратного обеспечения, изолирован в модуле, называемом
Архитектура Intel х86 поддерживает четыре режима работы: реальный[1], виртуальный х86, управления системой и защищенный.
В
Рис. 1.1. Уровни привилегий архитектуры Intel х86
(NTVDM). Необходимость запуска приложений DOS под управлением Windows NT возникает все реже и реже, поэтому роль подсистемы NTVDM со временем становится все менее важной.
Далее представлены некоторые функциональные возможности Windows NT для архитектуры х86.
Всей памятью можно управлять (выделять, считывать и записывать) посредством логических единиц, которые называются
Каждая страница памяти имеет связанный с ней тег, который определяет возможность чтения или записи этой страницы, а также уровень привилегий, необходимых для чтения и записи. Эта возможность предназначена для защиты пользовательских процессов друг от друга и для защиты системных кода и данных от пользовательских процессов. Обратите внимание, что системный код, выполняемый в режиме ядра, не защищен от другого кода, который выполняется в режиме ядра.
■ Страницы памяти, которые содержат код (в отличие от данных), могут быть отмечены как предназначенные только для чтения пользовательскими процессами и кодом на уровне ядра.
Приложения, которые выполняются в пользовательском режиме, получают доступ к службам ядра Windows NT, вызывая специальные инструкции, допускающие управляемый переход в режим ядра и обратно в пользовательский режим, как только запрос в режиме ядра будет выполнен.
1.2 Процесс, контекст процесса и потоки
В Windows NT несколько процессов могут существовать одновременно; но только один процесс выполняется центральным процессором в определенный момент времени. Обратите внимание: драйверы вообще и драйверы систем хранения данных в частности не создают собственных процессов. Операционная система создает несколько процессов для своих нужд, а также определенные процессы в ответ на пользовательские команды, например когда пользователь запускает приложение, такое, как Microsoft Word или Microsoft Excel. Если драйвер вызывается во время работы процесса, считается, что он работает в контексте вызывающего процесса.
Каждый поток связан с объектом потока, поддерживаемым диспетчером объектов. Информация, которая содержится в объекте, включает в себя данные о первичном центральном процессоре в многопроцессорных системах, состояние потока (т.е. выполняется ли поток, или готов к выполнению, или заблокирован в процессе ввода-вывода), а также другие параметры потока.
Поток может работать в пользовательском режиме и в режиме ядра. Потоки в режиме ядра могут создаваться только структурами, работающими в этом режиме, например драйверами устройств, и они всегда выполняются в режиме ядра. Потоки пользовательского режима обычно выполняются именно в этом режиме, кроме тех случаев, когда это происходит в режиме ядра после запроса к службе Windows NT, как уже отмечалось в разделе 1.1.
1.3 Архитектура Windows NT
Операционная система Windows NT проектировалась как модульная, многоуровневая архитектура, поддерживающая расширения за счет добавление новых функций. Архитектура позволяет добавлять поддержку новых устройств и новых возможностей, например шифрующей файловой системы (EFS). Архитектура системы позволяет добавлять поддержку приложений, которые основаны на других операционных системах, например OS/2 или POSIX. Конечно, обе эти системы более важны с исторической точки зрения, но они являются хорошим примером мЬдульной расширяемой архитектуры.
На рис. 1.2 показана высокоуровневая архитектура Windows NT. Как уже отмечалось во вступительном разделе, термин
Далее в этом разделе рассматриваются различные компоненты, показанные на рис. 1.2. Обратите внимание на линию, которая разделяет режим ядра и пользовательский режим. Важнейшие различия между этими режимами уже рассматривалась ранее в главе.
Рис. 1.2. Архитектура Windows NT
Режим ядра содержит все привилегированные процессы, которые выполняются на уровне 0 архитектуры Intel х86. Режим ядра Windows NT состоит из трех основных подсистем.
Уровень аппаратных абстракций?
Ядро Windows NT.
Выполняемый модуль Windows NT.
В следующих трех разделах эти компоненты рассматриваются более подробно.
высокого уровня. Это позволяет создавать высокоуровневые компоненты, не зависящие от аппаратной архитектуры. Ниже описаны функциональные возможности, которые цредоставляет уровень аппаратных абстракций.
Интерфейс службы таймера, благодаря которому выполняемый модуль Windows NT абстрагируется от функций аппаратного обеспечения таймера нижнего уровня.
Поддержка ввода-вывода в контексте системной шины и прямого доступа к памяти (direct memory access – DMA). Уровень аппаратных абстракций выполняет трансляцию данных между внешней шиной и информацией об адресации Windows NT. Кроме того, предоставляется поддержка для информации о конфигурации шины.
Поддержка прерываний путем связывания (отображения) внешних прерываний с запросами прерываний (IRQ) Windows NT. Кроме того, предоставляется маскировка/демаскировка служб для прерываний.