[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Xen Memory De-duplication



On Sat, Oct 09, 2010 at 11:26:23PM +0530, Aditya Gadre wrote:
>    Aim is to implement Xen Memory Deduplication with minimum overhead.
> 
>    Our approach to de-duplication is as follows
> 
>    In most cases, Domain-U uses a small set of well-known operating systems
>    such as Linux, FreeBSD and Microsoft Windows. In such environment many
>    domains share read-only filesystems that contain operating system and
>    frequently usedprogram files and libraries.Each domain has their own
>    writable filesystems for storing data and temporary files. In this
>    configuration, multiple pages scattered in different domains mostly happen
>    to contain same disk block. So, in our approach to perform deduplication
>    we intend to add a data structure in dom 0 which store disk block number
>    and the machine frame number(MFN) when a read request for the read only
>    code(and data) is made. Now when another domain U places the request for
>    the block of code and Dom 0 recieves a request for I/O (DMA), it will
>    first check into the data structure for the entry for the block. If it
>    finds the block it will return the MFN of the already read page and map it
>    to the requesting domain's PFN resulting in zero I/O processing time of
>    blocks which are already read. This in turn results in de-duplication of
>    the read only pages accessed by multiple domains without any overhead of
>    hashing the page.
> 
>    Test case scenario:
> 
>    Consider a Dom0 linux kernel using a filesystem with deduplication
>    enabled. Then we install a DomU kernel with the virtual disk as a image
>    file on the disk(.img). Then we make multiple copies of the image to
>    deploy multiple DomUs running same kernel. Now, as deduplication is
>    enabled in the file system initially all the blocks of the domains will be
>    pointing to the same disk blocks. Now when the kernel's are booted, they
>    all will consume memory only once for the programs(code segment) loaded in
>    the memory. Now as these OSs start to write to their own virtual
>    filesystems the blocks of the image will be COW'ed by the filesystem
>    resulting in different block number.
>    Is such a approach implemented?  We intend to implement this as a project.
>    What are the suspected challanges?
> 

Yeah, I think the image COW is possible using the Xen blktap2 vhd support,
and also maybe Xen qcow* stuff.

Also check Xen4.0 wiki page for more info about the memory sharing etc:
http://wiki.xensource.com/xenwiki/Xen4.0

-- Pasi


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.