Adding SSD cache (PCIe) to existing Linux KVM Node with SATA disks
Also keep a in mind the CPU overheads that would be caused by software based caching solution. Since it has to keep the maps of the hot data blocks in the memory. Also it would be host system dependant.
One may try using hybrid SHDD's to make it device/system independent.
I think that best option would be to utilise one-two SSDs for raid controller controlled caching, and separate dedicated PCIe for higly randomly read data.
Also make sure noatime/nodiratime is set for all host/VM systems. The directory structures benefit the most from being duplicated to flash, but flash hates small writes...