Особенности построение систем хранения данных в High Load системах.

Для того чтобы создать долговременную систему хранения данных (ДСХД), нужно «всего-то ничего» – технический проект и сами устройства для хранения. По поводу самого проекта мы поговорим в другой статье, но вопрос «где хранить?», как я уже писал ранее, стоит на первом месте.

Соответственно, любой ИТ-специалист – системный администратор, инженер, архитектор и даже директор по ИТ – рано или поздно столкнется с выбором подходящего решения для хранения данных.

Здесь есть два варианта решений: аппаратные и программные.

Аппаратные решения представляют собой полностью закрытые системы, часто на базе специализированных процессоров и специального ПО (firmware), предназначенного для управления СХД. Как правило, такие системы имеют узкоспециализированное предназначение (например, СХД только для подключения по iSCSI) и продаются по достаточно высокой цене. В этот раз мы не будем подробно останавливаться на этом классе продуктов и сразу перейдем к следующей группе.

Похожее изображение

Программные решения состоят из обычного сервера, чаще всего на платформе Intel x68_64 и специализированного ПО для управления системой и предоставления доступа к данным. Именно от программного обеспечения зависит то, каким потенциалом будет обладать такая система хранения данных.

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

Что предпочтительнее и в конечном итоге выгоднее, зависит от каждой конкретной ситуации. Часто бывает, что рентабельнее купить платный продукт, чем ждать, пока ИТ-отдел своими силами внедрит бесплатную версию. Что же касается сложных и непредвиденных ситуаций, то здесь гораздо надежнее иметь в запасе гарантированную возможность обратиться за помощью в службу поддержки, где уже сталкивались с подобными проблемами, чем остаться с проблемой один на один и все делать самому, пусть даже и бесплатно.

Среди платных решений стоит отметить такие продукты, как NexentaStor, RAIDIX  и Open-E. RAIDIX и Open-E базируются на Linux-ядре, а NexentaStor является производным от Solaris.

Бесплатных систем много, но из полностью работоспособных систем можно назвать FreeNAS, NAS4Free и OpenMediaVault . FreeNAS и NAS4Free являются клонами (или, если воспользоваться сленгом, «форками») операционной системы FreeBSD, а OpenMediaVault изначально был построен на Linux.

RAIDIX, NexentaStor и Open-E имеют все основания считаться полноценными системами для долговременного хранения. Они содержат соответствующие алгоритмы исправления ошибок, защищающие от скрытого повреждения данных (Silent Data Corruption), в них присутствует поддержка RAID 7, позволяющего выдержать выход из строя до трех дисков без разрушения данных в томе (название данного уровня условно, ибо классический вариант аппаратного решения для такого уровня пока отсутствует).

А вот среди бесплатных только FreeNAS и NAS4Free могут претендовать на статус полноценных вариантов для долговременных систем хранения данных. OpenMediaVault не поддерживает отказоустойчивые файловые системы, вроде ZFS, и его создатели не прилагали специальных усилий, чтобы избавиться от случайных ошибок, как в RAIDIX.

Еще одно значимое отличие платных систем от приведенных в данном обзоре бесплатных: у систем RAIDIX, NexentaStor и Open-E есть модуль для создания FC-target, позволяющий превратить программную СХД в полноценное SAN-хранилище на базе FibreChannel.

Было еще довольно много попыток создания операционных систем для СХД. Среди них, на мой взгляд, довольно успешной выглядит ZFS-guru. Но все они либо имеют экспериментальное предназначение, либо выглядят как набор «сделай сам».

Готовыми для работы «из коробки» можно считать только шесть систем, которые я перечислил выше. Возможно, гдето существуют еще какие-либо замечательные программные решения для создания СХД, но, если они не получили признания и широкого распространения, то говорить о них всерьез пока рановато.

Примечание. С некоторым ущербом для патриотических чувств можно отметить, что среди перечисленных систем для СХД только RAIDIX является отечественным продуктом, рожденным и развиваемым именно в России. Как это часто бывает, российская разработка сначала получает признание за рубежом, а потом уже в своем отечестве. Что поделать, наследие Петра I – поклонение всему «заграничному» – до сих пор живет и в умах и в сердцах россиян. Но, даже несмотря на все неблагоприятные внешние обстоятельства, наши соотечественники в компании «Рэйдикс» сумели создать довольно интересную, а главное, полностью рабочую систему. Стоит заметить, что подобное удавалось далеко не всем именитым западным вендорам.

Описание программных систем хранения данных

Общие черты и некоторые различия

Чтобы не отвлекаться на повторение той или иной функции, присутствующей в каждой системе, перечислим общие черты всех шести систем из данного обзора. Это:

  • возможность управления через веб-интерфейс;
  • возможность управления системой напрямую посредством командной строки;
  • поддержка протоколов обмена данными NFS, SMB, FTP, SCP/SFTP;
  • поддержка подключения по протоколу iSCSI;
  • поддержка RAID уровней 0, 1, 5, 6, 10. Все системы, кроме OpenMediaVault, поддерживают еще и RAID7.

В принципе любой из этих систем достаточно для созданий небольшого файл-сервера или хранилища для оперативного хранения резервных копий. Но, когда дело дойдет до построения систем с высокой нагрузкой или для долговременного хранения, цена ошибки станет достаточно высокой и будет нужен более тщательный подход к выбору программной СХД.

Говоря об общих признаках, нельзя не упомянуть знаменитую файловую систему ZFS, которая используется в четырех из шести представленных продуктов.

ZFS расшифровывается как Zetabyte File System. Это продукт, рожденный в недрах компании Sun Microsystems и первоначально предназначенный для операционной системы Solaris.

У данной файловой системы несколько отличительных признаков, среди которых:

  • поддержка больших объемов данных (отсюда и название);
  • 64-разрядный механизм использования контрольных сумм, сводящий к минимуму вероятность незаметного разрушения данных;
  • переменный размер блока для повышения производительности и оптимизации использования дискового пространства;
  • поддержка уровней образования RAID с одним, двумя и тремя блоками контроля четности (RAID-Z, RAID-Z2 и RAID-Z3 соответственно);
  • использование алгоритмов защиты при записи Redirect-On-Write при записи данных в обычном режиме и Copy-On-Write при работе с моментальными снимками;
  • улучшенная структура данных на дисках, легковесные файловые системы, а также простое управление томами хранения данных.

Несмотря на покупку SUN компанией Oracle, ZFS остается проектом Open Source с лицензией CDDL (Common Development and Distribution License).

Существует две реализации файловой системы ZFS:

  • первоначальная, созданная компанией SUN для платформы Solaris;
  • OpenZFS, являющаяся свободным ответвлением первоначальной ZFS, развиваемая и поддерживаемая в рамках проекта FreeBSD и других сообществ Open Source.

Этот дуализм порой может сыграть злую шутку при проектировании систем СХД. Дело в том, что функционал различных реализаций ZFS не является идентичным. Поэтому обязательно уточняйте в каждом случае, какая реализация ZFS используется.

Картинки по запросу ZFS

Системы, построенные на ZFS, активно используют кэш в оперативной памяти для хранения метаданных и таблицы дедупликации. Однако у этих же систем есть один серьезный недостаток – большая требовательность к аппаратным ресурсам, в частности к объему оперативной памяти и мощности процессора.

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

По другому пути пошли создатели RAIDIX, создав собственный менеджер томов, позволяющий реализовать большинство вышеописанных преимуществ, включая контроль случайных ошибок, без ущерба для производительности.

NexentaStor

Этот программный продукт для организации СХД изначально создавался на базе OpenSolaris (тогда еще компании SUN), позже после покупки SUN компанией Oracle в основу был положен другой свободный клон Solaris – Illumos.

Картинки по запросу NexentaStor

Продолжая традиции OpenSolaris, NexentaStor является продуктом Open Source. Помимо публикации исходного кода, существует бесплатная версия NexentaStor Community Edition с ограничением на 18 Тб. Основным преимуществом NexentaStor является использование ZFS-версии. Функционал решения включает в себя:

  • неограниченный размер файловой системы и неограниченное количество моментальных снимков;
  • виртуализация дисков;
  • блочное зеркалирование с непрерывной защитой дан-ных (CDP);
  • синхронную и асинхронную репликации данных;
  • механизм Thin Provisioning для плавного выделения ме-ста под хранилище;
  • поддержку томов однократной записи – WORM;
  • поддержку протоколов NFS/SMB/RSYNC/FTP;
  • поддержку подключения FC/iSCSI/SAS;
  • поддержку отказоустойчивого кластера;
  • поддержку гибридных томов с дисками SSD.

