Пулы носителей. Пулы свободных носителей

Функция это технология хранения данных, предназначена для объединения в пул хранения избыточного дискового пространства, позволяющая уменьшить риски потери данных, обеспечить удобство работы и хранения больших объёмов информации. По сути Storage Spaces (или Дисковые пространства ) — это дальнейшее развитие технологии Drive Extender в Windows Home Server (от которой было принято отказаться). Дисковые пространства предполагают использование как в серверных, так и клиентских ОС Windows (Windows Server 2012 и Windows 8).

С помощью Storage Spaces внешние физические накопители в Windows 8 можно объединить в пулы (pool ), а на базе пулов создавать дисковые пространства (storage spaces ), которые для пользователя выглядят как самые обычные логические диски в системе.

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

В Storage Spaces можно использовать как внешние, так и внутренние диски с интерфейсами USB, SATA, SAS, SCSI (в любых комбинациях). LUN-ы iSCSI в Storage Spaces использовать не получится (однако разместить виртуальный диска iSCSI на дисках Storage Spaces можно). Количество используемых накопителей также может быть произвольным. Пул хранения в любой момент можно расширить, подключив дополнительный диск и добавив его в пул. Кроме того, возможно использовать резервные (standby) диски, находящиеся в режиме ожидания вплоть до отказа одного из дисков в пуле.

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

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

Из недостатков Storage Spaces в Windows 8 стоит отметить невозможность организации загрузочных дисков на базе пулов хранения.

Пример использования Storage Spaces в Windows 8

Откройте панель управления Windows 8 и выберите элемент Storage Spaces (Дисковые пространства).

В появившемся окне будет отображен список имеющихся пулов хранения. На данный момент они отсутствуют. Чтобы создать пул хранения нажмите ссылку Create a New Pool and Storage Space .

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

Имейте в виду, что при включении диска с данными в пул, все данные на нем будут удалены.

В нашем случае мы имеем 2 внешних USB диска, емкостью 1 и 2 Тб соответственно. Отметим оба диска и нажмем кнопку Create Pool .

После чего система начнет создание и подготовку дисков в пуле хранения.

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

В разделе Resiliency (Устойчивость), выберем тип Two-way Mirror (Двухстороннее зеркало). При такой настройке система будет хранить копию данных на каждом их накопителей и в случае выхода из строя одного из дисков, данные не будут потеряны.

Вообще говоря, существует четыре типа устойчивости создаваемого пространства, поговорим о них подробнее:

  • Simple (Простой) – простой тип организации дискового пространства, в котором хранимая информация распределяется по всем жестким дискам в пуле последовательно, а общая емкость пространства равна сумме емкостей составляющих дисков. По сути является аналогом RAID 0, улучшает скорость работы с данными и файлами больших размеров, отказоустойчивости не обеспечивает.
  • Two way mirror (двухстороннее зеркало) –каждая операция записи осуществляется одновременно на два диска. Соответственно, при отказе одного из дисков, данные не будут потеряны. Для организации пространства нужны как минимум два накопителя, в пуле может быть и более двух дисков, но алгоритм дублирования данных по дискам от пользователя скрыт. Общая емкость виртуально логического диска равно половине от общей емкости дисков.
  • Three way mirror (трёхстороннее зеркало) – подразумевает одновременную запись сразу на три накопителя в пуле, защищая от потери информации при выходе из строя любых двух дисков. Для организации пространства с таким типом устойчивости необходимо как минимум пять дисков (в Windows 8 Preview достаточно было иметь три диска). Следует понимать, что это схема подразумевает максимальную надежность хранения данных, однако скорость выполнения операция чтения и (особенно) записи снижается. Общая ёмкость пространства будет равна 1/4 от общей емкости всех дисков
  • Parity (четность ) – данные пишутся на разные диски вместе с информацией о четности (блок контрольных сумм по алгоритму XOR), напоминая принцип работы RAID 5. При выходе из строя любого из дисков, данные можно восстановить с помощью контрольной суммы. Для подобного типа организации пространства хранения необходимо иметь как минимум 3 диска. Доступная емкость равна 2/3 от общей емкости дисков в пуле. Из за необходимости расчета контрольных сумм и записи их на диск, скорость записи в таком пуле хранения несколько снижается и не рекомендуется их использовать для больших объёмов часто изменяемых данных.

В разделе Size указывается размер создаваемого пространства. По умолчанию его размер равен половине емкости используемых дисков, однако можно указать и больший размер (технология thin provisioning ). В этом случае, при достижении физического лимита на дисках, система предложит вам добавить дополнительные устройства хранения в пул. Нажмите кнопку Create Storage Space .

После этого Windows 8 приступает к форматированию дисков и созданию пространства хранения.

