views:

122

answers:

3

I want to add San Storage support in my application. Is there a standard protocol that I can use to communicate with all san storage devices like EMC Centera, Hitachi, NetApp or do I have to use library specific to each vendor?

In a nutshell i'd like to save data on device and read it back. I know these devices can be mounted as drives or published as network shares but do we have an open API level access to it?

Have any of you added such support to your application if so how?

+1  A: 

What is wrong with "mounting" the SAN LUNs as block devices, formatting the device with a filesystem and accessing it using the normal file IO operations?

By the way: A SAN normally cannot be accessed via a network share? A SAN is a block-level abstraction. But some NAS (Network Attached Storage) Appliances like a NetApp Filer provide in addition to the CIFS/NFS access a block level access.

dmeister
+1  A: 

Is there anything specifically different from regular disk I/O in your application that you'd like to support?

If not, use the regular write-to-disk and load-from-disk routines that are in the System.IO namespace. Otherwise you're adding needless complication.

If there is something specific then you will have to write to the individual vendor's API.

Jeremy McGee
+2  A: 

Typically, those devices will be attached to a Windows and/or SQL Server in a transparent way, e.g. you as an application developer should not and must not deal with the implementation details of if and how a SAN has been attached.

Typically, you'd simply use either a drive letter connected to a SAN, or mount a network share from your SAN as a directory in your file system somewhere.

Marc

marc_s
I think that just like the OP you're mixing up SAN and NAS in the second part of the answer. Under a Unix-style OS a SAN will typically present itself as one or a set of block devices that can be mounted the same way you do with local block devices aka disks.
fvu
Yes, that's what I was expecting - you handle a SAN "volume" or whatever you want to call it as a disk and/or mount is in a directory. I don't see how working with such a storage disk or directory is any different than with a local disk. Not sure if the OP is talking about the actual process of discovering and/or mounting/unmounting those SAN volumes, though...
marc_s