6. Борьба сетевых операционных систем за корпоративный рынок

6.1. Что такое сетевая операционная система

Прежде, чем приступить к обсуждению вопросов о положении на рынке сетевых операционных систем и о проблеме их выбора, надо договориться о том, что собственно понимается под термином "сетевая операционная система". Одни считают, что это операционная система со встроенными сетевыми функциями, позволяющим пользователям совместно использовать ресурсы сети. Другие полагают, что сетевая операционная система - это просто набор сетевых служб, способных согласованно работать в общей операционной среде. При этом не имеет особого значения, входит ли эта служба в состав дистрибутива операционной системы или приобретена отдельно, поставляется ли она в виде дополнительного динамически загружаемого модуля ОС или в виде обычного приложения, разработана ли данная служба компанией-производителем ОС или какой-либо третьей фирмой. В многозначности термина "сетевая ОС" нет ничего страшного, важно только каждый раз, употребляя его отдавать себе отчет, что под этим понимается.

Каждая сетевая служба предоставляет пользователям сети некоторый вид сервиса, как правило, связанный с доступом к ресурсам сети. Например, файловый сервис - обеспечивает доступ пользователей сети к разделяемым файлам сети, факс- и принт-сервис - доступ к принтеру и факсу соответственно, сервис удаленного доступа - позволяет пользователям, связанным с основной сетью коммутируемыми каналами, получать доступ ко всем ресурсам сети, сервис электронной почты - предоставляет пользователям сети возможность обмениваться сообщениями.

Среди сетевых служб можно выделить такие, которые в основном ориентированы не на простого пользователя, а на администратора. Такие службы необходимы для организации правильной работы сети в целом, например, служба администрирования учетных записей о пользователях DomainUserManager в WindowsNT, которая позволяет администратору вести общую базу данных о пользователях сети. Более прогрессивным является подход с созданием централизованной справочной службы, или по-другому службы каталогов, которая предназначена для ведения базы данных не только обо всех пользователях сети, но и обо всех ее программных и аппаратных компонентах. В качестве примеров службы каталогов часто приводятся NDS компании Novell и StreetTalk компании Banyan. Другими примерами сетевых служб, предоставляющих сервис администратору, являются служба мониторинга сети, позволяющая захватывать и анализировать сетевой трафик, служба безопасности, в функции которой может входить в частности выполнение процедуры логического входа с проверкой пароля, служба резервного копирования и архивирования.

Если сетевые службы встроены в операционную систему, то есть рассматриваются как неотъемлемые ее части, то такая операционная система называется сетевой. Например, сетевая ОС WindowsNT, Unix, NetWare, OS/2 Warp. Все внутренние механизмы такой операционной системы оптимизированы для выполнения сетевых функций.

Другой вариант реализации сетевых служб - объединение их в виде некоторого набора (оболочки), при этом все службы такого набора должны быть между собой согласованы, то есть в своей работе они могут обращаться друг к другу, могут иметь в своем составе общие компоненты, например, общую подсистему аутентификации пользователей или единый пользовательский интерфейс. Для работы оболочки необходимо наличие некоторой локальной операционной системы, которая бы выполняла обычные функции, необходимые для управления аппаратурой компьютера, и в среде которой выполнялись бы сетевые службы, составляющие эту оболочку. Примером сетевой оболочки служат, например, LANServer, LANManager.

Естественно, что оболочка должна строится с учетом специфики той операционной системы, над которой она будет работать. Так LANServer, например, существует в различных вариантах: для работы над операционными системами VMS, VM, OS/400, AIX, OS/2.

Сетевые оболочки часто подразделяются на клиентские и серверные. Поскольку при реализации любого сетевого сервиса естественно возникает источник запросов (клиент) и исполнитель запросов (сервер), то и любая сетевая служба содержит в своем составе две несимметричные части - клиентскую и серверную. Оболочка, которая преимущественно содержит клиентские части сетевых служб называется клиентской. Например, типичным набором программного обеспечения рабочей станции в сети NetWare является MSDOS с установленной над ней клиентской оболочкой NetWare, состоящей из клиентских частей файлового сервиса и сервиса печати, а также компоненты, поддерживающие пользовательский интерфейс.

Серверная сетевая оболочка, примерами которой могут служить тот же LANServer и LANManager, а также NetWareforUnix, FileandPrintServiceforNetWare, ориентирована на выполнение серверных функций. Серверная оболочка, как минимум содержит серверные компоненты двух основных сетевых сервисов - файлового сервиса и печати, именно такой набор серверов реализован в упомянутых выше NetWareforUnix и FileandPrintServiceforNetWare. Некоторые же оболочки содержат настолько широкий набор сетевых служб, что их называют сетевыми операционными системами. Так, ни один обзор сетевых операционных систем не будет достаточно полным, если в нем отсутствует информация о LANServer, LANManager, ENS, являющихся сетевыми оболочками.

С одним типом ресурсов могут быть связаны разные сервисы, отличающиеся протоколом взаимодействия клиентских и серверных частей. Так, например, встроенный файловый сервис в WindowsNT реализует протокол SMB, используемый во всех ОС компании Microsoft, а дополнительный файловый сервис, входящий в состав оболочки FileandPrintServiceforNetWare для этой же WindowsNT, работает по протоколу NCP, "родному" для сетей NetWare. Кроме того, в стандартную поставку WindowsNT входит сервер FTP, реализующий файловый сервис Unix-систем. Ничто не мешает приобрести и установить для работы в среде WindowsNT и другие файловые сервисы, такие, например, как NFS, кстати имеющий несколько реализаций, выполненных разными фирмами. Наличие нескольких видов файлового сервиса, позволяет работать в сети приложениям, разработанным для разных операционных систем.

Сетевые оболочки создаются как для локальных операционных систем, так и для сетевых операционных систем. Действительно, почему бы не дополнить набор сетевых служб, встроенных в сетевую ОС, другими службами, составляющими некоторую сетевую оболочку. Например, сетевая оболочка ENS (EnterpriseNetworkServices) - содержащая базовый набор сетевых служб BanyanVines, может работать над сетевыми ОС Unix и NetWare (конечно, для каждой из этих операционных систем имеется соответствующий вариант ENS).

Существует и третий способ реализации сетевой службы - в виде отдельного продукта. Например, сервер удаленного управления WinFrame - продукт компании Citrix, предназначен для работы в среде WindowsNT, он дополняет возможности встроенного в WindowsNT сервера удаленного доступа RemoteAccessServer. Аналогичную службу удаленного доступа для NetWare также можно приобрести отдельно, купив программу NetWareConnect.

С течением времени сетевая служба может получить разные формы реализации. Так, например, компания Novell планирует поставлять справочную службу NDS, первоначально встроенную в сетевую ОС NetWare, для других ОС, для чего эта служба будет переписана в виде отдельных продуктов, каждый из которых будет учитывать специфику соответствующей ОС. Уже имеются версии NDS для работы в средах SCOUnix и HP-UX, а к концу года ожидаются версии для Solaris 2.5 и WindowsNT. А справочная служба StreetTalk уже давно существует и в виде встроенного модуля сетевой ОС BayanVines, и в составе оболочки ENS, и в виде отдельного продукта для различных операционных систем.

Таким образом, выбор сетевой операционной системы сводится к анализу возможностей всей совокупности сетевых служб (не только встроенных в ОС), способных работать в этой операционной среде. Насколько функционально полон этот набор, насколько он удовлетворяет требованиям пользователей и администраторов сети по производительности, по удобству использования, по безопасности - от всего этого и зависит выбор сетевой операционной системы.

6.2. Критерии выбора корпоративной ОС

Сетевые ОС могут быть разделены на две группы: масштаба отдела и масштаба предприятия (корпоративные ОС). От операционной системы отдела требуется, чтобы она обеспечивала некоторый набор сетевых сервисов, включая разделение файлов, приложений и принтеров. Она также должна обеспечивать свойства отказоустойчивости, такие как зеркальное отображение серверов и зеркальное отображение дисков. Обычно сетевые ОС отделов более просты в установке и управлении по сравнению с сетевыми ОС предприятия, но у них меньше функциональных свойств, они меньше защищают данные и имеют более слабые возможности по взаимодействию с другими типами сетей, а также худшую производительность. К числу наиболее популярных ОС для сетей отделов и рабочих групп могут быть отнесены ОС NetWare 3.x, PersonalWare, ArtisoftLANtastic.

В качестве корпоративных операционных систем чаще всего называют такие сетевые ОС, как BanyanVines, NovellNetWare 4.x, IBMLANServer, MicrosoftLANManager и WindowsNTServer, SunNFS, SolarisUnix и многие другие ОС семейства Unix.

Среди основных требований, которым должна отвечать корпоративная ОС можно указать следующие:

Ниже некоторые из этих требований обсуждаются более подробно.

6.2.1. Поддержка многопроцессорности и многонитевости

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

Все популярные ОС корпоративного уровня: BanyanVines, NovellNetWare 4.x, IBMLANServer, MicrosoftWindowsNTServer, SunNFS, SolarisUnix, AIX, HP-UX - поддерживают мультипроцессорную обработку.

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

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

