Смекни!
smekni.com

Корпоративные сети (стр. 19 из 53)

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

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

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

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

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

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

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 должны предъявляться такие же высокие требования по надежности и качеству исполнения, что и к модулям операционной системы.