Summary: | Virtual machines (VMs) have become the predominant paradigm for deploying applications, and flash-based caches are widely deployed for VMs to improve their performance. However, due to the semantics of journaling in the VMs' file system are transparent to flash caches, traditional flash caching with journaling induces inefficient logging I/O traffic to the shared storage server and duplicated caching in flash, which not only underutilizes flash caches but also aggravates their wearout. This paper presents JCache, a journaling-aware flash caching solution to address these problems. First, JCache proposes the virtual journal device design to receive and deliver the journaling semantics in the VMs to the cache manager so as to optimize the VM's journaling. Second, JCache proposes a cache-only logging mechanism, which transparently uses the persistent flash caches as the journal area and does cache-only logging to safely eliminate the logging I/O traffic to the shared storage server. Third, JCache proposes the logical caching mechanism, which eliminates the duplicated flash caching induced by logging I/Os and in-place updates to mitigate the wearout of flash caches. Evaluations show that JCache improves the application performance by up to 11.4× and reduces the flash cache writes by up to 42% compared to traditional flash caching solutions.
|