Симметричная многопроцессорная обработка и SMP-серверы
Производительность и масштабируемость
SMP-приложения
Архитекура NetWare 4.1 SMP
Повышение пропускной способности сети
Разработка SMP-пирложений: библиотеки SMP CLIB и интерфейс прикладного прогаммирования
Заключение
КОМПОНЕНТЫ NETWARE 4.1 SMP, СУЩЕСТВЕННЫЕ С ТОЧКИ ЗРЕНИЯ ПОДДЕРЖКИ СИММТРИЧНОЙ МНОГОПРОЦЕССОРНОЙ ОБРАБОТКИ:
НАИБОЛЕЕ СУЩЕСТВЕННЫЕ УСОВЕРШЕНСТВОВАНИЯ В NETWARE 4.1 SMP
ПУТЬ К КЛАСТЕРНОЙ АРХИТЕКТУРЕ
РАЗДЕЛЕНИЕ РЕСУРСОВ В SMP

Многопроцессорные вычислительные системы (МР) известны уке давно, но ранее они применялись как правило в суперкомпьютерных системах, Unix-серверах и высокопроизводительных рабочих станциях. МР-системы обеспечивают вычислительную мощность, необходимую для работы требовательном к ресурсам сетевых служб и приложений, поэтому их поддержка оказалась сегодня важнейшим необходимым атрибутом сетевой ОС. Вслед за Microsoft Windows NT и IBM 0S/2 for SMP поддержка симметричной многопроцессорной обработки (SMP) была реализовона недавно и в самой распространенной сегодня сетевой операционной системе - Novell NetWare 4.l.

Симметричная многопроцессорная обработка и SMP-серверы

Под симметричной многопроцессорной обработкой обычно понимают равноправное разделение между процессорами различных задач, в числе которых для асимметричных системах могут быть ввод-вывод или числовые вычисления. В симметричной МР-системе все процессоры функционально идентичны, и любая задача может выполняться на любом процессоре, однако полностью использовать вычислительные мощности таких систем позволяет лишь операционная система, поддерживающая SMP. Недавно ОС NetWare 4.1 SMP пополнила число операционных систем (таких как SCO Unix, OS/2 for SMP, Solaris и Windows NT), способных эффективно работать с МР-серверами. Она не только способна работать, на многопроцессорных серверах различных фирм, но и использует преимущества архитектуры новейших чипов Intel в том числе и Pentium Pro.

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

Производительность и масштабируемость

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

Операционная система NetWare 4.1 SMP представляет собой дополнительный загружаемый модуль NLM (NetWare loadable Module) для сетевой ОС NetWare 4.1, позволяющий ей функционировать на многопроцессорных серверах. NetWare 4.1 SMP обеспечивает высокопроизводительную платформу для сетевых служб и приложений с интенсивной загрузкой процессоров. Увеличение мощности дает возможность реализовать на стандартном массовом сервере множество сетевых служб и средств, упрощает централизованное администрирование и сокращает расходы на аппаратуру. Наряду с высокой производительностью, SMP-системы позволяют гибко расширять сеть при возрастании требований к вычислениям: установка дополнительного процессора обходится значительно дешевле, чем замена серверного оборудования.

Следует отметить, что NetWare 4.1 SMP проектировалась с учетом поддержки большого числа процессорных модулей и теоретически способна работать на 32 процессорах, в то время как наиболее типичным числом для для операционных SMP систем является 12 процессоров. Сегодня подобная аппаратура применяется пока достаточно редко - наиболее популярны МР-системы с двумя и четырьмя процессорами, разработчики NetWare определенно хотели обеспечить задел на будущее.

SMP-приложения

