Windows Server 2012: Storage Spaces

Windows Server 2012 продолжает виртуализовать всё, до чего дотягивается =). Очередной шаг в виртуализации всего и вся – Storage Spaces. Фактически – виртуализация хранилища со всеми вытекающими отсюда положительными моментами. При первом поверхностном знакомстве напрашивается аналогия со встроенной в предыдущие версии Windows Server технологией создания програмного RAID-массива. Общие моменты имеются. Но есть и много нового.

Из интересных особенностей можно выделить:

  • Предоставление места в хранилище по запросу (то есть фактически, место выделяется тогда, когда оно нужно, а не заранее)
  • Отказоустойчивость (зеркалирование/хранение информации о чётности – аналоги RAID1/RAID5, поддержка горячего резервирования “hot spare”)
  • Сохранение целостности данных (за счёт механизма интеллектуальной проверки на наличие ошибок и их исправление)
  • Поддержка хостинговых сценариев
  • Интеграция с CSV (Cluster Shared Volumes) и отказоустойчивым кластером. Поддерживаются как двух-узловые, так и много-узловые (до 63 узлов включительно) конфигурации

Модель объединения/общего пула хранилищ не является новшеством, она использовалась и раньше производителями хранилищ. Преимущества использования Storage Spaces:

  • Расширяемость. Главным из преимуществ использования пулов хранилищ является уменьшение количества объектов, которыми должен управлять администратор. Вместо управления большим количеством носителей разных типов мы управляем значительно меньшим количеством пулов, что позволяет управлять значительно большими объёмами данных.
  • Простота управления. Инструменты управления: оснастка File and Storage Services, командлеты PowerShell. Доступны как в серверных редакциях, так и в клиентских версиях.
  • Гибкое назначение прав доступа. Права доступа назначаются на уровне пулов. Полная интеграция с Active Directory.
  • Совместимость с большим количеством устройств хранения. USB/SATA/SAS/SCSI/iSCSI. Поддержка протокола SES (SCSI Enclosure Service).
  • Совместимость с приложениями. С точки зрения приложения Storage Spaces выглядят как обычные тома с данными.

Модель общего пула хранилищ в картинках выглядит следующим образом: мы можем взять два диска размером 2Тб и назвать это объединение домашним пулом:

Далее, в этом пуле мы можем создать некоторое пространство (space) для хранения данных, которое не будет привязано к какому-то конкретному физическому диску. Таким образом мы получаем виртуализованное хранилище, которое с точки зрения конечного потребителя никак не связано с физическим хранилищем.

С этим виртуальным хранилищем мы можем работать как с обычным физическим диском – мы можем его разбить на тома, отформатировать, начать копировать на него данные итд. Однако есть некоторые особенности:

  • Размер хранилища – 10Тб, при этом суммарный размер физических дисков составляет всего 4Тб. Фактически, к размерам исходных диском мы привязаны не сильно.
  • Отказоустойчивость, реализованная через зеркалирование – мы имеем как минимум 2 копии данных, что гарантирует нам доступность данных в случае выхода из строя одного физического диска.

Механизм, который позволяет нам реализовать вторую особенность (создать 10Тб диск на базе двух 2Тб физических дисков) называется thin provisioning. Если раньше размер тома, выделяемого под хранения данных был ограничен размером физических дисков, имеющихся в наличии, то теперь мы можем выделять столько места на виртуальном томе сколько нужно (при этом, у нас есть возможность этот размер увеличить). Физические же диски будем добавлять по мере необходимости (виртуальное хранилище будет нас информировать о то, что это необходимо сделать).

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

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

Оба виртуальных хранилища будут использовать одинаковые физические диски для хранения данных, используя при этом разные механизмы распределения данных по физическим дискам. Каждое хранилище будет использовать оптимальные для себя способы распределения данных по дискам и способы восстановления в случае сбоя физических дисков.

Управление. Можно выделить следующие задачи по управлению пулами и виртуальными хранилищами:

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

Ниже каждая из задач расписана подробнее.

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

  • Минимальный размер диска – 10Гб
  • Диск должен быть не размечен
  • Диск не должен быть в каком-либо другом пуле

Если диск подключен к системе и все эти три требования для него выполнены, то он автоматически попадает в первоначальный пул (Primordial Pool):

Диски из этого пула могут быть дальше помещены в созданный в дальнейшем пул. Проверку его доступности так же можно сделать через PowerShell:

Get-StoragePool -FriendlyName Primordial | fl HealthStatus

Создание пула. Доступно либо через контекстное меню пула Primordial

