Едва ли можно представить бизнес-процесс или приложение, которые в той или иной форме не зависели бы от сервисов и устройств хранения файлов. За полвека рутинные средства управления файлами операционных систем превратились в один из ключевых элементов технологической инфраструктуры, без которого немыслимо инновационное развитие распределенных информационных систем.
Первое массовое устройство хранения данных с прямым доступом DASD (direct access storage device) было создано компанией IBM 50 лет назад — в 1956 году. Вначале программы работали с такими устройствами напрямую через команды ассемблера или машинные коды. В 1965 году в рамках развития проекта операционной системы Multics был опубликован доклад «Файловая система общего назначения для внешней памяти» [1], авторы которого исходили из того, что центральную роль в мультипрограммной среде играет гибкая система управления внешней памятью, поскольку пользователи должны иметь возможность сохранять для последующей работы данные в машиночитаемой форме. Редко используемые данные должны размещаться на менее быстродействующих устройствах, а более важные — на скоростных накопителях. Доступ к данным должен отличаться простотой, но в то же время быть контролируемым и обеспечивать целостность данных при сбоях и авариях оборудования. В качестве объекта хранения рассматривался файл, характеризующийся именем, наполнением (данными) и рядом атрибутов (размер, время создания, правила доступа, владелец и т.д.).
Современнику подобные идеи могут показаться вполне очевидными, тем не менее именно они определили основные направления развития и архитектуру файловых систем сначала для мэйнфреймов, суперкомпьютеров, мини-машин и персональных компьютеров, а затем для файл-серверов, специализированных устройств хранения данных. И хотя способы конкретной реализации функций управления хранением данных претерпели существенные изменения, файловая система и поныне выступает в роли посредника между пользователем, операционной системой и средой хранения — ее сервисы поддерживают отображение логических томов, каталогов и файлов в физические блоки, сегменты и секторы устройств и определяют, безопасно и надежно ли хранятся данные и насколько гибко ими могут оперировать приложения.
По данным аналитической компании Taneja Group, в 2006 году 62% опрошенных руководителей ИТ-подразделений крупных компаний считают управление файлами одной из наиболее приоритетных задач, для реализации которой рассматривается применение наиболее перспективных архитектур и технологий, активно развивающихся в течение последних лет: управление данными в территориальнораспределенных и глобальных сетях и высокопроизводительных кластерах; виртуализация и консолидация сетей и устройств хранения; управление метаданными и пространствами имен; классификация данных и администрирование файлов на основе общекорпоративных политик; многоуровневая организация среды хранения и др.
Анатомия среды хранения данных
Термин файловая система в зависимости от контекста может обозначать: а) совокупность всех файлов на диске и метаданные, используемые для управления файлами (каталоги и дескрипторы файлов, таблицы распределения дискового пространства); б) системные программные средства, реализующие функции (сервисы) управления файлами (создание файла или каталога, удаление файла или каталога, отображение содержания каталога, чтение, запись, поиск, копирование, перемещение файла) и т.д. Одной из наиболее злободневных проблем сбалансированного развития систем хранения данных является построение унифицированного словаря и архитектуры в форме, нейтральной по отношению к представлениям конкретных разработчиков [2].
Модель SNIA охватывает различные конфигурации компонентов систем хранения данных, файловые системы и их сервисы, которыми могут воспользоваться приложения: именования объектов, управления пространствами имен и каталогами, организации, сохранения и поиска данных и др. Согласно определению SNIA, файловая система — это система управления, которая предоставляет (экспортирует) приложению иерархию файлов и каталогов при помощи согласованного набора методов доступа. Методы доступа базируются на нескольких семантических моделях (например, POSIX, Windows/NTFS). На файловую систему возлагается координация операций доступа, мониторинг состояния внешних устройств, а также управление дисковым пространством. Файловая система ответственна за целостность данных и метаданных и их восстановление после сбоев или отказов системы. Управление файлами в модели SNIA рассматривается в контексте локальных, распределенных (в т.ч. географически), разделяемых (обеспечивающих коллективный доступ к файлам) и кластерных систем.
Локальные системы
В локальной системе имеется основной компьютер и подключенные к нему диски или их массив. Совместная обработка файлов различными приложениями (офисные программы, системы электронной почты и электронного документооборота и др.) организуется последовательно. Например, в системе бизнес-анализа после загрузки данных выполняется аналитическая обработка, затем генерируются отчеты, после чего технологический цикл завершается созданием резервной копии данных. При такой схеме исключается дублирование данных и необходимость их передачи между компьютерами, что позволяет более эффективно использовать вычислительные мощности. При наличии разнородных операционных систем необходимы общие средства управления томами и преобразование метаданных в «формат» целевой операционной системы.
Большинство современных систем управления файлами (UFS, HFS, XFS, JFS, и др.) поддерживают необходимые для локального управления файлами команды монтирования файловых систем и подключения томов, а в системе Veritas Storage Foundation, благодаря технологии Portable Data Container (PDC), обеспечивается перенос данных между различными операционными средами без создания промежуточных копий и остановки вычислительного процесса. Ряд локальных систем управления файлами предоставляет приложениям расширенные функции: криптографическая защита данных, «оркестровка» базовых и административных функций на основе анализа значений атрибутов и содержания файлов (например, Reiser4, WinFS).
Важнейшая функция файловой системы — восстановление данных после сбоев. В традиционной системе необходимо выполнить перезагрузку, полное сканирование, и затем — восстановление разрушенных фрагментов. Эта операция занимает продолжительное время и не всегда способна возвратить систему в состояние, предшествовавшее аварийной ситуации. Поэтому для этого применяются системы с журналированием (Journaling File System, JFS), обеспечивающие быстрое создание резервных копий и восстановление файлов. Поддержка системного журнала стала неотъемлемой функцией файловых систем корпоративных платформ в среде Unix и Linux (например, ext3, VxFS, JFS и др.). В файловой системе компании Microsoft, NTFS, обеспечивается регистрация изменений метаданных, а ее расширенная версия TxF для следующей версии Windows Vista будет поддерживать полную обработку транзакций доступа к файлам.
Распределенные системы
Распределенные или сетевые системы позволяют обращаться к томам, файлам и каталогам удаленных компьютеров. Благодаря механизмам взаимодействия клиентов и серверов и интеграции с локальными файловыми системами обеспечивается прозрачность доступа и обработки файлов в гетерогенной среде.
Согласно сетевому протоколу NFS, разработанному компанией Sun в 1985 году сервер открывает доступ к своей файловой системе в результате процесса экспорта, а клиенты монтируют ее. Двусторонний протокол NFS позволяет клиентам и серверам взаимодействовать при обеспечении доступа и совместного использования файлов. Этот протокол обычно ассоциируется с Unix-системами, однако может использоваться и на других платформах. Компания Microsoft реализовала аналогичный протокол — Common Internet File System (CIFS), с помощью которого приложения получают доступ к удаленным файлам аналогично доступу к локальным данным. Взаимодействие происходит «поверх» TCP/IP с использованием службы имен DNS с применением ссылок на удаленные объекты с помощью глобальных идентификаторов. Поддерживаются операции открытия, закрытия, чтения, записи файлов и поиска данных, а также средства защиты и блокировки, благодаря чему файлы могут корректно обрабатываться разными приложениями. Серверы CIFS интегрированы во все современные платформы Microsoft и поддерживаются в средах VMS, Unix, Mac OS и др.
Сетевые файловые системы постоянно совершенствуются. Так, в AFS и DFS реализована поддержка глобальных пространств имен, а в четвертой версии NFS (совместная разработка компании Sun и Internet-сообщества IETF) усовершенствован протокол взаимодействия клиент-сервер, введены укрупненные команды обмена, реализуются встроенные средства защиты и обеспечения целостности данных, разделение обработки глобальных пространств имен и данных, средства параллельной обработки и управления географически распределенным хранением данных.
На базе распределенных файловых систем создаются корпоративные серверные решения для сетевых устройств хранения (EMC NAS, Sun StorEdge NAS), которые позволяют создать среду коллективной работы пользователей (офисные приложения, средства разработки и проектирования программ, доступ к архивам изображений и т.д.). Определенный интерес представляют разработки в области виртуализации файл-серверов, управления жизненным циклом данных и адресуемой в соответствии с информационным наполнением внешней памяти.
Разделяемые системы
Системы для сетей хранения. Элементы кластерных технологий с успехом применяются в сетях хранения данных SAN для обеспечения сбалансированного доступа серверов к общему пулу внешней памяти. Например, разработчики системы управления файлами ADIC Storenext предположили, что совокупность корпоративных данных, хранящихся в файлах, целесообразно разделить на непересекающиеся классы в соответствии с частотой обращения, характером использования, конфиденциальности и т.д. Для управления большими объемами данных в гетерогенной среде необходимо автоматизировать рутинные процедуры доступа, перемещения и защиты данных в течение всего периода их «жизни». С этой целью для размещения файлов данных, метаданных и системных журналов предлагается иметь самостоятельные подмножества общего пула внешней памяти (в виде совокупности дисков, дисковых массивов или логических устройств LUN). Для хранения и обработки служебной информации данных выделяется сервер метаданных (при необходимости дублируемый для повышения надежности), связанный с клиентами с помощью IP-сети, по которой поступают запросы к файлам, а после проверки полномочий доступа передается ссылка на местоположение файла. Доступ к данным со стороны клиента происходит по высокоскоростному соединению Fibre Channel.
Виртуализация NAS. Данный подход обусловлен популярностью сетевых устройств хранения данных NAS и необходимостью улучшить управление пулом общей дисковой памяти. Одно из интересных решений в этой области предлагает компания NeoPath. Средства сетевого управления файлами File Director обеспечивают централизацию управления физическими устройствами сетевого хранения, поскольку вводится виртуальное представление всей совокупности файлов. При этом поддерживаются исходные форматы хранения данных, а пользователи могут прозрачно оперировать и перемещать отдельные файлы и иерархические структуры каталогов по всей совокупности не обязательно одинаковых устройств хранения с применением протоколов NFS и CIFS.
Системы для кластеров. В традиционных системах организации внешней памяти при повышении нагрузки приходится устанавливать дополнительные запоминающие устройства. Технологии кластеризации обеспечивают более высокую пропускную способность и масштабируемость для сетей, насчитывающих сотни узлов с общим пулом разделяемой сетевой дисковой памяти, согласующуюся с коллективной моделью вычислений. Относительно постоянные данные можно продублировать на каждом сервере, но для часто изменяемых данных пришлось бы распространять изменения после каждой операции обновления (записи) файла на все копии. Идея состоит в том, чтобы к файловой системе одного или нескольких общих устройств хранения, подключенных к серверам, имели доступ все узлы, обрабатывающие данные. Механизм просмотра метаданных и разрешения конфликтов доступа к файлам может быть централизован или распределен между узлами. Так, система General Parallel File System (GPFS) компании IBM располагает средствами оптимизации интенсивного параллельного обновления данных, благодаря которым при необходимости происходит переключение между непосредственным и сетевым вводом/выводом. В системе PolyServe Matrix Server каждый узел наряду с доступом к локальному или размещаемому в сети SAN загрузочному диску может выполнять операции чтения и записи всех томов, принадлежащих кластеру. При этом поддерживается унифицированное представление имен дисковых устройств, и с точки зрения управления внешней памятью кластер может рассматриваться как единая совокупность объектов. Естественно, при обработке файлов малого размера могут возникать перегрузки, кроме того, «кластерные» приложения должны быть разработаны с учетом того, что обрабатываемые ими данные могут быть доступны и другим программам. Другими словами, хотя ответственность за блокировку данных, разрешение конфликтов и синхронизацию обработки данных лежит на приложениях, кластерные файловые системы должны располагать распределенными средствами управления блокировками (Distributed Lock Manager, DLM) позволяющими контролировать права доступа отдельных узлов к данным.
Параллельные системы
В распределенных системах параллельной обработки данных для научных расчетов, в мощных системах автоматизированного проектирования и других аналогичных системах преимущества доступа к файлам по сети должны сочетаться с высокой производительностью и масштабируемостью решения. Для этого необходима распределенная файловая система, которая рассредоточивает управление файлами, блокировками и метаданными по всем узлам, предоставляя в совместное пользование хорошо масштабируемый пул внешней памяти, объем которого при необходимости можно увеличить до сотен терабайтов.
В распределенном решении OneFS компании Isilon, включающем собственно файловую систему, средства управления томами и дисковыми массивами, программные компоненты распределены по всем узлам кластера. Точно так же распределяются файлы и метаданные. Каждый узел располагает сведениями о размещении каждого файла. В такой конфигурации существенным становится наличие единого пространства имен, обеспечивающего уникальность ссылок на файлы без указания имени томов, которые пользователи попросту «не видят».
Файловые сервисы для глобальных сетей
По некоторым оценкам, до 75% данных крупных компаний хранится в филиалах — консолидация территориально распределенных ресурсов памяти была затруднена из-за низкой пропускной способности и надежности региональных и транснациональных сетей. Технология файловых сервисов для глобальных сетей (Wide Area File Services, WAFS) призвана снять основные ограничения дистанционного доступа к файлам в существующих сетях. За счет применения специальных программно-технических решений коллективный доступ сотрудников удаленных подразделений к файлам, хранящимся в централизованном сетевом хранилище, осуществляется со скоростями, сопоставимыми с быстродействием локальных сетей. Например, в решении, предлагаемом компанией Tacit Networks, предусматривается специализированное серверное устройство (WAFS Server Appliance), устанавливаемое в центре обработки данных и несколько удаленных устройств (WAFS Remote Appliance) в филиалах и подразделениях компании. Каждое из этих устройств взаимодействует с удаленными клиентскими машинами и файл-серверами по стандартным протоколам CIFS и NFS, а обмен информацией с аналогичными устройствами происходит по специальным протоколам, оптимизированным для глобальных сетей. Эти протоколы существенно сокращают сетевой трафик, обусловленный механизмом удаленного вызова процедур RPC, лежащим в основе стандартных протоколов.
Центральное серверное устройство WAFS с точки зрения разделяемого сетевого устройства хранения рассматривается в качестве обычного клиента, а пользователи филиала «видят» установленное у них устройство WAFS как устройство NAS с коллективно доступными по сети файлами. В такой конфигурации применяются различные методы преодоления задержек, связанных с низкой надежностью и пропускной способностью глобальных сетей: специальные алгоритмы кэширования, сжатие и потоковая обработка данных, а также распределенный механизм управления блокировками файлов. В результате удаленные пользователи получают возможность совместно обрабатывать общие файлы с приемлемыми скоростями. При этом все функции управления данными (идентификация пользователей и разграничение доступа, резервное копирование и восстановление, репликация данных и управление ресурсами памяти) возлагается на удаленные NAS-серверы.
В преддверии файловых сетей?
Подобно тому как десять лет назад требования бизнеса и возможности ИТ обусловили сначала появление, а затем бурный рост сетей хранения, сегодня имеются предпосылки возникновения файловых сетей (File Area Network, FAN) [3]. Файловые сети должны стать основой масштабируемых и высокоэффективных платформ хранения и предоставления файлов, которые смогут обеспечить гармонизацию систем управления файлами в масштабе корпорации:
- согласование общекорпоративных методов контроля и управления файлами, основанных на анализе атрибутов и метаданных;
- гарантированные и прозрачные методы перемещения файлов между подразделениями и отделениями корпорации;
- создание универсальных инфраструктурных файловых сервисов, которые могли бы предоставляться всем приложениям.
Согласно данным Taneja Group, 57% крупных компаний уже сосредоточили свои усилия на консолидации служб именования файлов, в результате чего локальные каталоги должны быть сначала объединены в пространства имен распределенных кластеров и сетей хранения данных, а затем — в глобальное пространство унифицированных имен (Global Unified Namespace, GUN).
Обеспечить согласованное выполнение инфраструктурных функций управления файлами должны программные сервисы файловых сетей, взаимодействующие с пространствами имен и внешней средой хранения. Выделяют следующие категории таких сервисов:
- классификация и управление жизненным циклом данных. Технологии классификации и управления данными на основе анализа содержания, активно развивающиеся в последние годы, должны стать основой механизма управления хранением и доступом к данным в файловых сетях;
- обеспечение непрерывности доступа и сохранности данных и метаданных;
- размещение, миграция и репликация данных должны обеспечивать создание и сохранение файлов и их копий на тех или иных устройствах и прозрачное перемещение данных между подразделениями в зависимости от корпоративных политик, управляемых атрибутами файлов и метаданными;
- расширение файловых сетей. В условиях глобализации бизнеса и консолидации информационных систем компаний, необходима не только поддержка единого пространства имен, но и возможность информационного взаимодействия в географически распределенных сетях с качеством обслуживания, сопоставимым с локальными сетями.
Вполне возможно, что усилия активных участников рынка — Brocade, EMC, Hewlett-Packard, IBM, Microsoft, Network Appliance, Sun Microsystems — в самое ближайшее время ознаменуются новыми технологическими решениями, которые приблизят реализацию файловых сетей.
- R. Daley, P. Neumann, A General-Purpose File System For Secondary Storage.
- SNIA 2006 Technical Tutorials.
- Brad O`Neill, Introducing the File Area Network