Что такое хранилище информации
Как устроены хранилища данных: обзор для новичков
Международный рынок гипермасштабируемых дата-центров растет с ежегодными темпами в 11%. Основные «драйверы» — предприятия, подключенные устройства и пользователи — они обеспечивают постоянное появление новых данных. Вместе с объемом рынка растут и требования к надежности хранения и уровню доступности данных.
Ключевой фактор, влияющий на оба критерия — системы хранения. Их классификация не ограничивается типами оборудования или брендами. В этой статье мы рассмотрим разновидности хранилищ — блочное, файловое и объектное — и определим, для каких целей подходит каждое из них.
Типы хранилищ и их различия
Хранение на уровне блоков лежит в основе работы традиционного жесткого диска или магнитной ленты. Файлы разбиваются на «кусочки» одинакового размера, каждый с собственным адресом, но без метаданных. Пример — ситуация, когда драйвер HDD пишет и считывает блоки по адресам на отформатированном диске. Такие СХД используются многими приложениями, например, большинством реляционных СУБД, в списке которых Oracle, DB2 и др. В сетях доступ к блочным хостам организуется за счет SAN с помощью протоколов Fibre Channel, iSCSI или AoE.
Файловая система — это промежуточное звено между блочной системой хранения и вводом-выводом приложений. Наиболее распространенным примером хранилища файлового типа является NAS. Здесь, данные хранятся как файлы и папки, собранные в иерархическую структуру, и доступны через клиентские интерфейсы по имени, названию каталога и др.
При этом следует отметить, что разделение «SAN — это только сетевые диски, а NAS — сетевая файловая система» искусственно. Когда появился протокол iSCSI, граница между ними начала размываться. Например, в начале нулевых компания NetApp стала предоставлять iSCSI на своих NAS, а EMC — «ставить» NAS-шлюзы на SAN-массивы. Это делалось для повышения удобства использования систем.
Что касается объектных хранилищ, то они отличаются от файловых и блочных отсутствием файловой системы. Древовидную структуру файлового хранилища здесь заменяет плоское адресное пространство. Никакой иерархии — просто объекты с уникальными идентификаторами, позволяющими пользователю или клиенту извлекать данные.
Марк Горос (Mark Goros), генеральный директор и соучредитель Carnigo, сравнивает такой способ организации со службой парковки, предполагающей выдачу автомобиля. Вы просто оставляете свою машину парковщику, который увозит её на стояночное место. Когда вы приходите забирать транспорт, то просто показываете талон — вам возвращают автомобиль. Вы не знаете, на каком парковочном месте он стоял.
Большинство объектных хранилищ позволяют прикреплять метаданные к объектам и агрегировать их в контейнеры. Таким образом, каждый объект в системе состоит из трех элементов: данных, метаданных и уникального идентификатора — присвоенного адреса. При этом объектное хранилище, в отличие от блочного, не ограничивает метаданные атрибутами файлов — здесь их можно настраивать.
/ 1cloud
Применимость систем хранения разных типов
Блочные хранилища
Блочные хранилища обладают набором инструментов, которые обеспечивают повышенную производительность: хост-адаптер шины разгружает процессор и освобождает его ресурсы для выполнения других задач. Поэтому блочные системы хранения часто используются для виртуализации. Также хорошо подходят для работы с базами данных.
Недостатками блочного хранилища являются высокая стоимость и сложность в управлении. Еще один минус блочных хранилищ (который относится и к файловым, о которых далее) — ограниченный объем метаданных. Любую дополнительную информацию приходится обрабатывать на уровне приложений и баз данных.
Файловые хранилища
Среди плюсов файловых хранилищ выделяют простоту. Файлу присваивается имя, он получает метаданные, а затем «находит» себе место в каталогах и подкаталогах. Файловые хранилища обычно дешевле по сравнению с блочными системами, а иерархическая топология удобна при обработке небольших объемов данных. Поэтому с их помощью организуются системы совместного использования файлов и системы локального архивирования.
Пожалуй, основной недостаток файлового хранилища — его «ограниченность». Трудности возникают по мере накопления большого количества данных — находить нужную информацию в куче папок и вложений становится трудно. По этой причине файловые системы не используются в дата-центрах, где важна скорость.
Объектные хранилища
Что касается объектных хранилищ, то они хорошо масштабируются, поэтому способны работать с петабайтами информации. По статистике, объем неструктурированных данных во всем мире достигнет 44 зеттабайт к 2020 году — это в 10 раз больше, чем было в 2013. Объектные хранилища, благодаря своей возможности работать с растущими объемами данных, стали стандартом для большинства из самых популярных сервисов в облаке: от Facebook до DropBox.
Такие хранилища, как Haystack Facebook, ежедневно пополняются 350 млн фотографий и хранят 240 млрд медиафайлов. Общий объем этих данных оценивается в 357 петабайт.
Хранение копий данных — это другая функция, с которой хорошо справляются объектные хранилища. По данным исследований, 70% информации лежит в архиве и редко изменяется. Например, такой информацией могут выступать резервные копии системы, необходимые для аварийного восстановления.
Но недостаточно просто хранить неструктурированные данные, иногда их нужно интерпретировать и организовывать. Файловые системы имеют ограничения в этом плане: управление метаданными, иерархией, резервным копированием — все это становится препятствием. Объектные хранилища оснащены внутренними механизмами для проверки корректности файлов и другими функциями, обеспечивающими доступность данных.
Плоское адресное пространство также выступает преимуществом объектных хранилищ — данные, расположенные на локальном или облачном сервере, извлекаются одинаково просто. Поэтому такие хранилища часто применяются для работы с Big Data и медиа. Например, их используют Netflix и Spotify. Кстати, возможности объектного хранилища сейчас доступны и в сервисе 1cloud.
Благодаря встроенным инструментам защиты данных с помощью объектного хранилища можно создать надежный географически распределенный резервный центр. Его API основан на HTTP, поэтому к нему можно получить доступ, например, через браузер или cURL. Чтобы отправить файл в хранилище объектов из браузера, можно прописать следующее:
После отправки к файлу добавляются необходимые метаданные. Для этого есть такой запрос:
Богатая метаинформация объектов позволит оптимизировать процесс хранения и минимизировать затраты на него. Эти достоинства — масштабируемость, расширяемость метаданных, высокая скорость доступа к информации — делают объектные системы хранения оптимальным выбором для облачных приложений.
Однако важно помнить, что для некоторых операций, например, работы с транзакционными рабочими нагрузками, эффективность решения уступает блочным хранилищам. А его интеграция может потребовать изменения логики приложения и рабочих процессов.
Хранение данных. Или что такое NAS, SAN и прочие умные сокращения простыми словами
TL;DR: Вводная статья с описанием разных вариантов хранения данных. Будут рассмотрены принципы, описаны преимущества и недостатки, а также предпочтительные варианты использования.
Зачем это все?
Хранение данных — одно из важнейших направлений развития компьютеров, возникшее после появления энергонезависимых запоминающих устройств. Системы хранения данных разных масштабов применяются повсеместно: в банках, магазинах, предприятиях. По мере роста требований к хранимым данным растет сложность хранилищ данных.
Надежно хранить данные в больших объемах, а также выдерживать отказы физических носителей — весьма интересная и сложная инженерная задача.
Хранение данных
Под хранением обычно понимают запись данных на некоторые накопители данных, с целью их (данных) дальнейшего использования. Опустим исторические варианты организации хранения, рассмотрим подробнее классификацию систем хранения по разным критериям. Я выбрал следующие критерии для классификации: по способу подключения, по типу используемых носителей, по форме хранения данных, по реализации.
По способу подключения есть следующие варианты:
подключение дисков в сервере
дисковая полка, подключаемая по FC
По типу используемых накопителей возможно выделить:
Если рассматривать форму хранения данных, то явно выделяются следующие:
По реализации достаточно сложно провести четкие границы, однако можно отметить:
RAID контроллер от компании Fujitsu
пример организации LVM с шифрованием и избыточностью в виртуальной машине Linux в облаке Azure
Давайте рассмотрим более детально некоторые технологии, их достоинства и недостатки.
Direct Attached Storage — это исторически первый вариант подключения носителей, применяемый до сих пор. Накопитель, с точки зрения компьютера, в котором он установлен, используется монопольно, обращение с накопителем происходит поблочно, обеспечивая максимальную скорость обмена данными с накопителем с минимальными задержками. Также это наиболее дешевый вариант организации системы хранения данных, однако не лишенный своих недостатков. К примеру если нужно организовать хранение данных предприятия на нескольких серверах, то такой способ организации не позволяет совместное использование дисков разных серверов между собой, так что система хранения данных будет не оптимальной: некоторые сервера будут испытывать недостаток дискового пространства, другие же — не будут полностью его утилизировать:
Конфигурации систем с единственным накопителем применяются чаще всего для нетребовательных нагрузок, обычно для домашнего применения. Для профессиональных целей, а также промышленного применения чаще всего используется несколько накопителей, объединенных в RAID-массив программно, либо с помощью аппаратной карты RAID для достижения отказоустойчивости и\или более высокой скорости работы, чем единичный накопитель. Также есть возможность организации кэширования наиболее часто используемых данных на более быстром, но менее емком твердотельном накопителе для достижения и большой емкости и большой скорости работы дисковой подсистемы компьютера.
Storage area network, она же сеть хранения данных, является технологией организации системы хранения данных с использованием выделенной сети, позволяя таким образом подключать диски к серверам с использованием специализированного оборудования. Так решается вопрос с утилизацией дискового пространства серверами, а также устраняются точки отказа, неизбежно присутствующие в системах хранения данных на основе DAS. Сеть хранения данных чаще всего использует технологию Fibre Channel, однако явной привязки к технологии передачи данных — нет. Накопители используются в блочном режиме, для общения с накопителями используются протоколы SCSI и NVMe, инкапсулируемые в кадры FC, либо в стандартные пакеты TCP, например в случае использования SAN на основе iSCSI.
Давайте разберем более детально устройство SAN, для этого логически разделим ее на две важных части, сервера с HBA и дисковые полки, как оконечные устройства, а также коммутаторы (в больших системах — маршрутизаторы) и кабели, как средства построения сети. HBA — специализированный контроллер, размещаемый в сервере, подключаемом к SAN. Через этот контроллер сервер будет «видеть» диски, размещаемые в дисковых полках. Сервера и дисковые полки не обязательно должны размещаться рядом, хотя для достижения высокой производительности и малых задержек это рекомендуется. Сервера и полки подключаются к коммутатору, который организует общую среду передачи данных. Коммутаторы могут также соединяться с собой с помощью межкоммутаторных соединений, совокупность всех коммутаторов и их соединений называется фабрикой. Есть разные варианты реализации фабрики, я не буду тут останавливаться подробно. Для отказоустойчивости рекомендуется подключать минимум две фабрики к каждому HBA в сервере (иногда ставят несколько HBA) и к каждой дисковой полке, чтобы коммутаторы не стали точкой отказа SAN.
Недостатками такой системы являются большая стоимость и сложность, поскольку для обеспечения отказоустойчивости требуется обеспечить несколько путей доступа (multipath) серверов к дисковым полкам, а значит, как минимум, задублировать фабрики. Также в силу физических ограничений (скорость света в общем и емкость передачи данных в информационной матрице коммутаторов в частности) хоть и существует возможность неограниченного подключения устройств между собой, на практике чаще всего есть ограничения по числу соединений (в том числе и между коммутаторами), числу дисковых полок и тому подобное.
Network attached storage, или сетевое файловое хранилище, представляет дисковые ресурсы в виде файлов (или объектов) с использованием сетевых протоколов, например NFS, SMB и прочих. Принципиально базируется на DAS, но ключевым отличием является предоставление общего файлового доступа. Так как работа ведется по сети — сама система хранения может быть сколько угодно далеко от потребителей (в разумных пределах разумеется), но это же является и недостатком в случае организации на предприятиях или в датацентрах, поскольку для работы утилизируется полоса пропускания основной сети — что, однако, может быть нивелировано с использованием выделенных сетевых карт для доступа к NAS. Также по сравнению с SAN упрощается работа клиентов, поскольку сервер NAS берет на себя все вопросы по общему доступу и т.п.
Unified storage
Универсальные системы, позволяющие совмещать в себе как функции NAS так и SAN. Чаще всего по реализации это SAN, в которой есть возможность активировать файловый доступ к дисковому пространству. Для этого устанавливаются дополнительные сетевые карты (или используются уже существующие, если SAN построена на их основе), после чего создается файловая система на некотором блочном устройстве — и уже она раздается по сети клиентам через некоторый файловый протокол, например NFS.
Software-defined storage — программно определяемое хранилище данных, основанное на DAS, при котором дисковые подсистемы нескольких серверов логически объединяются между собой в кластер, который дает своим клиентам доступ к общему дисковому пространству.
Наиболее яркими представителями являются GlusterFS и Ceph, но также подобные вещи можно сделать и традиционными средствами (например на основе LVM2, программной реализации iSCSI и NFS).
N.B. редактора: У вас есть возможность изучить технологию сетевого хранилища Ceph, чтобы использовать в своих проектах для повышения отказоустойчивости, на нашем практическим курсе по Ceph. В начале курса вы получите системные знания по базовым понятиям и терминам, а по окончании научитесь полноценно устанавливать, настраивать и управлять Ceph. Детали и полная программа курса здесь.
Пример SDS на основе GlusterFS
Из преимуществ SDS — можно построить отказоустойчивую производительную реплицируемую систему хранения данных с использованием обычного, возможно даже устаревшего оборудования. Если убрать зависимость от основной сети, то есть добавить выделенные сетевые карты для работы SDS, то получается решение с преимуществами больших SAN\NAS, но без присущих им недостатков. Я считаю, что за подобными системами — будущее, особенно с учетом того, что быстрая сетевая инфраструктура более универсальная (ее можно использовать и для других целей), а также дешевеет гораздо быстрее, чем специализированное оборудование для построения SAN. Недостатком можно назвать увеличение сложности по сравнению с обычным NAS, а также излишней перегруженностью (нужно больше оборудования) в условиях малых систем хранения данных.
Гиперконвергентные системы
Подавляющее большинство систем хранения данных используется для организации дисков виртуальных машин, при использовании SAN неизбежно происходит удорожание инфраструктуры. Но если объединить дисковые системы серверов с помощью SDS, а процессорные ресурсы и оперативную память с помощью гипервизоров отдавать виртуальным машинам, использующим дисковые ресурсы этой SDS — получится неплохо сэкономить. Такой подход с тесной интеграцией хранилища совместно с другими ресурсами называется гиперконвергентностью. Ключевой особенностью тут является способность почти бесконечного роста при нехватке ресурсов, поскольку если не хватает ресурсов, достаточно добавить еще один сервер с дисками к общей системе, чтобы нарастить ее. На практике обычно есть ограничения, но в целом наращивать получается гораздо проще, чем чистую SAN. Недостатком является обычно достаточно высокая стоимость подобных решений, но в целом совокупная стоимость владения обычно снижается.
Облака и эфемерные хранилища
Логическим продолжением перехода на виртуализацию является запуск сервисов в облаках. В предельном случае сервисы разбиваются на функции, запускаемые по требованию (бессерверные вычисления, serverless). Важной особенностью тут является отсутствие состояния, то есть сервисы запускаются по требованию и потенциально могут быть запущены столько экземпляров приложения, сколько требуется для текущей нагрузки. Большинство поставщиков (GCP, Azure, Amazon и прочие) облачных решений предлагают также и доступ к хранилищам, включая файловые и блочные, а также объектные. Некоторые предлагают дополнительно облачные базы, так что приложение, рассчитанное на запуск в таком облаке, легко может работать с подобными системами хранения данных. Для того, чтобы все работало, достаточно оплатить вовремя эти услуги, для небольших приложений поставщики вообще предлагают бесплатное использование ресурсов в течение некоторого срока, либо вообще навсегда.
Из недостатков: могут заблокировать аккаунт, на котором все работает, что может привести к простоям в работе. Также могут быть проблемы со связностью и\или доступностью таких сервисов по сети, поскольку такие хранилища полностью зависят от корректной и правильной работы глобальной сети.
Заключение
Надеюсь, статья была полезной не только новичкам. Предлагаю обсудить в комментариях дополнительные возможности систем хранения данных, написать о своем опыте построения систем хранения данных.
Что такое облачные хранилища и в каких из них лучше хранить данные
Компании генерируют огромное количество информации, ее нужно где-то хранить, чтобы не потерять ничего ценного. Мы разобрались, какие именно данные лучше всего отдать в облако и какой вид облачного сервиса выбрать.
Зачем что-то хранить в облаке
В обычной жизни хранить файлы просто. Например, вы привезли из поездки много фотографий. Теперь нужно всего лишь перекинуть их с карты фотоаппарата на компьютер. Если фото много, они не помещаются — можно купить жесткий диск побольше или перенести всё на внешний диск. Если фотографий совсем много — можно купить три диска по 4 Тб каждый. Теперь точно всё поместится.
А вот если у вас компания, ситуация сложнее. Представим крутой сервис по обработке видео. Владелец купил рекламу, в первый же час набежала туча профессиональных видеографов, они залили на сервер несколько тысяч видеороликов с высоким разрешением. Емкость всех дисков в серверной стойке быстро закончилась. Можно купить очень много жестких дисков по 4 Тб — все равно весь контент не поместится.
Что такое облачные хранилища и как ими пользоваться
Проблема размещения данных есть у многих и появилась она не вчера. До 2010-х годов она решалась путем покупки всё большего числа серверов, установки их в стойку и раскидывания по ним информации.
Это не так просто. Оборудование надо заказывать, ждать поставки, настраивать и вводить в строй. Еще серверы и жесткие диски склонны выходить из строя и гореть — это всё надо отслеживать и лечить. А также делать резервные копии данных, чтобы ничего не потерялось.
В 2010-х начался триумф концепции облаков, и хранение данных приняло форму управляемой услуги, теперь можно найти облачное хранилище (cloud storage) на любой вкус. Провайдер закупает сразу много оборудования и монтирует в своем дата-центре надежную систему. Там за определенную плату могут хранить данные все желающие. Надо 2 Тб? Окей, возьмите. Через неделю надо еще два? Держите еще! Клиентов стало меньше из-за отпусков — возвращайте 3 Тб обратно и используйте только 1 Тб. Это удобно, так как позволяет платить только за те ресурсы, которые вам нужны, и не переплачивать за простаивающее оборудование.
Итак, что такое cloud storage? По сути, это практически безразмерный виртуальный диск, в котором свободное пространство выделяется под ваши потребности, управлять своими ресурсами вы можете через личный кабинет пользователя.
Как работает облачное хранилище
За такой простой на вид историей стоит кропотливый труд инженеров. Бесконечные серверные стойки, жесткие диски и талантливые администраторы никуда не делись. Физически облачное хранилище находится у провайдера, оборудование просто спрятано под капотом поставщика облачных услуг. Он все делает за компанию-клиента — управляет железом, закупает и настраивает его при необходимости, меняет вышедшие из строя серверы, дает задания администраторам, следит за бэкапами и решает другие проблемы, связанные с размещением данных.
Сейчас облачное хранилище данных — это удобный способ хранить любую информацию: как личные файлы, так и петабайты данных компании. Места на дисках у провайдера много, клиентов — тоже. Это позволяет распределять спрос и предложение на услугу между всеми клиентами. Если вам сейчас не нужны лишние терабайты свободного места, их можно пока отдать кому-то другому.
Какие есть облачные хранилища для бизнеса
Файловые хранилища. Наиболее понятный для простого пользователя вид услуги. Это как «жесткий диск, которого я не вижу, но который вмещает все мои файлы». В таком сервисе есть файловая система, позволяющая сохранять файлы прямо в том виде, в котором они лежат в компьютере или на телефоне. Конечно, внутри всё это устроено довольно сложно, но для конечного потребителя выглядит просто.
Такой сервис станет отличным вариантом для тех, кто хранит достаточно большие архивы файлов — они легко поместятся в систему, также в ней можно организовать совместную работу, открыв доступ к информации нужным сотрудникам.
Облачное хранилище
Облачное хранилище — это структура распределенных в сети онлайн-серверов, как правило, в виде онлайн-сервиса, предоставляющая пользователям место для хранения их данных. Хранилище нужно синхронизировать со своим устройством. После этого туда можно загружать файлы любого типа. Они будут доступны со всех устройств онлайн.
Для чего нужны облачные хранилища?
Для экономии места на смартфонах и компьютерах. В облако можно выгрузить фотографии, музыку и любые другие данные, которые жалко удалить или которые занимают много места, например записи с камер видеонаблюдения.
Для резервного копирования и восстановления, если важно сохранить файлы.
Для миграции данных бизнеса. В облаке удобнее делиться файлами с коллегами и организовать совместную работу.
Виды хранилищ
Блочное
Весь объем информации делится на равные части — блоки с идентификаторами. Основное преимущество таких облачных хранилищ — разделение клиентских сред. Благодаря этому к каждой из них открывается быстрый отдельный доступ. Но платить нужно за весь выделенный объем памяти, даже если она ничем не занята.
Примеры хранилищ: Amazon Elastic Block Storage (EBS).
Файловое
Данные хранятся в иерархической системе. Это значит, что информация представляет собой файлы, объединяющиеся в папки, подкаталоги и каталоги. Основное преимущество — интуитивный интерфейс и легкость использования. Главный недостаток — плохая масштабируемость: с увеличением объема данных иерархия очень сильно усложняется и замедляет работу системы.
Примеры хранилищ: Яндекс.Диск, Dropbox, OneDrive, Google Диск.
Объектное
Это универсальный и современный способ хранения в облаке больших информационных массивов. Объектное хранилище используется для данных любого вида: медиаконтента, программ, бухгалтерской/статистической отчетности и др. Главный недостаток — пользователь не может просто взять и переместить файл в нужную папку. Для загрузки информации нужно использовать специальный программный интерфейс — API (он позволяет двум независимым компонентам ПО обмениваться информацией).
Примеры хранилищ: Amazon Simple Storage Service (S3).
Помогаем лучше разобраться с облачными хранилищами и учим строить пайплайны данных. Дополнительная скидка 5% по промокоду BLOG.
Как работают облачные хранилища
Принцип работы облачного хранилища данных заключается в следующем: на ноутбук, ПК или любой другой гаджет устанавливается программа, в которую с устройства переносится информация. Потом облако будет самостоятельно отслеживать изменения в них и автоматически подгружать новые файлы. Связав хранилище со всеми устройствами, можно получить доступ ко всем данным с любого гаджета.
Плюсы облачного хранилища
Минусы облачного хранилища
Критерии выбора хранилища
Размер облачного хранилища. Если нужно хранить небольшое количество фотографий и легких файлов типа Word, Excel, то 10 ГБ может вполне хватить. Но если требуется копировать в облако большие файлы, например видео, то лучше сразу выбрать тариф, предлагающий большой/максимальный объем хранения.
Возможность увеличения объема хранилища. Особенно важный критерий для пользователей, которые планируют хранить большие массивы данных. Если это так, лучше выбирать сервис, в котором в любой момент можно изменить тариф.
Наличие ПО для компьютера и смартфона. У сервиса облачного хранения обязательно должно быть приложение и/или программа для установки и синхронизации.
Имеющиеся ограничения. Перед выбором важно узнать о всех имеющихся ограничениях. Например, о количестве объема памяти, размере одного загружаемого файла.
Читайте также: Как стать программистом с нуля?
Примеры популярных облачных хранилищ
Яндекс.Диск
Google Диск
Dropbox
Microsoft OneDrive
Важно! Принцип синхронизации зависит от ОС компьютера, поэтому перед работой с хранилищем следует скачать подходящую программу для его адаптации.
Бесплатный объем: 15 Гб (до 50 Гб в течение месяца после регистрации)
Облако Mail.ru
Примеры употребления термина
Правильно: Используйте облачное хранилище для экономии места на компьютере или смартфоне.
Неправильно: Сделайте облачное хранилище для файлов с компьютера или смартфона.
Помогаем лучше разобраться с облачными хранилищами и учим строить пайплайны данных. Дополнительная скидка 5% по промокоду BLOG.