Який сенс жорстких дисків, що повідомляють про свій фізичний розмір сектора?


12

У мене є SSD, який можна налаштувати, щоб повідомити про фізичний розмір сектора ОС двома різними способами:

Варіант 1: Логічний = 512 байт, фізичний = 512 байт

Варіант 2: Логічний = 512 байт, фізичний = 4096 байтів (4K)

Яку користь отримує ОС, знаючи про розмір фізичного сектора 4K, враховуючи:

  • ОС обов'язково розмовляти з накопичувачем в 512-байтових секторах незалежно

  • Всі сучасні операційні системи вирівнюються до 4K і використовують 4K або кратні 4K I / O незалежно

Налаштування здається безглуздим, оскільки сучасні операційні системи вже оптимізовані для дисків сектора 4K. Сучасним операційним системам не потрібно "запитувати" диск, чи його сектори є 512b або 4K, тому що OS робить все в 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 (розмір фізичного сектору 4KB до зміни розміру фізичного сектора 512B).


4096 байт - це розширений формат Розширений формат жорстких дисків може зробити теж, в залежності від ОС, якщо жорсткий диск емулювати 512K
Moab

1
Інтерфейси зберігання є скарбницями ухвалених рішень ... "Фізичний розмір сектора 4 Кб" також не відповідає дійсності. Flash має розміри фізичного сектора, які зазвичай перевищують 256 КБ. Всі повідомлені розміри секторів є (іл) логічними.
MSalters

Відповіді:


14

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

Коли застаріла операційна система намагається записати на диск Advanced Format, проблеми з продуктивністю можуть виникнути, оскільки написані логічні сектори можуть не збігатися з фізичними секторами.

  • Коли читається тільки частина фізичного сектора 4K, дані просто зчитуються з фізичного сектора, і зниження продуктивності не відбувається. Однак, коли система намагається записати частина фізичного сектора (наприклад, імітованого 512-байтового сектору, а не всього фізичного сектора), жорсткий диск повинен читати весь фізичний сектор, змінювати змінену частину внутрішньої пам'яті жорсткого диска і записувати його назад до пластин. Це називається read-modify-write ( RMW ), операція, яка вимагає додаткового обертання диска і, отже, знижує продуктивність. Seagate пояснює це наступним чином :

[...] Жорсткий диск повинен спочатку прочитати весь сектор 4K, що містить цільове розташування запиту на запис хоста, об'єднати існуючі дані з новими даними, а потім переписати весь сектор 4K:

Read-modify-write cycle

У цьому випадку жорсткий диск повинен виконувати додаткові механічні кроки у вигляді читання 4K-сектора, змінюючи вміст, а потім записуючи дані. Цей процес називається циклом читання-модифікації-запису, що є небажаним, оскільки він негативно впливає на роботу жорсткого диска.

Розділи дисків, які не прив'язані до кордону 4K, також можуть призвести до погіршення продуктивності.

  • Традиційно перший розділ на жорсткому диску починається в секторі 63. Windows XP і старі операційні системи розділяють диски таким чином. Нові версії Windows створюватимуть розділи на межі 1 МБ, забезпечуючи належне вирівнювання до фізичних секторів. Це називається Вирівнювання 0 .

  • Оскільки LBA 63 не кратна 8 (вісім 512-байтових успадкованих секторів вписуються в сектор 4K), диск Advanced Format, який відформатовано старим способом, має кластери (найменша одиниця розміщення даних файлової системи, зазвичай розміром 4K ), які не збігаються з фізичними секторами на 4К диску, умова називається Вирівнювання 1 . В результаті операція вводу-виводу, яка в іншому випадку включає 4K даних, тепер охоплює два сектори, що ведуть до операції читання-модифікації-запису, що знижує продуктивність.

Хоча інформація про розмір фізичного сектору не потрібна, якщо ОС завжди записує дані на кордоні 4K, ця інформація може знадобитися для програм, які виконують входи / виведення низького рівня.

  • Коли диск повідомляє, що його фізичний розмір сектору становить 4K, операційна система або програма можуть визначити, що це диск Advanced Format і тому повинен уникати виконання операцій вводу-виводу, які не охоплюють повні фізичні сектори. Диск, який повідомляє 512-байтові вітчизняні сектори, не накладає цього обмеження. Хоча нові операційні системи зазвичай намагаються читати або записувати дані в 4K одиницях, коли це можливо (роблячи цю інформацію нерелевантною), програми, які виконують низький рівень введення-виведення, можуть знати розмір фізичного сектора, щоб вони могли коригуватися відповідно і уникати нерівномірності або частково-секторальні записи, які викликають повільні цикли RMW.

Ваш SSD надає можливість змінювати звітний розмір фізичного сектора, оскільки він необхідний для сумісності з деякими масивами сховищ.

  • Центри обробки даних часто мають масиви зберігання, що складаються з накопичувачів 512n. Диски 4K, навіть ті, які імітують 512-байтові сектори, можуть не бути сумісними з такими масивами, тому ця функція необхідна для забезпечення сумісності. Подивитися Цей потік форуму :

    Ми не можемо просто вставити 4K диск в масив, відформатований за допомогою дисків 512b. Багато масиви (особливо сховище на основі ZFS, яке стає все більш популярним, оскільки програмне забезпечення, визначене сховищем, створює хвилі), не прийматиме диск заміни з іншим форматом фізичного сектора.

    Зауважте, що на сучасних системах буде досягнуто кращої продуктивності, якщо привід налаштований для використання секторів 4K.


Іронія полягає в тому, що ОС, які не знають, як правильно вирівняти, також не зможуть запитувати жорсткий диск для "фізичного розміру сектора". ОС, які знають, як правильно вирівняти, не потрібно запитувати жорсткий диск для "фізичного розміру сектора", тому що вони належним чином узгоджуються. Напр. Windows вирівнюється до 1 Мб.
misha256

1
Я повинен сказати ... Я розчарований. Я ніколи не бачив диска, який дозволяє змінювати налаштування звітності "фізичного сектора". Я не можу зрозуміти, чому така установка повинна існувати, враховуючи, що єдині опції - 512b та 4k, і враховуючи, що сучасні операційні системи роблять все 4K незалежно про те, який тип приводу ви використовуєте.
misha256

Це, мабуть, найкраща відповідь багато, але, все ж, я думаю, що настав час вистежити інженера Intel і отримати авторитетну відповідь. Здається, це дуже езотерична річ.
misha256

2
Хоча це відповідає жорстким дискам, ця відповідь не має значення для SSD-дисків. Розміри блоків запису / стирання SSD складають кілька мегабайт, тому навіть 4K "фізичний" не наближається до реального розміру фізичного сектора.
qasdfdsaq

1
Розмір запису @qasdfdsaq не обов'язково такий же, як розмір стирання. 4K буде гранулярність блоку "у використанні" відстеження. Тим часом я переконаний, що остання частина цієї відповіді про ZFS є правильною: utcc.utoronto.ca/~cks/space/blog/tech/…
pjc50

5

Яку користь отримує ОС, знаючи про розмір фізичного сектора, коли ОС, незважаючи на це, повинна говорити з накопичувачем у 512-байтових секторах.

Логічний розмір - це мінімальний розмір передачі даних. Оскільки це блок-пристрій, будь-яка передача даних між хост-комп'ютером і накопичувачем буде кратною цьому розміру логічного блоку.

Фізичний розмір є оптимальним розміром передачі даних, і відображає розмір фактичного read і писати операції на рівні контролера / приводу.

Коли хост-комп'ютер запитує читання логічного сектора, контролер / диск виконуватиме операцію читання фізичного сектора, що містить логічний сектор.
Коли розмір логічного сектора дорівнює розміру фізичного сектора, операція проста. Коли розмір логічного сектора менше розміру фізичного сектора, логічний сектор повинен бути вилучений з фізичного сектора контролером для передачі на головний комп'ютер.

Коли хост-комп'ютер запитує запит логічного сектора, розміри фізичного сектора мають значення.
Коли розмір логічного сектора дорівнює розміру фізичного сектора, операція запису є простою і може здійснюватися безпосередньо. Умова попереднього вмісту сектора не вплине на операцію запису.

Коли розмір логічного сектора менше розміру фізичного сектора, контролер повинен спочатку виконати операцію читання фізичного сектора, що містить логічний сектор.
Якщо читання є успішним, то логічний сектор вставляється у фізичний сектор, а фізичний сектор записується повністю.
Якщо читання не вдалося (навіть після спроб), операція запису не може бути завершена.

Якщо операційна система виконує операції читання і запису з розміром фізичного сектора (за допомогою багатосекторних операцій, доступних в наборі команд ATAPI), операції запису будуть виконуватися більш ефективно (і без зайвих випадків неповного завершення).

Розмір сектору LOGICAL повністю визначає, як операційна система може говорити на диску. Немає винятків. Яке використання це знання розміру фізичного сектора, коли вам дозволяється спілкуватися тільки в розмірі логічного сектора?

