Перейти к содержимому

Storage pool что это

  • автор:

Windows Storage Spaces для начинающих

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

Во многих дата-центрах и серверных фермах для хранения данных используются HDD и SSD. Статистика, однако, сообщает о том, что после трёх лет работы 10% дисков становятся негодными.

Конечно, те организации, которые заботятся о целостности и сохранности своих данных, держат руку на пульсе, а также отслеживают и другие факторы риска — будь то человеческий фактор, железо или софт. И тут тем, кто работает с Windows-инфраструктурой, могут помочь Windows Storage Spaces. Ведь их RAID-подобная функциональность (то, что мы видим в File Explorer как виртуальные диски) весьма полезна в деле обеспечения резерва мощностей хранения.

Гибкие возможности масштабирования тоже привлекательны: можно объединить 3 и более драйвов в единый сторадж-пул и затем формировать на его основе “стораджики” нужного размера. А поскольку при работе с пулом формируются и сохраняются дополнительные копии для ваших данных, то проблемы с одним из дисков не приведут к потере всего и вся. А если понадобилось больше места? Просто добавь воды еще дисков в пул.

Storage Spaces для Windows 10

— Он забирается на самую высокую сосну и оттуда планирует.

— Ага, простите, что планирует?

— Он прыгает и планирует.

(“День радио”)

Даже если сценарий развертывания, который вы хотите воплотить, входит в число самых популярных, и инструкция к нему коротка и вроде даже сходу понятна, этап подготовки и планирования все равно никто не отменял. Итак:

Если вы используете дисковые пространства Storage Spaces на машине с Windows 10, то рекомендуется обеспечить наличие минимум 2 дисков помимо системного. Эти диски могут быть как встроенными, так и внешними. Поддерживаются SSD; можно комбинировать SATA, USB и SAS.

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

Simple (простой) — требует наличия минимум двух дисков. Хоть этот метод и дает хорошую производительность, но ничем вам не поможет в случае отказа. Его можно использовать, например, если вы настраиваете storage space для хранения временных данных (например, файлов видео-рендеринга, файлов-черновиков в графических редакторах, и так далее).

Mirror (зеркальный) — позволяет сохранять несколько копий данных на случай отказа. Так, Two-way mirror spaces хранят две копии данных, и с ними вы переживете отказ одного из дисков. Для их организации потребуется минимум два диска. Three-way mirror spaces позволят пережить отказ двух дисков, а для их организации потребуется минимум пять. Зато хранить в таких storage spaces можно самые разнообразные данные.

Parity (с контролем четности) — рекомендуется для хранения архивных и стриминговых данных. Хранят несколько копий на случай отказа. Если вы хотите обеспечить отказоустойчивость в случае проблемы с одним диском, то в сценарии с Parity spaces вам понадобится минимум три диска, а на случай проблемы с двумя — минимум семь дисков.

После того, как вы все рассчитали и подготовили, можно организовать собственно Storage Spaces. Для этого в Windows 10 нужно выполнить вот такие шаги:

Проверить, что диски, которые вы планируете задействовать, у вас подключены.

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

Для простоты в поле поиска в панели задач вводим Storage Spaces и из полученного списка выбираем Storage Spaces.

Кликаем Create a new pool and storage space.

Выберем нужные нам диски и затем кликнем Сreate new storage pool.

Указываем имя, буквенное обозначение и файловую систему для нового сторадж пула.

На случай сбоя рекомендуется выбрать метод обеспечения отказоустойчивости (Resiliency) как одну из следующих опций: Two-way mirror, Three-way mirror или Parity.

Важно! Помните про количество дисков, которые потребуются в каждом из указанных вариантов, о чем мы говорили выше. Если, допустим, вы предпочтете Two-way mirror, то для нового storage space будет создаваться две копии данных. Так что для такого сценария понадобится минимум два диска (помимо системного).

Затем задайте максимальный размер стораджа для Storage Spaces.

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

Когда с настройками покончено, нажимаем Create storage space.

Оптимизация работы

Рекомендуется своевременно оптимизировать работу с дисками. Вот что советует делать Microsoft:

При добавлении новых дисков в существующий пул рекомендуется оптимизировать использование диска. При этом некоторые данные будут перемещены на новый диск, чтобы оптимизировать использование емкости пула. Это стандартное действие при добавлении нового диска в обновленный пул в Windows 10: флажок Optimize to spread existing data across all drives будет установлен по умолчанию.

