Що означає "вирівняти" розділи?


Відповіді:


15

Вирівнювання розділу означає вирівнювання його відповідно до істинної базової структури блоку.

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

На SSD справжній розмір блоку може становити 128 Кб. На масиві RAID він може становити 64 Кб. На розширеному форматі він буде 4 Кб.

Для зворотної сумісності привід продовжує працювати з 512 байтовими блоками. Але з міркувань продуктивності ваша система дійсно повинна знати справжній розмір блоку.

Одним з найпростіших налаштувань продуктивності є вирівнювання розділу диска з істинним розміром блоку так, що коли ваша операційна система записує 4 КБ або 64 КБ або 128 КБ, вона пише повний блок.

Якщо розділ не був вирівняний, то результатом було б записати 512 байт у перший блок та 4К - 512 байт у другий блок, змусивши диск / SSD / RAID зробити два цикли читання-зміни-запису замість одного запису.


Чи є у вас якісь пропозиції щодо unix.stackexchange.com/questions/248939/…
ART

@AnkurTank: Ні, питання там здається добре висвітленим.
Зан Лінкс

Дякую за увагу, єдине, що залишилося - це підтвердити вирівнювання розділів. Тому що для мене розлучений все ще скаржиться на те, що розділи не вирівняні. Крім того, я спробував використовувати інший інструмент, наприклад, gdisk, але я не в змозі перетнути компіляцію gdisk для. Тому я подумав, якщо у вас є якісь пропозиції щодо того, як перевірити, що допоможе.
АРТ

3

Розділи - це послідовності блоків , а за давньою умовою один блок становить 512 байт.

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

Хоча базове обладнання для диска, яке спочатку мало той самий розмір сектору 512 байт, тепер використовує більший розмір для підвищення ефективності. Скажімо, це 4096 байт.

З міркувань сумісності програмне забезпечення, що стоїть між ОС та обладнанням, все ще "розмовляє в секторах". Отже, ви запитуєте перший сектор, і апаратне забезпечення витягує перший блок (4096 байт), а прошивка витягує і доставляє відповідний фрагмент. Ви запитуєте другий блок, і блок, ймовірно, отриманий з кеша.

Поки що невідповідність розміру сектору не має жодних мінусів.

Але ОС також використовує блоки (зазвичай їх називають кластерами ) для ефективності, і вирівняє їх до розділу. Таким чином, 4-секторний кластер буде складатися з секторів 5, 6, 7 та 8.

Коли ОС запитує файлову систему кластера №2, прошивку надсилають запити на логічні сектори 5, 6, 7 та 8. Якщо вони всі в одному блоці диска , то диск повинен виконати ОДНОГО зчитування.

Але якщо розділ починається в "неправильному" секторі, перший кластер у файловій системі, наприклад, закінчується, спрощуючись, у секторах 2, 3, 4 і 5. І тоді вони можуть бути наполовину в першому блоці диска (1 -2-3-4), половина в другій (5-6-7-8).

Тепер вам потрібно одне додаткове читання . Для співвідношення ОС і диска 1: 1 це те саме, що подвоєння показань. Якщо відношення ОС до диска становить 2: 1, кластер - це два блоки дискових апаратних засобів, вам знадобиться 2 + 1 = 3 читання, штраф 50%:

OS   |--- cluster  12 ---|--- cluster  13 ---|--- cluster  14...
     |                   |                   |
HDD  --|----|----|----|-a--|--b-|-c--|-d--|-e--|----|---        BAD
     |                   |                   |
HDD  |----|----|----|----|-a--|--b-|-c--|-d--|----|----|---     GOOD

Вище кластер складається з 4 апаратних блоків (співвідношення 4: 1) з 2 секторів кожен. Вирівнювання за "рівними" секторами означає, що для читання кластера ці 8 секторів читання перекладаються на 4 зчитування блоку. Вирівнювання за непарними секторами означає, що для тих самих 8 секторів для читання потрібні 4 + 1 = 5 блокових читання, показник продуктивності - 25% (ви додаєте одне читання кожні чотири).

Якщо у вас нерівний диск із співвідношенням 4: 1, вирівнювання зробить його на 20% швидшим (ви зберігаєте одне прочитане кожні 5).

Щоб зробити розділ "вирівняним", ви або переміщаєте / встановлюєте його зміщення з початку диска до відповідного кратного 512b-секторів, або (залежно від інструменту) ви можете вставити невеликий розділ на початку диска, з таким розміром, що наступний розділ починається саме на межі сектору диска. У другому випадку, хоча теоретично вам потрібно щонайбільше секторів N-1, тобто дуже мало кілобайт, на практиці вам, мабуть, доведеться витратити кілька сотень кілобайт, можливо, цілих мегабайт, щоб витіснити найбільшу продуктивність із своїх багатогігабайтний жорсткий диск.

(Ви, ймовірно, можете відновити цей простір та багато іншого, правильно вибравши розмір кластера ОС ).


1
Читання не так вже й погано, так, вам доведеться прочитати трохи додаткових даних, але читання трьох суміжних блоків не коштує значно більше часу, ніж читання двох. Справжня проблема полягає в тому, щоб записати розділ, менший за розмір основного блоку, вимагає зчитувати дані, чекаючи, коли диск накрутить повне повторне дозвіл, а потім перезаписати його.
plugwash

1
Також немає необхідності створювати додаткові розділи, немає правила, що весь простір на диску має бути розділений.
plugwash

2

Приводи майже завжди поділяються на логічні сектори 512 байт, можливі інші розміри, але вони рідко використовуються через проблеми сумісності. Зі старими жорсткими дисками це були окремі сектори, які можна писати окремо.

До середини 2000-х перегородки були традиційно вирівняні до "циліндричних" меж. З історичних причин «циліндр», як правило, склав 63 сектори. Сектор 0 містить завантажувальний сектор та таблицю розділення. Пізніші сектори в балоні 0 іноді містили додаткову інформацію для завантажувача. Перший розділ зазвичай починався на початку циліндра 1.

Більшість файлових систем групують сектори в більші блоки (іноді їх називають "кластерами"). Зазвичай вони мають розмір 4 Кбіт.

В якийсь момент постачальники накопичувачів впевнені, що було б ефективніше, якби вони також використовували 4K фізичні сектори, але з міркувань сумісності вони підтримували розмір логічного сектора на рівні 512 байт. Якщо ведучий читає або записує весь фізичний сектор відразу, все швидко проходить. Якщо зчитується частина цього, все ще досить швидко, тому що накопичувач може просто відкинути небажані дані. Однак якщо хост записує лише частину фізичного сектора, диск повинен зчитувати фізичний сектор, поєднувати дані, прочитані з даними хоста, а потім переписати модифікований сектор. Це означає чекати, коли привід повернеться в положення двічі, а не один раз.

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

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

Поточна нормальна практика полягає в вирівнюванні розділів за межами 1MiB, що є достатньо великою потужністю два, щоб бути кратною всіх загальних розмірів блоків.



0

Не знаю, якщо це корисно, але я розумію, що вирівнювання розділів - це коли ви вирівнюєте заданий розділ з базовими одиницями смужок RAID.

Мабуть, продуктивність може бути достатньою при використанні апаратного RAID або програмного забезпечення; проблеми можуть виникнути, якщо початкове місце розташування розділу не вирівняне з межею смуги одиниці в дисковому розділі, створеному на RAID.

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

Можливо, я не забуваю, і це може не мати нічого спільного з RAID;)

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