Открыть сервис

Зеркалирование дисков

Зеркалирование дисков — это метод обеспечения отказоустойчивости и повышения надёжности хранения данных, при котором информация одновременно записывается на два или более физических диска, образующих логический том, где каждый диск является точной копией другого. Данная технология является одной из разновидностей RAID-массивов (Redundant Array of Independent Disks) и соответствует уровню RAID 1. Основная цель зеркалирования — минимизация времени простоя системы и предотвращение потери данных в случае выхода из строя одного из накопителей.

История развития

Концепция избыточного хранения данных возникла в конце 1980-х годов в связи с ростом требований к надёжности серверных систем и появлением относительно недорогих жёстких дисков. В 1988 году сотрудники Калифорнийского университета в Беркли Дэвид Паттерсон, Гарт Гибсон и Рэнди Кац опубликовали работу «A Case for Redundant Arrays of Inexpensive Disks», в которой впервые систематизировали различные уровни RAID, включая RAID 1 (зеркалирование). Первоначально технология применялась исключительно в корпоративных сетевых хранилищах и мейнфреймах, но с удешевлением HDD и появлением контроллеров RAID стала доступна для настольных компьютеров и домашних серверов.

В 1990-х годах зеркалирование активно внедрялось в операционные системы семейства Unix, а затем и в Windows NT, где появилась возможность программного создания зеркальных томов. С развитием твердотельных накопителей (SSD) и программно-определяемых хранилищ (SDS) технология стала реализовываться на уровне гипервизоров и распределённых файловых систем, что позволило отказаться от аппаратных RAID-контроллеров во многих современных дата-центрах.

Классификация и реализации

По способу реализации зеркалирование подразделяется на два основных типа: аппаратное и программное.

Аппаратное зеркалирование

Реализуется с помощью специализированного RAID-контроллера — отдельной платы расширения или встроенного модуля на материнской плате. Контроллер управляет процессом записи и чтения, не нагружая центральный процессор. Преимущества:

Недостатки: более высокая стоимость, зависимость от исправности контроллера (выход из строя контроллера может сделать недоступными данные до его замены на совместимую модель).

Программное зеркалирование

Осуществляется средствами операционной системы (например, Windows Дисковая подсистема, Linux mdadm, ZFS, Btrfs). Нагрузка по обработке операций ввода-вывода ложится на центральный процессор. Плюсы:

Минусы: снижение производительности при интенсивной работе, зависимость от стабильности операционной системы.

Зеркалирование на уровне RAID-массива (RAID 1)

Классическая схема RAID 1 предполагает использование ровно двух дисков, копирующих друг друга. Однако существуют расширения:

Зеркалирование в распределённых системах

В современных облачных и распределённых файловых системах (Ceph, GlusterFS, Hadoop HDFS) данные реплицируются (размножаются) на несколько узлов, что можно рассматривать как форму логического зеркалирования. При выходе из строя целого сервера данные восстанавливаются с других реплик.

Устройство и принцип работы

При зеркалировании данные, поступающие на запись, дублируются на каждый из дисков массива. При чтении система может обращаться как к любому из накопителей (что в некоторых реализациях повышает скорость чтения, так как запросы распределяются), так и к основному диску с проверкой целостности.

Процесс записи:

Процесс чтения:

При выходе одного из накопителей из строя система продолжает работу с оставшимся диском. В фоновом режиме может быть инициирован процесс восстановления: на новый (заменённый) диск данные копируются с рабочего. Этот процесс может занимать часы, в течение которых система работает в уязвимом режиме (без резервирования).

Характеристики и производительность

Основные показатели эффективности зеркалирования:

ПараметрЗначение
Коэффициент избыточности2 (при двух дисках) — объём полезного пространства равен объёму одного диска
Допустимое количество отказов1 диск (при двух дисках), при большем количестве дисков может выдерживать до N-1 отказов
Скорость записиПримерно равна скорости одного диска (или ниже из-за накладных расходов на дублирование)
Скорость чтенияМожет быть выше, чем у одного диска, при параллельном чтении
Время восстановления (rebuild)Зависит от ёмкости диска и загрузки системы; для современных HDD от 4–8 часов до суток, для SSD — быстрее

Зеркалирование не увеличивает общую производительность записи (в худшем случае может даже снизить её), но обеспечивает максимальную надёжность из доступных для двух дисков. Некоторые реализации программного RAID (например, ZFS) могут использовать кэш-память и асинхронную запись для смягчения потерь скорости.

Применение и значение

Зеркалирование дисков находит широкое применение в следующих областях:

В отличие от RAID 5 и RAID 6, которые обеспечивают экономию места, зеркалирование даёт более высокую надёжность при отказе одного диска и не требует сложных вычислений контрольных сумм. Однако при отказе двух дисков (в стандартной конфигурации) данные теряются полностью.

Критика и ограничения

Несмотря на высокую надёжность, зеркалирование имеет ряд недостатков:

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →