Virtual Write. How does it work + bugs I encountered

Windows iSCSI SAN, Linux iSCSI SAN, Mac OS X iSCSI SAN and Virtual Native SAN.
Post Reply
Posts: 5
Joined: Wed Aug 05, 2015 6:12 am

Virtual Write. How does it work + bugs I encountered

Post by velis » Wed Aug 05, 2015 6:49 am

As part of testing your iSCSI SAN for Windows, I stumbled into this very promising feature. However, it didn't exactly go without issues for me:

Initially I created a thin-providioned .VHD LUN. Max size (2TB). Worked with it for a few days and filled it to 350GB without issues.

Then I decided I'd like to test the Virtual Write feature. Let me first explain what I THOUGHT it would do: I saw it as disk-based cache which stores user modifications and then (depending on mode chosen) applies them or discards them. This was perfect for my scenario since I have SSD drives in my server, but the LUN images are on spinning platters. Enabling this would thus heavily improve write performance on the LUN in question.

My issues:
  • However, after enabling Virtual Write, nothing seemed to happen, so I restarted iStorageService. The service restarted, but was unable to respond to anything I tried. I ultimately had to reinstall the entire product.
  • I tried to use the image, but the console just reported an error. Image mounts normally in Windows Disk Management, so I can still access the data. It seems intact, but I must verify against production data (not done that yet).
  • I created another LUN, this time with Virtual Write enabled from the start (2GB, persistent mode). I tried to copy the data to it. At first everything seemed fine, but just about 2GB mark, the copy operation just stopped. After that data on the LUN was corrupted. Heavily, like I was not even able to open a directory.
My questions:
  • Judging by what happened at second attempt, I'm guessing Virtual Write is actually a differencing method with limit of 2GB per initiator. The safeguards are a bit lax, that's why I had corruption. But it doesn't merge user's modifications into the base image. Correct?
  • What then happens if I set data quota to 0 (unlimited)? Will all my modifications be stored in the Virtual Write working folder? Will they never merge into the base image?

Post Reply