При выборе решения для хранилища S3 On-Premises нужно учесть множество разных факторов: от формата поставки до репликации и масштабируемости. В этой статье мы разберем эти факторы подробнее и продемонстрируем их реализацию на примере продукта Cloud Storage от VK в поставке On-Premise.
Если вы еще не определились с типом хранилища, советуем изучить нашу прошлую статью об эволюции хранения данных — в ней мы подробно рассказываем о появлении S3 и причинах, по которым стоит выбирать именно это решение.
Факторы выбора хранилища S3 On-premises
Хранилища S3, существующие на рынке, различаются по ряду технических нюансов.
Формат поставки
Существуют два основных варианта поставки хранилища S3: в виде готового ПАКа или только ПО.
Продукт-аппаратный комплекс (ПАК). Готовое решение, которое включает в себя ПО для работы хранилища S3, установленное на конкретную аппаратуру, то есть «железо». ПАК поставляется в виде готового комплекса, где все компоненты уже сконфигурированы и готовы к использованию.
ПАК быстро и просто устанавливать — ведь его не нужно самостоятельно собирать и конфигурировать. Кроме того, ПО и железо в нем гарантированно совместимы.
Но есть у ПАКа и недостаток — аппаратное обеспечение в нем жестко зафиксировано вендором. И может оказаться, что предоставленное оборудование не соответствует потребностям и предпочтениям компании.
Программное обеспечение. Здесь клиент получает только ПО, которое можно установить на собственное оборудование компании. Это оборудование компания выбирает самостоятельно, что обеспечивает большую гибкость и контроль над инфраструктурой.
При этом есть и минусы: потребуется потратить время и усилия на настройку и интеграцию различных компонентов. Кроме того, за оборудованием компании тоже придется следить самостоятельно — держать для этого в штате специальных людей и выделять на них бюджет.
Выбор между этими двумя вариантами зависит от конкретных потребностей, требований к инфраструктуре, уровня гибкости, бюджета и предпочтений компании.
Привязка к компонентам
Некоторые решения S3 привязаны к определенному аппаратному обеспечению конкретного вендора. Другие могут быть установлены на оборудование разных производителей.
Привязанные решения обычно требуют меньше настройки, так как максимально адаптированы под конкретное оборудование. У непривязанных есть свои преимущества:
-
Гибкость инфраструктуры: решения, которые могут быть установлены на оборудование различных производителей, обеспечивают компании большую гибкость в выборе аппаратной платформы. Это позволяет адаптировать инфраструктуру под конкретные потребности и бизнес-задачи компании, а также учесть ее предпочтения и бюджет.
-
Независимость от одного вендора: в случае если с вендором что-то случится, можно будет легко перейти на другого, не теряя уже настроенную инфраструктуру.
Место хранения метаданных
Метаданные содержат информацию о хранимых данных: дату создания, размер, тип файла и другие характеристики. Эта информация играет ключевую роль в управлении и организации данных в системе хранения. Она используется для поиска, фильтрации, классификации данных и для управления доступом к ним.
В случае объектных хранилищ S3 метаданные могут храниться как на дисках, так и в оперативной памяти. Это влияет на ряд параметров хранилища:
-
Скорость работы. Размещение метаданных в оперативной памяти позволяет обеспечить к ним быстрый доступ — считывать их с диска будет гораздо дольше. За счет этого значительно ускоряются операции с данными.
-
Возможности масштабирования. При использовании памяти для хранения метаданных мы можем масштабироваться на десятки миллиардов объектов практически без деградации производительности при операциях листинга. В случае с хранением на дисках такое масштабирование невозможно.
-
Улучшение пользовательского опыта. Быстрый доступ к метаданным помогает пользователям быстрее находить и обрабатывать необходимую информацию. Это особенно важно для приложений и сервисов, работающих с большими объемами данных.
При этом хранить метаданные в оперативной памяти может быть дороже и сложнее технически, поэтому такое решение предлагают не все хранилища S3.
Репликация данных
Репликация данных — это процесс копирования данных с одного узла на другой для обеспечения их доступности и целостности в случае отказа оборудования. Существует два основных типа репликации:
-
Синхронная репликация. Данные записываются одновременно на все узлы, участвующие в репликации. Это гарантирует, что данные на всех узлах всегда идентичны. Однако синхронная репликация может давать задержку записи, так как система ожидает подтверждения записи на всех узлах перед завершением операции.
-
Асинхронная репликация. Данные записываются сначала на основной узел, а затем реплицируются на другие узлы с некоторой задержкой. Это позволяет уменьшить задержку при записи, но создает риск несоответствия данных на разных узлах в случае внезапного отказа основного узла.
Режимы работы отказоустойчивых кластеров
Отказоустойчивый кластер — это группа серверов (узлов), объединенных для совместной работы с целью обеспечения высокой доступности сервисов. Он может быть настроен в разных режимах, что влияет на некоторые нюансы его работы.
Основные режимы работы кластеров:
-
Active-Active (Master-Master). Все узлы кластера одновременно активно обрабатывают запросы пользователей. Это позволяет равномерно распределять нагрузку между узлами и обеспечивает высокую доступность системы. Если один из узлов выходит из строя, другие продолжают обработку запросов, что минимизирует простой системы. Поддержка такой конфигурации — очень сложная задача, которая требует большого объема ресурсов. Поэтому обычно ее используют только там, где это критически необходимо, — например, при регулярных больших объемах чтения и записи данных. Для кластера в режиме Active-Active обычно используется синхронная репликация данных.
-
Active-Passive (Master-Slave). Один из узлов, активный, принимает запросы на запись, а остальные — только на чтение. Если активный узел выходит из строя, один из пассивных узлов переходит в активный режим и берет на себя обработку запросов. Это решение проще, однако требует механизмов для переключения узлов — и в момент переключения возможны задержки. В таком режиме часто применяется асинхронная репликация данных.
Таким образом, выбор между этими двумя решениями следует делать в зависимости от потребностей бизнеса. Часто хватает решения Active-Passive, и обходится оно дешевле, но в отдельных случаях может потребоваться Active-Active — для большей доступности и консистентности данных.
Также для отказоустойчивости может быть важна географическая распределенность. Это отдельная опция, обычно использующая режим Active-Active, которая предполагает наличие нескольких серверов хранения данных в различных географических областях или дата-центрах. Такое решение увеличивает надежность, ведь вероятность отказа разных дата-центров ниже, чем одного. А еще увеличивает скорость доступа к данным из разных регионов, так как позволяет выбрать сервер географически ближе к месту запроса.
Масштабируемость и производительность
У многих компаний сегодня объемы данных и нагрузки растут непредсказуемо. Поэтому при выборе хранилища S3 очень важно обращать внимание на два фактора:
-
Масштабируемость. Хранилище данных должно быть способно масштабироваться вместе с ростом бизнеса и объема данных. Это означает, что оно должно поддерживать добавление новых серверов или хранилищ для обработки увеличивающейся нагрузки и объема информации.
-
Производительность. Важно, чтобы хранилище S3 обеспечивало высокую производительность при выполнении операций чтения, записи и обработки данных. Это включает в себя быстрый доступ к данным, высокую скорость передачи данных и быстрые времена ответа на запросы. Недостаточная производительность может привести к увеличению времени обработки запросов, что может негативно сказаться на работе бизнеса и удовлетворенности пользователей.
Поэтому важно всегда выбирать масштабируемое хранилище, которое предоставляет четкие данные о своей производительности.
Объектное хранилище S3 от VK
VK предлагает собственное объектное хранилище S3 как решение для хранения данных, доступное как в облаке, так и On-premises. Давайте посмотрим на его особенности с учетом факторов, описанных выше. Хранилище S3 от VK предлагает:
-
Возможности неограниченного масштабирования.
-
Отсутствие привязки к конкретным вендорам — решение может быть использовано на любых серверах и платформах.
-
Распределенную конфигурацию в формате Active-Active и возможности настройки других актуальных конфигураций.
-
Возможность настройки синхронной и асинхронной репликации.
-
Хранение метаданных в оперативной памяти.
-
Два варианта формата поставки: как в виде ПАК, так и в виде готового ПО. Об этом поговорим подробнее чуть ниже.
Архитектура хранилища S3 от VK
Для большего погружения в особенности устройства хранилища S3 от VK давайте посмотрим на его архитектуру:
Архитектура системы состоит из трех уровней хранения:
-
фронт-серверов, на которые поступают все запросы;
-
метаданных, хранящихся на метаслое;
-
хранилища (Storage), содержащего объекты данных.
В качестве системы управления всеми этими данными в VK S3 используется Tarantool. Это высокопроизводительная система, обеспечивающая отказоустойчивость, масштабируемость и быстрый доступ к данным. Кроме того, Tarantool — это собственная разработка VK, что позволяет максимально быстро адаптировать все решения под потребности клиентов хранилища S3.
Также есть еще ряд особенностей архитектуры, важных для клиентов:
-
На уровне хранилища все данные реплицируются в двойном экземпляре (x2), обеспечивая высокую надежность системы.
-
Есть функция оптимизации данных, которая позволяет сжимать информацию и хранить ее на меньших объемах.
-
Система автоматически осуществляет дедупликацию данных, что позволяет сократить объем хранимой информации за счет удаления дублирующихся объектов.
-
Все оборудование установлено в нескольких распределенных ЦОДах на территории России, что предотвращает потерю данных, даже если с одним ЦОДом что-то случится, в том числе какая-то природная катастрофа.
-
Мы следим, чтобы задержка данных между ЦОДами составляла не более 30 миллисекунд. Это время критически важно для процесса записи данных, но не влияет на скорость чтения. Таким образом, вы получаете надежный кластер данных, распределенный между несколькими дата-центрами. Внутри каждого дата-центра данные хранятся на разных дисках и серверах. Количество дата-центров может быть разным и может достигать четырех.
Варианты поставки Cloud Storage On-Premise от VK
Публичная инсталляция облачного хранилища (Cloud Storage от VK) представляет собой 350 петабайт данных, почти 20 тысяч запросов в секунду и 30 миллиардов объектов в горячем доступе. Эти цифры служат не только демонстрацией возможностей хранилища, но и основой для уверенности в его способности выдерживать большие нагрузки.
VK предлагает варианты поставки Cloud Storage как в виде ПО, так и в виде ПАК. Вот какие у них есть особенности.
ПО для установки на собственное оборудование. Для этого подойдет любая x86-платформа, включая операционные системы Unix, зарегистрированные в реестре российского ПО.
Готовый программно-аппаратный комплекс (ПАК). При выборе ПАКа клиенты также имеют гибкость в выборе аппаратной платформы. VK поддерживает как регистровое оборудование, соответствующее требованиям регуляторов (Постановление №1236 о запрете использования иностранного ПО), так и более упрощенные аппаратные решения. Это позволяет удовлетворить потребности клиентов с разными бюджетными и юридическими ограничениями.
Приобретение готового ПАКа от VK включает полную поддержку со стороны компании. Клиенты могут выбрать срок поддержки от одного года и до более длительных периодов — в зависимости от своих потребностей. Действует принцип «режима одного окна», когда клиенты могут обращаться по всем вопросам, связанным с обслуживанием и поддержкой решения. VK берет на себя все задачи, связанные с горячими и холодными заменами компонентов, ремонтом и обслуживанием как аппаратной, так и программной части нашего комплекса.
Реальный пример использования хранилища S3 от VK
Одним из наших значимых партнеров является Федеральное казначейство, с которым мы успешно реализовали ряд проектов. В один момент у Федерального казначейства возникла потребность заменить СУБД Oracle на СУБД из списка импортозамещенных и параллельно провести операции выноса документов во внешнее объектное хранилище.
Мы работали над этим проектом совместно с технологическим партнером, компанией «Онланта». Наша задача состояла в обеспечении эффективного хранения данных, включая неструктурированные объекты, которые ранее были основным компонентом в государственной информационной системе, работавшей на базе Oracle.
Совместно с Федеральным казначейством мы провели тщательное тестирование различных вариантов хранения данных и выбрали технологию VK S3 Storage. В отличие от некоторых Open-sources решений, которые не соответствуют требованиям импортозамещения и не обеспечивают необходимый уровень безопасности и надежности, VK S3 Storage отвечает всем требованиям заказчика. Его геораспределенные ЦОДы обеспечивают высокий уровень отказоустойчивости, а быстрый отклик при загрузке объектов делает его идеальным выбором для обработки огромного объема данных.
В результате проекта время отклика базы данных сократилось на 50%, а экономия пространства достигла 30-60%, что привело к значительной экономии ресурсов.
Заключение
Выбирая для своих данных хранилище S3, нужно руководствоваться множеством факторов: форматом поставки, привязкой к компонентам, хранением метаданных, вариантами репликации, масштабируемостью и производительностью. Причем универсального рецепта нет — выбор нужно делать на основе потребностей бизнеса.
VK предлагает решение, подходящее по многим критериям: без привязки к вендору, с неограниченным масштабированием, распределенной конфигурацией active-active между ЦОДами и высокой надежностью. Это все можно попробовать в облаке — либо сразу обратиться за инсталляцией On-Premise, которую помогут адаптировать под ваши потребности.
Остались вопросы?
Расскажите о ваших задачах и узнайте больше
о реализации на платформе Tarantool