Стоимость лицензии зависит от количества терабайт. Дополнительные модули, например для поддержки FC-target, необходимо приобретать отдельно. Также можно приобрести более высокий уровень поддержки, позволяющий более оперативно решать возникающие вопросы.

Система предоставляет пользователю широкие возможности, однако у NexentaStor есть и достаточно серьезный недостаток. Данная система поддерживает только узкий спектр устройств. При этом стоит учесть, что если оборудование не указано в «белом списке», то тратить время на тестирование не стоит – скорее всего это будет бесполезно. Сказывается наследие Solaris: данная операционная система является не самой распространенной, поэтому производители оборудования не спешат писать для нее драйверы.

Вторым недостатком является ее высокая требовательность к системным ресурсам. «Минимум 8 Гб RAM плюс по 1 Гб на каждый 1 Тб дискового пространства» – это всетаки достаточно серьезные запросы, притом что современные объемы ДСХД уже измеряются петабайтами.

Подводя итог по NexentaStor, можно сказать, что это «суровая» система с большими возможностями и высокими требованиями к аппаратному обеспечению, при этом весьма дорогая и вряд ли доступная для каждого офиса. Зато в качестве платформы для высоконагруженных систем, например в качестве СХД облачного провайдера, она будет на своем месте.

RAIDIX

Надо отметить, что RAIDIX сильно выделяется среди остальных систем, как платных, так и бесплатных. Дело в том, что она изначально проектировалась для высокопроизводительных СХД, в то время как остальные решения создавались для хранилищ общего назначения. Его разработчики в первую очередь уделяли внимание работе под высокой нагрузкой, например много сил было потрачено на оптимизацию случайного доступа.

Картинки по запросу RAIDIX

Но, несмотря на серьезные конструктивные отличия, RAIDIX очень хорошо подходит для долговременного хранения данных.

Что стоит отметить, так это разнообразие уровней организации RAID. RAIDIX может использовать стандартные массивы RAID0, RAID1, RAID10, RAID5, а также собственные патентованные уровни RAID 6, RAID 7.3, RAID N+M.

Примечание. RAID N+M – уровень чередования блоков с таким распределением четности, при котором пользователь может самостоятельно определить количество дисков, выделяемых под хранение контрольных сумм. Собственная технология RAIDIX позволяет восстановить данные при отказе до 32 дисков (в зависимости от количества дисков, выделяемых под контрольные суммы). Честно говоря, я не знаю, кому это может понадобиться, но в то же время наличие таких возможностей говорит о серьезном подходе к защите данных, что, впрочем, и нужно для долговременного хранения.

Другая интересная возможность – это частичная реконструкция. Этот механизм дает возможность восстанавливать только отдельную область жесткого диска, содержащую поврежденные данные, уменьшая общее время восстановления массива. Особенно полезно для массивов больших объемов.

Картинки по запросу RAIDIX

Из дополнительного полезного функционала стоит отметить дедупликацию и технологию Thin Provisioning – для экономии дискового пространства.

В качестве еще одного дополнения, не обязательного для классического варианта ДСХД, можно упомянуть функцию QoS (качества обслуживания), которая получила у «Рэйдикс» свою оригинальную реализацию. Сервис QoSmic позволяет в автоматическом режиме выставлять приоритеты тем или иным приложениям, таким образом распределяя нагрузку и оптимально используя ресурсы системы хранения.

Что еще стоит отметить в RAIDIX – это нормальная человеческая документация на русском языке, которая обновляется от версии к версии. Правда, она зачем-то делится на пособие по установке и пособие для администратора. На мой взгляд, любой администратор СХД должен вначале читать документацию, а потом начинать развертывать систему хранения данных.

Еще один важный момент – Linux-основа позволяет данной системе использовать более широкий спектр оборудования, чем, например, Nexenta на базе Solaris.

К недостаткам RAIDIX можно отнести отсутствие поддержки майкрософтовского протокола SMB 3.0.

Еще одно ограничение – в RAIDIX пока нет синхронной репликации. Ну, впрочем, серьезным недостатком для ДСХД это назвать довольно сложно.

Open-E

Еще одна система на Linux, но с поддержкой файловой системы ZFS. Имеет те же основные преимущества, что и NexentaStor, но стоит дешевле и требует меньше ресурсов для работы. Спектр поддерживаемого оборудования у Open-E шире, чем у NexentaStor. Именно то обстоятельство, что производители оборудования для систем на базе Linux пишут драйверы более охотно, позволяет Open-E похвастать большим охватом аппаратного обеспечения.

Картинки по запросу Open-E Data Storage

Дополнительной «изюминкой» можно назвать наличие расширенной поддержки резервного копирования, в частности, поддержку протокола NDMP v3.0 (Network Data Management Protocol) и наличие встроенных агентов для различных продуктов резервного копирования: Backup Exec, Retrospect, BrightStor. Это достаточно хорошая новость, так как перед ИТ-персоналом рано или поздно встает вопрос, чем и как выполнять резервное копирование с СХД. Напомню, что в случае с долговременными системами хранения данных это вопрос достаточно нетривиальный.

Еще одним хорошим подспорьем является достаточно большой объем публикаций в виде готовых How-to, позволяющих сразу приступить к работе с системой.

Версия Open-E Data Storage Software V7 Small Office Home Office (SOHO) распространяется бесплатно, однако, как и NexentaStor Community, имеет ограниченный объем – всего 4 Тб.

К ограничениям можно отнести слабую распространенность среди отечественных пользователей и нетрадиционную архитектуру – Linux вкупе с ZFS пока что выглядит не совсем обычно, поэтому осторожные айтишники скорее предпочтут решения, проверенные временем. Хороший системный администратор – это человек подозрительный и злопамятный, и такие люди не склонны полагаться на систему, которую мало кто использует, и тем более выбивать деньги для ее покупки. Будем надеяться, что для данной системы все же заработает механизм положительной обратной связи и доля Open-E в составе программных СХД возрастет.

FreeNAS и NAS4Free

Эти замечательные системы лучше изучать совместно. Дело в том, что они не только имеют общего предка – FreeBSD, – но и во многом схожи друг с другом.

Например, если искомого оборудования нет в списке NAS4Free, но соответствующая запись есть в «белом списке» FreeNAS, то с большой долей вероятности эта «железка» заработает и под NAS4Free.

Картинки по запросу FreeNAS

Стоит также отметить тот факт, что номер версии у FreeNAS, NAS4Free и FreeBSD совпадает. Например, «10.3.03» означает, что обе версии систем для СХД были построены на FreeBSD 10.3.03.

Примечание. Так как фактически обе системы являются немного видоизмененными клонами FreeBSD, при непонятной ситуации – заработает или нет FreeNAS и NAS4Free на данном оборудовании? – ответы стоит поискать среди совместимого оборудования и для этой системы. При этом очень много устройств, которые явно не перечислены в списке совместимости, все равно смогут работать в дистрибутивах на базе FreeBSD, в силу того, что в этой системе используются универсальные драйверы, способные поддерживать сразу несколько устройств со схожей схемотехникой. В то же время стоит отметить, что хотя FreeBSD сейчас не так популярна у производителей оборудования, как Linux, но все же крупные производители выпускают отдельные драйверы и для нее тоже.

Несмотря на внешнюю схожесть между данными системами, есть весьма существенное отличие.

FreeNAS является классической embedded-системой и предназначена для встраивания в «железо» для создания программно-аппаратных решений. Классический вариант использования FreeNAS – запуск с флеш-накопителя, создание виртуального диска в оперативной памяти и копирование в него исполняемых файлов.

Если необходимо дополнительное ПО, то оно подключается в виде специальных плагинов, которых, кстати, достаточно большое количество. Например, с помощью плагина на базе FreeNAS можно организовать сервер для резервного копирования под управлением Bacula.

Помимо своей просветительной функции «что еще можно сделать из FreeBSD», FreeNAS играет довольно важную роль: на ее основе созданы и продаются не такие уж дешевые СХД корпоративного класса. Например, под торговым брендом TrueNA.

В отличие от своей сестры NAS4Free – полноценная операционная система, хоть и специализированного назначения. Ее можно установить на жесткий диск, создать раздел подкачки, напрямую влиять на работу сервисов, вручную редактируя конфигурационные файлы и так далее. Дополнительные программы можно устанавливать с помощью стандартной команды FreeBSD – pkg install. К услугам любителей модификации – весь спектр программ, написанных для FreeBSD соответствующей версии. В то же время в списке вариантов установки присутствует и вариант для embedded, например установка на флешку с последующим развертыванием в оперативной памяти.

