  We consider the allocation of Virtual Arrays (VAs) in a Heterogeneous Disk
Array (HDA). Each VA holds groups of related objects and datasets such as
files, relational tables, which has similar performance and availability
characteristics. We evaluate single-pass data allocation methods for HDA using
a synthetic stream of allocation requests, where each VA is characterized by
its RAID level, disk loads and space requirements. The goal is to maximize the
number of allocated VAs and maintain high disk bandwidth and capacity
utilization, while balancing disk loads. Although only RAID1 (basic mirroring)
and RAID5 (rotated parity arrays) are considered in the experimental study, we
develop the analysis required to estimate disk loads for other RAID levels.
Since VA loads vary significantly over time, the VA allocation is carried out
at the peak load period, while ensuring that disk bandwidth is not exceeded at
other high load periods. Experimental results with a synthetic stream of
allocation requests show that allocation methods minimizing the maximum disk
bandwidth and capacity utilization or their variance across all disks yield the
maximum number of allocated VAs. HDA saves disk bandwidth, since a single RAID
level accommodating the most stringent availability requirements for a small
subset of objects would incur an unnecessarily high overhead for updating check
blocks or data replicas for all objects. The number of allocated VAs can be
increased by adopting the clustered RAID5 paradigm, which exploits the tradeoff
between redundancy and bandwidth utilization. Since rebuild can be carried out
at the level of individual VAs, prioritizing rebuild of VAs with higher access
rates can improve overall performance.
