Распределенные системы хранения данных и их преимущества
Распределение хранимых данных по разным физическим серверам и площадкам позволяет существенно улучшить масштабирование систем хранения, их надежность и производительность. Существуют различные архитектуры таких систем и подходы к их организации, ориентированные на разные задачи и типы хранения данных.
В условиях взрывного роста объемов данных распределенные системы хранения – это наиболее эффективное решение для большинства современных компаний, которым необходимо хранить свои данные, управлять ими и использовать их для своего бизнеса. Распределение данных по разным физическим серверам и площадкам позволяет существенно улучшить масштабирование систем хранения, их надежность и производительность.
Распределенная система хранения – это сложная инфраструктура, распределяющая данные по многим физическим серверам, которые могут находиться в разных дата-центрах или на разных территориально удаленных площадках. Такая децентрализация хранения устраняет риски, неизбежные при централизованном хранении данных (прежде всего наличие «единичных точек отказа», т. е. тех компонентов системы хранения, отказ которых приводит к потере данных или их длительной недоступности), а также улучшает масштабируемость и надежность хранения.
Три основные концепции распределенного хранения
Partitioning (разбиение на партиции). Partitioning – это разбиение базы данных на небольшие фрагменты, которыми проще управлять, чем всей базой данных. Партиции, содержащие определенную часть данных, распределяют по нескольким серверам или дисковым массивам, и в результате улучшается масштабируемость и производительность базы данных. Кроме того, поскольку сбой одной партиции не приведет к недоступности всей базы данных, улучшаются отказоустойчивость и доступность распределенной базы данных. Механизм партиций упрощает и работу администратора базы данных, так как управлять маленькими партициями намного проще, чем большой базой данных.
Репликация. Этот подход означает, что для оригиналов данных создаются дубликаты, хранящиеся на разных узлах (серверах). Такое резервирование позволяет защитить данные от отказов одного узла и гарантировать их постоянную доступность. Кроме того, если данные реплицируются на узлы в другом географическом регионе, то к ним будет проще получить доступ пользователям, которые находятся в том же регионе. Есть несколько вариантов репликации, начиная от простой репликации всего набора данных и до сложных механизмов, таких как технология sharding, при которой реплицируются фрагменты большой базы данных (так называемые data shards) по мере их изменения.
Фрагментация. В этом случае данные разбиваются на небольшие фрагменты для оптимизации хранения и доступа к ним. Благодаря уменьшению объемов данных ускоряется их обработка при выполнении запросов, а также улучшается эффективность использования емкости систем хранения. Кроме того, фрагментация позволяет распределять данные по разным СХД в зависимости от требований к стоимости их хранения и скорости доступа, а также обеспечивает изоляцию (например, потеря одного из фрагментов данных не затрагивает остальные фрагменты), улучшая отказоустойчивость хранения.
Архитектуры распределенных СХД
Кластерная. Это тип архитектуры, при которой узлы распределенной СХД объединяются в кластер, и каждый узел обеспечивает емкость и/или процессорную мощность системы хранения. Кластерная архитектура предполагает высокую готовность данных и их защиту от отказов, поэтому часто применяется в распределенных СХД, обслуживающих бизнес-критичные приложения.
Peer-to-peer. В этой архитектуре данные распределяются по сети по нескольким соединенным между собой узлам, часть которых выполняет функцию сервера, а остальные являются клиентами. Такое построение распределенной СХД устраняет единичные точки отказа и обеспечивает динамическое распределение емкости. Распределенные СХД Peer-to-peer лучше всего подходят для организации файловых хранилищ и хранения данных при совместной работе пользователей.
Гибридная. В гибридных СХД комбинируются элементы централизованных и распределенных систем хранения, с тем чтобы использовать преимущества каждого из этих двух подходов. Эта архитектура чаще всего применяется для интеграции централизованных СХД, установленных внутри корпоративной ИТ-инфраструктуры, с сервисами хранения данных публичных облаков, обеспечивая высокую гибкость, масштабируемость и экономию расходов на хранение.
Преимущества распределенного хранения
Масштабирование и планирование расширения емкости. Распределенные СХД позволяют легче справиться с быстрым ростом объемов данных, потому что для увеличения емкости не нужно полностью менять СХД или проводить ее модернизацию. Компании могут постепенно наращивать свою инфраструктуру хранения без снижения ее производительности и надежности.
Надежность и высокая доступность данных. Благодаря репликации данных на несколько узлов обеспечивается высокая доступность и отказоустойчивость хранения, поскольку при выходе из строя одного из узлов остаются доступны дубликаты его данных, хранящиеся на других узлах.
Повышение производительности. Распределенные СХД улучшают производительность за счет распараллеливания обращения к данным и оптимизации распределения данных по разным географическим регионам в зависимости от местонахождения пользователей.
Экономия средств. В качестве аппаратной платформы распределенных СХД используются серверы стандартной архитектуры, а их программная платформа построена на ПО open source, поэтому они значительно доступнее по цене, чем традиционные монолитные СХД с проприетарной архитектурой.
Улучшение безопасности данных. Для большей безопасности хранения в распределенных СХД применяется шифрование данных – и когда они находятся на узлах распределенной системы, и когда передаются между узлами. Кроме того, для предотвращения неавторизованного доступа к данным и защиты от киберугроз используются механизмы мультифакторной аутентификации и управления идентификационными записями пользователей.