Кроме повышения производительности, мультипроцессорность используется для обеспечения надежности за счет процессорной избыточности - отказ одного процессора снижает производительность, но не вызывает отказа системы. Однако из того, что ОС является мультипроцессорной вовсе не следует, что она обязательно поддерживает резервирование на уровне процессоров. Так, например, хотя в WindowsNT реализовано симметричное мультипроцессирование, при отказе одного из процессоров система останавливается и требует перезапуска.

Следует иметь ввиду, что разные ОС на одной и той же аппаратной платформе могут показать различную степень масштабируемости. В данном случае масштабируемость характеризуется тем, насколько линейно зависит производительность от числа процессоров. Известно, что наилучшей масштабируемостью обладают операционные системы семейства Unix, например, ОС Solaris демонстрировала линейный рост производительности при увеличении числа процессоров до 64.

Летом этого года было сообщено, что последняя корпоративная редакция WindowsNTServer 4.0 EnterpriseEdition будет стандартно поддерживать 8-процессорные SMP-конфигурации, но что OEM-производители смогут предлагать собственные изделия с большим числом процессоров. К сожалению нам не удалось получить количественные данные о масштабируемости новой версии, поэтому приводим результаты тестирования мультипроцессорных версий WindowsNT и NetWare, взятые из журнала DataCommunications годичной давности (рисунок 6.1).

Тестирование проводилось путем измерения числа транзакций, выполненных в минуту. В качестве приложения была выбрана СУБД Oracle, поскольку это типичное приложение, для которого может потребоваться мультипроцессорная платформа. Источником запросов являлись 32 клиента, работающих на ПК. В качестве сервера был выбран Tricord, имеющий следующую конфигурацию: 6 Pentium-процессоров, 1 Гб памяти, 24 Гб дисковой памяти. Измерения проводились для конфигураций с 2, 4 и 6 процессорами. За единицу производительности принято значение максимальной производительности, показанное в эксперименте.

Рис. 6.1.

Из рисунка видно, что ОС NetWare показала хорошую масштабируемость, в то время как производительность WindowsNT с увеличением числа процессоров росла очень несущественно: при переходе с 2 процессоров к 4 она выросла только на 5%, а при переходе с 4 к 6 - на 4%. (Конечно, WindowsNT могла показать гораздо лучшие результаты, если бы в качестве базы данных был выбран MicrosoftSQLServer.)

Сравнивая возможности мультипроцессирования WindowsNT и NetWare, следует отметить также, что в то время как для приложений WindowsNT совершенно не важно, будут ли они выполняться на компьютере с одним или несколькими процессорами, приложения NetWare для того, чтобы иметь возможность выполняться в мультипроцессорной среде NetWare, должны быть написаны специальным образом, то есть уже существующие однопроцессорные приложения необходимо переписывать заново.

6.2.2. Не только файловый сервер, но и сервер приложений

Для того, чтобы ОС подходила на роль сервера приложений, она должна поддерживать несколько популярных универсальных API таких, которые позволяли бы, например, выполняться в среде этой ОС приложениям UNIX, Windows, MS-DOS, OS/2. Эти приложения должны выполняться эффективно, а это означает, что в данная ОС должна поддерживать многонитевую обработку, вытесняющую многозадачность, мультипроцессирование и виртуальную память. Сервер приложений должен базироваться на мощной аппаратной платформе (мультипроцессорные системы, часто на базе RISC-процессоров, специализированные кластерные архитектуры).

Учитывая все это, Unix и WindowsNT можно отнести к хорошим серверам приложений, а NetWare - только с большими оговорками. Действительно, сервер NetWare разрабатывался так, чтобы минимизировать среднее время доступа к данным на диске, что делает наиболее целесообразным его использование в качестве специализированного файл-сервера. Ради высокой производительности файловых операций разработчики пожертвовали некоторыми другими полезными свойствами, необходимыми для сервера приложений.

Так, в NetWare планирование процессов осуществляется в соответствии с алгоритмом невытесняющей многозадачности. Это означает, что каждое приложение берет на себя функции по распределению процессорного времени. Для этого в программах, написанных для выполнения в среде NetWare, должны быть предусмотрены специальные операторы, с помощью которых они по своей инициативе должны отдавать управление операционной системе. Такие программы, написанные с использованием специализированного прикладного программного интерфейса NetWare, называются загружаемыми модулями (NLM). Таким образом, для того, чтобы приложение могло быть выполнено на сервере NetWare, оно должно быть разработано в виде NLM. Приложения для NetWare нужно писать тщательно, осознавая последствия их совместной работы на сервере, чтобы одно приложение не подавляло другие из-за слишком интенсивного захвата процессорного времени. NLM, который слишком долго не отдает управление, может дезорганизовать работу сервера. Все это требует от разработчика приложений для NetWare высокой квалификации.

