歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux內核 >> Linux內核之bcache簡介

Linux內核之bcache簡介

日期:2017/3/1 9:49:04   编辑:Linux內核

bcache是按照SSD特性來設計的,只按擦除桶大小進行分配,使用btree和日志混合方法來跟蹤緩存數據,緩存數據可以是桶上的任意一個扇區。bcache最大程度上減少了隨機寫的代價,它按順序填充一個桶,重新使用時只需將桶設置為無效。

bcache支持寫直達和回寫策略。回寫默認情況下是關閉的,可以在運行時改變。bcache還在最大程度上保護你的數據,在系統異常關機時數據仍然是可靠的。因為它被設計為只有在數據完全寫回存儲設備才確認寫成功。

回寫策略能夠緩存絕大多數的寫請求,然後再按照索引將髒數據按次序寫回到後端存儲設備。

SSD的特點就是隨機IO速度很快,而對於大塊順序IO的提升卻並不大。bcache會檢測順序IO並忽略;還會對每一個任務記錄動態的平均IO大小,當平均IO大小超過截止值時該任務後面的IO將會被忽略,這樣就可以透傳備份或者大文件拷貝。

在flash上發現數據IO錯誤時,首先會嘗試讀以恢復數據或者將該緩存項置為無效。對於不可恢復的錯誤,例如元數據或髒數據,bcache將會自動關閉緩存。如果有髒數據在緩存中,這時會首先關閉回寫策略然後再等待髒數據刷回。

從這裡開始

首先需要安裝bcache-tools,它提供了make-bcache工具。緩存設備和後端磁盤在使用前都需要先初始化:

make-bcache -B /dev/sdb
make-bcache -C /dev/sdc

make-bcache提供了同時初始化多個設備的功能,並自動綁定緩存設備和後端磁盤:

make-bcache -B /dev/sda /dev/sdb -C /dev/sdc

bcache-tools現在已經包含了udev規則文件,bcache設備可以立即被內核感知。如果沒有udev規則,需要手動注冊設備:

echo /dev/sdb > /sys/fs/bcache/register
echo /dev/sdc > /sys/fs/bcache/register

注冊了後端磁盤後,bcache設備會出現在/dev/目錄下,現在就可以格式化然後使用了。bcache設備默認是透傳模式,因此需要綁定緩存。
bcache顯示如下:

/dev/bcache<N>

還有(有udev規則文件時):

/dev/bcache/by-uuid/<uuid>
/dev/bcache/by-label/<label>

如果要開始使用:

mkfs.ext4 /dev/bcache0
mount /dev/bcache0 /mnt

bcache的sysfs控制項在/sys/block/bcache<N>/bcache。

bcache設備是按集合來管理的,但目前一個集合只支持一個bcache設備,將來會支持多個設備、元數據和髒數據鏡像。新cache設備顯示為/sys/fs/bcache/<UUID>

Linux Kernel 的詳細介紹:請點這裡
Linux Kernel 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved