Системы хранения медиаданных

Развернутая статья, подробно освещающая общие вопросы, связаные с хранением данных. Информационный мир вокруг нас стал тотально цифровым. Теперь именно в цифре мы слушаем музыку, делаем фотоснимки, снимаем домашнее видео, скачиваем и смотрим фильмы, читаем электронные книги и просматриваем в Интернете новости. Одним словом, создание, распространение и даже потребление различной информации необратимо перешло в цифровой формат. А поскольку к этому процессу через Интернет подключилось почти все человечество, то объемы цифровых данных растут со все возрастающей скоростью. И все это надо где-то надежно хранить и оперативно выдавать в ответ на поступающие запросы. Поэтому сегодня роль специализированных систем хранения данных (СХД) неуклонно возрастает. Простейший способ организации хранения данных на встроенных отдельных жестких дисках является самым доступным и распространенным. При максимальной емкости до 3 ТБ и средней производительности в 80…100 МБ/с такое устройство отлично подходит для хранения сотен и тысяч персональных файлов с различными текущими данными. Но часто этого оказывается недостаточно даже для домашнего пользователя и с точки зрения обеспечения надежности, и из-за недостаточной емкости. А при профессиональном применении, например, для различных задач производства видео высокого разрешения, требующих совместного использования сотен терабайт информации и обеспечения скоростей записи/чтения в сотни МБ/с (а порой уже и в ГБ/с), организация хранения данных на отдельных дисках даже не рассматривается. Именно поэтому последние 10 лет активно разрабатываются и все шире применяются различные внешние RAID-массивы жестких дисков. Впервые идея объединения нескольких независимых дисков в одно логическое устройство с целью повышения общей емкости, быстродействия и надежности была высказана еще в конце 80-х годов прошлого века в ставшей классической статье университета Беркли под названием A Case for Redundant Arrays of Inexpensive Disks (RAID). С тех пор понятие RAID-массивов прочно вошло в компьютерную терминологию. Конструктивно они представляют собой самостоятельные системы на 4…48 дисков в отдельном корпусе со своим процессором и оперативной памятью, надежным (избыточным) питанием и охлаждением, встроенной интеллектуальной системой управления и самодиагностики. Несмотря на сложную внутреннюю организацию, такой массив воспринимается как единое устройство со стандартным компьютерным интерфейсом для подключения и передачи данных. При этом возможно его прямое подключение к персональному компьютеру (используются также термины хост, рабочая станция, сервер), тогда оно называется DAS (Direct Attached Storage – непосредственно подключенное хранилище). В более сложном варианте, например, при работе над общим видеоматериалом в рамках рабочей группы, из одного или нескольких устройств хранения создается единая высокоскоростная СХД с организацией и разделением (контролем) одновременного совместного доступа к данным между многими пользователями, тогда уже будет SAN (Storage Area Network – сеть хранения данных). Особняком стоят сетевые хранилища – NAS (Network Attached Storage – сетевая система хранения), включаемые в обычную локальную сеть предприятия и, как правило, выполняющие функцию по хранению данных общего назначения, а также для хранения архивных данных. В отличие от SAN основное назначение NAS – это хранение, копирование и архивирование готовых данных, в том числе созданных на рабочих станциях. Но не создание и/или редактирование видео, так как в силу загруженности и невысокой результирующей пропускной способности локальной сети попытки редактирования видеоматериала даже стандартного разрешения оказываются неэффективными. Впрочем, с внедрением сетей Ethernet 10 Gb (а в перспективе и более скоростных) функциональные возможности NAS будут возрастать. Скорости и интерфейсы Рассмотрим некоторые важные характеристики RAID-систем более подробно и начнем с быстродействия. Как уже отмечалось, средняя скорость записи/чтения повседневных 3,5» SATA-дисков со скоростью вращения 7200 об/с составляет около 100 МБ/с (у дорогих SAS дисков на 15 тыс. об/с она может достигать 150 МБ/с). Объединяя несколько дисков в пакет и организуя простое распараллеливание, так называемую веерную запись/чтение блоками на все установленные диски, можно ожидать пропорционального увеличения быстродействия – для 12-дисковой системы теоретически до 1 ГБ/с. На практике реальное быстродействие заметно ниже, поскольку существует ряд дополнительных ограничивающих факторов. Главными из них являются пропускная способность интерфейса и производительность используемого RAID-процессора. В таблице сведены базовые характеристики наиболее распространенных интерфейсов СХД. Для простоты понимания она разбита на 2 части, в верхней собраны интерфейсы предыдущего поколения, а в нижней – приходящие им на смену, более производительные.

