Perl: Running IBM’s balance.pl from SVCTools on Centos/Red Hat
balance.pl is used when mdisk drive groups get off balanced in a storage pool.
At this time, IBM does not have a way to automatically balance drive groups.
This can really cause an issue as you add more drive chassis’ to your V7000.
Over time the earlier created mdisk groups house more data than the newer groups.
This cause the workload to be off balanced as the old drive do a far higher percentage of the work.
The end result is higher data transfer latencies. We especially noticed this with writes rather than reads.
I ran into an issue where I could not get the SVC.pm module to be seen by my perl installation.
I ran the command:
perl balance.pl PoolName -k privatekeyname.ppk -c 192.168.1.10 -r
I received the following error:
Can’t locate IBM/SVC.pm in @INC (@INC contains: ……./usr/lib64/perl5) at /SVCTools/examples/balance.pl line 258.
I created an IBM directory in /usr/Lib64/perl5
I placed the SVC.pm file in the IBM directory
balance.pl ran fine afterward
For testing use: balance.pl PoolName -k privatekeyname.ppk -c 192.168.1.10 -r
For actually running the extent migration use: balance.pl PoolName -k privatekeyname.ppk -c 192.168.1.10 -r -e
To have the script report a set of migrations for a standard Managed
Disk Group configuration where all disks need to be balanced, only
a basic invocation is needed:
perl balance.pl myMDiskGrp -k C:key.ppk -c myCluster -r
This will provide a complete list of migration “phases”. All operations
in an individual phase can be run concurrently. If you are happy with
the results being produced by the script, you can run the commands
manually or have the script do this for you:
perl balance.pl myMDiskGrp -k C:key.ppk -c myCluster -r -e
If you do not want the script to run as many migrates as possible, you
can restrict the number using -n [number].
To run the script only against a particular set of MDisks or VDisks:
perl balance.pl myMDiskGroup -k … -r -m MDisk1,MDisk2,MDisk3,…
perl balance.pl myMDiskGroup -k … -r -vtVDisk1,VDisk2,VDisk3,…
For additional command line output, specify -v (–verbose).