На сетевых SMP-серверах, с которыми одновременно работают множество пользователей, можно и нужно реализовать параллельное выполнение задач. В среде операционных систем со средствами SMP все стандартные приложения обычно выполняются без проблем, однако, чтобы реально использовать преимущества многопроцессорной обработки и масштабируемости, сами приложения также должны поддерживать SMP и учитывать архитектуру базовой ОС. Пока таких приложений немного, но число их быстро растет. Считается, что SMP-системы оптимально подходят для задач с интенсивным использованием процессора, где важное значение имеет малое время отклика для пользователя. К подобным задачам можно отнести базы данных и ПО коллективного пользования. Именно поддержке баз данных и сетевых средств для коллективной работы Novell уделяет особое внимание - компания заключила партнерские соглашения с поставщиками СУБД: Oracle, Sybase и Btrieve Technologies, и уже сегодня появились первые решения, поддерживающие NetWare 4.1 SMP, такие как СУБД Oracle7 Enterprise Server, Oracle7 Workgroup Server и SQL Server 11 от Sybase. В категории ПО коллективного пользования Novell предлагает собственный продукт - систему обмена сообщениями GroupWise 4.1. Симметричную многопроцессорную обработку уже поддерживает GroupWise Post Office - базовый компонент CroupWise, скоро будет реализован в составе МТА (агент передачи сообщений) и SMTP Gateway NLM (шлюз протокола SMTP) данного продукта.

Недавно выпущенный Novell продукт NetWare Web Server также использует преимущества NetWare 4.1 SMP, позволяя организовать Web-серверы, к которым обращается большое число пользователей. При увеличении трафика работы с Internet можно экономично нарастить аппаратуру Web-сервера дополнительными процессорами. Кроме того, дисциплина SMP допускает одновременное выполнение нескольких процессов НТТР (Hyper Text Transfer Protocol). Скорее всего, за первой волной SMP приложений последуют и другие продукты с многопроцессорной поддержкой, которые наряду с требовательными к вычислительным ресурсам крупными СУБД с функциями распараллеливания запросов, системами обработки документов и программными средствами коллективного пользования будут включать в себя продукты мультимедиа.

Архитекура NetWare 4.1 SMP

NetWare 4.1 SMP была спроектирована таким образом, чтобы повысить пропускную способность сети и сервера для всех инсталляций NetWare 4.1, включая существующие NLM-модули NetWare 4. Кроме того, компания Novell создала новое поколение высокопроизводительных NLM, поддерживающих SMP с помощью API-интерфейсов и применяющих новые примитивы планирования, предусмотренные в ядре NetWare 4.1 SMP. При этом NLM-модулям по-прежнему доступны все функции библиотеки CLIB и операционной системы. Каким же образом в системе удалось реализовать выполнение новых NLM при сохранении полной обратной совместимости с существующими серверными приложениями?

Архитектура NetWare 4.1 SMP предусматривает использование второго вытесняющего ядра, реализующего полностью симметричную среду для SMP-приложений и сохраняющего совместимость с существующими программами. Все имеющиеся NLM-модули виртуально выполняются в среде SMP без каких-либо модификаций. NetWare 4.1 SMP использует специальный драйвер, действующий как интерфейс между конкретной аппаратурой и операционной системой, перехватывающий все аппаратные вызовы оригинального ядра ОС NetWare. Этот новый драйвер называется модулем, ориентированным на конкретную платформу - Platform-Specific Module (PSM.NLM). Такой модуль предлагается ОЕМ-партнерами Novell по SMP и обеспечивает необходимое абстрактное представление аппаратуры, которое позволяет SMP-ядру работать практически на любой аппаратной платформе.

В системе имеется также многопроцессорный драйвер (МР-драйвер), реентерабельно загружаемый для каждого процессора. Ядро NetWare ничего не знает о наличии нескольких процессоров и вызывает процессор номер 0. МР-драйвер для этого процессора интерпретирует вызовы и передает их SMP-ядру, которое планирует и выполняет эти вызовы на доступном процессоре. Таким образом осуществляется выполнение компонентов ОС на нескольких процессорах, что особенно важно для частей NetWare, наиболее интенсивно использующих мощности процессоров - управление трафиком локальной сети, шифрование данных, работа с транспортный протоколом SPX, поддержка среды прикладного программирования, применяемой разработчиками для создания серверных приложений.

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

Другая важная проблема, стоявшая перед разработчиками ОС - это выбор схемы планирования. Чтобы адекватно поддерживать все среды, необходимо было реализовать архитектуру, соответствующую различным принципам планирования, поэтому NetWare 4.1 SMP одновременно поддерживает метод циклического кругового планирования (RR), обычно применяемый в системах с вытеснением (таких как UNIX) и метод планирования по алгоритму "первым пришел - первым обслужен" (FIFO), применяемый ранее в NetWare. При планировании FIFO задания обычно выполняются не прерываясь до их полного завершения. Это сокращает накладные расходы на планирование, которые в реализациях RR-типа довольно велики, однако в системах с вытеснением заданий циклическое планирование обеспечивает более справедливое распределение ресурсов: каждому процессу выделяется одинаковое процессорное время. Выбор схемы планирования зависит от проектируемой загрузки планировщика и длительности каждого процесса или "задания".

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