16_1

До недавнего времени для домашнего использования предлагались простые настольные массивы на 2…4 диска с внешними интерфейсами USB 2.0 и eSATA – для РС, USB 2.0 и FW800 (IEEE1394/b) – для Мac. В этих устройствах, как правило, применялись RAID-процессоры небольшой производительности, так что общая результирующая скорость обычно ограничивалась 30…80 МБ/с. Сегодня на смену USB 2.0 пришел стандарт USB 3.0 с более чем 10-кратным повышением теоретической пропускной способности. К сожалению, разработчики недорогих RAID-чипов для домашних систем не спешат, и пока для рынка PC доступны лишь устройства на 200…250 МБ/с. А вот для сторонников Mac картина меняется более кардинально. Apple отказался от поддержки USB 3.0, но приобрел у Intel технологию Light Peak, присвоив соответствующему интерфейсу громкое название Thunderbolt (в переводе – удар молнии). У него есть ряд очевидных преимуществ – действительно высокая скорость (10 Гбит/с в одну сторону), возможность подключения в цепочку до шести устройств, идентичность разъема с DisplayPort и одновременная передача по одному кабелю как Thunder-bolt-, так и DisplayPort-сигналов. Но, зная подход Apple к продвижению своих оригинальных технологий, можно ожидать высоких отчислений для производителей за включение поддержки этого интерфейса в устройства, и, как следствие, более высоких розничных цен на них. Тем не менее, новые модели MacBook Pro и iMac анонсированы уже с Thunderbolt.

Что касается соответствующих СХД, то пока их выбор невелик. Точнее, по состоянию на июнь 2011 известны только два устройства – Pegasus R4 и R6 от компании Promise Technologies соответственно на четыре и шесть дисков. Надо признать, что достигнутая в Pegasus R6 скорость в 800 МБ/с впечатляет и с запасом удовлетворяет потребности персонального использования СХД. Что касается корпоративных СХД, то в прошлые годы для DAS-устройств в основном применялся SCSI-интерфейс (его последняя модификация – U320). И только сравнительно недавно на смену параллельному SCSI U320 пришел последовательный SAS (Serial Attached SCSI), сначала с максимальной полосой в 3 Гбит/с, а сегодня уже в 6 Гбит/с. SAS сочетает преимущества протокола SCSI (глубокая сортировка очереди команд, хорошая масштабируемость, высокая помехозащищенность) и Serial ATA (тонкие, гибкие недорогие кабели, возможность горячего подключения, топология типа «точка–точка», позволяющая достигать большей производительности в сложных конфигурациях). Также SAS обладает такими новыми уникальными возможностями как продвинутая топология подключения с использованием концентраторов, именуемых SASрасширителями, подключение к одному диску двух SAS-каналов (для повышения как надежности, так и производительности), работа на одном контроллере дисков как с SAS-, так и с SATA-интерфейсом. В сочетании с новой системой адресации это позволяет подключать до 128 устройств на один порт и иметь до 16256 устройств на контроллере, при этом не требуются какие-либо манипуляции с перемычками и т.п. Кроме того, снято ограничение в 2 ТБ на объем логического устройства. Что касается эффективной скорости, то с использованием современных процессоров она приблизилась к теоретическому пределу в 600 МБ/с.

