Несколько отдельных дисков в компьютере - это несколько отдельных букв, между которыми приходится вручную раскидывать файлы. Один забивается под завязку, на другом гуляет ветер, а перенести данные с диска на диск - целая морока. Технология дисковых пространств в Windows решает эту разрозненность изящно: она сливает физические диски в общий резервуар, из которого нарезаются гибкие тома нужного размера, не привязанные к границам отдельных накопителей. Диски разной ёмкости и даже разного типа объединяются в единое пространство, которым удобно управлять как целым. И вся эта мощь доступна через встроенные средства системы без покупки дорогих аппаратных контроллеров.
Пул носителей - это объединение физических дисков в общий запас ёмкости. Сам по себе пул ещё не хранит файлы, он лишь предоставляет сырое пространство. Из этого пространства потом создают виртуальные диски с нужными свойствами надёжности и размера, а уже на них размещают тома с файловой системой. Такая многослойность даёт гибкость, недостижимую при работе с физическими дисками напрямую: один пул может питать несколько виртуальных дисков с разной защитой, а добавление новых накопителей расширяет общий запас без перекройки существующих томов.
Просмотр доступных для объединения физических дисков
Прежде чем создавать пул, надо понять, какие диски вообще доступны для объединения. Не всякий диск годится: системный диск с установленной Windows в пул не возьмёшь, а вот чистые дополнительные накопители подходят. Список физических дисков, пригодных для пула, выводит команда оболочки PowerShell:
Get-PhysicalDisk -CanPool $True
Команда показывает только те диски, которые можно добавить в пул: чистые, без разделов и не занятые системой. В выводе видно понятное имя каждого диска, его размер и тип носителя. Если нужного диска в списке нет, значит, на нём есть данные или разделы, и сначала его придётся очистить, осознавая, что вся информация на нём при этом пропадёт. Просмотр пригодных дисков - обязательный первый шаг, потому что он сразу показывает, из чего реально можно собрать пул, и предупреждает о дисках, требующих предварительной очистки.
Создание пула из выбранных накопителей
Когда пригодные диски определены, из них создают пул. Команда создания берёт подсистему хранения и список физических дисков, объединяя их под общим именем. Создание пула из всех доступных дисков выглядит так:
$диски = Get-PhysicalDisk -CanPool $True
New-StoragePool -FriendlyName "ПулДанных" -StorageSubSystemFriendlyName "Windows Storage*" -PhysicalDisks $диски
Первая строка собирает все пригодные диски в переменную, вторая создаёт из них пул с понятным именем. Имя пула задаётся произвольно, оно служит для удобного обращения к пулу в дальнейшем. После создания пул появляется в системе как единый объект, объединивший ёмкость всех включённых дисков. Проверить, что пул создан и какие диски в него вошли, помогает команда просмотра пулов:
Get-StoragePool
Она выводит список всех пулов с их именами, общим размером и состоянием. Видя свежесозданный пул с суммарной ёмкостью всех дисков, убеждаются, что объединение прошло успешно. Теперь сырое пространство готово, и из него можно нарезать виртуальные диски.
Создание виртуального диска с выбором уровня надёжности
Пул сам по себе бесполезен, пока из него не создан виртуальный диск. При создании выбирают способ размещения данных по физическим дискам, и от этого выбора зависит надёжность и доступный объём. Простейший вариант без защиты, отдающий максимум объёма, создаётся так:
New-VirtualDisk -StoragePoolFriendlyName "ПулДанных" -FriendlyName "Том1" -ResiliencySettingName Simple -UseMaximumSize
Здесь способ размещения задан как простой, без избыточности, а размер взят максимально возможный из пула. Простой режим распределяет данные по дискам без дублирования, что даёт наибольшую ёмкость, но при отказе любого диска данные теряются. Для защиты от сбоя диска выбирают зеркальный режим, дублирующий данные на разные накопители:
New-VirtualDisk -StoragePoolFriendlyName "ПулДанных" -FriendlyName "Том1" -ResiliencySettingName Mirror -Size 100GB
Зеркальный режим хранит копии данных на разных дисках, поэтому отказ одного накопителя не приводит к потере информации, но половина общей ёмкости уходит на дублирование. Выбор режима - это всегда компромисс между объёмом и надёжностью, и решают его исходя из ценности данных: для бэкапов и архивов берут зеркало, для временных файлов хватает простого режима.
Инициализация и форматирование готового тома
Созданный виртуальный диск система видит как обычный новый диск, но работать с ним пока нельзя: его надо подготовить так же, как любой свежий накопитель. Сначала диск инициализируют, потом создают на нём раздел и форматируют. Вся подготовка делается связкой команд:
$вд = Get-VirtualDisk -FriendlyName "Том1"
Initialize-Disk -VirtualDisk $вд -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel "Данные"
Первая строка находит созданный виртуальный диск, вторая в одну цепочку инициализирует его, создаёт раздел на всё доступное пространство с автоматическим назначением буквы и форматирует в файловую систему. После этого в проводнике появляется новый диск под назначенной буквой, готовый к записи файлов. С точки зрения пользователя это обычный диск, и он не догадывается, что за буквой скрывается объединение нескольких физических накопителей с выбранным уровнем защиты. Вся сложность многослойной конструкции спрятана за привычной буквой диска.
Расширение пула добавлением новых дисков
Главное преимущество пула раскрывается со временем, когда места перестаёт хватать. Вместо мучительного переноса данных на новый большой диск просто добавляют ещё один накопитель в существующий пул, и общая ёмкость растёт. Добавление нового диска в пул делается командой:
$новый = Get-PhysicalDisk -CanPool $True
Add-PhysicalDisk -StoragePoolFriendlyName "ПулДанных" -PhysicalDisks $новый
Первая строка находит свежий пригодный диск, вторая добавляет его в пул. После этого запас пула увеличивается на ёмкость нового диска, и за счёт него можно расширять существующие тома или создавать новые. Это та самая гибкость, ради которой затевается весь пул: ёмкость наращивается постепенно, по мере надобности, без остановки работы и переброски данных. Старые диски остаются на месте, новый просто вливается в общий резервуар, и система сама начинает использовать добавленное пространство.
Выбор между фиксированным и тонким выделением пространства
При создании виртуального диска есть ещё одна важная развилка, помимо уровня надёжности, - способ выделения пространства. Фиксированное выделение сразу занимает в пуле весь заявленный объём, тогда как тонкое выделяет место по мере фактической записи данных. Тонкое выделение позволяет создать виртуальный диск размером больше, чем сейчас есть в пуле, в расчёте на будущее расширение. Создание диска с тонким выделением выглядит так:
New-VirtualDisk -StoragePoolFriendlyName "ПулДанных" -FriendlyName "Том1" -ResiliencySettingName Mirror -Size 500GB -ProvisioningType Thin
Здесь заявлен объём в пятьсот гигабайт, но реально пул займёт лишь столько, сколько записано данных, а остальное добавится по мере заполнения. Это удобно, когда точный будущий объём неизвестен: можно задать с запасом и докупать физические диски лишь тогда, когда тонкий том действительно подберётся к пределу. Обратная сторона - за заполнением такого тома надо следить, иначе при исчерпании физического пула запись внезапно остановится, хотя том формально не полон. Фиксированное выделение, напротив, надёжнее в плане предсказуемости: сколько заявлено, столько и зарезервировано, никаких сюрпризов с внезапной нехваткой места. Выбор зависит от стиля работы: тонкое экономит диски сегодня ценой бдительности завтра, фиксированное спокойнее, но требует места сразу.
Управление числом столбцов для скорости работы
У виртуального диска есть тонкий параметр, влияющий на скорость, - число столбцов, по которым данные распределяются между физическими дисками. Чем больше столбцов, тем на большее число дисков одновременно ложится запись и чтение, что ускоряет работу за счёт параллельности. Задать число столбцов при создании диска можно явно:
New-VirtualDisk -StoragePoolFriendlyName "ПулДанных" -FriendlyName "Том1" -ResiliencySettingName Simple -NumberOfColumns 3 -UseMaximumSize
Здесь данные раскладываются по трём дискам параллельно, что заметно поднимает скорость по сравнению с записью на один диск. Однако число столбцов не может превышать число физических дисков в пуле, и это ограничение важно учитывать заранее. Если задать три столбца, в пуле должно быть минимум три диска. Параметр столбцов жёстко связан с диском при создании и не меняется потом, поэтому его продумывают на старте. Для пула из множества дисков большое число столбцов даёт ощутимый прирост скорости, тогда как на двух дисках разгуляться негде. Понимание этого параметра отделяет грамотно собранный быстрый пул от собранного наугад медленного, при одинаковом наборе дисков разница в скорости бывает кратной. Стоит учитывать и сочетание столбцов с уровнем надёжности: при зеркалировании каждый столбец требует дополнительных дисков под копии, поэтому минимальное число накопителей для быстрого защищённого тома растёт. Грубое правило таково: чем больше дисков в пуле, тем больше простора и для скорости через столбцы, и для надёжности через зеркало, а на минимальном наборе из двух дисков приходится выбирать что-то одно. Поэтому пул заранее планируют под задачу, прикидывая, что важнее для конкретных данных, объём, скорость или защита, и подбирают число дисков под выбранный приоритет.
Практические соображения и итоговые принципы
Объединение дисков в пул - это не просто техническая операция, а смена самого подхода к хранению. Вместо набора разрозненных накопителей появляется единое управляемое пространство, которое растёт вместе с потребностями и защищает данные выбранным способом. Несколько принципов делают работу с пулом надёжной. Системный диск никогда не включают в пул данных, держа операционную систему отдельно. Уровень надёжности выбирают заранее, исходя из ценности данных, потому что сменить его потом без пересоздания тома непросто. Для важных данных не экономят на зеркалировании, ведь потеря объёма на дублирование несравнима с потерей самих данных при отказе диска.
Отдельно стоит держать в уме, что дисковое пространство защищает от отказа диска, но не заменяет резервное копирование. Зеркало спасает, когда умирает накопитель, однако оно бессильно против случайного удаления файла, повреждения данных программой или человеческой ошибки: испорченное послушно продублируется на обе копии. Поэтому пул с зеркалом и отдельный бэкап решают разные задачи и дополняют друг друга, а не подменяют. Опытный администратор сочетает оба подхода: пул бережёт от аппаратного сбоя, бэкап - от логических потерь. Путать одно с другим опасно, потому что ложное чувство защищённости от одного лишь зеркала однажды оборачивается потерей данных, которые зеркало по своей природе уберечь не могло.
Технология дисковых пространств приносит на обычный компьютер возможности, которые раньше требовали дорогого оборудования: объединение разнородных дисков, гибкое выделение объёма, защиту от отказа накопителя. Весь путь от голых дисков до готового защищённого тома проходится за несколько команд: посмотреть пригодные диски, создать из них пул, нарезать виртуальный диск с нужной надёжностью, инициализировать и отформатировать его. А когда места становится мало, пул расширяется добавлением накопителя без всякой перекройки. Освоив эту последовательность, любой администратор превращает кучу разнокалиберных дисков в стройное хранилище, которым удобно управлять и которое спокойно переживает отказ отдельного накопителя, а данные при этом остаются в целости и продолжают работать, словно ничего не случилось.