Повышение пропускной способности сети

За счет чего происходит значительное увеличение пропускной способности сети при использовании ОС NetWare 4.1 SMP? Изменения в модулях LSL и MSM на уровне открытого интерфейса передачи данных ODI обеспечивают обработку сетевого трафика не только нулевым, но и другими процессорами. Не поддерживающие многопроцессорного режима унаследованные NLM-модули и потоки выполняются на нулевом процессоре, а обработка трафика локальной сети динамически, без вмешательства сетевого драйвера переносится на наименее загруженные процессоры. Такое решение дает хорошую производительность даже для тех NLM-модулей, которые не поддерживают симметричную обработку. Установка дополнительных плат сетевых адаптеров не уменьшает пропускной способности, как было в оригинальной среде NetWare. Для каждого имеющегося адаптера и новых сетевых плат, подключаемых к системе, поддерживается максимально высокая загрузка, что позволяет легко наращивать систему.

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

Разработка SMP-пирложений: библиотеки SMP CLIB и интерфейс прикладного прогаммирования

Поддержка симметричности потребовала внесения изменений в библиотеку CLIB для языка программирования Си, а также модернизацию средств программирования и отладки. Новый вариант SMP CLIB - это набор библиотек сервера, реализованных на UNIX ANSI С. Разработчики Novell решили обратиться к коду UNIX, считая его проверенной и стабильной основой программирования: данная ОС уже давно используется в отрасли и известна своей масштабируемостью и переносимостью. Тем не менее код был подвергнут расширенному тестированию в нескольких лабораториях Novell. Благодаря некоторым изменениям в архитектуре новые библиотеки используют теперь гораздо меньше памяти и заметно увеличивают скорость выполнения приложений и функционирования сервера.

Новые модульные библиотеки для Си предусматривают все вызовы API, необходимые для создания SMP-приложений, обеспечивая при этом обратную совместимость со старыми версиями NetWare и CLIB как по поддерживаемым функциям, так и по поведению. Таким образом, разработчики получают возможность использовать один исходный код для сред NetWare 4.x и NetWare 4.1 SMP. В оригинальной среде NetWare и в NetWare 4.1 SMP применяются одинаковые вызовы API. Кроме этого, NetWare 4.1 SMP предлагает набор вызовов API специально для создания SMP-приложений, полностью реализующих преимущества многопроцессорной среды NetWare. Предусмотрены и соответствующие инструментальные средства мониторинга и отладки.

SMP API поддерживают определение групп процессоров (кластеров), индивидуальных адресных пространств и управление ими. Отдельные задачи ассоциируются с процессорами или группами процессоров. Разработчик может определить для каждой из задач метод планирования (RR или FIFO) и реализовать в задаче режим с вытеснением или без вытеснения потоков, а также запретить для параллельное выполнение на нескольких процессорах. Система использует либо заданную по умолчанию группу процессоров, либо системный администратор через новые команды SET создает новую группу или объединение групп. Такое задание параметров дает возможность оптимизировать производительность многопроцессорных систем.

Реализация новых возможностей ОС потребовала модернизации средств контроля, управления и мониторинга. Усовершенствованная утилита MONITOR позволяет сетевым администраторам отслеживать использование каждого процессора на сервере и настраивать параметры NetWare 4.1 SMP.

Заключение

Итак, NetWare, которая еще недавно была лишь многозадачной и многопоточной сетевой ОС, что не позволяло ей выйти на уровень производительности SMP Windows NT, получила возможность использовать все преимущества многопроцессорных систем. По мнению аналитиков это значительно усилило позиции NetWare 4.1, предлагающей совершенные файловые средства и развитую службу каталогов.

Между тем, несмотря на проделанную работу эксперты еще не удовлетворены предлагаемой средой разработки. Высказывается мнение, что комплекты разработчика (SDK) для NetWare слишком запаздывают. NetWare 4.1 SDK Special Edition был выпущен в феврале 1995 г. после выхода ОС, в то время как Microsoft имела SDK для NT еще до появления самого продукта. Чтобы облегчить разработку приложений, Novell наряду с расширенными API-интерфейсами планирует усовершенствовать свою среду прикладного программирования AppWare. Исправить ситуацию поможет и поддержка NetWare 4.1 SMP такими крупными производителями ПО как Oracle и Sybase, что способно превратить NetWare в ведущую платформу СУБД.

