УДК 004.054 Дата подачи статьи: 08.04.2014
ОСОБЕННОСТИ ТЕСТИРОВАНИЯ НАБОРОВ ДАННЫХ В ОПЕРАЦИОННОЙ СИСТЕМЕ Z/OS
О.В. Бартеньев, к.т.н., доцент; С.В. Клюев, аспирант (Национальный исследовательский университет «Московский энергетический институт», ул. Красноказарменная, 14, г. Москва, 111250, Россия, mdf4@maü.ru, [email protected])
Частью любой ОС является подсистема управления файлами (данными). В зависимости от характеристик устройств внешней памяти и концепции размещения данных, принятой в ОС, физическая организация данных может налагать особенности на их логическое представление. На основании физической структуры подсистема управления файлами определяет логическую структуру, с которой непосредственно взаимодействует пользователь. Проверка корректности функционирования таких структур является одной из главных задач, решаемых в процессе тестирования ОС. В статье приводится отличие понятия «набор данных» ОС z/OS от понятия «файл» для UNIX-подобных ОС. Рассматриваются структура и особенности логической организации одного из библиотечных наборов данных ОС z/OS - PDSE (Partitioned Data Set Extended). Для таких наборов определяется круг наиболее важных задач, возникающих в процессе тестирования, описываются средства, применяемые для верификации наборов данных, такие как команды и встроенные утилиты ОС z/OS. Проводится их анализ и указываются проблемы, препятствующие процессу автоматизации тестирования. Описываются реализованные тестовые сценарии и их функциональное назначение, а также анализируются текущие подходы к решению поставленных задач и делается предположение о создании средств автоматизации, призванных снизить трудоемкость и повысить эффективность тестирования.
Ключевые слова: операционные системы, наборы данных, тестирование, автоматизация, верификация.
Received 08.04.2014
PECULIARITIES OF DATA SETS TESTING IN THE Z/OS OPERATING SYSTEM Bartenev O. V., Ph.D. (Engineering), Associate Professor; Kluyev S. V., Postgraduate Student (National Research University "MPEI", Krasnokazarmennaya St. 14, Moscow, 111250, Russian Federation,
[email protected], [email protected]) Аbstract. Any operating system (OS) includes file management subsystem. Depending of the external memory devices characteristics and storage data conception in OS, data physical organization can impose pecularities on their logical representation. Based on physical structure a file management subsystem defines a logical structure for interaction with a user directly. Validation of such structures is one of the main tasks in OS testing process. This article describes the difference between the definitions "data set" of z/OS and "file" of UNIX-like OS. Structure and internal organization of one of the z/OS partitioned data sets - PDSE (Partitioned Data Set Extended) are described. The main PDSE data sets testing issues are identified in the article. Current verifying commands and internal utilities of the z/OS OS are described. The paper shows the analysis of current verifying facilities and main automated testing problems of the PDSE. Function purposes of the existent test cases scenarios and current approaches are analyzed and assumptions about creating automation testing tools to reduce the complexity and increase testing efficiency are made.
Keywords: operating systems, data sets, software testing, automation, verification.
Разработанная компанией IBM операционная система (ОС) z/OS предназначена для поддержки архитектуры z/Architecture, которая используется в мейнфреймах на платформе zSeries. Ввиду того, что эволюция данной ОС берет свои истоки от платформы S/360, выпущенной IBM в 60-е годы прошлого века, структура ОС и заложенные в ней принципы отличаются от распространенных в настоящее время UNIX-подобных ОС, что ставит задачи разработки средств автоматизации тестирования, учитывающих особенности данной ОС.
В UNIX-подобных ОС организация данных (их формат) осуществляется приложением. Для таких ОС минимальной единицей информации является бит, в то время как в z/OS формат данных определяется ОС уже при создании, а минимальной единицей, оперируемой ОС, является запись, представляющая собой набор связанных данных, к которым в дальнейшем приложение получает доступ. Ввиду указанных особенностей файлы в z/OS именуются наборами данных, а их внутренняя структура - организацией набора данных.
Организация PDSE-наборов данных
Современные мейнфреймы в процессе размещения данных используют дисковые приводы IBM 3380 и 3390. В настоящее время структура этих приводов эмулируется из дисковых массивов RAID уровня 5 при помощи устройств IBM 2150 Enterprise StorageServer® (рис. 1). Более подробно процесс эмуляции описан в [1].
Таким образом, z/OS при размещении наборов данных взаимодействует с томами (volumes) типа 3390/3380, структура которых представлена на рисунке 2. В каждом цилиндре содержится 15 треков. Размер каждого трека составляет 47 476 байт для тома 3380 и 56 664 для 3390 [2]. Размещение наборов данных во внешней памяти происходит в соответствии со структурой томов.
В ОС z/OS выделяют следующие типы организации наборов данных:
- последовательные наборы, используемые в основном при записи информации на магнитные ленты и распечатке логов системы;
Устройства 3390
Процесс эмуляции
RAID 5
Рис. 1. Эмуляция устройств 3390 Fig. 1. 3390 devices emulation Трек
Цилиндр
Рис. 2. Структура тома набора данных Fig. 2. Data set volume structure
- наборы VSAM (Virtual Storage Access Method); файлы такой организации используются в БД и предоставляют более быстрые способы доступа, чем последовательные наборы данных;
- библиотечные (секционированные) наборы, используемые для хранения загрузочных библиотек (load library), объектных библиотек, библиотек макросов, исходного кода программ и других взаимосвязанных файлов.
Одним из библиотечных наборов является набор данных PDSE, широко используемый при обработке данных в z/OS и имеющий сложную организацию, которая требует дополнительных затрат в процессе тестирования.
При создании PDSE-набора данных область внешней памяти разбивается на равные блоки по 4 Кб, именуемые страницами, в которых содержатся блоки оглавления и разделов (данных). Для вновь созданного PDSE-набора его физическая структура в памяти представлена на рисунке 3 [3].
Трек 1 |(D^(DÎ^(DÎ^(DÎ^(DÎr)0000000
Трек n
(Dir) - страница оглавления,
( ) - неиспользуемая страница (отформатированная область), - неотформатированная область набора данных
Рис. 3. Физическая структура вновь созданного PDSE-набора
Fig. 3. Phisical structure of a new PDSE
PDSE-наборы могут динамически расширяться при добавлении и удалении разделов с данными. В них поддерживается механизм повторного использования пространства после удаления или перемещения разделов. Структура PDSE-наборов с данными показана на рисунке 4 [3].
Трек 1 ( Dir Dir Dir Dir Dir ^Mem^Mem^Mem^ Mem Mem
Трек 2 ^Mem^Mem^^Mem^^Mem^Mem^ Dir ^ Dir ^ Mem ^ Mem ^ Mem ^ Mem ^ Mem ^
Трек 3 Mem Mem Mem Mem Mem Dir Mem
• ••
Трек m Dir Dir Dir Dir Dir Mem Mem Mem Mem DOO
WÊÊÊÊÊÊÊKÊÊÊÊÊÊÊÊÊ. ¡¡¡¡¡и
Трек n ШШШШШШШШШШШШШ\ ШШШШ,
(Mem - страница разделов (данных)
Рис. 4. Структура PDSE-наборов с данными Fig. 4. Structure of a used PDSE
Для обеспечения динамического расширения оглавление набора данных, а также изменения параметров разделов блоки оглавления распределяются разрывным образом вместе с блоками данных.
Оглавление имеет индексную организацию, состоящую из страниц AD (Attribute Directory) и ND (Name directory), которые обеспечивают взаимосвязь со страницами разделов.
AD-страницы имеют иерархическую структуру, реализованную по принципу В-дерева, и содержат информацию об атрибутах разделов (время создания, время последнего изменения, размер и т.д.), а также о самом наборе данных.
Разделы PDSE отслеживаются посредством идентификатора FSN (files sequence number). Указатель на страницу, содержащую данные раздела, хранится в FPM (fragment parcel map).
ND-страницы также организованы по принципу В-дерева и связывают индивидуальные имена разделов с их идентификаторами FSN.
Структура элементов оглавления показана на рисунке 5 [3].
"1 FPM-
1 SN S <------------
I атрибуты
.FPM
I
Раздел 3
Рис. 5. Внутренняя структура элементов оглавления: 1 - AD-страница, 2 - ND-страница, 3 - страницы разделов
Fig. 5. PDSE index structure
Наиболее часто используемые страницы оглавления кэшируются в виртуальную память для ускорения доступа к данным.
Задачи тестирования наборов данных
Важными задачами тестирования являются проверка целостности и доступности данных. Можно выделить следующие ключевые моменты в решении этих задач.
• Проверка целостности структуры набора данных. Данная задача в основном возложена на внутренние утилиты ОС z/OS.
• Тестирование поведения набора данных в условиях совместной обработки его несколькими системами, объединенными в кластер.
В случае необходимости обработки большого объема задач, таких как бизнес-транзакции и запросы к базам данных, несколько систем z/OS объединяют в кластер, что позволяет увеличить производительность и осуществлять параллельный доступ для чтения и записи к общим данным. Организация кластера выполняется с помощью определенных программных и аппаратных ресурсов, для архитектуры zSeries кластер организуется по технологии Parallel Sysplex. В такой ситуации набор данных PDSE позволяет производить доступ к разным разделам данных совместно с несколькими системами.
Одним из ключевых моментов в приведенном случае является проверка соответствия индексных структур AD- и ND-страниц, расположенных в виртуальной и во внешней памяти (рис. 6).
ND [Fl
AD 1-
- f -
— -Г
ч и=
ND [р7
V*
ч
ND [р7"
V*
ч
Рис. 6. Индексные структуры в виртуальной и внешней памяти
Fig. 6. Index structures in a multisystem environment
В таких условиях немаловажной является проверка «состязательных» ситуаций, то есть корректности работы алгоритма по предоставлению доступа к данным.
• Оценка производительности, связанная с проверкой скорости выполнения таких операций, как добавление, удаление и поиск раздела в наборе данных.
• Проверка совместимости версий. Данная проверка напрямую связана с регрессионным тестированием, которое необходимо ввиду постоянной модификации и обновления элементов ОС, поддерживающих структуру и принципы работы наборов данных.
• Тестирование работы в нештатных условиях. К нештатным условиям относятся сценарии с
эмуляцией нехватки памяти, пространства для создания набора данных, задание некорректных параметров и др.
Описанные выше задачи предполагают формирование разнородных конфигураций ОС. На данный момент применяется технология виртуальных машин.
На рисунке 7 приведена текущая структура среды тестирования, использующая ОС z/VM [5] в качестве средства виртуализации. Основные задачи по запуску тестов выполняются программой-планировщиком, реализующей алгоритм распределения и загрузки виртуальных машин. Библиотека тестов содержит экземпляры тестов, созданные в процессе эволюции системы в течение более двадцати лет [4].
Неуклонный рост числа регрессионных тестов, связанный с постоянной эволюцией ОС, с одной стороны, и ограниченностью ресурсов виртуальной среды, с другой, приводит к необходимости решения проблем с отбором подмножества тестов для выборочного тестирования отдельных функций и компонент ОС, запуском этих подмножеств и автоматизированным анализом результатов тестирования.
Команды и утилиты ОС z/OS для PDSE
ОС z/OS предоставляет ряд утилит и сервисов, используемых при тестировании PDSE-наборов данных.
• Средства проверки целостности данных и анализа PDSE [3]:
- VARY SMS, PDSE - команда, позволяющая идентифицировать проблемы разделения ресурсов и вовлеченные в них наборы данных PDSE; включает средства по восстановлению от определенных проблем;
- DISPLAY SMS, PDSE - команда, отображающая информацию об управляющих структурах и исполняемых модулях загруженных в адресное пространство наборов данных PDSE;
- D GRS - команда, предоставляющая информацию о том, какой набор данных PDSE ожидает обработки;
- D SMS, OPTIONS - команда, отображающая информацию о текущем режиме разделения ресурсов;
- IEBCOPY - утилита, предназначенная для копирования наборов данных; в процессе копирования осуществляет чтение данных и ассоциированных с ними структур оглавления, тем самым проверяя целостность набора данных;
- PDSE HFS Analysis Tool (PIT) - предоставляет информацию о выделенных страницах оглавления;
- D XCF - команда, показывающая статус системы в кластере и информацию о межсистемных группах сопряжения (Cross-system coupling facility - XCF);
- IEHLIST LISTVTOC - утилита, предоставляющая информацию, содержащуюся в оглавлении тома;
- IEBPDSE - утилита, предназначенная для верификации структуры директории PDSE.
Рис. 7. Структура среды тестирования Fig. 7. Test environment structure
• Средства оценки производительности. Оценка производительности системы, в частности скорость обработки наборов данных, осуществляется в z/OS средствами Resource Measurement Facility (RMF). RMF позволяет отслеживать скорость обработки данных z/OS или кластера z/OS и имеет инструменты для оптимизации параметров и конфигурации системы (z/OS или кластера z/OS).
Описанные выше средства предоставляют широкие возможности для определения проблемы, но в большинстве случаев требуют ручного ввода и анализа полученных отчетов для последующей диагностики неисправности, что в случае исполнения группы автоматизированных тестов затруднительно.
Существующие тесты PDSE и порядок их употребления
Разработка новых тестов, как и исходный код старых, использует ассемблер высокого уровня HLASM (High-level Assembler), интерпретируемый язык программирования REXX (REstructured eXtended eXecutor), язык управления заданиями JCL (Job Control Language), а также другие проприетарные средства.
Проверка работоспособности PDSE предполагает проведение ряда тестов.
• Проверка базовых операций работы с набором данных:
- выделение пространства на томе и создание пустого PDSE-набора данных;
- добавление/удаление разделов;
- переименование разделов;
- конкатенация наборов данных;
- копирование раздела/набора данных.
Выполнение этих операций осуществляется
при помощи вызова макросов, описанных в [5]. Следует отметить, что проверка базового, как и описанного далее, функционала осуществляется с использованием различных параметров, определяющих свойства набора данных, таких как формат записи и размер логической записи, что значительно увеличивает число возможных комбинаций.
• Проверка структуры, осуществляемая после операций над набором данных.
Такая проверка, как уже было сказано, использует вызовы штатных средств ОС z/OS и особенно актуальна при фрагментации оглавления набора данных. Также осуществляется проверка сохранения предельных значений набора данных, таких как предел числа разделов и их записей.
• Создание резервных копий и их способности к последующему корректному восстановлению, используя утилиту IEBCOPY и такие продукты, как DFSMSdss™.
• Проверка свойств набора данных в кластера
Основными в таких тестах являются проверка разделения и сериализации ресурсов, выявление ситуаций блокирования доступа к данным, а также проблемы миграции и совместимости версий.
• Тестирование производительности.
В виртуальной среде точное определение характеристик производительности PDSE-наборов данных, таких как загруженность центрального процессора и интенсивность операций ввода-вывода, не дает однозначных результатов ввиду ограниченности ресурсов. Тем не менее критериями проверки служат показатели подсистем System Management Facility (SMF) и Resource Measurement Facility (RMF).
Большинство данных сценариев реализованы и применяются в соответствии с регламентом тестирования организации.
Тем не менее в процессе эксплуатации ОС обнаруживаются ошибки, в том числе и в PDSE, к примеру [6], что говорит о неполном решении задачи тестирования, а именно задач автоматизации, которые в настоящее время решены лишь частично и находятся в поле зрения разработчиков программного обеспечения. В частности, в [7] рассматривается процесс разработки фреймворка, служащего для автоматизации регрессионного тестирования для z/OS.
В заключение следует отметить, что в статье рассмотрены особенности структуры библиотечного набора данных PDSE z/OS. Сформулированы основные задачи тестирования и проведен анализ текущих решений, а также внутренних средств z/OS, используемых для решения задач тестирования. Из сказанного выше следует необходимость разработки дополнительных тестов, проверяющих корректность работы тех частей системы, которые были подвержены изменениям, а также определение тестов в регрессионной базе, подлежащих модификации в связи с изменением тестируемых параметров, и создание новых, увеличивающих тестовое покрытие на основе анализа существующих тестов. Такая разработка должна осуществляться с использованием средств автоматизации тестирования, которые позволят обеспечить снижение трудоемкости и повысят эффективность тестирования.
В качестве последующего направления исследования планируются дальнейшее изучение структуры наборов z/OS и определение требований к системе тестирования, способной автомати-зированно производить анализ и выявление ошибок.
Литература
1. Castets G.A., Leplaideur D., Bras J.A., Galang J. IBM Enterprise Storage Server, IBM, 2001, 70 p.
2. 3390 disk information. URL: http://www.lascon.co.uk/ hwd-3390-disks.php (дата обращения: 05.02.2014).
3. Lovelace M., Fletcher A., Gutschke D., Mastrorilli M. Partitioned Data Set Extended Usage Guide, IBM, 2005, 13 p.
4. Loveland S., Miller G., Prewitt R., Shannon M. IBM Systems Journ., 2002, vol. 41, no. 1. URL: http://dl.acm.org/cita-tion.cfm?id= 1660998 (дата обращения: 05.02.2014).
5. DFSMS Macro Instructions for Data Sets. URL: http://www.redbooks.ibm.com/ (дата обращения: 05.02.2014).
6. IBM support portal: APAR information. URL: http:// www-01.ibm.com/support/docview.wss?uid=isg10A40404 (дата обращения: 05.02.2014).
7. Иконников В.В., Лебедев А.А. Система автоматизации регрессионного тестирования программного обеспечения с закрытым исходным кодом, разрабатываемого для мейнфреймов, работающих под управлением операционной системы z/OS // Современная наука: актуальные проблемы теории и практики. Сер.: Естественные и технические науки. 2011. № 1.
Reference
1. Castets G.A., Leplaideur D., Bras J.A., Galang J. IBM
Enterprise Storage Server. IBM Publ., 2001, 70 p.
2. 3390 disk information, available at: http://www.lascon.co. uk/hwd-3390-disks.php (accessed February 5, 2014).
3. Lovelace M., Fletcher A., Gutschke D., Mastrorilli M. Partitioned data set extended usage guide. IBM Publ., 2005, 13 p.
4. Loveland S., Miller G., Prewitt R., Shannon M. IBM Systems Journ. 2002, vol. 41, no. 1, avalibale at: http://dl.acm.org/ citation.cfm?id= 1660998 (accessed February 5, 2014).
5. DFSMS Macro Instructions for Data Sets. Avalible at: http://www.redbooks.ibm.com/ (accessed February 5, 2014).
6. IBM support portal: APAR information. Available at: http://www-01.ibm.com/support/docview.wss?uid=isg10A40404 (accessed 5 February 2014).
7. Ikonnikov V.V., Lebedev A.A. Automated system for testing closed initial code software which is developed for z/OS mainframes. Sovremennaya nauka: aktualnye problemy teorii i praktiki. Seriya "Estestvennye i tehnicheskie nauki" [Modern science: actual problems of theory and practice. Natural and Technical Sciences series]. 2011, no. 1 (in Russ.).