Продолжаем знакомить читателей с наиболее приметными новинками Windows 8, способными потенциально пригодиться всем пользователям, а не только апологетам post-PC. Storage Spaces — одна из них, однако грамотное ее использование требует понимания кое-каких деталей.
В отличие от Hyper-V, встроенного в старшие редакции Windows 8, новая функция под названием Storage Spaces (перевод в русскоязычной версии — «дисковые пространства» — не вполне корректен) присутствует во всех редакциях (а также в Windows Server 2012) и находится на виду — в виде отдельного апплета в панели управления. Если вкратце, то ее назначение состоит в организации отказоустойчивых хранилищ на базе неспециального массового оборудования, соответственно, она относится к так называемым «программным RAID», но реализована, естественно, с определенной спецификой.
Microsoft постаралась сделать Storage Spaces максимально прозрачной для пользователя и гибкой в применении. Для этого хранилище формируется на нескольких уровнях. Прежде всего, необходимо создать пул хранения, т.е. логическое объединение нескольких накопителей. Примечательно, что при этом можно комбинировать устройства с разными объемами и интерфейсами — USB, SATA, SAS, SCSI и даже iSCSI. К примеру, на этой иллюстрации в пул объединены внутренний SATA-диск и внешний USB, систему это вполне устраивает:
Впрочем, чрезмерные вольности могут приводить к негативным эффектам, прежде всего в части производительности.
Затем на основе пула хранения нужно создать уже собственно пространства хранения, которые на системном уровне выглядят как обычные логические диски, хотя их природа, как понятно из описания, достаточно виртуальна. Поскольку в нашем примере пул объединяет два физических накопителя, то логично организовать двустороннее зеркало:
В общем случае, однако, доступны и другие варианты:
Два режима требуют определенных комментариев. Так, для трехстороннего зеркала требуется целых пять дисков, хотя теоретически достаточно трех — причем, в бета-версии Windows 8 именно так и было. Вероятно, схема изменилась уже в последний момент и в доступной сегодня документации четко не описана. По формальным характеристикам подходит RAID-6, однако сторонние тесты не показывают характерного для данного режима (подразумевающего вычисление двух видов контрольных сумм) снижения производительности, кроме того, говорится именно о «зеркалировании», т.е. дублировании информации. Впрочем, схема 1E также под вопросом.
В свою очередь, пространство хранения с контролем четности в точности соответствует RAID-5. Эта схема подразумевает запись не только собственно данных, но и специальных контрольных сумм (результатов операция XOR на данных), что при отказе одного из накопителей позволяет буквально вычислить хранившиеся на нем данные. При этом обеспечивается более эффективное расходование места на дисках, чем при зеркалировании (независимо от числа накопителей лишь один из них необходим для хранения контрольных сумм), однако существенно снижает скорость записи. Поэтому пространства с контролем четности рекомендуются для хранения редко изменяемых данных, к примеру, видео. Из соображений производительности одновременно задействуется не более восьми дисков, хотя в пуле их может быть гораздо больше (понятно, что все это относится уже, скорее, к серверному применению).
В отличие от аппаратных реализаций RAID в Storage Spaces нет жесткого закрепления за дисками определенных функций. В общем случае данные и контрольные суммы как бы «размазываются» по всем доступным накопителям, что придает технологии дополнительную гибкость. К примеру, в пространстве с контролем четности на базе трехдискового пула на каждый диск записывается одинаковый объем информации, соответственно, как только заполнится наименьший, дальнейшая запись станет невозможной. Однако добавление в пул нового накопителя восстановит работу по прежней схеме.
Важной особенностью Storage Spaces является то, что на каждом дисковом пуле может быть создано несколько пространств, в том числе и различных типов. Это обеспечивается так называемой тонкой инициализацией (thin provisioning), когда реальное место под данные выделяется по требованию определенными порциями. Благодаря этому, также можно заранее указать размер пространства хранения, превышающий его реальный объем.
Кроме того, Storage Spaces работает на блочном, а не на файловом уровне. Это достаточно традиционная практика для аппаратных реализаций RAID (с целью распараллеливания операций и оптимизации производительности), но в данном случае серверный подход переносится в клиентскую среду, что не всегда дает позитивный эффект. В частности, это означает, что в общем случае с отдельного диска никакие данные не извлекаются — необходимо обеспечить работу именно пространства хранения.
Однако сами по себе пространства и пулы вполне переносимы, т.е. вся информация об их конфигурации, а также достаточно подробные журналы операций хранятся на них самих. Понадобится лишь вручную смонтировать пространство через апплет Storage Space, т.к. по умолчанию это не делается.
В реализацию Storage Spaces заложен и ряд других компромиссов, к примеру, при добавлении нового диска в пул пространство не перестаивается, что, с одной стороны может снижать эффективность его работы (особенно при использовании накопителей с различными интерфейсами и объемами), но с другой — минимизирует дополнительную нагрузку на компьютер. При замене дефектного накопителя также произойдет лишь его заполнение необходимой информацией, общая конфигурация не изменится. Как следствие, нельзя изменить тип пространства без потери данных.
Также достаточно своеобразна реакция системы на заполнение пространства хранения. Начиная с 70% пользователю будут выдаваться соответствующие оповещения через системный Action Center, а при исчерпании места пространство автоматически демонтируется — подключить его можно вручную через тот же самый апплет Storage Spaces. Хотя кажется более логичным, чтобы пространство просто переводилось в режим «только для чтения».
Ситуация с производительностью Storage Spaces также далеко не однозначна. Комбинирование накопителей с разными интерфейсами может приводить к различным негативным эффектам. Особенно это касается USB, где не всегда даже понятно, как порты распределяются между контроллерами и, конечно, дело не только в пропускной способности интерфейса (т.е. USB 3.0 не решит всех проблем). К сожалению, никаких предупреждений пользователь не получит — хотя некоторые неудачные конфигурации довольно легко вычисляются.
Тем не менее, в тех случаях, когда удается распределить одинаковые накопители по независимым каналам, результаты примерно соответствуют общим представлениям о RAID, хотя и с несколько худшим уровнем масштабируемости, чем у аппаратных решений и, естественно, с достаточно большим потреблением системных вычислительных ресурсов. Простое пространство позволяет увеличить производительность и чтения, и записи пропорционально количеству накопителей; при зеркалировании производительность примерно соответствует скоростным показателям отдельного накопителя (хотя в некоторых случаях запись может заметно замедляться); пространство с контролем четности улучшает производительность чтения, но замедляет запись в разы (типично — вчетверо).
В итоге, в нынешнем виде Storage Spaces, пожалуй, не идеальна, но вполне пригодна к использованию. С ее помощью, к примеру, можно задействовать старые накопители, которые уже рискованно использовать поодиночке. Конечно, сегодня появляется все больше бюджетных NAS, однако они все-таки служат иным целям и не обладают гибкостью Storage Spaces. К сожалению, пространства хранения не предназначены для системных (загрузочных) дисков, хотя наверняка все проблемы можно было бы решить тем же методом, что и в BitLocker. Но само появление таких технологий в Windows 8 говорит о том, что Microsoft пока не собирается сбрасывать со счетов рынок традиционных ПК. Соответственно, можно рассчитывать и на совершенствование Storage Spaces в ближайших сервис-пакетах или будущих версиях.
Про DCIM у забезпеченні успішної роботи ІТ-директора