enhanceio的安装与使用

enhanceio是在flashcache的基础上stec-inc推出的改进版。昨天试用了一下,配置简单,易于操作,可以在硬盘挂载的情况下动态添加和删除enhanceio设备,一旦创建就是persistent的。其性能也非常出众。可惜被收购后,此项目已停止了更新和维护。

1. 安装

git clone https://github.com/STEC-inc/EnhanceIO
cd EnhanceIO
sudo cp CLI/eio_cli /sbin/
chmod 700 CLI/eio_cli
sudo cp ./CLI/eio_cli.8 /usr/share/man/man8/
cd Driver/enhanceio/
sudo apt-get install build-essential dkms
make 
sudo make install

cd Driver
sudo cp -r enhanceio /usr/src
sudo mv /usr/src/enhanceio /usr/src/enhanceio-0.1
cd /usr/src/enhanceio-0.1

sudo vim dkms.conf
PACKAGE_VERSION="0.1"

sudo dkms add -m enhanceio -v 0.1
sudo dkms build -m enhanceio -v 0.1
sudo dkms install -m enhanceio -v 0.1
2. 创建
sudo eio_cli create -d /dev/sdb -s /dev/sdc4 -m wb -c enhanceio_test
                           │           │        │            └cache name
                           │           │        └cache style(wb=writeback, wt=writethrough, ro=readonly)
                           │           └Caching Device (SSD)
                           └Source Device (HDD)
$ cat /proc/enhanceio/my_first_enhanceio/stats
然后利用eio_cli info就可以查看创建的缓存设备了。

3. 删除

先设置为只读,然后进行删除

# eio_cli edit -c my_first_enhanceio -m ro
$ grep nr_dirty /proc/enhanceio/enchanceio_test/stats
# eio_cli delete -c my_first_enhanceio

4. 参数设置    

可以利用sysctl -w或者编辑/etc/sysctl.conf进行配置

dev.enhanceio.ecache.autoclean_threshold = 1
dev.enhanceio.ecache.control = 0
dev.enhanceio.ecache.dirty_high_threshold = 100
dev.enhanceio.ecache.dirty_low_threshold = 90
dev.enhanceio.ecache.dirty_set_high_threshold = 100
dev.enhanceio.ecache.dirty_set_low_threshold = 90
dev.enhanceio.ecache.do_clean = 0
dev.enhanceio.ecache.mem_limit_pct = 90
dev.enhanceio.ecache.time_based_clean_interval = 1
dev.enhanceio.ecache.zero_stats = 0

可以根据需要进行调整。

5. 测试结果

经过初步测试,enhanceio的wb模式在极端情况下会出现丢失数据的情况。而flashcache的wb模式则不会。所以如果是读多写少的话,采用enhanceio的wt模式效果很好。写多的情况最好还是用flashcache的wb模式。

参考:

http://www.thomas-krenn.com/de/wiki/EnhanceIO

https://wiki.archlinux.org/index.php/EnhanceIO

你可能感兴趣的:(enhanceio的安装与使用)