Выполняя обещания, после популярного материала о платформе VAX мы предлагаем детальный рассказ про операционную систему OpenVMS.


OPENVMS В ФАКТАХ
ЗНАМЕНИТОЕ ПРОИЗВЕДЕНИЕ
МЕСТО OPENVMS В СТРАТЕГИИ DEC
А У НАС?
ЗАКЛЮЧЕНИЕ

Напечатав несколько отвлеченную (от практических вопросов) статью про двадцатилетний юбилей платформы VAX, наш журнал не может оставить без должного внимания второго (и более актуального на сегодня) юбиляра - операционную систему OpenVMS. В отличие от машин VAX, которым вряд ли приходится рассчитывать на новых заказчиков в России, сама ОС, поддерживающая также и платформу Alpha, пользуется устойчивым (хотя и не столь масштабным) спросом. Причина тому - те самые загадочные 8760 часов из названия статьи (являющиеся попросту произведением 24x365 - маркетинговым символом беспрерывного функционирования). OpenVMS была первой (или одной из первых) из 32-разрядных операционных систем, также впервые именно в OpenVMS была реализована виртуальная дисковая память, кластеры родились тоже в OpenVMS. Вообще, если вдуматься, то практически все, что мы считаем неотъемлемой частью современных сетевых ОС, уходит корнями в OpenVMS. До сих пор OpenVMS считается самой надежной (из коммерческих) серверной операционной системой, и в этом качестве находит своих заказчиков.

OPENVMS В ФАКТАХ

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

Механизм функционирования OpenVMS (здесь и далее идет речь о версии 7.1 для Alpha) опирается на потоки (kernel thread). Поток состоит из индивидуального адресного пространства, регистров, образующих его контекст, и кода - исполняемого образа. Контекст идентифицирует поток и описывает его текущее состояние, а исполняемый образ состоит из системных и пользовательских программ (откомпилированных и собранных). Каждый процесс может содержать несколько (до 16) потоков. Максимальное число поддерживаемых параллельных процессов в OpenVMS - 16 384. Процессорное время распределяется между потоками в соответствии с приоритетами, которых насчитывается 64. Приоритеты от 0 до 15 назначаются процессам с разделяемым временем или некритичным ко времени исполнения, диапазон от 16 до 63 предназначен для процессов реального времени. Последние получают время сразу, как только оно требуется (сообразно приоритетам), в то время как обычные процессы получают вычислительные ресурсы только тогда, когда ими не пользуются процессы реального времени. Такое внимание им уделено в OpenVMS неслучайно - ОС традиционно (еще со времен VAX) используется в системах автоматического управления производством. Кстати, настоящая или, вернее будет сказать, полноценная многопоточность появилась в OpenVMS на Alpha несколько позже, чем была объявлена. Программисты, конечно, могли определять потоки, но многопоточность реализовывалась ядром системы на программном уровне; с версии 7.1 многопоточность реализуется уже и на аппаратном уровне (параллельное выполнение инструкций как на разных процессорах, так и с использованием механизма параллельной обработки отдельного кристалла). Обмен данными между процессами осуществляется посредством нескольких механизмов: виртуальные почтовые ящики (очереди сообщений), элементарные флаги синхронизации, диспетчер обработки тупиковых (некорректных) ситуаций и разделяемая память.

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

ТАБЛИЦА 1 - ТРЕБОВАНИЯ OPENVMS K ОПЕРАТИВНОЙ ПАМЯТИ

Вариант конфигурации

Минимум оперативной памяти

OpenVMS Alpha 7.1, DECwindows Motif с удаленно запускаемыми приложениями и поддержкой TCP/IP 32 Мбайт
OpenVMS Alpha 7.1, DECwindows Motif с локально запускаемыми приложениями, поддержкой VAXcluster и TCP/IP 32 Мбайт
OpenVMS Alpha 7.1, DECwindows Motif с удаленно запускаемыми приложениями и поддержкой DECnet-Plus 64 Мбайт
OpenVMS Alpha 7.1, DECwindows Motif с локально запускаемыми приложениями, поддержкой VAXcluster и DECnet-Plus 64 Мбайт
OpenVMS Alpha 7.1, DECwindows Motif с удаленно запускаемыми приложениями и поддержкой DECnet for OpenVMS VAX 32 Мбайт
OpenVMS Alpha 7.1, DECwindows Motif с локально запускаемыми приложениями, поддержкой VAXcluster и DECnet for OpenVMS VAX 32 Мбайт

