AoE on RHEL/CentOS
Updated 2012-07-24: packages updated to aoe-80 and aoetools-34, respectively.
I'm a big fan of Coraid and their relatively low-cost storage units. I've been using them for 5+ years now, and they've always been pretty well engineered, reliable, and performant.
They talk ATA-over-Ethernet (AoE), which is a very simple non-routable protocol for transmitting ATA commands directly via Ethernet frames, without the overhead of higher level layers like IP and TCP. So they're a lighter protocol than something like iSCSI, and so theoretically higher performance.
One issue with them on linux is that the in-kernel 'aoe' driver is typically pretty old. Coraid's latest aoe driver is version 78, for instance, while the RHEL6 kernel (2.6.32) comes with aoe v47, and the RHEL5 kernel (2.6.18) comes with aoe v22. So updating to the latest version is highly recommended, but also a bit of a pain, because if you do it manually it has to be recompiled for each new kernel update.
The modern way to handle this is to use a kernel-ABI tracking kmod, which gives you a driver that will work across multiple kernel updates for a given EL generation, without having to recompile each time.
So I've created a kmod-aoe package that seems to work nicely here. It's downloadable below, or you can install it from my yum repository. The kmod depends on the 'aoetools' package, which supplies the command line utilities for managing your AoE devices.
- SRPM: http://www.openfusion.com.au/labs/srpms/aoe-kmod-80-1.of.el6.src.rpm
- CentOS5-x86_64 RPM: http://www.openfusion.com.au/mrepo/centos5-x86_64/RPMS.of/kmod-aoe-80-1.of.el5.x86_64.rpm
- CentOS6-x86_64 RPM: http://www.openfusion.com.au/mrepo/centos6-x86_64/RPMS.of/kmod-aoe-80-1.of.el6.x86_64.rpm
- SRPM: http://www.openfusion.com.au/labs/srpms/aoetools-34-1.of.el6.src.rpm
- CentOS5-i386 RPM: http://www.openfusion.com.au/mrepo/centos5-i386/RPMS.of/aoetools-34-1.of.el5.i386.rpm
- CentOS5-x86_64 RPM: http://www.openfusion.com.au/mrepo/centos5-x86_64/RPMS.of/aoetools-34-1.of.el5.x86_64.rpm
- CentOS6-i386 RPM: http://www.openfusion.com.au/mrepo/centos6-i386/RPMS.of/aoetools-34-1.of.el6.i686.rpm
- CentOS6-x86_64 RPM: http://www.openfusion.com.au/mrepo/centos6-x86_64/RPMS.of/aoetools-34-1.of.el6.x86_64.rpm
There's an init script in the aoetools package that loads the kernel module,
activates any configured LVM volume groups, and mounts any filesystems.
All configuration is done via