Информатика в техническом университете / Информатика в техническом университете. Телекоммуникации и сети
.pdf
|
8. Архитектура сетевых ОС NetWare |
|||
^®з |
Windows NT Server |
|
NetWare |
|
специального |
|
|
|
|
nOv |
|
NCP-пакеты Н |
|
Файлы |
—-^ H H Шлюз |
1 |
|||
|
Файлы |
|
I |
|
|
|
I |
|
|
|
|
|
I |
|
|
p- |
|
I |
|
|
^1 |
|
|
|
|
" ^ n>x7i NCP-пакетьГ"" |
|||
SMP- |
] - - \ При использовании |
|
||
пакеты |
NetWare |
|||
|
Windows |
специального ПО |
|
|
|
NT-клиент |
клиента от Novell |
|
-клиент |
Рис. 8.26. Схема взаимодействия клиентов с ОС NetWare и Windows NT Server
На рис. 8.26 представлена схема взаимодействия Windows NT-клиентов и NetWare-клиентов (работающих по протоколу IPX) соответственно с ОС NetWare и Windows NT Server, функционирующих в одной сети.
Рассмотрим, как обеспечивается взаимодействие NetWare с ОС UNIX. Для этого можно использовать продукт NetWare NFS 1.2с. Он функщюнирует как совокупность NLM-модулей, устанавливаемых на файловом сервере NetWare (табл. 8.11).
|
Таблица8.]]. NLM-модули NetWare NFS 1.2с, обеспечивающие |
|
1 |
NLM-модуль |
взаимодействие NetWare с UNIX |
Описание |
||
|
NLM NFS Server |
Позволяет UNIX-клиентам работать с файловой |
|
|
системой NetWare как с расширением локальной |
|
|
файловой системы UNIX (поддержка распределен |
|
|
ной файловой системы) |
|
NLM Lock Manager |
Выполняет блокировку записей и файлов NetWa |
|
|
re (в среде NFS) |
NLM File Transfer Protocol (FTP)
NLM NFS NameSpace
NLM Line Printer Daemon
Позволяет FTP-клиентам инициировать вывод файлов на сервер NetWare и читать их с сервера
Позволяет поддерживать на сервере NetWare пространство имен для UNIX
Реализует для UNIX-клиентов механизм пере дачи заданий в очереди печати NetWare. Поль зователи UNIX для доступа к подключенным к NetWare принтерам могут использовать команды UNIX (1р, Ipq, Iprm)
NLM Print Gateway |
Позволяет NetWare-клиентам |
для буферизации |
|
заданий печати на принтерах, подключенных к |
|
|
UNIX, применять команды NetWare (nprint, capture |
|
|
и т. д.) |
1 |
490
8.4. Обеспечение высокой производительности
|
|
|
Окончание табл. 8.11 |
NLM-модуль |
|
Описание |
|
NLMXCONSOLE |
Реализует удаленное администрирование сервера |
||
|
NetWare с любой станции lJNIX-клиента, подцер- |
||
|
живающей VT100, VT220 или X Windows System |
||
UNIX-сервер |
|
|
NetWare |
|
- J |
Принтер |
|
|
_ |
FTP-клиент |
|
Принтер |
NFS-клиент |
|
|
1 |
(распределенная |
|
|
I |
фашювая система)' |
|
|
|
|
|
|
X Windows |
I |
IJ |
|
UNIX-клиент |
КоHcoль-NetWare |
NetWare-клиент |
|
|
|
||
Рис. 8.27. Схема взаимодействия клиентов с ОС NetWare и UNIX
На рис. 8.27 представлена схема взаимодействия (на базе NetWare NFS 1.2с) UNIX-клиентов и NetWare-клиентов соответственно с ОС NetWare и UNIXсервером, функционирующих в одной сети. Так как средство NetWare NFS 1.2с не обеспечивает доступ клиентов NetWare к файловой системе UNIX, то для этой цели можно использовать следующие продукты:
•LAN Workplace или LAN WorkGroup (Novell), обеспечивающие включе ние протокола TCP/IP в стек протоколов PC;
•PC Protocol Services for Solaris (SunSoft), обеспечивающий включение IPX
встек протоколов на UNIX-сервере с ОС Solaris.
8.4. Обеспечение высокой производительности
«Плоская» модель основной памяти
Как уже отмечалось, компилятор Watcom С генерирует код, использующий преимущества архитектуры процессоров. Он использует 32-битовые ближай шие указатели (near pointers) и 4-байтовые целые числа. Использование 32битовых указателей делает концепцию моделей памяти (Tiny, Small, Compact, Medium, Large, Huge и т. д.) во многом ненужной. NLM-модули компилируют ся для непрерывной модели памяти с абсолютной адресацией («плоской» мо дели). 32-битового указателя достаточно для адресации всей доступной памя ти. Кроме того, компилятор генерирует код, вьшолняемый в виртуальном режиме (для NetWare 4.х/5.х). В NetWare 4.х/5.х используется страничная организация памяти.
491
8. Архитектура сетевых ОС NetWare
Таким образом, основная память файлового сервера NetWare интерпрети руется как один большой сегмент, но идентифшщруется для использования NLM с помощью фунюдий распределения. Когда процесс (нить) запрашивает память, ему вьщеляется пул памяти. Этот пул может быть освобожден, но оставлен в пуле процесса, либо освобожден и возвращен в системный пул.
Когда запрашивается память, NetWare использует три массива указателей для определения того, где находится доступная память. Это массивы отсле живают блоки доступной памяти. Первый массив отслеживает блоки с 16-бай товыми приращениями от 16 б до 1024 б каждый. Второй массив отслеживает блоки с 256-байтовыми приращениями. Третий массив указателей отслежива ет блоки, превьппающие 4 кб. Основьшаясь на размере запрошенной NLM-MO- дулем памяти, NetWare выполняет поиск в соответствующем массиве, пока не находит затребованный объем памяти.
В NetWare 4.х/5.х внесены улучшения:
• Когда память вьщеляется и освобождается снова и снова, это может при вести к ее фрагментации, и некоторые блоки будут оставаться неиспользуемы ми. В таких случаях вьшолняется некоторая работа по очистке. Такая «сборка мусора» обеспечивает использование ранее недоступных блоков памяти. В табл. 8.12 перечислены SET-параметры NetWare 4.х/5.х, регулирующие «сбор мусора».
Таблица 8.12. SET-параметры, регулирующие «сбор мусора» в NetWare 4.х/5.х
SET-параметр |
Значение no |
Гранищ>1 |
|
умолчанию |
изменения |
||
|
|||
Garbare Collection |
15 мин |
1 МИН....1 Ч |
|
Interval |
|
|
|
КшпЬег of Frees |
1000 |
100...10000 |
|
for Garbare |
|
||
|
|
Примечания
Определяет максимальный ин тервал времени между «чистка ми» памяти
Определяет минимальное число освобождений памяти для запуска системной программы чистки па мяти
Minimum Free Me |
8000 |
1000... 1000000 |
Определяет минимальный раз |
mory for Garbare |
|
|
мер освобождаемой памяти для за |
Collection |
|
|
пуска программы чистки памяти | |
• Предьщущие версии NetWare имели несколько пулов памяти, с которыми должен был работать программист, создающий NLM-модуль. В NetWare 4.х/5.х он может работать с одним системным пулом. После того, как память будет получена из системного пула, каждый NLM-модуль работает со своим соб ственным пулом памяти, пока память не возвращается в системный пул.
Невытесняющая многозадачность
Обработка, которая встречается в многозадачных сетевых ОС, основыва ется на одной из двух моделей использования центрального процессора (ЦП) -
492
|
|
8.4. Обеспечение высокой производительности |
||||
Задача 1 |
Задача 2 |
Задача 1 |
|
Задача 2 |
||
|
|
иск |
|
|
|
Ожидание |
|
I |
|
. |
. |
. |
|
ЦП |
I Ди' |
ЦП |
||||
|
|
|
ThreadSwitchlI |
|||
Ожидание |
ЦП |
|
|
|
ЦП |
|
|
|
2 |
Ожидание |
|
|
1 Ввод/вывод |
ЦП |
|
I Диск |
|
|
|
(из кэша) |
|
г:1 ЦП |
|
|
|
[ЦП |
|
|
,^ |
2 |
|
1 ThreadSwitcl |
||
ЦП
Ожидание
б
Рис. 8.28. Схемы переключения процессов:
а - для модели с приоритетами; б - для модели без приоритетов
модель с приоритетами и модель без приоритетов (невытесняющая многоза дачность). Большинство многозадачных сетевых ОС, таких, как OS/2 и UNIX, являются системами, где поддерживается модель с приоритетами. Предполо жим, что в одной из этих ОС выполняются две задачи (рис. 8.28, а), причем задача 2 имеет приоритет выше, чем задача 1.
После операции с диском (чтение или запись) ОС активизирует задачу 2, имеющую более высокий приоритет (рис. 8.28, а, точка 7). При этом задача 1 прерьгоается (вытесняется) и переходит в состояние ожидания. Если для зада чи 2 требуется выполнить операцию с диском, то ОС приостановит ее и пере даст управление задаче 1 (рис. 8.28, а точка 2) и т. д.
Многозадачная сетевая ОС NetWare является системой, где поддержива ется модель без приоритетов (невытесняющая многозадачность). Если какаялибо задача (нить) вьшолняет функцию ThreadSwitch, то ОС помещает ее в конец очереди RunList и передает управлеьше другой задаче (рис. 8.28, б точки
Л2).
Всистемах с приоритетами необходимо перед обновлением ресурсов (об ластей основной памяти, записей файлов и т. д.) выполнить их блокировку (рис. 8.29, а точки 7, 2, 5, 4),
Это связано с тем, что задача может быть прервана в любой момент вре мени. Но, во-первых, на блокировку и разблокировку разделяемых ресурсов тратится процессорное время, что снижает производительность системы. Вовторых, при использовании блокировок часто возникают тупиковые ситуации.
Предположим, что задача 1 заблокировала запись 1 какого-либо файла (рис. 8.29, а точка /) и бьша прервана задачей 2. Пусть задача 2, в свою очередь, блокирует запись 2 (точка 2). При попытке заблокировать запись 1 задачей 2 она переходит в состояние ожидания, так как эта запись уже заблокирована задачей 1. Управление передается задаче 1, которая пытается блокировать запись 2 и переходит в состояние ожидания, так как эта запись уже бьша заб-
493
|
|
|
8. Архитектура сетевых ОС NetWare |
|
|
||
|
Задача 1 |
Задача 2 |
Задача 1 |
Задача 2 |
|||
|
ЦП |
|
Ввод/вывод |
ЦП |
Ожидание |
||
|
|
|
Работа |
|
|||
Блокировка |
|
|
|
|
|
||
|
|
с записью 1 |
|
|
|
||
записи 1 |
|
|
|
Работа |
|
|
|
Работа |
|
|
|
|
|
|
|
с записью 1 |
|
|
с записью 2 |
>t |
|
|
|
|
Ожидание ЦП |
Окончание |
|
|
|||
|
работы |
|
|
|
|||
|
|
|
|
с записями 1,2 |
|
|
|
|
|
|
2 |
ThreadSwitch |
|
ЦП |
|
|
|
|
'Блокировка |
|
Ожидание |
||
|
|
|
записи 2 |
Работа |
— |
|
|
|
|
|
КРабота |
|
|||
|
|
|
с записью 1 |
|
|||
|
|
|
с записью 2 |
Работа |
|
|
|
|
|
|
|
с записью 2 |
|
||
|
ЦП |
|
Блокировка |
Окончание |
|
||
|
|
работы |
|
|
|||
Блокировка |
|
записи1 |
с записями 1,2 |
|
|||
4 |
|
ЦП |
ThreadSwitch |
||||
записи |
NJ |
|
|||||
|
Ожидание |
|
|
Ожидание |
|
||
|
|
|
|
|
|
||
|
а |
|
|
|
|
б |
|
Рис. 8.29. Схемы использования разделяемых ресурсов:
а - для модели с приоритетами; б - для модели без приоритетов
локирована задачей 2. Таким образом, ни одна из задач (1 и 2) не может про должить вьшолнение из-за возникшей тупиковой ситуации.
Преимуществом системы с приоритетами является то, что при выполнении операции с диском процессор переключается на выполнение другой задачи.
В NetWare, где поддерживается модель использования процессора без при оритетов, переключение на другую задачу планирует сама программа (NLMмодуль), используя команду ThreadSwitch в подходящий момент, т. е. задача 1 может вьшолнить все требуемые обновления в разделяемых записях 1 и 2, а затем передать управление другой нити с помощью команды ThreadSwitch (рис. 8.29, б). В этом случае нет необходимости использовать блокировки ре сурсов. Это, во-первых, повышает быстродействие системы, а, во-вторых, ус траняет возможность возникновения тупиковых ситуаций.
Недостатком системы без приоритетов является то, что при выполнении операции с диском (чтение в кэш с диска) ОС NetWare не переключает процес сор на вьшолнение другой прикладной задачи. Но этот недостаток компенсиру ется тем, что в NetWare, как правило, используется кэш-память большого раз мера и 90 % запросов на ввод данных удовлетворяется из этого кэша.
494
8.4. Обеспечение высокой производительности
Описанный вьппе механизм невытесняющей многозадачности использовался в NetWare 3.x и 4.x. В NetWare 5.x реализована смешанная стратегия. По умол чанию задача может асинхронно вьггесняться из процессора и оперативной памяти задачей, которая имеет более высокий приоритет. Но программист с помощью специальных API-функций может отметить участок программы, где будет действовать режим невьггесняющей многозадачности.
Тотальная буферизация файлового ввода/вывода
Выше бьша рассмотрена структура ОП файлового сервера NetWare и схе ма формирования кэш-памяти (кэш-буфера). NetWare кеширует данные файла поблочно. Это позволяет файловой системе NetWare поддерживать тесную синхро1шзацию между кэш-буфером и физической дисковой памятью, что по могает обеспечить целостность данных файла и дает большой вьшгрьпп в про изводительности.
Рассмотрим алгоритм работы NetWare с кэш-памятью при чтении и обнов лении блоков данных диска (рис. 8.30). При выполнении функции чтения дан ных из файла сервера ОС NetWare рассчитывает адрес требуемого блока на диске и проверяет, находится ли он в кэше. Если да, то данные пересьшаются из буфера кэша в пул NLM-модуля, выдавшего запрос на чтение. Если требуе мого блока нет в кэше и здесь имеется свободный буфер, то блок читается в этот буфер. Если свободньпс буферов нет, то ОС вьшолняет поиск буфера, кото рый наиболее длительное время не использовался (алгоритм LRU) и перезапи сывает его на диск, если он бьш отмечен как «грязный» (dirty). На место пере записанного буфера читается требуемый блок.
При вьшолнении функции обновления данных какого-либо файла сервера ОС читает при необходимости требуемый блок в кэш-память (см. вьппе), вьшол няет операцию обновления и отмечает этот буфер как «грязный». Обновлен ный буфер попадает на диск не сразу. ОС через определенный интервал време ни запускает системный процесс, который анализирует кэш-память и перезаписьюает «грязные» буфера на диск. Интервал времени, через который запускается системный процесс, регулрфуется с помощью двух SET-парамет- ров (табл. 8.13).
Кэш-память |
|
Диск |
|
|
|
|
Чтение блока |
|
Буфер |
/ |
Буфер |
|
||
|
\ |
^ |
|
Запись «грязных» |
|
Рис. 8.30. Органгоация работы с кэш-памятью
495
|
|
8. Архитектура сетевых ОС NetWare |
|
|
||
|
Таблица 8.13. SET-параметры, регулирующие интервал перезаписи |
|
||||
|
|
«грязных» буферов на диск |
|
|
||
1 SET-параметр |
Значение no |
Границы |
|
Примечания |
|
|
1 Dirty |
Directory |
умолчанию, с |
изменения, с |
Определяет, через какой интервал |
||
0,5 |
0...10 |
|||||
Cache Delay Time |
|
|
времени |
перезаписываются |
на |
|
|
|
|
|
диск «грязные» буфера директо |
||
|
|
|
|
рий, где хранятся записи таблиц |
||
|
|
|
|
DET |
|
|
Dirty |
Disk Cache |
3,3 |
0,1 ... 10 |
Определяет, через какой интервал |
||
Delay Time |
|
|
времени |
перезаписываются |
на |
|
|
|
|
|
диск «грязные» буфера файлов |
| |
|
Упорядочивание и распараллеливание запросов поиска на дисках
В настоящее время наибольшее распространение получили два интерфейса связи контроллера с жестким диском:
ШЕ/АТА и все производные от него интерфейсы Fast АТА-2, Ultra DMA/33 (скорость 16.6 Мб/с),
Fast SCSI-2 (10 Мб/с), Fast/Wide SCSI-2 (20 Мб/с), Ultra SCSI (20 Мб/с), Ultra/Wide SCSI (40 Мб/с), Ultra2 SCSI (80 Мб/с).
ИнтерфейсГОЕподдерживает два канала, к каждому из которых могут под ключаться по два устройства (HARD-диски, CD-ROM и т. д.). Контроллеры IDE/ATA перекладывают выполнение значительной части низкоуровневых за дач на центральный процессор, тем самым снижая общую производительность сервера. Практически все диски с интерфейсомГОЕимеют частоту вращения шпинделя 5400 об/мин, что обеспечивает скорость дисковых операций 3...5 Мб/с.
SCSI-контроллеры (рис. 8.31) сами выполняют большинство низкоуровне вых операций ввода/вьгоода, при этом они оптимизируют запросы к периферий ному оборудованию (лифтовый поиск и др.). Частота вращения шпинделя дис ков SCSI составляет 7200 об/мин, что соотгветствует скорости обмена 4...7 Мб/с.
Компании Seagate и ШМ вьшустили дисководы с частотой вращения 10000 об/мин, установив новую планку производительности (6...9 Мб/с).
HARD-
ДИСК
Контроллер
(цель)
HOST-адаптер Драйвер (инициатор)
Контроллер
(цель)
CD-ROM
Рис. 8.31. Схема подключения устройств по интерфейсу SCSI
496
8.4. Обеспечение высокой производительности
Чередование команд |
Головки |
Диск |
(передача контроллеру |
чтения/записи |
|
нескольких команд) |
|
|
. |
Г3 |
Г"б |
' |
|
|
\-"Ч^ ' |
^ 1 |
||||
\2 |
Н |
' |
— |
Г |
|
J |
|
|
|
|
|
.i |
|
|
|
1 г |
|
|
|
|
|
|
|
Host- |
|
Контроллер |
|||
адаптер |
|
||||
|
|
|
|
|
|
i к |
|
|
|
|
|
1 7 1 |
|
|
|
\' |
|
Т ^ |
Lh |
7 |
1 |
0 |
1 |
^ |
' |
|
|||
|
|
L-LJ |
|
|
|
Блоки считываются по мере передвижения головок чтения/записи
Рис. 8.32. Восходящий (лифтовый) поиск на диске
Для подключения какого-либо устройства по интерфейсу SCSI в расшири тельный слот компьютера (в частности файлового сервера) устанавливается HOST-адаптер (НВА, DCB и т. д.). К HOST-адаптеру можно подключить до 7 контроллеров (2 внутренних и 5 внешних): HARD-диски, CD-ROM, CD-R, прин теры, сетевые адаптеры, сканеры текстов, стриммеры. Обмен данными с под ключенными устройствами вьшолняется в режиме мультиплексирования (т. е. параллельного доступа).
Для HARD-дисков, подключенных по SCSI-интерфейсу, поддерживается вос ходящий поиск (интеллект шины) на аппаратном уровне (рис. 8.32). По запросу прикладной программы драйвер жесткого диска рассчитывает номер цилинд ра, номер поверхности и номер блока, где располагаются требуемые данные, и формирует команду, направляемую HOST-адаптеру.
Рабочие станции взаимодействуют с драйвером жесткого диска файлового сервера по NCP-протоколу. Поэтому на HOST-адаптер может поступить не сколько команд одновременно. В этом случае HOST-адаптер направляет эти команды контроллеру диска (см. рис. 8.32). На рисунке цифрами обозначены номера щшиндров, указанных в командах поиска. Гребенка головок чтения/ записи начинает движение с нулевого цилиндра, и требуемые блоки читаются не в последовательности их указания в командах, а в последовательности их размещения на цилиндрах, т. е. сначала будут считаны блоки, расположенные на 1-м цилиндре, затем на 2-м цилиндре и т. д. В этом случае гребенка головок выступает в роли лифта, цилиндры - в роли этажей, блоки - в роли пассажиров.
Использование этого метода чте1шя данных существенно повышает произ водительность дисковой системы. Действительно, если бы блоки читались в
497
8. Архитектура сетевых ОС NetWare
ТОЙ последовательности, в которой они были указаны в командах, то для этого потребовалось бы 19 перемещений головок (для примера на рис. 8.32). При использовании лифтового поиска для этого потребуется 6 перемещений.
При использовании интерфейса ГОЕ ОС NetWare вьшолняет программное моделирование восходящего поиска, который был рассмотрен вьппе.
Протоколы передачи Packet Burst Protocol и LIP
В штатной конфигуращш NetWare 3.11 каждый переданный кадр квитирует ся принимающей стороной (рис. 8.33). В NetWare 3.12/4.х/5.х используется про токол Packet Burst Protocol, позволяющий без квитирования читать/писать дан ные объемом до 64 кб. Размер окна (количество кадров, передаваемьпс без квитирования) является переменным и зависит от объема передаваемых дан ных и максимального размера пакета. Так, при передаче данных объемом 64 кб при размере пакета 512 б потребуется 128 кадров, а при размере пакета 1500 6 - 4 4 кадра. В квитанции на окно указываются номера кадров, которые были приняты с ошибкой. Передающая станция должна повторить передачу этих ошибочных кадров. При увеличении числа кадров, принятых с ошибкой, NetWare автоматически уменьшает размер окна. Использование протокола Packet Bm*st Protocol позволяет существенно уменьшить трафик сети и тем самым повысить производительность системы.
В NetWare 3.11 протокол Packet Burst Protocol является нештатным сред ством и его следует инициировать на PC (BNETx.COM) и файловом сервере (PBURST.NLM). В NetWare 3.12/4.х/5.х этот протокол включается автомати чески. Его нельзя вьпслючить на сервере (для NetWare 3.12/4.х/5.х), но можно отключить для отдельной PC. Чтобы включить или отключить этот протокол на PC, в конфигурационный файл (например NET.CFG) необходимо добавить
строку
РВ BUFFERS = п,
где п = О - 10 - число буферов (а не размер окна), вьщеленных на PC. Если указано и = О, то протокол Packet Bm'st Protocol отключается для этой PC.
WS |
FS |
|
|
Кадры |
Квитанции |
|
|
v.S.ll |
|
|
|
V.3.12, |
Ni |
Jid |
|
4.x, 5.x |
|||
Номер7кадра, |
|||
|
|
||
|
переданного с ошибкой |
||
Рис. 8.33. Квитирование кадров
498
8.5. Обеспечение надежности
Если при согласовании максимальной длины пакетов, передаваемых между PC и файловым сервером, сервер обнаруживает на своем пути маршрутизатор и он не поддерживает протокол LIP (Large Internet Packet), то максимальная длина этих пакетов будет равна 576 б. Использование протокола LIP позволяет устранить этот недостаток и увеличить максимальный размер передаваемого пакета.
Для использования протокола LIP в NetWare 3.11 необходимо на PC загру зить модуль BNETx.COM, на файловом сервере - LIPX.NLM. В NetWare 3.12/4.Х/5.Х можно сбросить признак применения LIP-протокола с помощью SET-параметра
ALLOW LIP = OFF (для NetWare 4.х/5.х) или
0FF5 (для NetWare 3.12) файлового сервера или параметра
LARGE INTERNET PACKETS = OFF
в разделе NetWare DOS Requester файла NET.CFG на PC.
Максимальная длина пакета обмена с маршрутизатором устанавливается SET-параметром
MAXIMUM PHYSICAL RECEIVE PACKET SIZE = размер файлового сервера и параметром
LIP START SIZE = размер
в разделе NetWare DOS Requester файла NET.CFG на рабочей станции.
Для сетей Token Ring и ARCnet этот максимальный размер пакета равен 4202 байтов, для сетей Ethernet - 1500 б. Эти размеры должны бьггь также установлены на всех маршрутизаторах сети.
8.5. Обеспечение надежности
NetWare обеспечивает надежное хранение данньЕс на файловом сервере. Фирма Novell условно разделила соответствующие средства поддержки на дежности на три уровня защиты SFT (System Fault Tolerance): SFT-I, SFT-II, SFT-III.
Первый уровень защиты SFT-I
Первый уровень защиты SFT-I включает следующие решения:
•дублирование таблиц DET- и FAT-тома,
•проверку записи на диск последующим чтением,
•динамическую переадресацию блоков (Hot Fix). Рассмотрим эти решения подробнее.
499
