Назначение и возможности z/VM
Операционная система z/VM представляет второе направление операционных
систем IBM, ориентированных на платформу zSeries. z/VM построена на
основе концепции " виртуальных машин " (Virtual Machine), которая
означает, что в рамках одной системы может одновременно функционировать
множество виртуальных машин, каждая из которых функционально
эквивалентна реальной ЭВМ. Каждая виртуальная машина использует свою
часть ресурсов системы (процессорное время, оперативную память,
периферийные устройства).
Таким образом, z/VM, разделяя ресурсы ЭВМ между множеством виртуальных
машин, предоставляет возможность параллельной работы на одном сервере
как отдельных пользователей и системно-независимых приложений, так и
различных операционных систем, включая диалоговый монитор z/VM, а также
OS/390, z/OS, Linux и др. Операционные системы, запускаемые в рамках
виртуальной машины z/VM, называют гостевыми. Гостевые операционные
системы конфигурируются как независимые системы для поддержки своего
круга пользователей и решения определенного набора задач. z/VM
поддерживает в качестве гостевых операционные системы, предназначенные
для z/Architecture и архитектуры ESA/390.
Возможности виртуальных машин z/VM позволяют использовать их для
решения широкого круга практических задач, среди которых необходимо
выделить следующие:
тестирование новых системных, телекоммуникационных и других
приложений, которое нецелесообразно проводить в рабочем режиме из-за
возможности сбоев или краха операционной системы;
тестирование и настройка новых версий операционных систем параллельно
с функционированием старых версий в рабочем режиме;
проведение обучения и тренинга персонала.
z/VM может служить основой для создания и развертывания гетерогенных
корпоративных систем масштаба предприятия благодаря поддержке целого
ряда промышленных стандартов, протоколов и интерфейсов. В частности,
z/VM располагает современными средствами поддержки сетевых вычислений
(Internet/intranet) на основе TCP/IP, SNA, Java и многочисленных
сетевых протоколов, таких как Ethernet, FDDI, FTP, VLAN, NFS, SMTP,
Token Ring, UDP, X.25, X-Windows, SNMP, NetView. z/VM поддерживает
стандарты открытых систем POSIX и XPG, предоставляя интерфейс системных
вызовов для UNIX-приложений и пользовательскую среду shell в рамках
сервиса разработки приложений OpenExtensions. Это позволяет как
выполнять готовые POSIX-совместимые приложения, так и разрабатывать
новые.
Одна из важных областей применения z/VM - использование в качестве
серверной платформы для поддержки клиентов локальных вычислительных
сетей. Данное решение предоставляет огромному числу пользователей все
преимущества мэйнфрейма, включая высокую надежность и
производительность, большие объемы внешней памяти, быстрые
коммуникации. В частности, поддерживаемый z/VM клиент-серверный продукт
Tivoli Storage Manager for VM обеспечивает резервное копирование,
архивирование и восстановление файлов рабочих станций, работающих под
управлением MS Windows, Linux, Apple Macintosh и OS/2. Значительное
внимание IBM уделяет архитектурным решениям, основанным на консолидации
Linux-серверов под управлением z/VM.
Предшественницей z/VM была операционная система VM/ESA, ориентированная
на 32-разрядную платформу S/390. В VM/ESA были реализованы основные
технологические принципы и решения, положенные в основу z/VM. Первая
версия z/VM V3R1, представленная в 2000 году, как и последующие
выпуски, обеспечивают полную поддержку как существующих серверов
zSeries, так и серверов S/390 (Parallel Enterprise Server G5/G6,
Multiprise 3000). При установке z/VM на серверы zSeries появляется
возможность в качестве гостевых систем использовать 64-разрядные OS/390
V2R10, z/OS и Linux для zSeries, а также операционные системы ESA/390,
в том числе OS/390, VSE/ESA, TPF и Linux для S/390. z/VM снимает
ограничение на объем основной памяти 2 GB, что открывает новые
возможности в отношении увеличения производительности при обслуживании
большего числа пользователей и гостевых систем.
Архитектура и основные компоненты z/VM
Операционная система z/VM построена в соответствии с концепцией
интеграции компонентов и включает базовые и опциональные элементы.
Базовые элементы служат для поддержки наиболее важных функций и
сервисов системы и всегда включаются в установочный пакет z/VM.
Опциональные элементы обеспечивают поддержку дополнительных функций
операционной системы и могут заказываться по отдельности по желанию
пользователя. Полный перечень элементов z/VM представлен в приложении
7. В данной главе будут рассмотрены наиболее важные базовые компоненты
z/VM, такие как управляющая программа CP и диалоговый монитор CMS, и
показаны основные механизмы ее функционирования.
Управляющая программа z/VM
Управляющая программа CP (Control Program) z/VM выполняет функции
менеджера виртуальных машин, включая создание программных образов
виртуальных машин для каждого пользователя, распределение ресурсов
физической ЭВМ между виртуальными машинами, а также организацию
взаимодействия между приложениями, выполняющимися на разных виртуальных
машинах. По этой причине управляющую программу CP иногда называют гипервизором (hypervisor).
Виртуальные машины, создаваемые управляющей программой CP, различаются
по режиму работы . Для работы на серверах zSeries обычно выбирают
режим ESA (или эквивалентный XA). В этом случае, если управляющая
программа сконфигурирована для работы в 32-разрядном режиме,
виртуальная машина будет соответствовать архитектуре ESA/390. Для
64-разрядной инсталляции CP данный режим позволяет выполнять как
32-разрядные, так и 64-разрядные приложения, используя все возможности
z/Architecture. Режим XC основан на так называемой ESA/XC архитектуре,
обеспечивающей разделяемый доступ виртуальных машин к пространствам
данных z/VM.
Виртуальная машина может получить в свое распоряжение до 64 виртуальных
процессоров, которые будут предоставляться гостевой ОС для
диспетчеризации выполняемых ею работ. При этом будет использоваться
лишь некоторое число реальных процессоров, среди которых могут быть
процессоры, закрепленные за данной виртуальной машиной, или же
разделяемые с другими.
Управление памятью в z/VM основано на концепции множественных
виртуальных адресных пространств размером 2 GB для 32-разрядного режима
и 16 ЕB для 64-разрядного. Управляющая программа CP всегда размещается
в первой секции любого адресного пространства (рис. 5.66). По запросу
пользователя CP создает виртуальную машину, выделяя ей новое адресное
пространство, и загружает туда диалоговый монитор CMS или гостевую
операционную систему. Диалоговый монитор является "штатной"
операционной системой в составе z/VM, ориентированной на поддержку
пользователя. После этого средствами CMS или операционных систем в
адресные пространства может производиться загрузка собственных
приложений.
(рис 5.66) Виртуальные адресные пространства z/VMС точки зрения используемой конфигурации памяти различают три типа
виртуальных машин:
V=R (Virtual=Real) машина получает в свое распоряжение фиксированный
непрерывный участок основной памяти, начинающийся с нулевого адреса.
V=F (Virtual=Fixed) машина получает в свое распоряжение фиксированный
непрерывный участок основной памяти, начинающийся с адреса, отличного
от нулевого.
V=V (Virtual=Virtual) машина не может непосредственно использовать
основную память.
Первые два типа относят к привилегированным типам виртуальных машин. На
таких машинах управление выделенной основной памятью берет на себя
гостевая ОС в соответствии с ее внутренними механизмами. В третьем
случае виртуальной машине выделяется виртуальная память, управляемая
CP. Она имеет страничную организацию и поддерживает стандартный
механизм динамического преобразования адресов с возможностью
межпространственной связи на основе регистров доступа.
Использование периферийных устройств виртуальной машиной производится
одним из четырех способов. Способ закрепления (exclusive) означает
выделение реального устройства в полное распоряжение виртуальной
машины. Способ разделения (shared) допускает одновременное
использование реального устройства несколькими виртуальными машинами. Способ накопления (spooled) основан на выделении реальному устройству
области жесткого диска (спула), которая используется для накопления
вводимой и выводимой информации. Обмен данными между спулом и реальным
устройством контролируется управляющей программой. Способ симуляции
(simulated) означает программное моделирование работы некоторых
устройств, которые физически не используются в системе (например,
сетевые устройства связи для взаимодействия виртуальных машин).
Для работы с управляющей программой CP пользователю предоставляется
набор команд, с помощью которых производится создание и
конфигурирование виртуальных машин, администрирование пользователей,
управление устройствами, информирование о работе системы и т.д. Доступ
к z/VM осуществляется через консоль, назначаемую терминальному
устройству или эмулируемую на рабочей станции. Множество команд,
доступных пользователю, и, следовательно, возможности управления
зависят от установленного для данного пользователя класса (классов)
привилегий. В z/VM установлено семь основных стандартных классов
привилегий, обозначаемых латинскими буквами A-G, в соответствии с ролью
пользователя в системе :
A (системный оператор) - управление системой виртуальных машин и
доступом пользователей к системе, настройка параметров
производительности и сбор информации о системе;
B (системный оператор ресурсов) - управление всеми реальными
устройствами z/VM;
C (системный программист) - настройка системных конфигурационных
параметров;
D (оператор спула) - управление устройствами, использующими метод
накопления, и настройка спула;
E (системный аналитик) - контроль и управление хранением системных
данных;
F (инженер по сервисному обслуживанию) - получение и анализ данных о
работе оборудования;
G (обычный пользователь) - управление работой отдельной виртуальной
машины;
Кроме перечисленных, поддерживается класс команд Any, доступных любому
пользователю, независимо от привилегий, а также существует возможность
создавать пользовательские классы для собственных нужд.
Важнейшим элементом управляющей программы CP является создаваемый
системным оператором справочник пользователей (user directory),
содержащий описание всех виртуальных машин, которые могут быть запущены
в системе. Каждый элемент справочника содержит перечень основных
параметров виртуальной машины, включающий: идентификатор пользователя
(logon ID) и пароль, класс привилегий, начальную конфигурацию
используемых устройств, объем памяти, режим работы, параметры
использования процессорного времени и некоторые другие. Обычно
справочник пользователей создается на этапе инсталляции системы, но
может быть изменен в процессе работы.
Запуск зарегистрированной в справочнике виртуальной машины производится
по инициативе пользователя, когда он вводит команду LOGON. После
завершения инициализации на основе указанных параметров пользователь
получает возможность выполнять различные команды в соответствии с
назначенным классом привилегий, в том числе запустить диалоговый
монитор CMS или гостевую операционную систему.
Диалоговый монитор z/VM
Диалоговый монитор CMS (Conversational Monitor System) является базовым
компонентом z/VM и представляет собой высокопроизводительную
операционную среду, ориентированную на поддержку интерактивных
пользователей при решении следующих задач :
создание, отладка и тестирование прикладных программ для
использования в CMS или гостевых ОС;
выполнение приложений, разработанных для CMS или гостевых ОС;
создание и редактирование файлов данных;
манипулирование файлами данных;
выполнение заданий в пакетном режиме;
разделение данных между CMS и гостевыми ОС;
организация взаимодействия между пользователями CMS и гостевых ОС.
Диалоговый монитор запускается на отдельной виртуальной машине либо по
команде пользователя ( IPL CMS ), либо автоматически при запуске
виртуальной машины, если есть соответствующее указание в справочнике
пользователей CP. Фактически CMS выполняет две главные функции:
обеспечивает поддержку интерфейса для конечного пользователя z/VM и
предоставляет интерфейс прикладного программирования (API) для
пользовательских приложений.
В среде CMS пользователь сохраняет возможность использования команд
управляющей программы CP, а также располагает набором собственных
команд CMS, предназначенных для создания и выполнения приложений,
управления данными, в том числе с использованием полноэкранных
диалоговых средств.
Диалоговый монитор содержит необходимые средства для организации
хранения и доступа к данным во внешней памяти. Для дисковых устройств
(DASD) поддерживается три основных типа файловых систем:
базовая файловая система CMS на мини-дисках;
разделяемая файловая система SFS;
байтовая файловая система BFS.
Основной единицей хранения данных в CMS являются файлы. Имя файла
состоит из собственно имени и типа файла, разделенных точкой. Имя и тип
могут содержать до восьми алфавитно-цифровых и некоторых специальных
символов, например: PRG#1.ASSEMBLE, BATCH:X.SOURCE, CHANGE.EXEC, MY_DOC.TEXT и т.п. Некоторые значения типов файлов являются
стандартными и формируются системой автоматически. Помимо имени файл
характеризуется двумя атрибутами: буквенным (file mode letter) и
числовым (file mode number). Буквенный атрибут (A-Z) указывает на место
размещения файла (мини-диск или директория SFS), а числовой (0-6) - на
режим использования и обслуживания файла. Например, числовой атрибут 1
означает возможность использования файла для чтения и записи, числовой
атрибут 3 предписывает уничтожить файл после чтения и т.п. Файлы CMS
различаются по формату логических записей (постоянной или переменной
длины), однако в большинстве случаев система определяет необходимые
характеристики записей автоматически. CMS поддерживает необходимый
набор команд для обслуживания файлов (создание, редактирование,
копирование, удаление и др.).
Файлы z/VM могут размещаться либо на так называемых мини-дисках, либо в
файловом пространстве разделяемой файловой системы SFS (Shared File
System).
Мини-диск представляет собой непрерывный участок реального дискового
накопителя, состоящий из смежных цилиндров (вплоть до целого диска). С
точки зрения пользователя мини-диски являются аналогом независимого
дискового тома. Каждый мини-диск характеризуется логическим номером,
именем (меткой), объемом выделенного пространства (в цилиндрах),
режимом разрешенного доступа. В z/VM могут использоваться три типа
мини-дисков:
постоянные - определяются в справочнике пользователя виртуальной
машины и доступны в рамках каждого пользовательского сеанса;
временные - создаются в ходе пользовательского сеанса и автоматически
уничтожаются при его завершении;
виртуальные - эмулируются по запросу пользователя в виртуальной
памяти (не используют реальный диск).
Мини-диски могут быть доступны только одной виртуальной машине, но
могут при соответствующей авторизации использоваться несколькими
виртуальными машинами совместно.
Каждый мини-диск располагает главным каталогом (master file directory),
в котором описаны атрибуты размещения всех хранящихся на мини-диске
файлов, используемые для доступа.
Разделяемая файловая система SFS (Shared File System) является
расширением базовой файловой системы CMS и обеспечивает более
эффективное использование дискового пространства, а также возможность
совместного доступа к файлам других виртуальных машин при наличии
соответствующей авторизации. Для размещения файлов в SFS для всех
виртуальных машин (пользователей) предоставляется место в специальным
образом сконфигурированной области жесткого диска, называемой файловый
пул (file pool). Файлы могут объединяться в соподчиненные каталоги
(directory), как это происходит в иерархических файловых системах,
правда количество уровней подчиненности ограничено восемью. Каталогам
присваиваются имена (dirname), состоящие не более чем из 16
алфавитно-цифровых символов. Старший в иерархии каталог (top directory)
создается автоматически при выделении пользователю места в файловом
пуле и его имя совпадает с именем пользователя.
Пользователь имеет неограниченный доступ к собственным файлам и
каталогам, в то время как хранящиеся в том же пуле файлы других
пользователей обычно недоступны. В SFS существует возможность
организации совместного (разделяемого) доступа к файлам путем передачи
полномочий другим пользователям от пользователя-владельца. При этом
управление доступом может производиться на уровне как отдельных файлов,
так и целых каталогов.
z/VM предоставляет возможность реализации эффективных средств
администрирования и управления файлами и каталогами SFS с помощью
компонента DFSMS/VM. Данный компонент может автоматически производить,
например, удаление файлов с истекшим сроком хранения, архивирование,
резервное копирование и восстановление файлов, если для файла
установлено соответствующее значение атрибута "класс управления"
(management class).
Компонент z/VM OpenExtensions обеспечивает поддержку еще одного типа
файловой системы, получившей название байтовая файловая система BFS
(Byte File System), использующая иерархическую организацию хранения
файлов, характерную для операционной системы UNIX. Аналогичную
структуру имеет файловая система HFS операционной системы z/OS,
рассмотренная в п. 5.1.6. Название BFS подчеркивает особенность
внутренней организации файлов UNIX как байт-ориентированных, т.е. не
разделяемых на уровне ОС на логические записи. В z/VM поддерживаются
средства копирования и перемещения файлов между BFS и базовой файловой
системой CMS.
Виртуализация сетевого взаимодействия в z/VM
Обмен данными между гостевыми операционными системами в z/VM основан на
организации виртуальных сетей, которые обеспечивают взаимодействие без
использования реальных сетевых устройств. Очевидно, что такое решение
существенно увеличивает скорость обмена без каких-либо дополнительных
расходов.
В z/VM поддерживается три типа виртуальных сетей.
Виртуальный канал vCTC (Virtual Channel-to-Channel) - обеспечивает
прямое соединение ("точка-точка") между гостевыми системами в
соответствии с канальным протоколом, реализуемым в реальном устройстве
CTC.
Межпользовательский коммуникационный передатчик IUCV (Inter-user
communication vehicle) - используется для прямого взаимодействия
("точка-точка") между виртуальными машинами на основе TCP/IP-протокола.
Гостевая локальная вычислительная сеть (VM Guest LAN) - базируется на
эмуляции локальной вычислительной сети для множества гостевых систем.
Два варианта реализации: первый основан на применении технологии
HiperSockets, а второй использует эмуляцию реальной сети на базе
адаптеров OSA.
На рис. 5.67 представлен пример виртуальной сети z/VM, которая может
быть построена c использованием указанных выше возможностей. Две группы
гостевые операционных систем (G11-G1N и G21-G2N) образуют две
виртуальных подсети типа VM Guest LAN, каждая из которых
взаимодействует со "своим" виртуальным маршрутизатором. Виртуальный
маршрутизатор представляет собой отдельную виртуальную машину,
связанную через реальный сетевой интерфейс (здесь использован адаптер
OSA) с внешней вычислительной сетью. Взаимодействие маршрутизатора с
гостевыми ОС может быть организовано любым способом, включая vCTC, IUCV
или виртуальный HiperSockets.
(рис 5.67) Виртуальная сеть z/VMОтметим, что область действия виртуальной сети ограничена рамками
одного образа z/VM, то есть не может быть использована для
взаимодействия между системами, работающими в различных логических
разделах LPAR.
Операционная система Linux на платформе zSeries
Общая характеристика ОС Linux
Операционная система Linux, разработанная в начале 90-х годов по
инициативе энтузиаста-одиночки, в настоящее время превратилась в
полноценную, высокоэффективную и надежную серверную ОС, получившую
признание и широкое распространение во всем мире. Одной из важнейших
отличительных особенностей Linux является открытость исходного кода,
что дает возможность контролировать ее использование и при
необходимости вносить изменения. Операционная система Linux (любые
дистрибутивы и версии) распространяется на основе генеральной
общественной лицензии GPL (General Public License), позволяющей
свободно использовать, модифицировать и распространять программные
продукты в первоначальном или измененном виде, как на коммерческой, так
и на некоммерческой основе. Благодаря участию в разработке и
тестировании ОС Linux сотен тысяч программистов во всем мире,
программный код системы быстро развивается и совершенствуется. Это
создало предпосылки для признания Linux в качестве системы с высокой
степенью надежности и безопасности, подтвержденной международным
сертификатом Common Criteria (ISO/IEC 15408). Данный сертификат
свидетельствует о возможности использования Linux при решении
критически важных задач, например, в банковских и военных системах.
В 1999 году IBM завершила работу по переносу и адаптации операционной
системы Linux для платформы S/390. Этот неожиданный для многих
специалистов "ход" позволил объединить два принципиально различных
направления в использовании средств вычислительной техники: системы
обработки данных на базе мэйнфреймов с акцентом на высокую
производительность и безопасность и независимую от аппаратной платформы
операционную систему с открытым исходным кодом. Данное решение
оказалось чрезвычайно привлекательным и продуктивным для многих
пользователей в силу следующих причин:
большое количество существующих и высокий темп появления новых
приложений для Linux, причем большая часть из них распространяется
бесплатно;
возможность переноса UNIX-приложений в Linux;
обеспечение высокой степени переносимости приложений между всеми
платформами, поставляемыми IBM;
поддержка программного обеспечения промежуточного слоя, выпускаемого
компанией IBM: DB2 UDB, MQSeries, Websphere Application Server,
продукты семейства Tivoli, IBM Java Virtual Machine;
гибкость, открытость, надежность и безопасность Linux в сочетании с
классическими преимуществами мэйнфреймов;
высокая степень масштабируемости за счет возможности объединения
большого числа Linux-серверов на одной машине;
снижение расходов на эксплуатацию и развитие системы.
Linux для zSeries поддерживает все стандарты и интерфейсы, принятые в
других версиях Linux. В частности, используется стандарт кодирования
символов ASCII, применяются традиционные пользовательские интерфейсы
(shell и XWindow), поддерживаются стандарты POSIX и XPG, обеспечивающие
переносимость приложений на уровне исходного кода между различными
платформами, используются общие средства разработки, реализуются
многочисленные сетевые сервисы на базе протокола TCP/IP.
Архитектура ОС Linux
Linux создавалась как UNIX-подобная операционная система, поэтому
принципы ее архитектуры мало чем отличаются от стандартной UNIX.
Базовым элементом Linux является ядро (kernel), которое непосредственно
взаимодействует с аппаратной частью компьютера, изолируя прикладные
программы от особенностей его архитектуры. Ядро обеспечивает выполнение
основных функций операционной системы, включая управление процессами и
памятью, поддержку файловой системы и управление вводом-выводом.
Напомним, что процессами в Linux называют находящиеся в стадии
выполнения программы, которые претендуют на получение имеющихся
аппаратных ресурсов и данных.
Управление процессами осуществляется планировщиком процессов
(scheduler), который создает процессы и управляет распределением
ресурсов между ними. В частности, планировщик управляет выделением
квантов процессорного времени и осуществляет диспетчеризацию процессов,
выбирая для выполнения процесс с наивысшим приоритетом. Для
взаимодействия между процессами поддерживается механизм обмена
управляющими сигналами, а также обеспечивается возможность обмена
данными между различными процессами.
Управление памятью основано на методе страничной организации
виртуальной памяти, реализуемом в соответствии с аппаратными
особенностями той или иной платформы.
Файловая система Linux обеспечивает унифицированный интерфейс доступа к
данным, расположенным на дисковых накопителях и других периферийных
устройствах. Файловая система имеет иерархическую организацию, с
возможностью объединения файлов в соподчиненные каталоги. Логически
данная организация в точности соответствует рассмотренной нами ранее
файловой системе HFS UNIX. Файловая система контролирует права доступа
к файлу при выполнении различных операций, основываясь на статусе и
привилегиях пользователя и запущенных им приложений. Следует отметить,
что все периферийные устройства рассматриваются как элементы единой
файловой системы Linux.
Управление вводом-выводом заключается в выполнении запросов файловой
системы и модуля управления процессами на доступ к различным
периферийным устройствам (дискам, принтерам, пользовательским
терминалам, сетевым адаптерам и т.п.). При выполнении операций
ввода-вывода организуется разделяемый доступ к устройствам и
обеспечивается необходимая буферизация данных. Программную основу
ввода-вывода составляют драйверы устройств.
Помимо ядра Linux включает набор утилит и вспомогательных программ,
предназначенных для администрирования системы, обслуживания устройств,
реализации дополнительных сервисов, разработки приложений и т.д. Особое
место здесь занимают средства поддержки пользовательского интерфейса
Linux, включающие как традиционные для UNIX-систем версии командного
интерпретатора shell, так и графические оболочки (KDE, Gnome).
Взаимодействие вспомогательных программ (так же, как и пользовательских
приложений) с ядром происходит посредством стандартного интерфейса
системных вызовов. Интерфейс системных вызовов (API) представляет собой
набор услуг ядра и определяет формат запросов на услуги. Процесс
запрашивает услугу посредством системного вызова определенной процедуры
ядра, внешне похожего на вызов обычной библиотечной функции.
Сегодня на рынке предлагается несколько различных дистрибутивов Linux
от разных поставщиков, предназначенных для установки на различные
платформы и в том числе на серверы S/390 и zSeries. IBM рекомендует к
использованию три основных дистрибутива :
SuSe Linux Enterprise Server
Turbolinux Server
Red Hat Enterprise Linux
Указанные дистрибутивы используют одно и то же ядро Linux (в настоящее
время используется версия 2.6), стандартный набор утилит и
компиляторов, общие библиотеки разработки и единый интерфейс системных
вызовов (API), а также другие компоненты, характерные для любой версии
Linux и независимые от платформы. В частности, дистрибутивы Linux
традиционно включают поддержку инфраструктурных сетевых сервисов, таких
как DNS, DHCP, NFS, а также установочные пакеты Web-сервера Apache,
proxy-сервера Squid, почтового сервера SMTP и др.
В то же время версии, ориентированные на серверы S/390 и zSeries,
включают ряд специфических аппаратно-зависимых компонентов и функций.
Помимо базовых средств Linux каждый разработчик обычно включает в
дистрибутив несколько эксклюзивных "фирменных" компонентов,
предназначенных для поддержки дополнительных сервисов и средств
администрирования. В приложении 8 представлены основные функциональные
компоненты дистрибутива SuSe Linux Enterprise Server. Как было отмечено
выше, IBM предлагает практически все свои основные программные продукты
промежуточного слоя (middleware) для использования в Linux. Перечень
этих продуктов представлен в приложении 9.
Особенности реализации ОС Linux на платформе zSeries
Первая версия Linux для мэйнфреймов (Linux for S/390) может
устанавливаться на серверы S/390 и z900 и поддерживает только
31-разрядный режим работы. Выпущенная в 2001 году версия Linux for
zSeries поддерживает 64-разрядную архитектуру zSeries как в реальном,
так и в виртуальном режиме, и может устанавливаться на все серверы
классов z800 и z900.
Важной особенностью применения операционной системы Linux для zSeries
является использование во всех моделях серверов специализированных
процессорных устройств IFL (Integrated Facility for Linux). Эти
устройства ориентированы исключительно на поддержку рабочих нагрузок ОС
Linux, запускаемой в режиме LPAR, в том числе и под управлением z/VM.
Процессоры IFL не приводят к увеличению платы за программное
обеспечение zSeries, выполняемое на других процессорах.
Существует три основных варианта установки и использования образов
операционной системы Linux на платформе zSeries (:
Базовый (native).
В логические разделы (LPAR).
В качестве гостевой системы z/VM.
(рис 5.68) Варианты установки Linux: базовый (a), в логические разделы LPAR (b), в качестве гостевой ОС в z/VM (с)В базовом варианте Linux является единственной операционной системой,
устанавливаемой на сервер, и полностью использует все имеющиеся
ресурсы, включая процессоры, физическую память и устройства
ввода-вывода. Недостатком такого способа является необходимость
использования аппаратной консоли для перезагрузки системы. На
платформах z/990 и z/890 данный вариант не поддерживается.
Во втором варианте установка Linux производится в логические разделы
LPAR с возможностью использования выделенной части физической памяти и
некоторого числа процессоров. В этом варианте может быть запущено
несколько независимых образов Linux или других операционных систем,
каждая в своем логическом разделе (всего до 30 LPAR). Однако при
загрузке и перезагрузке раздела Linux, а также для переопределения
параметров раздела требуется доступ к аппаратной консоли.
В третьем варианте Linux запускается в качестве гостевой операционной
системы под управлением z/VM на одной или нескольких виртуальных
машинах. При этом может быть запущено несколько сотен образов Linux
вместе с образами других операционных систем и диалоговыми мониторами
CMS. Количество используемых виртуальных машин ограничивается
имеющимися ресурсами системы. Разделяемый доступ к устройствам, а также
высокоскоростное взаимодействие между гостевыми системами в этом случае
поддерживаются на уровне z/VM. Важным преимуществом данного варианта
является использование каждой виртуальной машиной собственной
защищенной виртуальной системной консоли, доступ к которой может быть
организован с помощью стандартных сетевых средств (telnet, rlogin,
TN3270 и т.п.). Это позволяет осуществлять удаленное администрирование
образов Linux, включая загрузку и перезагрузку системы. Конечно,
использование данного варианта установки Linux потребует знаний и
навыков работы в операционной системе z/VM.
В любом варианте установки начальная загрузка Linux производится по
локальной сети с предварительным размещением установочных файлов
(пакетов) на FTP- или NFS-сервере.
Основные коммуникационные возможности Linux для zSeries реализуются на
основе протокола TCP/IP с помощью сетевого адаптера OSA, который
поддерживает стандарты Token-Ring, Ethernet, Fast Ethernet, FDDI и ATM.
Кроме того, реализована поддержка адаптера "канал-канал" (CTCA), а
также возможность прямого взаимодействия с другими системами и
устройствами, используемыми на платформе zSeries. В качестве гостевой
системы z/VM Linux поддерживает все средства виртуализации сетевого
взаимодействия, включая vCTC, IUCV, а также VM Guest LAN.
Системные решения на основе z/VM и Linux
Как уже отмечалось, одним из вариантов применения Linux на платформе
zSeries является использование инсталляции Linux в качестве гостевой
операционной системы в составе z/VM. Этот вариант представляется
наиболее гибким с точки зрения использования возможностей платформы
zSeries и рекомендуется IBM как самый экономичный и эффективный для
большого числа систем электронного бизнеса .
z/VM позволяет устанавливать сотни образов Linux на один сервер,
обеспечивая все необходимые средства для поддержки требуемой
функциональности и организации эффективного взаимодействия между ними.
Такая возможность, получившая название консолидация серверов (рис.
5.69), является хорошей альтернативой для построения распределенных
корпоративных информационных систем, использующих большое число
функциональных серверов на различных платформах (Intel, HP, Sun и др.).
Решение, основанное на использовании консолидированных серверов Linux
на платформе zSeries, наряду с ее общими достоинствами дает следующие
неоспоримые преимущества:
уменьшение штата администраторов и расходов на администрирование и
техническое обслуживание;
снижение времени и расходов на установку (образ Linux может быть
инсталлирован за несколько минут);
использование технологии виртуальных сетей для организации
взаимодействия серверов Linux (повышает быстродействие, избавляет от
необходимости приобретать сетевое оборудование и строить кабельную
систему);
использование общего дискового пространства (приводит к устранению
дублирования данных);
более эффективное использование процессорного времени и других
ресурсов (сокращение времени простоев, увеличение загрузки).
(рис 5.69) Консолидация серверов Linux на базе z/VMПри возрастании нагрузки консолидированная система легко
масштабируется, как вертикально, так и горизонтально. Вертикальное
масштабирование означает увеличение количества системных ресурсов,
предоставляемых виртуальной машине. Горизонтальное масштабирование
реализуется путем добавления необходимого числа виртуальных машин с
образами Linux. Новый виртуальный сервер Linux конфигурируется в
течение нескольких минут, при этом затраты несопоставимы с установкой
дополнительного реального сервера. Эффект от масштабирования возрастает
при использовании виртуальных дисков, так как при этом данные
размещаются в основной памяти. Важным достоинством консолидированного
решения является возможность динамического (on line) перераспределения
ресурсов между серверами Linux при изменении рабочей нагрузки.
Использование Linux под управлением z/VM создает удобные возможности
для разработки, отладки и тестирования информационных систем,
использующих zSeries, поскольку среда z/VM является более гибкой и
простой в обслуживании, нежели логические разделы LPAR. z/VM включает
встроенные средства отладки, позволяющие запускать виртуальные машины в
пошаговом режиме, устанавливать контрольные точки, проверять содержимое
памяти и регистров. Возможности тестирования расширяются за счет
эмуляции устройств, которые могут физически отсутствовать в данной
конфигурации.
Рассмотрим еще один пример, иллюстрирующий способ повышения
эффективности функционирования информационной системы и сокращения
эксплуатационных затрат за счет перехода с трехуровневой на
двухуровневую архитектуру, построенную на основе технологий, доступных
на платформе zSeries. На рис. 5.70 показано, каким образом можно
осуществить такой переход. В трехуровневой системе (a) роль сервера
данных традиционно отводится мэйнфрейму, работающему под управлением
OS/390 или z/OS на платформе S/390 (z900). В то же время бизнес-логика
размещается на множестве распределенных серверов приложений,
использующих менее мощные серверные компьютеры.
Перенос серверов приложений в среду виртуальных машин Linux, работающих
под управлением z/VM на платформе z900 (z990), позволяет получить
двухуровневую аппаратную конфигурацию (b). Образы операционных систем
z/OS и z/VM выполняются в отдельных логических разделах LPAR. При этом
реальная вычислительная сеть, связывающая серверы данных с серверами
приложений, заменяется средствами, реализуемыми технологией
HiperSockets, которая обеспечивает эмуляцию сетевого соединения между
LPAR-системами на основе прямого высокоскоростного взаимодействия по
принципу "память-память". Взаимодействие между серверами приложений
Linux может быть построено на основе виртуальной гостевой сети VM Guest
LAN.
Следует обратить внимание, что такая реконфигурация, получившая
название "интеграция приложений", не потребует перепроектирования
программного обеспечения информационной системы, сохраняя на
программном и логическом уровнях по-прежнему трехуровневое
взаимодействие.
(рис 5.70) Переход с трехуровневой (a) на двухуровневую (b) архитектуру информационной системы
Назначение и возможности z/VM
Операционная система z/VM представляет второе направление операционных
систем IBM, ориентированных на платформу zSeries. z/VM построена на
основе концепции " виртуальных машин " (Virtual Machine), которая
означает, что в рамках одной системы может одновременно функционировать
множество виртуальных машин, каждая из которых функционально
эквивалентна реальной ЭВМ. Каждая виртуальная машина использует свою
часть ресурсов системы (процессорное время, оперативную память,
периферийные устройства).
Таким образом, z/VM, разделяя ресурсы ЭВМ между множеством виртуальных
машин, предоставляет возможность параллельной работы на одном сервере
как отдельных пользователей и системно-независимых приложений, так и
различных операционных систем, включая диалоговый монитор z/VM, а также
OS/390, z/OS, Linux и др. Операционные системы, запускаемые в рамках
виртуальной машины z/VM, называют гостевыми. Гостевые операционные
системы конфигурируются как независимые системы для поддержки своего
круга пользователей и решения определенного набора задач. z/VM
поддерживает в качестве гостевых операционные системы, предназначенные
для z/Architecture и архитектуры ESA/390.
Возможности виртуальных машин z/VM позволяют использовать их для
решения широкого круга практических задач, среди которых необходимо
выделить следующие:
тестирование новых системных, телекоммуникационных и других
приложений, которое нецелесообразно проводить в рабочем режиме из-за
возможности сбоев или краха операционной системы;
тестирование и настройка новых версий операционных систем параллельно
с функционированием старых версий в рабочем режиме;
проведение обучения и тренинга персонала.
z/VM может служить основой для создания и развертывания гетерогенных
корпоративных систем масштаба предприятия благодаря поддержке целого
ряда промышленных стандартов, протоколов и интерфейсов. В частности,
z/VM располагает современными средствами поддержки сетевых вычислений
(Internet/intranet) на основе TCP/IP, SNA, Java и многочисленных
сетевых протоколов, таких как Ethernet, FDDI, FTP, VLAN, NFS, SMTP,
Token Ring, UDP, X.25, X-Windows, SNMP, NetView. z/VM поддерживает
стандарты открытых систем POSIX и XPG, предоставляя интерфейс системных
вызовов для UNIX-приложений и пользовательскую среду shell в рамках
сервиса разработки приложений OpenExtensions. Это позволяет как
выполнять готовые POSIX-совместимые приложения, так и разрабатывать
новые.
Одна из важных областей применения z/VM - использование в качестве
серверной платформы для поддержки клиентов локальных вычислительных
сетей. Данное решение предоставляет огромному числу пользователей все
преимущества мэйнфрейма, включая высокую надежность и
производительность, большие объемы внешней памяти, быстрые
коммуникации. В частности, поддерживаемый z/VM клиент-серверный продукт
Tivoli Storage Manager for VM обеспечивает резервное копирование,
архивирование и восстановление файлов рабочих станций, работающих под
управлением MS Windows, Linux, Apple Macintosh и OS/2. Значительное
внимание IBM уделяет архитектурным решениям, основанным на консолидации
Linux-серверов под управлением z/VM.
Предшественницей z/VM была операционная система VM/ESA, ориентированная
на 32-разрядную платформу S/390. В VM/ESA были реализованы основные
технологические принципы и решения, положенные в основу z/VM. Первая
версия z/VM V3R1, представленная в 2000 году, как и последующие
выпуски, обеспечивают полную поддержку как существующих серверов
zSeries, так и серверов S/390 (Parallel Enterprise Server G5/G6,
Multiprise 3000). При установке z/VM на серверы zSeries появляется
возможность в качестве гостевых систем использовать 64-разрядные OS/390
V2R10, z/OS и Linux для zSeries, а также операционные системы ESA/390,
в том числе OS/390, VSE/ESA, TPF и Linux для S/390. z/VM снимает
ограничение на объем основной памяти 2 GB, что открывает новые
возможности в отношении увеличения производительности при обслуживании
большего числа пользователей и гостевых систем.
Архитектура и основные компоненты z/VM
Операционная система z/VM построена в соответствии с концепцией
интеграции компонентов и включает базовые и опциональные элементы.
Базовые элементы служат для поддержки наиболее важных функций и
сервисов системы и всегда включаются в установочный пакет z/VM.
Опциональные элементы обеспечивают поддержку дополнительных функций
операционной системы и могут заказываться по отдельности по желанию
пользователя. Полный перечень элементов z/VM представлен в приложении
7. В данной главе будут рассмотрены наиболее важные базовые компоненты
z/VM, такие как управляющая программа CP и диалоговый монитор CMS, и
показаны основные механизмы ее функционирования.
Управляющая программа z/VM
Управляющая программа CP (Control Program) z/VM выполняет функции
менеджера виртуальных машин, включая создание программных образов
виртуальных машин для каждого пользователя, распределение ресурсов
физической ЭВМ между виртуальными машинами, а также организацию
взаимодействия между приложениями, выполняющимися на разных виртуальных
машинах. По этой причине управляющую программу CP иногда называют гипервизором (hypervisor).
Виртуальные машины, создаваемые управляющей программой CP, различаются
по режиму работы . Для работы на серверах zSeries обычно выбирают
режим ESA (или эквивалентный XA). В этом случае, если управляющая
программа сконфигурирована для работы в 32-разрядном режиме,
виртуальная машина будет соответствовать архитектуре ESA/390. Для
64-разрядной инсталляции CP данный режим позволяет выполнять как
32-разрядные, так и 64-разрядные приложения, используя все возможности
z/Architecture. Режим XC основан на так называемой ESA/XC архитектуре,
обеспечивающей разделяемый доступ виртуальных машин к пространствам
данных z/VM.
Виртуальная машина может получить в свое распоряжение до 64 виртуальных
процессоров, которые будут предоставляться гостевой ОС для
диспетчеризации выполняемых ею работ. При этом будет использоваться
лишь некоторое число реальных процессоров, среди которых могут быть
процессоры, закрепленные за данной виртуальной машиной, или же
разделяемые с другими.
Управление памятью в z/VM основано на концепции множественных
виртуальных адресных пространств размером 2 GB для 32-разрядного режима
и 16 ЕB для 64-разрядного. Управляющая программа CP всегда размещается
в первой секции любого адресного пространства (рис. 5.66). По запросу
пользователя CP создает виртуальную машину, выделяя ей новое адресное
пространство, и загружает туда диалоговый монитор CMS или гостевую
операционную систему. Диалоговый монитор является "штатной"
операционной системой в составе z/VM, ориентированной на поддержку
пользователя. После этого средствами CMS или операционных систем в
адресные пространства может производиться загрузка собственных
приложений.
(рис 5.66) Виртуальные адресные пространства z/VMС точки зрения используемой конфигурации памяти различают три типа
виртуальных машин:
V=R (Virtual=Real) машина получает в свое распоряжение фиксированный
непрерывный участок основной памяти, начинающийся с нулевого адреса.
V=F (Virtual=Fixed) машина получает в свое распоряжение фиксированный
непрерывный участок основной памяти, начинающийся с адреса, отличного
от нулевого.
V=V (Virtual=Virtual) машина не может непосредственно использовать
основную память.
Первые два типа относят к привилегированным типам виртуальных машин. На
таких машинах управление выделенной основной памятью берет на себя
гостевая ОС в соответствии с ее внутренними механизмами. В третьем
случае виртуальной машине выделяется виртуальная память, управляемая
CP. Она имеет страничную организацию и поддерживает стандартный
механизм динамического преобразования адресов с возможностью
межпространственной связи на основе регистров доступа.
Использование периферийных устройств виртуальной машиной производится
одним из четырех способов. Способ закрепления (exclusive) означает
выделение реального устройства в полное распоряжение виртуальной
машины. Способ разделения (shared) допускает одновременное
использование реального устройства несколькими виртуальными машинами. Способ накопления (spooled) основан на выделении реальному устройству
области жесткого диска (спула), которая используется для накопления
вводимой и выводимой информации. Обмен данными между спулом и реальным
устройством контролируется управляющей программой. Способ симуляции
(simulated) означает программное моделирование работы некоторых
устройств, которые физически не используются в системе (например,
сетевые устройства связи для взаимодействия виртуальных машин).
Для работы с управляющей программой CP пользователю предоставляется
набор команд, с помощью которых производится создание и
конфигурирование виртуальных машин, администрирование пользователей,
управление устройствами, информирование о работе системы и т.д. Доступ
к z/VM осуществляется через консоль, назначаемую терминальному
устройству или эмулируемую на рабочей станции. Множество команд,
доступных пользователю, и, следовательно, возможности управления
зависят от установленного для данного пользователя класса (классов)
привилегий. В z/VM установлено семь основных стандартных классов
привилегий, обозначаемых латинскими буквами A-G, в соответствии с ролью
пользователя в системе :
A (системный оператор) - управление системой виртуальных машин и
доступом пользователей к системе, настройка параметров
производительности и сбор информации о системе;
B (системный оператор ресурсов) - управление всеми реальными
устройствами z/VM;
C (системный программист) - настройка системных конфигурационных
параметров;
D (оператор спула) - управление устройствами, использующими метод
накопления, и настройка спула;
E (системный аналитик) - контроль и управление хранением системных
данных;
F (инженер по сервисному обслуживанию) - получение и анализ данных о
работе оборудования;
G (обычный пользователь) - управление работой отдельной виртуальной
машины;
Кроме перечисленных, поддерживается класс команд Any, доступных любому
пользователю, независимо от привилегий, а также существует возможность
создавать пользовательские классы для собственных нужд.
Важнейшим элементом управляющей программы CP является создаваемый
системным оператором справочник пользователей (user directory),
содержащий описание всех виртуальных машин, которые могут быть запущены
в системе. Каждый элемент справочника содержит перечень основных
параметров виртуальной машины, включающий: идентификатор пользователя
(logon ID) и пароль, класс привилегий, начальную конфигурацию
используемых устройств, объем памяти, режим работы, параметры
использования процессорного времени и некоторые другие. Обычно
справочник пользователей создается на этапе инсталляции системы, но
может быть изменен в процессе работы.
Запуск зарегистрированной в справочнике виртуальной машины производится
по инициативе пользователя, когда он вводит команду LOGON. После
завершения инициализации на основе указанных параметров пользователь
получает возможность выполнять различные команды в соответствии с
назначенным классом привилегий, в том числе запустить диалоговый
монитор CMS или гостевую операционную систему.
Диалоговый монитор z/VM
Диалоговый монитор CMS (Conversational Monitor System) является базовым
компонентом z/VM и представляет собой высокопроизводительную
операционную среду, ориентированную на поддержку интерактивных
пользователей при решении следующих задач :
создание, отладка и тестирование прикладных программ для
использования в CMS или гостевых ОС;
выполнение приложений, разработанных для CMS или гостевых ОС;
создание и редактирование файлов данных;
манипулирование файлами данных;
выполнение заданий в пакетном режиме;
разделение данных между CMS и гостевыми ОС;
организация взаимодействия между пользователями CMS и гостевых ОС.
Диалоговый монитор запускается на отдельной виртуальной машине либо по
команде пользователя ( IPL CMS ), либо автоматически при запуске
виртуальной машины, если есть соответствующее указание в справочнике
пользователей CP. Фактически CMS выполняет две главные функции:
обеспечивает поддержку интерфейса для конечного пользователя z/VM и
предоставляет интерфейс прикладного программирования (API) для
пользовательских приложений.
В среде CMS пользователь сохраняет возможность использования команд
управляющей программы CP, а также располагает набором собственных
команд CMS, предназначенных для создания и выполнения приложений,
управления данными, в том числе с использованием полноэкранных
диалоговых средств.
Диалоговый монитор содержит необходимые средства для организации
хранения и доступа к данным во внешней памяти. Для дисковых устройств
(DASD) поддерживается три основных типа файловых систем:
базовая файловая система CMS на мини-дисках;
разделяемая файловая система SFS;
байтовая файловая система BFS.
Основной единицей хранения данных в CMS являются файлы. Имя файла
состоит из собственно имени и типа файла, разделенных точкой. Имя и тип
могут содержать до восьми алфавитно-цифровых и некоторых специальных
символов, например: PRG#1.ASSEMBLE, BATCH:X.SOURCE, CHANGE.EXEC, MY_DOC.TEXT и т.п. Некоторые значения типов файлов являются
стандартными и формируются системой автоматически. Помимо имени файл
характеризуется двумя атрибутами: буквенным (file mode letter) и
числовым (file mode number). Буквенный атрибут (A-Z) указывает на место
размещения файла (мини-диск или директория SFS), а числовой (0-6) - на
режим использования и обслуживания файла. Например, числовой атрибут 1
означает возможность использования файла для чтения и записи, числовой
атрибут 3 предписывает уничтожить файл после чтения и т.п. Файлы CMS
различаются по формату логических записей (постоянной или переменной
длины), однако в большинстве случаев система определяет необходимые
характеристики записей автоматически. CMS поддерживает необходимый
набор команд для обслуживания файлов (создание, редактирование,
копирование, удаление и др.).
Файлы z/VM могут размещаться либо на так называемых мини-дисках, либо в
файловом пространстве разделяемой файловой системы SFS (Shared File
System).
Мини-диск представляет собой непрерывный участок реального дискового
накопителя, состоящий из смежных цилиндров (вплоть до целого диска). С
точки зрения пользователя мини-диски являются аналогом независимого
дискового тома. Каждый мини-диск характеризуется логическим номером,
именем (меткой), объемом выделенного пространства (в цилиндрах),
режимом разрешенного доступа. В z/VM могут использоваться три типа
мини-дисков:
постоянные - определяются в справочнике пользователя виртуальной
машины и доступны в рамках каждого пользовательского сеанса;
временные - создаются в ходе пользовательского сеанса и автоматически
уничтожаются при его завершении;
виртуальные - эмулируются по запросу пользователя в виртуальной
памяти (не используют реальный диск).
Мини-диски могут быть доступны только одной виртуальной машине, но
могут при соответствующей авторизации использоваться несколькими
виртуальными машинами совместно.
Каждый мини-диск располагает главным каталогом (master file directory),
в котором описаны атрибуты размещения всех хранящихся на мини-диске
файлов, используемые для доступа.
Разделяемая файловая система SFS (Shared File System) является
расширением базовой файловой системы CMS и обеспечивает более
эффективное использование дискового пространства, а также возможность
совместного доступа к файлам других виртуальных машин при наличии
соответствующей авторизации. Для размещения файлов в SFS для всех
виртуальных машин (пользователей) предоставляется место в специальным
образом сконфигурированной области жесткого диска, называемой файловый
пул (file pool). Файлы могут объединяться в соподчиненные каталоги
(directory), как это происходит в иерархических файловых системах,
правда количество уровней подчиненности ограничено восемью. Каталогам
присваиваются имена (dirname), состоящие не более чем из 16
алфавитно-цифровых символов. Старший в иерархии каталог (top directory)
создается автоматически при выделении пользователю места в файловом
пуле и его имя совпадает с именем пользователя.
Пользователь имеет неограниченный доступ к собственным файлам и
каталогам, в то время как хранящиеся в том же пуле файлы других
пользователей обычно недоступны. В SFS существует возможность
организации совместного (разделяемого) доступа к файлам путем передачи
полномочий другим пользователям от пользователя-владельца. При этом
управление доступом может производиться на уровне как отдельных файлов,
так и целых каталогов.
z/VM предоставляет возможность реализации эффективных средств
администрирования и управления файлами и каталогами SFS с помощью
компонента DFSMS/VM. Данный компонент может автоматически производить,
например, удаление файлов с истекшим сроком хранения, архивирование,
резервное копирование и восстановление файлов, если для файла
установлено соответствующее значение атрибута "класс управления"
(management class).
Компонент z/VM OpenExtensions обеспечивает поддержку еще одного типа
файловой системы, получившей название байтовая файловая система BFS
(Byte File System), использующая иерархическую организацию хранения
файлов, характерную для операционной системы UNIX. Аналогичную
структуру имеет файловая система HFS операционной системы z/OS,
рассмотренная в п. 5.1.6. Название BFS подчеркивает особенность
внутренней организации файлов UNIX как байт-ориентированных, т.е. не
разделяемых на уровне ОС на логические записи. В z/VM поддерживаются
средства копирования и перемещения файлов между BFS и базовой файловой
системой CMS.
Виртуализация сетевого взаимодействия в z/VM
Обмен данными между гостевыми операционными системами в z/VM основан на
организации виртуальных сетей, которые обеспечивают взаимодействие без
использования реальных сетевых устройств. Очевидно, что такое решение
существенно увеличивает скорость обмена без каких-либо дополнительных
расходов.
В z/VM поддерживается три типа виртуальных сетей.
Виртуальный канал vCTC (Virtual Channel-to-Channel) - обеспечивает
прямое соединение ("точка-точка") между гостевыми системами в
соответствии с канальным протоколом, реализуемым в реальном устройстве
CTC.
Межпользовательский коммуникационный передатчик IUCV (Inter-user
communication vehicle) - используется для прямого взаимодействия
("точка-точка") между виртуальными машинами на основе TCP/IP-протокола.
Гостевая локальная вычислительная сеть (VM Guest LAN) - базируется на
эмуляции локальной вычислительной сети для множества гостевых систем.
Два варианта реализации: первый основан на применении технологии
HiperSockets, а второй использует эмуляцию реальной сети на базе
адаптеров OSA.
На рис. 5.67 представлен пример виртуальной сети z/VM, которая может
быть построена c использованием указанных выше возможностей. Две группы
гостевые операционных систем (G11-G1N и G21-G2N) образуют две
виртуальных подсети типа VM Guest LAN, каждая из которых
взаимодействует со "своим" виртуальным маршрутизатором. Виртуальный
маршрутизатор представляет собой отдельную виртуальную машину,
связанную через реальный сетевой интерфейс (здесь использован адаптер
OSA) с внешней вычислительной сетью. Взаимодействие маршрутизатора с
гостевыми ОС может быть организовано любым способом, включая vCTC, IUCV
или виртуальный HiperSockets.
(рис 5.67) Виртуальная сеть z/VMОтметим, что область действия виртуальной сети ограничена рамками
одного образа z/VM, то есть не может быть использована для
взаимодействия между системами, работающими в различных логических
разделах LPAR.
Операционная система Linux на платформе zSeries
Общая характеристика ОС Linux
Операционная система Linux, разработанная в начале 90-х годов по
инициативе энтузиаста-одиночки, в настоящее время превратилась в
полноценную, высокоэффективную и надежную серверную ОС, получившую
признание и широкое распространение во всем мире. Одной из важнейших
отличительных особенностей Linux является открытость исходного кода,
что дает возможность контролировать ее использование и при
необходимости вносить изменения. Операционная система Linux (любые
дистрибутивы и версии) распространяется на основе генеральной
общественной лицензии GPL (General Public License), позволяющей
свободно использовать, модифицировать и распространять программные
продукты в первоначальном или измененном виде, как на коммерческой, так
и на некоммерческой основе. Благодаря участию в разработке и
тестировании ОС Linux сотен тысяч программистов во всем мире,
программный код системы быстро развивается и совершенствуется. Это
создало предпосылки для признания Linux в качестве системы с высокой
степенью надежности и безопасности, подтвержденной международным
сертификатом Common Criteria (ISO/IEC 15408). Данный сертификат
свидетельствует о возможности использования Linux при решении
критически важных задач, например, в банковских и военных системах.
В 1999 году IBM завершила работу по переносу и адаптации операционной
системы Linux для платформы S/390. Этот неожиданный для многих
специалистов "ход" позволил объединить два принципиально различных
направления в использовании средств вычислительной техники: системы
обработки данных на базе мэйнфреймов с акцентом на высокую
производительность и безопасность и независимую от аппаратной платформы
операционную систему с открытым исходным кодом. Данное решение
оказалось чрезвычайно привлекательным и продуктивным для многих
пользователей в силу следующих причин:
большое количество существующих и высокий темп появления новых
приложений для Linux, причем большая часть из них распространяется
бесплатно;
возможность переноса UNIX-приложений в Linux;
обеспечение высокой степени переносимости приложений между всеми
платформами, поставляемыми IBM;
поддержка программного обеспечения промежуточного слоя, выпускаемого
компанией IBM: DB2 UDB, MQSeries, Websphere Application Server,
продукты семейства Tivoli, IBM Java Virtual Machine;
гибкость, открытость, надежность и безопасность Linux в сочетании с
классическими преимуществами мэйнфреймов;
высокая степень масштабируемости за счет возможности объединения
большого числа Linux-серверов на одной машине;
снижение расходов на эксплуатацию и развитие системы.
Linux для zSeries поддерживает все стандарты и интерфейсы, принятые в
других версиях Linux. В частности, используется стандарт кодирования
символов ASCII, применяются традиционные пользовательские интерфейсы
(shell и XWindow), поддерживаются стандарты POSIX и XPG, обеспечивающие
переносимость приложений на уровне исходного кода между различными
платформами, используются общие средства разработки, реализуются
многочисленные сетевые сервисы на базе протокола TCP/IP.
Архитектура ОС Linux
Linux создавалась как UNIX-подобная операционная система, поэтому
принципы ее архитектуры мало чем отличаются от стандартной UNIX.
Базовым элементом Linux является ядро (kernel), которое непосредственно
взаимодействует с аппаратной частью компьютера, изолируя прикладные
программы от особенностей его архитектуры. Ядро обеспечивает выполнение
основных функций операционной системы, включая управление процессами и
памятью, поддержку файловой системы и управление вводом-выводом.
Напомним, что процессами в Linux называют находящиеся в стадии
выполнения программы, которые претендуют на получение имеющихся
аппаратных ресурсов и данных.
Управление процессами осуществляется планировщиком процессов
(scheduler), который создает процессы и управляет распределением
ресурсов между ними. В частности, планировщик управляет выделением
квантов процессорного времени и осуществляет диспетчеризацию процессов,
выбирая для выполнения процесс с наивысшим приоритетом. Для
взаимодействия между процессами поддерживается механизм обмена
управляющими сигналами, а также обеспечивается возможность обмена
данными между различными процессами.
Управление памятью основано на методе страничной организации
виртуальной памяти, реализуемом в соответствии с аппаратными
особенностями той или иной платформы.
Файловая система Linux обеспечивает унифицированный интерфейс доступа к
данным, расположенным на дисковых накопителях и других периферийных
устройствах. Файловая система имеет иерархическую организацию, с
возможностью объединения файлов в соподчиненные каталоги. Логически
данная организация в точности соответствует рассмотренной нами ранее
файловой системе HFS UNIX. Файловая система контролирует права доступа
к файлу при выполнении различных операций, основываясь на статусе и
привилегиях пользователя и запущенных им приложений. Следует отметить,
что все периферийные устройства рассматриваются как элементы единой
файловой системы Linux.
Управление вводом-выводом заключается в выполнении запросов файловой
системы и модуля управления процессами на доступ к различным
периферийным устройствам (дискам, принтерам, пользовательским
терминалам, сетевым адаптерам и т.п.). При выполнении операций
ввода-вывода организуется разделяемый доступ к устройствам и
обеспечивается необходимая буферизация данных. Программную основу
ввода-вывода составляют драйверы устройств.
Помимо ядра Linux включает набор утилит и вспомогательных программ,
предназначенных для администрирования системы, обслуживания устройств,
реализации дополнительных сервисов, разработки приложений и т.д. Особое
место здесь занимают средства поддержки пользовательского интерфейса
Linux, включающие как традиционные для UNIX-систем версии командного
интерпретатора shell, так и графические оболочки (KDE, Gnome).
Взаимодействие вспомогательных программ (так же, как и пользовательских
приложений) с ядром происходит посредством стандартного интерфейса
системных вызовов. Интерфейс системных вызовов (API) представляет собой
набор услуг ядра и определяет формат запросов на услуги. Процесс
запрашивает услугу посредством системного вызова определенной процедуры
ядра, внешне похожего на вызов обычной библиотечной функции.
Сегодня на рынке предлагается несколько различных дистрибутивов Linux
от разных поставщиков, предназначенных для установки на различные
платформы и в том числе на серверы S/390 и zSeries. IBM рекомендует к
использованию три основных дистрибутива :
SuSe Linux Enterprise Server
Turbolinux Server
Red Hat Enterprise Linux
Указанные дистрибутивы используют одно и то же ядро Linux (в настоящее
время используется версия 2.6), стандартный набор утилит и
компиляторов, общие библиотеки разработки и единый интерфейс системных
вызовов (API), а также другие компоненты, характерные для любой версии
Linux и независимые от платформы. В частности, дистрибутивы Linux
традиционно включают поддержку инфраструктурных сетевых сервисов, таких
как DNS, DHCP, NFS, а также установочные пакеты Web-сервера Apache,
proxy-сервера Squid, почтового сервера SMTP и др.
В то же время версии, ориентированные на серверы S/390 и zSeries,
включают ряд специфических аппаратно-зависимых компонентов и функций.
Помимо базовых средств Linux каждый разработчик обычно включает в
дистрибутив несколько эксклюзивных "фирменных" компонентов,
предназначенных для поддержки дополнительных сервисов и средств
администрирования. В приложении 8 представлены основные функциональные
компоненты дистрибутива SuSe Linux Enterprise Server. Как было отмечено
выше, IBM предлагает практически все свои основные программные продукты
промежуточного слоя (middleware) для использования в Linux. Перечень
этих продуктов представлен в приложении 9.
Особенности реализации ОС Linux на платформе zSeries
Первая версия Linux для мэйнфреймов (Linux for S/390) может
устанавливаться на серверы S/390 и z900 и поддерживает только
31-разрядный режим работы. Выпущенная в 2001 году версия Linux for
zSeries поддерживает 64-разрядную архитектуру zSeries как в реальном,
так и в виртуальном режиме, и может устанавливаться на все серверы
классов z800 и z900.
Важной особенностью применения операционной системы Linux для zSeries
является использование во всех моделях серверов специализированных
процессорных устройств IFL (Integrated Facility for Linux). Эти
устройства ориентированы исключительно на поддержку рабочих нагрузок ОС
Linux, запускаемой в режиме LPAR, в том числе и под управлением z/VM.
Процессоры IFL не приводят к увеличению платы за программное
обеспечение zSeries, выполняемое на других процессорах.
Существует три основных варианта установки и использования образов
операционной системы Linux на платформе zSeries (:
Базовый (native).
В логические разделы (LPAR).
В качестве гостевой системы z/VM.
(рис 5.68) Варианты установки Linux: базовый (a), в логические разделы LPAR (b), в качестве гостевой ОС в z/VM (с)В базовом варианте Linux является единственной операционной системой,
устанавливаемой на сервер, и полностью использует все имеющиеся
ресурсы, включая процессоры, физическую память и устройства
ввода-вывода. Недостатком такого способа является необходимость
использования аппаратной консоли для перезагрузки системы. На
платформах z/990 и z/890 данный вариант не поддерживается.
Во втором варианте установка Linux производится в логические разделы
LPAR с возможностью использования выделенной части физической памяти и
некоторого числа процессоров. В этом варианте может быть запущено
несколько независимых образов Linux или других операционных систем,
каждая в своем логическом разделе (всего до 30 LPAR). Однако при
загрузке и перезагрузке раздела Linux, а также для переопределения
параметров раздела требуется доступ к аппаратной консоли.
В третьем варианте Linux запускается в качестве гостевой операционной
системы под управлением z/VM на одной или нескольких виртуальных
машинах. При этом может быть запущено несколько сотен образов Linux
вместе с образами других операционных систем и диалоговыми мониторами
CMS. Количество используемых виртуальных машин ограничивается
имеющимися ресурсами системы. Разделяемый доступ к устройствам, а также
высокоскоростное взаимодействие между гостевыми системами в этом случае
поддерживаются на уровне z/VM. Важным преимуществом данного варианта
является использование каждой виртуальной машиной собственной
защищенной виртуальной системной консоли, доступ к которой может быть
организован с помощью стандартных сетевых средств (telnet, rlogin,
TN3270 и т.п.). Это позволяет осуществлять удаленное администрирование
образов Linux, включая загрузку и перезагрузку системы. Конечно,
использование данного варианта установки Linux потребует знаний и
навыков работы в операционной системе z/VM.
В любом варианте установки начальная загрузка Linux производится по
локальной сети с предварительным размещением установочных файлов
(пакетов) на FTP- или NFS-сервере.
Основные коммуникационные возможности Linux для zSeries реализуются на
основе протокола TCP/IP с помощью сетевого адаптера OSA, который
поддерживает стандарты Token-Ring, Ethernet, Fast Ethernet, FDDI и ATM.
Кроме того, реализована поддержка адаптера "канал-канал" (CTCA), а
также возможность прямого взаимодействия с другими системами и
устройствами, используемыми на платформе zSeries. В качестве гостевой
системы z/VM Linux поддерживает все средства виртуализации сетевого
взаимодействия, включая vCTC, IUCV, а также VM Guest LAN.
Системные решения на основе z/VM и Linux
Как уже отмечалось, одним из вариантов применения Linux на платформе
zSeries является использование инсталляции Linux в качестве гостевой
операционной системы в составе z/VM. Этот вариант представляется
наиболее гибким с точки зрения использования возможностей платформы
zSeries и рекомендуется IBM как самый экономичный и эффективный для
большого числа систем электронного бизнеса .
z/VM позволяет устанавливать сотни образов Linux на один сервер,
обеспечивая все необходимые средства для поддержки требуемой
функциональности и организации эффективного взаимодействия между ними.
Такая возможность, получившая название консолидация серверов (рис.
5.69), является хорошей альтернативой для построения распределенных
корпоративных информационных систем, использующих большое число
функциональных серверов на различных платформах (Intel, HP, Sun и др.).
Решение, основанное на использовании консолидированных серверов Linux
на платформе zSeries, наряду с ее общими достоинствами дает следующие
неоспоримые преимущества:
уменьшение штата администраторов и расходов на администрирование и
техническое обслуживание;
снижение времени и расходов на установку (образ Linux может быть
инсталлирован за несколько минут);
использование технологии виртуальных сетей для организации
взаимодействия серверов Linux (повышает быстродействие, избавляет от
необходимости приобретать сетевое оборудование и строить кабельную
систему);
использование общего дискового пространства (приводит к устранению
дублирования данных);
более эффективное использование процессорного времени и других
ресурсов (сокращение времени простоев, увеличение загрузки).
(рис 5.69) Консолидация серверов Linux на базе z/VMПри возрастании нагрузки консолидированная система легко
масштабируется, как вертикально, так и горизонтально. Вертикальное
масштабирование означает увеличение количества системных ресурсов,
предоставляемых виртуальной машине. Горизонтальное масштабирование
реализуется путем добавления необходимого числа виртуальных машин с
образами Linux. Новый виртуальный сервер Linux конфигурируется в
течение нескольких минут, при этом затраты несопоставимы с установкой
дополнительного реального сервера. Эффект от масштабирования возрастает
при использовании виртуальных дисков, так как при этом данные
размещаются в основной памяти. Важным достоинством консолидированного
решения является возможность динамического (on line) перераспределения
ресурсов между серверами Linux при изменении рабочей нагрузки.
Использование Linux под управлением z/VM создает удобные возможности
для разработки, отладки и тестирования информационных систем,
использующих zSeries, поскольку среда z/VM является более гибкой и
простой в обслуживании, нежели логические разделы LPAR. z/VM включает
встроенные средства отладки, позволяющие запускать виртуальные машины в
пошаговом режиме, устанавливать контрольные точки, проверять содержимое
памяти и регистров. Возможности тестирования расширяются за счет
эмуляции устройств, которые могут физически отсутствовать в данной
конфигурации.
Рассмотрим еще один пример, иллюстрирующий способ повышения
эффективности функционирования информационной системы и сокращения
эксплуатационных затрат за счет перехода с трехуровневой на
двухуровневую архитектуру, построенную на основе технологий, доступных
на платформе zSeries. На рис. 5.70 показано, каким образом можно
осуществить такой переход. В трехуровневой системе (a) роль сервера
данных традиционно отводится мэйнфрейму, работающему под управлением
OS/390 или z/OS на платформе S/390 (z900). В то же время бизнес-логика
размещается на множестве распределенных серверов приложений,
использующих менее мощные серверные компьютеры.
Перенос серверов приложений в среду виртуальных машин Linux, работающих
под управлением z/VM на платформе z900 (z990), позволяет получить
двухуровневую аппаратную конфигурацию (b). Образы операционных систем
z/OS и z/VM выполняются в отдельных логических разделах LPAR. При этом
реальная вычислительная сеть, связывающая серверы данных с серверами
приложений, заменяется средствами, реализуемыми технологией
HiperSockets, которая обеспечивает эмуляцию сетевого соединения между
LPAR-системами на основе прямого высокоскоростного взаимодействия по
принципу "память-память". Взаимодействие между серверами приложений
Linux может быть построено на основе виртуальной гостевой сети VM Guest
LAN.
Следует обратить внимание, что такая реконфигурация, получившая
название "интеграция приложений", не потребует перепроектирования
программного обеспечения информационной системы, сохраняя на
программном и логическом уровнях по-прежнему трехуровневое
взаимодействие.
(рис 5.70) Переход с трехуровневой (a) на двухуровневую (b) архитектуру информационной системы