With the advantages of low latency, high performance and low power consumption, solid state drives (SSDs) have been widely deployed as the cache layer between memory and back-end low-speed storage devices to narrow the performance gap between CPU and storage system. But in virtualization environment, the high integration of virtual machines can introduce a lot of duplicate data blocks in the cache device. Existing cache architectures and replacement algorithms rarely take this situation into consideration. This greatly limits the efficient use of the cache device. For this case, we proposed a duplication-aware SSD-based cache architecture. In this architecture, duplicate data blocks can be reduced and the utilization efficiency of the cache device will be improved. Furthermore, to reduce the cache replacement overhead we also proposed an improved ARC-based replacement strategy, which we named D-ARC.