Thank you TuxDude
This is very interesting!
Just one question: the LIO stack is a direct part of the linux iSCSI implementation? This means I will get VAAI and MPIO automagically just because my iSCSI target is provided by Linux with 3.10 (or newer) kernel?!
P.S. suggestions about the linux distribution?
There are multiple iSCSI targets available on Linux, some have more features or better support than others, and different distributions still bundle different ones as well. LIO is one of the newer options and is the one that was chosen to be merged into the mainline kernel. It is also the software stack used by at least QNAP (I went hacking around in a qnap to verify it) and I'm sure many other NAS/SAN vendors who have paid to get their devices certified with VMware and MS. You won't get the certification on a home-built device - but it should work as its the same software.
Just having a 3.1 (or newer) kernel does not guarantee you are using the LIO iSCSI target. Like most of the rest of the kernel it is an option that can be toggled at configuration/compile time, and likely some distributions will disable it to keep using the same software and management interface they had previously used with other iSCSI target software. I know from experience that RHEL6 and clones used a different stack - I just did a quick check and a CentOS7 box I have here (kernel 3.10) does have the LIO iSCSI target enabled.
Also, VAAI is a feature that was added in kernel 3.12, so if you want that you need to be slightly newer yet again.
As for distribution to use, I like Gentoo, but I'm not normal. Especially if you have little to no Linux experience, Gentoo will either teach you a damn lot or drive you back to MS OS's. You get to pick your kernel yourself, configure it yourself, and compile it yourself - if its your first time plan a couple days just for OS install for Gentoo. My next choice would be Fedora - it will give you a leading/bleeding edge system in terms of software updates (my Fedora 20 desktop is now on kernel 3.17), it has the LIO stack enabled in the kernel, but it will require you to upgrade the OS more often which is not quite optimal for a NAS appliance. It's also targeted at power-users and not the most friendly distribution out there. Fedora 21 was also just released in the last couple of days and for the first time has a 'Server' install option - I haven't played with that yet. I haven't used an Ubuntu system in a very long time now, but 14.04 will be on a kernel new enough to have all the features (assuming they are enabled, I'm not sure there), and is a long-term-support release so you can let your NAS just sit and run for 5 years without having to do a major upgrade, just the odd security patch most of which won't require rebooting. Ubuntu will be the most newbie-friendly distribution. The only reason I don't have CentOS/RHEL near the top of the list is the slighly older kernel - but if VAAI support is not an issue I would take it over Fedora for a server role.
Also, here is a chart from their wiki on features by kernel version, might come in handy. It appears to be a bit out of date now as 3.18 was released 4 days ago.
LIO™ and fabric modules have gone upstream into the Linux kernel as follows:
- Linux 2.6.38 (2011-03-14[5]): LIO™ engine[6]
- Linux 2.6.39 (2011-05-18[7]): tcm_loop (SCSI support on top of any raw hardware)
- Linux 3.0 (2011-07-21[8]): FCoE (by Cisco)
- Linux 3.1 (2011-10-24[9]): iSCSI[10]
- Linux 3.3 (2012-03-18[11]): InfiniBand/SRP[12] (Mellanox HCAs)
- Linux 3.5 (2012-07-21[13]): Fibre Channel (QLogic HBAs),[14] USB Gadget[15] and IEEE 1394[16]
- Linux 3.6 (2012-10-01[17]): vHost (QEMU virtio and virtio-scsi PV guests)[18]
- Linux 3.9 (2013-04-28[19]): 16 GFC (QLogic HBAs)
- Linux 3.10 (2013-06-30[20]): InfiniBand/iSER (Mellanox HCAs and CNAs)
- Linux 3.12 (2013-11-03[21]): VAAI
- Linux 3.14 (planned): T10 DIF core, T10 Referrals, NPIV
- Linux 3.15 (planned): T10 DIF iSER, user-space backend
- Linux 3.16 (planned): Mellanox FCoE support