Однако если вы сняли этот флажок или добавили диски до обновления пула, вам нужно вручную оптимизировать использование диска. Для этого в поле поиска на панели задач введите Storage Spaces, выберите Storage Spaces из списка результатов поиска, а затем щелкните Optimize drive usage.

Автономный сервер

Если у вас один отдельно взятый сервер, то для настройки на нем дисковых пространств Storage Spaces есть подробная инструкция от Microsoft, на русском языке и даже с картинкой. Storage Spaces поддерживаются для Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 и Windows Server 2012.

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

На базе сторадж-пула можно создать несколько виртуальных дисков. (Windows идентифицирует их как обычные диски, которые могут быть отформатированы.)

Для их создания можно использовать File and Storage Services; в настройках можно указать thin provisioning либо fixed provisioning, а также размер. Дополнительные настройки можно задать с помощью команд PowerShell.

Кластеры и Storage Spaces Direct

Если вы работаете с кластером и используете для каждой его ноды СХД с прямым подключением (DAS), то Storage Spaces Direct могут оказаться вполне разумным и эффективным вариантом по сравнению с NAS и SAN. Storage Spaces Direct отличаются хорошей масштабируемостью и возможностями управления. Технология Storage Spaces работает наряду с кэшированием, RDMA и поддержкой СХД для разных уровней (tiers). Помимо этого, поддерживаются диски NVMe.

Storage Spaces Direct поддерживаются для Windows Server 2019 Datacenter, 2016 Datacenter и Insider Preview Builds. Можно создать конвергентное или гипер-конвергентное пространство.

Вкратце, основные этапы развертывания Storage Spaces Direct — это:

Развертывание Windows Server — установка и настройка ОС, добавление доменных учеток, настройка ролей и необходимых фич.

Настройка сети (этот этап не относится к сценарию развертывания Storage Spaces Direct на виртуальных машинах).

Конфигурация собственно Storage Spaces Direct — очистка дисков и разделов, настройка кластеров, настройка Storage Spaces Direct, создание томов, развертывание необходимых виртуальных машин.

Для конвергентной инфраструктуры — развертывание масштабируемых файловых серверов, настройка ролей, создание шар, настройка ограниченного делегирования Kerberos.

Все эти этапы очень подробно описаны здесь (на русском языке).

Возможен сценарий, при котором все физические диски содержатся в enclosures с общим доступом — это т.н. JBOD enclosure. Такая инфраструктура должна соответствовать требованиям Windows Certification, а также включать в себя идентичные SAS HBA (имеющие сертификацию Storage Spaces). Такие диски в кластере не должны иметь встроенную функциональность RAID.

Storage Spaces vs. RAID

Как водится, у Windows Storage Spaces и RAID есть свои преимущества и свои недостатки. Об этом уже написана не одна сотня строк (например, здесь). Вкратце:

У RAID есть два аспекта: аппаратный и программный — а Windows Storage Spaces, так сказать, является software-driven, настраивается целиком через графический интерфейс или командную строку.

Для программных RAID, как и для Storage Spaces отсутствуют ограничения по числу сокетов (у традиционных RAID они есть).

ОС по-разному “видит” диски в RAID и в Storage Spaces — диски RAID предстают как цельный юнит (даже если у физических дисков разная емкость), что может приводить к неоптимальному использованию свободного пространства. Для Storage Spaces такой проблемы нет, так как есть доступ к отдельным дискам.

Если говорить о производительности, то RAID 0 превосходит Storage Spaces с режимом simple mode примерно вдвое. Однако на скоростях 4K они уже сравнимы. RAID 1 быстрее выполняет последовательные операции чтения, зато Storage Spaces в режиме two-way mirror mode вдвое быстрее выполняет операции записи, нежели RAID 1. Что касается hardware RAID, то операции чтения и записи для них гораздо быстрее, чем Storage Spaces в режиме parity mode.

Ускоряем HDD или использование Windows Storage Spaces для создания tiered drives (иерархичных дисков)

ssd, hdd

