The I/O priorities feature is implemented in OpenVZ since kernel 2.6.18-028stable021, vzctl 3.0.16. This feature allows to assign I/O priority to any VE. Priority range is 0-7. The more priority a VE has, the more time for using block devices this VE will obtain. Note, that this feature is implemented on base of CFQ I/O scheduler, so this scheduler should be used for block device in question. Default I/O priority is 4. Examples of using:
vzctl set 101 --ioprio 0 --save
vzctl set 101 --ioprio 7 --save
The mapping from priority to time is the following: if 0 prio corresponds time slice t, than 8 prio corresponds to time slice 2 * t. Default time slice value is HZ/2. The main criteria for fairness at the moment is that if you set I/O prio of VE 1 to p1 and I/O prio of VE 2 to p2, and p1 > p2 then VE 1 should do more I/O than VE 2.