I'm aware that I can set up COW on the server side, but I'd really rather that writes didn't cross the network at all.  It's not uncommon for guests to want to install additional games which can be as much as 10GB each, and my machines have 60GB local SSDs which I'd like to utilize.<div>
<br></div><div>In fact, longer-term it would be nice to use those SSDs as read caches in addition to write caches, maybe even sniffing blocks being sent to other machines on the network and precaching them.  Typically, everyone loads the same game at the same time, and games need to load a lot of data, so it would be neat to avoid transferring that data over the network 12 times.  That said, this doesn't appear to be a significant performance problem in my existing setup, so it is not a priority.  (Actually, I have already written code that implements this idea as a userspace daemon on top of NBD, though it seems to have some bugs still.)</div>
<div><br></div><div>I'm also aware that commercial solutions exist, but I'd rather use an open source solution that I can customize, e.g. with the features I mentioned above.  Also, the commercial solutions I've found require running a Windows server, which I'd like to avoid.  And anyway, implementing this would be fun.  :)</div>
<div><br></div><div>-Kenton<br><div><div><br><div class="gmail_quote">On Wed, May 4, 2011 at 5:27 AM, Miller, Shao <span dir="ltr"><<a href="mailto:shao.miller@yrdsb.edu.on.ca">shao.miller@yrdsb.edu.on.ca</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">









<div lang="EN-US" link="blue" vlink="blue">

<div>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt">Good
day, Kenton.</span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt"> </span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt">I’m
currently working on some serialization/deserialization code in order to
simplify developing support for Microsoft’s [acquired] VHD disk image format. 
Once implemented, the “differencing” feature of VHD image files will
provide copy-on-write functionality.</span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt"> </span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt">For
example, I’d like to be able to boot from a master VHD pre-kernel, then
have WinVBlock continue with a delta.</span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt"> </span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt">However! 
Since you’ve e-mailed the gPXE developers’ list, I suspect that you
are more interested in SAN CoW of some sort.  This is currently possible
using Linux’ device-mapper, and serving the CoW devices.  Did you
see this article?:</span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt"> </span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt"> 
<a href="http://etherboot.org/wiki/appnotes/cow" target="_blank">http://etherboot.org/wiki/appnotes/cow</a></span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt"> </span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt">CoW-capable
SAN target software seems to be a popular wish.  A fellow recently shared
a fun video of Ardence:</span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt"> </span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt"> 
<a href="http://www.youtube.com/watch?v=moIuHqIc-PQ&feature=player_embedded" title="http://www.youtube.com/watch?v=moIuHqIc-PQ&feature=player_embedded" target="_blank">http://www.youtube.com/watch?v=moIuHqIc-PQ&feature=player_embedded</a></span></font></p>


<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt"> </span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt">I’m
not 100% sure how you might be thinking of using gPXE + WinVBlock, or if you
would even need WinVBlock.  Would you care to share a few more details
about the scenario you have envisioned?</span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt"> </span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt">Thank
you for your offer to help with development.  When WinVBlock was originally
derived from V.’s WinAoE work, it was quite a learning curve, having
dwelled in user-land, myself.  But before suggesting anything to jump
into, perhaps a little more discussion regarding your scenario would be better.</span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt"> </span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt">Thanks!</span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt"> </span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:11.0pt">-
Shao Miller</span></font></p>

<div>

<div class="MsoNormal" align="center" style="text-align:center"><font size="2" face="Courier New"><span style="font-size:10.0pt">

<hr size="2" width="100%" align="center">

</span></font></div>

<p class="MsoNormal"><b><font size="2" face="Tahoma"><span style="font-size:10.0pt;font-family:Tahoma;font-weight:bold">From:</span></font></b><font face="Tahoma"><span style="font-family:Tahoma"> Kenton Varda [mailto:<a href="mailto:temporal@gmail.com" target="_blank">temporal@gmail.com</a>] <br>

<b><span style="font-weight:bold">Sent:</span></b> Wednesday, May 04, 2011
01:35<br>
<b><span style="font-weight:bold">To:</span></b> Miller, Shao;
<a href="mailto:gpxe-devel@etherboot.org" target="_blank">gpxe-devel@etherboot.org</a><br>
<b><span style="font-weight:bold">Subject:</span></b> COW Overlay in WinVBlock
-- willing to implement</span></font></p>

</div><div><div></div><div class="h5">

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:10.0pt"> </span></font></p>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:10.0pt">Hi
Shao and gpxe-devel,</span></font></p>

<div>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:10.0pt"> </span></font></p>

</div>

<div>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:10.0pt">In
a post on this page you mentioned that you are planning to add COW overlay
support to WinVBlock:</span></font></p>

</div>

<div>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:10.0pt">  <a href="http://reboot.pro/8168/page__st__300" target="_blank">http://reboot.pro/8168/page__st__300</a></span></font></p>

</div>

<div>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:10.0pt"> </span></font></p>

</div>

<div>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:10.0pt">I
have a need for this (in order to netboot multiple machines off a common base
image), and have not been able to find any existing non-proprietary solution.
 Can I help you implement it?  If so, can you give me pointers on
where to start and what to do?</span></font></p>

</div>

<div>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:10.0pt"> </span></font></p>

</div>

<div>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:10.0pt">I
am fluent in userland C (including low-level Win32 and POSIX), but have never
ventured into kernel drivers before.  FWIW I'm a Google employee, but this
is for a personal project.  Namely, my house, which is optimized for LAN
parties.  I currently have 12 machines netbooting Ubuntu over nbd and running
games under WINE, but sadly there are a few too many games that don't work.
 :/</span></font></p>

</div>

<div>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:10.0pt"> </span></font></p>

</div>

<div>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:10.0pt">Thanks,</span></font></p>

</div>

<div>

<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:10.0pt">-Kenton</span></font></p>

</div>

</div></div></div>

</div>


</blockquote></div><br></div></div></div>