От чего зависит емкость сектора на жестком диске

Обновлено: 20.11.2024

Жесткий диск — это запечатанный блок, содержащий несколько пластин в стеке. Жесткие диски могут быть установлены в горизонтальном или вертикальном положении. В этом описании жесткий диск установлен горизонтально.

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

Создание дорожек

На жестком диске данные хранятся тонкими концентрическими полосами. Головка привода, находясь в одном положении, может читать или записывать кольцевое кольцо или полосу, называемую дорожкой. На 3,5-дюймовом жестком диске может быть более тысячи дорожек. Секции внутри каждой дорожки называются секторами. Сектор — это наименьшая физическая единица хранения на диске, и почти всегда его размер составляет 512 байт (0,5 КБ).

На рисунке ниже показан жесткий диск с двумя пластинами.

Части жесткого диска

Структура старых жестких дисков (например, до Windows 95) будет относиться к обозначению цилиндр/головка/сектор. Цилиндр формируется, когда все головки дисковода находятся в одном и том же положении на диске.

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

Для операционной системы компьютера дорожки имеют скорее логическую, чем физическую структуру, и устанавливаются при низкоуровневом форматировании диска. Дорожки нумеруются, начиная с 0 (крайний край диска) и заканчивая дорожкой с наибольшим номером, обычно 1023 (ближе к центру). Точно так же на жестком диске имеется 1024 цилиндра (пронумерованных от 0 до 1023).

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

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

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

Секторы и кластеры

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

Каждый сектор диска помечен с использованием заводских данных о расположении дорожек. Данные идентификации сектора записываются в область непосредственно перед содержимым сектора и определяют начальный адрес сектора.

Оптимальный способ хранения файла на диске — непрерывная серия, т. е. все данные в потоке хранятся в одной строке от начала до конца. Поскольку размер многих файлов превышает 512 байт, файловая система сама должна выделить сектора для хранения данных файла. Например, если размер файла составляет 800 байт, для файла выделяется два сектора по 512 КБ.

Кластер может состоять из одного или нескольких последовательных секторов. Количество секторов всегда является показателем степени 2. Кластер может состоять из 1 сектора (2^0) или, что чаще, из 8 секторов (2^3). Единственное нечетное число a секторов, из которых может состоять кластер, равно 1. Это не может быть 5 секторов или четное число, которое не является показателем степени 2. Это не будет 10 секторов, но может быть 8 или 16 секторов.

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

Если непрерывные кластеры недоступны (кластеры, расположенные рядом друг с другом на диске), вторые два кластера могут быть записаны в другом месте на том же диске, в том же цилиндре или в другом цилиндре — везде, где файловая система найдет доступны два сектора.

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

Размер кластера можно изменить для оптимизации хранения файлов. Больший размер кластера снижает вероятность фрагментации, но увеличивает вероятность того, что в кластере останется неиспользуемое пространство. Использование кластеров размером более одного сектора уменьшает фрагментацию и уменьшает объем дискового пространства, необходимого для хранения информации об используемых и неиспользуемых областях на диске.

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

Современные диски резервируют одну сторону одной пластины для информации о расположении дорожек, которая записывается на диск на заводе во время сборки диска.

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

О нас

LSoft Technologies Inc. — частная североамериканская компания-разработчик программного обеспечения. Наша цель — создавать лучшие в мире решения для восстановления данных, безопасности и резервного копирования, обеспечивая высочайшую производительность, инновации и непревзойденное обслуживание клиентов.

Когда в последний раз вам действительно приходилось заботиться о геометрии жесткого диска? Держу пари, что прошло как минимум 25 лет. Ну, не волнуйтесь! Мы снова беспокоимся о размере сектора жесткого диска! Потерпите меня, и я скажу вам, почему.

В настоящее время существует три варианта: 512 байт, 512e и 4K, и мы обсудим различия позже, но сначала немного предыстории.

От 512 Байт до 4 КБ

По мере того, как диски становятся больше, приходится отслеживать все больше и больше секторов, что требует все больших и больших накладных расходов. Каждый сектор имеет определенный объем служебных данных (около 65 байт), что неплохо, если у вас всего несколько тысяч секторов. Однако, когда вы начинаете иметь миллионы, они начинают складываться. Если нам не нужен такой очень маленький размер данных, почему мы теряем это пространство из-за накладных расходов? Есть еще более сложные проблемы, связанные с этими небольшими секторами, и индустрия жестких дисков еще в 2009 году заключила соглашение о переходе на 4K для размера сектора. Возьмем этот пример от Seagate: шесть секторов (3 КБ) занимают столько же места, сколько один сектор 4 КБ из-за накладных расходов. Это означает, что жесткие диски могут быть больше без увеличения плотности записи, отлично!

