У меня есть твердотельный накопитель, который можно настроить для сообщения о размере физического сектора в ОС двумя различными способами:
Вариант 1: логический = 512 байт, физический = 512 байт
Вариант 2: логический = 512 байт, физический = 4096 байт (4K)
Какую выгоду выигрывает ОС, зная размер физического сектора 4K, учитывая:
ОС должна общаться с диском в 512-байтовых секторах независимо
Все современные операционные системы поддерживают 4K и используют 4K или несколько 4K I / O независимо
Настройка кажется бессмысленной, потому что современные операционные системы уже оптимизированы для дисков 4K сектора. Современным операционным системам не нужно «спрашивать» диск, имеют ли его сектора 512b или 4K, потому что по умолчанию ОС делает все для 4K.
Например, Windows 7 выравнивает разделы по 1 МБ (кратно 4 КБ), размер кластера NTFS равен 4 КБ или кратно ему, и все операции ввода-вывода выполняются в 4 КБ или кратно им. Windows не волнует, какой у вас жесткий диск, она будет применять вышеописанное поведение во всех случаях.
Во всяком случае ... мой SSD имеет эту настройку "размер физического сектора", и поэтому он должен быть там по какой-то веской причине ... это причина для этого я ищу.
Между прочим , этот накопитель Intel SSD DC S3510 . В спецификации диска указано следующее (стр. 27):
Используя команду SCT 0xD801 с State = 0, Option = 1, ID Word 106 можно изменить с 0x6003 на 0x4000 (изменение размера физического сектора 4 КБ на изменение размера физического сектора 512 Б).
источник
Ответы:
Эмуляция 512 байт предназначена для совместимости со старыми системами. Однако запись, включающая только часть физического сектора 4K, может привести к снижению производительности, поскольку сектор должен быть прочитан и изменен до того, как он действительно будет записан.
Когда устаревшая операционная система пытается выполнить запись на диск расширенного формата, могут возникнуть проблемы с производительностью, поскольку записанные логические сектора могут не совпадать с физическими секторами.
Дисковые разделы, которые не выровнены по границе 4K, также могут привести к снижению производительности.
Традиционно первый раздел на жестком диске начинается в секторе 63. Windows XP и более старые операционные системы делят диски таким образом. Более новые версии Windows будут создавать разделы на границе 1 МБ, обеспечивая правильное выравнивание по физическим секторам. Это называется выравниванием 0 .
Поскольку LBA 63 не кратно 8 (восемь устаревших 512-байтовых секторов вписываются в сектор 4K), диск расширенного формата, отформатированный старым способом, будет иметь кластеры (наименьшая единица выделения данных файловой системы, обычно размером 4K). ), которые не выровнены по физическим секторам на диске 4K, условие называется выравниванием 1 . В результате операция ввода-вывода, которая в противном случае включает 4 КБ данных, теперь охватывает два сектора, что приводит к операции чтения-изменения-записи, которая снижает производительность.
Хотя информация о размере физического сектора не требуется, если ОС всегда записывает данные на границе 4 КБ, эта информация все еще может понадобиться приложениям, которые выполняют низкоуровневый ввод-вывод.
Ваш SSD позволяет изменять размер физического сектора, о котором сообщается, потому что это необходимо для совместимости с определенными массивами хранения.
Центры обработки данных часто имеют массивы хранения, состоящие из устаревших дисков 512n. Диски 4K, даже те, которые эмулируют 512-байтовые сектора, могут быть несовместимы с такими массивами, поэтому эта функция необходима для обеспечения совместимости. Смотрите эту ветку форума :
Обратите внимание, что лучшая производительность будет достигнута в современных системах, если диск настроен на использование секторов 4K.
источник
Логический размер - это минимальный размер для передачи данных. Поскольку это блочное устройство, любая передача данных между хост-компьютером и диском будет кратна этому размеру логического блока.
Физический размер является оптимальным размером для передачи данных и отражает размер фактических операций чтения и записи на уровне контроллера / накопителя.
Когда хост-компьютер запрашивает чтение логического сектора, контроллер / накопитель выполняет операцию чтения физического сектора, который содержит логический сектор.
Когда размер логического сектора равен размеру физического сектора, операция проста. Когда размер логического сектора меньше размера физического сектора, контроллер должен извлечь логический сектор из физического сектора для передачи на хост-компьютер.
Когда хост-компьютер запрашивает запись в логический сектор, размер физического сектора имеет значение.
Когда размер логического сектора равен размеру физического сектора, операция записи проста и может выполняться напрямую. Состояние предыдущего содержимого сектора не повлияет на операцию записи.
Когда размер логического сектора меньше размера физического сектора, контроллер должен сначала выполнить операцию чтения физического сектора, который содержит логический сектор.
Если чтение прошло успешно, то логический сектор вставляется в физический сектор, а физический сектор записывается целиком.
Если чтение не было успешным (даже после повторных попыток), операция записи не может быть завершена.
Если ОС выполняет операции чтения и записи с размером физического сектора (используя многосекторные операции, доступные в наборе команд ATAPI), операции записи будут выполняться более эффективно (и без ненужной вероятности незавершенности).
Ваше утверждение «без исключений» неверно.
Набор команд ATAPI, который был представлен вместе с жестким диском IDE, всегда имел возможность выполнять операции чтения и записи с
sector count
параметром. Это просто расширение существующих интерфейсов дисков и контроллеров гибких дисков, которые также были способны к многосекторным операциям чтения / записи (при условии, что сектора находились на одной дорожке).источник
sector count
Параметр вы говорите ... даже древний Windows XP читает / пишет в I / O блока размером8
секторов или их упаковке. Это уже полностью оптимизировано! Вот почему XP работает очень хорошо с твердотельными накопителями, если раздел выровнен. Это очень удобно для 4K. Так что вопрос до сих пор остается без ответа. Что еще может сделать ОС, зная, что размер физического сектора составляет 4K. Помните, ОС уже оптимизирована для ввода / вывода 4K.Если ОС знает базовый размер физического сектора, она может оптимизировать свои запросы, чтобы потребовать как можно меньше физических операций. В частности, для твердотельных накопителей предел физической работы (предел IOPS 4 КБ) часто является предельным пределом скорости устройства, поэтому важно максимально эффективно использовать эту емкость.
источник
Существует два разных способа доступа к местоположению на диске: один - схема CHS, а другой - схема LBA.
CHS расшифровывается как Цилиндр, Голова, Сектор и является наиболее низкоуровневым методом определения места чтения или записи с диска. Вы говорите ему использовать цилиндр x, головку y и сектор z и читать или записывать содержимое этого местоположения в или из адреса в памяти (буфере). Он получен из реальных физических компонентов жесткого диска (традиционная вращающаяся ржавчина), где у вас есть физические цилиндры и считывающие головки. Сектор является наименьшей адресуемой единицей, и он традиционно был установлен в 512 байт.
LBA - это логическая байтовая адресация, при которой привод считывает и записывает адрес сектора по его смещению, например, читает 123837-й сектор на диске или записывает его в 123734-й сектор на диске (начиная с нуля).
Проблема? Каждое из этих значений ограничено в диапазоне. Фактически, из-за того, насколько сильно был ограничен CHS, пришлось ввести LBA. Для CHS возможные значения C (цилиндр) - 1023, в то время как H (головки) - максимум 255, а S (сектор) - только до 63, что означает, что вы можете иметь максимум 1024 цилиндра x 255 голов x 64 секторы x 512 байт, отображенные в традиционном формате CHS, что дает общую сумму менее 8 ГиБ! Используя CHS, просто невозможно получить доступ к диску размером более 8 ГиБ!
Таким образом, LBA был введен с 32-разрядным ограничением, дающим вам 2 ^ 32 x 512 байт или ограничение 2 ТБ на размер диска - по этой причине MBR-диск не может превышать 2 ТБ, поскольку он использует CHS и LBA для указания размеров разделов, и ни один из них не может поддерживать что-нибудь более 2TiB.
Более новые и лучшие опции были введены, например, схема разбиения GPT, которая расширяет LBA до 64 бит, что дает вам намного больше, чем вам когда-либо понадобится при 2 ^ 64 x 512 байт - но есть одна загвоздка: много наследства аппаратные средства и устаревшие операционные системы и устаревшие реализации BIOS и устаревшие драйверы не поддерживают UEFI или GPT, и многие люди хотели бы иметь что-то, что может быть более легко модернизировано, чтобы преодолеть ограничение 2TiB без необходимости переписывать весь стек с нуля. И, наконец, мы достигли размера сектора 4096.
Смотрите, во всех ограничениях, обсужденных выше, одно предположение было фиксированным: размер сектора. С первого дня было 512 байт, и с тех пор так и осталось. Но недавно производители жестких дисков осознали, что есть возможность творить чудеса: взять традиционный CHS или 32-разрядный LBA и просто заменить размер сектора на 4096 (4 КБ) вместо 512 байт. Когда операционная система говорит «дай мне второй сектор на диске», запрашивая LBA 1 (потому что LBA 0 является первым), мы не собираемся давать ей байты 512–1023, а байты 4096–8191.
Внезапно наш лимит 2TiB был увеличен до 2 ^ 32 x 4096 байт или 16 TiB без необходимости отбрасывать MBR, переключаться на UEFI или GPT, или что-то еще!
Единственный улов в том, что если ОС не знает, что это волшебный диск, который использует 4096 секторов вместо 512-байтовых секторов, это может привести к несоответствию. Каждый раз, когда операционная система говорит: «Эй, ты, диск, напиши мне эти 512 байтов, чтобы сместить xxx», диск будет использовать 4096 байтов для хранения этих 512 байтов (остальные - нули или ненужные данные, при условии, что вы не получите переполнение памяти), потому что они не общаются в байтах, они общаются в секторах.
Таким образом, BIOS теперь (иногда) включают опцию, позволяющую вручную указывать, что размер сектора 512 байт должен использоваться вместо собственного размера сектора 4096 байт, который используют более новые диски - с оговоркой, что вы не можете использовать его для доступа к более чем 2TiB диска в системе MBR, как это было в «старые добрые времена». Но современные ОС, поддерживающие 4k, могут воспользоваться всем этим, чтобы использовать эту магию для чтения и записи в 4096-байтовых чанках и вуаля!
(Дополнительным преимуществом является то, что все происходит намного быстрее, потому что если вы читаете и записываете 4096 байт за раз, это меньше операций чтения или записи, скажем, 4 ГБ данных.)
источник
n
кусками по 512 байт. Этоn
число, которое в Windows XP НИКОГДА не меньше 8 и всегда кратно 8. Это означает, что каждая ОС начиная с XP и далее, и я считаю, что все современные дистрибутивы Linux уже оптимизированы для дисков 4K. Наименьший размер ввода-вывода составляет 4 КБ, а все остальные размеры ввода-вывода кратны этому.512/4096 = ОС, отвечающая за выравнивание / оптимизацию,
512/512 = Диск, ответственный за это
Смотрите также: http://support.microsoft.com/en-us/kb/2510009
источник
Просто хотел сообщить вам о ситуации, когда секторы 4K являются проблемой для современных операционных систем.
Средство записи VSS от Microsoft (Shadow Copy) плохо работает с секторами 4K. Для резервного копирования общей папки репликации DFS нашему программному обеспечению для резервного копирования «Backup Exec» необходимо сделать теневую копию реплицированной папки DFS. Задание не выполняется, если папка репликации DFS находится на диске с секторами 4 КБ из-за неправильной работы VSS с секторами 4 КБ.
Джим
источник
Физический - это фактический диск, а логический - это разделение внутри него. С ПК Mag's Logical vs Physical:
Чтобы объяснить это в удобоваримой форме, представьте себе яблоко шириной вашей руки. Это фактический физический размер яблока. Естественно, целое яблоко не поместится у вас во рту, поэтому вы решили нарезать его на равные кусочки, причем каждый кусочек соответствует ширине вашего пальца. Это логический размер или размер, который будет использовать ваш компьютер.
Это объясняется несколькими причинами: расчетами мощности в реальном времени, отображением и исправлением ошибок, как объяснено в Википедии:
Точно так же, как у вас не может быть кусочков яблока без самого яблока, у вас не может быть логики без физического, служащего его основой.
источник