For a similar size and expandibility we use 3U supermicro servers. Each server can hold 14 drives (there are 14 integrated sata ports on the motherboard, so we didn't have to buy a raid card, and we have 1 slot left empty in the cases). Each drive is shared via AOE for the front-end server. We have RAID-10 blocks of 14 drives (with linux md), and they are put together with LVM.
If you are careful to not put any two mirrored drives of the raid-10 blocks into the same backend server, then this system is redundant, it can even withstand a loss a complete backend server.
It is easy to grow: just buy another server, build the raid, expand the lvm onto it, and you are ready to go. We use XFS which supports online resizing.
Currently we use 1TB and 1.5TB drives, and we are planning to use 2TB ones in the future. The drives do not need to be all the same size, only if they are in the same raid block.
For your needs, one server filled with 14x 1.5TB or 2TB drives would be a good start imo. You do not even need a separate frontend server for the start.
Our setup can easily produce 1Gb/s throughput, I think that would be more than enough for a web service.
I can help you with more detailed info if you like the idea.
A few more things:
This is some kinda homebrew poor-mans-storage solution. If you have the budget, do not want to waste your time, and want to go for top-notch enterprise-class reliability, then you should probably buy some real SAN product. The price can be easily 10-30x as high tough, especially if you want to go for 100TB or more. This does not mean that the above solution does not work - it does, and I think for a lot of purposes the extra price of a SAN product does not worth it.
about the backend speed: unfortunately I cannot give exact numbers or test measurements. But I can tell you, that even 1 raid-10 block of 14 drives is fast. If you will need more space, you will use more backend servers and the overall backend speed will increase even more. What's more, if any of the backends would suffer from too many concurrent users (which I doubt), you could go from 2-way mirrorring to 3-way or even more, improving speed, seek time and even reliability.
about the frontend speed: the frontend does not have to do much more than forward packets. A modern server should easily keep up at even 10gigabits/s, so it cannot be a bottleneck anytime soon.