Универсальные прикладные программные интерфейсы в NetWare отсутствуют. Это затрудняет выполнение уже имеющихся и разработку новых приложений. Следует учесть, однако, что чрезвычайная популярность NetWare привела к тому, что к настоящему моменту имеется богатейший выбор программного обеспечения для NetWare.

Специализированность NetWare заключается также и в том, что все приложения выполняются в 0-ом кольце защиты процессора, так же как выполняются все модули ядра NetWare. Другими словами, каждое приложение NetWare можно считать частью операционной системы. Любое некорректно разработанное приложение может испортить код ядра. Отсюда следует, что к приложениям NetWare должны предъявляться такие же высокие требования по надежности и качеству исполнения, что и к модулям операционной системы.

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

Как уже было сказано, компьютер, на котором установлен сервер NetWare, не может быть использован для запуска обычных приложений. Для маленьких сетей, в которых каждый компьютер на счету, это, возможно и является недостатком, однако гораздо чаще администратор сети, не зависимо от того, какая операционная система установлена на файл-сервере, при возникновении малейшей возможности стремится разгрузить его от выполнения всех других системных и пользовательских приложений. Такая изоляция сервера от конечных пользователей повышает безопасность хранимых на сервере данных и надежность системы в целом.

Все выше перечисленные особенности ОС NetWare, связанные с ее специализированностью, делают эту операционную систему не очень хорошимсервером приложений.

Но поскольку необходимость в наличии сервера приложений все же возникает и в сетях NetWare, то для решения этой проблемы на какой-либо из рабочих станций сети устанавливается такая операционная система, которая хорошо подходила бы на роль сервера приложений. Для этой цели компанией Novell одно время позиционировалась операционная система UnixWare - вариант ОС Unix, совместимый с NetWare. В последнее время в качестве сервера приложений в сетях NetWare часто используют WindowsNT.

6.2.3. Справочная служба - грозное оружие в борьбе за корпоративный рынок

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

Очевидно, что любая ОС ведет подобную справочную информацию, но она часто представляется в виде разрозненных файлов или баз данных. Эта разрозненность существует как в рамках отдельного компьютера (например, данные о пользователях хранятся и в ОС, и в различных приложения: СУБД, почте, сервисе удаленного доступа), так и в рамках всей сети, когда каждый сервер ведет свою базу данных пользователей и администрируется независимо от других, как это сделано, например, в NetWare 3.x. Из-за этого возникает избыточность и несогласованность справочной информации, которые усложняют работу администратора и приводят к ошибкам, создающим иногда прорехи в системе защиты сети от несанкционированного доступа.

Хорошая справочная служба предоставляет всем системным приложениям общую базу справочных данных, которой они могут пользоваться в своих целях: почта - для нахождения сетевых адресов ее абонентов, СУБД - для выполнения процедур аутентификации и авторизации, а также для нахождения таблиц распределенной базы данных.

Справочная служба должна обеспечивать единую процедуру логического входа в сеть. Аутентифицируясь с ее помощью один раз, пользователь получает доступ ко всем ресурсам сети. При этом пользователь избавляется от необходимости запоминать несколько идентификаторов, паролей и имен серверов, а администратор - поддерживать несколько пользовательских бюджетов на разных серверах.

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

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

Примерами распределенных справочных служб, в наибольшей степени удовлетворяющих этим требованиям, являются службы NetWareDirectoryServices (NDS) компании Novell и служба StreetTalk компании Banyan.

Компания Banyan, не без основания предполагая, что ее справочная служба может составить сильную конкуренцию NDS компании Novell, даже отказалась от продвижения своей сетевой ОС Vines 7.0 и сконцентрировалась на развитии StreetTalk для WindowsNT, NetWare, Solaris и SCOUnix. Проблемы же StreetTalk заключаются в том, что на рынке пока ощущается дефицит приложений, поддерживающих эту справочную службу.

Известны также справочные службы NIS, NIS+, DCE, поддерживаемые ОС Unix, и доменная справочная служба DirectoryServicesWindowsNT. В виду того, что справочная служба, основанная на доменах плохо масштабируется, сложна в управлении и имеет ограниченные функциональные возможности, компания Microsoft предлагает новую глобальную справочную службу - ActiveDirectory . Эта служба должна появиться в начале 1998 года составе WindowsNT 5.0.

Назад | Содержание | Вперед