После создания пространства хранения в системе появится новый диск. Данный логический диск можно использовать абсолютно прозрачно, точно так же как и обычный диск, можно в том числе включить на нем шифрование данных, например с помощью BitLocker или TrueCrypt.

С помощью консоли управления Storage Pools можно познакомиться со списком файлов на дисках, изменить состав пула (или целиком удалить его) и переименовать диски.

Особенности функционирования Storage Spaces в Windows 8

В отличии от аппаратного RAID в Storage Spaces за физическими дисками в пространстве нет жесткого закрепления определенных функций, т.е. данные и контрольные суммы «размазываются» по всем доступным физическим устройствам. Если, например, в пространстве хранения, организованном в виде двухстороннего зеркала на базе двух дисков, если диск меньшего размера заполнится, дальнейшая запись данных в пространство станет невозможной, пока в пул не будет добавлен дополнительный диск.

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

Естественно, нужно понимать, что производительность Storage Spaces заметно ниже аппаратных реализаций RAID, вследствие разнотипных устройств в пулах хранения, однако обладает большей гибкостью.

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

При выходе из строя одного из дисков в трее появляется информационное окно: Check Storage Spaces for problems , щелкнув по которому откроется панель управления пространствами хранения, в которой будет помечены неисправные/недоступные дики.

Использование функции Storage Spaces в небольшой домашней сети позволит отказаться от выделенных устройств типа Network Attached Storage (NAS), обеспечить резервное копирование данных.

Управлять Storage Spaces можно с помощью команд PowerShell.

Отметим, что функционал Storage Spaces доступен во всех редакциях Windows 8. В Windows Server 2012 при организации Storage Spaces возможно смешивать диски с файловыми системами NTFS и . Скорее всего в Windows 8 SP1 эта возможность появится и в клиентской ОС.

Технология Storage Spaces в Windows 8

Storage Spaces или Дисковые пространства — новая технология хранения данных, призванная предотвратить потерю данных и обеспечить удобство хранения больших объемов информации. Технология серверная и принцип ее работы подобен принципу работы RAID-массивов, однако есть существенные отличия, позволяющие использовать ее в клиентских операционных системах.

Суть работы Storage Spaces состоит в следующем: жесткие диски, подключенные к компьютеру, можно объединить в один или несколько пулов хранения. Каждым пулом можно управлять как единым объектом, хотя он и состоит из нескольких дисков. И в отличие от технологии RAID (где все диски должны быть строго идентичны) Storage Spaces позволяет объединять в пулы диски разных объемов и типов, причем как внутренние (SATA), так и внешние (напр. USB). Диски можно смешивать в разных сочетаниях, а для расширения пула хранения достаточно подключить новый диск и добавить его к пулу.

На основе пула создаются виртуальные области — дисковые пространства, с помощью которых и происходит доступ к пулу из файловой системы. В одном пуле можно создать несколько дисковых пространств. Если сравнивать Storage Spaces с привычными вещами, то пул хранения — это физический диск, на котором можно создать одну или несколько логических областей, или дисковых пространств. Дисковые пространства интегрируются с Windows Explorer и отображаются в нем как обычные диски, так что доступ к ним можно получить как и к любому диску в системе, с обычной буквой диска.

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

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

Практическое использование Storage Spaces

Управление дисковыми пространствами и пулами находится в Панели управления, на вкладке «Дисковые пространства».

Storage Spaces показывает доступные диски (все кроме загрузочного и системного разделов) и предупреждает, что при добавлении в пул форматированных дисков они будут переформатированы и все данные на них будут уничтожены без возможности восстановления. Выбираем диски и жмем кнопку «Создать пул».

Пул создан. Теперь нам надо создать на нем дисковое пространство и задать его параметры: имя, букву диска, тип устойчивости и размер. Имя и букву диска можно оставить по умолчанию, а про тип устойчивости стоит поговорить поподробнее. Всего доступно четыре типа устойчивости:

Простой — дисковое пространство распределено по жёстким дискам последовательно, емкость равна сумме емкостей составляющих дисков. Вероятность отказа приблизительно равна сумме вероятностей отказа каждого диска в массиве (т.е. при выходе из строя одного диска теряется вся информация);

Двухстороннее зеркало — информация распределена по двум дискам. На каждом диске хранится полная копия данных и при выходе одного диска из строя информация не будет потеряна. Емкость при этом составляет половину от общей емкости дисков;

Трехстороннее зеркало — данные хранятся одновременно на трех дисках, что позволяет сохранить информацию даже при выходе из строя двух дисков. Для реализации этого режима необходимо не меньше пяти дисков в пуле, при этом будет доступно будет лишь 1/4 от общей емкости всех дисков;