Новаторские решения, использованные в NetWare 4.1 SMP, такие как введение дополнительного вытесняющего SMP-ядра, вызывают высокие оценки одних аналитиков и критику других, которые не считают его "истинной SMP", понимая под ней решение, не привязывающее процессы к конкретным процессорам (как в Windows NT). Другие, напротив, полагают что выбранная компанией Novell симметричная параллельная модель обеспечивает хорошую масштабируемость, хотя и требует для получения выигрыша в производительности создавать специальные NLM.

Жесткая привязка отдельных процессов к процессорам позволяет свести к минимуму проблемы координации памяти (так называемую проблему "синхронизации кэша") при захвате процессом нового ЦП и снизить издержки на управление. Кроме хорошей масштабируемости такое решение дает выигрыш в производительности: добавление второго процессора увеличивает ее, по некоторым оценкам, практически на 100%. Специалисты Novell считают, что на серверах NetWare работают обычно "долгоживующие" процессы, поэтому данный метод планирования себя оправдывает.

Реализовав в NetWare поддержку SMP, компания Novell не собирается останавливаться на достигнутом. Недавно компания обещала продемонстрировать реализацию высокопроизводительной технологии кластеризации серверов, способной значительно повысить производительность, и сообщила о том, что совместно с Oracle ведет работы над применением кластеризации в СУБД - созданием кластеров базы данных Oracle, работающих как единая система. Это позволило бы обслуживать большое число пользователей - до двадцати-тридцати тысяч. Уже имеются первые результаты этих разработок, правда роль серверной ОС пока выполняла UnixWare. Novell совместно с Oracle, Compaq и SCO представила SMP-систему с ОС UnixWare, в которой работает Oracle 7 Parallel Server и используется технология кластеризации.


КОМПОНЕНТЫ NETWARE 4.1 SMP, СУЩЕСТВЕННЫЕ С ТОЧКИ ЗРЕНИЯ ПОДДЕРЖКИ СИММТРИЧНОЙ МНОГОПРОЦЕССОРНОЙ ОБРАБОТКИ:

- Драйверы локальной сети.

- Библиотека SMP CLIB.

- Ядро SMP и набор API-интерфейсов NLM-модулей с многопроцессорной поддержкой.

- Файловая система обслуживания баз данных.

- Средства шифрования RSA.

- Интерфейс PSM (Platrofm-Specific Module).

Поддержка SMP реализуется и для существующих компонентов NetWare драйверов лоиальной сети, написанных с помощью инструментального комплекта Toolkit спецификации 3.2; драйверов диска; базовых системных продуктов Novell (Novell Соге OS).


НАИБОЛЕЕ СУЩЕСТВЕННЫЕ УСОВЕРШЕНСТВОВАНИЯ В NETWARE 4.1 SMP

ODI

Модернизация 0DI (Open Data-Link Interface) позволяет разгрузить нулевой процессор и использовать для обработки части трафика другие доступные процессоры, увеличив тем самым пропускную способность локальной сети. NetWare 4.1 SMP поддерживает полную обратную совместимость для всех драйверов локальной сети. Благодаря модульной архитектуре ODI драйверы одинаково хорошо работают в однопроцессорной и в многопроцессорной среде, что позволяет разрабатывать единый исходный код. Реализация в SMP-модулях алгоритмов справедливого распределения ресурсов и выполнение драйверов на разных процессорах позволяет добавлять сетевые адаптеры, не ухудшая работы других плат сетевого интерфейса, а применение автоматического конфигурирования аппаратных средств (plug-and-play) PCI и ISA открывает путь к созданию развитых перспективных приложений.

Link Support layer (LSL)

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

Media Support Nodule (MSM)

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

Topology Support Module (TSM)

Модули TSM написаны для поддержки различных сетевых топологий (Ethernet, FDDI, Token Ring и др.). Хотя требования SMP не влияют на модули TSM, в них также внесены улучшения, которые позволили повысить пропускную способность адаптеров. Увеличена и частота проверки внутренней очереди передачи в TSM.

Hardware Specific Module (HSM)

