Flashcache

源碼安裝:
unzip flashcache-master.zip
cd flashcache-master
make
make install

rpm來源:http://rpm.pbone.net/
rpm安裝:rpm -ivh kmod-flashcache-0.0-3.el6.elrepo.x86_64.rpm
       rpm -ivh flashcache-utils-0.0-4.1.el6.elrepo.x86_64.rpm
deb來源:alien將rpm包轉換爲deb包
alien --scripts kmod-flashcache-0.0-3.el6.elrepo.x86_64.rpm
alien --scripts flashcache-utils-0.0-4.1.el6.elrepo.x86_64.rpm
deb安裝:dpkg -i kmod-flashcache_0.0-4_amd64.deb
       dpkg -i flashcache-utils_0.0-5.1_amd64.deb

1.簡介
Flashcache 是爲Linux操作系統開發的塊設備回寫緩存內核模塊,使用了Device Mapper的方式實現,本文檔可指導你快速掌握Flashcache管理工作。
2. 系統需求
Flashcache 在Linux 2.6.18 和 2.6.20 內核上編譯並測試通過。如果需要在更新的內核上使用,請發送郵件給作者尋求幫助,但作者聲明不會支持比2.6.18舊的內核版本

3.緩存持久性
 Writethru 和writearound 沒有持久性,在斷電或重啓後,緩存數據會丟失,writeback具有持久性,在斷電或重啓後,緩存數據不會丟失。?

4. Cache創建與加載工具
這部分有三個工具: flashcache_create, flashcache_load 和flashcache_destroy. 這些工具實際上內部調用dmsetup命令,包裝了一個比較簡單的界面來處理創建、加載和銷燬flashcache 卷的工作。希望能幫助大部分用戶來避免使用到較複雜的dmsetup指令。

4.1 flashcache_create

功能:創建一個新的flashcache卷。命令語法:

flashcache_create -p back|around|thru [-s cache size] [-b block size] cachedevname ssd_devname disk_devname

-p:緩存模式 writeback,writethrough,writearound三種。

-s:緩存大小,可選項,如果未指定則整個SSD設備被用於緩存,默認的計數單位是扇區(sectors),但是可以接受k/m/g單位。

-b:指定塊大小,可選項,默認爲4KB,必須爲2的指數。默認單位爲扇區。也可以用K作爲單位,一般選4KB。

-f:強制創建,不進行檢查。

舉例:

flashcache_create -p back -s 1g -b 4k cachedev /dev/sdc /dev/sdb

創建一個1GB回寫的緩存卷,名稱爲“cachedev”,目標磁盤是磁盤 /dev/sdb(SAS盤或SATA盤),緩存盤是/dev/sdc(SSD盤),快大小爲4KB。

flashcache_create -p thru -s 2097152 -b 8 cachedev /dev/sdc /dev/sdb

創建一個2097152扇區(1G)的通寫緩存卷,塊大小爲8KB。其他同上面。

4.2 flashcache_load

功能:加載一個已經存在的flashcache卷,命令語法:

flashcache_load cachedevname ssd_devname disk_devname

舉例:

flashcache_load cachedev /dev/sdc /dev/sdb

加載一個已經存在writeback 緩存的 /dev/sdc設備。

一般是爲了重啓後可繼續使用。

4.3 flashcache_destroy

功能:銷燬一個存在的flashcache卷,所有的數據將被丟失。

語法:flashcache_destroy ssd_devname

舉例:flashcache_destroy /dev/sdc

銷燬卷/dev/sdc

5 刪除 flashcache 卷

需要使用 dmsetup remove 命令來刪除一個 flashcache 卷。

對於writeback模式,默認的remove行爲是將“髒”的cache數據寫到磁盤上,一直到所有的數據寫到磁盤,該命令纔會返回成功。磁盤清理的過程被報告給控制檯。另外機器reboot同樣會觸發將Cache裏的髒數據同步到磁盤的動作。

對於writethrough和writearound模式的緩存,磁盤刪除或者重啓,卷都會被刪除。

舉例:dmsetup remove cachedev

刪除的flashcache 卷的名稱爲cachedev,刪除之前會清理掉所有的塊。

6 Cache統計信息

可以使用 “dmsetup status”命令來查詢cache的統計信息。

“dmsetup table”命令可以dumps出來achce相關的統計信息。

舉例:

dmsetup status cachedev

dmsetup table cachedev

另外proc文件系統中也有相應的狀態和錯誤的統計報告:

flashcache 卷的錯誤信息報告在

/proc/flashcache/<cache name>/flashcache_errors 裏

flashcache 卷的統計信息報告在

/proc/flashcache/<cache name>/flashcache_stats 裏

7.緩存塊大小選擇

緩存塊大小的選擇對於好的緩存利用率和性能來說很關鍵。

4KB的緩存塊可用於絕大多數的工作量或文件系統來說

8.緩存元數據塊大小的選擇

元數據塊的選擇只適用於回寫緩存模式,對於writethrough和writearound模式存儲沒有緩存元數據。

在flashcache版本1中,元數據塊的大小被確定爲1個扇區,即512B。在flashcache版本2中取消了這個限制。在版本2中,可以自己設定更大的flashcache元數據塊大小。在第2版本中的緩存向後兼容,對於這些情況,512B的元數據塊將繼續使用。

flashcache_create –m選項可以用於配置元數據塊的大小,默認爲4KB。理想的元數據塊大小是4KB(默認)或者8KB。選擇元數據塊的大小有以下規則:

1)         元數據塊的大小必須是2的指數

2)         元數據快的大小不能比SSD盤配置的扇區尺寸小

3)         一個單一的元數據塊不能有2個數據緩存設置。

選擇比512B元數據塊大的數據的優勢:

1)         允許SSD被設置更大的扇區。例如,一些SSD允許選擇4KB扇區,往往有更好的性能選擇。

2)         允許flashache做更好的元數據更新, 有可能減少元數據的更新,寫SSD變小,減少寫入放大和更高的SSD壽命。

9、使用 dmsetup命令創建和加載flashcache卷

很少有人需要使用dmsetup原生命令去創建和加載flashcache卷。本節包含的內容如下:

dmsetup create device_name table_file

device_name 被創建或加載的flashcache設備名

table_file 其他緩存格式,如果被省略,則從標準輸入讀取。

table_file格式:

0 <disk dev sz in sectors> flashcache <disk dev> <ssd dev> <cache mode> <flashcache cmd> <blksize in sectors> [size of cache in sectors] [cache set size]

cache 模式:1: Write Back 2: Write Through 3: Write Around

flashcache 命令: 1: load existing cache (加載已存在的緩存)

2: create cache (創建新的緩存)

3: force create cache (overwriting existing cache):(強制創建緩存)

扇區塊大小的選擇: 4KB(8扇區,每頁)是最佳選擇對應大多數應用。

扇區緩存大小的選擇:2的指數被

緩存尺寸設置:默認512

10、緩存控制:

Flashcache能被設置成兩種模式:Cache Everything or Cache Nothing,默認的是Cache Everything。

這兩種模式有一個黑名單和一個白名單。

11、安全注意事項

對應Flashcache,有可能被一個惡意的用戶進程破壞只讀文件的數據。在未來的Flashcache版本中。將解決這個問題(採用額外的數據複製)

沒有記錄惡意程序是如何破壞數據的機制

您可以通過設置Flashcache卷中的文件的適當權限去解決這樣的問題。

12、調整XFS使Flashcache性能更好

flashcache-master.zip    (165.319 KB)    李, 綱彬, 2014-07-02 10:22  

flashcache-utils-0.0-4.1.el6.elrepo.x86_64.rpm    (28.516 KB)    李, 綱彬, 2014-08-07 16:43  

kmod-flashcache-0.0-3.el6.elrepo.x86_64.rpm    (60.699 KB)    李, 綱彬, 2014-08-07 16:43  

flashcache-utils_0.0-5.1_amd64.deb    (29.836 KB)    李, 綱彬, 2014-08-07 16:46  

kmod-flashcache_0.0-4_amd64.deb    (60.586 KB)    李, 綱彬, 2014-08-07 16:46  

新建文件


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章