Новые версии Windows располагают расширенными возможностями хранения данных. В Windows Server 2012 и Windows 8 появилась функция под названием Storage Spaces and Pools, обеспечивающая пользователям ряд новых возможностей, в том числе:

  • метод построения виртуальных хранилищ данных;
  • функциональность RAID, ранее доступная только в дорогостоящем оборудовании;
  • тонкая подготовка;
  • управление с использованием сценариев через PowerShell;
  • избыточные копии данных, которые можно применять для устранения неполадок файловой системы;
  • интеграция с общими томами кластера (CSV).

Поддерживаемые хранилища данных

Storage Spaces and Pools можно разместить на разнообразных аппаратных средствах. Поддерживаемые типы шин: Universal Serial Bus (USB), Serial ATA (SATA) и Serial Attached SCSI (SAS).

Storage Spaces and Pools можно использовать в сочетании с логическими устройствами (LUN) через канал Fibre Channel или iSCSI, однако такая конфигурация не поддерживается. Пользователям высокоуровневых решений хранения данных следует обратиться к соответствующим поставщикам, чтобы в полном объеме задействовать имеющуюся функциональность. Компонент Storage Spaces and Pools ориентирован на менее дорогостоящие решения, чтобы предоставить функциональность, недоступную иными способами.

Создание пула и дискового пространства

Пул — просто логическая группа физических дисков, а дисковое пространство (storage space) — виртуальный диск, который можно использовать как физический. Поэтому создание дискового пространства с помощью Storage Spaces and Pools — двухэтапный процесс. Сначала создается пул; затем выделяется дисковое пространство, именуемое виртуальным диском в Windows Server. Не путайте виртуальные диски Storage Spaces and Pools с файлами Virtual Hard Disk (VHD) или VHDX. Термины похожи, но сами компоненты не имеют между собой ничего общего.

С помощью интерфейса Server Manager можно создать работоспособный пул. Отправной точкой становится пул по умолчанию, называемый исходным пулом, представляющий собой просто список физических дисков, присоединенных к компьютеру, которые могут быть объединены в пул. Исходный пул не считается работоспособным. Мастер запрашивает имя пула и добавляемые физические диски. Созданный пул отображается в интерфейсе Server Manager. Обратите внимание, что хотя в Windows можно сформировать множество пулов, не рекомендуется создавать больше четырех. Для выполнения этой же операции предназначен сценарий PowerShell из трех строк:

   $stsubsys = (Get-StorageSubsystem) 
   $physd = (Get-PhysicalDisk PhysicalDisk1, PhysicalDisk2, PhysicalDisk3, PhysicalDisk4) 
   New-StoragePool -FriendlyName MyPool1 -StorageSubsystemFriendlyName $stsubs.FriendlyName -PhysicalDisks $physd 

Подготовив пул, можно создать виртуальный диск (называемый дисковым пространством в Windows 8). Мастер запрашивает имя пула хранения, имя виртуального диска, тип структуры хранилища, тип подготовки (тонкая или фиксированная) и размер виртуального диска. Подробнее это будет рассмотрено в следующем разделе, но после завершения работы мастера вы увидите виртуальный диск, показанный на приведенном экране. Для выполнения этой же операции предназначен следующий сценарий PowerShell:

   New-VirtualDisk -StoragePoolFriendlyName MyPool1 -FriendlyName MyVirtualDisk 
   -ResiliencySettingName Mirror -UseMaximumSize 

·

Создание виртуальных дисков
Экран. Создание виртуальных дисков

Данный виртуальный диск можно использовать точно так же, как физический. Его можно настроить как раздел Master Boot Record (MBR) или GUID Partition Table (GPT).

Правила выбора

При создании виртуального диска нужно определить три основные характеристики: тип структуры хранилища (простая, зеркальная, с контролем по четности), тип подготовки (тонкий или фиксированный) и размер виртуального диска. Другие параметры, например имя пула или имя виртуального диска, произвольны.

Структура. Структура хранилища — это всего лишь тип RAID, который предстоит использовать. Можно выбрать Simple (RAID 0 или чередующийся набор без контроля четности), Mirror (RAID 1) или Parity (RAID 5 или чередующийся набор с контролем четности). Можно создать простой набор из одного или нескольких физических дисков пула. Для наборов с контролем четности требуется не менее трех дисков в пуле. Наконец, зеркальные наборы можно создать с использованием не менее двух физических дисков для двустороннего зеркалирования и не менее пяти физических дисков для трехстороннего зеркалирования.

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

Размер виртуального диска. Размер виртуального диска зависит от выбранного типа подготовки, структуры хранилища и размера используемых физических дисков. Если планируется создать всего один виртуальный диск в пуле, можно просто выбрать параметр Maximum size (максимальный размер). Обратите внимание, что параметр Maximum size затенен, если выбрана тонкая подготовка.

Дополнительные сведения о тонкой подготовке

Тонкая подготовка — технология своевременного выделения блоков памяти по мере необходимости. При фиксированной подготовке физические блоки выделяются виртуальному диску независимо от того, будут они использованы или нет. При тонкой подготовке только используемые блоки сопоставляются с физическими блоками. Это позволяет подготовить виртуальный диск гораздо большего размера, чем в фиксированном варианте. Если виртуальный диск подходит к пределу сопоставления физических блоков, можно добавить новые физические диски.

Преимущество тонкой подготовки — гибкость дискового пространства. Если вам нужен виртуальный диск на 10 Тбайт, не обязательно заранее обеспечивать для него физическое пространство. Можно подготовить тонкий виртуальный диск размером 10 Тбайт и добавлять физические диски по мере надобности. Эффективность этого подхода еще более повышается благодаря усовершенствованиям NTFS, обеспечивающим восстановление пространства после удаления или оптимизации файлов. Windows также оптимизирована для более эффективной работы с решениями хранения данных высокого уровня, располагающих функциями тонкой подготовки. В частности, это возможность задействовать неиспользуемые сектора, как это делает Storage Spaces and Pools.

Принципы архитектуры

Рассмотрим, что происходит во внутренних механизмах, чтобы получить описанные результаты. На рисунке 1 показан стек хранилища Windows. Драйвер SSP (SpacePort.sys) подключается непосредственно выше Partition Manager (Partmgr.sys). Когда в пул вводится физический диск, на нем создается раздел и физический диск скрывается из интерфейса пользователя. На следующем шаге из пула вырезается виртуальный диск, затем этот виртуальный диск вновь представляется в интерфейсе пользователя как логический диск. Физические диски по-прежнему видны в диспетчере устройств, но новое устройство Microsoft Storage Space Device также указано для каждого созданного виртуального диска.

Стек хранилища Windows
Рисунок 1. Стек хранилища Windows

На рисунке 2 показано, как будут выглядеть разделы на физических дисках (как унаследованные MBR-диски, так и диски с использованием схемы GPT.) Небольшая область раздела будет выделена для хранения метаданных для Storage Spaces and Pools. Основная часть раздела будет использоваться для хранения данных файлов. После того, как создан виртуальный диск, его можно настроить как MBR или GPT, а затем использовать как обычный физический диск. Его можно представить в формате NTFS или новой системы Resilient File System (ReFS) компании Microsoft.

Вид разделов на физических дисках
Рисунок 2. Вид разделов на физических дисках

Дополнительные параметры

В целях повышения производительности можно выполнить более глубокую настройку Storage Spaces and Pools. Полезно изучать эти настройки, добавляя физические диски к существующему виртуальному диску. В частности, функция Storage Spaces and Pools в Windows 8 отличается простотой использования, но если вы хотите расширить возможности управления хранением данных, то в Storage Spaces and Pools для этого есть все необходимое.

Доступ к большинству углубленных настроек можно получить через команду PowerShell под названием New-VirtualDisk. Интерес представляют элементы NumberOfColumns (указывает число создаваемых столбцов), NumberOfDataCopies (указывает число создаваемых копий данных) и ResiliencySettingName (указывает имя требуемого параметра устойчивости — например, Simple, Mirror или Parity).

Число столбцов. На рисунке 3 показана диаграмма, состоящая из трех дисков. Диски делятся на блоки. При чередовании между дисками можно выполнять запись на каждый диск одновременно. В технологии RAID этот метод известен как чередующийся набор без контроля четности. Приблизительно это и происходит на виртуальном диске с «простой» структурой.

Каждый физический диск — столбец в виртуальном диске. Чем больше физических дисков доступно при создании виртуального диска, тем больше будет столбцов и возможных одновременных операций записи. Аналогичная ситуация с наборами с контролем четности. Чем больше физических дисков в начальный момент, тем больше столбцов в виртуальном диске. Единственное различие заключается в потере части пространства, отводимого для хранения разрядов четности. Благодаря возможностям масштабирования Windows можно использовать до восьми столбцов при создании виртуального диска (даже если это делается с использованием PowerShell).

Элемент, используемый для управления столбцами — NumberOfColumns. Ниже приводится пример ручного управления этим элементом и элементом ResiliencySettingName. Следующая команда формирует виртуальный диск с тремя столбцами:

   New-VirtualDisk -FriendlyName NewVDisk -StoragePoolFriendlyName MyPool 
   -NumberOfColumns 3 -ResiliencySettingName simple -UseMaximumSize 

·

Простая структура
Рисунок 3. Простая структура

Объединение столбцов с копиями данных. Копия данных — это именно копия данных. Если избыточность существует в виде автономного экземпляра, то у вас будет больше одной копии данных. В противном случае копия единственная.

* Простое пространство с единственной копией.

* Зеркальные пространства с двумя или тремя копиями.

* Пространства с контролем четности имеют всего одну копию.

Только зеркальное пространство имеет полную копию экземпляра данных, как показано на рисунке 4. Отказоустойчивость пространства с контролем четности достигается за счет того, что не используется полностью отдельный экземпляр данных. Поэтому имеется лишь единственная копия данных. В трехстороннем зеркале существует три копии данных. Недостаток дополнительной копии данных заключается в необходимости выполнять запись несколько раз. В результате зеркальные пространства работают медленнее при выполнении записи. Один из недостатков зеркалирования — увеличение времени записи из-за необходимости записывать одни и те же данные несколько раз.

Различия между простой структурой, зеркальной и?структурой с проверкой четкости
Рисунок 4. Различия между простой структурой, зеркальной и?структурой с проверкой четкости

 

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

 

Четыре физических диска, использованные для?создания зеркального пространства
Рисунок 5. Четыре физических диска, использованные для?создания зеркального пространства

Можно использовать элемент New-VirtualDisk (NumberOfDataCopies), чтобы задать число копий данных. В качестве примера взгляните на следующую команду PowerShell, которая создает двухстороннее зеркальное пространство с шестью столбцами, как на рисунке 6.

 

Двухстороннее зеркальное пространство с шестью столбцами
Рисунок 6. Двухстороннее зеркальное пространство с шестью столбцами
   New-VirtualDisk -FriendlyName NewVDisk -StoragePoolFriendlyName MyPool 
   -NumberOfColumns 6 -NumberOfDataCopies 2 -ResiliencySettingName mirror 
   -UseMaximumSize 

Дополнительные сведения о столбцах

Число столбцов в дисковых пространствах обычно соответствует числу физических дисков, имеющихся при создании виртуального диска. Число столбцов может быть меньше числа дисков, но не больше. Столбцы важны, так как показывают число дисков, к которым можно обратиться одновременно. Например, на рисунке 7 мы видим два простых пространства. В обоих используется два диска, но в левом используется один столбец, а в правом — два. Для простого пространства справа можно одновременно выполнять операции ввода-вывода, теоретически увеличивая скорость вдвое.

 

Два простых пространства
Рисунок 7. Два простых пространства

Число столбцов, используемое в дисковом пространстве, задается при создании пространства. В графическом интерфейсе назначается максимально возможное число столбцов. Здесь действует следующая логика:

* если пространство создано с помощью интерфейса пользователя, максимальное число столбцов — восемь;

* при использовании команды New-VirtualDisk можно установить значение NumberOfColumns больше восьми;

* в пространствах с контролем четности больше восьми столбцов (даже при использовании PowerShell).

Добавление пространства

Добавление дискового пространства к уже существующему может быть делом нелегким. На рисунке 8 было создано простое пространство с использованием двух физических дисков. Если нужно расширить виртуальный диск, необходимо сначала добавить физический диск к пулу носителей, если таковой был недоступен. Но если попытаться расширить виртуальный диск после того, как диск добавлен, вы потерпите неудачу. Ошибка указывает, что не существует физических ресурсов, обеспечивающих добавление пространства к виртуальному диску, даже если пул дополнен новым чистым диском.

 

Одно простое пространство, созданное с двумя физическими дисками
Рисунок 8. Одно простое пространство, созданное с двумя физическими дисками

Проблема заключается в количестве столбцов. Windows должна придерживаться той же модели чередования, которая использовалась при создании пространства. Нельзя просто добавить столбец. Если бы такое было возможно, терялись бы все преимущества чередования, когда заполняются два первоначальных диска. Кроме того, нельзя пристроить новый диск к одному из имеющихся столбцов снизу (в сущности, по тем же причинам). Для расширения виртуального диска нужно добавить столько дисков, чтобы их число равнялось или превышало число столбцов в указанном виртуальном диске. В результате чередование продолжается первоначально заданным способом. То же относится к простым пространствам и пространствам с контролем четности. Число добавляемых дисков должно быть равным или больше числа столбцов в виртуальном диске.

Работая с зеркальными пространствами, необходимо принимать во внимание как число столбцов, так и число копий данных. Например, двухстороннее зеркало, созданное с использованием четырех физических дисков, будет выглядеть так, как показано на рисунке 9. NumberOfDataCopies равен 2, и NumberOfColumns равен 2. Число дисков, необходимое для расширения этого виртуального диска вычисляется по следующей формуле:

NumberOfDataCopies * NumberOfColumns 
2 * 2 = 4

 

Двухстороннее зеркало с четырьмя физическими дисками
Рисунок 9. Двухстороннее зеркало с четырьмя физическими дисками

Четыре физических диска необходимо для расширения тестового пространства, см. рисунок 10. Ту же формулу можно использовать для простых пространств и пространств с контролем четности. Однако значение NumberOfDataCopies всегда равно 1 для обеих структур.

 

Четыре физических диска, расширяющих тестовое пространство
Рисунок 10. Четыре физических диска, расширяющих тестовое пространство

Определение числа копий данных и столбцов

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

   Get-VirtualDisk -FriendlyName MyVirtualDisk | ft FriendlyName, NumberOfColumns, NumberOfDataCopies 
   ReFS на зеркале 

· Отметим дополнительное преимущество зеркал Storage Spaces and Pools. В данной статье уже упоминалось о новой файловой системе Microsoft, ReFS. В случае порчи файлов или метаданных в ReFS операционная система может использовать избыточную копию с другой стороны зеркала для устранения ошибок. Это возможно отчасти благодаря контрольным суммам как данных, так и метаданных в ReFS.

Мощная функциональность хранения данных

Благодаря Storage Spaces and Pools в распоряжение обладателей систем хранения данных начального и среднего уровня предоставляется функциональность, которая в противном случае была бы недоступна. Ее легко настроить; возможна углубленная настройка для желающих задействовать дополнительные параметры, а файловая система ReFS приобретает дополнительную устойчивость. Storage Spaces and Pools обеспечивает тонкую подготовку, и как большинство компонентов Server 2012 и Windows 8, может управляться сценариями с использованием PowerShell. Думаю, это будет самое востребованное из всех новшеств Windows, относящихся к хранению данных.