Мы уже сообщали о множестве улучшений в ядре операционной системы, сетевых компонентах и файловой системе. И хотя на большинстве компьютеров-клиентов старая добрая проверка chkdsk теперь применяется крайне редко, за исключением особых случаев, мы решили использовать Window 8 как возможность для улучшения этой служебной программы. Мы хотели сосредоточиться на переосмыслении принципа ее работы, чтобы повысить доступность и снизить время простоя из-за chkdsk. Оценивая реальное применение chkdsk, мы заметили, что повреждения происходят все реже, а количество запусков chkdsk не сокращается. И как бы мы ни старались сократить использование вручную средств работы с дисками (например, средства дефрагментации), мы знаем, что многие предпочитают выполнять эти операции вручную — "на всякий случай". Поэтому мы постарались улучшить общие показатели служебной программы chkdsk, ведь ее запуск ограничивает доступность компьютера. А поскольку объемы дисков продолжают расти и многодисковые системы получают все большее распространение, мы захотели улучшить эту служебную программу.  Эту статью подготовил Киран Бангалор (Kiran Bangalore), руководитель программы в нашей главной группе по разработке систем. 
— Стивен


В этой статье я расскажу о новой модели определения работоспособности NTFS для Windows 8 и о нашем модернизированном средстве для выявления и устранения повреждений дисков — служебной программе chkdsk.

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

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

Предыдущая версия chkdsk и модель определения работоспособности NTFS

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

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

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

В Windows Vista и Windows 7 мы оптимизировали скорость выполнения проверки диска, но поскольку каждые полтора года максимальный объем жесткого диска удваивался и соответственно возрастало число файлов на томе, времени на выполнение проверки диска стало требоваться все больше и больше (даже с учетом повышения скорости).

Поэтому в Windows 8 мы изменили сам подход к определению работоспособности системы NTFS, а также изменили принцип исправления повреждений, чтобы свести к минимуму время простоя из-за chkdsk. Мы также внедрили новую файловую систему на будущее, ReFS, в которой для исправления повреждений не требуется выполнять проверку диска в автономном режиме.

Восстановление работоспособности файловой системы

Колоссальный рост емкости хранилищ и числа файлов с пользовательскими данными обусловил необходимость модернизации модели определения работоспособности системы NTFS и служебной программы chkdsk.

Наши заказчики четко очертили три важных требования к работоспособности файловой системы:

  1. Время простоя из-за повреждений файловой системы должно быть нулевым в конфигурациях с непрерывной доступностью и близким к нулю во всех прочих конфигурациях.
  2. Пользователь или Администратор должен быть всегда осведомлен о работоспособности файловой системы.
  3. Пользователь или Администратор должен быть в состоянии восстановить работоспособность файловой системы, если повреждения возникают регулярно.

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

Схема. Обнаружение повреждения (NTFS обнаруживает зафиксированную аномалию в метаданных файловой системы) СТРЕЛКА Оперативное самовосстановление (NTFS пытается быстро самовосстановиться, без перевода тома в автономный режим) СТРЕЛКА Оперативная проверка (NTFS выясняет, носит ли проблема временный или постоянный характер, без перевода тома в автономный режим) СТРЕЛКА Определение нужных действий и ведение журнала в оперативном режиме (при неудавшемся самовосстановлении, NTFS определяет и ведет журнал действий по исправлению, Пользователь или Администратор получает уведомление, без перевода тома в автономный режим) СТРЕЛКА Точное и быстрое исправление (Пользователь или Администратор может перевести том в автономный режим, когда будет удобно, а внесенные в журнал повреждения будут исправлены за несколько секунд. С помощью CSV ввод-вывод данных прозрачным образом приостанавливается для быстрого выполнения исправлений, а затем автоматически возобновляется.)

Мы разработали новый метод связи, описывающий типы повреждений как "команды", действующие на ключевые компоненты и точки проекта — драйвер файловой системы (NTFS), модуль самовосстановления, службу точечной проверки и служебную программу chkdsk. Все повреждения файловой системы классифицируются в зависимости от того, какая из 18 "команд", определенных нами в Windows 8, требуется в каждом случае. Мы оставили место и для возможных новых определений команд, которые помогут нам успешнее диагностировать неисправности в будущем.

