in English

Главная Теория Загрузка Вопросы Поддержка Помощь проекту

Информация на этой странице поможет понять принцип работы AF-дисков и необходимость выравнивания томов.

В начале несколько слов о работе обычного жёсткого диска. Как известно, диск представляет постоянную память компьютера. Мы можем записать какую-либо информацию на диск и затем её прочитать. Чтение и запись – это две главные операции, которые должен исполнять диск. Вся информация на диске разбита на кусочки одного размера, так называемые сектора. У большинства дисков сектор имеет стандартный размер – 512 байт. Сектор – это минимальный объём информации, с которым работает диск. Это значит, что мы не можем попросить диск прочитать 7 или 13 байт, он не умеет этого делать. Но зато просьбу прочитать 1 сектор или сразу 1000 секторов диск выполнит с большой охотой. Каждый сектор диска имеет свой порядковый номер (линейный адрес). При выполнении операции чтения или записи диску обязательно сообщается номер сектора, который требуется записать или прочитать.

Существуют диски, у которых размер сектора больше 512 байт, например 4096 байт. Больший размер сектора позволяет эффективнее использовать поверхность диска, так как, кроме собственно данных пользователя, для каждого сектора диск хранит служебную информацию. Чем больше сектор, тем меньше доля служебных данных, и, соответственно, выше ёмкость диска. К сожалению, просто взять и увеличить размер сектора диска проблематично, огромное множество программ способно работать только со стандартным 512-байтовым сектором. Стремясь повысить ёмкость дисков, производители пошли на следующую хитрость. Служебные данные сохраняются для большого сектора, но в адресах для операций чтения и записи по-прежнему указываются сектора стандартного размера. Фактически имеется два размера сектора: внутренний (физический) и внешний (логический). Диск реально имеет большой размер сектора, но при этом имитирует стандартный размер сектора, то есть преобразует внутри себя адреса логических секторов в адреса физических. Извне такой диск ничем не отличается от стандартного, и все программы работают как прежде. Такая технология получила название Advanced Format. Диски, изготовленные с её использованием, будем называть AF-диски. Как правило, размер физического сектора составляет 4096 байт, а размер логического ровно в 8 раз меньше – стандартные 512 байт.

Почему был выбран размер именно 4096 байт скоро станет понятно. Сейчас же, для более полного понимания, можно рассмотреть выполнение операций чтения и записи AF-диском. Например, запрос на чтение сектора №9 приводит к следующим действиям внутри диска:

  1. Логический адрес 9 транслируется в физический адрес 1 (целая часть от 9•512/4096).
  2. Выполняется чтение сектора №1 размером 4096 байт во внутренний буфер диска.
  3. Диск возвращает данные из буфера, соответствующие логическому сектору №9. Это байты с 512 по 1023-й включительно, все остальные прочитанные байты игнорируются.
Операция записи того же сектора №9 выглядит так:
  1. Логический адрес 9 снова транслируется в физический адрес 1.
  2. Выполняется чтение сектора №1 размером 4096 байт во внутренний буфер.
  3. Байты буфера с 512 по 1023-й переписываются новыми данными.
  4. Выполняется запись физического сектора №1 данными из внутреннего буфера.
Как мы видим, операции AF-дисков значительно усложнились по сравнению с обычным диском. Более того, операция записи теперь сначала выполняет чтение! Это может существенно подорвать производительность диска.

Положение спасает тот факт, что почти все операции записи и чтения инициирует файловая система. А файловая система оперирует блоками данных своего размера, так называемыми кластерами. Самый распространённый размер кластера равен тем самым 4096 байтам. Пусть кластер занимает на AF-диске логические сектора с 8-го по 15-й, тогда запись этого кластера диск выполнит следующим образом:

  1. Логические адреса 8 и 15 транслируются в физический адрес 1.
  2. Выполняется запись физического сектора №1.
Операция чтения исчезла! Ключевым условием такой оптимизации стала запись непрерывного блока логических секторов, который покрывает в точности один физический сектор. Другими словами, операция записи была выровнена относительно физического сектора.

Но на этом история не заканчивается, потому что между файловой системой и диском лежит том:

Том – это то, что большинство пользователей видит под буквами C:, D: и так далее. Наличие томов позволяет существовать нескольким файловым системам на одном диске. Для каждого тома выделен один или более непрерывных участков логических секторов на диске. Такой участок называется экстент. От расположения экстентов тома будет зависеть выравнивание операций относительно физического сектора диска.

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

Как видно из рисунка, каждый кластер файловой системы отображается точно на физический сектор диска. Такой том правильно выровнен, и AF-диск в этом случае будет показывать свою максимальную производительность.

К сожалению, всё ещё популярная ОС Window XP размещает тома начиная с 63-го сектора диска. Число 63 не делится нацело на 8, поэтому при разбиении AF-диска штатными средствами Windows XP том окажется невыровненным:

В этой ситуации AF-диску придётся выполнять дополнительные чтения при записи, жертвуя производительностью.

Чтобы окончательно запутать дело, производители оснастили некоторые модели AF-дисков перемычкой, которая заставляет диск добавлять единицу к логическому адресу при его трансляции в физический адрес. При этом первые 512 байт диска не отображаются ни в какой логический сектор, то есть просто не используются. Графически это выглядит так:

При использовании такой перемычки, созданные в Windows XP тома будут автоматически правильно выровнены.

В качестве заключения подведём краткий итог:

  • AF-диски более эффективно используют поверхность диска, но требуют выравненности операций чтения/записи относительно физического сектора для достижения максимальной производительности.
  • Операции выровнены при соблюдении двух условий:
    1. Размер кластера файловой системы кратен физическому сектору.
    2. Начало каждого экстента тома попадает на границу физических секторов диска.

Есть вопросы? – Пишите на


© 2011, Сергей Волынкин