У випадку з декількома шарами (фізичні диски -> 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 ефективно переосмислює базові планувальники?
У своїх спробах відповісти на це запитання, я зібрав кілька цікавих даних щодо планувальників та інструментів, які могли б допомогти з'ясувати це:
/sys/block/md0/queue/scheduler
моїх системах, але єдиний вибір у них єnone
.