Ключевые изменения, внесенные в проект для повышения уровня доступности

    1. Оперативное самовосстановление. Функция самовосстановления была внедрена в Windows Vista (а также в Windows Server 2008), чтобы снизить необходимость в запуске chkdsk. Самовосстановление — это функция, встроенная в систему NTFS и исправляющая некоторые виды повреждений, встречающихся в ходе обычной работы. Исправления могут выполняться без перехода в автономный режим. Если все обнаруженные неисправности устранены путем оперативного самовосстановления, можно обойтись без процедур, выполняемых в автономном режиме . В Windows 8 мы расширили список неисправностей, которые можно устранить без перевода в автономный режим, и таким образом снизили потребность в дальнейших проверках chkdsk.
    2. Оперативная проверка. Некоторые повреждения носят нерегулярный характер, поскольку вызваны проблемами памяти и могут быть не связаны с фактическими повреждениями диска. Поэтому мы добавили в Windows 8 такое новшество, как служба точечной проверки. Драйвер файловой системы запускает эту службу, и она проверяет наличие фактических повреждений на диске, прежде чем файловая система будет переведена на следующий этап модели определения работоспособности. Новая служба выполняется в фоновом режиме и не влияет на нормальную работу системы. Служба не предпринимает действий, если драйвер файловой системы не запускает ее для подтверждения наличия повреждений.
    3. Определение нужных действий и ведение журнала в оперативном режиме. После подтверждения наличия повреждения запускается сканирование файловой системы в подключенном режиме, выполняемое в качестве задачи по обслуживанию файловой системы. В Windows 8 запланированные задачи по обслуживанию компьютера запускаются только в подходящее время (например, во время бездействия и т. п.). Такое сканирование может выполняться в фоновом режиме, а остальные программы будут продолжать работу в обычном режиме. По мере сканирования файловой системы все обнаруженные неисправности будут заноситься в журнал для последующего устранения.
    4. Точное и быстрое исправление. По усмотрению пользователя или администратора том может быть переведен в автономный режим, а повреждения, внесенные в журнал на предыдущем этапе, могут быть устранены. Эта операция называется "точечным исправлением" (Spotfix) и вызывает простой лишь на несколько секунд, а в системах под управлением Windows Server 8 с общими томами кластеров нам удалось свести время простоя к нулю. Благодаря этой новой модели время выполнения проверки диска в автономном режиме теперь прямо пропорционально числу повреждений, а не числу файлов, как было в прежней модели.

Сравнительная диаграмма времени выполнения проверки chkdsk на Windows Server 2008 R2 и на Windows Server 8. На более старой системе требуется почти 2 минуты на проверку и исправление 100 млн файлов, 4 часа 48 минут на проверку и исправление 200 млн файлов, свыше 6 часов на проверку и исправление 300 млн файлов. На Windows Server 8 операция spotfix в каждом случае занимает менее 2 секунд.
Сравнение на Windows Server: chkdsk /f и chkdsk /spotfix

  1. Улучшенная управляемость. Чтобы повысить прозрачность новой модели определения работоспособности, Windows отображает состояние файловой системы через следующие интерфейсы:
    • Центр поддержки. Работоспособность диска нагляднее всего показана в Центре поддержки как "Состояние диска" (см. рисунок ниже), где видно, когда необходимо предпринять действия, чтобы восстановить работоспособность тома.
    • Проводник. Состояние работоспособности отображается также в Проводнике, под пунктом "Свойства диска".
    • PowerShell. Вызвать функцию chkdsk можно и с помощью нового командлета в PowerShell, REPAIR-VOLUME, который может быть полезен при удаленном управлении работоспособностью файловой системы.
    • Диспетчер сервера. В Windows Server можно также управлять состояниями работоспособности томов непосредственно из диспетчера сервера.

Новая модель определения работоспособности файловой системы

В новой модели работоспособность файловой системы может определяться четырьмя состояниями; одни носят чисто информативный характер, другие требуют действий. Состояния работоспособности:

  1. Работоспособна и функционирует в оперативном режиме
  2. Требуется оперативная точечная проверка
  3. Требуется оперативное сканирование
  4. Требуется точечное исправление