SSD-диски все еще дороги. Цена на них постепенно понижается, но на единицу хранения они пока еще не могут конкурировать с традиционными HDD. Последние, кстати, вовсе не собираются сдавать свои позиции. И дело не только во все увеличивающихся объемах хранения и снижающейся стоимостью записи на HDD. Традиционные HDD обеспечивают куда большую надежность хранения данных на протяжении длительного времени и существенно большую износостойкость в плане записи. И эти свойства HDD появились не вчера, их планомерно развивали в течение десятилетий. К надежности хранения данных на HDD можно привести множество примеров, когда в различных НИИ и замшелых банках все еще используются жесткие диски выпущенные десятки лет тому назад. И при этом они полностью сохранили свою работоспособность. Кстати, ленточные накопители тоже остались у дел, в тех же банках, финансовых компаниях, замшелых НИИ. Магнитные ленты отлично выполняют функции по архивному хранению информации, например, резервных копий и по самой минимальной стоимости при высочайшей надежности.

Но есть у HDD и неоспоримые недостатки. Это все, что связано со временем доступа и вообще скоростью чтения и записи данных. Конечно, HDD почти что космические ракеты, если сравнить их с решениями на магнитной ленте, но скорости HDD, в нынешних реалиях, все равно недостаточно. По сути, это самый медленный компонент современного ПК. Именно по этой причине на свет появились SSD. Они лишены механической части и соответственно недостатков, связанных со временем доступа и скоростями чтения/записи. В SSD все эти операции происходят «мгновенно» и с максимально доступной производительностью.

А можно ли совместить достоинства HDD и SSD дабы нивелировать их недостатки? Как оказывается можно. Еще до появления SSD обычные HDD уже оснащались крупными буферами из оперативной памяти для ускорения операций чтения-записи. Данная технология помогала лишь отчасти, в основном для операций связанных с записью данных, либо на очень медленных компьютерах, где интерфейс не мог переварить поставляемый жестким диском объем данных. Чуть позже появились комбинации, когда HDD дооснащался еще и небольшим встроенным SSD. SSD-часть в этом случае использовалась как SSD-кэш. Большой популярности подобные решения не нашли, так как объемы SSD встраивались небольшие, а износу они подвергались существенному. Но производители пошли дальше.

На сцену вышла концепция, декларирующая ранжирование данных на дисковом массиве по важности быстрого доступа к ним. Ведь какие-то фотографии с позапрошлогоднего отпуска, можно вполне себе хранить хоть на ленте, а вот файл динамичной игры должен подгружать как можно быстрее. В этой стезе засветилась корпорация Intel, разработавшая совместно с Micron новый вид памяти для твердотельных дисков. Для конечного потребителя новинка предстала под торговой маркой Optane и предназначалась как раз для ускорения операций ввода-вывода традиционных HDD. Иначе работала как «умный» SSD-кэш. Да, кстати, объемы Optane-дисков, как правило, были небольшими, а стоимость соответствовала амбициям электронных гигантов.

Но технологии не стоят на месте, а неумолимо приближаются к технологической сингулярности. Усилиями многих производителей SSD-диски становятся все дешевле и быстрее. И вот в некоторых компьютерах есть только просто SSD-диск и больше ничего. Но, а в мощных рабочих станциях, игровых ПК, да и в большинстве ПК, что стоят на производствах, в офисах и просто по домам разнокалиберных граждан, по-прежнему присутствуют HDD. И вроде бы компьютеры не старые, вполне рабочие, но дисковая подсистема основанная на HDD оставляет желать лучшего, а выкинуть вполне еще рабочий HDD на терабайт, ну просто, рука не поднимается. Но и тут есть решение. Можно использовать технологию по созданию автоматических tiered drives (или иерархичных дисков, лучшего русскоязычного термина я не подобрал). В основе технологии tiered drives лежит объединение быстрых, но небольших SSD-дисков, и медленных, но надежных и объемных HDD-дисков, в один виртуальный пул, тем самым устраняя недостатки каждой из технологий хранения данных.

Автоматичность в случае с tiered drivers означает, что система сама, самостоятельно, без всякого AI, SMS и регистраций, будет определять, какие данные следует помещать на быструю часть (SSD), а какие разумнее оставить на HDD. В некоторых реализациях можно дополнительно «привязывать» те или иные файлы к быстрой части виртуального пула или медленного. Кроме того, некоторые производители дополнительно оснащают свои программные решения по организации tiered drives еще и дополнительным кэшем в оперативной памяти, для еще большей производительности. Но, прежде чем перейти к разбору программным продуктов «без SMS и регистраций», необходимо разобраться в отличиях между SSD-cache, RAID-массивами и tiered drives.