Продолжая тему работы с памятью, напомним, что OpenVMS - 64-разрядная система (по правде говоря, полноценную 64-разрядность она приобрела только с последних версий, так как система разрабатывалась на базе 32-разрядной платформы, и значительная часть кода первоначально была перенесена "как есть") и может поддерживать до 8 Тбайт виртуального адресного пространства. Приложения, правда, в целях переносимости и совместимости получают по умолчанию 32-разрядное адресное пространство. 64-разрядность позволяет OpenVMS реализовывать ряд расширенных функций управления памятью (Very Large Memory, VLM): постоянно хранимые в памяти выборки, разделяемые страницы, расширяемые глобальные таблицы, резервирование памяти. Все эти механизмы предназначены в первую очередь для ускорения работы серверов базы данных, позволяя постоянно хранить в памяти большие наиболее активно используемые выборки из базы данных (кэширование), одновременно задействовать кэш нескольким процессам, динамически увеличивать размер глобальных страниц и гарантировать резервирование оперативной памяти под кэш.

У OpenVMS (с версии 7.0) есть еще одно весьма интересное расширение - файловая система Spiralog. Она может сосуществовать со стандартной системой как на отдельной машине, так и в кластере и позволяет заметно увеличить производительность дисковой подсистемы в ряде приложений. Основной принцип, заложенный в Spiralog, - интерпретация диска как устройства с последовательной записью (попросту говоря - ленты). Все данные записываются в структуру, английское название которой в данном случае лучше интерпретировать как "очередь" (в оригинале - log, отсюда и название системы), все новые файлы (и изменения к имеющимся) дописываются в конец очереди.

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

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

Spiralog является не единственным расширенным файловым сервисом OpenVMS. Система также предоставляет службу ведения записей (Record Management Services, RMS). RMS по сути является СУБД-подобным интерфейсом обращения к устройствам хранения данных, позволяющим приложениям организовывать свои собственные базы данных, тем самым повышая эффективность их работы. Еще один плюс RMS - служба позволяет организовывать надежный бесконфликтный совместный доступ к файлам различных процессов или приложений.

Наконец, отдельного упоминания заслуживают сетевые возможности OpenVMS. Система способна работать во всех стандартных сетях: Ethernet, Fast Ethernet, Token Ring, FDDI и ATM. Поддержка ATM - весьма развитая и включает в себя такие сервисы, как эмуляция ЛВС (LANE) и IP поверх ATM.

ЗНАМЕНИТОЕ ПРОИЗВЕДЕНИЕ

Все-таки главное, за что ценят OpenVMS, - это не производительность (вообще говоря, Digital UNIX зачастую оказывается производительнее), а уже упомянутая во вступлении к статье надежность. Главным обоснованием рекламной формулы является, конечно, кластеризация серверов, которая, еще раз напомним, была впервые применена именно в OpenVMS. Впрочем, и сегодня, когда кластеры реализуются практически на всех популярных аппаратно-программных платформах, OpenVMS по-прежнему служит ориентиром. Кластеры OpenVMS через различные интерфейсы (Memory Channel, DSSI, CI (два интерфейса Digital), Ethernet и SCSI) могут объединять до 96 узлов (между прочим, в рамках одного кластера допускается использование как Alpha-, так и VAX-серверов). При помощи соответствующих мостов между FDDI и ATM узлы в кластере могут быть связаны и средствами последней технологии - ATM. Выполняемые в кластерах приложения получают координированный доступ к разделяемым ресурсам. Все обращения к данным строго синхронизируются, что обеспечивает целостность данных во время параллельного выполнения транзакций по их обновлению. При обращении к кластеру выполнение задания поручается первому доступному узлу - загрузка распределяется равномерно. Единственное "но", которое можно сказать про кластеры OpenVMS, это то, что при практически неограниченной (в пределах требований заказчика) масштабируемости ресурсов они уступают кластерам на Digital UNIX по масштабируемости производительности системы в целом. Это связано с тем, что из-за необходимости поддерживать совместимость сверху вниз OpenVMS унаследовала некоторые старые, не очень быстрые системные механизмы. Впрочем, если использовать "родные", а не перенесенные приложения, то разница в производительности практически отсутствует.

Отдельный интерес представляет Volume Shadowing, служба OpenVMS (OpenVMS Cluster - тоже дополнительный продукт, лицензируемый по количеству узлов), осуществляющая зеркализацию дисков по типу массивов RAID-1 (поддерживается как стандартная файловая система, так и Spiralog). Зеркализация может производиться в масштабах целого кластера, причем физически диски могут как находиться на одном сервере (или в дисковой подсистеме), так и быть разнесены по различным узлам кластера. Единственное ограничение - диски в одном наборе должны иметь одинаковое количество логических блоков и одинаковый объем. Volume Shadowing поддерживает неограниченное количество дисков при наличии одного набора на кластерную систему и до 500 в случае, если таких наборов два или три.

Кроме форс-мажорных обстоятельств, разумеется, учитывается и главный источник неприятностей - человеческий фактор. Средства защиты информации развивались в OpenVMS с момента создания (в многопользовательских системах разграничение прав пользователей - одна из первоочередных задач). В версиях для VAX предусмотрены даже четыре режима работы процессора, обеспечивающих различные уровни доступа (после регистрации пользователя в системе процессор переходит в соответствующий режим для выполнении его задач), так что, не обладая надлежащими полномочиями, просто физически невозможно запустить, например, программу-взломщик. На Alpha, разумеется, такие возможности отсутствуют, но и без них ОС обеспечивает высокий уровень защиты. В частности, OpenVMS располагает развитыми средствами контроля за паролями: проверкой стандартных характеристик (срок действия пароля, длина, использовался ли пароль ранее), генерацией случайных паролей, проверкой на наличие в паролях общеупотребительных слов, а также возможностью задания специфических требований к "содержимому пароля". Контролируется доступ ко всем системным объектам: томам, устройствам, файлам, очередям и т. д. Каждому классу объектов (кроме файлов) можно по умолчанию назначить уровень защиты при его создании. Файл получает уровень защиты либо от своей предыдущей версии, либо от создавшего его процесса. При желании файл может быть удален полностью (erase-on-delete) без возможности его восстановления. OpenVMS обеспечивает также аудит регистрации или выхода из системы, попытки подбора пароля, любых типов операций с заданными объектами (или классами объектов), любых изменений параметров системы, любых изменений, касающихся политики защиты информации (под словом "любые" подразумевается "любые на выбор"). Все версии OpenVMS проходят сертификацию по классу С2 (версия 7.1 еще не успела ее пройти, но только пока). Специальная версия ОС имеет повышенный уровень защиты (SEVMS) и сертифицируется уже по классу B1.

ТАБЛИЦА 2 - ТРЕБОВАНИЯ OPENVMS К ДИСКОВОМУ ПРОСТРАНСТВУ

Компоненты

Oбъем

Всего

Минимальный набор файлов OpenVMS 95 Мбайт 95 Мбайт
Дополнительные файлы OpenVMS 89 Мбайт 184 Мбайт
Файл подкачки (требуется) 38 Мбайт 222 Мбайт
Буфер подкачки (рекомендуется) 3 Мбайт 225 Мбайт
Файл дампа (по желанию) 28 Мбайт 253 Мбайт
Разархивированные файлы подсказки (по желанию) 15 Мбайт 268 Мбайт
Полная поддержка DECwindows Motif V1.2-4 (по желанию) 9 Мбайт 333 Мбайт
Запас на обновление версии 50 Мбайт 383 Мбайт
Примечание: размеры файла подкачки, буфера подкачки и дампа даны
для оперативной памяти 32 Мбайт.