Четность — данные пишутся на разные диски вместе со сведениями о четности. При выходе из строя одного диска данные можно восстановить, используя контрольную сумму. Емкость равна 2/3 от общей емкости дисков в пуле. Для этого режима необходимо не меньше трех дисков.

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

Задав параметры жмем на кнопку «Создать дисковое пространство» и ждем, пока мастер подготовит и отформатирует пространство.

По окончании процесса в панели управления Storage Spaces можно получить подробные сведения о пуле и созданных в нем дисковых пространствах, а также посмотреть физические диски, входящие в пул. К уже работающему пулу можно добавлять новые диски, увеличивая его размер. Здесь же можно создавать новые дисковые пространства или удалять существующие.

А вот так дисковое пространство выглядит в Проводнике. Если бы не название, то от обычного диска не отличить. И как с обычным диском, с ним можно делать все что угодно. На нем можно хранить данные, его и хранящиеся на нем папки можно добавлять в библиотеки, на него можно устанавливать приложения. Его даже можно шифровать с помощью BitLocker. Ведь для операционной системы и приложений это обыкновенный диск. Единственное ограничение — дисковое пространство нельзя использовать как системный.

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

Функция «Дисковые пространства» в системе Windows 10 помогает защитить данные в случае сбоя жесткого диска и позволяют увеличить объем дискового пространства по мере добавления дисков для компьютера.

С помощью технологии «Дисковые пространства» можно создавать группы (пулы хранилищ), состоящие из двух или большего числа дисков, а затем создавать из них виртуальные диски (места для хранения). В этих местах обычно хранятся две копии данных. Даже если один диск выйдет из строя, нетронутой останется копия данных. Если осталось мало места для хранения, добавьте больше дисков в пул носителей.

Что нужно для создания дискового пространства

Нужны, по крайней мере, два дополнительных диска (кроме диска, на котором установлена система Windows). Это могут быть внутренние или внешние жесткие диски или твердотельные накопители (SSD). С функцией «Дисковое пространство» можно использовать диски разных типов, включая диски USB, SATA и SAS.

Как создать дисковое пространство

  1. Добавьте и подключите диски, которые вы хотите сгруппировать с помощью функции «Дисковое пространство».
  2. дисковые пространства и выберите Дисковые пространства в списке результатов поиска.
  3. Выберите пункт Создать новый пул и дисковое пространство .
  4. Выберите диски, которые вы хотите добавить в новое место хранения, а затем нажмите Создать пул .
  5. Добавить к диску название и букву, а затем выберите структуру. Структуры типа Двухстороннее зеркало , Трехстороннее зеркало и Четность повышают защиту файлов в месте для хранения от последствий возможной аварии диска.
  6. Введите максимальный размер, которого может достичь место для хранения, а затем выберите пункт Создать дисковое пространство .

Какой диск создать: простой, зеркальный или четный

  • Простое пространство предназначено для повышения производительности , но они не обеспечивают защиты файлов на случай сбоя жесткого диска. Лучше всего подходят для хранения временных данных (таких как файлы рендеринга видео), резервное копирование файлов в редакторе изображений и файлы промежуточных объектов компилятора. Чтобы создать простое дисковое пространство требуется, по крайней мере, два диска.
  • Зеркальное пространство предназначено для повышения производительности и обеспечивает хранение нескольких копий для защиты файлов на случай сбоя жесткого диска. Зеркальные пространства в два этапа образуют две копии файлов и устойчивы к поломке одного диска, в свою очередь, трехсторонние зеркальные пространства устойчивы к отказу двух дисков. Идеально подходят для хранения различных данных, от файловых ресурсов общего назначения до библиотеки виртуальных жестких дисков. В случае форматирования пространство будет отформатировано в формат файловой системе ReFS. Зеркальные пространства требуют, по крайней мере, двух дисков, а трехсторонние – не менее пяти.
  • Пространства с контролем четности предназначены для обеспечения производительности и обеспечивают хранение нескольких копий для защиты файлов на случай сбоя жесткого диска. Пространства с контролем четности лучше всего подходят для хранения данных архива и потокового мультимедиа, такие как музыка и видео. Такое дисковое пространство требует не менее трёх дисков, в целях обеспечения защиты на случай сбоя одного диска – и не менее семи дисков, чтобы обеспечить защиту на случай выхода из строя двух дисков.

Следует ли обновлять пул дисков

После обновления до Windows 10 мы рекомендуем обновить существующие пулы. Обновленный пул позволяет оптимизировать использование жесткого диска.

Примечание: обновленные пулы не совместимы с предыдущими версиями Windows.

Почему стоит оптимизировать использование диска

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