Помимо штатной функции размещения и хранения файлов, NAS4Free содержит в себе встроенную систему виртуализации на базе VirtualBox, массу дополнительных программ, например BitTorrent, и многое другое.

В общем и целом, можно сказать, что FreeNAS и NAS4Free для создания СХД в своем первозданном виде выглядят скорее как системы для домашнего NAS, нежели для создания промышленной системы хранения. Ну, скажите, зачем в корпоративном хранилище torrent-клиент?

В то же время обе системы с успехом выполняют свою функцию – размещение и хранение файлов, при этом за счет функционала файловой системы OpenZFS имеют хорошие перспективы для организации недорогих СХД, в первую очередь для долговременного хранения данных.

Дополнительно стоит отметить невысокие требования к аппаратному обеспечению, что также весьма полезно для не слишком большого бюджета.

Среди ограничений стоит отметить отсутствие развитой системы техподдержки (для FreeNAS она сосредоточена в рамках обслуживания готовых продуктов TrueNAS). Многие крупные организации не рассматривают варианты использования оборудования или ПО без специальной поддержки. Поэтому применение FreeNAS и NAS4Free (без учета TrueNAS) чаще всего ограничено стараниями и способностями отдельных системных администраторов.

Что же касается документации обеих систем, то она застыла на версии 9, и, по всей видимости, дальнейших обновлений ждать не стоит (сейчас актуальная версия ПО – 10.3.03).

OpenMediaVault

Еще одна бесплатная система для организации программной СХД. Как и следует из названия, этот продукт базируется на разработках Open Source. В качестве основы взят Debian Linux. Для управления используется веб-интерфейс. Есть возможность задействовать командную строку.

Подобно FreeNAS, дополнительное программное обеспечение может быть установлено в виде плагинов. Среди таких возможностей – поддержка DLNA, OpenVPN, LDAP, VirtualBox, MySQL, ClamAV, SVN и так далее.

Разумеется, стандартные протоколы обмена данными CIFS/SMB, NFS, SFTP/SCP, FTP, Rsync, iSCSI доступны «из коробки».

В то же время OpenMediaVault не является классической embedded-системой и для размещения служебных файлов требует жесткий диск. Поэтому к услугам пользователя – весь ассортимент репозитория Debian, на базе которого построена система.

Картинки по запросу OpenMediaVault

Как я уже писал выше, данный дистрибутив не поддерживает ZFS, отдавая предпочтение файловым системам, ставшим классическими для Linux: Ext4FS, XFS, JFS. В этом можно усмотреть как отрицательный, так и положительный момент. Во-первых, система получает некоторый выигрыш в быстродействии за счет более скромных затрат на обслуживание файловой системы. Во-вторых, файловая система XFS неплохо зарекомендовала себя при работе с файлами большого объема. В то же время с вопросами защиты целостности данных у OpenMediaVault дело обстоит не так хорошо, как, например, у NexentaStor или RAIDIX, и RAID уровня 7 не поддерживается. А файловая система XFS более чем другие подвержена разрушениям из-за сбоев питания.

Поэтому OpenMediaVault можно назвать «NAS для небогатых». Невысокие системные требования вкупе с широким спектром поддерживаемого оборудования (все это благодаря Debian) – что еще нужно для организации недорогого NAS, скажем, для хранения недельных резервных копий?

Но исходя из приведенных выше особенностей для более серьезных разработок все-таки будет надежнее воспользоваться другой системой.

Существует множество систем для организации программных СХД, каждая из которых подходит для определенных ситуаций. Например, RAIDIX больше подходит для построения высокопроизводительных систем с высокой степенью надежности, NexentaStor – для хранения больших, очень больших объемов данных, а системы на базе FreeBSD – для тех случаев, когда бюджет ограничен, но требуется хороший уровень отказоустойчивости.

В то же время не стоит забывать, что прогресс не стоит на месте и «бюджетная» система хранения данных уже через год может не отвечать новым требованиям и тогда потребуются ее обновление и замена. Учитывая тот факт, что СХД является основой ИТ-инфраструктуры, манипуляции с ней могут вызвать нежелательные трудности. Лучше заранее сделать ставку на системы с большей производительностью, чтобы иметь больше возможностей для развития.

Рейтинг материала
[Голосов: 1 Рейтинг: 5]
24 февраля 2017, 02:33

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *