Jump to content

bcache

bcache
Разработчик(и) Кент Оверстрит и другие.
Первоначальный выпуск 30 июня 2013 г .; 11 лет назад ( 30.06.2013 ) (Linux 3.10)
Репозиторий
Написано в С
Операционная система Линукс
Тип Возможности ядра Linux
Лицензия GNU GPL
Веб-сайт bcache .evilpiepirate .org

bcache (сокращенно от Block Cache ) — это кеш на блочном уровне ядра Linux , который используется для доступа к дополнительным устройствам хранения данных. Он позволяет одному или нескольким быстрым устройствам хранения, таким как твердотельные накопители на основе флэш-памяти (SSD), выступать в качестве кэша для одного или нескольких более медленных устройств хранения, таких как жесткие диски (HDD); это эффективно создает гибридные тома и обеспечивает повышение производительности.

Разработанный с учетом особенностей и характеристик производительности твердотельных накопителей, bcache также минимизирует усиление записи , избегая случайной записи и вместо этого превращая ее в последовательную запись . Такое объединение операций ввода-вывода выполняется как для кэша, так и для основного хранилища, что помогает продлить срок службы флэш-устройств, используемых в качестве кэшей, а также повысить производительность чувствительных к записи первичных хранилищ, таких как наборы RAID 5 .

bcache распространяется по лицензии GNU General Public License (GPL), а его основным разработчиком является Кент Оверстрит. Оверстрит рассматривает bcache как «прототип» для разработки bcachefs , файловой системы со значительными улучшениями по сравнению с bcache. [1]

Использование bcache позволяет использовать твердотельные накопители в качестве еще одного уровня косвенности в путях доступа к хранилищу данных, что приводит к повышению общей производительности за счет использования быстрых твердотельных накопителей на основе флэш-памяти в качестве кэшей для более медленных механических жестких дисков (HDD) с вращающимися магнитными носителями . Таким образом, можно преодолеть разрыв между твердотельными накопителями и жесткими дисками — дорогая скорость твердотельных накопителей сочетается с дешевой емкостью традиционных жестких дисков. [2]

Кэширование реализуется с использованием твердотельных накопителей для хранения данных, связанных с выполненными случайными операциями чтения и случайной записи, с использованием почти нулевого времени поиска в качестве наиболее заметной особенности твердотельных накопителей. Последовательный ввод-вывод не кэшируется, чтобы избежать быстрого аннулирования кэша SSD при таких операциях, которые уже достаточно подходят для жестких дисков; обход кеша для больших последовательных записей известен как политика обходной записи . Отсутствие кэширования последовательного ввода-вывода также помогает продлить срок службы твердотельных накопителей, используемых в качестве кэшей. [3] Усиления записи можно избежать, не выполняя произвольную запись на твердотельные накопители; вместо этого все случайные записи в кэши SSD всегда объединяются в записи на уровне блоков, в результате чего перезаписывается только полный стираемый блок на SSD. [4] [5]

Для кэширования операций записи поддерживаются политики как обратной, так и сквозной записи (по умолчанию). В случае политики обратной записи записанные данные сначала сохраняются в кэшах SSD, а затем распространяются на жесткие диски в пакетном режиме при выполнении операций поиска, благодаря чему bcache также действует как планировщик ввода-вывода . Для политики сквозной записи, которая гарантирует, что ни одна операция записи не будет помечена как завершенная до тех пор, пока данные, запрошенные для записи, не достигнут как твердотельных, так и жестких дисков, повышение производительности снижается за счет эффективного кэширования только записанных данных. [4] [5]

Политика обратной записи с пакетной записью на жесткие диски обеспечивает дополнительные преимущества для чувствительных к записи избыточных массивов независимых дисков (RAID), таких как RAID 5 и RAID 6 , которые выполняют фактические операции записи в виде атомарных последовательностей чтения-изменения-записи . Таким образом, штрафы за производительность [6] Для таких макетов RAID сокращается или исключается количество небольших случайных записей за счет их группировки и выполнения пакетной последовательной записи. [4] [5]

Кэширование, выполняемое bcache, работает на уровне блочного устройства , делая себя независимым от файловой системы , пока файловая система предоставляет встроенный универсальный уникальный идентификатор (UUID); этому требованию удовлетворяют практически все стандартные файловые системы Linux , а также разделы подкачки . Размеры логических блоков, используемых внутри bcache в качестве экстентов кэширования, могут достигать размера одного сектора жесткого диска. [7]

bcache был впервые анонсирован Кентом Оверстритом в июле 2010 года как полностью рабочий модуль ядра Linux, хотя и на ранней стадии бета-тестирования. [8] Разработка продолжалась почти два года, до мая 2012 года, когда bcache достиг состояния готовности к производству. [5]

Он был объединен с основной веткой ядра Linux в версии ядра 3.10, выпущенной 30 июня 2013 года. [9] [10] С тех пор Оверстрит разрабатывает файловую систему bcachefs , основываясь на идеях, впервые разработанных в bcache, которые, по его словам, начали «развиваться… в полноценную файловую систему POSIX общего назначения ». [11] Он описывает bcache как «прототип» идей, которые стали bcachef, и намеревается заменить bcache. [12] Он официально анонсировал bcachef в 2015 году и объединил его с основным ядром Linux в октябре 2023 года. [13]

