Первое известие о неисправности не вызвало у меня беспокойства. Наши коллеги из Редмонда постоянно сталкиваются с такими проблемами? Насколько сложно будет исправить ошибку?
Чтобы выяснить причину столь долгого ожидания, я поискал дополнительную информацию в Internet и даже обратился в подразделение Microsoft, занимающееся продвижением WHS. Мне было известно, что сервер WHS построен на основе Microsoft Small Business Server (SBS) 2003, а фундамент SBS -- Windows Server 2003. Ни на одной из этих платформ пользователи не сталкиваются с порчей файлов, так чем же объясняется уязвимость WHS?
Первым шагом к разгадке стала регистрация на сервере через Remote Desktop. Вместо пустого рабочего стола я немедленно получил суровое предупреждение: "Многие стандартные административные инструменты Windows Server, доступные на этом рабочем столе, могут нарушить работу Windows Home Server. Изучите документацию, прежде чем использовать любые инструменты и соблюдайте осторожность".
Поначалу я не поверил предупреждению. Продукт ориентирован на домашних пользователей, и я полагал, что для Microsoft это способ сократить число обращений в службу поддержки. Поэтому вместо того чтобы регистрироваться локально на сервере, я использовал удаленную консоль для безопасного выполнения административных задач.
Почему нельзя использовать стандартные административные инструменты, такие как Disk Manager, в WHS? Для дисков и управления дисками компания Microsoft стремилась реализовать структуру, отличную от классической технологии RAID. WHS должен предоставить пользователям возможность добавлять жесткие диски и удалять старые, меньшие диски, одновременно предоставляя пользователю один постоянно растущий набор общих сетевых ресурсов. Кроме того, пользователям WHS нужен был способ защитить важные файлы в случае отказа жесткого диска.
Для этого компания Microsoft предложила новую технологию Windows Home Server Drive Extender, которая невидимо выполняет важные задачи, когда пользователь добавляет или удаляет внутренний или внешний диск. В серверах WHS с единственным жестким диском метод прост: первые 20 Гбайт отводятся под раздел для операционной системы, а остальная часть используется для хранения данных. Область хранения данных называется первичным разделом данных, и WHS просто хранит в ней файлы.
Как только пользователь добавляет второй жесткий диск, ситуация меняется. Файлы, которые находились в первичном разделе данных, становятся малыми указателями по 4 Кбайт (в Microsoft их называют tombstone), а собственно файлы копируются на дополнительный диск. Для дополнительной защиты от отказов жесткого диска можно включить режим Protected Storage, чтобы важные файлы хранились на двух физических дисках. Файл будет выглядеть как хранящийся в общем каталоге в первичном разделе данных, но в действительности он хранится на отдельном диске или дисках. С помощью такого фокуса удается создать впечатление, что первичный раздел данных постоянно растет.
По этой причине очень важно, чтобы пользователь не применял для манипуляций с жесткими дисками такие инструменты, как Disk Manager. Кроме того, важно соблюдать осторожность при работе с проводником Windows, зарегистрировавшись на сервере локально. В целях безопасности обращаться к файлам следует через общий сетевой каталог (например, server1public, server1software). Таким образом, будет происходить соединение с файлами-указателями, а все остальные операции скрыто выполняет WHS Drive Extender.
Технология подробно описана в технической брошюре Microsoft на 20 страницах. Но даже на столь простом уровне очевидно, что во внутренних механизмах сервера должно происходить много событий, чтобы правильно организовать указатель и скопировать собственно данные на нужный диск. В этом "механизме перенаправления" (терминология Microsoft) обнаружилась ошибка, которая и приводит к порче данных. В статье Microsoft "When certain programs are used to edit or transfer files that are stored on a Windows Home Server-based computer that has more than one hard drive, the files may become corrupted" отмечается следующее: "В механизме перенаправления обнаружена ошибка, которая в некоторых случаях, в зависимости от особенностей использования приложения, временных соотношений и рабочей нагрузки, может привести к взаимовлиянию NTFS, диспетчера памяти и диспетчера кэша, а также нарушению их синхронизации". Другими словами, при определенных условиях, когда система обновляет "указатель" и собственно файл, что-то портится. Вместо чистых данных, посланных в файл, в него поступает испорченная информация.
Теперь, после краткого знакомства с работой "механизма перенаправления" становится более понятно, почему для устранения неисправности потребовалось так много времени. Впрочем, потребителю от этого не легче.