This work presents a research study of cloud flash caching considering three aspects. First, it presents a thorough study of different cache configurations including a new cache-optimized RAID configuration using a large amount of long-term traces collected from real-world public and private clouds. Second, it studies an on-demand flash cache management solution for meeting VM cache demands and minimizing device wear-out. It uses a new cache demand model Reuse Working Set (RWS) to capture the data with good temporal locality, and uses the RWS size (RWSS) to model a workload's cache demand. Finally, to handle situations where a cache is insufficient for VM's demands, it employs dynamic cache migration to balance cache load across hosts by live migrating cached data along with the VMs.