либо через командлет New-StoragePool. При создании необходимо будет указать имя пула и выбрать физические диски.

Создание виртуальных хранилищ. Виртуальное хранилище (virtual disk, Storage Space) создаётся либо через контекстное меню пула

либо через командлет New-VirtualDisk. При создании необходимо будет указать пул (в котором создаём хранилище), имя, тип отказоустойчивости (simple – RAID0, mirror – RAID1, parity – RAID5), тип резервирования (thin provisioning или fixed) и указать размер. Только что созданный диск появится в окне Virtual Disks:

а так же в оснастке управления дисками:

Создание томов. Том создаётся через контекстное меню виртуального диска/хранилища

Необходимо будет указать сервер и виртуальный диск (на которых создаётся том), его размер, букву или папку, файловую систему (NTFS/ReFS) и метку тома. Если установлена дедупликация, то можно будет её включить для тома при его создании. Та же операция может быть выполнена через оснастку управления дисками (как с обычным неразмеченным диском) или через командлет Initialize-Volume (?).

Создание общедоступных папок. Практически ничем не отличается от того, что было раньше. Если запускать через контекстное меню созданного тома, то доступны профили (SMB Share – Basic; SMB Share – Advanced; NFS Share – Basic; NFS Share – Advanced or SMB Share – Server Application):

Добавление дополнительных физических дисков. Запускается через контекстное меню пула

Необходимо будет указать добавляемый диск. Можно использовать командлет Add-PhysicalDisk.

Удаление физических дисков. Запускается через контекстное меню в окне физических дисков

Можно использовать командлет Remove-PhysicalDisk.

Удаление пула. Любой, созданный ранее пул, может быть удалён. Необходимо помнить, что если существуют какие-то ресурсы (тома, общедоступные папки), зависящие от этого пула, то их нужно перед этим удалить. Удаление пула доступно через контекстное меню пула

Порядок создания/удаления объектов в нашей иерархии с пулами будет следующий:

Исходные документы:
Virtualizing storage for scale, resiliency, and efficiency
Understand and Troubleshoot Storage Spaces in Windows Server “8” Beta
Виртуализация хранилищ данных для наращивания объемов, повышения их надежности и эффективности

14 thoughts on “Windows Server 2012: Storage Spaces

  1. Не вводите людей в заблуждение. Интеграции с CSV (Cluster Shared Volumes) НЕТ!!!

  2. 2Tirr:
    В документе “Understand_and_Troubleshoot_Storage_Spaces_in_Windows_Server_8_Beta.docx”, ссылка на который есть в конце статьи, прямо указано, что интеграция с CSV есть. Если Вы можете подтвердить свою правоту ссылками на документацию вендора, где указано, что я ошибся – то готов признать свою ошибку и исправить статью.

  3. За ссылку спасибо. Там в комментариях указано “Our post should have indicated that Storages Spaces formatted with ReFS can’t be used for a CSV. Storage Spaces are compatible with cluster shared volumes”. Там же есть ссылки на библиотеку технета, где говорится, что интеграция возможна и поддерживается.

  4. Боюсь, что я никак не смогу прокомментировать ответ Дениса. Я его сюда позвал. Посмотрим, ответит ли.

  5. Прошу прощения за введение в заблуждение.

    Storage Pool могут использовать как новейшую файловую систему ReFS, так и знакомую уже NTFS.

    Однако Cluster Shared Volume это по факту драйвер для NTFS, и, как следствие набор дисков, отформатированный как ReFS использоваться для общего тома не может.

    Подытоживая: Storage Pool с файловой системой NTFS использовать в качестве CSV можно, с ReFS — нет.

  6. Здравствуйте!
    Скажите, пожалуйста, возможно ли на CSV создать диски с thin provision? Почему-то при использовании кластерных пулов система (Win2012R2) не дает такой возможности. Спасибо!

  7. Добрый день, спасибо за статью – очень позновательно.
    У меня возник вопрос по cluster storage spaces, вернее по его использованию. Если не затруднит – подсобите в понимании, пжл
    Если я верно понимаю, то эта новая фича по сути освобождает от конфигурирования RAID на JBOD?
    В любом случае нужна полка и подключение к нему всех серверов кластера?

  8. 2Тимур,
    Да, “новая” фича может стать дешёвой заменой рэйд-контроллерам. Логика работы рэйд-контроллера реализуется средствами ОС.
    Нет, Storage Space работает в пределах одного сервера. Но можно его использовать совместно с CSV, и тогда потребуется подключение полки ко всем узлам кластера.

Leave a Reply

Your email address will not be published. Required fields are marked *