При добавлении нового диска в обновленный пул Windows 10 оптимизация выполняется автоматически – флажок Оптимизировать использование дискового пространства, чтобы разложить существующие данные на все диски установлен при добавлении нового диска. Однако, если этот флажок снят или диски будут добавлены перед обновлением пула, нужно вручную оптимизировать использование дискового пространства.

Чтобы это сделать, введите на панели задач в поле поиска строку дисковое пространство и выберите Дисковое пространство в списке результатов поиска, а затем выберите пункт Оптимизировать использование диска .

Как удалить диск из пула

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

  1. Перейдите к панели задач, введите в поле поиска строку дисковое пространство и выберите Дисковое пространство в списке результатов поиска.
  2. Выберите пункт Изменить настройки Физические диски , чтобы просмотреть все диски в пуле.
  3. Найдите диск, который вы хотите удалить, а затем выберите команду Подготовить для удаления . Оставьте компьютер включенным на время подготовки диска к удалению. Это может занять несколько часов, в зависимости от объема данных, хранящихся на диске.
  4. Чтобы ускорить процесс подготовки диска, отключите для диска переход в спящий режим (опция). В поле поиска на панели задач введите строку Питание и спящий режим , а затем выберите Параметры питания и спящего режима . В области При питании от сети компьютер переходит в спящий режим после выберите пункт Никогда .
  5. Если диск отображается как Готов к удалению , выберите Удалить → Удалить диск . Теперь вы можете отсоединить жесткий диск от компьютера.

Примечание : Если у Вас возникли проблемы при попытке подготовки диска к удалению, это может означать, что вы не имеете достаточного количества свободного места в пуле, чтобы хранить все данные с диска, который хотите удалить. Попробуйте добавить в пул новый диск размером, равным размеру диска, который вы хотите удалить, а затем повторите попытку.

18.01.2013 Роберт Митчелл

Пользовательский интерфейс Storage Spaces and Pools реализован в программе Storage Spaces панели управления (в Windows 8) и в Server Manager (в Server 2012); также можно использовать команды PowerShell (в обеих операционных системах). По большей части эта статья относится к интерфейсу Server Manager. Версия клиента Windows 8 упрощена и заметно отличается по внешнему виду. Однако базовая технология везде одинаковая.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

New-VirtualDisk -FriendlyName NewVDisk -StoragePoolFriendlyName MyPool -NumberOfColumns 6 -NumberOfDataCopies 2 -ResiliencySettingName mirror -UseMaximumSize

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

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

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

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

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

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

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

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

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

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

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

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

NumberOfDataCopies * NumberOfColumns 2 * 2 = 4

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

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

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

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

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

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

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

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



DPandMe 26 мая 2015 в 17:16

Суп из SAN. Строим виртуальный SAN на платформе Windows Server 2012 R2

  • Виртуализация

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



Дисклеймер: заранее прощу прощения у специалистов по SAN и благородного хабрасообщества за некоторые вольности и упрощения, допущенные мной при подготовке материала. Он рассчитан на тех, кто пока еще не знаком с технологиями хранения данных, заложенными в Windows Server 2012 R2, а также тех, кто не имеет возможности развернуть у себя полноценную сеть хранения данных на базе FC или iSCSI.

С чего же начать? Рискну предположить, что для решения проблемы отказоустойчивости требуется две вещи:

  1. Хороший план.
  2. Деньги (смета).
Строго говоря, есть еще и третий пункт – «прямые руки», но его обсуждение выходит за рамки данной статьи.

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

Высокая доступность (High Availability, HA) - способность минимизировать как запланированные, так и незапланированные простои. То есть, мы (читай - заказчик) заранее соглашаемся с тем, что в случае сбоя, понадобится некоторое разумное время для переключения на резервное оборудование и запуск на нем «упавших» сервисов. Разрыв соединения при этом неизбежен. Типичный пример: кластер Hyper-V.

Отказоустойчивовсть (Fault Tolerance, FT) - способность сохранять работоспособность в случае отказа одного или нескольких компонентов. Это когда сбой произошел, но никто, кроме админа, его не заметил. Или, когда мы отключаем один из узлов, чтобы провести на нем плановое обслуживание (например, установку обновлений), а второй узел в это время берет на себя всю нагрузку. Соединение не рвется, приложения доступны, только немного увеличивается время отклика. Типичный пример: RAID 1-го уровня.

Катастрофоустойчивость - способность относительно быстро запустить сервис в случае глобальных катаклизмов. Это когда рухнуло все и сразу. В качестве глобальных катаклизмов, любят приводить в пример ураганы, цунами и наводнения. Однако, в реалиях нашей страны гораздо более вероятным представляется отключение электричества в ЦОД-е: локальное (экскаватор кабель задел) или веерное, а также затопление подвальных помещений. Пример: резервный ЦОД.

