- PVSM.RU - https://www.pvsm.ru -

Как устроены хранилища данных: обзор для новичков

Международный рынок гипермасштабируемых дата-центров растет [1] с ежегодными темпами в 11%. Основные «драйверы» — предприятия, подключенные устройства и пользователи — они обеспечивают постоянное появление новых данных. Вместе с объемом рынка растут и требования к надежности хранения и уровню доступности данных.

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

Как устроены хранилища данных: обзор для новичков - 1 [2]
/ Flickr / Jason Baker [3] / CC [4]

Типы хранилищ и их различия

Хранение на уровне блоков лежит в основе работы традиционного жесткого диска или магнитной ленты. Файлы разбиваются на «кусочки» одинакового размера, каждый с собственным адресом, но без метаданных. Пример — ситуация, когда драйвер HDD пишет и считывает [5] блоки по адресам на отформатированном диске. Такие СХД используются многими приложениями, например, большинством реляционных СУБД, в списке которых Oracle, DB2 и др. В сетях доступ к блочным хостам организуется [6] за счет SAN с помощью протоколов Fibre Channel, iSCSI или AoE.

Файловая система — это промежуточное звено между блочной системой хранения и вводом-выводом приложений. Наиболее распространенным примером хранилища файлового типа является NAS. Здесь, данные хранятся [7] как файлы и папки, собранные в иерархическую структуру, и доступны [8] через клиентские интерфейсы по имени, названию каталога и др.

Как устроены хранилища данных: обзор для новичков - 2

/ Wikimedia / Mennis [9] / CC [10]

При этом следует отметить, что разделение «SAN — это только сетевые диски, а NAS — сетевая файловая система» искусственно. Когда появился протокол iSCSI, граница между ними начала [11] размываться. Например, в начале нулевых компания NetApp стала предоставлять iSCSI на своих NAS, а EMC — «ставить» NAS-шлюзы на SAN-массивы. Это делалось для повышения удобства использования систем.

Что касается объектных хранилищ, то они отличаются [7] от файловых и блочных отсутствием файловой системы. Древовидную структуру файлового хранилища здесь заменяет плоское адресное пространство. Никакой иерархии — просто объекты с уникальными идентификаторами, позволяющими пользователю или клиенту извлекать данные.

Марк Горос (Mark Goros), генеральный директор и соучредитель Carnigo, сравнивает [7] такой способ организации со службой парковки, предполагающей выдачу автомобиля. Вы просто оставляете свою машину парковщику, который увозит её на стояночное место. Когда вы приходите забирать транспорт, то просто показываете талон — вам возвращают автомобиль. Вы не знаете, на каком парковочном месте он стоял.

Большинство объектных хранилищ позволяют прикреплять [12] метаданные к объектам и агрегировать их в контейнеры. Таким образом, каждый объект в системе состоит [13] из трех элементов: данных, метаданных и уникального идентификатора — присвоенного адреса. При этом объектное хранилище, в отличие от блочного, не ограничивает [7] метаданные атрибутами файлов — здесь их можно настраивать.

Как устроены хранилища данных: обзор для новичков - 3
/ 1cloud [14]

Применимость систем хранения разных типов

Блочные хранилища

Блочные хранилища обладают набором инструментов, которые обеспечивают [15] повышенную производительность: хост-адаптер шины разгружает процессор и освобождает его ресурсы для выполнения других задач. Поэтому блочные системы хранения часто используются [16] для виртуализации. Также хорошо подходят для работы с базами данных.

Недостатками блочного хранилища являются [17] высокая стоимость и сложность в управлении. Еще один минус блочных хранилищ (который относится и к файловым, о которых далее) — ограниченный [18] объем метаданных. Любую дополнительную информацию приходится обрабатывать на уровне приложений и баз данных.

Файловые хранилища

Среди плюсов файловых хранилищ выделяют [19] простоту. Файлу присваивается имя, он получает метаданные, а затем «находит» себе место в каталогах и подкаталогах. Файловые хранилища обычно дешевле [20] по сравнению с блочными системами, а иерархическая топология удобна при обработке небольших объемов данных. Поэтому с их помощью организуются системы совместного использования файлов и системы локального архивирования.

Пожалуй, основной недостаток файлового хранилища — его «ограниченность». Трудности возникают [19] по мере накопления большого количества данных — находить [19] нужную информацию в куче папок и вложений становится трудно. По этой причине файловые системы не используются в дата-центрах, где важна скорость.

Объектные хранилища

Что касается объектных хранилищ, то они хорошо масштабируются, поэтому способны [14] работать с петабайтами информации. По статистике, объем неструктурированных данных во всем мире достигнет [21] 44 зеттабайт к 2020 году — это в 10 раз больше, чем было в 2013. Объектные хранилища, благодаря своей возможности [13] работать с растущими объемами данных, стали стандартом [22] для большинства из самых популярных сервисов в облаке: от Facebook до DropBox.

Такие хранилища, как Haystack Facebook, ежедневно пополняются [23] 350 млн фотографий и хранят 240 млрд медиафайлов. Общий объем этих данных оценивается в 357 петабайт.

Хранение копий данных — это другая функция, с которой хорошо справляются объектные хранилища. По данным исследований [24], 70% информации лежит в архиве и редко изменяется. Например, такой информацией могут выступать резервные копии системы, необходимые для аварийного восстановления.

