- what should the RAID-friendly "disk usage pattern" be?
People use RAID card for the following reasons:
1) protect from single drive failures (except for RAID 0)
2) gain higher I/O performance than single drives (RAID 5,6,10,50, etc, and write back cache etc. with BBU)
3) Use more drives than a motherboard can support with RAID/HBA cards
4) Some storage management features (GUI or command line tools)
- what's so special about Swift's disk usage?
Swift disk I/O are
1) mostly random on A/C/O servers
2) high concurrency in parallel
3) 6x amplification factor for put one object (write 3x object and update 3x containers at least, let alone other replication process, auditor etc)
Openstack Swift is designed to use the commodity servers and hard drives, meaning lowest cost on reasonably good quality hardware, which often do not include RAID card(s). However, one would need a RAID/HBA card to use 8-10+ HDDs in a server, so in practice many would use RAID card but configure each HDD as single drive RAID0, or use a HBA card, if the motherboard can not support the number of HDDs the server chassis can hold.
You certainly can use RAID5, 6, 10, and lose some capacity to gain some protection and performance, but that often has higher cost than needed. Swift has tunable replication factors which is default to be 3x.