Skip to content

EnhanceIO disk cache

First disable kernel upgrades as it will break cache (and lost of data!)

nano /etc/yum.conf
    exclude=kernel*

After compiling EiO cache install modules:

modprobe enhanceio
modprobe enhanceio_lru

Installation on CentOS 7.2 (kernel 3.9)

Kernel source repository:

Ref.: https://wiki.centos.org/HowTos/I_need_the_Kernel_Source
cd /home/user
git clone https://github.com/stec-inc/EnhanceIO.git
yum install kernel-devel gcc
mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
yum install rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed pesign xmlto 
yum install audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel
yum install ncurses-devel newt-devel numactl-devel pciutils-devel python-devel zlib-devel
yum install bison
yum install net-tools bc

Download and install kernel source:

Buscar la versiĆ³ de centos: rpm --query centos-release
rpm -i http://vault.centos.org/7.2.1511/updates/Source/SPackages/kernel-3.10.0-327.10.1.el7.src.rpm 2>&1 | grep -v exist
cd ~/rpmbuild/SPECS
rpmbuild -bp --target=$(uname -m) kernel.spec

Kernel source is in:

rpmbuild/BUILD/kernel-3.10.0-327.10.1.el7/linux-3.10.0-327.10.1.el7.x86_64/
Ref.: https://wiki.centos.org/HowTos/BuildingKernelModules
cd rpmbuild/BUILD/kernel-3.10.0-327.10.1.el7/linux-3.10.0-327.10.1.el7.x86_64/
make oldconfig
make menuconfig  (no canviem res en realitat)
make prepare
make modules_prepare

We can't build it on current folder. So, we could do an ln or build it on /usr/src/kernels:

cd /usr/src/kernels/3.10.0-327.10.1.el7.x86_64/fs
 (or ln rpmbuild/BUILD/ker... to /usr/src/ker...)
mkdir enhanceio
cd enhanceio
cp /home/user/EnhanceIO/Driver/enhanceio/* .
cd /usr/src/kernels/3.10.0-327.10.1.el7.x86_64/
make -C /lib/modules/`uname -r`/build M=fs/enhanceio
strip --strip-debug fs/enhanceio/*.ko
cp fs/enhanceio/*.ko /lib/modules/`uname -r`/extra
depmod -a

Fedora (if LINUX_VERSION_CODE < KERNEL_VERSION(4,3,0))

yum install kernel-devel gcc
git clone https://github.com/stec-inc/EnhanceIO.git
uname -a
cd EnhanceIO/Driver/enhanceio/
make
make install

Fedora (if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0))

NOT TESTED With this fork it does compile on kernels 4.3.

https://github.com/elmystico/EnhanceIO

NOT TESTED