Почему важна терминология? Да потому, что перечисленные задачи принципиально разные. Соответственно, и подходы к их решению должны быть разными. Прежде всего, мы должны определиться, что именно хотим получить: высокую доступность, отказоустойчивость или катастрофоустойчивость.

В контексте данной статьи будем обсуждать только один из трех пунктов, а именно, отказоустойчивость. Справедливости ради, надо отметить, что реальная необходимость в ней возникает не часто. В самом деле, большинство заказчиков вполне готовы мириться с небольшими, прописанными в SLA, простоями в обмен на существенную экономию денежных средств за счет отказа от непомерно дорогих «сверхнадежных» решений. К примеру, если у пользователей на несколько минут подвиснет Excel, это не станет большой проблемой для бизнеса – скорее поводом немного размяться и выпить кофе. Однако, есть и такие сервисы, которые крайне чувствительны даже к небольшому разрыву сетевого соединения. Например, СУБД и гипервизоры. Если Hyper-V потеряет связь со своими виртуальными жесткими дисками, на которых запущены виртуальные машины, это может привести к печальным последствиям. Также и SQL - внезапная потеря сервером своих баз может надолго занять интересным делом DB-админа.

Итак, мы решили, что будем строить отказоустойчивое решение. Другими словами, необходимо убрать возможные точки отказа на всех существующих уровнях: серверном, сетевом и уровне хранения данных. Чем это достигается? Конечно, дублированием всего, чего только можно: серверов, сетевых интерфейсов, каналов передачи данных и, конечно, дисковой подсистемы. Тут перед нашими глазами встает светлый образ SAN. Действительно, что может быть лучше для обеспечения отказоустойчивости, чем старый добрый аппаратный FC SAN? Так-то оно так… Только есть у этого решения один убийственный недостаток. Цена. Стоимость подобной системы начинается с семизначных чисел. А верхний предел практически не ограничен. Поэтому, ее нельзя просто взять и купить – как минимум, придется забюджетировать.

Кроме того, закупая дорогущее железо, мы попадаем в серьезную зависимость от вендора, поскольку совместимость с его оборудованием сторонних производителей далеко не гарантируется. Ну и масштабирование таких систем может потребовать значительных временных затрат. Ведь дорогие комплектующие никто на складе не держит – их надо заказывать и ждать неделями, а то и месяцами. А босс требует «здесь и сейчас». И чтобы все работало «как часы». И чтобы с минимальными затратами!

Где же выход? Неужели светлым мечтам о SAN-е не суждено сбыться? Подождите… А что вообще такое SAN? По сути, это просто способ разделения ресурсов высокопроизводительных устройств хранения данных между серверами на блочном уровне. Когда-то давно классические файберные сети SAN были практически безальтернативной технологией там, где требовалась исключительная производительность, отказоустойчивость и масштабируемость. Скорость FC на порядок превышала типичный Ethernet с его 100 Mb/s.

Но со временем появились сетевые адаптеры 1 и 10 Gbit Ethernet, возникли программные и аппаратные технологии увеличения пропускной способности сети (NIC teaming, сжатие данных и т.д.), что несколько снизило преимущества FC и привело к взрывному росту популярности интерфейса iSCSI. Что касается отказоустойчивости и масштабируемости, то и тут случился прогресс. К примеру, появились варианты реализации SAN на базе хранилищ с интерфейсом SAS, который, вообще говоря, изначально предназначался для прямого подключения хранилища к серверу – DAS. Дело в том, что интерфейс SAS, помимо высоких скоростей (6-12 Gbit/s), обладает еще одним существенным преимуществом – очень малыми задержками (latency). Это весьма важно для высоконагруженных хостов, вроде Hyper-V.

А что у нас есть, кроме SAN? А кроме SAN есть только NAS. Если сравнивать SAN и NAS, то главным отличием первого от второго является работа на блочном уровне. Хост-система может создавать на SAN логические разделы, форматировать их и использовать как обычные локальные жесткие диски. NAS же работает на уровне файловой системы и использует протоколы передачи файлов, такие как SMB или CIFS. Поэтому NAS, конечно, дешево и просто, но о-о-очень медленно. А потому, для высоконагруженных продакшн-систем бесперспективно.

А нельзя ли как-то совместить высокую скорость и надежность SAN с простотой реализации и доступностью NAS? Что, если часть функционала SAN попробовать реализовать программно? Видимо как-то-так рассуждали инженеры одной скромной компании из Рэдмонда, когда готовили к выходу на рынок свою новую технологию. В итоге, у них действительно получилось нечто, по формальным признакам напоминающее SAN. Но при этом в несколько раз дешевле. Нам предлагают использовать весьма недорогие и доступные комплектующие для приготовления изысканного блюда под названием «Scale-Out File Server», т.е. масштабируемый файловый сервер. Слово «масштабируемый», на мой взгляд, не совсем точно отражает суть, поскольку, в первую очередь, сервер получился отказоустойчивым.

