Bcache - Википедия - bcache
Разработчики) | Кент Оверстрит и другие |
---|---|
Репозиторий | |
Написано в | C |
Операционная система | Linux |
Тип | Особенности ядра Linux |
Лицензия | GNU GPL |
Интернет сайт | bcache |
bcache (сокращенно от блочный кеш) это тайник в Ядро Linux блочный уровень, который используется для доступа вторичное хранилище устройств. Это позволяет использовать одно или несколько быстрых запоминающих устройств, например флэш-память. твердотельные накопители (SSD), чтобы действовать как кэш для одного или нескольких более медленных устройств хранения, таких как жесткие диски (HDD); это эффективно создает гибридные тома и обеспечивает повышение производительности.
Разработанный с учетом природы и характеристик твердотельных накопителей, bcache также минимизирует запись усиления избегая случайные записи и превращая их в последовательные записи вместо. Это слияние Операции ввода / вывода выполняется как для кеша, так и для основного хранилища, помогая продлить срок службы устройств на основе флэш-памяти, используемых в качестве кешей, и повысить производительность чувствительных к записи основных хранилищ, таких как RAID 5 наборы.
bcache под лицензией Стандартная общественная лицензия GNU (GPL), и Кент Оверстрит является его основным разработчиком.
Обзор
Использование bcache позволяет использовать твердотельные накопители в качестве еще одного уровня косвенности в путях доступа к хранилищу данных, что приводит к повышению общей производительности за счет использования быстрого вспышка SSD-накопители в качестве кэшей для более медленных механических жестких дисков (HDD) с вращающимся магнитные носители. Таким образом, можно преодолеть разрыв между твердотельными накопителями и жесткими дисками - высокая скорость твердотельных накопителей сочетается с дешевым объемом хранения традиционных жестких дисков.[1]
Кэширование реализовано с использованием SSD для хранения данных, связанных с выполненными случайное чтение и случайные записи с использованием почти нулевого время поиска как наиболее заметная особенность твердотельных накопителей. Последовательный ввод / вывод не кешируется, чтобы избежать быстрого SSD аннулирование кеша на таких операциях, которые уже достаточно подходят для HDD; обход кеша для больших последовательных операций записи известен как переписывание политика. Не кешировать последовательный Ввод / вывод также помогает продлить срок службы твердотельных накопителей, используемых в качестве кэшей.[2] Запись усиления можно избежать, если не выполнять произвольную запись на SSD; вместо этого все случайные записи в кэши SSD всегда объединяются в записи на уровне блоков, в результате чего перезаписывается только полная стереть блоки на SSD.[3][4]
Обе обратная запись и сквозная запись (что по умолчанию) политики поддерживаются для кэширования операций записи. В случае политики обратной записи записанные данные сначала сохраняются внутри кешей SSD, а затем передаются на жесткие диски пакетным способом, выполняя операции, удобные для поиска, что делает bcache также Планировщик ввода / вывода. Для политики сквозной записи, которая гарантирует, что ни одна операция записи не будет помечена как завершенная до тех пор, пока данные, запрошенные для записи, не достигнут как твердотельных, так и жестких дисков, улучшения производительности снижаются за счет эффективного выполнения кэширования только записанных данных.[3][4]
Политика обратной записи с пакетной записью на жесткие диски обеспечивает дополнительные преимущества для чувствительных к записи избыточный массив независимых дисков (RAID) макеты, такие как RAID 5 и RAID 6, которые выполняют фактические операции записи как атомный читать-изменять-писать последовательности. Таким образом, штрафы за производительность[5] количество небольших случайных записей сокращается или избегается для таких схем RAID за счет их группировки и выполнения как пакетных последовательных записей.[3][4]
Кэширование, выполняемое bcache, работает на блочное устройство уровень, делая себя файловая система –Агностика, если файловая система предоставляет встроенный универсальный уникальный идентификатор (UUID); этому требованию удовлетворяют практически все стандартные Файловые системы Linux, а также поменять местами разделы. Размеры логических блоков, используемых внутри bcache в качестве экстентов кэширования, могут уменьшаться до размера одного сектора жесткого диска.[6]
История
Впервые bcache был объявлен Кентом Оверстритом в июле 2010 года как полностью рабочий модуль ядра Linux, хотя и на ранней стадии бета-тестирования.[7] Разработка продолжалась почти два года, до мая 2012 года, когда bcache достиг состояния готовности к работе.[4]
Он был объединен с Основная линия ядра Linux в версии ядра 3.10, выпущенной 30 июня 2013 г.[8][9] С тех пор Overstreet разрабатывает файловая система bcachefs, основанный на идеях, впервые разработанных в bcache, которые, по его словам, начали "развиваться ... в полномасштабную универсальную POSIX файловая система".[10] Он описывает bcache как «прототип» идей, которые стали bcachefs, и намеревается, что bcachefs заменит bcache.[11] Он официально объявил о bcachefs в 2015 году,[12] и по состоянию на 2018 год отправляет его на рассмотрение для включения в основное ядро Linux.[13]
Функции
Начиная с версии 3.10 ядра Linux, bcache предоставляет следующие функции:[3]
- Одно и то же устройство кэш-памяти можно использовать для кэширования произвольного количества первичных запоминающих устройств.
- Подключение и отключение основных запоминающих устройств от их кешей во время выполнения, когда они подключены и используются (работает в режиме сквозной передачи, когда они не кэшированы)
- Автоматическое восстановление после нечистых отключений - запись не завершается до тех пор, пока кэш не будет согласован с основным устройством хранения; внутренне bcache не делает различий между чистым и нечистым завершением работы
- Прозрачная обработка ошибок ввода-вывода, генерируемых устройствами кэширования[2]
- Пишите барьеры и связанные сбросы кеша правильно обрабатываются
- Политика сквозной записи (по умолчанию), обратной записи и обратной записи
- Последовательный ввод-вывод обнаруживается и обходится с настраиваемыми пороговыми значениями; обход также можно отключить
- Регулирование ввода-вывода на SSD, если он становится перегруженным, что определяется измеренной задержкой операций ввода-вывода SSD, превышающей настраиваемый порог; полезно для конфигураций с одним SSD, обеспечивающим кеширование для многих HDD
- Readahead на промах в кеше (по умолчанию отключено)
- Высокоэффективная реализация обратной записи - грязные данные всегда записываются в отсортированном порядке, и, возможно, фоновая обратная запись плавно снижается, чтобы сохранить настроенный процент кеша грязным
- Высокая производительность B + деревья используются для внутреннего использования - bcache поддерживает около 1000000 IOPS при случайном чтении, если оборудование достаточно быстрое
- Различные статистические данные времени выполнения и параметры конфигурации доступны через sysfs[2]
Улучшения
По состоянию на февраль 2014 г.[Обновить], в будущих выпусках bcache запланированы следующие новые функции:[9]
- Осознание чередование данных в схемах RAID 5 и RAID 6 - добавление осведомленности о структуре полос в политику обратной записи, поэтому решения по кэшированию будут отдавать предпочтение уже «грязным» полосам, а фактическая фоновая очистка будет записывать сначала полные полосы
- Обработка промахов кеша с уже заполненными узлами дерева B + - начиная с версии bcache в ядре Linux 3.10, при записи происходит разбиение внутренних узлов дерева B + при записи, что делает первоначальный разогрев кеша трудно достижимым
- Несколько SSD в наборе кеша - только грязные данные (для политики обратной записи) и метаданные будет зеркалироваться, не тратя пространство SSD для чистых данных и чтения кешей
- Данные контрольная сумма
Смотрите также
- dm-cache - целевой объект сопоставления устройств ядра Linux, который позволяет создавать гибридные тома
- EnhanceIO - модуль дискового кеша для ядра Linux.
- Flashcache - компонент кеширования диска для ядра Linux, изначально разработанный Facebook
- Гибридный привод - запоминающее устройство, сочетающее в себе технологии флэш-памяти и вращающиеся магнитные носители.
- ReadyBoost - программный компонент кэширования дисков Windows Vista и более поздних операционных систем Microsoft
- Технология Smart Response (SRT) - проприетарный механизм кэширования дискового хранилища, разработанный Intel для своих чипсетов.
Рекомендации
- ^ Петрос Кутупис (25 ноября 2013 г.). «Расширенные методы кэширования жесткого диска». Linux журнал. Получено 2 декабря, 2013.
- ^ а б c «Документация ядра Linux: Documentation / bcache.txt». kernel.org. 12 августа 2013 г.. Получено 24 января, 2014.
- ^ а б c d Кент Оверстрит. "bcache: кеш уровня блоков ядра Linux". bcache.evilpiepirate.org. Получено 2 декабря, 2013.
- ^ а б c d Джонатан Корбет (12 мая 2012 г.). "Обновление bcache". LWN.net. Получено 4 октября, 2013.
- ^ "Основные организации RAID". ecs.umass.edu. Получено 4 октября, 2013.
- ^ Уильям Стернс; Кент Оверстрит (2 июля 2010 г.). «Bcache: кэширование не только в ОЗУ». LWN.net. Получено 4 октября, 2013.
- ^ Кент Оверстрит (4 июля 2010 г.). «Bcache: версия 6». LWN.net. Получено 4 октября, 2013.
- ^ «Ядро Linux 3.10, раздел 1.2. Bcache, кэш уровня блоков для кэширования SSD». kernelnewbies.org. 30 июня 2013 г.. Получено 4 октября, 2013.
- ^ а б Либби Кларк (11 июня 2013 г.). «Все о ядре Linux: Bcache». linux.com. Архивировано из оригинал 29 сентября 2013 г.. Получено 9 октября, 2013.
- ^ Ларабель 2015.
- ^ Edge 2018.
- ^ Джексон 2015.
- ^ Ларабель 2018.
Процитированные работы
- Эдж, Джейк (23 мая 2018 г.). "Обновление bcachefs". LWN.net. Архивировано из оригинал 1 июня 2018 г.. Получено 22 ноября, 2018.CS1 maint: ref = harv (связь)
- Джексон, Иоав (21 августа 2015 г.). «Бывший инженер Google обновляет новую файловую систему Linux». PCWorld. Получено 22 ноября, 2018.CS1 maint: ref = harv (связь)
- Ларабель, Майкл (21 августа 2015 г.). «Новая файловая система Linux нацелена на скорость при наличии функций, подобных ZFS / Btrfs». Фороникс. Архивировано из оригинал 23 августа 2015 г.. Получено 22 ноября, 2018.CS1 maint: ref = harv (связь)
- Ларабель, Майкл (9 мая 2018 г.). "Файловая система Bcachefs работает над развитием ядра Linux". Фороникс. Архивировано из оригинал 9 июля 2018 г.. Получено 22 ноября, 2018.CS1 maint: ref = harv (связь)
внешняя ссылка
- Официальный веб-сайт
- LSFMM: Кеширование - dm-cache и bcache, LWN.net, 1 мая 2013 г., Джейк Эдж
- Варианты блочного кэширования Linux в стабильном ядре восходящего потока (PDF), Dell, Декабрь 2013
- Тестирование серии bcache: Пропускная способность, IOPS, Метаданные, и Большие файлы и подведение итогов, Журнал Linux, Август – сентябрь 2010 г., Джеффри Б. Лейтон
- Сравнение производительности EnhanceIO, bcache и dm-cache, LKML, 11 июня 2013 г.
- Тестирование EnhanceIO, Bcache и DM-Cache, Фороникс, 11 июня 2013 г., Майкл Ларабель