Ваше твердження "без виключень" неправильне.
Набір команд ATAPI, який був введений з HDD IDE, завжди мав можливість виконувати операції читання і запису з sector count параметр. Це всього лише розширення існуючих інтерфейсів дисків і дискети, які також були здатні до багатосекторних операцій читання / запису (до тих пір, поки сектори були на одній трасі).


Це може бути правильною відповіддю ... але я все ще не переконаний. Сучасні операційні системи працюють з файловими системами та блоками вводу / виводу розміром 4К і кратними 4К. Вони є вже оптимізовані для використання з жорсткими дисками, які мають 4K фізичні сектори. Крім того, використовуються розміри блоків вводу / виводу досі 4K і кратні 4K навіть на фізичному жорсткому диску 512b. Що дає ?!
misha256

Бінго! The sector count Параметр, про який ви говорите ... навіть древній Windows XP читає / записує в розмірі блоку введення / виводу 8 секторів або їх кількох. Вона вже повністю оптимізована! Ось чому XP працює дуже добре з SSD, якщо розділ вирівняно. Це надзвичайно 4K дружнє. Отже, питання все ще залишається невідповідним. Що більше ОС може знати, що розмір фізичного сектора становить 4K. Пам'ятайте, що ОС вже оптимізовано для 4K I / O.
misha256

1
"Вони вже оптимізовані ..." -- Не обов'язково. Сектор «старту» повинен завжди бути узгодженим з фізичним сектором. Це не гарантовано буде, коли ОС не розуміє фізичних і логічних секторів, а просто намагається бути більш ефективним за допомогою багатосекторних операцій.
sawdust

2
@ misha256 Ні, це не так просто. "Windows XP, Windows Server 2003 і Windows Server 2003 R2 не підтримують носій 512e або 4Kn. Хоча система може завантажуватися і працювати мінімально, можуть існувати невідомі сценарії проблем функціональності, втрати даних або неоптимальних Таким чином, корпорація Майкрософт настійно застерігає від використання носіїв 512e у Windows XP ... " msdn.microsoft.com/en-us/library/windows/desktop/ ...
Ross Ridge

2
@ misha256 - Ви вишневі вибираєте умови, а потім проголошуєте, що за всіх обставин ця інформація марна. Не кожен збирається використовувати такий SSD з кластерами Windows і NTFS і> 4k. "NTFS навіть не підтримує менше 4K I / O" -- Неправда. Розміри кластерів 512, 1024 і 2048 байтів все ще є опціями в моїй (сучасній) копії Win7 для NTFS. . .
sawdust

3

Якщо ОС знає базовий розмір фізичного сектора, він може оптимізувати свої запити, щоб вимагати якомога менше фізичних операцій. Особливо з SSD, обмеження фізичної операції (4KB IOPS limit) часто є кінцевою межею швидкості пристрою, тому важливим є можливість максимально використовувати цю потужність.


Це не може бути правильно. Сучасні ОС за своєю суттю оптимізовані. Всі вони використовують файлові системи з "блоковими" розмірами (так звані кластери), які складають 2 ^ n байтів, починаючи з 2 ^ 12 (тобто 4K, думаю NTFS за замовчуванням). Виходячи з цього, всі операції вводу-виводу закінчуються кількома 4K. Чи є диск фізично 512-байт або 4К не повинні мати значення. Ви не можете оптимізувати далі, ніж це, звичайно?
misha256

Що робити, якщо ОС не отримає право вирівнювання, а операція вводу-виводу завершиться двома фізичними секторами? Ви отримаєте погіршену продуктивність.
bwDraco

1
@ misha256 Немає несумісності між тим, що ви сказали, і тим, що я сказав. Це правда, що після отримання правильного вирівнювання більшість файлових систем не отримують великої користі від знання розміру фізичного сектора. Деякі бази даних роблять.
David Schwartz

@DavidSchwartz Право, добре, так що все це може бути на користь деяких езотеричних ОС або файлових систем, що використовуються в центрах обробки даних або тому подібне? Деякі фантастичні масиви RAID?
misha256

Це, здається, стосується не-віконних ("езотеричних") ОС і RAID-контролерів.
pjc50

1

Є два різних способи доступу до місця розташування в одному диску, одна - схема CHS, а інша - схема LBA.

CHS означає Циліндр, Голова, Сектор і є найбільш низьким рівнем методу визначення місця читання або запису з диска. Ви вказуєте їй використовувати циліндр x, head 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 TiB обмеження на розмір диска - це причина MBR диска не може перевищувати 2TiB, оскільки він використовує CHS і LBA для визначення розмірів розділів, і ні підтримувати що-небудь більше 2TiB.

Новіші, кращі варіанти були введені, як схема розділення GPT, яка розширює LBA до 64 біт, що дає вам ще більше, ніж вам знадобиться у 2 ^ 64 x 512 байт - але є улов: багато застарілих апаратних засобів і застарілих операційних систем і застарілих реалізацій BIOS і застарілих драйверів не підтримують UEFI або GPT, і багато людей хотіли б мати те, що можна легко модернізувати, щоб пройти повз 2TiB обмежити без необхідності переписувати весь стек з нуля. І, нарешті, ми досягаємо розміру 4096 секторів.

Див. У всіх обмеженнях, що обговорювалися вище, одне було фіксованим припущенням: розмір сектора. З першого дня, це було 512 байт, і він залишився таким чином до цих пір. Але нещодавно виробники жорстких дисків зрозуміли, що є можливість попрацювати з магією: візьміть традиційний CHS або 32-бітний LBA і просто заміните розмір сектора 4096 (4k) замість 512 байт. Коли операційна система каже "дайте мені 2-й сектор на диску", запитавши LBA 1 (оскільки LBA 0 перший), ми не збираємося надавати їй байти 512 - 1023, а байти 4096 - 8191.

Раптом наш ліміт 2TiB підвищений до 2 ^ 32 x 4096 байт, або 16 TiB, без необхідності виконувати MBR, перемикатися на UEFI або GPT, або що завгодно!