Итак, сегодня будем готовить «Суп из SAN» на основе технологий Microsoft Windows Server 2012 R2.
В качестве ингредиентов, нам понадобятся:

  • серверы без дисков (только небольшие «зеркала» под систему) - 2 шт.;
  • недорогая дисковая полка JBOD с двумя SAS интерфейсами – 1 шт.;
  • HDD SAS – не менее 10 шт. (лучше – больше);
  • SSD SAS – хотя бы 2 шт.;
  • сетевые адаптеры 1-10 GBit (лучше – с поддержкой RDMA) – 2-4 шт.;
В качестве приправы, будем использовать рекомендованный набор специй: Storage Spaces, Tiering, SMB Direct, SMB Multichannel, CSV. Время приготовления: 1-1,5 часа при наличии опыта или 1-2 дня без такового.

Немного теории

В Windows Server 2012 и Windows 8 появилась интересная технология под названием «Дисковые пространства» (Storage Spaces). Предназначена она для абстрагирования от физического уровня дисковой подсистемы. По сути - это драйвер операционной системы, расположенный после менеджера разделов и перед менеджером томов, который позволяет виртуализировать блочное хранилище, скрывая его от операционной системы. Достигается это группировкой физических дисков в пулы и созданием на основе пулов виртуальных дисков (LUN-ов в терминологии SAN). Таким образом, все приложения будут иметь дело именно с виртуальными дисками, даже не подозревая, из чего они состоят. Но постойте… Опять виртуальные диски? Ведь эта технология под именем «динамических дисков» была реализована Microsoft (точнее, лицензирована у Veritas) аж в 2000 г. - в составе Windows 2000! Опять нам пытаются всучить залежалый товар?

Все не так просто… В отличие от динамических дисков, дисковые пространства - технология гораздо более умная, в чем мы убедимся позже. А пока уточним термины:

Пулы носителей (Storage Pools) - коллекция физических дисков, которая позволяет объединять диски, гибко увеличивать емкость и делегировать администрирование.

Дисковые пространства (Storage Spaces) - виртуальные диски, созданные из свободного пространства в пуле носителей. К атрибутам дисковых пространств относятся уровень устойчивости, уровни хранилища, фиксированная подготовка и точный административный контроль.

Кластеризованные дисковые пространства (Clustered Storage Spaces) – те же дисковые пространства, размещенные на общем хранилище - то, что нам надо!

Как создать виртуальный диск? В нашем случае, для начала, нужно объединить в пул физические SAS диски - HDD и SSD. Вообще говоря, объединять в пулы можно диски с разными интерфейсами: SATA, SCSI и даже USB. Но для развертывания отказоустойчивого кластера (Scale-Out File Server) подходят только диски с интерфейсом SAS. Объединение дисков в пул не представляет каких-либо сложностей и делается с помощью мастера буквально в два клика. Разумеется, на объединяемых дисках не должно быть никаких разделов, либо их придется удалить. Объединив диски в пулы, мы их сгруппируем. Но еще надо объяснить операционной системе, что с ними делать дальше. Теперь можно создать из дискового пула виртуальный жесткий диск (LUN). Технология Storage Spaces позволяет создавать 3 варианта виртуальных жестких дисков, подобных RAID-уровням:

  • Simple (аналог RAID0) – рекомендуется только для тестов;
  • Mirroring (аналог RAID1) – рекомендуется для рабочих нагрузок;
  • Parity (аналог RAID5) – рекомендуется для формирования разделов с архивами данных.
Как и в аппаратных RAID, можно оставить один или два диска в горячем резерве (Hot Spare). Перечисленные возможности представлены в графическом интерфейсе по умолчанию. Однако, если этого мало, с помощью командлетов PowerShell можно получить и более хитрые комбинации, соответствующие, к примеру, RAID уровня 10.

