Почему у большинства жестких дисков доступно чуть больше места, чем заявленная емкость?

Вопрос или проблема

Сначала взгляните на этот 300 ГБ SAS диск:

=== НАЧАЛО ИНФОРМАЦИОННОГО РАЗДЕЛА ===
Производитель:        SEAGATE
Продукт:              ST300MM0006
Версия:               LS0A
Соответствие:         SPC-4
Пользовательская емкость: 300,000,000,000 байт [300 ГБ]
Логический размер блока:  512 байт
Логический блок полностью выделен
Скорость вращения:    10000 об/мин
Форм-фактор:          2.5 дюйма
Логический идентификатор устройства: 0xxxxxxxxxxxxxxxxx
Серийный номер:       xxxxxxxx
Тип устройства:       диск
Протокол передачи:    SAS (SPL-3)
Местное время:        Сб Мар  8 02:17:29 2025 UTC
Поддержка SMART:      Доступна - устройство имеет возможность SMART.
Поддержка SMART:      Включена
Температурное предупреждение:  Отключено или не поддерживается

Этот жесткий диск имеет ровно 300 ГБ доступных пользователю, ни одного байта больше или меньше. Но каждый больший жесткий диск, который я использовал до сих пор, имеет немного больше свободного места.
Например, аналогичная модель SAS диска показывает:

=== НАЧАЛО ИНФОРМАЦИОННОГО РАЗДЕЛА ===
Производитель:        SEAGATE
Продукт:              ST600MM0006
Версия:               LS0A
Соответствие:         SPC-4
Пользовательская емкость: 600,127,266,816 байт [600 ГБ]
Логический размер блока:  512 байт
Логический блок полностью выделен
Скорость вращения:    10000 об/мин
Форм-фактор:          2.5 дюйма
Логический идентификатор устройства: 0xxxxxxxxxxxxxxxxx
Серийный номер:       xxxxxxxx
Тип устройства:       диск
Протокол передачи:    SAS (SPL-3)
Местное время:        Сб Мар  8 10:38:58 2025 CST
Поддержка SMART:      Доступна - устройство имеет возможность SMART.
Поддержка SMART:      Включена
Температурное предупреждение:  Отключено или не поддерживается

Эта модель на 600 ГБ имеет примерно на 127 МБ больше доступного места.

Я собрал эту информацию для нескольких других жестких дисков для сравнения:

Тип соединения Модель Указанная емкость Фактическая емкость
SAS IBM-ESXS N 0157 146.8 ГБ 146.814976000 ГБ
SAS HUC109030CSS600 300 ГБ 300 ГБ
SAS ST300MM0006 300 ГБ 300 ГБ
SAS ST600MM0006 600 ГБ 600.127266816 ГБ
SAS ST2000NM0023 2 ТБ 2000.398934016 ГБ
SATA HTS543216L9A300 160 ГБ 160.041885696 ГБ
SATA WD2500AAJS 250 ГБ 250 ГБ
SATA WD5000AAKX 500 ГБ 500.107862016 ГБ
SATA WD5000AZLX 500 ГБ 500.107862016 ГБ
SATA ST500DM002 500 ГБ 500.107862016 ГБ
SATA WD10JPVX 1 ТБ 1000.204886016 ГБ
SATA WD40EFRX 4 ТБ 4000.787030016 ГБ
SATA MG06ACA10TE 10 ТБ 10000.831348736 ГБ
SATA WUH721414ALE6L4 14 ТБ 14000.519643136 ГБ
PATA ST91350AG 1350 МБ 1350.136832 МБ
PATA ST625211CF 2.5 ГБ 2.500485120 ГБ
PATA ST650211CF 5 ГБ 5.000970240 ГБ
PATA MK3025GAS 30 ГБ 30.005821440 ГБ
PATA MHV2060ATPL 60 ГБ 60.011642880 ГБ

Согласно моему опыту, только модели на 250 ГБ и 300 ГБ имеют точную емкость, доступную пользователю; у большинства моделей есть небольшое и постоянное превышение емкости, независимо от типа соединения или физического размера сектора (512 против 4096).

Почему это так?

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

  • Байт составляет 8 бит [2^8] и имеет диапазон от 0 до 255. если мы увеличим его до 9 бит (2^9) с диапазоном от 0 до 511.
  • Килобайт составляет 1024 [2^10] байт и имеет диапазон от 0 до 1023.
  • Мегабайт составляет 1024^2 [2^20] байт и имеет диапазон от 0 до 1,048,575.
  • Гигабайт составляет 1024^3 [2^30] байт и имеет диапазон
    от 0 до 1,073,741,823.

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

Если бы килобайт составлял 1000 байт, его биты составили бы 1000 * 8 = 8000, что потребовало бы 2^10 байт для хранения (2^9 байт могут хранить максимум 512 * 8 = 4096 бит, что слишком мало), но не использовало бы полный диапазон 2^10 [1024] байт (8192 или 2^13 бит), так что оставшиеся 24 байта на килобайт были бы потрачены впустую (что составило бы 24,000 байт на мегабайт, что существенно при увеличении размеров).

Таким образом, 300 ГБ диск = 300 * 1024^3 = 322,122,547,200 байт.

Если ваш 300 ГБ SAS диск фактически имеет емкость 300,000,000,000 байт, то максимальная емкость, на которую его можно размечать, составляет фактически 279 ГБ (299,573,968,896 байт).

Таким образом, если вы когда-либо видите число, подобное 300,000,000,000 байт, знайте, что кто-то или не точен, или откровенно лжет вам.

В конечном итоге, несовпадение здесь связано с отсутствием полной совместимости между системами исчисления на базе 2 и на базе 10, а также использованием приставок СИ, таких как Кило/Мега/Гига/Тера/Пета/Экс, которые всё же должны основываться на степенях десяти, как и всё остальное в метрической системе.

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

Поэтому 1 ТБ обычно форматируется в 931 ГБ. 931 * 1024^3 = 999,653,638,144 байт, так что это максимум, который диск может хранить, оставаясь под 1,000,000,000,000 байт. если бы производитель был справедлив и произвел диск размером 1024^4 (1,099,511,627,776 байт), мы могли бы получить все 1000 ГБ на ТБ, но тогда у нас была бы та же проблема, когда выйдут первые петабайтные диски, и мы бы жаловались, что они не могут хранить 1024 ТБ.

Ответ или решение

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

### Теоретическая часть

Во-первых, чтобы полностью понять феномен различий в объёме диска, важно вспомнить о различиях между системами счисления — двоичной и десятичной. В компьютерной архитектуре данные чаще всего обрабатываются в двоичной системе счисления, где:

– 1 байт составляет 8 бит.
– 1 Килобайт (КБ) обрабатывается как 1024 (2^10) байта.
– 1 Мегабайт (МБ) — это 1024^2 байта.
– 1 Гигабайт (ГБ) — это 1024^3 байта.

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

– 1 Килобайт — это 1000 байт.
– 1 Мегабайт — это 1000^2 байтов.
– 1 Гигабайт — это 1000^3 байта.

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

### Пример

Возьмём, к примеру, жесткий диск с заявленной емкостью 600 ГБ, который, по спецификации, имеет фактическую емкость 600,127,266,816 байт. Если мы переведём это значение в двоичную систему, у нас получится примерно 558,79 ГБ. Это и есть реальный объем, доступный для пользователя с точки зрения двоичной системы.

Другой пример — диск размером 2 ТБ, который фактически имеет около 2000,39 ГБ в бинарной оценке, тогда как в десятичной — это ровно 2000 ГБ. Соотношение реального и заявленного объёмов вызвано именно различием в вычислительных системах.

### Применение

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

Стало обычной практикой, что производители добавляют чуточку больше места для того, чтобы учесть механизм управления избыточностью, например, ЗО (Zone Amplification) или перепрограммированные сектора. Это ещё одно объяснение того, почему реальная емкость может немного превышать заявленную.

### Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...