Комбинированное хранение
Комбинированное хранение — это метод организации хранения данных, при котором одновременно используются два или более типа носителей или технологий хранения, различающихся по своим характеристикам (скорости доступа, стоимости, надёжности, энергозависимости). Основная цель комбинированного хранения — достижение оптимального баланса между производительностью, ёмкостью и стоимостью хранения информации путём размещения данных на наиболее подходящем носителе в зависимости от частоты их использования, критичности и других параметров. Данный подход широко применяется в вычислительной технике, корпоративных информационных системах, облачных сервисах и встраиваемых устройствах.
История
Идея комбинированного хранения возникла с появлением первых компьютеров, когда стало очевидно, что ни один тип памяти не может одновременно быть быстрым, дешёвым и энергонезависимым. В 1950—1960-х годах в ЭВМ использовалась иерархия памяти: быстрая, но дорогая память на магнитных сердечниках (оперативная память) и медленная, но дешёвая память на магнитных лентах или барабанах (внешняя память). Программисты вручную управляли перемещением данных между уровнями.
С развитием технологий в 1970-х годах появились жёсткие диски (HDD), которые стали основным носителем для массового хранения. Однако разрыв в скорости между процессором и диском продолжал расти. В 1980-х годах была разработана концепция кэш-памяти — небольшого, но очень быстрого буфера между процессором и основной памятью. Этот принцип позже был перенесён на системы хранения данных: в контроллерах дисковых массивов стали использовать кэш на основе DRAM.
Настоящий прорыв в комбинированном хранении произошёл в 2000-х годах с распространением твердотельных накопителей (SSD) на основе флеш-памяти NAND. SSD были значительно быстрее HDD, но дороже. Это привело к появлению гибридных жёстких дисков (SSHD), которые сочетали в одном корпусе магнитные пластины и небольшой объём флеш-памяти для кэширования часто используемых данных. Параллельно развивались программные методы, такие как автоматическое перемещение данных между SSD и HDD в операционных системах (например, технология Storage Spaces в Windows или ZFS в Unix-подобных системах).
В 2010-х годах комбинированное хранение стало стандартом в центрах обработки данных (ЦОД) и облачных платформах. Появились многоуровневые системы хранения (tiered storage), где данные автоматически мигрируют между быстрыми SSD, медленными HDD и, в некоторых случаях, оптическими или ленточными библиотеками для архивирования.
Типы комбинированного хранения
Комбинированное хранение может быть реализовано на разных уровнях — от аппаратного до программного, а также в виде гибридных устройств.
Аппаратное комбинирование (гибридные накопители)
Гибридный жёсткий диск (SSHD) — устройство, объединяющее в одном корпусе традиционный HDD (магнитные пластины) и небольшой твердотельный накопитель (NAND-флеш). Контроллер SSHD автоматически определяет наиболее часто используемые данные и копирует их во флеш-память, что ускоряет загрузку операционной системы и запуск приложений. Размер флеш-кэша обычно составляет от 8 до 32 ГБ. Такие накопители были популярны в ноутбуках и настольных ПК в 2010-х годах, но к началу 2020-х годов уступили место полностью SSD-решениям из-за снижения цен на флеш-память.
Программное комбинирование (многоуровневое хранение)
Многоуровневое хранение (tiered storage) — это метод, при котором данные распределяются по нескольким пулам (уровням) носителей с разными характеристиками. Управление перемещением данных осуществляется программным обеспечением (часто в составе операционной системы, файловой системы или СХД). Выделяют три основных уровня:
- Уровень 0 (Tier 0) — самые быстрые и дорогие носители (например, NVMe SSD или Optane-память). Используются для критически важных данных с высокой интенсивностью операций ввода-вывода (IOPS).
- Уровень 1 (Tier 1) — быстрые, но более ёмкие SSD (SATA или SAS). Применяются для часто используемых данных.
- Уровень 2 (Tier 2) — медленные, но дешёвые HDD большой ёмкости. Используются для редко используемых данных, резервных копий и архивов.
Программное обеспечение может автоматически перемещать «горячие» (активно используемые) данные на более быстрый уровень, а «холодные» — на медленный. Этот процесс называется автоматическим выравниванием (auto-tiering).
Кэширование на основе SSD
В этой схеме SSD используется не как постоянное хранилище, а как кэш для HDD. Данные сначала записываются на быстрый SSD, а затем, в фоновом режиме, сбрасываются на медленный HDD. Чтение часто запрашиваемых данных также осуществляется с SSD. Такой подход реализован во многих СХД (системах хранения данных) и программных продуктах (например, bcache в Linux, Intel Smart Response Technology).
Облачное комбинированное хранение
В облачных сервисах (например, Amazon S3, Яндекс Облако) комбинированное хранение реализуется через классы хранения. Пользователь может выбрать, на каком типе носителя будут храниться его данные: быстрый и дорогой (для частого доступа) или медленный и дешёвый (для архивирования). Некоторые облачные провайдеры предлагают автоматическое перемещение данных между классами в зависимости от частоты обращений.
Принципы работы
Основой комбинированного хранения является иерархия памяти — концепция, согласно которой данные размещаются на носителях, образующих пирамиду: на вершине — самая быстрая, но дорогая и малая по объёму память (регистры процессора, кэш), в основании — медленная, но дешёвая и большая по объёму (магнитные ленты, оптические диски). Комбинированное хранение обычно охватывает нижние уровни этой иерархии (SSD, HDD, ленты).
Ключевые механизмы:
- Автоматическое выравнивание (auto-tiering) — алгоритм, анализирующий частоту и характер обращений к данным (например, количество операций чтения/записи, размер блоков). На основе этого анализа данные перемещаются между уровнями в реальном времени или по расписанию.
- Кэширование — временное хранение копий активных данных на быстром носителе. Отличается от выравнивания тем, что данные не переносятся навсегда, а остаются на исходном носителе, а быстрый кэш используется как буфер.
- Тонкое выделение (thin provisioning) — технология, позволяющая выделять виртуальное пространство хранения, которое физически занимает меньше места. В сочетании с комбинированным хранением это позволяет эффективно распределять данные по разным носителям.
Применение
Комбинированное хранение используется в различных областях:
- Персональные компьютеры и ноутбуки: гибридные накопители (SSHD) или связка SSD + HDD в одном устройстве. Операционная система и часто используемые программы устанавливаются на SSD, а файлы и медиа — на HDD.
- Серверы и центры обработки данных (ЦОД): многоуровневые СХД (например, Dell EMC Unity, NetApp FAS, HP 3PAR) автоматически управляют данными, обеспечивая высокую производительность для баз данных и виртуальных машин при разумной стоимости хранения архивов.
- Облачные платформы: классы хранения (например, «горячее», «холодное», «архивное» в Amazon S3, Google Cloud Storage, Яндекс Объектное хранилище). Пользователь платит в зависимости от выбранного класса.
- Видеонаблюдение: системы хранения видеопотоков, где свежие записи хранятся на быстрых SSD для быстрого просмотра, а старые — на дешёвых HDD.
- Научные вычисления: суперкомпьютеры используют комбинированное хранение для работы с огромными объёмами данных (например, результаты моделирования хранятся на лентах, а текущие расчёты — на SSD).
Преимущества и недостатки
Преимущества
- Оптимизация затрат: позволяет использовать дорогие быстрые носители только для критичных данных, а для остальных — дешёвые.
- Повышение производительности: часто используемые данные обрабатываются на быстрых носителях, что ускоряет работу приложений.
- Гибкость: возможность масштабирования системы хранения за счёт добавления новых уровней.
- Энергоэффективность: медленные носители (HDD, ленты) потребляют меньше энергии, чем быстрые SSD.
Недостатки
- Сложность управления: требуется программное обеспечение для автоматического выравнивания, которое может быть дорогим и требовать настройки.
- Риск фрагментации данных: при частом перемещении данных между уровнями может возникнуть фрагментация, снижающая производительность.
- Задержки при миграции: перемещение больших объёмов данных между уровнями может занимать время и создавать нагрузку на систему.
- Необходимость планирования: неправильный выбор политики хранения может привести к тому, что «горячие» данные окажутся на медленном носителе, что снизит производительность.
Критика
Основная критика комбинированного хранения связана с его сложностью и потенциальной непредсказуемостью. В системах с автоматическим выравниванием алгоритмы могут ошибочно классифицировать данные, что приводит к снижению производительности. Кроме того, в случае выхода из строя быстрого уровня (SSD) система может потерять кэшированные данные, что потребует восстановления с медленного уровня. В некоторых случаях комбинированное хранение может быть менее надёжным, чем использование однотипных носителей в RAID-массивах.
Интересные факты
- Термин «гибридный жёсткий диск» (SSHD) впервые был использован компанией Seagate в 2007 году.
- В 2020-х годах, с удешевлением флеш-памяти, многие ЦОД переходят на полностью SSD-хранилища, но комбинированное хранение остаётся актуальным для архивов и больших объёмов данных (петабайты и более).
- В операционной системе Windows 10 и 11 существует функция Storage Spaces, позволяющая создавать пулы хранения из разных типов дисков и настраивать автоматическое выравнивание.
Источники
- Таненбаум Э., Бос Х. «Современные операционные системы». 4-е изд. — СПб.: Питер, 2015.
- Хеннесси Дж., Паттерсон Д. «Архитектура компьютера и проектирование компьютерных систем». 5-е изд. — М.: Вильямс, 2014.
- Документация Microsoft по Storage Spaces и Storage Spaces Direct (TechNet).
- Спецификации гибридных накопителей Seagate и Western Digital (2010–2020).
- Материалы конференций по системам хранения данных (USENIX FAST, ACM SIGMETRICS).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →