Patent ID: 8566546

Claim:
A method for enforcing an allocation policy comprising: receiving information describing a plurality of storage groups, each of said storage groups including one or more thin devices, each of said thin devices including a plurality of chunks of storage allocated on one or more of a plurality of storage tiers; determining, for each of said plurality of storage groups, a plurality of counters for said each storage group indicating amounts of storage currently allocated from said plurality of storage tiers for use by said each storage group; and determining, using said plurality of counters, whether each of said plurality of storage groups violates thresholds included in an allocation policy associated with said each storage group, each of said thresholds specifying a maximum amount of storage of one of said plurality of storage tiers that can be used by said each storage group, wherein a first of said plurality of storage groups is associated with a first allocation policy including a first threshold specifying a maximum amount of storage of a first of said plurality of storage tiers that can be used by said first storage group and wherein a second of said plurality of storage groups is associated with a second allocation policy including a second threshold different from the first threshold, wherein said second threshold specifies a maximum amount of storage of the first storage tier that can be used by said second storage group; wherein, for each of said one or more plurality of storage groups that violates thresholds included in the allocation policy associated with said each storage group, an entry is placed in one of a plurality of capacity violation queues; wherein said plurality of capacity violation queues includes a different queue for each of a plurality of priorities, each storage group that violates said thresholds having a first of said plurality of priorities and being placed in one of said plurality of capacity violation queues associated with said first priority; and wherein, if there are one or more storage groups violating one or more thresholds in said allocation policy, the method further comprises: processing said plurality of capacity violation queues to identify one or more data movement candidates, each of said data movement candidates identifying data of one of said storage groups having an entry in one of said plurality of capacity violation queues to be moved from a second of said plurality of storage tiers to a third of said plurality of storage tiers.