Since we're talking about data and not necessarily just a volume image, you might want to consider distributed object storage systems as well. It's a slightly tangential axis to SAN/DAS but it fills in some gaps between the two.
- By its nature, reliable.
- Capable of being spread across DCs.
- Can achieve high I/O rates.
- Not POSIX.
- Can suffer split-brain without intervention.
- High latency.
- Creating consistent backups is an 'interesting' problem.
I bring this up since there's a whole group of architectures that couple automated setup (e.g. similar to imaging) with the above to insanely scale and just bypass all the negatives.
Having used cloud based products for the past years my conclusion is that private clouds have all the benefits people rave about (flexibility, performance, unicorns).
Unfortunately when you move it to shared computing I find some of the recurring themes:
-IO performance goes up and down (and can be downright abysmal where even ls will lag)
-Any network failure can cause a kernel panic or make your filesystem read only (to prevent further damage, but it basically stops your server)
-Storage is often more expensive. (especially for HA setups)
-As noted, even HA solutions can fail (look at the recent Amazon EBS problems)
Currently I have acceptable performance in the cloud and might combine cloud + dedicated (for the databases)
But I also note that the cloud is giving me worse uptimes than an old celeron server I used to have.
Right now I do active/passive setups using two different locations and continual replication, which works both on cloud and non cloud setups.