Модуль HSM обеспечивает корректное функционирование адаптера в различных аппаратных конфигурациях. Драйверы, разработанные в соответствии с данной спецификацией, будут отвечать требованиям NetWare 4.1 SMP.

NetWare Bus Interface (NBI)

Новый модуль NBI автоматически загружается MSM и обеспечивает для модулей ОС абстрактное представление различных типов шин.


ПУТЬ К КЛАСТЕРНОЙ АРХИТЕКТУРЕ

Крупнейшие компании, такие как Novell и Microsoft/DEC, интенсивно ведут работы в области кластерной архитектуры. При кластеризации на уровне серверов несколько узлов работают как логически единый компьютер. Кластеризация серверов ставит перед разработчиками системного ПО серьезные проблемы, включая создание распределенных менеджеров блокировок и организацию дублируемых пар серверов (для реализации отказоустойчивых систем), однако специалисты полагают, что в ближайшие полтора-два года эти проблемы будут решены. Заинтересованность в данной технологии выражают и разработчики аппаратных средств.

Преимущества зтого нового направления

При подключения дополнительных процессоров производительность SMP-системы как правило возрастает нелинейно. Так, например, второй процессор обычно увеличивает производительность не на 100, а примерно на 85%. Это связано с дополнительными издержками на управление системными ресурсами. При увеличении числа процессоров эти издержки становятся настолько велики, что простое добавление новых чипов может не дать выигрыша в вычислительной мощности, уже требует специальных архитектурных решений.

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

А что в NT?

По мнению ряда аналитиков поддержка кластеризации серверов в Windows NT имеет большой потенциал. Поскольку технология кластеризации требует существенных изменений в ядре ОС, такая поддержка будет лишь в следующей версии NT с распределенной объектно-ориентированной файловой системой. Недавно Microsoft анонсировала кластерный API-интерфейс, который планируется включить в состав будущей версии. Если компания Novell ведет работы над реализацией кластерной технологии в тесном сотрудничестве с Oracle, то Microsoft вступила в альянс с корпорацией Digital Equipment, которая в середине 1996 года намерена выпустить отказоустойчивое кластерное решение для NT с зеркальным дублированием серверов. На следующем этапе будут реализованы кластеры серверов, связанные через разделяемыа диск, или быструю линию связи. Microsoft, со своей стороны, будет также внедрять кластерную технологию поэтапно в виде дополнительных продуктов к NT.


РАЗДЕЛЕНИЕ РЕСУРСОВ В SMP

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

Один из механизмов защиты заключается в следующем. SMP-потоки, которые обращаются к разделяемым ресурсам NetWare, помещаются в процесс стандартного ядра посредством создания нового потока, называемого "Fast Work to Do: (FWTD). По умолчанию FWTD-потоки имеют более высокий приоритет, чем обычные потоки ядра.

В NetWare 4.1 SMP процессор 0 может использоваться тремя способами:

Разделяемый (shared) - SMP-ядро и ядро NetWare (подразумеваемый режим)

Выделенный (dedicated) - процессор 0 используется исключительно Netware

Приоритетный (priority) - оптимизированный разделяемый режим, в котором NetWare присваивается более высокий режим. Этот режим является предпочтительным для систем, использующих 7 и более процессоров.

Второй механизм защиты основан на использовании блокировок (lock). Блокировки обеспечивают такой режим выполнения операций над памятью, в котором только один процессор или устройство может изменить содержимое определенной ячейки памяти в течение одного машинного цикла. Большинство платформ добиваются этого посредством сигнала "LOCK#" Intel-процессора, который запрещает всем другим процессорам использовать шину до следующего сигнала текущего процессора.

Архитектура NetWare 4.1 SMP устроена таким образом, чтобы перехватить обращения к аппаратуре, исходящие от ядра обычной операционной системы NetWare 4.1 - разделяющего сетевую ОС от аппаратуры - и предоставить новый тип драйвера, который позволит взаимодействовать с многими процессорами. Этот новый драйвер называется Platform-Specific Module (PSM.NLM). Ядро NetWare обращается, как обычно, к процессору 0. МР-драйвер этого процессора прерывает эти вызовы и передает их модулю PSM, который, в свою очередь, обращается к аппаратуре. Процессы, которые учитывают специфику SMP, могут обращаться к ядру SMP, которое может спланировать их выполнение на других процессорах.