Впрочем, с этой точки зрения интересны RAID-массивы с PCIe-интерфейсом. Напомним, что классическая схема подключения внешней системы хранения к компьютеру (хосту) требует сначала преобразования данных для передачи по внешнему интерфейсу (выполняется специальным компьютерным контроллером, HBA – Host Bus Adapter), а затем обратного преобразования при приеме и последующей передаче данных уже в системе хранения. Использование контроллера внешнего интерфейса, безусловно, удобнее с точки зрения стандартизации и мобильности системы хранения, но есть и много минусов. За контроллеры надо платить и немало – от 250 (SAS) до 1000 (Fibre Channel) долларов. К этому надо добавить соединительные кабели, стоящие в зависимости от длины до 100 долларов. Поскольку в современных RAID-контроллерах, являющихся ядром любой внешней системы хранения, для передачи данных между дисками и процессором используется именно PCIе-шина, то подключение подобных систем к компьютеру непосредственно по PCIе позволяет устранить пару лишних преобразований информации и, как следствие, существенно увеличить результирующую скорость потока данных. Первопроходцем, на практике реализовавшим идею использования PCIе в качестве внешнего интерфейса, стала хорошо известная компания Accusys. Сегодня различными производителями предлагаются 8-, 12-, 16- и даже 24-дисковые устройства с PCI-E×4 интерфейсом, причем как одно- так и двухконтроллерные. В канале ×4 (четыре независимых линии по 2,5 Гбит/с по каждой линии) уверенно достигается скорость передачи в 800 МБ/с, а при прямом подключении через соответствующий двухканальный адаптер (или по интерфейсу PCIe×8) эффективный поток данных приближается уже к 1,6 ГБ/с.