Любопытным и очень показательным примером репутации OpenVMS как высоконадежной системы является то, что кластеры OpenVMS использует для контроля над производством... Intel. В частности, на заводе Intel в Иерусалиме установлен кластер из восьми машин (правда, не Alpha, a VAX - разворачивая новые производства, Intel тиражирует только проверенные практикой решения). За 7 лет 6 раз проводилось обновление OC, десятки раз модернизировалось или инсталлировалось ПО, но ни разу работа кластера не останавливалась. К слову сказать, тот же Digital UNIX стало возможно "подковывать на скаку" только недавно.

МЕСТО OPENVMS В СТРАТЕГИИ DEC

Стратегия Digital в отношении OpenVMS всегда волновала заказчиков, особенно в свете последних событий (покупка Digital другим компьютерным "монстром" - Compaq). В течение некоторого времени заказчики Digital действительно имели определенный повод для беспокойства, так как по некоторым косвенным признакам можно было сделать вывод о том, что компания была бы не прочь сократить количество поддерживаемых платформ (все-таки поддержка операционной системы требует значительных капиталовложений, которые становятся тем ощутимее, чем менее массовым спросом пользуется ОС). Руководство DEC делало осторожные попытки подвести заказчиков к мысли о переходе на Digital UNIX (разумеется, о каком-то давлении, хотя бы и косвенном, речь не идет), но попытки эти не увенчались успехом и повторены, судя по всему, не будут. Общее число инсталляций OpenVMS по всему миру (по официальным данным) на обеих платформах сегодня превышает 400 000, а количество пользователей - 10 млн человек, и с такой базой приходится считаться. Нет сомнений и в том, что Compaq отнесется к ней также серьезно. Для того чтобы пользователи могли верно оценить политику компании, в январе этого года было распространено обращение вице-президента Digital по мировым продажам Брюса Клафина. Признавая, что в последнее время наблюдался недостаток в технической и маркетинговой поддержке OpenVMS, Digital обещала более четко обозначить свою позицию в отношении операционной системы и сделать на нее бо,льший упор во всех маркетинговых мероприятиях компании, а также сделать цены на ОС более конкурентоспособными.

Особо стоит отметить взятый Digital курс на интеграцию OpenVMS с Windows NT. В 1995 году компания совместно с Microsoft объявила о начале программы Affinity. Ее цель - предоставить заказчикам приложения и инструментарий для построения систем с трехзвенной архитектурой на основе обеих ОС (иногда Affinity ошибочно считают программой миграции на NT, но это однобокое понимание ее целей). С тех пор реализовано уже пять этапов программы (Digital называет их "волнами", так что можно сказать, что накатило уже пять волн), каждый раз представлявших весьма интересные решения, о некоторых из них следует рассказать.

Особого внимания заслуживают OpenVMS Management Tools - средства администрирования смешанных сред OpenVMS и Windows NT. OpenVMS Management Tools в первую очередь дают возможность управлять системами OpenVMS с одной консоли Windows NT, а также унифицируют процесс администрирования двух платформ. Mana-

gement Tools позволяют осуществлять единый контроль за системами безопасности обеих ОС, а также помогают наладить процесс автоматического резервного копирования и архивации на всех системах, под управлением как OpenVMS, так и Windows NT. Для того чтобы представить для OpenVMS решения по управлению системами уровня предприятия, Digital активно сотрудничает с Cоmputer Associates. Последняя предлагает продукт Unicenter TNG for OpenVMS для мониторинга и администрирования системы на базе OpenVMS в рамках среды Unicenter TNG.

