Example tutorial for configuring the bcache module

零下一度
Release: 2017-07-17 11:35:52
Original
3266 people have browsed it

1. Prerequisite: The bcache module needs to be configured in the kernel

##1.1 Check

 -Whether it exists in the kernel: check whether the /sys/fs/bcache directory exists, it does not mean that there is no bcache in the kernel

 -Whether it exists as a kernel module: check /lib/modules/<$version> Does the /kernel/drivers/md/bcache directory exist? If it does not exist, it means that there is no bcache kernel module

- If there is no bcache after checking the above two steps, it means that the kernel is not configured to compile bcache, and you need to configure and compile a new one yourself. Kernel (you need to pay attention to the version when downloading the kernel, the bcache function is only available in 3.10 and above)

1.2 Compile the new kernel

$ 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                    //重启,根据菜单选择对应内核版本进入
Copy after login


2. Compile and install

//获取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
Copy after login

3. Deployment method

3.1 Create bcache device

$ -bcache -C <cache-device> -B <backing device>--B     -C     -     -b    结果:有几个backing device就会对应生成几个/dev/
Copy after login
  
Copy after login
Copy after login
 <br>
Copy after login
Copy after login

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 either 512 or 4k . 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 2MB this command would look like

# make-bcache --block 4k --bucket 2m -C /dev/sdy

##3.2 Add backing device - 1. Create a back-end device

  $ make-bcache -B <backing-device>
  结果:生成对应的设备/dev/bcache<n>
Copy after login
 - 2. Attach binds the back-end device

  $  -la /sys/fs/bcache          $  <CSET-UUID> > /sys/block/bcache<n>/bcache/
Copy after login
  
Copy after login
Copy after login
 <br>
Copy after login
Copy after login

3.3 Delete the back-end device - 1 , detach and unbind the backing device

  $  -la /sys/fs/bcache/          $  <CSET-UUID> > /sys/block/bcache<n>/bcache/
Copy after login

 - 2. Delete the back-end device

  $   > /sys/block/bcache<N>/bcache/
Copy after login

3.4 Add caching device

## 

-1. Create caching device

  $ make-bcache -C <cache device>  结果:在/sys/fs/bcache目录下生成对应的CACHE SET UUID
  注意:有可能设备本身有残余数据,需要使用wipefs清理掉
  $ wipefs -a /dev/sda
Copy after login
    

  

 -2. Attach, associated with bcache device

  $ echo <CSET-UUID> > /sys/block/bcache<n>/bcache/attach
  解释:通过后端设备attach缓存设备,cache device才能开始缓存,backing   device才能被缓存
Copy after login

3.5 Delete the cache device

Prerequisite: Make sure that no backing device is using it (can be viewed through lsblk)Explanation: - The existence of the cache device can be verified through / Understand the cache set uuid corresponding to the sys/fs/bcache directory

        - After unregistering the uuid, the cache device is considered deleted


$ echo 1 > /sys/fs/bcache/<cache set uuid>/unregister
结果:再看/sys/fs/bcache目录下就没有这个cache设备的uuid了
Copy after login

3.6 Format bcache and mount it using

$ mkfs.xfs /dev/bcache<n>            //格式化设备为xfs文件系统$ mount /dev/bcache<n>  /mnt       //挂载设备到/mnt目录进行访问
Copy after login


4. Operation

4.1 Check the running status

$ cat /sys/block/bcache<n>/bcache/state
Copy after login

no cache: This backing device does not have any caching device attached (meaning all I/O is passed directly to the backing device [pass-through mode]).
  • clean: everything is ok, the cache is clean.
  • dirty: This means everything is set up fine and you have writeback enabled, the cache is dirty.
  • inconsistent: You are encountering a problem because the background device is out of sync with the cache device.
4.2 Check the amount of cached data

$ cat /sys/block/bcache<n>/bcache/dirty_data
Copy after login

##44.3 View/set cache mode

// 设置缓存模式(默认writethrough)$ echo <cache mode> > /sys/block/bcache<N>/bcache/cache_mode// 查看缓存模式$ cat /sys/block/bcache<N>/bcache/cache_mode
 [writethrough]    writeback        writearound    none
Copy after login

4.4 Print device information

$ bcache-super-show /dev/sd<n>
Copy after login

4.5 Configuration information

  • backing device is in the /sys/block/bcache/bcache/ directory

  • cache device is in the /sys/fs/bcache// directory

Changes to the configuration information in /sys are temporary Yes, restarting will invalidate it. If you want to set the current configuration at startup, you need to create a conf configuration file in /etc/tmpfile.d/, for example /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)

The above is the detailed content of Example tutorial for configuring the bcache module. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
use
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template