18

At my house I'm running a Hyper-V server with a Windows Server 2008 R2 VM acting as a file server. Files are shared across my network using SMB. (Also, the machine is using a PERC 6/i RAID card but I don't think that's important)

I'm thinking about setting up a dedicated SAN (iSCSI) machine and then switching my Hyper-V server to ESXi.

What are the advantages of using iSCSI versus SMB?

I think I would still need a file server OS (eg. Win 2k8) sharing files via SMB so I'm not sure the end result would be any different than my current setup...

1
  • your clients use smb to get files, and unless you have clients connecting via iscsi (not likely) you'll still have smb in use. Switching from hyper-v to esxi won't change a thing as far as what you've described.
    – user33788
    Jun 3, 2010 at 14:23

4 Answers 4

21

Mike is correct, iSCSI and SMB/CIFS operate at two different layers of abstraction.

You can think of SMB/CIFS as exporting a file system that other machines can access. The directory structure, security metadata, and such is already there. Client machines can read and write files to this file system, but that is the extent of their access.

With iSCSI, the client machines see what amounts to the same thing as a physical volume from the operating system point of view. From a Windows client machine, you would first configure an iSCSI initiator pointing at the iSCSI host (target). After that, you would see a new physical disk in the Windows disk management control panel. You would then initialize it, partition it, then format it with whatever file system you wished. No other machine would have access to this area (at least simultaneously and ignoring advanced things like cluster file systems).

The process would be a little different from ESXi but the concept is the same - the iSCSI target would appear like another disk on which you could build a VMFS file system.

One thing you may consider if you are building your own storage server is that it is possible to do both things at once. Software such as OpenFiler and FreeNAS allow you to aggregate a pool of storage and allow both iSCSI and SMB/CIFS access. The iSCSI space must be pre-allocated (much a like a virtual machine hard disk) and is not visible to the CIFS clients. The two areas are separate. You could also stay with a Windows server and install software to export an iSCSI target, such as that made by StarWinds.

iSCSI in general will perform better because there will not be as many layers of abstraction in the way - the SMB protocol in this case. Also, since it is a block-level protocol, some software that will not work when installed to a network share will work with iSCSI.

I was thinking that ESXi may not allow access to SMB shares, NFS only, so you may want to look into that as well. If that is true, you will need some way to export NFS shares but the above discussion remains the same. OpenFiler/FreeNAS have NFS support and Windows can be setup with it too.

6

File Level VS block level

Block Level (iSCSI) You can format a remote volume with your local operating systems file system.

Let's say, you want to have a volume for Apple Time-machine and you wanted this as an Apple Journalized file system. or you wanted a remote filesystem formatted as NTFS. to format a disk you need to have block access to the disk.

SMB are already formatted by the device hosting SMB. these file systems are typically EXT2&3 and a Linux Subsystem is allowing you access to write on its own local file system over the SMB protocol.

2

I think SMB is your typical network share whereas iSCSI is presented as a exclusive direct-attached block-based storage (like a locally installed HDD) and therefore allows your choice of file system with its own associated pros and cons. (But I've been wrong before :)

-2

Answer is actually very simple: on iSCSI you can have client-side caching, while on SMB using default clients it's impossible. That's it.

With read (and if you wish write) caching you could reach much higher performance in many real-world situations.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .