VMware Cloud Community
tzi
Contributor
Contributor

iSCSI/VMFS or NFS

Hi All,

My company has decided to migrate to ESX3 from ESX2.5 and move from internal SCSI storage to iSCSI or NFS attached storage. I have read the vmware docs and searched the forums and i have built up a set of statements that are important in taking our decision between iSCSI and NFS. But some times informations in the different guides are confusing. Please confirm or deny my statements:

iSCSI/VMFS

+ Better performance than NFS

+ Ability to implement clustered Linux VMs in one ESX box

+ Ability to share VMFS between multiple ESX servers (stop a VM on ESX1 and start on ESX2)

+ Possibility to use hardware initiator with TOE

NFS

+ Easier image backup of virtual disks

\- No clustering support

\- NFS storage cannot be shared between multiple ESX servers

\- TOE's not available

Regards,

Zoltan

0 Kudos
9 Replies
admin
Immortal
Immortal

iSCSI/VMFS

+ Better performance than NFS

True I believe.

+ Ability to implement clustered Linux VMs in one ESX

box

Or MSCS.

+ Ability to share VMFS between multiple ESX servers

(stop a VM on ESX1 and start on ESX2)

And vmotion, whereby you don't need to power down the VM to move it between ESX1 and ESX2. You can also do this with NFS volumes.

+ Possibility to use hardware initiator with TOE

True.

+More than one VM per LUN.

+VMs are contained within VMDK files so can be snapshotted, exported, etc.

NFS

+ Easier image backup of virtual disks

Wouldn't say this is necessarily the case, you can image a virtual disk in either setup, if you wanted to use SAN level snapshots you'd just use RDMs over iSCSI, or you could use VM level snapshots and VMFS.

- No clustering support

Not sure.

- NFS storage cannot be shared between multiple ESX

servers

Not true I don't think, I believe you can have an NFS volume accessed by more than one ESx host at the same time, and thus vmotion etc.

- TOE's not available

TOE should still work, hardware HBAs not available.

-One NFS volume required per VM massively increasing environment complexity.

-VM not stored in VMDK, I haven't tried NFS so I'm not 100% on the implications of this, I imagine snapshots don't work and it's much harder to clone/export a VM.

I'd go with iSCSI over NFS every time.

Mike_Fink
Enthusiast
Enthusiast

iSCSI/VMFS

+ Better performance than NFS

Yes, although this is dependent on many factors. But, everything being equal, iSCSI will be faster

+ Ability to implement clustered Linux VMs in one ESX box

Not sure about this one. I don't see why you even need shared storage to do this, I have done several "Cluster in a Box" setups with Windows with no shared storage at all. I will allow others to comment, I do not see a specific plus/minus here.

+ Ability to share VMFS between multiple ESX servers (stop a VM on ESX1 and start on ESX2)

Yes (and also VMotion between the machines).

+ Possibility to use hardware initiator with TOE

Yes, make sure you get a supported adapter, the list is rather short.

NFS

+ Easier image backup of virtual disks

This is really a "kind of" answer. Yes, you can take SAN snapshots if you use NFS. However, you still need to ensure consistency before snapping. This is a very long conversation, but basically, the answer is, don't think that you can just pop a snapshot of your SQL server running on an NFS datastore and have no problems. Databases will come up suspect, and Windows will want to do disk checks (fsck for Linux).

\- No clustering support

I think this is correct (no cluster between boxes). Please make sure to read the newest documentation; but to the best of my knowledge, this is still the case. Also, it is worth noting that this is MSFT clustering, NOT VMware clustering. That should still work without issue.

\- NFS storage cannot be shared between multiple ESX servers

This is incorrect. NFS can be shared between ESX servers. It functions just like a typical datastore, and will be accessable to mutiple hosts at the same time.

\- TOE's not available

At this time, I think this is still a limitiation. Also, remember, NFS has more overhead higher up in the TCP/IP stack, so TOE is going to be less effective then it is for iSCSI.

Now, what's my opinion? NFS is a file level protocol. Your VMDKs are block level devices (as are RDMs). Using a file level protocol to encapsulate a block level device does not seem like a good idea to me. The only advantage that I see by implementing via NFS is that some array controllers are "smarter" about NFS mount points then they are about iSCSI LUNs.

However, it is very important to note that running on NFS does not change the nature of the snapshot/backup operations! In a typical NFS/CIFS mount, you can just take a SAN snapshot whenever you feel like it, and you will not have problems with consistency. However, that is not the case with VMware NFS mounts (again, because it is somehow encapsulating the block level commands in a file protocol; although the SAN is not aware of this, you have to treat it just like a block device).

My advice would be to use FC or iSCSI. Not because NFS does not work (it does; it seems fine in my experience, although I have never implemented it in production), but because you are accessing the device in block mode, and iSCSI and FC are block mode protocols. Using NFS just introduces a "wierdness" factor that I don't need when trying to architect a site to site failover or consistent data snapshots.

Both of the block protocols are "owned" by the operating system, rather then being owned by the SAN. This is an important distinction; and, IMHO, is the way it should be (as the VMs believe they own the filesystem).

Hope that helps!

tzi
Contributor
Contributor

First of all, thank You for answering my question

+ Ability to share VMFS between multiple ESX

servers

(stop a VM on ESX1 and start on ESX2)

And vmotion, whereby you don't need to power down the

VM to move it between ESX1 and ESX2. You can also do

this with NFS volumes.

I thought this would be a feature of VMFS, thanks for the update

+More than one VM per LUN.

+VMs are contained within VMDK files so can be

snapshotted, exported, etc.

Isn't this also true for NFS storage? According to the Server Configuration Guide:

"VMFS – ESX Server deploys this type of file system on local SCSI disks, iSCSI

LUNs, or Fibre Channel LUNs, creating one directory for each virtual machine.[/b]

VMFS is a clustered file system that can be accessed simultaneously by multiple

ESX Server systems.

NFS – ESX Server can use a designated NFS volume located on an NFS server. ESX

Server mounts the NFS volume creating one directory for each virtual machine.[/b]

From the viewpoint of the user on a client computer, the mounted files are

indistinguishable from local files."

0 Kudos
tzi
Contributor
Contributor

Ability to implement clustered Linux VMs in one ESX

box

ot sure about this one. I don't see why you even

need shared storage to do this, I have done several

"Cluster in a Box" setups with Windows with no shared

storage at all. I will allow others to comment, I do

not see a specific plus/minus here.

I think this is a feature of VMFS. That's why i think you can sure do it with internal SCSI/VMFS and thats why I think you can't do it with NFS....

- No clustering support

I think this is correct (no cluster between boxes).

Please make sure to read the newest documentation;

but to the best of my knowledge, this is still the

case. Also, it is worth noting that this is MSFT

clustering, NOT VMware clustering. That should

still work without issue.

So, You say that "Cluster in a Box" and Vmotion would also work with NFS? No need for VMFS?

Many thanks for Your help!

0 Kudos
enorthcraft
Enthusiast
Enthusiast

Zoltan,

I am researching a similar situation. I currently have an ESX 3.0.1 cluster running VC 2.0.1. I'm using both SAN and NAS storage attached to each host. I can give you the following answers:

VMotion works on either NAS or SAN. You may not be able to VMotion between the two types of storage (e.g. NAS -> SAN), but you certainly can within storage pools.

Clustering support of your Linux VMs should not be dependent on the underlying storage architecture of the VMDK, but rather the capability of the guest OS. Guests have no knowledge of how the VMDK is provisioned. You may even want to think about the need for clustered guests. If you use the HA functionality of an ESX cluster, you may be able to gain similar (perhaps better) availability with far less complexity. DRS is amazing - you should take a look at it.

TOE cards are available for iSCSI (and I highly recommend if you choose this path). QLogic seems to be the vendor of choice. I would suggest a dual port model (or two single ports) to add redundancy and bandwidth. A good quality NIC will significantly reduce overhead associated with NFS v3. Most implementations can saturate a Gb link before producing a noticeable impact on the system.

As far as snapshots, either NAS or SAN work just fine (this is somewhat dependent on your storage vendor). In both cases you will have to quiesce the VMs before you snap. This is no different than any other backup process. There are some differences in how to recover using the different snapshots, but either are fully functional.

The real meat of this argument is whether or not iSCSI is "better" than NFS. There is a growing body of evidence that points to NFS actually exhibiting higher performance than iSCSI. This has a lot to do with how vmfs3 locks the FS and the contention it creates. I believe that VMWare even has some documents to this point (this is what I am researching- I'll post if I find). I have heard of some studies that show better performance for iSCSI with a very low ratio of VMs to LUN and NFS providing superior performance as that ratio increases to around 15:1.

Obviously there is no "silver bullet" for all scenarios, you will have to determine which solution is best for your environment. There are a few white papers discussing best practices for SAN and NAS implementations on VMWare's site. Most definitely read them!

As for me, I will probably continue to use a mixture of NAS and SAN until I can verify the results. I think that you would have to have very high virtual disk utilization to see a real difference in either one. Keep ESX from swapping (lots of physical memory) and you'll be fine.

One note: A VM created on NFS is automatically thin-provisioned allowing storage virtualization and over-subscription of your disk. The thin provisioning does not hold up under a "clone" operation though (also true for SAN) and I am creating an RFE for that functionality.

Hope this helps,

Eric

Eric Northcraft enorthcraft at gmail.com
0 Kudos
jakarth
Contributor
Contributor

Hiya,

Good look on your decision making.

As I've recently posted here (and had great help from the guys on the forums) I've attached a link to my original post.

I found out quite a bit about implementing iSCSI that I didn't know and this may help you in making your decision. If not well ignore it

J

http://www.vmware.com/community/message.jspa?messageID=629195#629195

0 Kudos
conreyta
Enthusiast
Enthusiast

I recently moved vm's from our companies servers from NFS to iSCSI, mainly for the reason you noted below:

+ Ability to share VMFS between multiple ESX servers (stop a VM on ESX1 and start on ESX2)

That in and of itself is a very strong reason to choose iSCSI. One of the other reasons that I was told was the:

>+ Better performance than NFS

argument. I'm not sure I buy it in our environment. We're a dell server shop, and we've got a NetApp 3040c in place for storage. We ran performance tests to test disk r/w and they were basically the same for a vm on NFS and on an iSCSI lun (using the software initiator).

+ Possibility to use hardware initiator with TOE

Do your homework with the hardware TOE cards, and get all vendors onboard to agree that the setup (whatever you decide) will work. This was a pain from the storage side for us, and we ended up using the software initiator.

>+ Easier image backup of virtual disks

If you're getting VMotion up and running on VMFS, take the time to get vcb up and running too.

Just my 10c.

Good luck!

-Theron

0 Kudos
tzi
Contributor
Contributor

Hi All,

Thaks for all the input. I have arranged hardware for testing, so in 3-4 weeks i'll do some testing. I will summarize the results in this forum. Again, thank You all for Your help.

Z

0 Kudos
brightg
Enthusiast
Enthusiast

Hi there, How did you get on with your testing? Thanks for your help

Best Regards

Gary

0 Kudos