Каждый раз, когда кажется, что файловые системы Linux уже достигли своего потолка, то появляется кто-то с паяльником и охапкой патчей. На этот раз отличился инженер Huawei Баокун Ли, который решил, что страница памяти это слишком узкие рамки для жизни блоков EXT4. И честно говоря, трудно с ним не согласиться.
Если вы когда-нибудь ковырялись в недрах Linux, то наверняка знаете, что размер блока обычно равен размеру страницы и это 4 КБ. Это как комната в старой хрущёвке, вроде бы жить можно, но тесновато. А теперь представьте, что кто-то сказал «А давайте стены снесём!» Вот этим кто-то оказался Баокун Ли. Новые патчи для EXT4 позволяют использовать блоки, превышающие размер страницы. И да, звучит это круто не только на бумаге.

Откуда всё пошло?
Ещё в прошлом году разработчики ядра начали готовить почву для таких изменений. VFS (Virtual File System это та самая прослойка, что управляет всеми файловыми системами в Linux) научили понимать блоки, которые больше, чем страница памяти. Потом подтянулись XFS и Btrfs эти обе системы уже успели примерить на себя эту новинку. А теперь очередь дошла и до старого доброго EXT4, можно так сказать ветерана. Который, как ни крути, остаётся самой популярной файловой системой в мире Linux.
Баокун Ли опубликовал серию патчей, которые завершили внедрение поддержки Large Block Size (LBS) для EXT4. Причём, благодаря тому, что EXT4 уже давно умеет работать с так называемыми «фолиатами» (по сути, крупными страницами памяти), изменений в коде оказалось немного. Просто пару винтиков подкрутить, и всё заработало.
А что это даёт на практике?
Вот тут самое интересное. Тесты показали, что использование больших блоков в EXT4 ускоряет запись BIO (входно-выходных операций) примерно на 50 % по сравнению с прежним режимом bigalloc. То есть данные ложатся на диск заметно быстрее, особенно если речь идёт о крупных файлах или SSD, где лишние вызовы ввода-вывода это как лишние тормоза на шоссе.
Конечно, это не значит, что завтра все массово перейдут на большие блоки. Поддержка ещё свежая, и, как это обычно бывает, не всё сразу будет идеально. В мире Linux вообще ничего не бывает идеально, всегда найдётся какой-нибудь глюк, где всё внезапно ломается. Но направление очень правильное.
Почему это важно и не только для профи
Если упростить, большие блоки позволяют системе работать с файлами более эффективно, уменьшая накладные расходы на операции. Меньше служебных данных, то больше реальной работы. Это примерно как если бы вы носили продукты не по одному пакетику, а сразу огромной сумкой. Да, тяжело, но зато быстрее и без десяти ходок туда-сюда.
Для серверов и систем хранения данных это может быть особенно выгодно. Чем меньше времени тратится на обработку блоков, тем быстрее работают базы, виртуалки, контейнеры и весь этот зоопарк, от которого зависят современные облака.
И мой личный комментарий (куда без него)
Я вообще люблю такие новости, когда берут старую добрую технологию и вдохновляют в неё новую жизнь. EXT4 это как дед, который всю жизнь пахал, а теперь внезапно сел на электровелосипед и снова обгоняет молодежь. И честно, я не удивлюсь, если через пару месяцев эти патчи уже будут тестировать все, кому не лень.
Так что, если вы следите за внутренней кухней Linux, советую присмотреться к этим изменениям. Патчи уже доступны в рассылках ядра, да и кто знает, может быть, через пару релизов ядра мы все будем жить в мире, где размер блока больше страницы это будет для нас нормой, а не экспериментом.
Источник: рассылки разработчиков ядра Linux. Ну и немного моего личного восторга. :)
Понравилась статья?
Помогите Setiwik.ru создавать больше глубоких обзоров и новостей. Один клик и ваш вклад помогает держать серверы включёнными и авторов мотивированными!
Поддержать проектСпасибо, что вы с нами!



