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:/etc/fstab :: /dev/fioa1 /opt ext4 noatime,discard 0 1 https://ext4.wiki.kernel.org/index.php/Ext4_Howto 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
Commands/Troubleshooting
ref: basic troubleshooting kbfio-status fio-pci-check 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
Performance
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-3.1.5.126-1.0.el6.src.rpm /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-3.1.5.126-1.0.el6.x86_64.rpm ~/inbox/ scp ... cd /tmp; rpm -ivv iomemory-vsl-2.6.32-279.2.1.el6.x86_64-3.1.5.126-1.0.el6.x86_64.rpm ## 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) gmail.com ]
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?
http://tiny.cc/tin6150/ New home in 2011.06.
http://tin6150.s3-website-us-west-1.amazonaws.com/psg.html (coming soon)
ftp://sn.is-a-geek.com/psg/psg.html My home "server". Up sporadically.
http://tin6150.github.io/psg/psg.html
http://www.fiu.edu/~tho01/psg/psg.html (no longer updated as of 2007-05)