Леонид Черняк
Представим еще один “сдвиг парадигмы информационных технологий”, который на этот раз связан с радикальными изменениями в стратегии хранения корпоративных данных. Новая парадигма, а точнее новая философия, основана на идеях централизации в хранении данных и обеспечении разделенного доступа к ним.
Направление возникло во второй половине 90-х годов и бурно развивается. Если же всмотреться в суть происходящего, то на самом деле ничего принципиально нового в идеях централизации данных и разделения доступа нет, так было всегда.
Но вот наступил момент, когда существующие формы хранения корпоративных данных пришли в несоответствие с пользовательскими требованиями. В ответ на это родилась концепция корпоративной, или консолидированной памяти. Словом “память” на русский язык переводятся два английских термина - memory и storage. Первый относится к оперативной памяти, а второй - к памяти на магнитных и оптических носителях. Мы будем использовать термин “память” во втором значении.
Потребность в консолидации ресурса памяти, распределенного в современных системах по отдельным серверам, вызвана следующими причинами:
- появление новых технологий работы с данными, таких, как хранилища данных (data warehouse), необходимость поддержки систем принятия решений (DSS) и разработки извлечения данных (data mining), предполагающих единство корпоративного ресурса данных;
- возрастание объемов корпоративных данных и соответственно увеличение стоимости дисковых систем;
- возрастание требований к надежности хранения данных, в том числе необходимость решения проблемы резервных копий;
- необходимость создания средств для миграции данных с мэйнфреймов на системы с открытой архитектурой;
- необходимость обеспечения доступа к данным из разнородных аппаратных и программных платформ;
- возрастание сложности и стоимости управления распределенными системами памяти.
Рис. 1. Децентрализованная и централизованная модели памяти
В наиболее общем виде сравнение распределенной и консолидированной модели корпоративной памяти показано на рис. 1. Новую модель информационной системы можно назвать “памятно-центричной” в отличие от “серверно-центричной”, доминирующей до последнего времени.
Классификация консолидированных систем памяти
Все выпускаемые и готовящиеся к выпуску системы консолидированной памяти призваны обеспечить две основные функции:
- централизацию ресурсов и управления;
- обеспечение разделенного доступа к ресурсам.
Предлагается разделять консолидированные системы памяти на три класса:
1. С разделением доступа к физическому устройству памяти (дисковому массиву). В такой системе два или более однотипных или разнотипных сервера работают на один дисковый массив, секционированный на независимые разделы. Согласование по содержанию между разделами отсутствует.
2. С разделением доступа к данным посредством создания копий. На одном дисковом массиве хранятся несколько (обычно две) согласованных по содержанию копий данных в различных форматах.
3. С подлинным разделением доступа к данным. На дисковом массиве хранится единственная копия данных, доступная разнотипным серверам.
Подлинное разделение данных может реализовываться в нескольких режимах.
3.1. Разделение доступа по времени. Каждая из подключенных к дисковому массиву платформ имеет свой квант времени, в течение которого она обладает полномочиями на чтение и запись.
3.2. Разделение доступа на чтение. Каждая платформа имеет неограниченные полномочия на чтение по всему дисковому массиву, но запись может выполнять только в собственный раздел.
3.3. Разделение доступа на чтение и запись. Это наиболее полная и сложная реализация подлинного разделения доступа к данным, где все платформы имеют неограниченные полномочия на чтение и запись по всему пространству данных.
Разделение доступа к физическому устройству памяти (дисковому массиву)
Дисковый массив Hitachi 6700/7700. Типичным примером устройства первого класса служит дисковый массив Hitachi 6700/7700 с программной системой управления Scalable Array Conley SafePath. SafePath устанавливается на серверах, подключенных к дисковому массиву Hitachi 6700/7700. В настоящее время SafePath работает под управлением ОС Solaris и Windows NT.
Разделение доступа к данным посредством создания копий
Symmetrix ESP компании EMC. Успех компании EMC на рынке систем корпоративной памяти определяется прежде всего тем, что ей первой удалось решить проблему миграции данных с мэйнфреймов на серверы с открытой архитектурой. Начиная с ноября 1995 г. EMC выпускает семейство продуктов Symmetrix ESP (Enterprise Storage Platform), которое обеспечивает доступ к единому массиву данных (рис. 2).
Рис. 2. Архитектура корпоративной памяти с использованием
интеллектуального сервера памяти Symmetrix ESP
Перенос данных с мэйнфреймов на серверы с открытой архитектурой как самостоятельная задача существует довольно давно. Первым решением стал примитивный “ручной способ” - ленты, записанные на одной системе, физически переносились на другую. Перекачка данных по сети исключила рутинную работу, но логика процесса осталась прежней. Оба способа страдают недостатком производительности. Первым инженерным решением задачи переноса данных стал сервер памяти Symmetrix ESP.
Symmetrix ESP построен по разработанной в EMC архитектуре Intelligent Storage Architecture (ISA). В нем используется реализованный программно кэшируемый интегрированный дисковый массив Integrated Cached Disk Array (ICDA) и аппаратный дисковый массив MOSAIC:2000. Здесь сосуществуют два массива данных (Mainframe Data и Open Data), которые объединены высокоскоростным каналом. Скорость передачи по нему в 10 раз превосходит скорость передачи файлов по сети. Этот канал является основой архитектуры Symmetrix ESP.
Несмотря на заявления EMC, в предлагаемом решении нельзя усмотреть действительное разделение доступа к данным. По сути, в Symmetrix ESP параллельно сосуществуют два дисковых массива, содержащие одни и те же данные в разных форматах, снабженные высокоскоростным средством для обмена данными.
Подлинное разделение доступа к данным
Sun StorEdge A7000 Intelligent Storage Server компании Sun Microsystems. Первым тиражируемым устройством, в котором реализовано подлинное разделение доступа к данным, стал интеллектуальный сервер Sun StorEdge A7000 (рис. 3). В A7000 обеспечивается разделение доступа на чтение, т. е. каждый из подключенных серверов имеет неограниченные полномочия на чтение по всему дисковому массиву, но запись может выполнять только в собственный раздел.
Рис. 3. Архитектура сервера памяти Sun StorEdge A7000
Обычно логика управления системами хранения данных реализуется аппаратными контроллерами. Соответственно функциональные возможности этих систем ограничены зашитыми в них микрокодами. Принципиально новым в архитектурном решении, воплощенном в A7000, стала замена специализированных контроллеров полноценным управляющим компьютером. Именно это обстоятельство позволило назвать StorEdge A7000 интеллектуальным сервером памяти (Intelligent Storage Server). Логика его системы управления реализуется специализированным ПО, работающим на собственных процессорах A7000 под OC Unix. Интеллектуальные способности A7000 позволяют решить три основные задачи:
- разделение доступа к дисковому пространству (shared storage);
- разделение доступа к данным (shared data);
- создание кластерных конфигураций памяти и удаленных систем резервирования.
A7000 представляет собой стойку, в которой можно разместить до 108 дисков с горячей заменой, что позволяет хранить до 977 Гб данных. Этот объем может быть увеличен до 2,93 Тб при использовании дополнительных стоек. Диски могут быть произвольным образом сконфигурированы как тома мэйнфреймов или RAID 0, 1, 0+1 и 5. К этому единому дисковому пулу A7000 обеспечивает доступ мэйнфреймам и открытым системам (Unix и Windows NT). Подключение серверов к A7000 осуществляется по 32 каналам следующих трех типов: Block Multiplexer, ESCON или SCSI в любом сочетании.
Архитектура A7000
Основные компоненты:
- коммутатор каналов для мэйнфреймов;
- две взаимосвязанные подсистемы (DSP 1 и DSP 2);
- шина канала Memory Channel (патент Sun Microsystems), связывающая DSP 1 и DSP 2;
- общий дисковый пул, разделенный на два набора цепочек дисков. Цепочки соединены между собой расширителями SCSI (SCSI expander).
Подсистемы DSP (Data Storage Processor)
Устройство DSP обеспечивает разделение доступа к общему дисковому пространству и разделение доступа к данным.
Каждая из подсистем и DSP имеет:
- две группы интерфейсов;
- Front-end - каналы связи с серверами;
- Back-end - каналы SCSI для связи с дисковым пулом;
- четыре процессора Motorola 88110 и кэш-память данных (два процессора работают на Front-end и два - на Back-end);
- адаптер Memory Channel.
В нормальном режиме DSP 1 и DSP 2 работают как две независимые подсистемы памяти. Программная логика реализована так, что каждая из подсистем DSP обслуживает “половину” подключенных серверов и хранит данные в “своей” половине дискового пула. Открытые системы подключены к DSP напрямую по SCSI, а мэйнфреймы - через коммутатор каналов.
Два из четырех процессоров каждого DSP выполняют функцию опроса входных каналов Front-end. При обнаружении запроса возможны два варианта реакции. Если запрос попадает в кэш, то он обслуживается немедленно и процессор возвращается в режим циклического просмотра. В противном случае запрос блокируется и выдается новый запрос на обращение к дискам в группу процессоров Back-end.
Функции процессоров Back-end:
- отображение форматов данных мэйнфреймов (тома 3380 или 3390) и открытых систем (RAID 0, 1, 0+1 и 5) в собственное дисковое пространство DSP. Внутри диски могут быть сконфигурированы как RAID 1 и 5;
- исполнение запросов, полученных от процессоров Front-end.
Каждый из процессоров Back-end работает на свой набор цепочек дисков. В случае возникновения аварийной ситуации (выхода из строя одного из DSP) расширители SCSI объединяют цепочки и процессоры могут работать со всем дисковым пулом. Механизм расширителей SCSI - это одна из составляющих кластеризации DSP.
На процессорной плате DSP имеется кэш-память, выполняющая две основные функции:
- кэширование обращений к дискам;
- хранение служебной информации о состоянии второго DSP.
Адаптер Memory Channel обеспечивает взаимообмен служебной информацией между кэш-памятями подсистемам DSP. Memory Channel обеспечивает каждую из подсистем полной информацией о состоянии другой.
Memory Channel
Memory Channel позволяет реализовать вторую специфическую возможность A7000 - способность создавать кластерные конфигурации памяти, а в будущем создавать и удаленные системы резервирования (Sun StorEdge Remote Dual Copy) (рис. 4).
Рис. 4. Архитектура Memory Channel
Физически Memory Channel состоит из адаптеров Memory Channel двух DSP и объединяющей их шины Memory Channel Bus. Объединение в кластер достигается посредством двух механизмов:
- создание общей виртуальной памяти кластера из памятей процессоров DSP;
- согласование содержания кэш-памятей DSP.
Согласованность содержимого памяти и кэш-памяти, а также наличие расширителей SCSI совместно обеспечивают возможность передачи полномочий вышедшего из строя DSP тому DSP, который остается работоспособным.
Ключевой момент работы виртуальной памяти - механизм рефлексии. Память процессоров (обычная ECC-память) делится на две группы разделов - рефлексируемые и нерефлексируемые. Если запись выполняется в рефлексируемый раздел одного DSP, то она автоматически дублируется в соответствующий раздел другого DSP. Согласование содержимого виртуальной памяти выполняется в автономном режиме. Расположенные в адаптерах схемы прямого доступа в память (DMA) осуществляют пересылку данных из одной памяти в другую без вмешательства процессора.
Для согласования содержания кэш-памятей данных используется аналогичный механизм выделенных разделов. Естественно, что основной раздел - это кэш данных (Data Cache) (рис. 5). В дополнение к нему существуют вспомогательные разделы.
Рис. 5. Архитектура кэш-памяти
- В разделе Broadcast содержится текущая информация о состоянии данного DSP, например сведения о том, какие блоки данных являются “грязными”, т. е. еще не записаны на диск. Memory Channel автоматически поддерживает копию Broadcast одного DSP в разделе Copy of Broadcast другого DSP.
- Второй выделенный раздел - Stable Storage Region. Stable Storage Region одного DSP содержит критически важные данные из Data Cache другого DSP, и наоборот. Записи в партнерский Stable Storage Region выполняет DSP параллельно с записями в свой Data Cache. Этот механизм обеспечивает наличие двух копий критических данных до завершения операции ввода-вывода.
Обладание одной подсистемой DSP информацией о состоянии другой, полученное благодаря постоянному обмену по Memory Channel, в случае возникновения неисправности позволяет подсистеме, оставшейся работоспособной, взять на себя все функции неисправной. Она может обслуживать все серверы, подключенные к A7000, имея доступ ко всему дисковому пулу. Сохраняются и данные, находящиеся в кэш-памяти неисправного DSP, таким образом, сохраняется непрерывность обслуживания.
В базовой конфигурации A7000, состоящей из двух подсистем, роль Memory Channel ограничена обеспечением кластеризации. Однако функции этого соединения шире. Потенциально к одной шине Memory Channel может быть подключено до девяти DSP, что позволяет создавать удаленные копии хранимых данных (Sun StorEdge Remote Dual Copy). В ближайшем будущем, когда появится возможность использовать оптоволоконное подключение к шине Memory Channel, станет реальным создание систем для удаленного зеркалирования.
Datashare - разделение доступа к данным
Возможность разделения доступа к данным, заложенная в A7000, поддерживается архитектурой и программным обеспечением на уровне отдельного DSP. Вопросы кластеризации на этом уровне не имеют значения, поэтому представление сервера StorEdge A7000 можно свести к одной подсистеме хранения данных DSP. Здесь существенно другое, а именно то, что в A7000 доступ к данным (рис. 6) является в подлинном смысле разделенным (true datashare). A7000 обеспечивает хранение данных мэйнфреймов и открытых систем в виде одной-единственной копии. В этом главное отличие A7000 от Symmetrix ESP, где, по сути, соседствуют две равноправные дисковые подсистемы, соедиенные каналом и конвертором. В A7000 необходимое преобразование форматов записей осуществляется в режиме реального времени.
Рис. 6. Архитектура разделения доступа к данным
При этом действует понятное ограничение: данные, записанные мэйнфреймами, доступны открытым системам только для чтения и точно так же данные, записанные открытыми системами, доступны мэйнфреймам тоже только для чтения. По приведенной выше классификации A7000 попадает в категорию 3.2.
Уточним некоторые определения. Мэйнфреймы и открытые системы используют разные системы записи для сохранения данных на дисках. В мэйнфреймах принята система записи CKD (Count, Key, Data), где каждая запись состоит из трех полей переменной длины. В открытых системах используется система записи с фиксированной длиной дисковых блоков FBA (Fixed Flock Architecture).
Совершенно естественно, что поддержка обеих систем записи, как это сделано в Symmetrix ESP, в условиях существования одной копии данных - невозможна. Поэтому в A7000 в качестве собственной внутренней системы записи принята одна из них, а именно FBA. При необходимости CKD транслируется в FBA и обратно.
Механизм доступа к памяти может быть представлен в виде трехуровневой структуры.
На верхнем уровне существуют псевдоустройства (псевдоконтроллеры): SIMCKD - моделирование CKD для каналов мэйнфреймов ESCON и BMC; STE - эмуляция SCSI для Unix- и Windows NT- систем.
SIMCKD моделирует работу одного или нескольких контроллеров IBM 3990, к каждому из которых могут подключаться диски 3380 и/или 3390. SIMCKD непосредственно связана с каналами мэйнфрейма, она интерпретирует канальные управляющие команды CCW (Channel Command Words), используемые для управления чтением и записью, транслирует и отображает данные в тома FBA. Здесь используется метод доступа QSAM (Queued Sequential Access Method Records), обеспечивающий мэйнфреймам доступ к файлам с фиксированной длиной записи и блока. Для мэйнфрейма работа с собственными файлами не отличается от обычной работы с устройствами дисковой памяти DASD в формате томов MVS.
STE позволяет представить дисковое пространство A7000 в виде множества образов дисков, каждому из которых присваивается логический номер устройства (LUN), на них открытые системы могут создавать разделы и оперировать данными в обычной для этих систем форме.
Функции этого уровня реализует ПО, работающее на процессорах Front-End.
Средний уровень - общесистемная кэш-память.
На нижнем уровне на процессорах Back-End работает ПО DataShare, которое, собственно, и реализует разделенный доступ к данным. Работу DataShare также можно разделить на три подуровня:
- доступ к данным. Тома 3380/3390 (CKD) эмулируются в системе записи FBA. По SCSI обеспечен прямой транзитный доступ;
- преобразование и обработка данных. Конверсия EBDIC в ASCII и обратно. Преобразование записей с фиксированной длиной в записи с переменной длиной;
- представление данных. Данные мэйнфреймов представляются открытым системам в формате томов ISO 9660 (CD-ROM). Данные открытых систем представляются мэйнфреймам в привычном формате томов 3380/3390 (CKD).
В итоге чтение данных мэйнфреймов открытой системой требует выполнения следующих трех процедур DataShare:
- эмуляции доступа к томам MVS;
- преобразования EBDIC в ASCII;
- представления данных как томов ISO 9660 (CD-ROM).
Обратное действие - чтение мэйнфреймом записей, сделанных открытыми системами, требует выполнения только двух процедур DataShare:
- прямого доступа к томам FBA;
- представления данных в формате томов 3380/3390 (CKD).
Прогнозы
Аналитики предвидят значительный рост производства систем для централизованной памяти, о чем свидетельствуют их прогнозы. Подавляющая часть выпускаемой дисковой памяти в ближайшие годы будет поглощена именно этим сегментом рынка. По данным IDC, из общего объема памяти 500 000 Тб, который будет выпущен в 2000 г., 75% будут иметь централизованное управление.