Отлично! Давайте исправим это. Эти сектора 4K звучат как хорошая идея. Если люди сказали, что мы переходим на него в 2009 году, значит, это не проблема, верно? Ну нет…

Компенсация смены (и штрафов за нее)

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

Другими словами, до 512e, если мне нужно было обновить сектор, я просто отправлял 512 байт на жесткий диск, и он записывал этот сектор. Однако с 512e все по-другому, потому что он использует то, что должно быть знакомо тем из вас, кто следит за нашими блогами и много читал о твердотельных накопителях: чтение-изменение-запись. Это означает, что если вы записываете на диски, он выделяет сектор размером 4 КБ, а затем разделяет его, но если вам позже потребуется обновить только один сектор ниже 512e этого большего, вы должны прочитать исходные данные, изменить их, а затем записать новый обновленный сектор 4K.Диск не может записывать на единицу меньше 4 КБ, поэтому, хотя изменился только 512-байтовый сектор, весь сектор 4 КБ должен быть перезаписан. Это налагает штраф за запись, если вы сталкиваетесь с такой ситуацией, которая может быть довольно частой, с серьезными последствиями … или редкой и незначительной, и на самом деле нет никакой возможности узнать заранее.

Наконец, есть уровни абстракции. Что, если это хранилище находится в SAN? Тот факт, что сами физические диски имеют размер 512e или 4K, не означает, что тома, представленные хостам, имеют размер 512e или 4K. Современные продвинутые SAN обычно могут отображать 512, даже если за ними стоят диски 4K или 512e. Это означает, что хосты могут работать с дисками 4K, даже если они не поддерживают его напрямую.

К настоящему моменту вы, вероятно, думаете: "Хорошо, это все здорово, но какое мне дело до этого?" Ответ появится в моем следующем блоге.

Как определить размер физического сектора (например, если у меня есть диск расширенного формата с секторами размером 4096 байт, а не с устаревшими секторами размером 512 байт) в Windows 7?

Я знаю, что, щелкнув файл и получив свойства, мы можем узнать размер кластера NTFS, но это не то же самое, что размер сектора жесткого диска.

Примечание. Мы спрашиваем о Windows 7, поскольку она (и Windows Vista SP1) понимает существование жестких дисков расширенного формата 4096.

Я собираюсь обновить это для Windows 10, так как это первая статья, которая появляется в моем поиске: Используйте Powershell, «Get-Disk | Format-List» (однако он не показывает все мои диски. )

Лучшее обновление для Windows 10: «Get-PhysicalDisk | выберите размер физического сектора, дружественное имя». Правильно показывает все мои физические диски и размер их секторов.

8 ответов 8

Вы хотите fsutil. Убедитесь, что вы запускаете командную строку от имени администратора.

Обновление Windows 10:

Теперь есть подкоманда "секторинформация", которая может предоставить более точную информацию:

Я хотел расширить ответ Криса Гесслера и отметить, что не существует известного способа получить физический сектор диска с помощью инструментария управления Windows (WMI), например. wмик .

Учитывая, что у меня диск расширенного формата (т. е. он использует 4096 байт на сектор, а не 512):

Ни DiskDrive из WMI:

может сообщить базовый размер физического сектора. Это имеет смысл, когда вы понимаете, что они оба сообщают размер сектора, который использует Windows. Это 512 байт на сектор - просто диск внутри другой.

Это связано с тем, что только Windows 8 поддерживает использование секторов размером 4 КБ. Windows 7 понимает, что размер диска может быть 4 КБ, и работает над выравниванием его 4 КБ кластеров с базовыми 4 КБ секторами жесткого диска.

Обновить

wmic diskdrive теперь показывает физические байты на сектор в байтах на сектор:

Мой вопрос: как это повлияет на внешние жесткие диски? Я куплю внешний USB-накопитель емкостью 1 ТБ, и он будет подключен к компьютерам с Windows 7 и XP. Есть ли простой способ определить размер сектора на внешнем жестком диске?

Есть больше информации и, я думаю, лучший ответ на Stack Overflow на вопрос Как я могу определить размер сектора в Windows. Предлагается использовать команду fsutil fsinfo ntfsinfo