Єдиний висновок полягає в тому, що якщо операційна система не знає, що це чарівний диск, який використовує 4096 секторів замість секторів 512 байт, буде невідповідність. Кожен раз, коли операційна система каже: "Ей, ти, диск, напиши мені ці 512 байт, щоб компенсувати ххх", диск буде використаний 4096 байт для зберігання цих 512 байт (решта - це нулі або небажані дані, якщо ви не потрапили до переповнення пам'яті), оскільки вони не спілкуються в байтах, вони спілкуються в секторах.

Таким чином, BIOS зараз (іноді) включають опцію, що дозволяє вручну вказати, що розмір сектору в 512 байт повинен використовуватися замість рідного розміру сектору 4096 байт, який використовують нові диски, - застереження, що ви не можете використовувати його для доступу до 2TiB диска на системі MBR, як і в "старі добрі часи". Але сучасні операційні системи, які мають 4k-обізнаність, можуть скористатися всім цим, щоб використовувати цю магію для читання і запису в 4096-байтових шматках і вуалях!

(Додатковою перевагою є те, що все набагато швидше, тому що, якщо ви читаєте і записуєте 4096 байт за раз, це менше операцій для читання або запису, наприклад, 4GiB даних.)


2
Це не відповідає на це питання. Пояснення CHS і LBT не має значення. Це звучить як мозок дампа того, що ви знаєте про "секторах". "З першого дня було 512 байт ..." - Це справедливо тільки для IBM PC.
sawdust

1
@sawdust Я не згоден - навіть незважаючи на важливе (imho) передумови про CHS і LBA, відповідь на ваше запитання у другій останній абзаці "Але сучасні операційні системи, які 4k-обізнані, можуть скористатися всім цим, щоб використовувати цю магію читати і писати в 4096 байтах і вуалях! " - Тобто припущення в питанні - що ОС має говорити в 512 байтах - це неправильно.
davidgo

@davidgo На рівні драйвера операційна система переходить до диску n шматки 512-байтових шматочків. The n це число, яке, з Windows XP, НІКОЛИ не менше 8, і завжди кратне 8. Що означає кожна ОС від XP, і я вважаю, що всі сучасні дистрибутиви Linux теж вже оптимізовані для 4K дисків. Найменший I / O 4K, а всі інші розміри вводу-виводу кратні.
misha256

Я думаю, я дуже чітко заявляю, що навіть якщо ви групуєте n секторів в одну операцію, ви все ще повідомляєте диску шукати на шматках 512 байт маючи на увазі, ви обмежені в тому, скільки ви можете шукати. 4096 секторів вирішують проблему пошуку. Я також уточнив, що знання ОС про розмір блоку є обов'язковим, інакше 512 байт будуть зберігатися в 4096 шматках!
Mahmoud Al-Qudsi

Крім того, я думаю, що ви збентежені з приводу логічного проти фізичного. Фізичний завжди є 512 або 4096. Якщо логічний розмір 4096, але ОС сліпо припускає, що це 512, ви зіткнетеся з описаними мною проблемами. Вони повинні збігатися.
Mahmoud Al-Qudsi

0

512/4096 = ОС, відповідальна за вирівнювання / оптимізацію,

512/512 = Ведіть відповідальність за це

Дивіться також : http://support.microsoft.com/en-us/kb/2510009


Будь ласка, вкажіть основні частини відповіді з посиланням (посиланнями), оскільки відповідь може стати недійсним, якщо змінені сторінки пов'язані.
DavidPostill

0

Просто я хотів би повідомити вас про ситуацію, коли 4K сектора є проблемою для сучасних операційних систем.

VSS-письменник Microsoft (Shadow Copy) не працює добре з секторами 4K. Щоб створити резервну копію папки спільного доступу для реплікації DFS, наше програмне забезпечення для резервного копіювання "Backup Exec" має створити тіньову копію папки DFS Replicated. Завдання не виконується, якщо папка реплікації DFS знаходиться на диску з секторами 4K, оскільки VSS не працює правильно з секторами 4K.

Джим


2
Я не зовсім впевнений, що це відповідає запропонованому питанню, він відповідає на питання, а не на запитання автора.
Ramhound

Це дуже цікава інформація, але вона, здається, є відповіддю на дещо інше питання. Як тільки ви отримаєте достатню репутацію, ви зможете коментувати всюди. Для вступу на наш сайт див тур .
Ben N

-3

Фізичні засоби - це фактично сам привід, тоді як Логічний - це визначення певних поділів всередині нього. Від Логічний і фізичний PC Mag:

На ПК з ОС Windows єдиний фізичний жорсткий диск - це диск 0; однак він може бути розділений на кілька логічних дисків, таких як C :, D: і E :.

Щоб пояснити це в легкозасвоюваній формі, уявіть собі яблуко, яке є шириною вашої руки. Це фактичний фізичний розмір яблука. Звичайно, ціле яблуко не впишеться в ваш рот, тому ви вирішили нарізати його на рівні шматочки, кожен шматочок буде шириною пальця. Це логічний розмір або розмір, який буде використовуватися комп'ютером.

Декілька причин для цього - обчислення потужності реальної вартості та відображення та корекція помилок, як пояснюється Вікіпедія:

Типові жорсткі диски намагаються "перепризначити" дані у фізичному секторі, який не працює у вільному фізичному секторі, який забезпечується "резервним пулом секторів" диска (також називається "резервним пулом"), [41] при використанні ECC для відновити збережені дані, тоді як кількість помилок у поганому секторі все ще досить низька. Функція SMART (Технологія самоконтролю, аналізу та звітності) підраховує загальну кількість помилок у всьому жорсткому диску, зафіксованому ECC (хоча і не на всіх жорстких дисках, оскільки відповідні атрибути SMART "Hardware ECC Recovery" і "Soft ECC Correction") не послідовно підтримується), а загальна кількість виконаних галузевих перепризначень, так як виникнення багатьох таких помилок може передбачати збій жорсткого диска.

Так само, як ви не можете мати шматочки яблука без самого яблука, ви не можете мати логічну без фізичної, яка служить її базою.


1
Але чому ОС потрібно знати розмір фізичного сектора, і що він буде робити по-іншому, враховуючи, що він повинен говорити з диска в логічних секторах в будь-якому випадку? Здається, це абсолютно марна інформація для ОС.
misha256

"чому ОС потрібно знати ..." - Логічний розмір - це мінімальний розмір для передачі даних. Фізичний розмір є оптимальним розміром для передачі даних і відображає розмір фактичної операції читання / запису на рівні диска. "Це схоже на абсолютно марну інформацію ..." - Можливо, вам здається "марним", тому що ви не розвиваєтеся або не задіяні в операційній системі?
sawdust

1
Але операційна система не може використовувати оптимальним Розмір передачі, про який ви говорите, тому що диск жорстко підключений до 512-байтових логічних секторів. Рідні диски 4K відрізняються, вони мають 4K логічні сектори і підтримуюча ОС (наприклад Win 8.1) змушена читати і писати в 4K логічних секторах. Але мій диск не є 4K логічним приводом. Це 512-байтовий логічний диск.
misha256

@ misha256 - Я розмістив свою відповідь.
sawdust

Заплутані фізичні / логічні диски з фізичними / логічними розмірами секторів.
MSalters
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.