SSD-cache – простой механизм по прозрачному кэшированию данных на быстром SSD-диске перед их записью на медленный HDD-диск, либо аналогичное кэширование данных при чтении. Все зависит от реализации. Технология интересная, но особого признания не нашла в силу очень узкой специализации. Небольшое количество данных она запишет быстро, а вот с чем покрупнее никакого преимущества уже не будет.

RAID-массив — механизм объединения нескольких физических дисков в единый пул. Способ объединения зависит от потребности, но в основном используется в промышленных системах хранения данных, где требуется высокая надежность хранения и низкий процент отказов с нулевым простоем. Как правило в массив объединяются одинаковые по характеристикам диски.

Tiered drive — механизм разделения данных на требующих и не требующих быстрого доступа с соответствующим местом хранения на SSD или HDD.

AMD StoreMI

Мое первое знакомство с tiered drives началось с AMD StoreMI. Еще с первой версии, перелицованной enmotus FuzeDrive. Перейдя с Intel на платформу AMD, я с удовольствием обнаружил, что весь мой парк старых HDD можно безболезненно использовать с моим новым ПК, а заодно и ускорить их до самого доступного максимума при помощи освободившихся SATA SSD (а основными рабочими дисками у меня стали NVME PCI накопители).

Первая версия StoreMI имела существенные ограничения, так, например, можно было использовать для создания tiered drive SSD размером не более 256 Гб. Хорошо, что у меня был именно такой диск. Система tiered drive собралась оперативно, скорость работы с HDD выросла до адекватных показаний, все бегало и приятно урчало. Но локальный праздник жизни был омрачен двумя факторами:

  1. Система падала из-за StoreMI при высокой нагрузке. Например, при копировании данных с HDD на tiered drive от StoreMI.
  2. Спустя некоторое время AMD убрала StoreMI первой версии из открытого доступа, а никакой замены не предложила. Другими словами, если вам потребовалось восстановить систему, в которой присутствует tiered drive StoreMI, то все данные вы потеряете на этом диске, так как подключиться к нему никак.

В качестве дополнительного удобства я несколько раз получал заблокированный tiered drive, так как StoreMI не могла проверить свою лицензию. Ну и полностью отсутствующая поддержка по продукту означала, что использовать его можно только на свой страх и риск. Из плюсов, что были в первой версии StoreMI, можно отметить лишь наличие дополнительно кэша в оперативной памяти, что несколько ускоряло работу всей связки.

Чуть позже AMD выпустила вторую версию StoreMI уже без всяких ограничений на объемы дисков и прочей ереси в виде лицензий. Вторая версия оказалась несовместимой с первой. Провести апгрейд — нельзя. По всей видимости это связано с тем, что вторая версия StoreMI уже была написана без специалистов enmotus. Интерфейс хоть и стал чуть более лицеприятным, но все также отдавал Delphi.

Вторую версию StoreMI я установил на свой второй компьютер, первую установить я на него не успел, апгрейд закончился позже, чем появилась обновленная StoreMI. Установку удалось завершить далеко не с первой попытки. Пришлось ждать около полугода, пока появятся исправления и StoreMI наконец-то заработает и на моем втором ПК.

Вообще, драйвера дисковых подсистем штука до крайности важная. Они не должны содержать никаких ошибок, а их код должен быть «вылизан» программистами и тестировщиками до последнего байта. Ведь малейшая, даже самая крохотная ошибка в программном обеспечении дисковой подсистемы способна привести к краху ценных данных. Ваших данных. И именно по этой причине, мы меняем программное обеспечение как перчатки, но все еще продолжаем работать с файловыми системами, разработанными в прошлом веке. Лучше оставаться на проверенной системе, хоть и чуть медленнее, чем терять свои данные.

Но вернемся к StoreMI второй версии. Через некоторое время использования я с удивлением заметил, что некоторые фотографии, которые я синхронизирую с компьютером оказываются испорченными. Хотя на всех других устройствах они открываются и читаются без особых проблем. Фотографии, как не трудно догадаться, хранятся как раз на диске StoreMI. Дабы отвести напрасные мысли о ненадежности второй версии StoreMI, я решил переустановить Windows.

