Storage Spaces — новый компонент Server 2012 (и клиента Windows 8), в нем воплощен свежий взгляд разработчиков на хранилище данных и способы его администрирования. Физические диски, обеспечивающие хранение данных, абстрагируются от процесса запроса новых томов, теперь именуемых пространствами (space). Технология Storage Spaces автоматически выполняет все необходимые действия для восстановления избыточности данных в случае отказа диска, при наличии достаточного количества физических дисков
Джон Сэвилл (jsavill@windowsitpro.com) — директор по технической инфраструктуре компании Geniant, имеет сертификаты CISSP, Security and Messaging MCSE для Windows Server 2003 и звание MVP
Базовые возможности файловой системы Windows Server не сильно изменились со времени выпуска первых версий Windows NT. В Windows 2000 появились динамические диски; выше стали надежность и производительность файловой системы NTFS; понемногу изменялись файловые службы, как и протокол Server Message Block (SMB), но революционных переворотов не было. В диспетчере File Server Resource Manager (FSRM) усовершенствованы экранирование, квоты, функции отчетов и классификации, но базовые возможности файловой системы и способы использования файловых служб остались прежними.
Когда речь заходит о файловых службах, я вспоминаю о сервере для хранения документов Microsoft Word и PowerPoint. Если от сервера требуется высокая готовность, его можно ввести в состав кластера, и тогда в каждый момент времени общий файловый ресурс будет предоставлен одним сервером. Отказоустойчивые тома можно создать на динамическом диске с использованием зеркалирования Windows (RAID 1) или чередования с контролем четности (RAID 5). Однако ИТ-администраторам приходится вручную выбирать диски и выполнять любые действия по устранению неполадок. Более того, расширенные функции, такие как гибкая подстройка (thin provisioning — своевременное выделение серверу только необходимого пространства памяти) и удобное добавление памяти к пулу, в котором можно создавать тома, просто невозможны без использования отдельной сети хранения SAN или устройства хранения, подключенного к сети, NAS. Все должно измениться с выходом новой версии Windows Server, Windows Server 2012 (ранее известной под условным названием Windows Server 8).
Использование Storage Spaces
ИТ-администраторы и даже конечные пользователи нередко нуждаются в отказоустойчивом хранилище данных. В других случаях требуется защитить информацию иными способами. Можно открыть оснастку Disk Management консоли управления Microsoft MMC, проверить физические диски, при необходимости преобразовать их в динамические, а затем создать том, соответствующий вашим требованиям. Если том должен увеличиваться, можно предусмотреть возможность его расширения (в зависимости от физических дисков), но нельзя добавлять диски к существующему тому, что позволило бы легко масштабировать хранилище данных. Для малых и средних предприятий и даже крупных компаний с мелкими удаленными филиалами (они обладают всего парой серверов и в них нельзя экономично разместить SAN или NAS) подготовка решения хранения данных для служб — целая проблема. Следующие в списке — опытные пользователи настольных компьютеров, которым тоже трудно организовать данные на внутренних дисках и дисках, подключенных через USB.
.
Первый шаг — создание пула носителей, состоящего из нескольких физических дисков, которые связываются друг с другом и могут быть использованы технологией Storage Spaces. В пулы носителей можно объединять диски, подключенные через интерфейсы USB, Serial ATA (SATA) и Serial Attached SCSI (SAS), в конфигурации Just a Bunch of Disks (JBOD). В отсутствие аппаратной поддержки высокой доступности, например RAID, в технологии Storage Spaces приняты меры для обеспечения отказоустойчивости. Накопители, подключаемые через интерфейс USB, особенно удобны для настольных компьютеров; в серверах применяются накопители SATA и SAS. Кроме того, технология Storage Spaces полностью поддерживает совместное использование SAS. Дисковое устройство можно подключить к нескольким компьютерам в кластере, и пространство Storage Space на совместно используемых накопителях SAS будет доступно всем узлам в кластере и может применяться как часть томов Cluster Shared Volumes (CSV). При использовании внешнего дискового устройства технология Storage Spaces поддерживает протокол SCSI Enclosure Services (SES), предупреждающий об отказах внешних хранилищ данных. Например, можно инициировать уведомление о неисправном диске, если Storage Spaces обнаруживает неполадки на физическом диске.
Вместе со Storage Spaces можно задействовать другие технологии, такие как шифрование Microsoft BitLocker Drive Encryption. Когда создается новый пул носителей, диски, добавляемые в него, исчезают из оснастки Disk Management консоли MMC; эти диски виртуализуются и применяются исключительно функцией Storage Space. О состоянии диска в пуле носителей можно узнать из File and Storage Services в диспетчере Server Manager (на сервере Windows или с помощью панели управления Storage Spaces (на клиенте Windows 8). В данной статье рассматривается использование Storage Spaces на сервере с Server Manager и Windows PowerShell, но вся функциональность доступна и на клиенте. Единственное различие в том, что на клиентах для управления вместо Server Manager применяется программа Storage Spaces.
Запустите Server Manager. Убедитесь, что нужный сервер добавлен к списку серверов в экземпляре Server Manager (см. врезку «Управление Windows Server 2012»), затем откройте File and Storage Services. Выберите целевой сервер из вкладки Servers, после чего перейдите на вкладку Storage Pools, на которой показана информация о существующих пулах носителей и дисков, которые могут быть задействованы в пуле носителей. Это диски и системные диски, на которых не содержится никаких томов. Эти неиспользованные диски показаны в пространстве Primordial Storage Space и являются строительными блоками, из которых формируются пулы носителей и Storage Spaces, как показано на экране 1. Для создания пула носителей выполните следующие действия.
1. Из меню Tasks выберите пункт New Storage Pool, чтобы запустить мастер New Storage Pool Wizard.
2. Введите имя и необязательное описание нового пула носителей и нажмите кнопку Next.
3. На следующем экране выберите физические диски, которые будут добавлены в новый пул. Также выберите способ выделения дисков (по умолчанию Data Store). Можно выделять диски как часть виртуальных дисков, которые будут созданы позднее, или оставить в качестве горячего резерва, как показано на экране 2. Нажмите кнопку Next.
4. На экране появится подтверждение. Нажмите кнопку Create, чтобы завершить создание пула носителей.
|
Экран 1. Дистанционное управление с помощью Server Manager |
|
Экран 2. Добавление и выделение дисков новым пулам носителей |
Теперь пул носителей доступен. Следующий шаг — создать виртуальные диски в пуле носителей. Затем можно будет сформировать на этих дисках тома, доступные для использования операционной системой.
В Storage Spaces появилась функция, ранее доступная только при использовании внешних решений хранения данных, таких как сети SAN и устройства NAS: своевременное выделение серверу только необходимого пространства памяти. В процессе создания виртуального диска рассматривается две возможности. Первая — создать диск как фиксированный (выделено все пространство для размера виртуального диска). Вторая — забирать пространство для диска из пула только по мере необходимости. В этом случае можно создать виртуальный диск гораздо большего размера, чем фактически доступное хранилище. Это не означает, что удастся сохранить больше данных, чем вмещает выделенное для пула пространство. Но тома обычно со временем наполняются. Можно создать «тонкий» диск на 10 Тбайт, с которым связан лишь 1 Тбайт физического пространства; когда объем данных увеличится и приблизится к 1 Тбайт, можно физически увеличить пул еще на 1 Тбайт, просто подключив дополнительные диски. Когда объем данных будет приближаться к 2 Тбайт, можно вновь расширить хранилище на 1 Тбайт, добавив диски и т.д. Если добавлять физические диски до заполнения виртуального диска, проблем не возникает. Можно запрограммировать уведомления о достижении предельных значений пула носителей, и у администратора будет время, чтобы добавить нужное пространство.
Создавая виртуальный диск, необходимо лишь знать, в каком пуле носителей разместить диск. Информация о физических дисках не требуется и даже в явном виде недоступна. Цель Storage Spaces — создавать виртуальные диски по мере необходимости. Чтобы создать виртуальный диск, выполните следующие действия.
1. Выберите пул носителей, в котором будет создан новый виртуальный диск. В разделе Virtual Disks укажите задачу New Virtual Disk.
2. Подтвердите правильность выбора сервера и пула носителей на соответствующей странице мастера и нажмите кнопку Next.
3. Дайте имя и введите необязательное описание нового виртуального диска, а затем нажмите кнопку Next.
4. Выберите структуру хранилища, которая может быть простой (избыточность данных отсутствует и данные разделяются между многими дисками), зеркальной (данные дублируются на дополнительных дисках) или с проверкой четности (данные распределены по нескольким дискам, но благодаря контролю четности защищены в случае отказа диска). До появления Storage Spaces эти конфигурации были известны как RAID 0, RAID 1 и RAID 5. Из-за различий в реализации эти обозначения не употребляются в Storage Spaces. Сделайте выбор и нажмите кнопку Next.
5. Выберите тип подготовки (Thin или Fixed), а затем нажмите кнопку Next.
6. Укажите размер диска. Если выбран тонкий тип, можно указать размер, превосходящий доступное физическое свободное пространство. Нажмите кнопку Next.
7. Отображается подтверждение; нажмите кнопку Create.
Созданный виртуальный диск будет доступен в Server Manager и оснастке Disk Management консоли MMC, где можно создать тома и отформатировать диск для файловой системы. Действительный размер пространства, используемого виртуальным диском в пуле носителей, виден в Server Manager (или в панели управления Storage Spaces на клиенте).
Управлять Storage Spaces можно и с помощью PowerShell. Например, создать новый пул носителей с тремя физическими дисками можно с использованием следующих команд:
$phyDisks = Get-PhysicalDisk $storSub = Get-StorageSubSystem New-StoragePool -FriendlyName «Stuff» -PhysicalDisks $phyDisks[0], - $phyDisks[1], $phyDisks[2] -StorageSubSystemFriendlyName $storSub.FriendlyName Команды для создания виртуальных дисков в пуле: New-VirtualDisk -StoragePoolFriendlyName «Stuff» -ResiliencySettingName Mirror -Size 10TB -Provisioningtype Thin -FriendlyName «Data1» New-VirtualDisk -StoragePoolFriendlyName «Stuff» -ResiliencySettingName Parity -Size 10TB -Provisioningtype Thin -FriendlyName «Data2»
Чтобы получить сведения о виртуальном диске, можно вывести результаты команды Get-VirtualDisk в виде списка. Например, можно задействовать следующую команду, чтобы получить информацию о числе копий данных для зеркала и состоянии операции:
PS C:\ > Get-VirtualDisk -FriendlyName Data1 | fl
На экране 3 показан небольшой фрагмент результатов.
|
Экран 3. Результат выполнения команды Get-VirtualDisk |
SMB: лучше чем раньше
В следующей статье я подробнее расскажу о новых протоколах хранения данных в Windows 8. Но чтобы показать огромные преимущества Server 2012 как платформы файловых служб, необходимо коротко рассказать об использовании новых томов, готовых к работе со Storage Spaces.
SMB уже давно используется в Windows в качестве предпочтительного протокола для дистанционного доступа к файлам. В Server 2012 появилась версия SMB 2.2. На первый взгляд, отличия от SMB 2.1 в Server 2008 невелики, но на самом деле как производительность, так и возможности протокола SMB значительно увеличились.
Общая производительность SMB существенно возросла, и доступ к данным через SMB практически равноценен прямому доступу к хранилищу. Такой доступ стал возможным благодаря нескольким изменениям, в том числе протоколу SMB Multi-Channel, обеспечивающему установку нескольких TCP-соединений через несколько сетевых адаптеров в одном сеансе SMB. Благодаря этому изменению становится возможным объединение пропускной способности адаптеров, поскольку удается использовать несколько сетевых адаптеров и процессоров для сетевой обработки, если задействованы функция ReceiveSide Scaling (RSS) и несколько сетевых адаптеров. Этот прием также срабатывает для совместной работы сетевой платы Server 2012 (да, в Server 2012 предусмотрено решение для совместной работы сетевой платы!). Также значительно повысилась доступность общих файловых ресурсов с отказоустойчивой кластеризацией в новом режиме Active-Active, включающем том CSV, доступный всем узлам кластера. Несколько узлов в кластере могут одновременно использовать CSV для важных рабочих нагрузок, таких как виртуальные машины Hyper-V, сохраненных на общем файловом ресурсе, или даже базы данных Microsoft SQL Server. Такое совместное использование файлов в режиме Active-Active исключает простои и потерю дескрипторов в случае переключения ресурсов.
Помимо SMB, Server 2012 располагает iSCSI в качестве ролевой службы, как часть File Services в службах File and Storage Services. После установки этой службы сервер Server 2012 может функционировать как цель iSCSI, обеспечивая доступ к хранилищу как с файлового уровня (с использованием SMB), так и блочного уровня (с использованием iSCSI). Цели iSCSI на сервере обычно представляют собой виртуальные жесткие диски (VHD), и возможна полная конфигурация доступа и служб проверки подлинности.
Проблема Chkdsk
Есть еще одна проблема, связанная с применением файловых служб Windows Server, в частности NTFS, с очень большими томами и множеством файлов. Для устранения некоторых неполадок необходимо воспользоваться утилитой Chkdsk. Chkdsk очень успешно выполняет свои функции, но на это уходит много времени: приходится проверить все содержимое диска, а затем внести исправления, которые (в силу особенностей устройства и быстродействия дисков) могут занять много времени (дни для больших томов со многими файлами). В результате том отключается от сети на время устранения неполадок. Наряду с соображениями по восстановлению данных после аварии, это одна из причин, по которой часто размеры томов NTFS ограничивают: чтобы Chkdsk могла завершить работу за приемлемый период (то есть несколько часов).
Новая файловая система Resilient File System (ReFS), которая начнет более широко использоваться в будущих версиях Windows, должна уменьшить вероятность порчи данных. Собственно NTFS становится более устойчивой, благодаря возможностям самовосстановления, но иногда приходится использовать Chkdsk. В Windows 8 раз и навсегда устранены все препятствия для запуска Chkdsk даже на самых больших томах.
Chkdsk работает медленно. Как уже отмечалось, программа анализирует весь диск и все его содержимое в поисках неисправностей, для чего требуется время. После того, как найдены неисправности (которые затрагивают очень малое число файлов), Chkdsk устраняет их. Операции устранения ошибок занимают очень мало времени (измеряемое секундами). Проблема в том, что Chkdsk переводит том в автономный режим, и его данные становятся недоступными на время проверки и устранения ошибок.
В Server 2012 процесс Chkdsk разделен на две части. В первой выполняется проверка диска и данных, поиск неисправностей. Если ошибка найдена, то она отмечается как требующая исправления. Существенное отличие заключается в том, что во время длительной проверки том остается в сети, так как на данном этапе исправления не вносятся. После завершения проверки, если нужно исправить ошибку, Chkdsk запускается в режиме spotfix, в котором том переводится в автономный режим для устранения неполадок. Том находится в автономном режиме лишь несколько секунд вместо часов или дней. Процесс проверки отделен от процесса исправления ошибок. Для запуска Chkdsk используются две команды. Первая занимает много времени, поскольку выполняет проверку, но не влияет на доступность тома. Вторая команда переводит том в автономный режим или вызывает перезагрузку.
Chkdsk /scan J: Chkdsk /spotfix J:
Можно использовать следующие команды PowerShell:
Repair-Volume -Scan D Repair-Volume -SpotFix D
Если применяется CSV, то простои при операции spotfix исключены. Дело в том, что CSV добавляет еще один промежуточный уровень между диском и способом доступа. Кроме того, CSV может приостановить операции ввода-вывода примерно на 20 секунд. Поэтому когда выполняется действие spotfix, CSV лишь приостанавливает ввода-вывод для тома, пока он переведен в автономный режим и подвергается исправлениям. Таким образом, пользователи тома CSV испытывают лишь легкую задержку доступа; им не приходится работать в автономном режиме или терять дескрипторы файлов.
Мощное решение хранения данных
Функциональность Storage Spaces в сочетании с iSCSI и SMB 2.2 обеспечивает мощное решение хранения данных как для серверов, так и для настольных компьютеров. А если принять во внимание наличие других технологий, таких как новая функция дедупликации данных, то область применения для платформы файловых служб Windows значительно расширяется.
Управление Windows Server 2012
«Возможности многих, простота одного» — таков подход к управлению в следующей версии Windows Server, Windows Server 2012. Даже в условиях виртуализации управление серверами выполняется в основном через подключение к операционной системе для управления удаленным рабочим столом, или поочередным дистанционным подключением к каждому серверу через Server Manager. В Server 2012 все операции управления можно и нужно выполнять дистанционно. После установки инструментария Remote Server Administration Tools for Server 2012 на клиентском компьютере Windows 8 запустите Server Manager и создайте группы серверов, которыми предстоит управлять как единым целым. С помощью представлений панели мониторинга (см. экран A) не составляет труда обнаружить неполадки на любом сервере в группе и одновременно произвести действия над несколькими серверами. Это не означает, что Server Manager нельзя запускать локально на серверах. Но по мере оптимизации процессов управление одиночными серверами становится не самым рациональным подходом. Все чаще вместо полных экземпляров используется Server Core, и приходится управлять дистанционно или задействовать Windows PowerShell для всех операций администрирования.
|
Экран A. Server Manager |
Доброго времени суток!
Сегодня хотелось бы немного поговорить о новой фиче в Windows Server 2012 — Storage Spaces или Пространства Данных.
По сути это некоторый механизм виртуализации дисковой подсистемы, который абстрагирует нас от физического уровня дисковой подсистемы. Однако, более интересным вариантом реализации данного механизма являются Кластеризованные Пространства Данных (Clustered Storage Spaces). Давайте более подробно рассмотрим способ настройки данного механизма.
Предварительные Требования
Для начала разберемся с теми необходимыми условиями нашего «дано» для осуществления процесса настройки.
Итак:
1) Для создания Storage Spaces в режиме Failover Cluster необходимо минимум 3 физических диска, объем которых не менее 4 Гб для каждого диска.
2) Все диски внутри Storage Pools должны обязательно быть Serial Attached SCSI (SAS) — независимого от того, будут ли эти диски напрямую подключены к системе, есть ли между ОС и дисками какая-либо прослойка в виде RAID-контроллеров и прочих дисковых подсистем или нет.
3) Все физические диски, которые будут состоять в кластеризованном пуле должны успешно пройти тест на валидацию в Failover Clustering. Для того чтобы это сделать необходимо открыть Failover Cluster Manager — cluadmin.msc и выбрать опцию Validate Cluster.
4) Кластеризованное пространство данных должно использовать фиксированный тип предоставления ресурсов (речь идет о типе vhd(x)-диска, который используется для Storage Spaces).
5) Поддерживаются простые (simple) и зеркальные (mirror) типы Storage Spaces — тип с контролем честности (parity) не поддерживается.
6) Диски которые используются в отказоустойчивом пуле должны быть выделенными. Это значит что они не могут быть использованы в составе других пулов, только в одном-единственном.
7) Storage spaces которые отформатированы в формате ReFS не могут быть добавлены в общий том кластера (CSV).
Как настроить — пошаговая инструкция
1) Добавьте роль File Services и инструментарий File Services Role Administration Tools на все узлы кластера в Failover Cluster.
2) Откройте консоль управления Failover Cluster Manager (cluadmin.msc).
3) В левой части панели раскройте пункт Storage, правый щелчок по Pools и выберите пункт создания нового пула New Storage Pool. Далее вы увидите мастер настройки New Storage Pool Wizard.
4) Задайте имя для Storage Pool и выберите дисковую подсистему доступную для кластера и нажмите Next.
5) Выберите физические диски в разделе Physical Disks для нового пула (помните про требования!!!) и подтвердите создание пула. Пул будет добавлен в кластер переведен в активное состояние (Online).
6) Следующий шаг — создание виртуального диска или пространства данных, который будет проассоциирован с нашим пулом. В Failover Cluster Manager выберите интересующий storage pool, который будет обеспечивать виртуальный диск. Правый щелчок и пункт New Virtual Disk — наш выбор!
7) Далее будет запущен мастер создания виртуального жесткого диска New Virtual Disk Wizard. Выберите сервер и пул для виртуального диска и нажмите Next. Обратите внимание на то, что в списке серверов будет указан узел, который размещает пул.
Укажите имя виртуального диска и его описание. Нажмите Next.
9) Выберите тип дисковый подсистемы — Простой (Simple) или Зеркальный (Mirror). Помним, что вариант Четность (Parity) не поддерживается для кластерной реализации.
10) Укажите размер виртуального диска и нажмите Next. После подтверждения, диск будет создан. Если вы не сняли галочку с чек-бокса, то далее будет запущен мастер создания тома (New Volume Wizard).
11) Задайте правильную связку «Сервер-Диск» для вашей конфигурации и нажмите Next.
12) Укажите размер тома и нажмите Next.
13) Также вы можете назначить букву для нового тома — далее нажмите Next.
14) Выберите тип файловой системы (мы помним что для нашей задачи подходит только NTFS) и нажмите Next для подтверждения параметров. Новый том будет создан поверх виртуального диска и предоставлен кластеру во владение.
15) Ну что же, наше кластерное пространство успешно создано! Теперь поверх него можно размещать кластеризованные нагрузки. Для того чтобы просмотреть свойства пула зайдите в Failover Cluster Manager.
Любителям PowerShell
Ну и на последок.
Все то же самое, но без GUI)))
1. Создать нового пространства
a. Выбрать физические диски и добавить в пул
$phydisk = Get-PhysicalDisk –CanPool $true | Where BusType -eq «SAS”
b. Получение дисковой подсистемы для пула
$stsubsys = Get-StorageSubsystem
c. Создание нового пула
$pool = New-StoragePool -FriendlyName TestPool -StorageSubsystemFriendlyName $stsubsys.FriendlyName -PhysicalDisks $phydisk -ProvisioningTypeDefault Fixed
d. Добавление диска для горячей замены (Hot Spare)
$hotSpareDisk = Get-PhysicalDisk –CanPool $true |Out-GridView -PassThru
Add-PhysicalDisk -StoragePoolFriendlyName TestPool -PhysicalDisks $hotSpareDisk -Usage HotSpare
2. Создание пространства данных поверх ранее созданного пула
a. $newSpace = New-VirtualDisk –StoragePoolFriendlyName TestPool –FriendlyName space1 -Size (1GB) -ResiliencySettingName Mirror
3. Инициализация, разметка и форматирование ранее созданного пространства данных
a. $spaceDisk = $newSpace | Get-Disk
b. Initialize-Disk -Number $spaceDisk.Number -PartitionStyle GPT
c. $partition = New-Partition -DiskNumber $spaceDisk.Number -DriveLetter $driveletter -size $spaceDisk.LargestFreeExtent
d. Format-Volume -Partition $partition -FileSystem NTFS
4. Добавление пространства данных в кластер
a. $space = Get-VirtualDisk -FriendlyName space1
b. Add-ClusterDisk $space
На этом вроде бы все. Остается добавить, что если вы хотите узнать побольше про новые возможности Windows Server 2012, то мы приглашаем всех на IT Camps, которые будут проходить в Москве. Расписание вы найдетездесь.
И не забывайте про очень полезный ресурс — виртуальную академию Майкрософт
Веселых ИТ-приключений!
С уважением,
Георгий А. Гаджиев
Эксперт по информационной инфраструктуре
Корпорация Майкрософт
Storage Spaces в Windows Server 2012 R2
Storage Spaces — технология виртуализации дискового пространства, которая впервые появилась в Microsoft Windows Server 2012. Storage Spaces является дальнейшим развитием механизма управления динамическими дисками в Windows. Основой является широко применяемая в решениях различных вендоров концепция дисковых пулов: отдельные физические диски сервера объединяются в один или несколько пулов, на базе которых создаются тома с различными уровнями производительности и отказоустойчивости. Использование Storage Spaces вместо аппаратного RAID-контроллера имеет ряд преимуществ и недостатков, которые будут подробно рассмотрены ниже.
Термины
- Storage pool (пул хранения) — набор физических дисков. В одном пуле могут находится диски, отличающиеся по объёму, производительности и интерфейсу подключения.
- Virtual disk (виртуальный диск) — термин для определения логический том в Storage Spaces. Для создания виртуального диска используется ёмкость выбранного дискового пула. При этом доступны несколько вариантов отказоустойчивости (их можно комбинировать в пределах одного пула), большинство из которых являются аналогами традиционных RAID-массивов различных уровней.
- Simple (простой) — аналог RAID-0. Поток данных разбивается на страйпы (по умолчанию размером в 256КиБ), которые распределяются по дискам в пуле. Виртуальный диск simple обеспечивает оптимальное использование ёмкости дисков и является самым производительным, но не предполагает никакой отказоустойчивости.
- Mirror (зеркальный): для каждого страйпа в зеркальном виртуальном диске записывается дополнительно одна (двойное зеркало, 2-way mirror) или две (тройное зеркало, 3-way mirror) копии. Аналогом в плане использования ёмкости дисков для двойного зеркала является RAID-10 (или 1E для нечётного числа дисков). Зеркальный ВД защищён от потери одного или двух дисков соответственно.
- Parity (виртуальный диск с контролем чётности): запись страйпов на диски чередуется с записью контрольной суммы. В Windows Server 2012 R2 появились диски с двойной чётностью (dual parity), в которых дополнительно пишется вторая контрольная сумма. Как и аналогичные RAID-5 и RAID-6 ВД с контролем чётности допускают потерю одного или двух дисков соответственно и обеспечивают минимальную потерю дискового пространства (-1 или -2 диска соответственно). Традиционным недостатком любых реализаций томов с контрольными суммами является низкая производительность на запись из-за необходимости модификации всего полного страйпа вместе с контрольными суммами. Отсутствие фиксированного размещения страйпов в Storage Spaces и RAM-кэша на контроллере (используются обычные HBA) усугубляет данную проблему, сравнение производительности ВД single parity и dual parity с RAID-5 и RAID-6 будет ниже.
- В Windows Server 2012 R2 появился функционал enclosure awareness: при размещении страйпов учитывается размещение дисков по различным дисковым полкам (SAS JBOD’ам) для получения отказоустойчивости на уровне дисковых полок. Например, ВД с двойным зеркалированием (2-way mirror), размещенный на трёх дисковых полках, допускает потерю одной дисковой полки целиком.
- Параллельность распределения страйпов в виртуальном диске определяется числом т.н. столбцов (columns). Для получения максимальной производительности число столбцов для виртуальных дисков с уровнем отказоустойчивости simple и parity должно соответствовать количеству физических дисков, но в настройках по умолчанию максимальное число столбцов, например, для simple равно 8. Это связано с особенностями механизма расширения ёмкости пула: для оптимального использования ёмкости число добавляемых дисков должно соответствовать максимальному числу столбцов, которое используется виртуальными дисками, а для зеркальных дисков — числу столбцов * числу копий страйпа (2 для 2-way mirror, 3 для 3-way mirror).
- Storage tiers (ярусное хранение данных). В Windows Server 2012 R2 появилась поддержка 2-ярусного (SSD и HDD) размещения данных на виртуальных дисках Storage Spaces. Приоретизация доступа к быстрому ярусу из SSD возможна путём управления ёмкостью (при создании ВД указываются комбинация объёмов SSD и HDD ярусов) либо на файловом уровне: необходимый файл можно привязать к SSD-ярусу для обеспечения гарантированной производительнности.
- Write-back cache (кэш на запись). Для компенсации низкой производительности на случайную запись небольшая часть SSD в пуле используется для кэширования записи. При этом оставшаяся часть ёмкости SSD может быть использована для ярусного хранения.
Ограничения
Количество дисков и ёмкость:
- До 240 дисков одном пуле (в Windows Server 2012R2, ранее — до 160-ти), но пулов может быть несколько.
- До 80-ти дисков в кластеризованном пуле, до 4-х пулов на кластер.
- До 64-х виртуальных дисков в одном пуле.
- Общая ёмкость пула — до 480ТиБ.
Столбцы и количество дисков в ВД:
Тип ВД | Минимальное число столбцов | Соотношение столбцы/диски | Минимальное число дисков | Максимальное число столбцов |
Simple (простой) | 1 | 1:1 | 1 | — |
Two-way mirror (двойное зеркало) | 1 | 1:2 | 2 | — |
Three-way mirror (тройное зеркало) | 1 | 1:3 | 5 | — |
Single parity (одиночная чётность) | 3 | 1:1 | 3 | 8 |
Dual parity (двойная чётность) | 7 | 1:1 | 7 | 17 |
Прочее
- Виртуальный диск Storage Spaces не может использоваться в качестве загрузочного.
- Для Storage Spaces можно использовать только диски с интерфейсами SAS, SATA и USB. Тома, презентуемые RAID-контроллерами; тома iSCSI, FC и прочие не поддерживаются.
Требования при использовании в кластере
- Нельзя использовать «тонкие» диски, допускается только фиксированное выделение ёмкости (fixed provisioning).
- Минимальное количество дисков для двойного зеркала — 3, для тройного зеркала — 5.
- В кластере можно использовать ВД с Parity, но только начиная с Windows Storage Server 2012 R2
- Используемые диски — только SAS с поддержкой SPC (SCSI persistent reservation). Многие ранние SAS-диски не поддердивают SPC. Аналогичное требование существует и для LSI Syncro CS.
Storage Spaces в кластерах
Одна из самых востребованных возможностей Storage Spaces — использование в failover-кластере Windows. Архитектура решения предельно проста: требуются диски SAS (см. дополнительные требования к дискам и организации томов), SAS JBOD (дисковая полка) с двумя SAS-экспандерами и минимум двумя разъемами для подключения к каждому из экспандеров (для двухузлового кластера). На серверах в качестве контроллеров используются обычные SAS HBA. Мы рекомендуем LSI (любые SAS2 и SAS3 HBA с внешними портами, например LSI 9207-8e), но можно использовать и Adaptec серий 6H и 7H.
Минимальной конфигурация выглядит так: два сервера, в каждом из них двухпортовый SAS HBA с подключением к 2-экспандерному SAS JBOD’у на базе корпуса Supermicro и SAS диски.
Для использования в качестве SAS JBOD’а можно использовать любой корпус Supermicro с двумя экспандерами (E26 или E2C в наименовании для SAS2 и SAS3 соответственно). Каждый экспандер в корпусах Supermicro имеет минимум два разъема x4 SAS (SFF-8087 или SFF-8643), которые можно использовать в качестве входов. При наличии третьего разъема его можно использовать для каскадирования (подключения дополнительных дисковых полок) или для построения топологии с тремя узлами в кластере.
Существуют варианты в одном корпусе, т.н. Cluster-in-a-box (CiB): готовые комплекты SSG-6037B-CIB032 и SSG-2027B-CIB020H на базе Supermicro Storage Bridge Bay с предустановленным Windows Storage Server 2012 R2 Standard, которые отлично подходят для построения отказоустойчивых файловых и/или iSCSI серверов:
Производительность
Решение на базе Storage Spaces может масштабироваться до более чем миллиона IOPS при использовании SSD и зеркальных томов. Но производительность на запись в Parity и Dual Parity по-прежнему оставляет желать лучшего, и такие конфигурации без write-back кэша на SSD подходят лишь для узкого круга задач с преимущественной нагрузкой на чтение.
Всестороннее исследование производительности Storage Spaces в разных конфигурациях было проведено компанией Fujitsu. В нашей тестовой лаборатории мы повторили некоторые из этих тестов, дополнив измерение IOPS и пропускной способности значениями средней и максимальной задержек.
Условия тестирования
- Два процессора E5640
- 8GB RAM
- Системная плата Supermicro X8DTL-iF
- Контроллер Adaptec 6805 (тесты с аппаратным RAID), кэш на чтение включен, кэш на запись включен
- Контроллер LSI 9211-8i (тесты со Storage Spaces, прошивка P19 IT
- Диски HGST HUA723030ALA640 (3ТБ 7200об/мин SATA3): 12шт для тестов RAID-10 vs Storage Spaces 2-way mirror и 13шт для тестов RAID-6 vs Storage Spaces dual parity
- 2шт SSD Intel 710 100ГБ для тестов с tiering’ом и write-back кэшом
- Microsoft Windows Server 2012 R2 Standard
- Для генерации нагрузки применялся FIO версии 2.1.12
Для тестирования использовался скрипт, реализующий серию 60-секундных раундов нагрузки с различными шаблонами и варьированием глубины очереди. Для определения окна установившегося состояния используется та же методика, что и в нашем пакете для тестирования SSD, разработанного в соответсвии со спецификацией SNIA Solid State Storage Performance Test Specification Enterprise v1.1. Для всех замеров использовался тестовый файл объёмом 100ГиБ, кроме тестов с ярусным хранением, где использовался файл объёмом 32ГиБ.
Для наглядности использовались шаблоны аналогичные использованным в тестах от Fujitsu:
Шаблон | Доступ | Чтение | Запись | Размер блока, КиБ |
File copy | случайный | 50% | 50% | 64 |
File server | случайный | 67% | 33% | 64 |
Database | случайный | 67% | 33% | 8 |
Streaming | последовательный | 100% | 0% | 64 |
Restore | последовательный | 0% | 100% | 64 |
Результаты
RAID-10 vs Storage Spaces 2-way mirror
Сравнивались: RAID-10 из 12-ти дисков на контроллере Adaptec 6805, 2-way mirror из 12-ти дисков (6 столбцов), 2-way mirror из 12-ти дисков с 2ГиБ write-back кэшом на двух SSD Intel 710 и ярусным хранением — SSD-tier’ом из тех же объёмом в 40ГБ (40ГБ SSD + 200ГБ HDD).
Шаблоны Database (IOPS), File copy, File Server (пропускная способность). Для шаблона Database используется логарифмическая шкала. По графикам видно, что 2-way mirror заметно уступает в производительности традиционному аппаратному RAID-10: в два с лишним раза на шаблонах Database и File copy, примерно в 1,5 раза на шаблоне File Server. Выравнивание результатов с ростом глубины очереди больше 16-ти нельзя рассматривать с точки зрения практического использования из-за неприемлемого роста задержек (графики ниже). Серьезный рост производительности обеспечивает использование SSD в качесте кэша на запись и быстрого яруса. Всего пара даже устаревших на сегодняшний день Intel 710 поднимает производительность на случайном доступе малыми блоками на порядок. Есть смысл использовать такое сочетание не только для OLTP, но и для нагруженных файловых серверов.
Шаблоны Database, File copy, File Server: средняя задержка. Никаких сюрпризов: Storage Spaces проигрывает, но естественно вырывается вперёд при добавлении SSD.
Шаблоны Database, File copy, File Server: максимальная задержка. При более высокой средней задержке Storage Spaces демонстрирует более стабильные значения — максимумы при небольшой глубине очереди меньше на шаблонах Database и File copy.
Шаблоны Streaming, Restore: пропускная способность. Зеркальный Storage Spaces не уступает аппаратному RAID при последовательном чтении, но существенно уступает при последовательной записи (шаблон Restore). Рост при запредельных значениях глубины очереди (>64) имеет значение только в синтетических тестах из-за большого значения задержки. Использование SSD в данном случае оказывается бесполезным из-за последовательного доступа и соотношения числа HDD и SSD. Обычные HDD, тем более в количестве 12-ти штук, отлично справляются с последовательной нагрузкой и оказываются существенно быстрее пары SSD.
Шаблоны Streaming, Restore: средняя задержка.
Шаблоны Streaming, Restore: максимальная задержка. Появляется хоть какая-то польза от SSD в виде стабилизации значения задержки..
RAID-6 vs Storage Spaces dual parity
Сравнивались: RAID-6 из 13-ти дисков на контроллере Adaptec 6805 и Dual Parity из 13-ти дисков (13 столбцов). К сожалению, у нас не оказалось минимально требуемого для использования в таком пуле количества SSD аналогичных использованным в первой серии тестов — для Dual Parity их нужно минимум три. Но соответствующее сравнение производительности с SSD tier’ом и кэшированием записи есть в вышеупомянутом исследовании Fujitsu.
Шаблоны Database (IOPS), File copy, File Server (пропускная способность). Storage Spaces с Dual Parity существенно отстаёт от аппаратного RAID во всех сценариях со случайным доступом. Это не удивительно с учётом того, что в распоряжении Adaptec 6805 есть 512МБ RAM-кэша, что позволяет существенно оптимизировать неудобный для RAID-6 доступ на случайную запись. Среди тестов, проведённых Fujitsu, есть вариант «RAID-6 8xHDD против Dual Parity 8xHDD + 1ГБ WB кэша на 3xSSD» — на всех трёх шаблонах производительность при добавлении WB-кэша на SSD не уступает аппаратному RAID, причём без использования ярусного хранения.
Шаблоны Database, File copy, File Server: средняя задержка.
Шаблоны Database, File copy, File Server: максимальная задержка. Ситуация аналогична предыдущей серии тестов с зеркальным Storage Spaces. При более высокой средней задержке Storage Spaces демонстрирует более стабильные значения — максимумы при небольшой глубине очереди меньше на шаблонах Database и File copy.
Шаблоны Streaming, Restore: пропускная способность. Dual Parity хорошо справляется с чтением, но с последовательной записью наблюдается давно известная катастрофическая ситуация с отставанием более чем на порядок. Использование даже большого по объёму write-back кэша (можно выделить диски целиком, присвоив диску Usage=Journal) на нескольких SSD может на какое-то время компенсировать относительно кратковременные нагрузки на запись, но при непрерывной записи (например, при использовании в системе видеонаблюдения) кэш рано или поздно будет заполнен.
Шаблоны Streaming, Restore: средняя задержка. Для шаблона Restore используется логарифмическая шкала.
Шаблоны Streaming, Restore: максимальная задержка (логарифмическая шкала).
Преимущества и недостатки Storage Spaces
Преимущества
- Снижение затрат на оборудование.
Для простых проектов с одиночным сервером: SAS HBA или чипсетный контроллер вместо аппаратного RAID-контроллера; возможность использовать недорогие диски SATA, формально не совместимые с аппаратными RAID (например, WD Red) вместо дисков nearline класса.
Для проектов с одиночной неотказоустойчивой СХД и большими требованиями к плотности размщениния дисков можно использовать такие платформы (72 диска в 4U, до 432ТБ сырой ёмкости при использовании 6ТБ дисков):
Для кластерных решений: простые дисковые полки (SAS JBOD’ы) вместо дорогостоящих СХД.
- Высокая производительность. Решение на базе Storage Spaces и SSD легко масштабируется по пропускной способности и IOPS путём добавления дисковых полок и HBA вплоть до нескольких миллионов IOPS и десятков ГБ/с. Сравнительно невысокая производительность обычных HDD может быть компенсирована применением ярусного хранения с размещением «горячих» данных на SSD и/или использованием SSD для кэширования операций записи.
Использование tiering’а (ярусного хранения) в сочетании с кэширование записи на SSD в Storage Spaces в большинстве случаев работает эффективнее, обходится дешевле и имеет большие пределы масштабирования в сравнении с реализацией SSD кэша на аппаратных RAID-контроллерах (например, LSI CacheCade или Adaptec MaxCache).
- Гибкое использование дискового пространства. В Storage Spaces можно комбинировать на одной дисковой группе (в одном пуле) тома с любым уровнем отказоустойчивости, при добавлении в пул SSD — с любым соотношением ёмкости между HDD- и SSD-ярусами и/или ёмкостью write-back кэша.
Для всех видов томов, за исключением использования в кластере, томов с ярусным хранением и томов Dual Parity поддерживается Thin Provisiong (тонкое выделение ресурсов) — это позволяет выделять ёмкость только по мере реального использования.
Недостатки
- Низкая производительность на запись при использовании обычных HDD, особенно в Parity и Dual Parity
Определенный тип нагрузки на запись (случайный доступ небольшими блоками, сосредоточенный в определённой области) может быть легко компенсирован добавлением SSD в качестве быстрого яруса и кэша на запись. Но продолжительную линейную нагрузку на запись компенсировать не получится, так что рекомендовать использование Storage Spaces, например, для видеонаоблюдения нельзя.
Для бюджетных кластерных решений под Windows (с похожей архитектурой на базе SAS JBOD) с высокой нагрузкой на запись мы советуем использовать вместо Storage Spaces специальные RAID-контроллеры LSI Syncro CS.
- Ограниченное масштабирование кластера. Для использования Storage Spaces в кластере необходим совместный доступ к дискам через дисковую полку с двумя SAS-экспандерами (SAS JBOD). SAS JBOD не является отдельной самостоятельной СХД, поэтому кластер с использованием Storage Spaces может состоять максимум из 4-х узлов (необходим специальный SAS JBOD с 4-мя входами на каждый экспандер), а в типовых конфигурациях с SAS JBOD Supermicro — максимом из 3-х узлов (или 2-х при необходимости подключать дополнительные JBOD’ы каскадом).
Советы по оптимальному использованию Storage Spaces
- При использовании в кластере используйте только SAS HDD и SSD, избегайте использования SATA дисков с дополнительными интерпозерами.
- При создании виртульных дисков учитывайте число т.н. столбцов. Данный параметр может очень сильно влиять на производительность. Нестандартное число столбцов можно задать только при использовании PowerShell. Использование большего числа столбцов повышает производительность, но накладывает ограничение на добавление дисков в пул.
Пример (виртуальный диск Dual Parity, 13 столбцов, 1000ГиБ, Fixed Provisioning):
New-VirtualDisk -StoragePoolFriendlyName Pool1 -FriendlyName VD02 -ResiliencySettingName Parity -NumberOfColumns 13 -PhysicalDiskRedundancy 2 -Size 1000GB -ProvisioningType Fixed
- Избегайте использования виртуальных дисков Parity и Dual Parity при наличии большой нагрузки на запись и/или случайного доступа малыми блоками.
- Одним из самых востребованных на сегодня решений является небольшой 2-узловой кластер для Hyper-V. Из-за конкурентного обращения нескольких ВМ достаточно высокий процент нагрузки на дисковую подсистему будет состоять из случайного доступа. При расчёте дисковой подсистемы планируйте использование зеркальных виртуальных дисков (2-way mirror — стандартное двойное зеркалирование, для особых сценариев можно использовать тройное), производительность Parity и Dual Parity будет достаточно только для архивных данных. Планируйте использование минимум двух SSD для tiering’а и кэширования записи.
- Избегайте добавления дисков с разной производительностью (например, HDD 7200 и 10000 об/мин) в общий пул либо создавайте виртуальные диски только из HDD с одинаковой производительностью, выбирая их вручную в GUI или через параметр
-PhysicalDisksToUse
при создании через PowerShell. Диски SSD должны быть либо вынесены в отдельный пул, либо использоваться совместно с HDD только в качестве быстрого яруса и/или write-back кэша.
Ссылки
- Часто задаваемые вопросы по Storage Spaces
- Обзор Storage Spaces
- Storage Cmdlets in Windows PowerShell
- Пример PowerShell скрипта для создания пула, ярусов и ВД
- Deploy Clustered Storage Spaces
- Корпуса Supermicro с SAS-экспандерами
- White Paper: Fujitsu Server PRIMERGY Windows Server 2012 R2 Storage Spaces Performance
- Storage Spaces — Designing for Performance
Server 2012 and 2012 R2 introduced the concept and tool of Windows “Storage Spaces”. To be frank, I was royally confused by what they were and what purpose they served until I sat through a 2012 R2 Jumpstart. Now I “see the light” so I hope to be able to share the light with you. (Oooo, I get to be evangelical about something Windows … imagine that!).
Storage Spaces, in a nutshell, is Microsoft’s method of giving you all of the benefits of of SAN’s (iSCSI, FibreChannel, you name it) without all of the attendant costs and headaches. When combined with other Microsoft technologies like SMB3 and clustering, Storage Spaces can give you an 800 pound gorilla from a storage perspective that you could NEVER have had before at such a low price point. The key to all of this is understanding what Storage Spaces are and how they work.
So, what IS a Storage Space??? A Storage Spaces is basically a “group” of storage that you put together based on directly-attached storage (DAS) that the Windows Server can see (preferably on a SAS connection but also works with SATA) that gets sliced up, provisioned for specific tasks and is then shared out. It really is no different in basic concept from what you do with SAN or NAS storage but it is all controlled from Windows and is specifically sliced up to support very specific Windows functions. The really big thing to get your head wrapped around is that you hand over RAW storage to Windows and let it manage things. In other words, if you have a server full of disks or that is connected to a box of external disks, you DON’T RAID the disks on the server controller EXCEPT for the twin disks you will use for the O/S drive! Storage Spaces will manage the RAID tasks for you except for the C: drive; in fact, Storage Spaces CANNOT be used for the O/S drive hence the requirement that you RAID your O/S disks at the controller level (if you want the redundancy and safety of RAID for your O/S drive – and you DO want this, don’t you?). You can add any disks you want into a Storage Space including disks on separate controllers as well as different sizes and types of disks including HDD’s and SSD’s.
2012 R2 Storage Spaces have been enhanced to provide “tiering” capabilities when you build a Storage Space with both HDD and SSD drives. The tiering capability will then manage “hot” and “cold” data automatically and move “hot” data to the SSD’s and “cold” data to the HDD’s, all “on the fly”. In fact, the tiering is smart enough to only move what is truly “hot” to the SSD’s meaning it is block oriented rather than file oriented. This means that if you have space from a Storage Space shared out via SMB3 and have Hyper-V VM’s VHD/VHDX stored on that share, only the actual “hot data” from the VHD/VHDX will be on the SSD! Therefore, a relatively small amount of SSD space can radically speed up a number of server operations as precious SSD space is not wasted on warm or cold data. This is pretty revolutionary stuff when you consider that a RAID card manufacturer like LSI will charge you anywhere from $5,000 to $10,000 for a controller card that does something somewhat similar. (There are a few caveats about choosing your disks types in this case, more on this later in the post).
When you add disks to a Storage Space there is no RAID just yet, the Storage Space just groups together the RAW disks. The Storage Space will list the aggregate of all the available disk space as the space you can play with without any sort of RAID applied. Therefore, if you add two 1TB drives to a Storage Space the available space will display as 2TB. This is also the case when you add in SSD’s as well as HDD’s; the Storage Space at this point is just the big “blob” of disk that you have given it. To use the space you need to create a “Virtual Disk”. When you create a virtual disk you define how much space you want, you define the RAID level you want (mirrored [RAID1], parity [RAID5] or simple [no RAID]) and, if using 2012 R2, you can also define if the Virtual Disk is tiered (if you have SSD’s and HDD’s). Once you do this the “carving up” of the space is performed and a useable “drive” of appropriate size and RAID type is available for sharing or for use on the local server. In theory and in practice, this Virtual Disk is not much different from the RAIDset or virtual disk that you can create at the controller level. The “goodness” comes from the ease at which you can build the virtual disk out of the various building blocks you supply (the disks and SSD’s) as well as from the tiering capability because all of this is “inbox” with Server 2012/2012 R2; there is nothing extra that has to be purchased. And given an appropriate amount of CPU and memory resources on the server, Storage Spaces can do quite a lot with disks and SSD’s attached to a cheap, dumb controller.
Let’s take a look at a Storage Space on my home lab boxen:
Just to refresh things, I have two whitebox servers each with an eval copy of Server 2012 R2 loaded. One of the servers has a bunch of SATA disks attached (a smallish boot disk and three 1TB drives) as well as a single SATA Crucial M500 SSD and it has the Storage role enabled.. This is the box that I am using to demo Storage spaces. The other box has a single 1TB boot drive and the Hyper-V role enabled and I am using it to host Hyper-V VM’s that will reside within the Storage Space on the first host and will be accessed over SMB3 links.
Here’s how the storage looks before I start to build a Storage Space:
The item in yellow is the SSD. At this point I have a 149GB boot drive as well as one of the 1TB drives split up into an E: and F: drive. The SSD and two of the 1TB drives are currently not used. Looking at Storage Pools I see the following:
Note the Storage Spaces and the term “Primordial”, this indicates that a Storage Space can be created as there is unallocated disk space available to be used in a Storage Space. In the Physical Disks pane you can see that there are 4 physical disks available. Disk0 is the SSD ad DIsks1 & 2 are the completely unused 1TB SATA drives (I know this from the previous screen). Disk4 has some unused space available but the disk is not completely unused. I’m now going to build out the Storage Space.
Right-click on the blue Primordial Pool and select New Pool:
Now you need to name the pool and give it a description:
Now you add the disks:
Note how the system knows the MEDIA TYPE and also note the total capacity. As I stated earlier, this is simply an aggregate total of all the disk space that is being added to the pool, it is not necessarily the amount of disk space that will be made available for use.
At this point the Storage Pool is created as can now be seen on the Storage Pool pane:
Note the Capacity and the Free Space for the pool are both 1.93TB and there is nothing showing as allocated. Now we have to “carve out” a Virtual Disk out of the space in order to be able to create a drive that can be shared out. To to this we have to run the New Virtual Disk Wizard from the Tasks drop down in the Virtual DIsks pane:
You need to highlight the desired Storage Pool (I only have one but there could be many to choose from):
This next screen is where things get “interesting”. I can name the disk and give it a description AND I can choose to create “Storage Tiers”. For the sake of example I’m going to go through this piece twice as there is a very important concept that comes into play at this point that you will need to grasp in order to understand what happens in the next few steps. The thing to remember is that when you create a virtual disk you are essentially creating a RAIDset from the building blocks in the storage pool itself. You can create a “Simple” layout meaning data is striped across disks (join them together for more disk space) but without ANY redundancy, You can create a Mirror (two-way meaning you need matching pairs of disks or three-way meaning matching trios of disk) which gives you redundancy in case of a disk failure (think RAID1). Finally, you can create a Parity set using at least three disks (think RAID5). The bigger thing to remember is that as soon as you add tiering into the mix you need to ensure you have enough matching SSD’s to fit the RAID model you are building. In other words, if you are going to mirror two HDD’s and you want to tier them then you will need to have two matching SSD’s in the storage pool that are selectable in order to be able to build the tiered mirror. You cannot build a tiered mirror or parity set with only a single SSD. To see what I mean let’s go through two examples.
Example 1: I will build a 1TB mirror out of my current storage pool that is NOT tiered
On the following screen I can provision space as THIN or FIXED. I won’t go into detail here as it is a whole other discussion but for this example I will pick Fixed.
If you are eagle-eyed you’ll note that I created the space smaller than what is actually available. This is so there is room available for a write-back cache as noted on the screen. I found by trial and error that it is a good idea to leave space for the cache.
OK, I cancelled the Volume Creation wizard. Now the Storage Pool pane shows this:
I now have a 900GB mirror that I can do something with, I’m going to delete the mirror and rerun the above steps and add in tiering. Keeping in mind my note about matching disk availability, given that I have 2 1TB HDD’s and a single SSD, what do you think I’ll be able to create? Let’s see …
Lots happening here! The system is only listing SImple and Mirror as my choices and it won’t let me create a Mirror? Why not?? Because I don’t have multiple SSD’s of matching capacity in the Pool! While I have the required number of HDD’s I’m woefully short on SSD’s so the system has blocked me. If I switch to a Simple layout (no redundancy) I should be able to proceed.
Now the next screen gets interesting!
Wow! This is cool! I can set space used for each tier size. Keep in mind that you are not ADDING SSD space to an overall volume size, you are setting the amount of SSD space to use for “hot data” within the tier. In other words, the Standard Tier (HDD) size will actually determine the overall size of the volume that you are creating. So, If you want a 1600GB useable volume (remember to save room for the cache) then you set that on the HDD tier. I am going to set 109GB on SSD and 1600GB on HDD:
And now I see I have a tiered disk:
And while it does list the Allocated space as 1.67TB the actual useable space will be 1.56TB (the HDD space) as the SSD is strictly for HOT data within the disk. So, allocated space is not the same as useable space.
Would I use a Simple tiered disk like this in production? No way! It could break far too easily (no redundancy). However, it is good enough for lab use and I will blog some more about the whole hot/cold data premise behind the tiering in follow up posts. Also, is it a good idea to mix super fast SSD’s in a tier with relatively slow 7200 RPM SATA disks? In terms of a production system, probably not, as the performance of the tier will be decidedly unbalanced. In a production environment you would probably want nothing slower than 10,000RPM SAS HDD’s mixed in your tier with your SSD’s in order to have a reasonable balance of performance. However, for a lab test system my tier is “good enough” to prove out the concept.
I hope this post helps with your basic understanding of Storage Spaces in Sever 2012/2012 R2. As usual, I’m only scratching the surface but I hope it helps you to see the possibilities of what you can do with this “in box” feature of Server 2012/2012 R2.
On Windows Server 2012, you can create storage pools, virtual disks, and finally volumes.
Looking more closely, you will find that it’s a software RAID system that allows you to :
- secure the stored data (avoiding data loss and ensuring their integrity)
- increase the performance of your file server
Warning : as mentioned before, this will be a software RAID and not a hardware RAID (as it’s possible to do with a real RAID controller, for example).
In this tutorial, we will explain how to create the main RAID levels :
- RAID 0 : better performance, but no fault tolerance (strongly discouraged)
- RAID 1 : data security, but no change in performance
- RAID 5 : allows you to combine security and performance (requires at least 3 disks)
- Storage pools
- Create a RAID 0
- New storage pool
- New virtual disk
- New volume
- Add a volume to an existing virtual disk
- Create a RAID 1
- New storage pool
- New virtual disk
- New volume
- Failure test
- RAID 1 repair
- Create a RAID 5
- New storage pool
- New virtual disk
- New volume
- Failure test
- Repair a RAID 5
- Detailed overview of your server’s storage
1. Storage pools
To get started, in the Server Manager, click «File and Storage Services».
Then, click on «Storage Pools».
As mentioned earlier, you will be able to create :
- storage pools : physical disk groups (your physical hard disks)
- virtual disks : these will appear as simple hard disks in Windows disk management.
- volumes : these are simply partitions that you can format in NTFS or ReFS (a new file system that allows the repair of the file system without stopping the system)
For now, we see a storage pool named «Primordial» which is of type «Available Disks».
In other words, it doesn’t exist. It’s simply Windows Server that tells you that you have 2 physical hard drives that are not yet used by your server.
2. Create a RAID 0
To begin, we will create a RAID 0 that increases performance for data storage, but it’s strongly discouraged for the security of your data.
Indeed, when you store data on a RAID 0, the system will store :
- half of each data on the 1st hard drive
- and the other half on the 2nd hard drive
If you lose a hard drive, you will lose ALL data. Which is logical since you will only have half of each file left.
2.1. New storage pool
To start, you must create a storage pool in which you add 2 disks.
The new storage pool wizard is displayed.
Specify a name for the storage pool.
When you add a physical disk to a storage pool, you can choose the type of assignment :
- Automatic : the disk will be directly used by Windows Server
- Hot Spare : the disk will be used only when one of the disks fails. This drive will be considered as a spare drive (which should tell you something if you already know about RAID).
- Manual (2012 R2 only) : the disk will only be assigned to this pool and will not be used.
In our case, we will use the default option : Automatic.
Confirm the creation of this pool.
Once the pool has been created, chek the «Create a virtual disk when the wizard closes» box.
2.2. New virtual disk
Now, we will create a virtual disk.
Select your storage pool and click Next.
Provide a name for your virtual disk.
In our case, we specify «RAID 0» to make it clearer in the tutorial.
To create a «RAID 0» virtual disk, simply choose the «Simple» storage layout.
As indicated in its description, this type of layout divides the data to store the different parts on the different physical hard disks used.
Which corresponds to the RAID 0 level.
For the provisioning type, you will have the choice between :
- Thin : allows you to create a virtual disk that will grow according to the data you will store there
- Fixed : allows you to allocate the necessary space directly according to the maximum size of your virtual disk. This improves the performance of your virtual disk.
For now, we will create a virtual disk that will be the same size as our storage pool.
For this, we choose : Maximum size.
Confirm the creation of your virtual disk.
After the virtual disk is created, check the «Create a volume when the wizard closes» box and click Close.
2.3. New volume
Finally, we will create a new volume on our virtual disk.
In other words, we will create our first partition on this virtual disk.
Select your virtual disk and click Next.
For RAID 0, we will simulate a virtual machine storage and ISO files to install various operating systems (such as Windows 7, Debian, …).
In short, as you will understand, we will need a lot of space for virtual machines and little for ISO files.
For our virtual machines, we will use 800 GB of the 998 GB available on this virtual disk.
By default, a letter will be assigned to this volume (partition).
As expected, we have the opportunity to choose :
- the file system type : NTFS or ReFS
- the allocation unit size
- the name of the volume : in our case : VMs.
Confirm the creation of this first volume.
When the volume is created, click Close.
2.4. Add a volume to an existing virtual disk
In storage pools, if you select your storage pool, you will only see the virtual disks and physical disks that it’s composed of.
But, you will not find the option to add a new volume.
To add a new volume to your virtual disk, you will need to click on «Disks» on the left side and select your virtual disk from the list.
Then, in the «Volumes» block, click : Tasks -> New Volume.
Note : the first disk (numbered 0) on the image below corresponding to the physical disk where Windows Server 2012 is installed.
Click Next.
Leave the default value to use the remaining space.
Windows Server will also assign him a letter.
As before, we can choose the file system, as well as the name to use.
In this case, it will be : ISOs and data.
Click Create to create this second volume.
Once the volume created, click Close.
Now, our «RAID 0» virtual disk has 2 volumes (partitions).
As expected, the created volumes (partitions) appear on Windows.
And we can of course store there data.
Finally, since RAID 0 doesn’t provide any fault tolerance, if a hard drive fails (or is unplugged), the virtual disk will become inaccessible.
As well as the associated data.
In addition, it isn’t possible to recreate the data that was present on the defective hard drive.