Об'єктне сховище NetApp StorageGrid

У цій статті я отклонюсь від традиційної для мене теми систем зберігання FAS і підніму тему об'єктного зберігання даних в системах NetApp StorageGrid WebScale. Якщо коротко, то об'єктне зберігання — це третій тип зберігання поряд з NAS і SAN. Уявіть собі, що кожний файл складається з даних і метаінформації (власник, права, час модифікації тощо), так от об'єктне зберігання дозволяє роз'єднати ці частини і зберігати їх у вигляді «ключ/значення». Такий підхід зберігання інформації відкриває можливості децентралізованого, розподіленого зберігання даних величезних масштабів з прозорою міграцією даних, реплікацією і прозорим перемиканням кінцевих споживачів між нодами об'єктного кластера. У широкому сенсі об'єктне сховище може бути реалізована як на рівні пристрою (жорсткого диска), за допомогою спеціалізованих команд SCSI (Object-based Storage Device Commands), так і на рівні протоколу доступу до системи, яка складається з декількох дисків (які, у свою чергу, зовсім не зобов'язані бути об'єктними). В обох випадках використовується Ethernet для підключення IP протокол для передачі даних. Прикладом реалізації об'єктного сховища на рівні пристрою є жорсткі диски лінійки Seagate Kinetic Open Storage platform. Прикладом систем зберігання даних в хмарі може бути Microsoft Azure BLOB, Amazon S3. У цій статті я зупинюся на об'єктних СГД, які можна розгорнути у себе на сайті та при необхідності підключити до хмари.



Історія

Спочатку продукт StorageGRID розвивався охорони здоров'я, так як зберігання мільйонів великих і дрібних об'єктів вимагало спеціалізованого рішення. Великі виробники обладнання для охорони здоров'я такі до Siemens, AGFA та інші підтримують можливість відсилання об'єктів безпосередньо в StorageGRID. Цей підхід дозволив здійснити сценарій раніше не можливий для файлових сховищ, наприклад коли лікареві потрібно отримати дані про пацієнта за останні 10 років, хоча хворий переїхав з Міннесоти в Лос-Анджелес. StorageGRID і зараз як і раніше украй затребуваний в галузі охорони здоров'я, але зміг знайти застосування і в хмарних рішень для зберігання різноманітних даних.

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


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


Зростання неструктурованих даних невпинно набирає обертів, прикладами таких генераторів даних є ринок, що розвивається IoT, що з'явилися на ринку фіто і відео камери з небаченим досі роздільною здатністю і якістю кадру, медичне обладнання та інші пристрої. Для закриття всіх цих завдань, з нуля був розроблений продукт StorageGrid:

Web data repositories
  • Для малих об'єктів, з екстремально високими транзакційними навантаженнями
  • Для зберігання мільярдів об'єктів
Data archives
  • Великі об'єкти, низька транзакційна навантаження
  • Довготривале зберігання, не вимоглива до швидкості відгуку
Media repositories
  • Глобально розподілені, великі об'єкти
  • Потоковий доступ до даних, велика пропускна здатність


Основні функції 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 необхідно використовувати з розумом, і далі я розкажу як.

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 дозволить гнучко і набагато більш раціонально використовувати дисковий простір завдяки політикам жизненого циклу даних. Так, до римеру, можна налаштувати політику, щоб у разі, якщо об'єкт був записаний або до нього протягом 30 днів було хоч одне звернення, зберігати Х копій на кількох різних сайтах. Якщо ж до нього небуло звернень більше ніж 30 днів, то видаляти копії і прогнати його через EC, у цьому випадку збільшений час читання об'єкта вже не буде такою проблемою. А якщо до об'єкту не було звернень протягом 1 року, відправити його в хмару або на стрічку. Якщо ціна на ресурси зміниться, політика підтягне і переразмажет дані згідно з новими змінами.

Довговічність

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

NAS

Функціонал NAS з протоколами CIFS/NFS може бути реалізований за допомогою файлових шлюзів (File Getaway Node). Це дозволить не модифікувати існуючу інфраструктуру і надавати кінцевим користувачам стандартний файловий доступ. StorageGrid, у свою чергу, завдяки політикам життєвого циклу зможе на основі метаінформації (наприклад, останнім часом модифікації або створення файлу) прозоро переміщати ці дані за рівнями зберігання. Ліцензії на файлові шлюзи входять в поставку StorageGrid, їх докуповувати не потрібно. Підтримується інтеграція з Active Directory і LDAP.

Безпека

Підтримка 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-статті, які будуть опубліковані пізніше.
Повідомлення щодо помилок у тексті прошу направляти в ЛС.
Зауваження, доповнення і запитання за статтею навпаки, прошу в коментарі.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.