1. 程式人生 > >centos上配置並使用bcache

centos上配置並使用bcache

一、bcache簡介

首先,簡介下什麼是bcache?

        bcache是linux核心塊層cache.它使用類似SSD來作為HDD硬碟的cache,從而起到加速作用。

        原理圖:

         

    不僅是sda整個磁碟可以提供bcache服務,sda的每個分割槽也可提供bcache服務,下一篇文章在對bcache的效能測試是會詳細講解,此處不再贅述。

       HDD硬碟便宜並且空間更大,SSD速度快但更貴。如果能兩者兼得,豈不快哉?bcache能做到。

  bcache使用SSD作為其他塊裝置的cache.類似ZFS的L2Arc,但bcache還增加了寫回策略,並且是與檔案系統無關的。bcache被設計成只需要最小的代價,無需配置就能在所有環境中工作。預設狀態下bcache不快取順序IO,只快取隨機讀寫。

  bcache適用於桌面、伺服器,高階儲存陣列,甚至是嵌入式環境。設計bcache目標是讓被快取裝置(HDD等塊裝置)與SSD一樣快(包括快取命中、快取不命中、透寫和回寫)。現在還未達到初衷,特別是順序寫。同時測試結果表明離目標很接近,甚至有些情況下表現更好,例如隨機寫。

  bcache是資料安全的。對於寫回策略快取來說,可靠性是非常重要的,出錯就意味著丟失資料。bcache是用電池備份陣列控制器的替代選擇,同時也要求bcache在異常掉電時也是資料安全的。對於寫而言,必須在所有資料寫到可靠介質之後才能向上層返回寫成功。如果在寫一個大檔案時掉電了,則寫入是失敗的。異常掉電資料安全是指 cache 中的髒資料是不會丟的,不像記憶體中的髒資料掉電就沒了。

  bcache效能設計目標是等同於SSD.最大程度上去最小化寫放大,並避免隨機寫。bcache將隨機寫轉換為順序寫,首先寫到SSD,然後回寫快取使用SSD快取大量的寫,最後將寫有序寫到磁碟或者陣列上。對於RAID6陣列,隨機寫效能很差,還要花費不菲的價格購買帶有電池保護的陣列控制器。現在有了bcache,你就可以直接使用linux自帶的優秀軟RAID,甚至可以在更廉價的硬體上獲取更高的隨機寫效能。

二、獲取bcache模組

1、下載Linux原始碼並解壓

 可手動下載 地址:

https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/

按ctrl+F查詢對應版本 我的是4.9.403 下載

也可用wget命令下載:

wget https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.9.102.tar.xz
解壓命令:

xz -d linux-4.9.102.tar.xz

tar -xvf linux-4.9.102.tar

2、配置並編譯該版本核心

     a.拷貝原來的配置檔案

        cp /boot/config-3.10.0-693.el7.x86_64 .config

     b.配置menuconfig

        修改Device Driver->Mutiple device driver support讓Linux編譯時生成bcache模組 如圖:

配置完成後,儲存退出 make -j28(CPU 核數)

  c.修改核心預設啟動版本並安裝

make -j28 moduels
make -j28 modules_install
make install
cat /boot/grub2/grub.cfg 
grub2-set-default 'CentOS Linux (4.9.103) 7 (Core)'

至此,bcache模組生成。如果還不行,就手動insmod bcache模組