If you’re running a standard Linux on your homelab storage box with iSCSI (ietd, iscsi_trgt), you need to take some actions before deploying ESXi 5.5 in your environment. It seems the new ESXi release issues some SMART command on iSCSI targets, which hits a bug in iscsi_trgt. I’m using Debian 7.2 on my lab NAS which comes with iscsitarget 188.8.131.52. Once an ESXi 5.5 tried to access an iSCSI LUN, the iSCSI subsystem crashed completely. You’ll see messages like these:
kernel: [17963.766648] iscsi_trgt: BUG at /var/lib/dkms/iscsitarget/184.108.40.206/build/kernel/iscsi.c:392 assert(req->tio) kernel: [17963.766714] Pid: 2487, comm: istiod1 Tainted: G O 3.2.0-4-amd64 #1 Debian 3.2.46-1+deb7u1 kernel: [17963.766820] kernel BUG at /var/lib/dkms/iscsitarget/220.127.116.11/build/kernel/iscsi.c:392!
While not referencing ESXi, the bug itself is already known to the Debian maintainers as #685422. Other distributions like Ubuntu are most likely also affected if they use an unpatched iscsitarget 18.104.22.168. You need to check if fix-send-data-rsp.patch was already applied to the specific version of your Linux. On my Debian 7.2 I updated by downloading iscsitarget_22.214.171.124+svn496-1 from http://packages.debian.org/de/jessie/iscsitarget-dkms and compiled the kernel module as well as the userland tools (otherwise you’ll hit a “version mismatch” problem). ESXi 5.5 runs fine with several iSCSI LUNs now.