Які користувачі програмного забезпечення RAID та LVM в Linux, які планувальник IO і програми для читання голосів, шануються?


28

У випадку з декількома шарами (фізичні диски -> md -> dm -> lvm), як взаємодіють планувальники, налаштування читання та інші настройки диска?

Уявіть, що у вас є кілька дисків (/ dev / sda - / dev / sdd), всі частини програмного RAID-пристрою (/ dev / md0), створеного за допомогою mdadm. Кожен пристрій (включаючи фізичні диски та / dev / md0) має власні параметри для планувальника вводу-виводу ( змінено так ) і читає ( змінюється за допомогою blockdev ). Коли ви вводите такі речі, як dm (crypto) та LVM, ви додаєте ще більше шарів із власними налаштуваннями.

Наприклад, якщо фізичний пристрій має читання попереду на 128 блоків і RAID має читану голову на 64 блоки, що шанується, коли я читаю з / dev / md0? Чи намагається драйвер md спробувати 64 блок зчитування, який фізичний драйвер пристрою потім переводить на зчитування 128 блоків? Або чи читає RAID голову "проходження" до базового пристрою, в результаті чого зчитується 64-й блок?

Такий же питання стосується планувальників? Чи потрібно турбуватися про кілька шарів планувальників вводу-виводу та те, як вони взаємодіють, чи / dev / md0 ефективно переосмислює базові планувальники?

У своїх спробах відповісти на це запитання, я зібрав кілька цікавих даних щодо планувальників та інструментів, які могли б допомогти з'ясувати це:

Відповіді:


7

Якщо ви читаєте з md0, тоді використовується програма для читання md0. Якби ви читали з sda, що є компонентом md0, то він використовував би налаштування sda. Картограф пристроїв просто розбиває введення-виведення на кілька читання та запису, щоб зробити RAID, але це все нижче шару блоку кеша, де відбувається перечитання. Стек сховища виглядає так:

файлова система - обходить кеш-пам'ять під час відкриття за допомогою O_DIRECT

блок кеш - читати, кеш запису, планувальник

device-mapper - dm, lvm, програмний RAID, знімок тощо.

sd - драйвер диска

SCSI - обробка помилок, маршрутизація пристрою

драйвер апаратного забезпечення - карта scsi, карта FC, Ethernet

Зауважте, що коли це робити

dd if=/dev/sda of=foo

ви читаєте sda як файл, тому ви переглядаєте блоковий кеш. Щоб перейти безпосередньо на диск, зробіть

dd if=/dev/sda of=foo iflag=direct

Що стосується планувальників ліфтів вводу / виводу, вони існують лише на драйвері диска (sd). У каталозі / sys / block / md або / sys / block / dm немає каталогу черг. Ви проходите лише сортування дискового елеватора лише один раз.


2
Є в /sys/block/md0/queue/schedulerмоїх системах, але єдиний вибір у них є none.
Пітер Ейзентраут
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.