Система кэширования на SSD-накопителях BCache претендует на включение в ядро Linux

Кент Оверстрит (Kent Overstreet) объявил в списке рассылки разработчиков ядра Linux о готовности реализации системы кэширования блочных устройств на SSD-накопителях BCache для интеграции в ядро Linux. Первые реализации Bcache были представлены ещё в 2010 году и развивались обособленно, теперь все требования по оформлению кода выполнены, а ранее мешавшие интеграции кода ограничения в уровне блочных устройств Linux обойдены, и проект в скором времени может быть принят в основное ядро. Проект отмечается как стабильный и достаточно давно используемый на нескольких крупных серверах в режиме промышленной эксплуатации.

Bcache позволяет организовать кэширование доступа к медленным жестким дискам на быстрых SSD-накопителях, при этом кэширование ведётся на уровне блочного устройства, что позволяет ускорить доступ к накопителю независимо от используемых на нём файловых систем. Один SSD-накопитель может использоваться для кэширования нескольких различных блочных устройств. Блочное устройство может быть на лету прикреплено к кэшу и отключено от него, без размонтирования и временно остановки работы.

Поддерживается два режима кэширования: сквозное кэширование (writethrough), при котором записываемые данные сразу сохраняются на исходном накопителе и оседают в кэше только для ускорения операций чтения; режим отложенной записи (writeback) при котором данные записываются на исходный носитель не сразу, что позволяет обеспечить ускорение операций записи но может привести к потере блоков данных при сбое SSD-накопителя. Дополнительно поддерживается, но отключен по умолчанию, режим readahead, при котором кэш наполняется не только при записи, но и при операциях чтения.

Из особенностей Bcache также можно отметить достаточно продвинутую логику кэширвоания, например, Bcache выявляет и не сохраняет в кэше последовательные обращения к большому объему данных, кэшируя только операции случайного чтения и записи. Bcache пытается оптимально использовать характеристики SSD-накопителей, учитывая ограниченный ресурс по записи данных и преобразуя случайные операции записи в последовательное заполнение накопителя. При writeback-кэшировании, при сбросе данных на диск, данные группируются с учётом минимизации перемещения головок диска. Универсальный подход к кэшированию делает Bcache подходящим решением как для серверных систем и крупных массивов хранения, так и для рабочих станций и встраиваемых систем.

Большое внимание также уделяется надёжности хранения данных и обработке внештатных ситуаций, таких как внезапное выключение питания. BCache контролирует такие ситуации и после возобновления работы дописывает на жесткий диск данные, которые остались в кэше но не были записаны на диск в момент сбоя при активном режиме writeback. BCache возвращает статус успешной операции только после того как данные сохранены на постоянном носителе (на SSD при использовании режима writeback).

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.