Practical SAN Question

I am designing the next evolution of our IT infrastructure. I am considering implementing an iSCSI SAN. My current plan is to connect only our servers to the SAN, and then implement any file sharing to the desktops via network shares using one of the servers as a file server. After more reading, I am wondering if I need to implement a file server at all if I have an iSCSI SAN. Here are my questions:

  1. Would I compromise the performance of the SAN to the servers if I let the SAN traffic run over the whole network, instead of just between the iSCSI target and the servers as clients?

  2. If I create a "disk" on the iSCSI target, can multiple clients access the same "disk"? If so, can this replace network file shares?

I realize that question 1 is a loaded question, since I did not specify the particulars of my network, but I am just looking for general thoughts about heading down that path. Advance thanks for your thoughtful answers.


Solution 1:

Would I compromise the performance of the SAN to the servers if I let the SAN traffic run over the whole network, instead of just between the iSCSI target and the servers as clients?

If you share the NIC for both iSCSI and normal traffic, yes, however look at the actual traffic you're sending to get a real answer. If there's no router between the servers and the workstations the broadcast overhead of the workstations would hinder performance slightly.

VLAN's are free, use one to seperate iSCSI traffic, most servers have 2xGbe these days, dedicating one for storage usually isn't a problem.

If I create a "disk" on the iSCSI target, can multiple clients access the same "disk"? If so, can this replace network file shares?

No. That's a NAS (and perhaps what you should be looking at, or at least a combo device like a NetApp).

There are "cluster" filesystems that do this, however they require all the hosts to be trusted and there's a lot of manual configuration involved.

You will also want to look at "zoning" (as it's called in the FC world) to ensure Windows (which will take anything it can get) doesn't steal another host's LUN (think partition)

Solution 2:

I remember wondering these exact questions, too.

Here's the scoop: A server sees an iscsi slice (called a LUN) just like it would a hard drive. It addresses it as /dev/sdwhatever, and you partition it and use LVM (if you want), and create a filesystem on that device. It works great.

Now, it gets complex when you want multiple machines to talk to the same drive at the same time. It would be like hooking a USB drive up to a bunch of computers at once. Madness. Cats and dogs laying down together. Insanity.

Now, it happens that there are some ways to get multiple machines to talk to the same device, but you have to use what's known as a "clustered" filesystem. This is a filesystem that knows that multiple computers are talking to it, and it accounts for that. It does this through a few possible ways, including multiple journals (one per machine, usually), or using a lock manager (which is one specific computer that acts like a traffic cop), but whichever way you go, you're going to have to cluster all of the machines that you want to talk to the same LUN.

What most people typically do, if they want really high availability, is to cluster three (or sometimes two, but it can be harder) machines to work together as a file server cluster. Those three machines are the only ones who write to the LUN, but their clients use NFS, Samba, FTP, or whatever to access the files there.

I actually did a Redhat Cluster HOWTO a while back (http://www.standalone-sysadmin.com/blog/2009/04/howto-redhat-cluster-suite/) but I never got it successfully working and stable. Now I've got a couple of machines that are set up as fileservers that don't have the LUN mounted, but can at the touch of a button. It's a trade off for me, since I didn't have the time to learn the clustering suite.

Solution 3:

1) If I understand you correctly: depends on what's best for you. Do you need multiple servers to access the same files? Both work fine with what they do, so this depends on what you need.

2) With specific file systems (GFS, OCFS) yes. else no.

Solution 4:

We use NetApp hardware for our SAN and it gives us all the options

  • Fiber channel connectivity as a fabric for our VMware hosts
  • iSCSI target for making LUNs for Exchange and other needs

plus

  • The NetApp itself is a fully functional CIFS server replacing our file server

This has greatly simplified our storage. I am in the process of migrating 2TB of disk from a VMware virtual machine Windows 2003 file server to being directly shared from the NetApp itself. Add in the ability to do snapshots and NDMP backups directly to tape, it is something to consider.