Отказ диска перестаёт быть катастрофой, если данные лежат на нескольких носителях с запасными копиями. Технология Storage Spaces, по-русски "Дисковые пространства", объединяет отдельные физические диски в общий пул, а из пула собирает виртуальные диски с разной степенью защиты. Один носитель может выйти из строя, и файлы останутся доступны. Работает это и на домашнем ПК с Windows 11 Pro, и на сервере под управлением Windows Server, причём без дорогих RAID контроллеров.

Пул из физических дисков и виртуальные диски поверх него

Идея проста. Вместо настройки каждого диска по отдельности система складывает их в общий котёл, пул носителей, а затем вырезает из этой ёмкости виртуальные диски. Для Windows такой виртуальный диск выглядит как самый обычный: на нём создают том, назначают букву, форматируют. Внутри же он лежит сразу на нескольких физических носителях.

Из этого следуют два приятных свойства. Диски добавляют в пул постепенно, по мере роста потребностей и бюджета, разные по объёму и даже по типу. А один пул может отдавать несколько пространств с разной защитой, например зеркало для рабочих файлов и простое чередование для временных данных.

Для первого знакомства понадобится следующее:
1. не менее двух чистых дисков без разделов и файлов, каждый объёмом от 4 ГБ;
2. Windows 11 Pro либо Windows Server, где инструмент доступен официально;
3. контроллер без RAID функций, чтобы система видела каждый диск по отдельности.

Требование про чистые диски жёсткое: перед добавлением в пул носитель очищают, потому что все данные на нём будут перезаписаны. Подходят внутренние SATA, SAS и NVMe накопители, а дома многие подключают и внешние USB диски, хотя для сервера такой вариант не рекомендован. Есть и принципиальное ограничение: на пространстве нельзя разместить саму Windows, системный раздел живёт вне пула.

Уровни защиты от чередования до трёхстороннего зеркала и чётности

Схем защиты три, и выбор между ними похож на размен между скоростью, объёмом и спокойствием. Чередование, в терминах системы Simple, размазывает данные по дискам ради максимальной скорости и полного использования ёмкости, но не защищает ни от чего: отказ любого носителя уничтожает всё, что на нём лежало. Такую схему ставят под временные и легко восстановимые файлы.

Зеркало хранит две или три копии данных на разных дисках. Двустороннее переживает отказ одного носителя, но платит за это половиной объёма: из двух терабайтов в дело идёт один. Трёхстороннее требует минимум пяти дисков в пуле и сохраняет файлы даже при одновременном отказе двух носителей, забирая уже около двух третей ёмкости. Зеркала быстры на чтение и запись, а после внезапного отключения питания механизм DRT приводит копии к согласованному состоянию.

Чётность, она же Parity, экономнее всех: из четырёх дисков полезными остаются три, а избыточность прячется в контрольных суммах, размазанных по всему набору. Для защиты от одного отказа хватит трёх носителей. Расплата за экономию – скорость записи: каждое изменение требует пересчитать чётность, поэтому схема хороша для архивов, резервных копий и последовательного чтения больших файлов. Двойная чётность переживает два отказа, но требует полного выделения ёмкости и заметно больше вычислений.

Создание пула и первого пространства через Параметры Windows

В Windows 11 Pro всё делается в графическом интерфейсе, без единой команды. Путь такой: Параметры → Система → Память → Дополнительные параметры хранилища → Дисковые пространства. Система покажет диски, пригодные для объединения, то есть пустые и без разделов. Нужные носители отмечают флажками, собирают из них пул, а затем мастер предложит создать первое пространство: задаётся имя, буква диска, схема устойчивости и размер.

Набор доступных схем зависит от количества носителей: для зеркала нужно минимум два, для чётности минимум три. Владельцам Windows 10 и любителям классики открыт старый путь через Панель управления → Система и безопасность → Дисковые пространства, где работает тот же мастер. Если пул не создаётся ни там, ни там, значит системе не нравятся диски: чаще всего они заняты, уже размечены или их меньше требуемого минимума.

Тонкая настройка пула и виртуального диска через PowerShell

PowerShell открывает те же возможности плюс параметры, которых нет в интерфейсе: число колонок, чередование, тип выделения ёмкости. Консоль запускают от имени администратора и вводят команды по одной. Сначала стоит посмотреть, какие диски система готова забрать в пул:

Get-PhysicalDisk -CanPool $true

Команда выведет таблицу с именами, объёмом и типом шины каждого кандидата. Затем создаётся сам пул:

New-StoragePool -FriendlyName "DomPool" -StorageSubsystemFriendlyName "Windows Storage*" -PhysicalDisks (Get-PhysicalDisk -CanPool $true)

После выполнения в системе появится пул DomPool со всеми свободными дисками внутри. Дальше очередь виртуального диска и тома:

New-VirtualDisk -StoragePoolFriendlyName "DomPool" -FriendlyName "Data" -ResiliencySettingName Mirror -Size 2TB -ProvisioningType Thin
Get-VirtualDisk -FriendlyName "Data" | Get-Disk | Initialize-Disk -Passthru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS

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

Пара команд отвечает и за продвинутые схемы:

New-VirtualDisk -StoragePoolFriendlyName "DomPool" -FriendlyName "Vault" -ResiliencySettingName Mirror -NumberOfDataCopies 3 -ProvisioningType Fixed -Size 500GB
New-VirtualDisk -StoragePoolFriendlyName "DomPool" -FriendlyName "Archive" -ResiliencySettingName Parity -PhysicalDiskRedundancy 2 -ProvisioningType Fixed -UseMaximumSize

Трёхстороннее зеркало в первой строке потребует минимум пяти дисков, двойная чётность во второй переживёт отказ сразу двух носителей. Полное выделение, Fixed, занимает ёмкость пула мгновенно, тонкое, Thin, обещает её на будущее, поэтому за свободным местом следят командой Get-VirtualDisk, а пул расширяют заранее, не дожидаясь переполнения.

Отдельный параметр чередования, Interleave, задаёт, сколько байтов уходит на один физический диск в каждой полосе записи. Умножив его на число колонок, NumberOfColumns, получают размер одной полосы: при 64 КБ и четырёх колонках это 256 КБ. Для винчестеров и крупных файлов выгоднее большие полосы, для множества мелких операций подойдут компактные значения.

Файловая система ReFS и проверка целостности каждого файла

Файловая система ReFS задумывалась как пара к дисковым пространствам. Она постоянно проверяет контрольные суммы метаданных, а для содержимого файлов такую проверку включают отдельно, функцией integrity streams. Контроль идёт на лету: перед выдачей файла система считает его контрольную сумму и сверяет с записанной в метаданных.

Главное проявляется в связке с зеркалом или чётностью. Обнаружив порчу, ReFS берёт исправную копию с соседнего диска, восстанавливает данные и отдаёт файл приложению, которое даже не узнает о проблеме. На простом пространстве без избыточности или на одиночном диске система поступит иначе и вернёт ошибку вместо подозрительных данных. За давно нетронутые файлы отвечает фоновый сканер целостности: по умолчанию он проходит том раз в четыре недели, расписание лежит в Планировщике заданий в разделе Microsoft\Windows\Data Integrity Scan.

Включение и проверка делаются двумя командлетами на готовом томе ReFS:

Get-FileIntegrity -FileName "H:\Docs\report.docx"
Set-FileIntegrity -FileName "H:\Docs" -Enable $true

Первая команда показывает состояние проверки для конкретного файла, вторая распространяет её на всю папку, и новые файлы унаследуют настройку автоматически. Платой служит небольшая потеря скорости: каждая запись уходит на новое место, файлы сильнее фрагментируются, а подсчёт сумм добавляет нагрузку на процессор. На чувствительных к скорости системах проверку содержимого оставляют выключенной. Ещё один нюанс: выбирать ReFS при создании тома полноценно умеют Windows Server и редакция Pro for Workstations, в обычной клиентской Pro пространство форматируют в NTFS.

Замена отказавшего диска и восстановление пула

Что происходит, когда носитель в пуле отказывает? Файлы остаются доступны: зеркало просто читает вторую копию, чётность восстанавливает данные вычислениями. Состояние всех дисков показывает команда:

Get-PhysicalDisk | Select-Object FriendlyName, HealthStatus

Проблемный носитель получит статус Warning или Unhealthy. Дальше порядок такой: неисправный диск извлекают. Внешний USB накопитель просто отключают, серверные носители в горячей корзине меняются на работающем сервере, а обычные SATA диски ждут выключения, если контроллер не поддерживает горячую замену. На освободившееся место ставят новый носитель и вводят его в пул:

Add-PhysicalDisk -StoragePoolFriendlyName "DomPool" -PhysicalDisks (Get-PhysicalDisk -CanPool $true)
Repair-VirtualDisk -FriendlyName "Data"
Optimize-StoragePool -FriendlyName "DomPool"

Первая команда добавляет свежий носитель в пул, вторая запускает восстановление пространства, третья перераспределяет блоки равномерно по обновлённому набору. Перестройка идёт в фоне, пул продолжает работать, но скорость заметно проседает. Опасен и повторный отказ в этот период: для двустороннего зеркала второй сломавшийся носитель во время перестройки обернётся потерей данных, поэтому тянуть с заменой не стоит. Страховкой служит горячий резерв: диск, заранее добавленный в пул с назначением HotSpare, который система сама подключит в дело при аварии. А ещё носитель можно не заменять, а выводить из пула по плану, командлет Remove-PhysicalDisk умеет и это.

Отличия от аппаратного RAID и опасность чётности на слабом процессоре

Аппаратный RAID живёт в отдельном контроллере со своим процессором и кэшем, а массив жёстко привязан к железу: контроллер сломался, и диски без него часто не читаются. Дисковые пространства устроены наоборот: математика защиты выполняется силами Windows, а описание массива хранится в метаданных самого пула, поэтому диски можно перенести на другой компьютер и подключить пул заново, причём до подтверждения он появится только для чтения. Носители не обязаны быть одинаковыми, пул расширяется на ходу, а зеркала и чётность мирно живут в одном пуле рядом.

От классического зеркалирования на динамических дисках из Управления дисками пространства отличаются не меньше: динамические диски считаются устаревшим подходом, требуют почти одинаковые разделы и не умеют ни пулов, ни тонкого выделения.

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

В Windows Server те же принципы развёрнуты в промышленный масштаб. Storage Spaces Direct объединяет в кластер несколько серверов с локальными дисками через быструю сеть с RDMA, кэш из SSD ускоряет медленные HDD, а копии данных раскладываются по разным корпусам JBOD, чтобы пережить отказ целой полки. Домашнему пользователю это не нужно, но важно другое: пул из двух старых дисков на ПК и серверная конфигурация построены на одной технологии, поэтому навык переносится без переучивания.

И последнее. Пространства защищают от отказа диска, но не заменяют резервную копию: случайно удалённый файл или файл, повреждённый вредоносной программой, синхронно исчезнет из всех копий сразу. Поэтому пул и внешний архив с копиями живут параллельно, а не вместо друг друга.