Deferred Writes - Power Loss + this is awesome.
Posted: Wed Apr 11, 2018 1:24 pm
I would like to state that I'm not connected to or affiliated with ROMEX software, I have extensive IT experience, and generally know most of what I'm talking about.
Ever since I heard of caching a few years ago I've been on a mission to improve my old spinning raid 10 performance, for 3 months I used FreeNAS in a VM and presented my data over iSCSI. The performance was great at first but over time degraded. I could also only muster an SSD cache of 20GB because ZFS requires a lot of ram to hold the meta data for the L2 cache, it does have an awesome feature though called an SLOG, it's like an SSD write cache. You use mirrored drives to store deferred writes, and if the power goes out, your completely safe. Apart from the fact the L2 cache was small, It was a pretty neat setup. Always looking for a thrill though, I wanted more.
So, I used StarWind Virtual SAN to set up an LSFS drive and likewise presented the data back to my PC as an iscsi target. This let me use my full 120GB SSD as cache and was more stable, although it has no deferred writes, or the type that won’t be lost in a power out anyway, meaning my writes were a little slower. LSFS addresses this by being log structured, which really helps your writes even though there just going onto spinning disks, but your data gets really, really fragmented over time. Then you have pitiful sequential reads, I mean single digit bad. This could still be ok though if I’d gone with a flat file system instead of going with LSFS. But on the down side it flushed the L2 cache on a reboot, which is bad for me as I don’t leave my lab powered overnight.
Then I tried VELOSSD and it was a disaster, you see, it did do deferred writes by default. It was also not that stable and I suffered occasional BSOD's. After the second one it caused. My raid file system was damaged beyond repair and would only show up as RAW.
Then I tried Diskeeper[express cache] for a while, but after an update got BSOD's on boot up, whatever I did to the system drive to cache it, windows 10 didn't like anymore, uninstalling it from safe mode fixed it for me, and it least it didn’t cost me data like VELO. I don’t mean to run these other software solutions down, they just didn’t do it for me.
Primo was next on my list to try, and can i say after week, I'm super impressed, super stable and no other PC issues. I usually have running about 6 VM's and I've experienced very little data churn, at least since my L2 cache finally did a large gather. Seeing I do a lot of random writes with that many VM’s, I’m actually using an ReFS setup using storage spaces. The thing I’ve been really scared to turn on though is deferred writes, after the horror of being burnt in the past, I’m terrified to even try it.
So, my question is this. Considering I’d only try it on mirrored SSD’s, what are my possible failure outcomes. SSD drive failure would be taken of the table. Power loss is slim to none, depending on UPS failure. What about the one in a million BSOD? On FreeNAS it would get the missing data from the SLOG, but what does primo do? Would it try and save that data in the deferred write cache, or just dump it? Because I snapshot often, so the odd damaged virtual drive if no big deal. But if the whole FS is stuffed, that would be pretty scary.
Also what has people’s real world experience been using deferred writes?
Thanks if you actually read this whole post. I hope this whole endeavour works out, sick of the down time between trying different caches.
Ever since I heard of caching a few years ago I've been on a mission to improve my old spinning raid 10 performance, for 3 months I used FreeNAS in a VM and presented my data over iSCSI. The performance was great at first but over time degraded. I could also only muster an SSD cache of 20GB because ZFS requires a lot of ram to hold the meta data for the L2 cache, it does have an awesome feature though called an SLOG, it's like an SSD write cache. You use mirrored drives to store deferred writes, and if the power goes out, your completely safe. Apart from the fact the L2 cache was small, It was a pretty neat setup. Always looking for a thrill though, I wanted more.
So, I used StarWind Virtual SAN to set up an LSFS drive and likewise presented the data back to my PC as an iscsi target. This let me use my full 120GB SSD as cache and was more stable, although it has no deferred writes, or the type that won’t be lost in a power out anyway, meaning my writes were a little slower. LSFS addresses this by being log structured, which really helps your writes even though there just going onto spinning disks, but your data gets really, really fragmented over time. Then you have pitiful sequential reads, I mean single digit bad. This could still be ok though if I’d gone with a flat file system instead of going with LSFS. But on the down side it flushed the L2 cache on a reboot, which is bad for me as I don’t leave my lab powered overnight.
Then I tried VELOSSD and it was a disaster, you see, it did do deferred writes by default. It was also not that stable and I suffered occasional BSOD's. After the second one it caused. My raid file system was damaged beyond repair and would only show up as RAW.
Then I tried Diskeeper[express cache] for a while, but after an update got BSOD's on boot up, whatever I did to the system drive to cache it, windows 10 didn't like anymore, uninstalling it from safe mode fixed it for me, and it least it didn’t cost me data like VELO. I don’t mean to run these other software solutions down, they just didn’t do it for me.
Primo was next on my list to try, and can i say after week, I'm super impressed, super stable and no other PC issues. I usually have running about 6 VM's and I've experienced very little data churn, at least since my L2 cache finally did a large gather. Seeing I do a lot of random writes with that many VM’s, I’m actually using an ReFS setup using storage spaces. The thing I’ve been really scared to turn on though is deferred writes, after the horror of being burnt in the past, I’m terrified to even try it.
So, my question is this. Considering I’d only try it on mirrored SSD’s, what are my possible failure outcomes. SSD drive failure would be taken of the table. Power loss is slim to none, depending on UPS failure. What about the one in a million BSOD? On FreeNAS it would get the missing data from the SLOG, but what does primo do? Would it try and save that data in the deferred write cache, or just dump it? Because I snapshot often, so the odd damaged virtual drive if no big deal. But if the whole FS is stuffed, that would be pretty scary.
Also what has people’s real world experience been using deferred writes?
Thanks if you actually read this whole post. I hope this whole endeavour works out, sick of the down time between trying different caches.