一、前提:核心中需要設定bcache模組
#1.1 檢查
# # - 是否存在於核心中:檢查/sys/fs/bcache目錄是否存在,沒有說明核心中沒有bcache - 是否以核心模組方式存在:檢查/lib/modules/<$version> /kernel/drivers/md/bcache目錄是否存,不存在則說明沒有bcache核心模組
1.2 編譯新核心
$ wget "" $ rpm2cpio ./kernel-3.10.0-514.el7.src.rpm | cpio -idmv //提取rpm包内容,获取内核:linux-3.10.0-514.el7.tar.xz$ make menuconfig //内核配置 Device Drivers ->Multiple devices driver support (RAID and LVM) -><*> Block device as cache $ make bzImage (V=1) //编译内核$ make modules //编译内核模块$ make modules_install //拷贝内核模块的.ko文件到/lib/modules下$ make install //拷贝initrd和bzImage到boot目录下,并修改开机启动配置文件$ reboot //重启,根据菜单选择对应内核版本进入
#二、編譯安裝
//获取bcache-tools工具(以下两个网址任选其一)$ git clone http://evilpiepirate.org/git/bcache-tools.git$ git clone https://github.com/g2p/bcache-tools.git//安装前需要两个依赖包pkg-config和libblkid-dev$ yum -y install pkg-config libblkid-dev//编译安装bcache-tools$ make$ make install
三、部署方式
#3.1 建立bcache裝置
$ -bcache -C <cache-device> -B <backing device>--B -C - -b 结果:有几个backing device就会对应生成几个/dev/
<br>
example: the default block and bucket sizes of 512B and 128kB are used. The block size should match the backing devices sector size which will usually be vices . The bucket size should match the erase block size of the caching device with the intent of reducing write amplification. For example, using a HDD with 4k sectors and an SSD with an erase block size of 4k sectors and an SSD with an erase blocklock size of 20000 寶貝
# - 1、建立後端裝置
$ make-bcache -B <backing-device> 结果:生成对应的设备/dev/bcache<n>
- 2、 attach綁定後端裝置
$ -la /sys/fs/bcache $ <CSET-UUID> > /sys/block/bcache<n>/bcache/
<br>
3.3 刪除後端裝置
# - 1 、detach解綁backing device裝置$ -la /sys/fs/bcache/ $ <CSET-UUID> > /sys/block/bcache<n>/bcache/
- 2、刪除後端裝置 $ > /sys/block/bcache<N>/bcache/
3.4 新增快取裝置(caching device)
$ make-bcache -C <cache device> 结果:在/sys/fs/bcache目录下生成对应的CACHE SET UUID 注意:有可能设备本身有残余数据,需要使用wipefs清理掉 $ wipefs -a /dev/sda
#
$ echo <CSET-UUID> > /sys/block/bcache<n>/bcache/attach 解释:通过后端设备attach缓存设备,cache device才能开始缓存,backing device才能被缓存
#前提:確保沒有backing device在使用它(可以透過lsblk查看)解釋: - cache裝置的存在,可以通過/ sys/fs/bcache目錄對應的cache set uuid了解 - unregister該cache設備視為該cache設備就視為刪除了
$ echo 1 > /sys/fs/bcache/<cache set uuid>/unregister 结果:再看/sys/fs/bcache目录下就没有这个cache设备的uuid了
$ mkfs.xfs /dev/bcache<n> //格式化设备为xfs文件系统$ mount /dev/bcache<n> /mnt //挂载设备到/mnt目录进行访问3.6 格式化bcache並掛載使用
$ cat /sys/block/bcache<n>/bcache/state
四、使用作業############4.1 檢視運行狀態#############
$ cat /sys/block/bcache<n>/bcache/dirty_data###########no cache:該backing device沒有attach任何caching device(這意味著所有I / O都直接傳遞到backing device[pass-through mode])。 ############clean:everything is ok,快取是乾淨的。 ############dirty:這表示一切都設定正常,並且您已啟用回寫,快取是髒的。 ############inconsistent:您遇到問題,因為後台裝置與快取裝置不同步。 ##################4.2 查看快取的資料量#############
// 设置缓存模式(默认writethrough)$ echo <cache mode> > /sys/block/bcache<N>/bcache/cache_mode// 查看缓存模式$ cat /sys/block/bcache<N>/bcache/cache_mode [writethrough] writeback writearound none############4.3查看/設定快取模式############
$ bcache-super-show /dev/sd<n>#############4.4 列印device資訊###########rrreee###
4.5 設定資訊
backing device 在/sys/block/bcache
cache device 在/sys/fs/bcache/
對/sys中設定資訊的改變是暫時的,重啟會失效。如果想要在啟動時設定目前的配置,則需要建立一個conf設定檔在/etc/tmpfile.d/中,例如/etc/tmpfile.d/my-bcache.conf:
w /sys/block/bcache0/bcache/sequential_cutoff - - - - 1
w /sys/block/bcache0/bcache/cache_mode - - - - writeback
(To set, in a persistent fashion, the sequential cutoff for bcache0 to 1 MB and write back)
以上是配置bcache模組的實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!