Цепочка идет от "Работоспособна" к "Требуется оперативная точечная проверка", далее "Требуется оперативное сканирование", затем "Требуется точечное исправление" и снова "Работоспособна".
Состояния работоспособности файловой системы Windows 8

      1. Работоспособна и функционирует в оперативном режиме. В этом состоянии нет обнаруженных повреждений файловой системы и никаких действий не требуется. Файловая система пребывает в этом состоянии основную часть времени.

    Центр поддержки показывает, что действий не требуется

      1. Требуется оперативная точечная проверка. Файловая система остается в этом переходном состоянии лишь на краткое время после обнаружения повреждения, которое нельзя исправить путем самовосстановления; том находится в этом состоянии до тех пор, пока служба точечной проверки не подтвердит наличие повреждения. Действий пользователя снова не требуется.
      2. Требуется оперативное сканирование. Когда служба точечной проверки подтверждает наличие повреждения, файловая система переходит в состояние "Требуется оперативное сканирование". В следующем периоде обслуживания выполняется оперативное сканирование; действий пользователя не требуется. Это состояние отображается в Центре поддержки, поэтому сканирование можно запустить вручную, если желательно сделать это до следующего периода обслуживания. Сканирование запускается в фоновом режиме, т. е. можно продолжать работать на компьютере, пока идет сканирование. В ходе этого оперативного сканирования все подтвержденные неисправности и меры по их устранению заносятся в журнал для последующего исправления. В системах под управлением Windows Server 8 время простоя определяется на основе времени простоя процессора и хранилища.

    Сообщение "Проверить диск на наличие ошибок", ссылка "Открыть Центр поддержки"

    Отображается под пунктом "Обслуживание", в сообщении предлагается проверить диск на наличие ошибок, текст сообщения: "Мы обнаружили возможные ошибки на диске и должны его проверить. Во время проверки вы сможете пользоваться диском". Кнопка: Запустить проверку. Ссылка действия: Отключить сообщения о состоянии диска.

    1. Требуется точечное исправление. Файловая система переводит том в это состояние по завершении оперативного сканирования, если требуется, и это состояние отображается в Центре поддержки. На клиентских системах можно перезапустить компьютер, чтобы устранить все неисправности файловой системы, внесенные в журнал на предыдущем этапе. Перезапуск выполняется быстро (займет лишь несколько секунд), и компьютер возвращается в работоспособное состояние. В системах под управлением Windows Server 8 для исправления повреждений на томах данных перезапуск не требуется. Администраторы могут просто запланировать точечное исправление на следующий период обслуживания.

    Уведомление: "Перезапустите компьютер, чтобы устранить ошибки диска". Щелкните, чтобы перезапустить компьютер.

    Перезапустите компьютер, чтобы устранить ошибки диска (важно) Мы нашли ошибки на диске. Чтобы исправить эти ошибки и предотвратить потерю данных, перезапустите компьютер сейчас. Кнопка: Перезапуск.

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

    На вкладке "Сервис" в разделе "Проверка на наличие ошибок", Проверка диска на наличие ошибок файловой системы. Кнопка: Проверить

    Проверка на наличие ошибок (Chk2 (D:)) Восстановите этот диск На этом диске были обнаружены ошибки. Во избежание потери данных восстановите этот диск прямо сейчас. Восстановить диск. Вы не сможете пользоваться диском, пока Windows устраняет ошибки, обнаруженные при последнем сканировании. Может потребоваться перезапуск компьютера. Кнопка: Отмена.

    Заключение

    Мы сделали обнаружение и исправление ошибок файловой системы в Windows 8 более прозрачным и менее обременительным для рабочего процесса. Надеемся, что эти изменения станут для вас ценным подспорьем, и ждем ваших откликов.

    — Киран Бангалор (Kiran Bangalore)
        Старший руководитель программы, основная группа по хранению данных и файловым системам в Windows


    Загрузите это видео, чтобы просмотреть его в своем мультимедиа-проигрывателе:
    MP4, высокое качество | MP4, низкое качество

    Вопросы и ответы

    Будет ли новая модель определения работоспособности функционировать на съемных дисках?
    Да, она работает на съемных дисках, определяемых как фиксированные носители, подобно большинству внешних жестких дисков.

    Как включить новую модель определения работоспособности файловой системы?
    Не нужно ничего делать: новая модель определения работоспособности файловой системы включена по умолчанию.

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

    Можно ли переходить с Windows 8 на Windows 7, не затрагивая модель определения работоспособности файловой системы?
    Да, модель определения работоспособности файловой системы адаптируется к любой версии операционной системы, в которой она установлена.

    Понадобится ли выполнять проверку chkdsk для системы ReFS?
    В ReFS реализована иная модель устойчивости, поэтому запускать традиционную служебную программу chkdsk не требуется.

    Понадобится ли когда-либо выполнять прежнюю проверку chkdsk /f?
    Бывают случаи, когда неисправное аппаратное обеспечение вызывает такое серьезное повреждение, что подключить файловую систему невозможно. В таких случаях следует выполнить полную проверку chkdsk в автономном режиме, чтобы восстановить файловую систему. Если по каким-то причинам это не удается, рекомендуется произвести восстановление из резервной копии.

    Перезагрузка действительно необходима для восстановления несистемных томов?
    Нет, но Центр поддержки обычно обеспечивает самый простой вариант. Если вы опытный пользователь, можете исправить несистемные тома, открыв свойства диска или запустив chkdsk \scan <volume>: и chkdsk \spotfix <volume>: из командной строки.

    Я часто запускаю chkdsk /f для проверки состояния наших дисков; это все еще нужно?
    Нет, система сообщит вам, когда будет обнаружено повреждение, а затем вы сможете запустить chkdsk /scan для обнаружения всех неисправностей. Оперативная проверка chkdsk /scan не снизит доступность диска или системы.

    Сегодня я запускаю chkdsk /f в режиме "только чтение" для проверки состояния наших дисков; нужно ли продолжать делать это?
    Нет, рекомендуется вместо этого запускать проверку chkdsk/scan, поскольку при этом будут также выполнены все возможные оперативные исправления и при необходимости проведена подготовка к точечной проверке (spotfix).