Начиная с версии 3.10 ядра Linux, bcache предоставляет следующие возможности: [4]

  • Одно и то же кэш-устройство можно использовать для кэширования произвольного количества основных устройств хранения данных.
  • Подключение и отключение основных устройств хранения данных во время выполнения от их кэшей, когда они подключены и используются (работают в транзитном режиме, если они не кэшированы)
  • Автоматическое восстановление после некорректного завершения работы — запись не завершается до тех пор, пока кэш не станет согласованным по отношению к основному устройству хранения данных; внутренне bcache не делает различий между чистыми и нечистыми завершениями работы
  • Прозрачная обработка ошибок ввода-вывода, генерируемых устройствами кэширования. [3]
  • Барьеры записи и связанные с ними очистки кэша обрабатываются должным образом.
  • Политики сквозной записи (по умолчанию), обратной записи и обходной записи.
  • Последовательный ввод-вывод обнаруживается и блокируется с помощью настраиваемых пороговых значений; обход также можно отключить
  • Регулирование ввода-вывода на SSD, если он перегружен, что обнаруживается по измеренной задержке операций ввода-вывода SSD, превышающей настраиваемый порог; полезно для конфигураций, в которых один твердотельный накопитель обеспечивает кэширование для многих жестких дисков.
  • Упреждающее чтение при промахе в кэше (по умолчанию отключено)
  • Высокоэффективная реализация обратной записи: «грязные» данные всегда записываются в отсортированном порядке, а при необходимости фоновая обратная запись плавно ограничивается до сохранения настроенного процента «грязного» кэша.
  • Внутренне используются высокопроизводительные деревья B+ — bcache способен выполнять около 1 000 000 операций ввода-вывода в секунду при случайном чтении, если оборудование достаточно быстрое.
  • Различные статистические данные времени выполнения и параметры конфигурации доступны через sysfs. [3]

Улучшения

[ редактировать ]

По состоянию на февраль 2014 г. , в будущих выпусках bcache запланированы следующие новые функции: [10]

  • Осведомленность о чередовании данных в макетах RAID 5 и RAID 6 – добавление осведомленности о чередовании данных в политику обратной записи, поэтому решения по кэшированию будут отдавать предпочтение уже «грязным» полосам, а при фактической фоновой очистке будут записываться полные полосы. первый
  • Обработка промахов в кэше с уже полными узлами дерева B+ — начиная с версии bcache в ядре Linux 3.10, разделение внутренних используемых узлов дерева B+ происходит при записи, что делает начальный прогрев кэша едва достижимым.
  • только «грязные» данные (для политики обратной записи) и метаданные , без траты места на SSD для чистых данных и чтения кэшей. Несколько твердотельных накопителей в наборе кэша — будут зеркалироваться
  • данных Контрольная сумма

См. также

[ редактировать ]
  • dm-cache — целевой преобразователь устройств ядра Linux, который позволяет создавать гибридные тома.
  • EnhanceIO — модуль дискового кэша для ядра Linux.
  • Flashcache — компонент дискового кэша для ядра Linux, первоначально разработанный Facebook.
  • Гибридный накопитель - устройство хранения данных, сочетающее в себе технологии хранения данных на основе флэш-памяти и вращающихся магнитных носителей.
  • ReadyBoost - программный компонент кэширования диска в Windows Vista и более поздних операционных системах Microsoft.
  • Технология Smart Response (SRT) — запатентованный механизм кэширования дискового хранилища, разработанный Intel для своих чипсетов.
  1. ^ «Часто задаваемые вопросы по bcache» . bcache.evilpiepirate.org . Проверено 7 мая 2021 г.
  2. ^ Петрос Кутупис (25 ноября 2013 г.). «Продвинутые методы кэширования жесткого диска» . Linux-журнал . Проверено 2 декабря 2013 г.
  3. ^ Jump up to: а б с «Документация по ядру Linux: Documentation/bcache.txt» . ядро.орг . 12 августа 2013 года . Проверено 24 января 2014 г.
  4. ^ Jump up to: а б с д Кент Оверстрит. «bcache: кеш блочного уровня ядра Linux» . bcache.evilpiepirate.org . Проверено 2 декабря 2013 г.
  5. ^ Jump up to: а б с д Джонатан Корбет (12 мая 2012 г.). «Обновление bcache» . LWN.net . Проверено 4 октября 2013 г.
  6. ^ «Основные RAID-организации» . ecs.umass.edu . Проверено 4 октября 2013 г.
  7. ^ Уильям Стернс; Кент Оверстрит (2 июля 2010 г.). «bcache: Кэширование за пределами оперативной памяти» . LWN.net . Проверено 4 октября 2013 г.
  8. ^ Кент Оверстрит (4 июля 2010 г.). «bcache: Версия 6» . LWN.net . Проверено 4 октября 2013 г.
  9. ^ «Ядро Linux 3.10, раздел 1.2. bcache, кеш блочного уровня для кэширования SSD» . kernelnewbies.org . 30 июня 2013 года . Проверено 4 октября 2013 г.
  10. ^ Jump up to: а б Либби Кларк (11 июня 2013 г.). «Все о ядре Linux: bcache» . Linux.com . Архивировано из оригинала 29 сентября 2013 года . Проверено 9 октября 2013 г.
  11. ^ Ларабель, Майкл (21 августа 2015 г.). «Новая файловая система Linux нацелена на скорость, но при этом имеет функции, подобные ZFS/Btrfs» . Фороникс . Проверено 22 ноября 2018 г.
  12. ^ Эдж, Джейк (23 мая 2018 г.). «Обновление bcachefs» . LWN.net . Проверено 22 ноября 2018 г.
  13. ^ Ларабель, Майкл (31 октября 2023 г.). «Bcachefs объединены с ядром Linux 6.7» . Фороникс . Проверено 20 ноября 2023 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d4826992e0818ce95087d681edf9fc59__1710618300
URL1:https://arc.ask3.ru/arc/aa/d4/59/d4826992e0818ce95087d681edf9fc59.html
Заголовок, (Title) документа по адресу, URL1:
bcache - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)