Позвольте, скажет читатель, если это программный RAID, он ведь должен работать медленнее аппаратного! И будет совершенно прав. Да, медленнее. Но насколько? Тут все не так однозначно. Во-первых, как показывает практика, скорость дисков легко компенсируется их количеством. Поэтому, разница в производительности будет тем менее заметна, чем больше дисков мы объединим в пул. Для промышленного применения рекомендуется использовать от 12 дисков. Во-вторых, в Windows Server 2012 R2 появилась одна замечательная фича: объединение в один пул дисков SSD и HDD с формированием т.н. «гибридного пула» (Tiered Storage). В этом случае система сама будет отслеживать и перемещать на быстрые SSD диски наиболее часто используемые данные (помните я говорил, что система умная!). Причем, перемещение «горячих» данных на SSD происходит поблочно, а не на уровне файлов. Более того, с помощью командлетов PowerShell можно явно указать, какие файлы необходимо разместить на SSD, а какие - на HDD. И в-третьих, Storage Spaces поддерживают т.н. «кэш обратной записи» (WriteBack Cache). При кратковременных всплесках операций записи система перехватывает данные и размещает их в специальной области на SSD. Таким образом сглаживается падение производительности при внезапных пиковых нагрузках. Все вместе - большое кол-во дисков, гибридный пул и кэш обратной записи – способно существенно поднять быстродействие системы, сведя к минимуму негативный эффект от программного RAID. Что касается экономии свободного места на дисках, то в Storage Spaces поддерживается такая привычная для SAN технология, как Thin Provisioning – для более экономного распределения дисковых ресурсов. Справедливости ради, заметим, что пока она несовместима с гибридным пулом – придется выбрать что-нибудь одно.

Итак, средствами Storage Spaces мы можем обеспечить отказоустойчивость на уровне СХД. Теперь поднимемся на уровень выше. Серверы необходимо объединить в кластер. Эта возможность появилась у Microsoft уже достаточно давно. Однако, ранее такой кластер можно было назвать лишь высокодоступным (вспоминаем терминологию). И только с выходом Windows Server 2012 появилась возможность сделать его по-настоящему отказоустойчивым. Называется эта фича «Scale-Out File Server». Тут будет уместно напомнить, что файловые кластеры могут работать в одном из двух режимов:

  • «Active - Passive»; отработка отказа с прерыванием сервиса – failover.
  • «Active - Active»; прозрачная отработка отказа – transparent failover.
В первом случае только один из узлов активный – именно с ним происходит обмен данными, а второй находится в ожидании. В случае отказа первого узла, второй принимает на себя всю нагрузку. Однако, при этом происходит неизбежный разрыв соединения и прерывание в работе сервиса. Именно по такому принципу работает файловый кластер в Windows Server 2008 R2. Во втором случае оба узла активны и способны одновременно принимать данные от клиентов. В случае отказа одного из узлов, потери SMB-сессии не происходит, соответственно, работа приложений не прерывается. Эта технология появилась только в версии Windows Server 2012.

Но чтобы такая одновременная работа с хранилищем стала возможной, потребовалась очередная технология под названием Cluster Shared Volume (CSV). Если не вдаваться в подробности, это логический том, специальным образом подготовленный для одновременной работы с несколькими узлами в составе кластера.

А что на сетевом уровне? Здесь у Microsoft припасено сразу несколько приятных сюрпризов. Первый – это SMB Direct поверх технологии RDMA. Если говорить упрощенно, это технология прямого доступа к памяти через сетевой интерфейс, без накладных расходов на использование центрального процессора. При включении данной фичи сетевые адаптеры фактически начинают работать на скорости интерфейса, обеспечивая высокую пропускную способность и чрезвычайно быстрый отклик на сетевые запросы, что дает огромный выигрыш в производительности для таких рабочих нагрузок, как Hyper-V и SQL Server. Скажем так, работа с удаленным файловым сервером становится похожа на работу с локальным хранилищем. И хотя сетевые адаптеры с поддержкой RDMA пока еще достаточно дороги, их стоимость непрерывно снижается (на момент написания данной статьи составляет около 20 т.р.).

Второй сюрприз называется SMB Multichannel. Если на потребителе нагрузки (например, SQL Server) и на принимающей стороне (файловый кластер) установлено по два сетевых адаптера, то между клиентом и сервером создается многоканальное SMB-подключение. Это означает, что если, к примеру, по сети копируется файл и в процессе копирования что-то происходит с одним из сетевых адаптеров, это не приводит к прерыванию процесса – файл продолжает копироваться, как ни в чем не бывало. Чтобы убедиться в наличии SMB Multichannel, запустите командлет PowerShell: Get-SmbMultichannelConnection. Вы увидите, что-то вроде этого:


Как видно, соединение установлено при помощи сразу двух сетевых интерфейсов.

Наконец, в протоколе SMB 3.0 проведена оптимизация работы балансировки нагрузки между узлами. Как раз для конфигурации Scale-Out File Server.

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

Подготовительные работы

Итак, берем дисковую полку в режиме JBOD. Набиваем ее дисками, хотя бы два из которых должны быть SSD. У корзины должно быть два SAS-экспандера, по два разъема на каждом. Через них подключаем корзину к двум серверам, желательно одинаковым. Для этой цели вполне подойдут простые одноюнитовые серверы. На серверах в качестве контроллеров устанавливаем обычные SAS HBA.

Далее по пунктам:

  1. Устанавливаем на каждый сервер ОС Windows Server 2012 R2.
  2. Настраиваем сетевые подключения, устанавливаем обновления, вводим серверы в домен.
  3. Добавляем роль Файловый сервер на каждом сервере.
  4. На одном из серверов открываем консоль Диспетчер отказоустойчивости кластеров.
  5. С помощью мастера создаем стандартный кластер с отработкой отказа (Failover Cluster).
  6. Создаем новый пул: Хранилище -> Пулы -> Создать новый пул.
  7. Добавляем в пул SSD и HDD диски, при необходимости указываем параметры доступа.
  8. Создаем виртуальный диск: Пул –> правый клик –> Новый виртуальный диск.
  9. С помощью мастера задаем тип дисковой подсистемы (Mirror).
  10. C помощью мастера создаем том на диске, присваиваем букву, форматируем в NTFS.
  11. Создаем общий кластерный том (CSV): Выбираем нужный диск -> Добавить в общие тома кластера.
  12. Задаем роль: Роли -> Настроить роль -> Файловый сервер -> Масштабируемый файловый сервер.
  13. Чтобы не ждать, сбрасываем кэш распознавателя DNS (ipconfig /flushdns).
  14. Выбираем роль -> Добавить общий файловый ресурс -> Общий ресурс SMB –> Профиль приложений.
  15. Указываем расположение общего ресурса, даем ему название.

Все. Конечным итогом наших усилий стало создание файловой шары, расположенной по стандартному UNC-пути, типа: \\ScaleOutFS\Share. Теперь можем размещать на ней критические файловые ресурсы, такие как виртуальные жесткие диски Hyper-V или базы данных SQL сервера. Таким образом, мы получили готовую сеть хранения данных. Принципиальное отличие ее от традиционных SAN состоит в том, что для подключения используется протокол SMB 3.0, а не какой-то из блочных протоколов (iSCSI/FC), что в определенном смысле является даже преимуществом. У кого-то может возникнуть желание развернуть роль Hyper-V прямо на кластерном сервере, разместив виртуальные диски на общем хранилище. Придется огорчить. К сожалению, такая конфигурация пока не поддерживается. Для ролей Hyper-V и SQL Server необходимо поднимать отдельные серверы, которые будут работать с нашей СХД по SMB-протоколу.

Осталось подвести итоги…

Отказоустойчивость
Обеспечивается на всех уровнях: хранения данных, серверов, сетевого взаимодействия.
Производительность
Будет зависеть от нескольких факторов. В типичном случае сопоставима с производительностью решений на базе iSCSI. А в случае задействования всех имеющихся возможностей, включая технологию RDMA, пропускная способность СХД окажется даже выше, чем при FC-подключении (до 56 GBit/s).
Масштабируемость
На уровне дисковой подсистемы обеспечивается простым добавлением дисков или каскадированием хранилищ JBOD. На уровне серверов – добавлением узлов в кластер. На сетевом уровне – добавлением сетевых адаптеров, объединением их в группы (NIC teaming) или заменой их на другие, с большей пропускной способностью.
Безопасность
Дисковые пулы можно контролировать с помощью списков контроля доступа (ACL), а также делегировать полномочия администраторам. Управление хранилищами может быть полностью интегрировано с ADDS.
Стоимость
Очевидно, что даже при использовании всех возможностей, заложенных в данную технологию, стоимость готового решения будет в несколько раз ниже традиционного SAN.

А как же недостатки? Разумеется, они тоже имеются. К примеру, СХД и серверы нельзя разнести на значительное расстояние, как в случае FC или iSCSI. Нельзя выстроить сложную топологию. Коммутаторы SAS – пока еще редкость. Кроме того, SAS не поддерживает аппаратную репликацию – ее придется реализовывать программными средствами. Поэтому, описанная выше концепция – не панацея, а всего лишь альтернатива традиционным СХД. Если у вас уже есть развернутый аппаратный SAN, это ни коим образом не повод от него отказываться. Железо должно отрабатывать вложенные в него деньги. Но если вы пока еще только задумываетесь об архитектуре будущей системы хранения данных, имеет смысл рассмотреть и данный вариант, как вполне обоснованный с инженерной и экономической точек зрения. Ну и напоследок хотелось бы отметить, что «суп из SAN» можно сварить не только на технологиях Microsoft. Если у вас имеется хранилище с интерфейсом iSCSI, можете воспользоваться такими продуктами, как StarWind iSCSI SAN, VMware Virtual SAN, Openfiler, FreeNAS, Open-E DSS V6 и т.п.

Приятного аппетита!
При подготовке статьи были использованы материалы портала

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то