1. A method for sharing data between a first domain and a second domain, comprising: issuing a first request for data from a storage pool by the first domain, wherein the first request comprises a first pseudo-physical page number, wherein the first domain comprises a first domain address map, and wherein the first domain address map comprises an entry associating the first pseudo-physical page number with a first virtual memory address; receiving the first request by a control domain driver in a control domain; obtaining the data from the storage pool by the control domain driver; storing a first copy of the data in shared memory at a first physical address, wherein the shared memory is accessible by the control domain, the first domain, and the second domain; updating a hypervisor page map to include an entry associating the first pseudo-physical page number with the first physical address; notifying the first domain that the first request has been completed; issuing a second request for the data from the storage pool by the second domain, wherein the second request comprises a second pseudo-physical page number, wherein the second domain comprises a second domain address map, and wherein the second domain address map comprises an entry associating the second pseudo-physical page number with a second virtual memory address; receiving the second request by the control domain driver in the control domain; determining by the control domain driver that the first copy of the data is present in the shared memory; updating the hypervisor page map to include an entry associating the second pseudo-physical page number with the first physical address; and notifying the second domain that the second request has been completed, wherein the first domain and second domain communicate with the control domain using a hypervisor.