Но, после первой же перезагрузки после установки второй версии StoreMI (и даже без создания tiered drive) моя установка Windows становилась полностью неработоспособной. UEFI (BIOS) напрочь отказывался видеть загрузочный диск, а инсталляционная утилита Windows не обнаруживала никаких признаков установленной операционки для восстановления. Проведя подряд 7 переустановок операционной системы, я окончательно убедился, что проблема как раз в StoreMI от AMD.

В общем, пришлось идти, искать альтернативу. Ведь к хорошему быстро привыкаешь.

enmotus FuzeDrive

Естественным первым порывом стало желание посмотреть на родную утилиту для организации tiered drives от производителя первой версии StoreMI. Ведь она худо, но все же продолжала работать, тянуть мой домашний комп.

Неоспоримым преимуществом FuzeDrive является наличие RAM-кэша, который дополнительно ускоряет операции записи в системе. Данные сначала записываются в быструю оперативную память, а потом уже отправляются на tiered-диск по мере возможности. Но мой опыт работы с первой версией StoreMI, проблемы с лицензией и аварийные остановки операционные системы при высокой нагрузке на дисковую подсистему несколько охладили мой пыл в отношении FuzeDrive. Пошли искать альтернативу дальше.

ROMEX PrimoCache

Альтернативой FuzeDrive для Windows можно считать PrimoCache от ROMEX. Утилита PrimoCache — применяется как продвинутое решение для кэширования данных при чтении или записи с медленных устройств. В качестве быстрых устройств, используемых для кэширования, в PrimoCache можно применять ОЗУ, SSD-диск и даже Flash-диски. Кстати, в Windows уже есть технология по ускорению медленных накопителей за счет использования кэширования на USB Flash-дисках. Но решение ReadyBoost, опять же, не стало популярным. Ускорение за счет USB-флешки медленного HDD, установленного в медленном компьютере, обычно приводило к еще большим тормозам, так как на обработку данных с Flash-дисков тратились дополнительные ресурсы, которых и так было мало.

Но вернемся к PromiCache. Тут следует учитывать, что это именно кэш, т.к. данные всегда проходят через «быстрое» устройство.

Благодаря такому активному кэшированию при помощи PrimoCache можно получать фантастические скорости общения с жестким диском. Еще одним преимуществом PrimoCache можно считать отсутствие необходимости в переносе данных с «медленного» носителя перед включением его кэширования. Т.е. установка утилиты — максимально безопасна. Кстати, PrimoCache можно скачать на попробовать, в приложении присутствует «триальный» период.

К сожалению, никакой функции по ранжированию данных по иерархии хранения в PrimoCache нет, поэтому ее не следует рассматривать как прямого конкурента StoreMI или FuzeDrive.

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

Windows Storage Spaces

Служба Storage Spaces появилась в Windows Server 2012 как способ объединения физических дисков в единые пулы, на основе которых могут быть организованы виртуальные диски. Данная же технология мигрировала с Windows Server 2012 и на Windows 8.

Изначально в Storage Spaces были доступны следующие варианты объединения:

  • Simple — дисковое пространство всех дисков объединяется в одно.
  • Two-way mirror — обычное зеркалирование данных по дискам, всего хранится две копии.

Получался эдакий аналог программного RAID встроенного в операционную систему. Позже, с выходом Windows Server 2012 R2 появились дополнительные виды объединения дисков:

  • Parity — хранение данных с избыточной информацией необходимой для восстановления. Данные «размазываются» сразу по нескольким дискам и в случае выхода из строя части дисков, данные все равно можно будет восстановить благодаря избыточности.
  • Tiered — как раз интересующий нас случай с поддержкой иерархического хранения и сегрегации данных на быстрые и медленные носители.

storage spaces

Состояние дисковой подсистемы после создания Tiered Drive из двух дисков

Последняя редакция также была перенесена в десктопные решения. Создание и управление пулами дисков и виртуальными дисками под Windows 10 (Widows 8 рассматривать уже не будем по причине старости) доступно через апплет (оснастку) Storage Spaces, либо через команды в среде Windows PowerShell. К сожалению, в оснастке Storage Spaces доступны все варианты создания объединения, за исключением Tiered. Он доступен только через команды в PowerShell.

disk management, storage spaces

Как выглядит созданный виртуальный диск в оснастке Disk Management

Как работает механизм сегрегации данных в tiered варианте объединения? Новые данные обычно записываются на HDD, а затем, если к ним часто и много обращаются, то перемещаются уже на SSD. Если же системе требуется записать большое количество небольших и случайных изменений данных, то такие изменения записываются в первую очередь на SSD (используется механизм кэширования на SSD), с последующим перенесением на HDD если это необходимо. Все перемещения между слоями (иерархиями) дисков происходят либо автоматически (если такая опция была выбрана при создании пула дисков), либо во время обслуживания виртуального диска (та самая дефрагментация), либо командами через PowerShell.

Можно ли добавлять диски к пулу после его создания? Да, можно. Причем проделать эту процедуру можно уже в оснастке Storage Spaces. В целом Windows позволяет добавлять в пул более, чем достаточное количество дисков. Общее пространство можно разделять между различными виртуальными дисками. Виртуальные диски можно делать даже больше, чем есть физического места для хранения. В случае исчерпания свободного места на диске он переводится в режим Read Only до тех пор, пока не будет добавлен новый диск в пул дисков.

При использовании хранения данных одновременно на нескольких дисках увеличивается вероятность потери данных по причине выхода из строя накопителя или сразу нескольких. Опытные системные администраторы сразу же упомя́нут, что ценные данные вообще-то нужно периодически резервировать на сменных носителях (те самые магнитные ленты) и хранить их в отдельном помещении или лучше здании (городе, стране и т.п.). Но можно попробовать поднять надежность хранения данных и в случае использования tiered disk при использовании Storage spaces. Во-первых, совершенно никто не мешает организовать аппаратное зеркалирование на уровне UEFI (BIOS) и включать в пул дисков уже зеркалированные диски. Во-вторых, согласно документации от Microsoft, создав пул из hdd и sdd (и соответственно tiered drive) у нас есть возможность создавать на его основе и так называемые вложенные (nested) виды объединения, которые уже могут зеркалироваться или иметь избыточность. Однако, данное действие имеет смысл только при наличии действительно достаточного количества физических дисков для организации зеркалирования или избыточности.

Кстати, даже при использовании обычного tiered объединения некоторые диски можно исключать из пула для их замены (однако, для их замены они должны быть настроены в системе как извлекаемые (hot swap)).

Итак, для добавления своего tiered пула в Windows 10 можно воспользоваться либо командами в PowerShell (в документации Microsoft достаточно подробно описана пошаговая процедура создания tiered drive через PowerShell), либо воспользоваться скриптами win10-storage-spaces от freemansoft специально предназначенными для автоматизации создания Tiered Storage.

storgae spaces

Возможность создания Nested Drives на свободном месте Storage Spaces

Процедура использования скриптов достаточно проста, требуется подредактировать скрипт создания пула, изменить наименование пула и виртуального диска, подумать над буквой, которая будет назначена виртуальному диску. Затем освободить диски от разделов и запустить скрипт создания. Он автоматически добавит в пул все свободные от разделов диски, исправит неверные или отсутствующие идентификаторы у HDD-дисков, создаст один виртуальный диск по всему размеру всех подключенных дисков.

Если вдруг, по каким-то причинам, касающимся безопасности, скрипт не будет исполняться, то необходимо изменить настройки безопасности для скриптов и запустить процедуру заново.

После создания пула им уже можно управлять через оснастку Storage Spaces. Например, в пул можно добавить еще дисков. Однако, если изначально у нас создавался tiered пул на двух дисках (т.е. сформирован Simple пул), то его нельзя будет переконвертировать в Two-way Mirror пул, хотя можно будет организовать Nested Two-way Mirror диск при создании нового виртуального диска.

storage spaces, disk optimization

Storage Spaces после добавления в пул еше одного SSD и проведения оптимизации

При добавлении нового физического диска в пул система сразу предлагает провести оптимизацию. Я добавил к системе еще один 120 Гб SSD-диск (к уже добавленному 240 Гб SSD и 1 Тб HDD) и после оптимизации я получил загрузку в 74% 240 Гб SSD и 50% от 120 Гб SSD. Таким образом, на обоих SSD осталось примерно поровну не назначенного в пул места. И именно это место я могу использовать в качестве пространства для создания нового Storage Space (по сути, это и есть виртуальный диск).

После добавления нового диска и оптимизации можно провести изменение размера виртуального диска. Осуществить эту операцию через оснастку Storage Spaces нельзя, система возвращает ошибку. Дело в том, что легкого способа увеличить размер виртуального диска не существует. Проблема кроется в том, как организуются пулы в Storage Spaces. Все дело в так называемом Number of Columns, а именно в количестве физических дисков, на которых физически располагается виртуальный диск. И для успешного изменения размера виртуального диска необходимо добавить в пул количество диско равное Number of Columns. Звучит немного странно, но таковы ограничения. Однако, в моем случае, Tiered disk создался с пустым количеством Columns, т.к. у меня, при создании пула был только один SSD и один HDD. В общем и целом, мне не удалось увеличить размер общего пула после добавления дополнительного SSD-диска в пул. Тем не менее, оба диска работают в пуле совместно. О проблемах с увеличением или уменьшением места в Storage Pool сообщают пользователи и серверных операционных систем. Не помогает в том числе и ручное создание пулов с несколькими разнокалиберными дисками. Так что экспериментировать со Storage Spaces еще есть куда.

disk mark, storage spaces

Данные по работе виртуального диска (отображается производительность моего SSD-диска)

Для измерения полученного результата можно воспользоваться как обычными средствами типа Crystal Disk Mark или же использоваться специализированное средство от Microsoft DiskSpd. Disk Mark, как и положено будет давать результаты с SSD-диска, так как он первым воспринимает удар синтетической цифровой стихии, а DiskSpd дает более интересный результат, но его нужно еще правильно интерпретировать.

Как устроен Storage Spaces

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 будет ниже.

    Ограничения

    • До 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

    Для наглядности использовались шаблоны аналогичные использованным в тестах от 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

    Шаблоны Database (IOPS), File copy, File Server (пропускная способность). Для шаблона Database используется логарифмическая шкала. По графикам видно, что 2-way mirror заметно уступает в производительности традиционному аппаратному RAID-10: в два с лишним раза на шаблонах Database и File copy, примерно в 1,5 раза на шаблоне File Server. Выравнивание результатов с ростом глубины очереди больше 16-ти нельзя рассматривать с точки зрения практического использования из-за неприемлемого роста задержек (графики ниже). Серьезный рост производительности обеспечивает использование SSD в качесте кэша на запись и быстрого яруса. Всего пара даже устаревших на сегодняшний день Intel 710 поднимает производительность на случайном доступе малыми блоками на порядок. Есть смысл использовать такое сочетание не только для OLTP, но и для нагруженных файловых серверов.

    RAID-6 vs Storage Spaces dual parity

    Шаблоны 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, причём без использования ярусного хранения.

    Преимущества и недостатки Storage Spaces

    Преимущества

    • Снижение затрат на оборудование.

    Для простых проектов с одиночным сервером: SAS HBA или чипсетный контроллер вместо аппаратного RAID-контроллера; возможность использовать недорогие диски SATA, формально не совместимые с аппаратными RAID (например, WD Red) вместо дисков nearline класса.

    Для проектов с одиночной неотказоустойчивой СХД и большими требованиями к плотности размщениния дисков можно использовать такие платформы (72 диска в 4U, до 432ТБ сырой ёмкости при использовании 6ТБ дисков):

    Для кластерных решений: простые дисковые полки (SAS JBOD’ы) вместо дорогостоящих СХД.

    Использование tiering’а (ярусного хранения) в сочетании с кэширование записи на SSD в Storage Spaces в большинстве случаев работает эффективнее, обходится дешевле и имеет большие пределы масштабирования в сравнении с реализацией SSD кэша на аппаратных RAID-контроллерах (например, LSI CacheCade или Adaptec MaxCache).

    Для всех видов томов, за исключением использования в кластере, томов с ярусным хранением и томов Dual Parity поддерживается Thin Provisiong (тонкое выделение ресурсов) — это позволяет выделять ёмкость только по мере реального использования.

    Недостатки

    • Низкая производительность на запись при использовании обычных HDD, особенно в Parity и Dual Parity

    Определенный тип нагрузки на запись (случайный доступ небольшими блоками, сосредоточенный в определённой области) может быть легко компенсирован добавлением SSD в качестве быстрого яруса и кэша на запись. Но продолжительную линейную нагрузку на запись компенсировать не получится, так что рекомендовать использование Storage Spaces, например, для видеонаоблюдения нельзя.

    Для бюджетных кластерных решений под Windows (с похожей архитектурой на базе SAS JBOD) с высокой нагрузкой на запись мы советуем использовать вместо Storage Spaces специальные RAID-контроллеры LSI Syncro CS.

    Советы по оптимальному использованию 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

    Swimming in Hard Drives? Get your feet wet with Storage Pools

    @Carl Boisson

    In SysAdmin, a critical concept worth keeping in mind is scalability. This is simply the effectiveness of a process or tool, when considering the bigger picture. Your favorite Bluetooth speakers may produce deep bass and rich sound when set on max volume in your bedroom, but how would they sound in a packed reception hall? Could you count on them to rock a sold-out arena during a concert? At some point, you might need to replace them with something more scalable, that is, something that can handle the larger scope and demands of a greater task.This is especially crucial when it comes to data storage.

    How is storage handled?

    HDDs (Hard Disk Drives) are the primary means of day-to-day computer storage. These devices have evolved rapidly over the past few decades, with advancements in capacity, speed, and reliability. There are a variety of HDD types, with different benefits depending on your storage needs. There are three common types of HDDs: SATA (Serial ATA), SCSI (Small Computer System Interface), and SSD (Solid State Drive).

    Types of HDDs

    SATA drives are the most common and are widely used in desktop computers. They’re relatively inexpensive, offer tremendous capacity (they can store a lot of information), and generally meet the performance requirements of most desktop applications. SCSI drives are less common, more expensive than SATA, but are faster, and offer better performance in high IOP (reading and writing data) environments. SSD drives are the fastest of the three, are not susceptible to mechanical failure (they don’t contain moving parts), but are far more expensive (far less storage capacity for the dollar compared to SATA).

    Desktop Storage

    Windows 10 desktop PCs are usually configured with one large SATA drive. The average user places all of their files on this drive and all of their applications use the same volume. Generally speaking, this drive is accessed for only a few hours a day, one user at a time. This is a suitable setup for this particular environment, but is it scalable for the demands of a server?

    Server Storage

    A server is used to administer a wide range of services to clients (usually other computers). This can be just a few or thousands of computers! In this environment, many different users need to access (read and write) data to HDDs at the same time! What may have been an ideal solution for a desktop environment, hasn’t proven to be scalable to a server environment. For this reason, servers are usually equipped with many HDDs of different types. This ensures that files and services are accessible for all the clients as needed.

    In the desktop scenario, not much administration is needed to maintain access. Administration on this scale is usually just monitoring available disk space. A great deal more is required to make certain all clients have simultaneous access to data on a server. Additionally, servers must follow specific security protocols, which also affect how storage is managed. In this environment, prevention of data-loss is crucial and shapes how storage is implemented.

    What’s the solution?

    The amount of planning, preparation, and administration needed to maintain just the storage aspect of servers, is staggering. For this reason, Microsoft has packaged a new set of tools in Server 2012 called Storage Pools. Storage Pools give system administrators ultimate flexibility when it comes to sorting out the storage needs of their unique environment. Simply put, Storage Pools combine the physical HDDs the server has available into generic “lumps” of storage space. From there, an administrator uses virtualization tools to carve out different types of simulated HDDs on-the-fly. These virtual drives are seen as “real” volumes to clients and applications.

    This pooling of resources not only reduces administrative headaches, but also leverages the different types of HDDs to dynamically appropriate speed, performance, and capacity. This feature is called Storage Tiers. It can be configured to automatically move frequently accessed data to faster drives (SSD) while placing that which is infrequently used on slower ones. Special features can also be activated to prevent data-loss. Multiple copies of files can be mirrored on different disks within the pool. To the client, this process is seamless. For administrators, the setup is minimal.

    Setting up Storage Pools

    If you’re running Windows Server 2012 R2, it’s as simple as adding a role, which describes a collection of related services a server can provide. Roles are usually installed alongside the pertinent tools to implement, manage, and monitor those services. To set up Storage Pools, we will need to add the File and Storage Services role:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *