В этой статье я отклонюсь от традиционной для меня темы систем хранения FAS и подниму тему объектного хранения данных в системах NetApp StorageGrid WebScale. Если кратко, то объектное хранение — это третий тип хранения наряду с NAS и SAN. Представьте себе, что каждый файл состоит из данных и метаинформации (владелец, права, время модификации и т.д.), так вот объектное хранение позволяет разъединить эти части и хранить их в виде «ключ/значение». Такой подход хранения информации открывает возможности децентрализованного, распределённого хранения данных огромных масштабов с прозрачной миграцией данных, репликацией и прозрачным переключением конечных потребителей между нодами объектного кластера. В широком смысле объектное хранилище может быть реализовано как на уровне устройства (жесткого диска), при помощи специализированных SCSI команд (Object-based Storage Device Commands), так и на уровне протокола доступа к системе хранения, которая состоит из нескольких дисков (которые, в свою очередь, вовсе не обязаны быть объектными). В обоих случаях используется Ethernet для подключения и IP протокол для передачи данных. Примером реализации объектного хранилища на уровне устройства являются жесткие диски линейки Seagate Kinetic Open Storage platform. Примером систем хранения данных в облаке может быть Microsoft Azure BLOB, Amazon S3. В этой статье я остановлюсь на объектных СХД, которые можно развернуть у себя на сайте и при необходимости подключить к облаку. Широкую популярность приобрели объектные протоколы S3, SWIFT, CDMI, все они являются надстройкой над HTTP.



История


Изначально продукт StorageGRID развивался для здравохранения, так как хранение миллионов крупных и мелких объектов требовало специализированного решения. Крупные производители оборудования для здравохранения такие к Siemens, AGFA и другие крупные PACS системы поддерживают возможность отсылки объектов напрямую в StorageGRID. Этот подход позволил осуществить сценарий ранее не возможный для файловых хранилищ, к примеру когда врачу нужно получить данные о пациенте за последние 10 лет, хотя больной переехал из Миннесоты в Лос-Анджелес. StorageGRID и сейчас по-прежнему крайне востребован в отрасли здравохранения, но смог также найти применение и в облачных решениях для хранения разнообразных данных.

Семейство NetApp StorageGrid состоит из двух представителей:
  1. ПО в чистом виде, NetApp StorageGrid WebScale
  2. Программно-аппаратный комплекс NetApp StorageGrid appliance на базе E-Series — SG5660.

Оба этих варианта могут сосуществовать в одном кластере.


Первый вариант состоит из двухконтроллерной системы, где один контроллер — это Storage нода, а второй — Compute нода. Т.е. в шасси есть два контроллера, но это не High-Avalability система сама по себе — рекомендуется минимум 2 такие SG5660 системы (т.е. 4 контроллера), для отказоустойчивости. Для аппаратного решения, кроме SG5600 также необходимо наличие минимум 2 серверов для размещения Gateway и Admin нод.
Второй вариант (ПО) может поставляться в виде ESXi апплаенса или в виде Docker образа на основе Debian Linux. В этом варианте, можно использовать одну обычную E-Series, с двумя контроллерами и High-Availability, со стандартной OS SANtricity и поверх всего этого минимум два сервера со Storage, Gateway и Admin нодами. В софтверном исполнении необходимо больше серверных мощностей из-за необходимости содержать Storage ноду (наиболее требовательную к ресурсам) на сервере.


Рост неструктурированных данных неуклонно набирает обороты, примерами генераторов таких данных являются развивающийся рынок IoT, появившиеся на рынке фото и видео камеры с невиданным доселе разрешением и качеством кадра, медицинское оборудование и другие устройства. Для закрытия всех этих задач, с нуля был разработан продукт StorageGrid:

Web data repositories
  • Для малых объектов, с экстремально высокими транзакционными нагрузками
  • Для хранения миллиардов объектов

Data archives
  • Большие объекты, низкая транзакционная нагрузка
  • Долговременное хранение, не требовательное к скорости отклика

Media repositories
  • Глобально распределённые, крупные объекты
  • StorageGRID отлично подходит для задач здравоохранения
  • Также очень хорошо StorageGRID подходит под задачи Video on Demand (VoD)
  • Потоковый доступ к данным, большая пропускная способность


Основные функции StorageGrid


Позволяет управлять геораспределёнными неструктурированными данными. С единой панелью управления, политиками управления по всем сайтам, где располагается StorageGrid ноды кластера, таким образом данные подтягивая туда, где они нужны. Поддерживаются ленточные библиотеки и RESTful HTTP подобные протоколы, такие CDMI, S3 и Swift, при помощи которых система может быть интегрирована с облачными провайдерами. Данные могут бесшовно перемещаться между всеми уровнями: локальным хранилищем, облаком и ленточными библиотеками.
Storage Grid Web GUI



К преимуществам платформы StorageGrid стоит отнести:
  • Поддержку всех наиболее популярных объектных протоколов
  • Расширяемость до 100 миллиардов объектов (375 миллионов на одну ноду), 70PiB информации (soft limit)
  • Распределенность: до 16 сайтов
  • Возможность использования ленточных библиотек как уровня для хранения архивов данных
  • При изменении политик, жизненный цикл данных будет автоматически подстроен для соответствия изменениям
  • Одну из самых развитых настроек политик жизненного цикла данных (ILM): Автоматическое распределение данных по локальным уровням (SSD, SATA, SAS, Лента, Geo-EC), публичным облакам (таким как AWS S3) и между сайтами заказчика. Распределение данных может быть осуществлено на основе информации о стоимости данных, необходимости в уровне их защенности, производительности, доступности, стоимости сети и долговечности хранимых данных.



Erasure Coding


Почти все объектные СХД умеют хранить несколько копий одного объекта (репликация), дублируя данные на разные ноды и сайты, обеспечивая таким образом отказоустойчивость. А Erasure Coding (EC) — это механизм, похожий на RAID, но выполняющийся на уровне объекта, который разбивается на несколько частей, а не на уровне целых жестких дисков. EC позволяет существенно меньше потреблять пространства на хранилище, обеспечивая механизм отказоустойчивости.


Geo-EC

Geo Distributed Erasure Coding — это EC, где части объекта, составляющие такую «RAID-группу», могут быть на системах, расположенных в разных частях мира, хранить две или три копии данных, и позволяют достигать невероятных показателей доступности, но это порождает соответствующее количнество трафика и занимаемого пространства. Здесь на помощь приходит функция геораспределённого Erasure Coding позволяющая не ухудшить отказоустойчивость и доступность, существенно уменьшив количество занимаемого пространства. Доступны следующие схемы EC:
  • 2 + 1 для трех сайтов
  • 4 + 2 для трех сайтов
  • 6 + 3 для трех сайтов
  • 9 + 3 для четырех сайтов
  • 8 + 2 для пяти сайтов.


Erasure Coding с одной стороны позволяет экономить дисковое пространство, с другой стороны добавляет накладные расходы при высчете контрольной суммы и востановлению объекта. В случае с Geo-EC при чтении объекта ещё увеличивается скорость ответа так как чтение выполняется из двух сайтов. Т.е. EC необходимо использовать с умом, и далее в пункте ILM я расскажу как.

Hierarchical EC

StorageGrid позволяет распределять данные на основе политик их долговечности и отказоустойчивости. Hierarchical Erasure Coding позволяет на основе этих политик автоматически выполнять локальный EC и Geo-EC. Hierarchical EC хорошо подходит для инсталяций с минимум 3 сайтами для защиты от выхода из строя целого сайта.


DDP — локальный EC

Dynamic Disk Pools (используется StorageGrid WebScale как локальный EC) это, функционал оборудования NetApp E-Series, своего рода RAID, как и обычные RAID группы, он создаётся на одной локальной системе. DDP позволяет не терять в производительности в случае локального сбоя одного или нескольких дисков (ведь иначе объекты будут подтягиваться с других нод или сайтов), плюс экономится электроенергия и сетевой (WAN/LAN) трафика: доступ к данным и восстановление будет выполнено локально. Этот функционал отлично дополняет Geo-EC.


Information Lifecycle Management


ILM в системах StorageGRID позволит гибко и намного более рационально использовать дисковое пространство благодаря политикам жизненного цикла данных. Так, к примеру, можно настроить политику, чтобы в случае, если объект был записан или к нему в течении 30 дней было хоть одно обращение, хранить Х его копий на нескольких разных сайтах. Если же к нему не было обращений больше чем 30 дней, то удалять копии и прогнать его через EC, в этом случае увеличенное время чтения объекта уже не будет такой проблемой. А если к объекту не было обращений в течении 1 года, то отправить его в облако или на ленту. Важно отметить, что приведенный пример гранулярно работает на уровне каждого отдельного объекта а не на уровне большого набора данных, такого как LUN или файловая шара (в SAN или NAS соответственно). Если цена на ресурсы изменится, политика подтянет и переразмажет данные в соответствии с новыми изменениями.

Долговечность


Можно разделить на две части: целостность и доступность данных.
Целостность данных обеспечивается благодаря: использованию цифровых хэш-сумм, когда данные записываются, считываются, мигрируют, и периодической проверке. Повреждённые объекты прозрачно пересоздаются из копий. Геораспределённый механизм Erasure Coding позволяет экономно использовать пространство для хранения копий данных.
Доступность данных обеспечивается за счёт Fault-tolerent архитектуры, поддержки беспрерывности операций, обновлений ПО и оборудования платформы. Распределение нагрузки, как при нормальной работе, так и при сбое. NetApp AutoSupport может автоматически уведомлять поддержку для преактивного решения проблем. Erasure coding на уровне ноды улучшает доступность каждой ноды, время восстановления, влияние на производительность и сетевую активность (доступно только на платформе E-Series с Dynamic Disk Pools).

NAS


Функционал NAS с протоколами CIFS/NFS может быть реализован при помощи NAS бриджа. Это позволит не модифицировать существующую инфраструктуру и предоставлять конечным пользователям стандартный файловый доступ. StorageGrid, в свою очередь, благодаря политикам жизненного цикла сможет на основе метаинформации (к примеру, последнему времени модификации или создания файла) прозрачно перемещать эти данные по уровням хранения. Лицензии на файловые бриджи входят в поставку StorageGrid, их докупать не нужно. Поддерживается интеграция с Active Directory и LDAP. NAS бридж, как-бы «сверху» предоставляет доступ по CIFS/NFS и это самый обычный NAS.
Снизу же на бэк-энде, этот же самый NAS бридж подключается по объектному протоколу и преобразует файлы в объекты, дальше они уже хранятся и обрабатываться как обычные объекты.

Безопасность


Поддержка End-to-End шифрования каждого объекта и Secure Multi-Tenancy. Поддержка аутентификации и механизмов безопасности для S3 и CDMI. Поддерживается интеграция с LDAP/AD для аутентификации пользователей в рамках одного Tenant.

Production-Ready


Это очень важный момент, когда у заказчика нет армии программистов и администраторов, важно, чтобы комплекс был надёжным. Технологии StorageGrid уже больше 14 лет (в 2001 первая инсталяция), и она успела обрости большим количеством интеграций с другими известными продуктами для резервного копирования, архивирования, файловой синхронизации, колаборейшн и т.д.

  • NTP Hierarchical storage management service: Software Object Storage & Cloud Connector (File Vacuum)
  • Ctera File sync and share, collaboration
  • Stealth Microsoft SQL/Exchange/SharePoint integration
  • PoINT Hierarchical storage management service
  • Commvault Backup and archive
  • Citrix Sharefile File sync and share, collaboration
  • Egnyte File sync and share, collaboration
  • SoftNAS General purpose NFS and CIFS gateway
  • NetApp AltaVault (SteelStore). Ссылка будет доступна после публикации следующей статьи
  • Symantec Enterprise Vault with NetApp StorageGRID Adapter
  • Amazon S3
  • Amazon CloudFront
  • Open Stack Swift with white box
  • Inktank Ceph with Calamari
  • Swift API
  • OpenStack Glance Integration: Leverage StorageGRID Webscale as Glance image repository via S3 and Swift
  • NetApp OpenStack Cinder driver
  • OpenStack Kilo
  • OpenStack Heat orchestration
  • И другие.


Лицензионная политика StorageGrid


Продукт лицензируется по терабайтно, вне зависимости от количества и типа нод. Аппаратная и софтовая реализация StorageGRID могут сосуществовать в одном кластере. Весь возможный функционал включён в базовую поставку:
  • В случае с аппаратной реализацией, продукт лицензируется по количеству «сырых» (RAW) терабайт
  • В случае покупки лицензии на софт (без использования аппаратного StorageGRID) лицензируется продукт по количеству полезного пространства, при этом используется коэффициэнт х1,25.


Выводы


StorageGRID это продукт для приложений поддерживающие RESTful HTTP, который подходит для больших и мелких объектов, высокой пропускной способностью, транзакционностью и автоматическим, прозрачным перемещением данных по уровням хранения. Geo-кластеризация позволяет достичь невероятно высокой отказоустойчивости и доступности данных, скрывая выход из строя целых сайтов. Технология EC позволяет существенно экономить пространство за счёт применения RAID-подобной архитектуры. StorageGRID имеет поддержку множества уровней хранения и один из самых развитых механизмов управления жизненным циклом данных. ILM автоматически переместит данные при изменении цены на том или ином уровне хранения, что позволит более рационально использовать ресурсы и гибко реагировать на изменения стоимости хранения данных (к примеру в Облаке или в Ленточных библиотеках). StorageGRID это устоявшийся, зрелый продукт с широким списком интеграции трете-стороннего ПО, что упрощает поддержку и интеграцию в существующую инфраструктуру. Шифрование объектов и поддержка аутентификации LDAP/AD позволяет обеспечивать защиту от кражи данных. StorageGRID может выступать полной заменой Amazon S3, позволяя сдавать в аренду нескольким компаниям хранилище и выступая в роли частного облака, для тех кто не может размещать данные в публичном облаке. А может выступать дополнением к AWS S3, используя его как уровень хранения данных и имеет механизм подсчёта стоимости их хранения для арендаторов хранилища StorageGRID.

Здесь могут содержаться ссылки на Habra-статьи, которые будут опубликованы позже.
Сообщения по ошибкам в тексте прошу направлять в ЛС.
Замечания, дополнения и вопросы по статье напротив, прошу в комментарии.
Поделиться с друзьями
-->

Комментарии (9)


  1. tmk826
    11.05.2016 09:32
    +1

    Интересна связка S3/CDMI + NAS. Есть-ли возможность видеть обекты овновременно в обоих «пространствах»?


    1. bbk
      11.05.2016 09:46

      Такой возможности у NAS нет. Не важно живет он поверх StorageGRID или это «просто» NAS.
      Прикол StorageGRID с NAS в том, что первый может объекты(файлы) прозрачно перемещать на разные уровни хранения.

      Объекты же могут без проблем прозрачно быть скопированы, храниться в множественных экземплярах и доступны для чтения/записи из множества мест, но должен работать объектный протокол доступа: S3 /CDMI /SWIFT. Вот NAS бридж он обращаться может по объектному протоколу и видеть эти множественные копии и работать с ними. Но сам NAS он один, доступ к нему происходит из одного-единственного места.

      Если же вы используете NAS бридж на двух разных сайтах, то это два разных NAS'а, две разные файловые шары, с разными файлами.
      Если интересен функционал только синхронизации ФАЙЛОВ для обеспечения DR, то понадобится какой-то дополнительный функционал (читай дополнительный софт). К примеру MS DFS или:

      • Ctera File sync and share, collaboration
      • Citrix Sharefile File sync and share, collaboration
      • Egnyte File sync and share, collaboration
      • SoftNAS General purpose NFS and CIFS gateway


      1. tmk826
        11.05.2016 10:10
        +1

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


        1. bbk
          11.05.2016 10:17

          Дело в том, что протоколы CIFS/NFS архитектурно так устроены, что они так не работают.
          Так работают объекты, но и доступ тогда должен быть объектный, а не CIFS/NFS.

          Единственное что можно для них сделать — это костыль, в виде дополнительного софта.


    1. bbk
      11.05.2016 09:59

      NAS бридж, как-бы «сверху» предоставляет доступ по CIFS/NFS и это самый обычный NAS.
      Снизу же на бэк-энде, этот же самый NAS бридж подключается по объектному протоколу и преобразует файлы в объекты. А дальше эти объекты уже хранятся в множестве мест Geo-не GEO, EC, реплика, миграция по уровням, облакам, отказоустойчиво, мега-надёжно и т.д. и т.п.


      1. Leonid0
        12.05.2016 12:45
        -1

        На данный момент существует возможность использовать «отказоустойчивый» NAS бридж?
        Бесплатный отказоустойчивый бридж MDS с CephFS пока в экспериментальной стадии и не рекомендуется в производстве.


    1. bbk
      11.05.2016 10:08

      А какая задача, это архивы, медиа репозиторий, web-контент?
      Приложение умеет работать по HTTP или есть возможность прикрутить возможность работы по HTTP?
      Если да, то лучше выбрать вариант объектного доступа и забыть про NAS и всякие файловые синхронизации.

      Или это обязательно должен быть именно NAS?
      Если да, тогда нужен дополнительный софт синхронизации файлов.


  1. mikkisse
    12.05.2016 15:53
    +1

    У вас всегда интересные статьи. Спасибо за информацию.


    1. bbk
      13.05.2016 08:58
      +1

      Благодарность за статью, для автора — лучшая плата за проделанный труд.
      Открою маленький секрет: во многом я пишу статьи сам для себя, чтобы не забыть нюансы по той или иной теме.