Using HyperV with Samba 4.2

David Disseldorp ddiss at
Fri Oct 17 07:49:57 MDT 2014

On Wed, 15 Oct 2014 05:05:24 -0700, Richard Sharpe wrote:

> Hi folks,
> Sending this out in the hope that it will be useful to some people.


> This document describes how to get Samba 4.2 (or the Samba master
> branch at this time) to work with HyperV.
> The work described here was requested by Hedvig Inc and made possible
> with technical help from Ata E Hussain and Abhijit Shennoy, who
> provided packet captures and integrated the changes supplied into
> Samba and tested that things worked.
> We are making this information available so that more people can try
> it out and provide feedback on the problems etc.
> This code is not production ready. Support for reconnection of
> persistent handles is still being developed and there are likely to be
> corner cases that are not handled.
> However, it can be used for testing.

> Secondly, you will need to create a VFS module (or modify your
> existing VFS module if you have one) to assert that your file system
> supports compression and to implement the set_compression and
> get_compression entry points.

I'm a little surprised by the client behaviour here. With
FILE_FILE_COMPRESSION missing from the FS capabilities, the server
doesn't support compression, so explicitly disabling it on a per-file
basis shouldn't be necessary.

> These two functions do not really have to do much. The set_compression
> function can simply return NT_STATUS_SUCCESS without doing anything
> and the get_compression function should return that compression is not
> set (COMPRESSION_FORMAT_NONE). A patch for a sample HyperV VFS module
> is also attached to implement these functions for you. You will need
> to add "hyperv" to the vfs objects you define for any share that will
> be used with HyperV if you use this module.
> This steps are required because when HyperV creates the VHD/VSV file
> it opens the file, then sets resiliency and then sets compression off.
> Creation of the virtual disk will fail if any of these steps returns
> an error status.
> You will need to configure Samba slightly differently to include this
> module for the moment:
>    ./configure --with-shared-modules=vfs_hyperv

The module implementation looks okay, but please use a different name
(e.g. vfs_fake_compression) or add the functionality to vfs_default.
It's incompatible with modules that provide proper compression support

Cheers, David

More information about the samba-technical mailing list