Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie, которые обеспечивают правильную работу сайта. Благодаря им мы улучшаем сайт!
Принять и закрыть

Читать, слущать книги онлайн бесплатно!

Электронная Литература.

Бесплатная онлайн библиотека.

Читать: Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003 - Наик Дайлип на бесплатной онлайн библиотеке Э-Лит


Помоги проекту - поделись книгой:

Наик Дайлип Системы хранения данных в Windows

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

Введение

Гордон Мур (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 делается попытка кратко изложить огромный объем информации, которая рассматривалась в серии книг Inside Windows NT (издательство Microsoft Press). Глава 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. Читателю рекомендуется использовать справочные материалы, которое указаны в конце книги, чтобы получить достаточный объем знаний о структуре Windows NT для написания различных драйверов, включая драйвера системных фильтров.

Основное внимание в этой главе уделяется Windows NT и архитектуре драйверов в контексте устройств хранения данных. Возможности Windows NT и архитектура драйверов, которые не касаются устройств хранения, если и рассматриваются, то очень кратко.

В разделах 1.1 и 1.2 предоставлена терминология, которая будет часто использоваться на протяжении всей книги. В этих разделах приводятся такие термины, как режим ядра (kernel mode), пользовательский режим (user mode) и контекст процесса (process context). После вступительных разделов в главе рассматривается стек подсистемы хранения данных Windows, включая уровни файловых систем, управления томами, классов и портов. Кроме того, кратко рассматриваются драйверы фильтрации. В завершение приводится описание типичного запроса ввода-вывода, а также рассматривается обработка этого запроса на каждом из уровней стека ввода-вывода подсистемы хранения данных.

1.1 Режимы ядра и пользователя Windows

В этой книге регулярно используются термины режим ядра (kernel mode) и пользовательский режим (user mode). Перед определением этих терминов рассмотрим историю их происхождения.

Система Windows NT проектировалась, как переносимая операционная система, в которой весь код, зависимый от процессора и аппаратного обеспечения, изолирован в модуле, называемом уровнем аппаратных абстракций (hardware abstraction layer – HAL). Этот модуль рассматривается в разделе 1.3.1 далее в главе. Хотя Windows NT действительно раньше поддерживала несколько архитектур центральных процессоров, включая PowerPC и Alpha, современные версии Windows NT поддерживают только процессоры компании Intel и совместимые с ними модели (например, компании AMD). Некоторые базовые особенности архитектуры процессоров Intel рассматриваются далее в этом разделе, причем вместо описания всех возможностей архитектуры х86 затрагиваются лишь наиболее важные аспекты.

Архитектура Intel х86 поддерживает четыре режима работы: реальный[1], виртуальный х86, управления системой и защищенный.

В реальном режиме (real mode) каждый системный процесс имеет неограниченный доступ к первому мегабайту оперативной памяти. При загрузке процессор всегда запускается в реальном режиме. Процессор можно переключить в защищенный режим, установив соответствующий флаг в управляющем регистре; для обратного переключения флаг нужно сбросить. Реальный режим используется для инициализации Windows NT, однако переключение в защищенный режим происходит задолго до запуска приложений. В процессе развития семейства продуктов Windows NT роль реального режима становится все менее значимой. Как только процессор переключается в защищенный режим работы, Windows NT больше не переходит в реальный режим.

Виртуальный режим х86 (virtual х86 mode) предоставляет возможность выполнять несколько приложений реального режима, когда процессор работает в защищенном режиме. Операционная система Windows NT 4.0 поддерживает этот режим с помощью подсистемы NT Virtual DOS Machine


Рис. 1.1. Уровни привилегий архитектуры Intel х86

(NTVDM). Необходимость запуска приложений DOS под управлением Windows NT возникает все реже и реже, поэтому роль подсистемы NTVDM со временем становится все менее важной.

Защищенный режим (protected mode) представляет собой основной режим Windows NT. Он обладает четырьмя рабочими уровнями (рис. 1.1). Ha. уровне 0 (или кольце 0). который чаще всего называется режим ядра (kernel mode), доступны инструкции процессора и функции для обеспечения защиты памяти и работы с виртуальной памятью. Кроме того, на уровне 0 доступны привилегированные инструкции, например для управления регистрами процессора. Операционная система Windows NT не использует уровни (кольца) 1 и 2. Самый нижний уровень привилегий – уровень 3, или пользовательский режим (user mode). – обеспечивает наилучшую защиту, предотвращая доступ системных процессов к коду и памяти другого процесса.

Далее представлены некоторые функциональные возможности Windows NT для архитектуры х86.

Всей памятью можно управлять (выделять, считывать и записывать) посредством логических единиц, которые называются страницами. Дополни тельная информация приводится в разделе 1.3.3.6.

Каждая страница памяти имеет связанный с ней тег, который определяет возможность чтения или записи этой страницы, а также уровень привилегий, необходимых для чтения и записи. Эта возможность предназначена для защиты пользовательских процессов друг от друга и для защиты системных кода и данных от пользовательских процессов. Обратите внимание, что системный код, выполняемый в режиме ядра, не защищен от другого кода, который выполняется в режиме ядра.

■ Страницы памяти, которые содержат код (в отличие от данных), могут быть отмечены как предназначенные только для чтения пользовательскими процессами и кодом на уровне ядра.

Приложения, которые выполняются в пользовательском режиме, получают доступ к службам ядра 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. Как уже отмечалось во вступительном разделе, термин Windows NT используется для описания всех версий операционной системы Windows, основанных на технологии NT. В это семейство входят Windows NT 3. x, Windows NT 4.0, Windows 2000,' Windows XP и Windows Server 2003.

Далее в этом разделе рассматриваются различные компоненты, показанные на рис. 1.2. Обратите внимание на линию, которая разделяет режим ядра и пользовательский режим. Важнейшие различия между этими режимами уже рассматривалась ранее в главе.

Рис. 1.2. Архитектура Windows NT

Режим ядра содержит все привилегированные процессы, которые выполняются на уровне 0 архитектуры Intel х86. Режим ядра Windows NT состоит из трех основных подсистем.

Уровень аппаратных абстракций?

Ядро Windows NT.

Выполняемый модуль Windows NT.

В следующих трех разделах эти компоненты рассматриваются более подробно.

1.3.1 Уровень аппаратных абстракций

Уровень аппаратных абстракций (Hardware Abstraction Layer – HAL) обеспечивает защиту данных за счет управления доступом к аппаратным ресурсам. Это единственный модуль операционной системы Windows NT, который содержит код, зависящий от аппаратного обеспечения (или от архитектуры процессора). Кроме того, для написания уровня аппаратных абстракций иногда применяется язык ассемблера. В целом уровень аппаратных абстракций предоставляет дополнительный уровень абстракции компонентам более

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

Интерфейс службы таймера, благодаря которому выполняемый модуль Windows NT абстрагируется от функций аппаратного обеспечения таймера нижнего уровня.

Поддержка ввода-вывода в контексте системной шины и прямого доступа к памяти (direct memory access – DMA). Уровень аппаратных абстракций выполняет трансляцию данных между внешней шиной и информацией об адресации Windows NT. Кроме того, предоставляется поддержка для информации о конфигурации шины.

Поддержка прерываний путем связывания (отображения) внешних прерываний с запросами прерываний (IRQ) Windows NT. Кроме того, предоставляется маскировка/демаскировка служб для прерываний.



Поделиться книгой:

На главную
Назад