Jump to content

Флешкэш

Flashcache — это компонент дискового кэша для ядра Linux , первоначально разработанный Facebook с апреля 2010 года и выпущенный с открытым исходным кодом в 2011 году. С января 2013 года существует форк Flashcache под названием EnhanceIO , разработанный sTec, Inc. [1] С 2015 года эта вилка перестала поддерживаться и была снова разветвлена ​​и поддерживается отдельными лицами. [2]

Flashcache работает с использованием флэш-памяти , USB-накопителя , SD-карты , CompactFlash или любого другого портативного флэш-накопителя в качестве постоянного кэша с обратной записью. Внутренний SSD также можно использовать для повышения производительности. [3]

Использование флэш-памяти ( устройств памяти NAND ) для кэширования позволяет ядру Linux обслуживать произвольный дисковый ввод-вывод с большей производительностью, чем без кеша. Такое кэширование применяется ко всему содержимому диска, а не только к файлу подкачки или системным двоичным файлам. Устройства на базе флэш-памяти обычно работают на порядок быстрее, чем вращающиеся жесткие диски при произвольном вводе-выводе, но с меньшими преимуществами или даже медленнее при последовательном чтении/записи. По умолчанию flashcache кэширует все операции ввода-вывода полного размера блока, но его можно настроить для кэширования только случайных операций ввода-вывода, игнорируя последовательные операции ввода-вывода. [4]

Подобная технология существует в Microsoft Windows , например ReadyBoost, начиная с Windows Vista .

Выполнение

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

Flashcache построен на основе устройства сопоставления устройств ядра Linux . Структура данных кэша представляет собой наборно-ассоциативную хеш-таблицу , в которой кэш разделен на несколько наборов (корзин) фиксированного размера с использованием линейного зондирования внутри набора для поиска блоков. Уровень сопоставителя устройств разбивает все запросы ввода-вывода на блоки размером с блок перед передачей запросов на уровень кэша. [ нужна ссылка ]

Когда происходит запрос на запись, соответствующий блок кэша помечается как «грязный»; «грязные» блоки кэша лениво записываются на диск в фоновом режиме. Есть несколько параметров для управления политикой обратной записи : грязный порог, бездействие и смежность с другими грязными блоками, которые собираются записать обратно. [ нужна ссылка ]

Ограничения

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

Есть несколько ограничений, налагаемых реализацией flashcache: [ нужна ссылка ]

атомарность
Запись блоков кэша в настоящее время не является атомарной.
Поддержка TRIM
Команда ATA TRIM для оптимизации флэш-памяти пока не поддерживается.
Защита от загрязнения кэша
Процесс можно пометить как некэшируемый, чтобы предотвратить кэширование его запросов в flashcache; однако, если процесс, пометивший себя как некэшируемый, умирает, flashcache не сможет его очистить.
Выравнивание
Использование устройства сопоставления устройств приводило к проблемам с производительностью кэширования и отсутствию кэширования записей, размер которых не кратен 4 КиБ. В первую очередь это касается гипервизора Xen. Таким образом, EnhanceIO отошел от интеграции устройства сопоставления устройств, что обеспечивает более высокую производительность в неоптимальных случаях использования. [ нужна ссылка ]
Влияние задержки чтения при записи
в режиме обходной записи все записи обходят кэш для обеспечения высокой согласованности. Текущая реализация будет получать данные чтения через устройство SSD, а затем доставлять их реальному считывателю. Это означает, что ранее некэшированные блоки всегда должны сначала поступать на SSD-устройство, что приводит к постоянному вводу-выводу при записи. Это не проблема для корпоративных твердотельных накопителей или устройств PCIe высокого класса, как это использует Facebook, но снижает производительность на более дешевых твердотельных накопителях.
Фаза прогрева кэша чтения с обходом записи
в режиме обходной записи FlashCache не имеет информации для сравнения возраста кэшированных страниц с страницами на диске. (1) Поскольку устройство могло быть смонтировано вне FlashCache (2) Поскольку в этом режиме записи не отслеживаются. Это приводит к пустому кэшу после каждой многопользовательской активации (т. е. перезагрузки). Производительность будет снижаться до тех пор, пока все «горячие» области не будут кэшированы.

См. также

[ редактировать ]
  1. ^ EnhanceIO: новое кэширование твердотельных накопителей для Linux
  2. ^ EnhanceIO с открытым исходным кодом для Linux
  3. ^ «Флэш-кэш | Документация NetApp» . docs.netapp.com . Проверено 10 октября 2022 г.
  4. ^ Мохан Шринивасан. «Flashcache: кэш блоков обратной записи для Linux» . Гитхаб .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d86ed8a17bd9eb8cec0287d909323be8__1679877660
URL1:https://arc.ask3.ru/arc/aa/d8/e8/d86ed8a17bd9eb8cec0287d909323be8.html
Заголовок, (Title) документа по адресу, URL1:
Flashcache - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)