What is the best way to share filesystem between Linux and Windows servers via SAN? We have frontend RHEL Linux servers and backend Windows 2k3 servers that pass files via database that is not a best solution. Am I correct to assume that clustered filesystem is a solution?if so, what would be a best one to use?
You can get a lot of mileage out of "traditional" methods to share a filesystem over a network (NFS, CIFS, etc), and unless your application demands a multiple-writer cluster filesystem I'd avoid it, both for cost and complexity reasons.
If you have to go with a cluster filesystem, I suspect that you're going to be spending a lot of money. Some possible filesystems include:
You're probably not going to find any "free" (as in "beer" or as in "freedom") implementations that will service both platforms because Microsoft has, traditionally, required an NDA for development information related to installable filesystem drivers.
To my knowledge there are no free solutions that do this. In fact, I'm dubious that such a file-system based cluster even exists that allows both Windows and non-Windows systems to talk to the same file-system.
To my mind, a better solution would be to use a network mounted file-system. The RHEL servers mount either an NFS or SMB/CIFS share from the Windows servers, and use those directories to pass files. Lower overhead than a database.
If you want to share storage to multiple hosts at the same time via a SAN you're going to have to use a clustered file system of some sort because the SAN just exposes a block device. I don't know of any free cross platform options for this.
But one major player that hasn't been mentioned for this is Veritas. I'm not sure if they support mixed clients mounting the same fs but at the same time I would be surprised if they didn't.
The other option is NAS based solutions via CIFS or NFS. But your question isn't super clear so I don't know if anyone can give much advice on what may work best for your situation here.
If you're talking about a filesystem cluster, then CIFS will not provide what you're after, although CIFS will provide some load-sharing via DFS.
You can approach this two ways:
You will need a filesystem driver in Windows that is also present in Linux. If there's a free one out there, I haven't found it yet - and if I did, I would be jumping up and down and pointing to it ;)
There are a few commercial clustering solutions, including CXFS which is owned by SGI, and Symantec (aka Veritas) Cluster Server. Neither are cheap.
Yes, the "XFS" in CXFS is somewhat related to the Linux XFS filesystem.
OpenAFS is probably your best bet here, although I doubt that it will provide the exact answer you're looking for. At the very least, it would allow you to have some redundancy, and a unified filesystem image. It has had support for byte-range locking in Windows clients for some time now, which is a critical feature for using shared-file databases (Access, FoxPro, DBase, Paradox, etc.)
Oracle OCFS is a bit outdated, and it has been obsoleted by Oracle ASM, but: