To do it on the cheap setup 'Performance Monitoring' with event triggers and monitor the following:
1 Page life expectancy (PLE) < 300 (or 5 minutes) suggests lack of buffer memory, so will be hammering the storage. I like to see >1000 on my systems.
2 SQLServer: Buffer Manager: Buffer cache hit ratio, you may have to export the data from the 'Performance Monitoring' to do the calculation. If get <90% then you need more buffer memory.
In a lot of cases poorly configured SQL instances or poorly written SQL code is a major cause of poor performance.
'the SAN are reporting less than 10 iops' could suggest that SQL is stalling, waiting for the SQL scheduler to make available CPU threads. Depending on the CPU cores you have, you could perhaps try setting the SQL instances 'Max Degree of parallelism' to 50% of the cores or less. This stops one SQL task hogging all the CPU threads. Some SQL tasks can take many milliseconds if not seconds to run and then appear as low Disk I/O issue!
Also set the SQL instance Max memory to 'System Memory -4Gbytes' otherwise SQL will grab and keep every bit of memory it can get and cause the OS to start paging.