EXT4 прокачали! Новый патч от Huawei увеличивает размер блока EXT4

Каждый раз, когда кажется, что файловые системы Linux уже достигли своего потолка, то появляется кто-то с паяльником и охапкой патчей. На этот раз отличился инженер Huawei Баокун Ли, который решил, что страница памяти это слишком узкие рамки для жизни блоков EXT4. И честно говоря, трудно с ним не согласиться.

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

EXT4 теперь поддерживает большие блоки в Linux
EXT4 теперь поддерживает большие блоки в Linux

Откуда всё пошло?

Ещё в прошлом году разработчики ядра начали готовить почву для таких изменений. 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 создавать больше глубоких обзоров и новостей. Один клик и ваш вклад помогает держать серверы включёнными и авторов мотивированными!

Спасибо, что вы с нами!

Nazario
Nazario

Я — Nazario, тот самый человек, который больше десяти лет ковыряется в Linux и Windows системах не ради хобби, а потому что это — работа и жизнь. Всё, что вы читаете на Setiwik.ru, — это не пересказ справки из мануала, а результат десятков реальных кейсов, выстраданных конфигов и ночных перезагрузок.

Я не претендую на истину в последней инстанции. Но если мой опыт может кому-то упростить работу — значит, всё это не зря. Здесь нет «магии», только практика: от настроек сервера до неожиданных багов, которые не гуглятся с первого раза.

Setiwik.ru — это место, где IT становится чуть менее хаотичным. Заходите почаще — будем разбираться вместе.

Добавить комментарий