6 ответов 6

Запустите раздел wmic, чтобы получить BlockSize, StartingOffset, Name, Index из командной строки Windows. Вывод выглядит так:

Где размер блока — это размер сектора диска. К сожалению, буква диска не указана.

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

Жесткий диск действительно может неверно сообщать ОС о размере блока. Однако, если я попробую это на Win7 (которая поддерживает 4k секторов), он должен сообщить правильный размер блока. По крайней мере, таким образом я могу наклеить на внешний жесткий диск наклейку «Не использовать это в XP без WDAlign». Любые коллеги-комментаторы с дисками с 4k-секторами, пожалуйста, поделитесь своим опытом. Спасибо!

Причина, по которой это на самом деле не работает, объясняется в этом ответе на Stack Overflow. Размер блока, сообщаемый этой командой wmic, по-видимому, является размером логического сектора и может не совпадать с размером физического сектора диска. В SO было предложено использовать команду fsutil.

Этот ответ неверен. Раздел wmic сообщает вам что-то о разделе, а не о диске, и возвращает 512, даже если диск представляет себя хост-компьютеру с 4096 байтами на логический сектор или когда диск имеет 4096 байтов на физический сектор.

Я только что проверил это с помощью WMIC на своем компьютере с Windows XP. Это запрос:

Новый внешний диск Toshiba сообщается как 4096 байт.

wmic DISKDRIVE get bytesperector сообщает размер логического сектора, представленный хост-компьютеру. Размер физического сектора может быть другим.

Я знаю, что вы не используете Linux, но для протокола:

Windows XP отлично работает с современными дисками, у которых 4096 байт на физический сектор. Основная проблема заключается в том, что диск с 4096 байтами на физический сектор и 512 байтами на логический сектор (эмуляция 512 байт или «512e») будет работать неоптимально, если разделы не выровнены с физическими секторами. Встроенные в Windows XP средства создания разделов не обеспечивают надлежащего выравнивания этих современных дисков. Чтобы разметить диск с правильным выравниванием, выполните разбиение в более новой операционной системе или с помощью современного стороннего инструмента или инструмента, предоставленного поставщиком жесткого диска. Это рекомендуется делать независимо от того, использует ли диск 512 или 4096 байт на физический сектор.

Вы можете проверить выравнивание существующих разделов с помощью msinfo32 (Windows XP и более поздние версии):

  • msinfo32.exe > Компоненты > Хранилище > Диски > Начальное смещение раздела (убедитесь, что оно кратно размеру физического сектора или кратно 1 048 576 байт для твердотельных накопителей)

Существуют три разных размера сектора: размер физического сектора диска, размер логического сектора диска и размер логического сектора, представляемого хост-компьютеру. Размер логического сектора, представляемый хост-компьютеру, может отличаться от размера логического сектора диска, если диск подключен через мост, выполняющий преобразование размера сектора. Внешние USB-накопители часто выполняют трансляцию с 512 байт на логический сектор на интерфейсе SATA с накопителем внутри корпуса до 4096 байт на логический сектор на интерфейсе USB с хост-компьютером. Этот перевод позволяет Windows XP использовать более 2 ТБ на диске.

fsutil в Windows 10 может сообщить вам размер физического сектора диска и размер логического сектора, представляемого хост-компьютеру:

Чтобы получить размеры логических и физических секторов диска SATA за мостом USB, вы можете передать запрос SMART через мост на диск SATA с помощью smartctl (входит в пакет GSmartControl для Windows):

Ни один из встроенных инструментов Windows XP не может получить размер физического сектора диска. Вам нужно использовать smartctl или аналогичный инструмент для запроса диска.

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

  • msinfo32.exe > Компоненты > Хранилище > Диски > Байт/сектор. (работает в Windows XP и более поздних версиях)
  • wmic DISKDRIVE get bytespersector, caption (работает только в Windows XP)
  • fsutil fsinfo ntfsinfo c: ("Байт на сектор". Работает в Windows XP и более поздних версиях)
  • fsutil fsinfoectorInfo c: ("LogicalBytesPerSector". Работает в Windows 10 и более поздних версиях)

Многие внешние USB-накопители Western Digital емкостью более 2 ТБ можно настроить для совместимости с Windows XP, изменив размер логического сектора, отображаемый на хост-компьютере.

Читайте также: