No I’m not trying to rip off of LWN’s article on a tale of two iSCSI targets, but I hope the screenshots below speak for themselves
Full disclosure ahead before I continue on ahead, the test setup was done on the following:
- 2x750GB 5200rpm Hitachi Hard Drive (Standard laptop ones)
- 2x40GB VHDX’es created on the separate drives to emulate a striped setup
- 2x10GB Volumes carved out of a ZFS pool and both formatted to the NTFS file system, physical blocksizes are set to 4K
- ZFS on Linux git HEAD (as of writing)
- Ubuntu 12.04 Server installed with a patched Quantal kernel
From the looks of the screenshot, LIO’s iSCSI stack seems to outperform SCST in read performance but once we shift focus on write performance, SCST outperforms LIO. LIO’s write performance is just… don’t get me started.
However this boggles me: two different iSCSI implementations on pretty much the same system supporting the same features, but when performance is measured, they vary widely.
Both of the target stack’s website claim they offer superior performance, but in this case LIO isn’t really delivering what’s advertised on the tin can. However SCST did, which I will give kudos to. One minor problem, SCST is a PITA to install as the kernel mode code isn’t included in the mainstream kernel sources that everybody uses. And the authors or somebody associated with the project claim exclusion of SCST from the mainline kernel was purely a political one. Configuration of the target isn’t as intuitive as Linux-iSCSI. Wish SCST had their own implementation of targetcli like Linux-iSCSI provides.
Don’t get me wrong on this, LIO and SCST are both great iSCSI target stacks but from the benchmarks I’ve done on a test system, it seems that SCST is the clear winner here in terms of overall performance.