Разное → Выравнивание разделов на современных жестких дисках с помощью программных средств

paraSG 25 июня 2010 в 15:59 106k
Появление современных жестких дисков с секторами размером 4 KБ (вместо 512 байт) сделало проблему выравнивания разделов актуальной как для IT-специалистов, так и для обычных пользователей. Все дело в том, что несоответствие между физическим и логическим распределением данных может привести к резкому снижению производительности всей системы и сокращению срока службы оборудования.

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

image

На рисунке представлена упрощенная схема сегментации, где один раздел занимает все место на диске и все сектора. Раздел соотносится с первым сектором, начало раздела соответствует началу первого сектора. Однако это слишком упрощенная схема. Ведь раздел состоит из логических единиц/блоков. Рассмотрим то, как они связаны с секторами:

image

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

Как и почему несоответствие разделов и секторов замедляет работу жесткого диска?

Размер физических секторов современных жестких дисков (например, Western Digital) составляет 4096 байт, на физическом уровне происходит обработка блоков данных размером 4 KБ, однако для внешнего оборудования и программного обеспечения такие диски выглядят как “традиционные”, имеющие секторы по 512 байт. Это позволяет обеспечить совместимость с более ранними версиями ПО. В таких случаях добавляется еще один уровень – уровень совместимости.

image

На рисунке показаны три уровня распределения данных. Нижний уровень – это, собственно, жесткий диск и физические секторы по 4 КБ. Второй уровень – абстрактное представление в виде секторов размером 512 байт для внешних систем. А самый верхний уровень – действующая файловая система с кластерами размером 2 KБ, каждый из которых равен четырем абстрактным секторам и половине физического сектора. Таким образом, 1 кластер = 4 абстрактных сектора = ½ физического сектора.

Обратите внимание, что все три уровня выровнены относительно друг друга и начала диска. Таким образом, чтение или запись данных одного кластера реализуется с использованием четырех секторов по 512 байт и одного сектора размером 4KБ. Количество операций чтения-записи минимально; диск работает с максимальной производительностью.

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

image

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

Каковы причины смещения? Все версии ОС Windows, предшествующие Vista, при создании кластеров тома ориентируются на секторы размером 512 байт и помещают начало раздела в соответствии с ними, а не с секторами 4 KБ как показано на предыдущем рисунке, где начало раздела сдвинуто на один сектор 512 байт.

Обычно раздел начинается с 63 сектора. 63 сектора – устоявшийся размер «цилиндра» диска и некоторые старые версии DOS или Windows требуют, чтобы раздел был выровнен относительно «цилиндра» для правильной адресации и доступа к секторам. Современные ОС не используют устаревшую схему адресации CHS (цилиндр/головка чтения/сектор). Но по ряду причин все версии Windows, предшествующие Vista, создают разделы по этому правилу.

Интересно, что разделы, выровненные по 63 секторам, по чисто математическим причинам не выравниваются по секторам 4 KБ.

image

Очевидно, что 63 сектора по 512 байт не соответствуют целому числу секторов 4 KБ. Таким образом, первый и все следующие за ним разделы диска будут расположены со смещением.

image

Что делает Paragon Alignment Tool?

В ближайшие дни компания Paragon Software представит утилиту Paragon Alignment Tool (PAT). По сути, она перемещает разделы на некоторое количество секторов по 512 байт, выравнивая тома. Например, для выравнивания раздела размером 63 сектора необходимо просто переместить его вперед на один сектор размером 512 байт.

image

Теперь начало раздела соответствует началу сектора 4KБ, и этот раздел, и все последующие располагаются правильно.

image

PAT смещает начало раздела на 2048 секторов по 512 байт от начала диска, что соответствует 1 МБ, а также прекрасно подходит для секторов 4 KБ.

Необходимость выравнивания разделов для SSD

Для твердотельных дисков SSD проблема неправильного расположения разделов еще более актуальна, чем для традиционных жестких дисков. Размер модулей памяти современных SSD составляет 4096 байт, что является аналогом секторов 4 KБ. Таким образом, все упомянутые ранее проблемы, связанные с выравниванием разделов, возникают и при использовании SSD.

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

Выравнивание разделов с помощью PAT устраняет избыточные операции чтения/записи, что позволяет значительно увеличить скорость работы и продлить срок службы SSD.

Необходимость выравнивания разделов для SAN и RAID

Технология RAID позволяет объединить множество жестких дисков и других устройств хранения информации в один большой массив данных. Система воспринимает этот массив как одно большое устройство хранения, а данные распределяются по всем его ресурсам. Объем, по достижении которого данные перестают записываться на один диск массива и начинают записываться на другой, называется размером страйпа, который, в свою очередь, может быть самым разным ( 8 КБ, 16 КБ, 32 КБ или 64 КБ).

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

Чтобы решить эту проблему PAT сдвигает разделы на 2048 секторов. Такое смещение подходит для большинства размеров страйпа. Работа с данными становятся быстрее за счет устранения избыточных операций.

Необходимость выравнивания разделов в виртуальных средах

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

image

На этом рисунке представлена конфигурация сервера VMware ESX \ Server \ vSphere, использующего хранилище RAID/SAN. Здесь разделы неправильно расположены сразу на двух уровнях, что ведет к серьезному снижению производительности. Например, чтобы считать данные с первого кластера, система должна считать три VMFS-блока и четыре RAID-блока (и еще больше страйпов).

В данный момент PAT не может перемещать сами тома VMFS, но может выравнивать разделы на виртуальных дисках.

image

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