Но недостаточно просто хранить неструктурированные данные, иногда их нужно интерпретировать и организовывать. Файловые системы имеют ограничения в этом плане: управление метаданными, иерархией, резервным копированием — все это становится [25] препятствием. Объектные хранилища оснащены внутренними механизмами для проверки корректности файлов и другими функциями, обеспечивающими доступность данных.

Плоское адресное пространство также выступает преимуществом объектных хранилищ — данные, расположенные на локальном или облачном сервере, извлекаются одинаково просто. Поэтому такие хранилища часто применяются для работы с Big Data и медиа [26]. Например, их используют Netflix [27] и Spotify. Кстати, возможности объектного хранилища сейчас доступны и в сервисе 1cloud [14].

Благодаря встроенным инструментам защиты данных с помощью объектного хранилища можно создать надежный географически распределенный резервный центр. Его API основан [28] на HTTP, поэтому к нему можно получить доступ, например, через браузер или cURL. Чтобы отправить файл в хранилище объектов из браузера, можно прописать следующее:

<form action  = "[url_storage/account/container/object]"
      method  = "post"
      enctype = "multipart/form-data">
      <input type="hidden" name="redirect"  value="[url_result]">
      <input type="hidden" name="signature" value="[hmac]">
      <input type="file"   name="file_name">
      <input type="submit">
</form>

После отправки к файлу добавляются необходимые метаданные. Для этого есть такой запрос:

curl -i [url_storage/account/container/object] -X POST 
-H "X-Auth-Token: [token]" -H "X-Object-Meta-ValueA: [value-a]"

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

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

P.S. Еще несколько материалов о хранении данных из блога 1cloud:

Автор: 1cloud

Источник [32]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/hosting/271297

Ссылки в тексте:

[1] растет: http://www.businesswire.com/news/home/20170904005104/en/High-Adoption-Cloud-based-Storage-Boost-Growth-Hyperscale

[2] Image: https://habrahabr.ru/company/1cloud/blog/345154/

[3] Jason Baker: https://www.flickr.com/photos/jasonbaker/9027029071

[4] CC: https://creativecommons.org/licenses/by/2.0/

[5] пишет и считывает: https://russia.emc.com/corporate/glossary/block-storage.htm

[6] организуется: https://en.wikipedia.org/wiki/Storage_area_network

[7] хранятся: https://www.cioreview.com/news/why-object-data-storage-is-chosen-over-file-level-storage-nid-18070-cid-12.html

[8] доступны: http://searchstorage.techtarget.com/definition/file-storage

[9] Mennis: https://commons.wikimedia.org/wiki/File:SANvsNAS.svg

[10] CC: https://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia

[11] начала: http://www.enterprisestorageforum.com/ipstorage/features/article.php/2201391/iSCSIs-Effect-on-the-Eternal-NAS-vs-SAN-Debate.htm

[12] позволяют прикреплять: https://insights.ubuntu.com/2015/05/18/what-are-the-different-types-of-storage-block-object-and-file/

[13] состоит: https://www.druva.com/blog/object-storage-versus-block-storage-understanding-technology-differences/

[14] 1cloud: https://1cloud.ru/blog/obektnoe-hranilishe?utm_source=habrahabr&utm_medium=cpm&utm_campaign=storage&utm_content=blog

[15] обеспечивают: http://searchstorage.techtarget.com/magazineContent/Block-vs-file-storage-to-support-virtual-server-environments

[16] используются: http://prolinuxhub.com/quick-overview-of-nas-vs-san-and-file-level-vs-block-level-storage/

[17] являются: http://www.basvankaam.com/2014/09/17/block-vs-file-level-storage-vmware-vmfs-ntfs-and-some-of-the-protocols-involved/

[18] ограниченный: https://www.digitalocean.com/community/tutorials/object-storage-vs-block-storage-services

[19] выделяют: https://www.storagecraft.com/blog/storage-wars-file-block-object-storage/

[20] дешевле: http://www.excitingip.com/2447/advantages-of-file-level-storage-vs-advantages-of-block-level-storage/

[21] достигнет: https://www.emc.com/leadership/digital-universe/2014iview/executive-summary.htm

[22] стали стандартом: http://www.computerweekly.com/feature/Object-storage-Cloud-vs-in-house

[23] пополняются: https://www.stratoscale.com/blog/storage/when-should-you-prefer-object-store-over-a-file-system-or-block-storage/

[24] исследований: http://old.computerra.ru/vision/722808/

[25] становится: https://opensource.com/life/16/7/object-storage

[26] медиа: https://www.liquidweb.com/blog/object-storage-vs-block-storage-use-cases/

[27] Netflix: http://www.information-age.com/storage-unstructured-world-role-object-storage-123467028/

[28] основан: https://cloudstore.interoute.com/knowledge-centre/library/object-storage-use-cases#d56e228

[29] Масштабирование в облаке: варианты и рекомендации: https://1cloud.ru/blog/mashtabirovanie-v-oblake?utm_source=habrahabr&utm_medium=cpm&utm_campaign=storage&utm_content=blog

[30] Безопасность данных в облаке: 3 главные опасности: https://1cloud.ru/blog/bezopasnost-dannih-v-oblake?utm_source=habrahabr&utm_medium=cpm&utm_campaign=storage&utm_content=blog

[31] Передача данных в облаке 1cloud: скорость в сетях разного типа: https://1cloud.ru/blog/skorost-peredachi-dannih?utm_source=habrahabr&utm_medium=cpm&utm_campaign=storage&utm_content=blog

[32] Источник: https://habrahabr.ru/post/345154/?utm_campaign=345154