I would expect Commvault to do the following as per the spill and fill setting + we also have the check box “prefer mp with most free space” (i have unchecked this to see how the utilization looks like tomorrow):
Spill and Fill Mount Paths (load balance use of mount paths)
If this option is selected the system writes to all the mount paths in parallel if you have established sufficient number of writers. Use this option to obtain maximum throughput, especially when you have several mount paths. However the data will be fragmented between the available mount paths.
Note that when this option is selected, the system will use the Least Recently Used (LRU) mount path. (As opposed to the mount path with least used capacity.)
For example, a disk library with 3 mount paths (A, B, C) and if two 3-stream storage policies (SP_1_1, 2 and 3 and SP_2_1, 2 and 3) are used for running simultaneous backups, the jobs are run as follows: (Assuming that the backups are run for the first time.)
SP_1_1 > Mount Path A
SP_2_1 > Mount Path B
SP_1_2 > Mount Path C
SP_2_2 > Mount Path A
SP_1_3 > Mount Path B
SP_2_3 > Mount Path C
Note that this order may change subsequently, depending on the LRU condition of the mount path.
https://documentation.commvault.com/11.24/expert/9319_disk_libraries_advanced.html#b9365_use_unbuffered_io
The thing to keep in mind as you observe is that various streams have different sizes/performances, etc. So you might at a brand new kick off have all 6 streams split evenly (in your latter example), though who knows if streams 4, 5, and 6 are enormous (and maybe slow to boot), whereas 1, 2, and 3 are smaller and quicker.
Now another set of jobs come up and see that the jobs go to 1, 2, and 3….and then another set, etc. At the end of a few hours, you have a ton of stream usage for 1-3 and very little for 4-6, but all of your rules were followed….it just doesn’t appear like they were.
Generally, the stream usage *IS* evenly distributed by means of assignment, but maybe not in effect of space used (over time).
It’s like busses at a depot. You can set each bus to be used in order (based on LRU, but maybe bus 1 gets 3 passengers all going to one nearby location. Now bus 2 gets a full capacity order and each person is separately going to distant locales. Bus 1 will be back much faster than bus 2, but likely get used more often in the meantime.
Eventually, things should balance out, but it’s also hard to see total lifetime usage as jobs get written and others age off.
Keep us posted on the usage tomorrow, though you’ll want to closely monitor each job, stream, etc. to see the ‘whats and whys’.
I have opened a case and they have confirmed that the above mentioned check box should be unchecked.
Thanks mike for your explanation! @Mike Struening much appreciated!