Цифровые хранилища данных изменили способы производства, обработки и хранения информации. Переломный момент наступил в 1996 году, когда цифровое хранилище стало более рентабельным, чем бумажное.
В 1999 году в мире появилось ≈1,5 эксабайт уникальной информации, которая хранилась на бумаге, пленке, оптических и магнитных носителях. Причем печатные материалы всех видов составили лишь 0,003% от общего объема хранимой информации.
По подсчетам IDC и Seagate, глобальная сфера данных к 2025 году достигнет 175 зеттабайт, то есть увеличится более чем в 100 тыс. раз за четверть века. А с развитием генеративных нейронных сетей данных может стать еще больше.
Возникают закономерные вопросы: где хранить информацию, в каком виде и как получать к ней доступ. Человечество изобретает новые накопители (например, жесткие диски с технологией разогрева магнитных пластин лазером) и строит дата-центры, хранящие эксабайты информации, часть из которых предоставляется заказчикам в виде объектных хранилищ. Цель этой статьи — рассказать об особенностях использования таких хранилищ.
Типы хранилищ
Все хранилища данных можно условно разделить на три категории: блочные, файловые и объектные. Каждая из вышеперечисленных категорий обладает своими преимуществами и недостатками. Взвешенная оценка и учет особенностей поможет сохранить нервные клетки и бюджет.
Блочные хранилища
Кажется, что это идеальный и очень быстрый способ хранения данных. Без какой-либо файловой иерархии: данные разделяются на блоки одинакового размера и хранятся в таком виде. В процессе чтения/записи процессор не сильно загружается, поскольку большую часть работы берет на себя HBA (Host Bus Adapter) или контроллер RAID. Именно они следят за всем происходящим и оперативно реагируют на запросы. Гипервизоры также радуются такому способу хранения, так как он позволяет достичь высокой производительности и низких задержек.
Однако дьявол кроется в деталях. У каждого блока есть уникальный номер, присваиваемый по стандарту LBA (Logical Block Addressing), по которому его можно найти в таблице поиска, и всё. Система обращается к нему и получает или записывает порцию данных. Адресовать таким образом можно до 128 петабайт при размере блока 512 байт (на самом деле, это 144 петабайта, но LBA обычно рассчитывается по другим параметрам). В общем, это очень много. Но если возникнет необходимость снабдить блоки расширенными метаданными, это не получится. Любые подобные дополнения необходимо делать на другом уровне, например, уровне файловой системы или приложений.
Файловые хранилища
Иерархия и расширенные метаданные — сильные стороны файлового хранилища. Любой файл можно рассматривать как абстракцию, упрощающую работу с данными. Это представление пришло к нам из физического мира, и поэтому людям удобно его использовать. Файл можно сравнить с коробкой, которой можно присвоить уникальное название (имя файла), наполнить содержанием (данные) и на которую можно наклеить кучу стикеров, вроде «Хрупкое», «Стекло», «Не бросать» (метаданные). Коробки можно вкладывать одну в другую (каталог/папка/директория), а ещё на каждой из них можно указать, кто владелец (права доступа).
Казалось бы, это замечательно, особенно с учетом появления множества различных файловых систем для разных задач. Однако вместе с этим многообразием пришли и ограничения. Например, в файловой системе FAT32 максимальный размер файла — всего лишь 4 ГБ (этот лимит обусловлен способом адресации и размером кластеров). Вспомним также XFS: несмотря на ее преимущества в виде высокой производительности и малых накладных расходов, сложности восстановления данных после сбоев питания могут стать серьезным недостатком. Более современные файловые системы, такие как ZFS или btrfs, предлагают улучшенные механизмы для обеспечения целостности данных и восстановления после сбоев.
Объектные хранилища
В основе объектных хранилищ лежит идея взять лучшее из обоих миров и избавиться от ограничений. Здесь также присутствует абстракция — объект. Его данные и метаданные отделены друг от друга и обслуживаются по-разному. Никакой структуры — куски данных воспринимаются как отдельные объекты. Объекты индексируются и управляются с помощью уникальных идентификаторов (OID), что делает их легко доступными. Объектное хранилище при этом выполняет роль своего рода «Кольца Всевластия», индексируя и обеспечивая возможность доступа посредством API.
Такая архитектура позволяет выполнять различные оптимизации доступа к данным («горячее», «холодное» и геораспределенное хранение), а также обеспечивает репликацию данных на случай повреждения физических носителей.
Горячее хранение: тип хранения данных, которые часто используются и должны быть доступны с минимальной задержкой. Например, данные, которые нужны для повседневных операций.
Холодное хранение: тип хранения данных, которые редко используются. Например, это могут быть архивы или резервные копии. Холодное хранение оптимизировано для экономии затрат. Доступ к этим данным может занимать больше времени по сравнению с горячим хранением.
Геораспределенное хранение: подразумевает распределение копий данных по различным географическим зонам. Обеспечивает высокую доступность и надежность данных, а также защищает от катастроф и сбоев в дата-центре.
Для обычных пользователей создаются привычные абстракции в виде файлов и папок, а для профессионалов обеспечивается простой и гибкий доступ к данным через программные интерфейсы. API для объектных хранилищ обеспечивает универсальный доступ к данным, что является одним из ключевых преимуществ систем этого типа.
Особенности объектных хранилищ
Сравнивать объектные хранилища напрямую с файловыми и блочными некорректно, поскольку на уровне хранения данных они всё также оперируют файлами, а те, в свою очередь, собираются из блоков данных на физических носителях. Тем не менее, такая абстракция помогает решать задачи без оглядки на недостатки и ограничения нижестоящих уровней. В идеальном мире это так и работает, но реальность всё равно создает ограничения, о которых нужно помнить.
Если поместить в контейнер (бакет) более 100 000 файлов, то можно столкнуться со снижением производительности на операции list bucket или при удалении. Это не жесткое физическое ограничение, а best practice по использованию любых объектных хранилищ, построенных на базе CEPH. Когда нужно хранить миллионы объектов, желательно равномерно распределять их по разным контейнерам. При этом файлы могут быть очень большими, а поиск по ним будет значительно быстрее, ведь фактически производится только поисковый запрос по метаданным. Поэтому объектные хранилища хорошо подходят для хранения видеозаписей из систем видеонаблюдения.
Производительность объектного хранилища всегда будет ниже по сравнению с файловым или блочным. Системе приходится выполнять несколько операций по «соединению» данных с метаданными и лишь потом предоставлять их по запросу. Объектник не предназначен для быстрой работы с данными и не подходит для использования под БД.
Однако такой тип хранилища предоставляет практически неограниченное дисковое пространство и возможность совместного использования с другими способами хранения данных. Стоимость хранения будет значительно ниже, что позволяет выстроить эффективную работу с бэкапами и контентом сайтов.
Объектное хранилище очень полезно для сайтов с большим количеством статических файлов. Вместо того чтобы нагружать веб-сервер и заставлять его отдавать клиентам статику, значительно проще делегировать эту задачу объектному облачному хранилищу, которое изначально рассчитано на высокие нагрузки. Использование таких технологий, как Content Delivery Network (CDN), позволяет еще больше повысить производительность и масштабируемость.
Отдельно стоит отметить расширенные возможности по восстановлению данных. Несмотря на высокую надежность современных дисковых накопителей, они могут выходить из строя. Так, чтобы не терять пользовательские данные, в объектном хранилище MWS можно делать двукратное реплицирование. Риск потери данных при такой организации хранения сводится к минимуму.
Хранение бэкапов, логов и архивов — еще одна задача, которую объектное хранилище решает на отлично. Чтобы защищать ценные корпоративные данные, рекомендуется использовать шифрование. Вам не нужно задумываться о репликации или о том, что скоро в хранилище закончится доступное место. Это также позволяет проводить регулярные тренировки по извлечению данных в рамках плана восстановления после катастроф (Disaster Recovery Plan, DRP).
Помимо вышеперечисленного, большую роль играет географическое положение данных. У MWS, например, ЦОДы, обслуживающие объектное хранилище, расположены в Москве, Московской области и Уральске. Таким образом можно воспользоваться геораспределенным хранением с максимальной доступностью в качестве «второй памяти», для видеохостингов и т. п.
Особенности облачных хранилищ
Любое объектное хранилище не является «серебряной пулей» или кнопкой «сделать хорошо». Оно решает определенный спектр задач, предоставляя масштабируемость, доступность и управление большими объемами неструктурированных данных. Благодаря этим характеристикам, организации могут значительно сэкономить на управлении и эксплуатации данных.
Тарификация облачного объектного хранилища позволяет пользователям более точно подходить к решению конкретных задач, а не пытаться решить все проблемы одной общей настройкой.
Если требуется организовать архивное хранение резервных копий или других данных, которые не нуждаются в частом доступе, можно воспользоваться холодным хранилищем. Это позволяет снизить затраты на хранение, так как холодные данные хранятся по более низким тарифам.
Для менее критических данных, можно выбрать стандартное горячее хранилище. Оно идеально подходит для хранения файлов, к которым необходимо регулярное, но не критично быстрое обращение, что позволяет оптимизировать расходы и управлять данными с минимальными затратами.
Если же требуется обеспечить высокую степень доступности данных — например, для раздачи контента, к которому клиентам необходимо иметь постоянный и надежный доступ — можно выбрать реплицируемое стандартное горячее хранилище. Такой тип предлагает доступность на уровне 99,98%, что гарантирует возможность получить доступ к своим данным практически в любое время и с минимальными задержками. Благодаря многоуровневой системе хранения данных и их репликации, обеспечивается высокая устойчивость к сбоям и максимальная надежность.
Для системных администраторов использование объектного хранилища дает возможность гибко управлять инфраструктурой благодаря почти неограниченному дисковому пространству и масштабированию.
Четко обозначенный SLA (Service Level Agreement) позволяет не беспокоится о доступности сервиса. Так, например, SLA нашего «горячего» хранилища составляет 99,95%, что означает максимальное время недоступности в обычном (не високосном) году — 4 часа, 22 минуты и 30 секунд. Это время учитывает все возможные работы, связанные с техническим обслуживанием и непредвиденными сбоями. Для географически распределенного хранилища SLA выше — 99,98%, что эквивалентно 1 часу, 45 минутам и 12 секундам недоступности в год.
Стоит отметить, что облачный провайдер берет на себя целый пласт задач, связанных с балансировкой нагрузки, техническим обслуживанием кластера CEPH, защитой данных от потери и круглосуточным мониторингом. Это значительно упрощает и удешевляет процесс по сравнению с попытками выстроить аналогичную систему хранения самостоятельно. Облачные провайдеры обладают необходимыми ресурсами и высоким уровнем экспертизы для обеспечения надежности и безопасности.
Сейчас на объектное хранилище MWS действует скидка 50%.