Share via


Использование больших дисков и больших секторов в Windows 8

Одной из основных служб, предоставляемых операционной системой, является файловая система, и в Windows реализована одна из наиболее развитых файловых систем среди всех распространенных операционных систем. В Windows 7 мы добились значительного повышения надежности, управляемости и устойчивости (например, полностью автоматизировали устаревшую функцию «дефрагментации»). В Windows 8 мы продолжили работать в данном направлении, сосредоточившись на масштабируемости и емкости. Эту статью написал Брайан Мэтью (Bryan Matthew), руководитель программы в группе по работе с устройствами хранения и файловыми системами.
--Стивен

Наши коллекции в цифровом формате с каждым днем растут все быстрее — и значительное влияние на этот рост оказывают цифровые фотографии с высоким разрешением, фильмы высокой четкости и большие музыкальные коллекции. Поставщики жестких дисков отреагировали на эту ситуацию, предложив жесткие диски очень высокой емкости — согласно отчету об исследовании рынка, проведенному недавно компанией IDC, максимальная емкость отдельного жесткого диска к 2015 году возрастет до 8 ТБ.

В 2010 году емкость составляет 2 ТБ; в 2011 году — 3 ТБ; (прогнозируется) постепенное увеличение до 7 ТБ в 2015 году

Зависимость роста максимальной емкости от времени для отдельного диска
(источник: исследование IDC № 228266, Worldwide Hard Disk Drive 2011–2015 Forecast:
Transformational Times (Прогноз относительно жестких дисков во всем мире в 2011-2015 гг.: время перемен),
май 2011 года)

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

Сложности, связанные с жесткими дисками очень большой емкости

Чтобы немного ввести вас в курс дела, давайте определимся, что диски «очень большой емкости» — это диски размером более 2,2 ТБ (на диск). Архитектура, реализованная в Windows в настоящее время, имеет некоторые ограничения, из-за которых использование таких дисков в некоторых сценариях осложняется.

Хотя поставщики и наладили выпуск дисков очень большой емкости, существуют два аспекта, которые требуют повышенного внимания:

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

Давайте обсудим оба этих вопроса более подробно.

Адресация всего доступного пространства

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

  • Метод адресации
  • Схема секционирования диска
  • Реализация встроенного ПО в компьютере — BIOS или UEFI


Метод адресации

Изначально адресация дисков осуществлялась по методу CHS (Cylinder-Head-Sector), в котором можно было указать конкретный блок данных на диске, задав расположение с помощью значения для цилиндра, головки и сектора. Я помню, что в 2001 году (когда я учился в начальных классах средней школы) мы были свидетелями появления диска на 160 ГБ, который обозначил предел для метода адресации CHS (около 137 ГБ), в результате чего потребовалось перепроектирование имеющихся систем для обеспечения поддержки дисков большего объема. (Примечание редактора: мой первый жесткий диск имел объем 5 МБ и был размером с корпус компьютера. -- Стивен)

Новый метод адресации был назван LBA (Logical Block Addressing) — вместо ссылки на сектора посредством дискретной геометрии использовался номер сектора (адрес логического блока), который ссылался на определенный блок данных на диске. Операционная система Windows была обновлена, чтобы использовать этот новый механизм адресации доступного пространства на жестких дисках. В схеме LBA каждый сектор имеет предварительно заданный размер (до недавнего времени 512 байт на сектор), и сектора адресуются в монотонно возрастающем порядке, начиная с сектора 0 и заканчивая сектором n, где:

n = (общая емкость в байтах)/(размер сектора в байтах)

Схема секционирования диска

Хотя теоретически адресация LBA обеспечивает доступ к сколь угодно большим пространствам, на практике наибольшее значение «n» может ограничиваться соответствующей схемой секционирования диска.

Понятие секционирования диска уходит корнями в начало 1980-х годов — в то время сборщики систем осознали потребность в разделении диска на несколько разделов (подчастей), которые можно было бы по отдельности форматировать с использованием файловой системы, а в дальнейшем использовать для хранения данных. В это время и была придумана схема таблицы разделов основной загрузочной записи (MBR), которая позволила представить емкость диска значением размером до 32 бит. Простые вычисления показывают, что самое большое адресуемое пространство, представляемое в виде 32 бит, соответствует 232 или 2,2 ТБ. Конечно, в 1980-х это казалось разумным и практичным ограничением, учитывая то, что самый большой диск, доступный потребителю, имел объем 5 МБ и стоил более 1500 долларов США!

В конце 1990-х годов сборщики систем осознали потребность в обеспечении адресации сверх ограничения в 2,2 ТБ (среди прочих требований). Несколько компаний объединили усилия для разработки масштабируемой схемы секционирования, названной таблицей разделов GPT, в рамках спецификации единого интерфейса EFI (UEFI). GPT позволяет представлять максимальный объем пространства для хранения данных в виде 64 бит, что дает теоретический максимум в 9,4 зеттабайта (1 ЗБ = 1 000 000 000 000 000 000 000 байт).

Начиная с 64-разрядной версии Windows Vista операционная система Windows поддерживает возможность загрузки с жесткого диска с секционированием GPT при одном условии — встроенным ПО компьютера должен быть интерфейс UEFI. Мы уже обсуждали интерфейс UEFI, поэтому вы знаете, что этот новый компонент можно включить на компьютерах под управлением Windows 8. Таким образом, мы подходим к вопросу о встроенном ПО.

Реализация встроенного ПО в компьютере — BIOS или UEFI

Поставщики включают в свои компьютеры встроенное ПО, которое (среди прочего) осуществляет базовую инициализацию оборудования перед передачей управления операционной системе (Windows). «Заслуженное» встроенное ПО BIOS (базовая система ввода-вывода) начало использоваться с момента появления персональных компьютеров — то есть примерно с 1980 года. Учитывая значительную эволюцию, которую компьютеры претерпели за эти десятилетия, на замену BIOS была разработана спецификация UEFI, которая начала применяться на практике с конца 1990-х годов. Интерфейс UEFI был разработан «с нуля» и предназначен для работы с дисками очень большой емкости с использованием таблицы разделов GUID или GPT, хотя для некоторых вариантов BIOS предпринята попытка продлить срок службы и расширить функциональные возможности посредством создания обходных путей для работы с дисками большой емкости (например, гибридной схемы секционирования MBR-GPT). Эти механизмы могут быть весьма ненадежными и подвергать данные риску. Поэтому в Windows требуется использование для загрузочных дисков современного встроенного ПО UEFI в сочетании со схемой GPT.

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

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

Для диска C указано свободное место 2,71 ТБ из 2,72 ТБ

Загрузка Windows 8 с диска SATA объемом 3 ТБ с использованием системы UEFI

Размеры секторов 4 КБ (большие сектора)

Все жесткие диски содержат некоторую форму встроенной логической схемы для исправления ошибок — это позволяет поставщикам жестких дисков автоматически увеличивать отношение сигнала к шуму (SNR) при выполнении чтения с дисков. По мере роста емкости диска биты на нем располагаются все ближе друг к другу, при этом отношение сигнала к шуму при чтении с диска уменьшается. Чтобы компенсировать уменьшение отношения сигнала к шуму, отдельные сектора на диске должны содержать больше кодов исправления ошибок (ECC) для исправления ошибок при чтении сектора. Современные диски достигли того рубежа, на котором описанный метод хранения кодов ECC перестает быть эффективным — значительная часть 512-байтного сектора используется для хранения сведений ECC вместо хранения пользовательских данных. Среди прочего, это привело к использованию секторов большего размера.

Сектора большего размера — носитель «расширенного формата»

