Scale out

S

Shabam

I have a dotnet application that allows users to upload images. These
images are stored in separate folders like this:

E:\images\{first 2 letters of user ID}\{3rd and 4th letter of user ID}\{user
ID}\user-image.gif

This is to prevent overloading of too many files in one particular
directory.

Now, suppose the hard drive maxes out later on and instead of adding more
drive to the same machine I want to spread the data across multiple servers.
For a user to access their image it's no big deal, because I can just set a
DNS entry for http://{first 2 letters of user ID}.domain.com and point to
the proper server.

The problem comes in integrating all of these servers together so that they
still appear under E:\images\ so that the dotnet application can still
handle all of the user uploads/edits/deletes.

I've thought of running Apache web servers, using NFS to bind them all
together, then use Samba to link to the E drive. Not sure if this is the
best way though.

What are your suggestions?
 
D

David Browne

Shabam said:
I have a dotnet application that allows users to upload images. These
images are stored in separate folders like this:

E:\images\{first 2 letters of user ID}\{3rd and 4th letter of user
ID}\{user
ID}\user-image.gif

This is to prevent overloading of too many files in one particular
directory.

Now, suppose the hard drive maxes out later on and instead of adding more
drive to the same machine I want to spread the data across multiple
servers.
For a user to access their image it's no big deal, because I can just set
a
DNS entry for http://{first 2 letters of user ID}.domain.com and point to
the proper server.

The problem comes in integrating all of these servers together so that
they
still appear under E:\images\ so that the dotnet application can still
handle all of the user uploads/edits/deletes.

You can just let IIS knit them all together. Create a virtual directory
called Images, to the root of your local images folder.

Right-click i there in the IIS admin tool and add a new virtual directory,
called whatever and point it to a share on a remote computer. Now you can
user url's or Server.MapPath to get to all the images on all the computers.

Also, you can always add more storage later.

David
 
S

Shabam

You can just let IIS knit them all together. Create a virtual directory
called Images, to the root of your local images folder.

Right-click i there in the IIS admin tool and add a new virtual directory,
called whatever and point it to a share on a remote computer. Now you can
user url's or Server.MapPath to get to all the images on all the computers.

Also, you can always add more storage later.

What if I wanted to use Apache web server to store those image servers
instead? What are the recommendations?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top