I have a dual controller P2000 G3 (SAS 6GB) hooked up to 3 ESXi hosts.
There are 12x 600GB 15k rpm drives total, and I have set them up in 1 RAID10 vDisk to maximize performance+reliability. The vDisk is then presented to the hosts (6 LUNs)
The problem with this approach is that the second controller is not being used at all.
How could I configure the P2000 so that all disks are used (to keep iops high) and both storage controllers are used?
The first piece of this is a hardware requirement.
In order to use the second storage controller you would need to have redundant SAS connections to each host. In other words, each of the three hosts would need two SAS cables connected to it, one going into each storage controller on the P2000.
If the hardware requirement is met you have a redundant storage controller. It's not so much that it's "not being used" but that its "on standby" in case your first storage controller goes out for whatever reason. You can also perform firmware upgrades on the P2000 storage controllers without taking your storage offline by upgrading the firmware in the storage controllers one at a time.
The second piece of this is configuration.
You have the ability to assign resources to a specific storage controller, but this can only be done at the vDisk level. Since you only have a single vDisk, you can't split the load of accessing that vDisk by spreading the activity over the storage controllers. You would need to break up those 12 physical disks into two vDisks, and assign each vDisk to a different storage controller to utilize both.
The last piece is the management layer, what VMware can do.
If you're using something like VMWare Storage DRS, with the two resulting LUNS in a Storage Cluster, then VMware would handle the load balancing between the two controllers based on performance automatically using Storage vMotion to move virtual machines between the two 6 disk LUNS (but they don't necessarily have to be the same size).