При использовании секторов большего размера для кодирования сведений ECC может применяться другая схема, которая обеспечивает более эффективное исправление ошибок и требует меньше места. Благодаря такой эффективной работе можно рассчитывать на поддержку дисков еще большего объема в будущем. Производители жестких дисков договорились использовать размер сектора 4 КБ, который они назвали «расширенным форматом» (AF — Advanced Format), и выпустили первый диск расширенного формата в конце 2009 года. С того времени производители дисков быстро переориентировали свои линейки продуктов на носители расширенного формата; таким образом, можно ожидать, что в будущем данный формат будет использоваться во всех запоминающих устройствах.

Чтение-изменение-запись

Для дисков расширенного формата физическое расположение данных на носителе осуществляется блоками по 4 КБ. Именно с таким «разрешением» могут вноситься изменения на носитель, поэтому для обеспечения адресации более мелких логических блоков диску требуется выполнять специальные операции. Запись, осуществляемая в единицах размера физического сектора, таких операций не требует, поэтому размер физического сектора можно рассматривать как единицу измерения атомарности для носителя.

Как показано ниже, для физического сектора размером 4 КБ можно осуществлять логическую адресацию с использованием 512-байтных логических секторов. Чтобы выполнить запись в один логический сектор, диск не может просто переместить головку в соответствующую часть физического сектора и начать запись. Вместо этого ему необходимо записать весь физический сектор размером 4 КБ в кэш, там изменить 512-байтный логический сектор, а затем записать весь физический сектор размером 4 КБ обратно на носитель (заменив старый блок). Эта операция называется «чтение-изменение-запись» (Read-Modify-Write).

Диски с таким уровнем эмуляции для обеспечения поддержки несогласованной записи называются 4-килобайтными с 512-байтной эмуляцией или просто «512e». Диски без такого уровня эмуляции называются собственными 4-килобайтными — «4K Native».

Показан физический сектор размером 4 КБ с 8 блоками по 512 байт каждый. Этап 1. Чтение сектора размером 4 КБ с носителя в кэш. Стрелка. Этап 2. Обновление 512-байтного логического сектора в кэше (один из 512-байтных блоков выделен). Этап 3. Перезапись предыдущего физического сектора размером 4 КБ на носителе.

В результате использования операции «чтение-изменение-запись» возможно снижение быстродействия для приложений и рабочих нагрузок, связанных с выполнением большого числа несогласованных операций записи. Для поддержки носителей такого типа операционная система Windows должна обеспечить, чтобы приложения могли получать размер физического сектора устройства, а приложения (как приложения Windows, так и приложения сторонних разработчиков) должны обеспечить согласование операций ввода-вывода с заявленным размером физического сектора.

Разработка компонентов для дисков с большими секторами

Сложности, которые возникали в предыдущих версиях Windows, потребовали использовать диски расширенного формата в качестве отправной точки для разработки новых компонентов и технологий в Windows 8; в результате Windows 8 является первой операционной системой с полной поддержкой обоих типов дисков расширенного формата — 512e и 4K Native.

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

Мы решили следующие проблемы:

  • Представлен новый и усовершенствован существующий интерфейс API, чтобы лучше реализовать для приложений возможность запрашивать размер физического сектора диска.
  • Улучшена приспособленность файловой системы NTFS к использованию больших секторов, включая обеспечение правильного заполнения секторов при выполнении расширяющей записи (записи в конец файла).
  • Включена поддержка больших секторов в новый формат файлов VHDx, используемый компонентом Hyper-V, для обеспечения совместимости с обоими типами дисков расширенного формата.
  • Улучшен загрузочный код Windows для обеспечения правильной работы при загрузке с дисков 4K Native.

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

Заключение

Файловая система NTFS в Windows 8 полностью использует возможности, предоставляемые нашими партнерами, для обеспечения эффективной поддержки дисков очень большой емкости. Вы можете быть уверены, что начиная с Windows 8 и NTFS все ваши требования к поддержке запоминающих устройств большой емкости будут удовлетворены!

/Брайан