Продукт Disk Services for Windows NT, как видно из названия, позволяет OpenVMS предоставлять дисковые службы системам, работающим под управлением NT. Иными словами, Windows NT получает возможность использовать дисковое пространство кластеров Alpha/Open VMS как свой локальный диск. Большой диск, контролируемый OpenVMS, может быть разделен на несколько виртуальных дисков, обслуживающих различные серверы под управлением Windows NT. Эти серверы, в свою очередь, могут предоставлять рабочим станциям под управлением NT или Windows 95 доступ к виртуальным дискам, как к стандартным сетевым ресурсам. Disk Services for Windows NT дает возможность отдельно стоящим серверам использовать часть преимуществ работы в кластере. Во-первых, степень доступности данных, хранящихся на виртуальных дисках, будет столь же высокой, как и в самом кластере. Во-вторых, OpenVMS может взять на себя процедуру резервного копирования данных, хранящихся на серверах NT, что повысит надежность самого копирования, а также, разумеется, избавит от необходимости тратить на это ресурсы сервера.

Следующий продукт представляет интерес больше для заказчиков Digital "со стажем", и сложно сказать, насколько он актуален для российских пользователей (к теме отечественного рынка OpenVMS мы обратимся позже). OpenVMS Mail Integration Tools for Windows 95 и Windows NT позволяет интегрировать OpenVMS Mail с Microsoft Exchange или Microsoft Outlook как для совместного использования, так и для постепенной миграции. Mail Integration Tools обеспечивает корректную отправку/получение писем (включая приложения) пользователями обеих платформ, перенос существующих папок и списков адресов OpenVMS Mail в среду Exchange. Входящий в продукт механизм передачи сообщений OpenVMS Mail поддерживает как сети TCP/IP, так и DECnet-Plus и не требует дополнительного шлюза.

Самым многофункциональным решением по интеграции OpenVMS с другими платформами является PATHWORKS. Если быть точным, то PATHWORKS представляет собой больше, чем часть Affinity, поскольку охватывает все три стратегических платформы Digital, но мы остановимся только на решении для OpenVMS. PATHWORKS for OpenVMS позволяет самым различным клиентам - DOS, Windows 3.11, Windows 95, Windows NT и даже OS/2 - использовать сервер под управлением OpenVMS как обычный сервер (файлов и/или печати) сети Windows (TCP/IP или NetBEUI). Интеграция с сетями NT настолько тесная, что сервер OpenVMS может выступать как главный или резервный контроллер домена, поддерживать доверительные отношения между доменами и обеспечивать однократную регистрацию пользователей в системе.

А У НАС?

Если попытаться рассмотреть, как решения на базе OpenVMS продвигаются на российском рынке (оценивая, разумеется, только новых заказчиков на платформе Alpha), то картина вырисовывается следующая. В России (как, наверное, и в большинстве случаев в остальном мире) OpenVMS не является самоцелью для заказчиков, которые, перед тем как обратиться в Digital, либо подсознательно подбирают варианты с более распространенными ОС NT и UNIX (на основе своего или чужого опыта), либо не имеют предрасположенности к какой-либо конкретной платформе. Выбор определяют либо приложения, либо требования к системе в целом. Как только заказчик выдвигает повышенные требования к надежности (и, естественно, останавливается на приложениях, поддерживаемых OpenVMS), ему предлагается именно решение на основе этой ОС. (Как рассказали в московском представительстве Digital, списки требований, приносимые представителями некоторых организаций, можно было бы брать за основу брошюры по OpenVMS.) Среди отечественных заказчиков OpenVMS преобладают оборонные структуры, осуществляющие миграцию с VAX на Alpha (как они используют свои системы, сказать, по понятным причинам, не представляется возможным), и банки. В банках кластеры под управлением OpenVMS используются по-разному. Самое распространенное применение - сервер баз данных (как правило, Oracle), в Сбербанке (точнее, в одном из региональных отделений), например под OpenVMS написано приложение, обеспечивающее всю работу банка. Другое, не менее распространенное назначение OpenVMS - работа с международной системой межбанковских транзакций SWIFT. Это связано как со стремлением возможно более надежно осуществлять транзакции, так и тем, что для SWIFT OpenVMS является "родной" системой (как, скажем, UNIX для Internet).

ЗАКЛЮЧЕНИЕ

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


С Александром Авдуевским можно связаться по адресу: shura@osp.ru.