Fusion IO

See fusion kb" for building driver (kernel module, using rpmbuild).
a set of rpm are for the driver, another set for the utilities.
once device is installed, /dev/fioa is the "hard drive" raw device. If multiple, can use LVM to RAID 0, 1 or 10 the device into single entity. user guide has commands to use fuisio io card as swap replacement, it is to modify

Discard/TRIM support

Flash drive need addional handling in file system delete to allow hardware to know blocks are free. TRIM command supported by fusion io driver by default. linux kernel update had in the past buggy issue, fixed in newer kernel, but even RHEL 6.3 is potentially problematic (as it is 2.6.32). From the user guide:

There is a known issue that ext4 in 2.6.33 or earlier may silently corrupt data when discard is enabled. This has been fixed in many kernels provided by distribution vendors. Please check with your kernel provider to be sure your kernel properly supports discard. For more information, see the Errata in the Release Notes for this version of the software
/etc/fstab ::
/dev/fioa1  /opt  ext4  noatime,discard  0 1
documents ext4.  
the discard option req kernel 2.6.28, which even RHEL 5.8 isn't (it is 2.6.18), 
so TRIM support not avail even if it can support ext4.

hdparm are used to test and check for disk support for TRIM


ref: basic troubleshooting kb


lspci | egrep -i '1aed|ioDimm'

rpm -qa iomemory-vsl\*
rpm -qa fio\*
rpm -qa iodrive\*

cat /etc/modprobe.d/iomemory-vsl.conf
# ensure it is set to load at boot


not very scientific, using

# read/write test
date; cp file1 file2; date

get 4279640064 byes in 7 seconds in 3 consecutive test. 
ie 583 MByte/sec (4664 Mbps in network parlance).   [rhel 5.8, ext3]

in rhel6.3 ext4 (no trim option yet), 2nd copy took 11 seconds, 4th copy took 4 seconds...
   rhel6.3 ext4 (noatime, discard)  , 1st copy took 15 seconds, 2nd coyp took 4 seconds.

# read test
date; diff file1 file2; date    
complets in <7 seconds.  
2*4279640064 in 7 seconds = 1166 MByte/sec of read throughput.


compiling driver

See fusion kb" for building driver (kernel module, using rpmbuild). In a nutshell:

yum install gcc kernel-devel kernel-headers rpm-build

cp -p iomemory-vsl- /tmp
cd /tmp
rpmbuild --rebuild iomemory-vsl*.src.rpm

rpm -Uvh /usr/src/redhat/RPMS/x86_64/iomemory-vsl*.rpm
## see where the completed rpm build was saved to, cp the rpm to desired server and install via rpm -i .  eg:

cp -p /root/rpmbuild/RPMS/x86_64/iomemory-vsl-2.6.32-279.2.1.el6.x86_64-   ~/inbox/
scp ...
cd /tmp; 
rpm -ivv iomemory-vsl-2.6.32-279.2.1.el6.x86_64-
## there was a config*rpm, it won't install, ignored it

cp ~/inbox/.../util/*rpm /tmp/fusionio
cd /tmp/fusionio
rpm -ivh fio-*rpm  libvsl*rpm

# When using a .rpm source package for a non-running kernel, run this command:
$ rpmbuild --rebuild --define 'rpm_kernel_version {kernel-version}' iomemory-vsl-{VSL-version}.src.rpm

Copyright info about this work

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike2.5 License. Pocket Sys Admin Survival Guide: for content that I wrote, (CC) some rights reserved. 2005,2012 Tin Ho [ tin6150 (at) ]
Some contents are "cached" here for easy reference. Sources include man pages, vendor documents, online references, discussion groups, etc. Copyright of those are obviously those of the vendor and original authors. I am merely caching them here for quick reference and avoid broken URL problems.

Where is PSG hosted these days?