Справедливости ради надо отметить, что близкие скорости можно получить и в более простом и дешевом варианте подключения к компьютерному RAID-контроллеру обычного внешнего корпуса с установленными дисками. Такой корпус не имеет никакой интеллектуальной начинки, просто обеспечивает питание и охлаждение дисков (в жаргоне их нередко называют корзинами JBOD (JBOD – Just Band of Disks, что в переводе значит просто набор дисков). А управление потоками данных на запись/ чтение осуществляет именно контроллер, соединенный с корпусом кабелем SAS. Поскольку стандартный SAS-кабель имеет четыре линии (совместимые с SATA), то на каждый канал можно «повесить» соответственно четыре диска. А если контроллер двухканальный, то соответственно уже восемь дисков. Таким образом, получаем элегантную и недорогую индивидуальную СХД из восьми дисков с эффективной скоростью до 800 МБ/с. Дальнейшее развитие данной идеи лежит в использовании JBOD-корпусов со встроенными SASрасширителями – это позволяет соединять в цепочку по SAS-интерфейсу несколько корзин и подключать к одному контроллеру до 120 дисков. Правда, производительности обычного RAID-контроллера вряд ли хватит для эффективного управления ими всеми, да и надежность работы такой системы сомнительна.

Слабым местом всех вышеперечисленных интерфейсов является небольшая допустимая длина соединительных кабелей, не позволяющая удалить СХД от рабочего места на значительное расстояние. А ведь все эти устройства шумят, греются, требуют охлаждения, то есть они плохо сочетаются с творческим процессом, предполагающим тишину и сосредоточенность. Одним из возможных выходов является использование протокола iSCSI, то есть передачу команд управления SCSI в TCP/IP-сетях, например 1 Gb или 10 Gb Ethernet. Это позволяет объединять рабочие станции и СХД в рамках стандартных локальных сетей, использовать недорогие и проверенные средства контроля и управления потоками. К тому же использование iSCSI существенно упрощает создание SAN, уменьшает стоимость соответствующего оборудования, снижает сложность прокладывания сетей. Однако общая пропускная способность даже для современного интерфейса 10 Gb iSCSI оказывается сравнительно невысокой. В связи с этим необходимо следовать одному важному правилу: не создавать SAN-сеть iSCSI на базе той же локальной сети, которая объединяет серверы и рабочие станции пользователей. В силу повышенных требований к передаваемым потокам данных системы хранения должны быть объединены в рамках отдельной сети. Следует также иметь в виду, что технология iSCSI создает значительную нагрузку на процессор компьютера (сервера), поскольку предусматривает упаковку команд и данных SCSI в пакеты TCP/IP и распаковку этих пакетов. С указанными операциями связан большой объем вычислений, которые в случае применения обычной сетевой платы, а не специализированного хост-адаптера iSCSI, выполняются процессором. Из-за данных недостатков технология iSCSI пока не получила широкого распространения, хотя ей пророчат блестящие перспективы уже в недалеком будущем. Пока же на рынке SAN-систем преобладающей технологией все еще является Fibre Channel (FC), что в переводе означает волоконный канал.

Весьма упрощенно идею FC интерфейса можно изложить так: высокоскоростная передача потоков данных (протокол SCSI) по последовательным каналам с возможностью коммутации и маршрутизации (подобно обычным Ethernet сетям) и работой на больших расстояниях (до десятков километров). Физическая реализация может быть и на основе медного кабеля (но с существенными ограничениями по скорости и дальности), однако в основном используется оптоволокно (с дальностью работы в несколько сотен метров на оптических многомодовых кабелях и до 10 км на одномодовых кабелях). Предельная скорость передачи данных по стандарту FC 8 Gb составляет 800 МБ/с. C учетом того, что для соединения устройств применяются два оптических кабеля, каждый из которых работает в одном направлении, при сбалансированном наборе операций записи/чтения скорость обмена данными удваивается (так называемый полнодуплексный режим). В результате при отношении операций записи/чтения 1:2 теоретическая скорость интерфейса достигает уже 1600 Мбайт/с.

16_2

Топология FC напоминает локальную сеть – это может быть и последовательное соединение устройств в кольцо (петля с арбитражем), и соединение «точка-точка» (что практически ничем не отличается от SCSI, только допустимое расстояние между устройствами на порядок больше). Но самая популярная и перспективная топология – это подключение через коммутируемую матрицу – Switched Fabric (иногда используют название «переключаемая матрица»). Несмотря на определенную функциональную схожесть с концентратором или маршрутизатором обычного Ethernet, FC-матрица принципиально от них отличается по производительности. Соответствующая агрегированная полоса пропускания превышает потребности имеющихся портов, так что через такой коммутатор различные устройства работают параллельно на полной скорости, нисколько не мешая друг другу, как если бы они были соединены друг с другом напрямую. Так, например, современный коммутатор QLogic SANBox 3810 имеет полосу пропускания в 136 Гбит/с, в то время как для имеющихся восьми FC 8 Gb портов достаточно 8×8×2=128 Гбит/с. Типичная схема SAN-сети на базе FC приведена на рис. 1.

Еще раз подчеркнем, что при этом любая рабочая станция (сервер) может обращаться к любому разрешенному администратором дисковому массиву. Более того, возможен доступ к одной и той же СХД нескольких устройств одновременно, причем с высокой скоростью, не идущей ни в какое сравнение со скоростью передачи данных по Ethernet. И, что особенно важно, будущее наращивание и масштабирование вычислительных средств перестает быть головоломкой. В зависимости от того, каких возможностей не хватает, можно добавить либо новую рабочую станцию, либо новую систему хранения, подключив их к SAN-сети через FC-коммутатор (конечно, при наличии свободных портов). При таком построении отпадают и проблемы «переноса» данных с одного рабочего места на другое. Например, после завершения очередного этапа работы над видеоматериалом (очередной серией телефильма) одним сотрудником, другой сразу начинает заниматься тем же самым фильмом, никуда не перемещая файлы и нисколько не теряя в скорости доступа к данным. Более того, вполне возможна и одновременная работа нескольких пользователей над одним проектом, что существенно ускоряет производственный процесс. Фактически, все подключенные таким образом дисковые массивы при использовании специального программного обеспечения (Xsan, StorNext, MetaSAN или FibreJet) образуют единую совместную систему хранения студии.

Пожалуй, единственным недостатком этой прогрессивной технологии на базе FC-интерфейса является высокая стоимость реализации. Так каждый FC-контроллер, который должен быть установлен в каждый из подключенных к SAN компьютеров, стоит около 1 тыс. долларов, да и FC-коммутаторы далеко не дешевы (от 3 тыс. долларов). В связи с этим для небольших видеостудий, ограниченных четырьмя – восьмью рабочими станциями и двумя-тремя общими RAID-массивами большой емкости, может представлять интерес альтернативная технология построения SAN на основе PCIe. Она была разработана компанией Accusys и получила название ExaSAN. Теперь вместо дорогих FC-контроллеров в компьютеры устанавливают несложные адаптеры PCIe×8 (NT Card) по цене в пределах 200 долларов. С коммутатором SW08-G2 компьютеры соединяются соответственно медным (до 5 м) или оптическим (до 100 м) кабелем. А сами массивы подключаются к коммутатору с помощью штатных кабелей PCI-E×4. Собственно, вот и все. Что касается результирующей пропускной способности, то она сравнима с достигаемой на FC 8 Gb. Впрочем, если уж экономить на FibreChannel, то возможен и совсем «прямой» вариант, основанный на подключении по FC нескольких хостов непосредственно к одной СХД. Благо, что современные двухконтроллерные RAID-массивы имеют до восьми соответствующих портов. В этом варианте можно обойтись вообще без какого-либо коммутатора.

Надежность хранения

Большинство СХД предназначено для работы в режиме 24/7. И обеспечение бесперебойности их функционирования, надежности хранения и постоянной доступности данных является первостепенной задачей. В современных RAID-массивах эта задача решается многопланово, на нескольких уровнях, как аппаратно (избыточность записи, дублирующие блоки питания и вентиляторы охлаждения, выделение нескольких дисков для «горячего» резервирования, установка специальных модулей сохранения данных кэш-памяти при аварийном отключении питания), так и программно (интеллектуальная система самодиагностики дисков, контроля напряжения и температуры).

Самым слабым местом любой дисковой системы хранения являются сами диски. Поэтому борьбу за надежность хранения надо начинать с использования изначально более качественных дисков. На первый взгляд задача выбора дисков тривиальна – ценой поменьше, объемом побольше. И нередко в RAID-массивы устанавливают стандартные диски, изначально предназначенные для обычных компьютеров. Они обладают большой емкостью, обещан ной высокой надежностью и сравнительно низкой стоимостью. Казалось бы, чего же более? Но на самом деле для дисковых массивов, работающих под управлением аппаратного RAID-контроллера, рекомендуются специальные диски серий RE (RAID Edition).

Не вдаваясь в технические детали, при их использовании обеспечивается более корректная обработка ошибок чтения. Кроме того, такие диски отличает более высокая надежность (увеличенное вдвое время наработки на отказ). Следующим шагом является правильное конфигурирование массива, то есть выбор правильного RAID-уровня, обеспечивающего необходимый компромисс между эффективностью работы массива (доступный объем и быстродействие) и его надежностью хранения (допустимым числом отказавших дисков). В теории допускается восемь основных уровней (последовательно пронумерованных от 0 до 6+), а также их возможные комбинации: 10 (0+1), 30 (3+0), 50 (5+0). Но на практике основной интерес представляют следующие уровни, аппаратно поддерживаемые специализированными RAID-контроллерами.

RAID 0 – простое распараллеливание, веерная запись/чтение блоками на все диски. Имеет самую высокую производительность, минимальную цену на 1 ГБ хранения, но нет защиты от сбоя. Поскольку RAID 0 определяет простейший вариант построения массива – без избыточности дисков, то, строго говоря, он даже не является RAID. Тем не менее, этот уровень официально утвержден консорциумом по стандартизации RAID (RAID Advisory Board, RAB) и широко используется на практике.

RAID 1 – зеркалирование, то есть дублирование всех записей на две идентичные группы дисков. Обеспечивается самая высокая степень защиты критически важных данных, но как следствие – вдвое меньший доступный объем хранения. На практике в основном используется в двухдисковом варианте для хранения небольших объемов критически важных данных.

RAID 3 – входной поток данных разбивается на блоки, по всем битам которых вычисляются контрольные значения четности. Запись/чтение осуществляется параллельно на все диски, но при этом для контрольных данных выделяется отдельный диск. При сохранении высокого быстродействия (сравнимого с RAID 0) данные не теряются при выходе из строя одного (любого) из дисков.

16_3

RAID 5 – аналогичен RAID 3, но запись значений четности распределена между всеми дисками. Кроме того, уменьшен размер блоков записываемых данных, что увеличивает быстродействие системы при большом количестве запросов на запись/ чтение небольших файлов. Этот уровень является одним из самых популярных и обеспечивает оптимальное сочетание быстродействия и надежности.

RAID 6 –параллельно рассчитываются два независимых значения четности, которые распределяются между всеми дисками. Сохранность данных обеспечивается при выходе из строя даже двух дисков. Однако этот уровень требует очень большого объема вычислений (восстановление данных при замене неисправных дисков на новые может длиться несколько дней). Все это позволяет сохранить данные даже при физическом повреждении работающего в системе диска (одного или нескольких). Однако доводить систему до такого критического состояния не стоит.

Более благоразумно и грамотно предвидеть угрозу, заранее «вычислить» потенциально плохой диск (лучше еще до установки в систему) и принять превентивные меры к его замене. Именно для этого в современных дисковых массивах предлагаются различные способы оперативной диагностики состояния дисков, что создает дополнительный «эшелон» защиты данных. Соответствующие утилиты рекомендуется запускать регулярно, лучше всего в автоматическом режиме по заранее заданному расписанию. В этом случае система будет выявлять потенциально плохой диск с пороговым значением плохих блоков. Весьма важно при этом его оперативно заменить, для чего надо всегда иметь под рукой запасной диск. А еще лучше при конфигурировании массива один из установленных дисков сразу определить как Hot Spare (запасной в режиме горячей замены).

В этом случае система при обнаружении и исключении из работы плохого диска автоматически подключит данный запасной диск и перенесет на него необходимую информацию. В корпоративных системах, обеспечивающих круглосуточный и непрерывный обмен данными (например, в процессе телевизионного вещания) предусматривается аппаратное дублирование всех жизненно важных устройств.

Для RAID-массивов это означает не только дублирование блоков питания и охлаждения, но и использование избыточных двухконтроллерных систем, работающих по схеме active–active. В этом случае при выходе из строя одного RAID-контроллера (или подключенных к нему соединительных кабелей) второй автоматически мгновенно возьмет на себя все управление.

Следующей, и, пожалуй, последней «линией обороны» является резервное копирование данных (так называемый back-up). При этом копии лучше всего создавать на физически независимых и желательно удаленных (дублирующих) RAID-массивах. Для этого современные массивы оснащаются дополнительным портом iSCSI и встроенной утилитой автоматического формирования копий на удаленных устройствах. Но даже простое копирование на некоторый выделенный логический диск в пределах одного RAIDмассива, будет уже эффективно. А если при этом еще и создавать не одну, а много копий, фиксирующих данные на заданные моменты времени (а точнее даже лишь изменения этих данных), то это позволит «откатываться» назад, например, возвращаться к неискаженным данным до вирусной атаки. Такие «мгновенные» копии, моментальные снимки данных, называются SnapShot.

Существуют различные технологии создания и управления SnapShot-копиями, но их рассмотрение выходит за рамки данной статьи. В заключение немного о доступных объемах хранения. Здесь все просто – для стандартного 24-дискового RAID-массива при уровне RAID 5 и одном диске Hot Spare эффективный объем равен суммарной емкости 22 дисков. Если не поскупиться и выбрать диски 3 ТБ, то доступно будет 66 ТБ. Мало? Современные RAID-массивы допускают подключение по SAS-интерфейсу дополнительных корзин JBOD. Таким образом, общее число видимых дисков возрастает до 120 с результирующей емкостью до 360 ТБ. И этого не хватает? Тогда объедините несколько независимых массивов в единую сеть SAN с практически неограниченной емкостью.