PrimoCache and VMware direct access
Posted: Sun Jan 04, 2015 12:36 am
I'm currently evaluating PrimoCache and think I've found a slight issue.
One of the things I do is have installs of an OS that are bootable natively on the hardware, but also under VMware as a VM. This is largely achieved by using direct-access to partitions. It has come to my attention that subtle corruption was occurring that was clearly down to PrimoCache, but I couldn't determine the cause as the native partition involved wasn't being managed by PrimoCache...(clearly, as VMware had exclusive access to it)...or so I thought.
...I just discovered that if I disable the deferred-write caching it now seems to work fine, but this obviously disables it for all drives in the cache task. It seems that if the PrimoCache management UI is started whilst VMware has exclusive access, the partition doesn't appear, but is still being managed (and cached!). If it is started before, then it is visible and continues to provide management stats whilst the VM is active.
Now, I have created a second cache task and placed this partition into it, and now I can disable deferred write caching purely for this partition, and all is well, however by doing so I need to define a full set of separate caches for it, which is wasteful as it won't always be active, hence why I wanted all drives using the same cache. The most problematic being that I have given my whole SSD over to the main L2 cache, and having to cut a chunk of that out of it for a single partition reduces the amount available to all the other partitions that overall will get more use.
So...is there any way of having individual volumes/partitions in a cache task each having separate cache settings (i.e. c: being read/write, d: being read, e: being write only and any combination of deferred write settings) so I can disable deferred write-caching for just this volume whilst retaining the read/write caches shared with all the others? (or somehow fix things so VMware's direct read/writes are serviced from the cache!)
...if you want to reproduce this, create a partition on your host, configure primocache with full caching, then create a VM in VMware using direct access to the partition and start something like Windows XP setup - the initial format of the partition will fail every time until deferred writes is disabled.
One of the things I do is have installs of an OS that are bootable natively on the hardware, but also under VMware as a VM. This is largely achieved by using direct-access to partitions. It has come to my attention that subtle corruption was occurring that was clearly down to PrimoCache, but I couldn't determine the cause as the native partition involved wasn't being managed by PrimoCache...(clearly, as VMware had exclusive access to it)...or so I thought.
...I just discovered that if I disable the deferred-write caching it now seems to work fine, but this obviously disables it for all drives in the cache task. It seems that if the PrimoCache management UI is started whilst VMware has exclusive access, the partition doesn't appear, but is still being managed (and cached!). If it is started before, then it is visible and continues to provide management stats whilst the VM is active.
Now, I have created a second cache task and placed this partition into it, and now I can disable deferred write caching purely for this partition, and all is well, however by doing so I need to define a full set of separate caches for it, which is wasteful as it won't always be active, hence why I wanted all drives using the same cache. The most problematic being that I have given my whole SSD over to the main L2 cache, and having to cut a chunk of that out of it for a single partition reduces the amount available to all the other partitions that overall will get more use.
So...is there any way of having individual volumes/partitions in a cache task each having separate cache settings (i.e. c: being read/write, d: being read, e: being write only and any combination of deferred write settings) so I can disable deferred write-caching for just this volume whilst retaining the read/write caches shared with all the others? (or somehow fix things so VMware's direct read/writes are serviced from the cache!)
...if you want to reproduce this, create a partition on your host, configure primocache with full caching, then create a VM in VMware using direct access to the partition and start something like Windows XP setup - the initial format of the partition will fail every time until deferred writes is disabled.