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

    Появление современных жестких дисков с секторами размером 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

    При такой конфигурации все тома и разделы расположены правильно и общая скорость выполнения операций с данными увеличилась в два раза.
    Paragon Software
    25.39
    Company
    Share post

    Comments 55

      +2
      Зря вы описали проблему, а таблетку от неё не дали.
      Я пошёл искать таблетку в другой аптеке.
        0
        Она уже есть — ниже ссылка.
        +2
        для тех, кто создает новый раздел — абсолютно бесполезная вещь.
        запускаем diskpart
        выбираем диск (select disk 1)
        создаем раздел (create partition primary align=64)
        цифры редактируйте на свое усмотрение

        Да, вы не написали, утилита платная?
          0
          будет платной. Но может мы сделаем конкурс и разыграем некоторое количество ;)
            +1
            upd: официальный мануал с деталями.
            +3
            Почему в ближайшие дни?
            Вот тут она у вас уже раздаётся бесплатно (до 30го июня).
              0
              Выходит русская версия) а там — англоязычная.
                0
                А прямой ссылки нету ли, чтоб без формы?
                  0
                  Так серийник на почту шлют.
                0
                >> Размер модулей памяти современных SSD составляет 4096 байт
                Да ну?!

                P.S. Размер != ёмкость
                  +1
                  Возможно, имелось в виду не размер ИМС с памятью а каких-то отдельных модулей внутри неё.
                  P.S. Просто предположение.
                  0
                  Я так понимаю, что это критично только при большом количестве маленьких файлов.
                  Вот предположим, для простоты, что размер кластера равен размеру блока, то есть 4K. Если кластер не выровнен на границу блока, а сдвинут, скажем на 512 байт, то чтобы прочитать файл размером 4 K диску потребуется прочитать два блока. А если файл (нефрагментированный) размером 64 K, то потребуется прочитать 17 блоков вместо 16. То есть если на диске хранятся относительно большие нефрагментированные файлы, то «пенальти» при чтении будет незначительным. Я не думаю, что контроллер диска настолько глупый, чтобы читать каждый раз по два блока на кластер, тем более что там ещё и кэш всё-таки есть.
                  А вообще спасибо, я вот об этом раньше как-то и не задумывался.
                    +1
                    Да, есть подозрение что решение проблемы больше относится к «кошерности», чем к тому что всё гораздо медленнее работает.
                      0
                      на обычных системах думаю разницы в скорости вы не заметите, а вот в сложных рейдах — очень может быть(сразу несколько дисков перестанут делать избыточные операции). Ну а для ссд-дисков уже сто раз писали что эта процедура обязательна если вы хотите чтобы диск прожил подольше — чтобы при записи мелких файлов каждый писался в свой сектор, а не в два сразу.
                    0
                    А всё почему? А всё потому что
                    1) Наделали высокоскоростных интерфейсов, а сами винты как были медленными, так и остались
                    2) Смотри 1
                    3) Мне бы вот маленький винт, гиг на 40, но чтоб летал без всяких рейдов
                      +4
                      > 3) Мне бы вот маленький винт, гиг на 40, но чтоб летал без всяких рейдов

                      Ну это Вам, коллега, вероятно что-то типа этого надо:

                      64GB SATA2 DDR2 HyperDrive



                      Ещё у Gigabyte, кажется, похожие решения были, но вроде не такие ёмкие.
                      Ну и денег стоит оно соответственно, да и компьютер придётся постоянно включённым держать.

                      Зато этой штуке, я так полагаю, будет глубоко пофиг как там кластеры относительно блоков располагаются.
                        +1
                        Постоянно включённым комп держать не нужно, т.к. в этой железке есть две плюшки:
                        1. Слот для CF карты на которую сливается вся инфа при выключении и с которой восстанавливается при включении (есть встроенный аккумулятор)
                        2. Разъём для подключения внешнего питания — железка может получать питание снаружи даже при выключенном компе.

                        Сам о ней задумываюсь. Для БД — самое оно!

                        Пустая коробка (без DDR и CF) стоит около 300 баксов. Куда там серверным SSD за $700-$1000
                        0
                        Либо что то вроде этого www.nix.ru/autocatalog/ssd_ocz/OCZ_OCZSSDPCIEZDM84256G_ZDrive_m84_PCIExpress_SSD_PCIe_x8_MLC_90600.html

                        Скорость записи До 650 Мб/сек
                        Скорость чтения До 750 Мб/сек
                        0
                        долго ждал подобную статью
                        прекрасное описание и иллюстрации
                          0
                          Если кто-то загорелся желанием повыравнивать, то для WD винчестеров можно взять бесплатную утилиту, основанную на Paragon — WD Align. Для не WD винчестеров взять WD Align, найти скрипт и сломать определение винчестеров WD. Но смысла для обычных винчестеров по-моему немного. Утилита простая как валенок — показывает что надо выровнять, а потом несколько часов кряхтит над операцией.
                            0
                            Информация с дисков не пропадает?
                              0
                              Нет. Только позаботьтесь о том, чтобы не пропало электричество, ибо операция очень серьёзная (практически сдвигаются все данные) и в случае прерывания может привести данные в совершенно нечитабельный вид.
                            0
                            Современные ОС/утилиты разве не учитывают этого «из коробки»?

                            Спасибо за интересную тему и успехов.
                              0
                              Windows после XP (Vista, 7, Server 2008 и далее) — учитывают.
                                0
                                А как насчет ESXi?
                              +1
                              Простите, ради бога.
                              Можете две страницы текста резюмировать в пару предложений?

                              Слишком сложно читать, а суть понять хочется.
                                +3
                                Выравнивание — хорошо, покупайте Paragon Alignment. Примерно так.
                                +1
                                Короче, я не поленился и проверил. Написал небольшой тест, который рекурсивно обходит директории и генерит список файлов (в забеге участвовало 23000 относительно небольших файлов). После чего перезагрузил Виндовс и запустил тест, который берёт этот список и читает 4096 первых байт каждого файла. Потом выровнял раздел (утилита сказала, что он был невыровнен), перезагрузил Виндовс и запустил тест снова.
                                До выравнивания — 92 секунды
                                После выравнивания — 88 секунд.
                                Ну то есть эффект вроде как имеет место быть, хотя у меня и нет полной уверенности в том, что разница не лежит в пределах статистической погрешности (по идее тесты надо по многу раз гонять, перезагружаясь, и на разных размерах и т.д.).
                                  +2
                                  А в тестах Фцентра (синтетика) разница бывает и в разы для выровненного и не выровненного дисков — www.fcenter.ru/online.shtml?articles/hardware/hdd/28121
                                  Смотреть на графиках WD aligned и WD unaligned

                                  Зы: удивлен остутствие в комментариях картинки JPG vs PNG. В глаза очень бросается.
                                    0
                                    О, спасибо за ссылку. Там на самом деле очень велик разброс от теста к тесту. Кроме того. что там делает PCMark на уровне файловой системы сказать довольно тяжело. А вот FC Test «Read» показывает похожие на мои результаты.
                                    То есть разница видимо будет более существенна в зависимости от методики тестирования.
                                      0
                                      У меня винт WDC WD15EARS-00Z5B1 как был тормознутым так и остался, никакой align не помог
                                        0
                                        А чем меряете? У меня такой-же, вроде никаких жалоб.
                                          0
                                          HD Tune, скорость пляшет от 2мБ/c до 90мБ/c, другой Seagate стабильно держит скорость в районе 100, правда это все тесты. Меня волнуют тормоза в повседневной работе, начал копировать файлы с диска на диск, чуть больше гига, так скорость сначала была от 800кб/c, а потом плавно спустилась до 350. Вообщем жесть и даже хваленные 64Mb кеша не спасают :)
                                    0
                                    идея ясна, уверен, что пойму (ненужные мне) детали дочитав до конца… :)

                                    есть вопрос для Win & Linux — чем быстро…
                                    1.… проверить?
                                    2.… поправить?
                                      0
                                      проверить в линуксе можно fdisk/testdrive — просто посмотреть с какого по счету сектора начинается и убедится что цифра кратна 4кб
                                      0
                                      В наличии программный RAID1 на 2 Western Digital Green 1.5 TB, под W2K3 Server DCE. Никаких плясок с выравниванием секторов не делалось, сервер используется для резервного копирования — каждый вечер создаются резервные копии данных, большой активности нет. Вопрос: учитывает ли W2K3 физический размер секторов, и надо ли выравнивание в данном случае? Перед установкой дисков в сервер почитал мануалы на оф. сайте — получалось, что форматировать родной утилитой надо только для WinXP.
                                        0
                                        абсолютно неважно в какой ОС вы работаете с уже разбитыми дисками — ей не важно выровненые они или нет. Важен вопрос чем вы создавали разбивку на винтах — если прога современная и умная то она все сделала правильно(конечно если не включать режим совместимости с дос). а проверить нужно ли выравнивание можно утлитой из статьи или родной вестерновской
                                          0
                                          Точно уже и не помню, чем разбивал — несколько раз переделывал. Или средствами W2K3, или Acronis Disk Director Suite, Server Edition. Еще — диски стоят в программном зеркале, и утилита от Paragon не может работать с динамическими томами. Т.е. надо разбить зеркало, проверить, собрать снова. Все это очень не быстрые операции, и вопрос — зачем? Все прекрасно работает и так, большой дисковой активности на зеркале нет, маленьких файлов тоже — там только бэкапы. Так что следую старой проверенной истине — работает — не трогай.
                                        0
                                        А на линуксе как это делать?
                                          0
                                          fdisk'ом. В экспертном режиме можно сместить вперед начало раздела. Данные естественно никуда не перемещаются, просто изменения в разметке винчестера. Таким образом свой SSD выравнивал.
                                            0
                                            В интернетах даже где-то видел скрипт который дает грамотные параметры для этого дела. Кажется применительно к ext4, то есть вбиваются параметры диска, а оно дает подходящие параметры к mkfs. Ну и про выравнивание там тоже было вроде как
                                            +1
                                            а почему 64-битная версия ставится в Program Files (x86)?
                                              0
                                              После двух часов выравнивания пришло понимание что меня развели.
                                              Только не могу объяснить как и почему.
                                              • UFO just landed and posted this here
                                                  0
                                                  Да вроде бы WD предлагала эту утилиту безплатно в нагрузку к своим дискам.
                                                    0
                                                    Если вы говорите про нашу утилиту — не совсем правы. Она будет стоить около 300 рублей.
                                                    0
                                                    Как только люди не извращаются… эх LVM почему тебя нет в супер винде?
                                                      0
                                                      Ставлю Windows 7, fs:ntfs размер сектора 4 Кб и никакие утилиты не нужны.
                                                      Добавлю также что не все диски WD имеют сектора 4 Кб, а только модели с буквенной приставкой EARS, например Green серия.
                                                        0
                                                        Размер сектора и сектор, с которого начинается первый раздел — разные вещи.
                                                          0
                                                          И к чему ваш комментарий?
                                                          Paragon PAlligner нужен только для XP ну и возможно для сред вроде VMWare ESX загрузчик которой должен находится в первых 512 байтах.
                                                          Загрузчики Vista, Windows 7 такой проблемы не имеют. При изначальном разбитии диска именно средствами Windows 7 проблемы с выравниванием не возникает и нужда в утилите отпадает.
                                                            0
                                                            Мой комментарий к тому, что в ntfs не размер сектора, а размер кластера 4 кб. И он никак на положение раздела относительно начала его не влияет. Я не понял, к чему вы вообще ntfs приплели.
                                                              0
                                                              PAlligner нужен чтобы начало логического сектора совпадал с физическим.
                                                              Если размер сектора логического и физического совпадают и они физически совпадают то теоретически имеем самую лучшую производительность.
                                                              А вообще нужна в PAlligner возникла потому что загрузчики старых ОС требовали размещения в первых 512 байтах потому и разделы получались невыровнеными.
                                                              В статье явным образом нигде не указано что если пользователь изначально разбивал диск штатными средствами Windows 7 то нужды в PAlligner нет.

                                                              P.S. А вообще прдлагаю прекратить некрофилию в полугодичном топике :)

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

                                                        У SSD кластер 4 кб и нужно в файловой системе использовать размер 4096 байт и нужно выравнивать разделы. Правильно понимаю?
                                                          0
                                                          ошибся читать так
                                                          У SSD сектор 4 кб и нужно в файловой системе использовать размер 4096 байт и нужно выравнивать разделы. Правильно понимаю?

                                                        Only users with full accounts can post comments. Log in, please.