Hi,
One of my clients who have constraints to use windows in production with IIS 6.0 have the following architecture:
1 hardware load balancer, 2 web servers and 1 dedicated mysql servers. It now has the classic issue in which the files directory on web01 and web02 needs to be either shared on a network file system or be in sync with each other. More
robust solutions are to use data cloud or a distributed file system, the last 2 options are out of question and currently we are looking at the 2 classic solutions.
1> Shared Files directory : Though NFS is available on windows, we have found it very difficult to mount it as a folder (files directory) on windows server 2003, windows can mount an exported NFS folder as a mapped drive, but the problem is NTFS junction doesnt work with networked file systems and the create shortcut is just farce in windows, its a .lnk file which windows redirect to the NFS mount but programs like drupal can't use them or see them as folders unlike linux symlinks.
2> Windows do have rsync and we are still to try this out on windows, with scheduled jobs and I am hopeful that it would work.
Out of curosity is anyone using shared files directory approach in a load balanced architecture? Some of the options I have seen to be working are shared iscsi devices or SAN and both of them are not an option for us, we are looking for something like NFS which works like a charm on linux but has been a pain on windows server, has anyone configured NFS on a windows based load balanced architecture with drupal?
Specifically my question is How does one mount a nfs export on windows to be exposed as files folder to drupal. I hope I am missing something and that its doable.

Comments
DFS anyone?
Hi,
I am looking at DFS now for the solution, specially the DFS replication component to keep files directories on the 2 web server in sync. Anyone has used DFS for this purpose?
Thanks in advance.
Dipen Chaudhary
Founder, QED42 http://www.qed42.com Drupal development
MirrorFolder to mirror windows shares
We had similar requirement on Windows. We used the shareware tool MirrorFolder (http://www.techsoftpl.com/backup/ ) to keep the file systems in sync. The tool is able to replicate local changes to other Windows servers via SMB shares within just a second.
Experience was good.
Broken Link
Thanks,
The link doesn't work but I wanted to ask if you investigated DFS for replication, I am asking coz thats already set up for some other similar tasks.
Dipen Chaudhary
Founder, QED42 http://www.qed42.com Drupal development
Use Web Deploy for DFS
Windows Server 2008 and IIS has DFS support via the WebDeploy module in IIS. http://learn.iis.net/page.aspx/346/web-deploy/
If running a web farm Microsoft also makes a handy module called web farm framework, you can learn more and install it from here, http://www.iis.net/download/webfarmframework
hope that helps.
Mark
Web Deploy
Are you indicating that the Drupal file system can be automatically replicated using the web farm framework to get the files under the file system path local to the primary host copied to the secondary host?
This would seem to nullify the need for a separate file server.
IIS and DFS
I have setup and configured 2 windows 2008 R2 servers with MS Load balancing, IIS 7.5 with Shared configuration which pulled the sites from DFS shares and all seemed to be good. There were a few issues where the IIS server couldnt confirm it had access to the sites path but this seemed to be merely cosmetic and didnt actually stop any of the sites from functioning as expected.
NAS/CIFS, rsync
Using NFS will introduce a point of failure if you are a running via single mount point, because if your NFS master ( that exports the share ) dies your other server won't have the files when balancer passes the request off to it. More effective way would be to use some sort of NAS and then mount that from both web servers. Maybe NAS that supports CIFS, if you are having NFS problems. You could setup a *nix on a NAS machine and then place it into the network. Lastly, depending on how soon you want the information propagated between the two web server nodes, you may also consider rsync with some sort of scheduler.