Abstract:
A method for coalescing IO requests includes maintaining a queue in a layer of an IO stack of a hypervisor, wherein (i) the queue holds IO requests received from an upper layer of the IO stack without forwarding the IO requests down the IO stack, and (ii) the layer of the IO stack resides above a file system layer of the IO stack. The method further includes receiving, at the layer, an IO request from the upper layer or a notification of a completion of certain IO requests previously transmitted by the layer down the IO stack. The method further includes determining whether any IO requests currently held in the queue should be transmitted down the IO stack based upon a condition; and combining any IO requests in the queue into at least one combined IO request to transmit down the IO stack if the condition is satisfied.
Abstract:
Exemplary methods, apparatuses, and systems include receiving selection of a virtual disk and a plug-in. The virtual disk includes an extent file storing data used by a virtual machine and a descriptor file including a reference to the extent file and used by a virtualization stack of a host computer to manage the virtual disk. The plug-in is attached to the virtual disk in response to the received selection. Attaching the plug-in includes adding an identification of the plug-in to the descriptor file. The plug-in is notified of the attachment to the virtual disk. A request is received from the plug-in to create a sidecar file to store data or metadata on behalf of the plug-in. The sidecar file is created for the attached plug-in. The sidecar file is attached to the virtual disk.
Abstract:
Read data blocks are selectively decrypted and write data bocks are selectively encrypted in an input-output path between an application and a file system driver. If a read data block contains all zeroes, the read data block is not decrypted even though the read data block is a block of an encrypted file. Likewise, if a write data block contains all zeroes, the write data block is not encrypted even though the write data block is a block of an encrypted file. In this manner, the handling of zero blocks of an encrypted file is efficiently processed outside the file system without relying on bitmaps or other data structure maintained by the file system that may inform which blocks contain all zeroes.