Recently, we were working to bring up a VMware installation for a client of Puryear IT and we hit a snag. To provide some background first though: We had decided to go with a GigE NAS based environment rather than a more traditional SAN. We had seen Dell’s NF500 in use already and were pleased with it overall, so we went with the NF500 with RAID-10 on a GigE switch and, of course, GigE on the Dell servers running VMware.
Alas, not so much. During our benchmarking, we found that the NFS performance on the NF500 across the GigE was pretty bad. This goes for every variation, including NFS over UDP and TCP, v2 and v3, rsize and wsize of everything from 4kb to 32kb, and so forth. Yes, we tried every performance tweak in the book, but just could not get the Linux servers to get good NFS performance against the NF500. Well, the performance is good enough if you were using the NAS as only a file server, but not if you want to run VMs off it.
That said, there is no real reason why you can’t or shouldn’t run VMs off a GigE network and a really fast NAS. It’s more than sufficient. Unfortunately, we didn’t have the hours to troubleshoot whether there was something going on with the Linux NFS implementation or the NF500, but we still had to get the problem solved.
Fortunately, we did find a solution that not only worked, but worked well: CIFS.
Everybody knows and loves CIFS. (Well, everybody at least knows CIFS. Oh, and hello Samba.) It’s just Windows Networking. Generally, we use NFS within Linux and UNIX networks where we can tighten down security enough on the network to make it reasonably safe to use (NFS is not, and has never been, a secure protocol.) But I am quite familiar with CIFS and was curious if using it would clear the problem up. And yes it did.
I found that mounting the VM shares off the NAS on the local Linux VMware servers let us transfer at near-wire speed. We were then able to run our VMs off the NAS; we have yet to see any performance issue or bug, and the whole thing just works like a champ.