Most of the prior mechanisms on managing shared storage resources manage each individual shared resource without considering the interplay between different resources, leading to low fairness and loss of performance. Therefore, a coordinated mechanism that provides fairness in the entire shared storage system is desirable. This paper proposes a strategy to control inter-Application interference by dynamically adjusting the aggressiveness of the shared storage cache and I/O bandwidth accesses made by multiple, concurrently-executing applications, in a coordinated fashion. Our interference resolver eliminates the need for complicated individual resource-based partitioning mechanisms implemented independently in each resource and that require coordination. It ensures fairness among high performance applications that access the underlying storage system, while best utilizing the available resources. In our experimental evaluation, we use both trace-driven simulations and an implementation in the Linux kernel 2.6.32, and show that our interference resolver can significantly increase system performance and provide fairness to concurrently-executing applications.