Россия |
Операционные системы z/VM и Linux
Операционная система 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 рекомендует к использованию три основных дистрибутива [ 5.34 ] :
- 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 (рис. 5.68) [ 5.35 ] :
Рис. 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.