Traditional storage was designed to present a LUN to a server. This worked well until that server became a hypervisor running 10, 20 or 30 virtual servers, all pointing to the same LUN. Adding to the complexity, all hypervisors need to point to the same LUN to enable VM mobility or high availability. Architecturally, this creates a many-to-one relationship that makes optimization impossible. Each VM has a different I/O pattern. When they all mix together, the aggregate I/O becomes highly random, creating performance issues with no way to isolate problems or control I/O per VM.