Enabling filter-level access to virtual disks
First Claim
1. A method for enabling filter-level access to a virtual disk (VMDK), the method comprising:
- invoking, by an application running on a computer system, a first application programming interface (API) for opening the VMDK, the invoking of the first API causing an ordered group of filters associated with the VMDK to be instantiated;
coordinating, by the application, with a target filter in the ordered group of filters to establish a communication channel between the application and the target filter;
receiving, by the application from the target filter, a handle to the target filter via the communication channel, the handle being a reference or identifier that is uniquely associated with the target filter; and
issuing, by the application, an I/O request to the VMDK via the target filter by specifying the handle, the issuing causing data associated with the I/O request to be filtered by all other filters that are downstream from the target filter in the ordered group while bypassing the target filter and all other filters that are upstream from the target filter in the ordered group, wherein the first API does not return a VMDK handle to the application, and wherein the application does not have access to any APIs that enable the application to issue I/O requests directly to the VMDK using a VMDK handle.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques for enabling filter-level access to a virtual disk (VMDK) are provided. In one set of embodiments, an application can invoke a first application programming interface (API) for opening the VMDK, the invoking of the first API causing an ordered group of filters associated with the VMDK to be instantiated. The application can further coordinate with a target filter in the ordered group of filters to establish a communication channel with the target filter and can receive, from the target filter, a handle to the target filter via the communication channel. The application can then issue an I/O request to the VMDK via the target filter using the handle, the issuing causing data associated with the I/O request to be filtered by other filters that are downstream from the target filter in the ordered group.
8 Citations
15 Claims
-
1. A method for enabling filter-level access to a virtual disk (VMDK), the method comprising:
-
invoking, by an application running on a computer system, a first application programming interface (API) for opening the VMDK, the invoking of the first API causing an ordered group of filters associated with the VMDK to be instantiated; coordinating, by the application, with a target filter in the ordered group of filters to establish a communication channel between the application and the target filter; receiving, by the application from the target filter, a handle to the target filter via the communication channel, the handle being a reference or identifier that is uniquely associated with the target filter; and issuing, by the application, an I/O request to the VMDK via the target filter by specifying the handle, the issuing causing data associated with the I/O request to be filtered by all other filters that are downstream from the target filter in the ordered group while bypassing the target filter and all other filters that are upstream from the target filter in the ordered group, wherein the first API does not return a VMDK handle to the application, and wherein the application does not have access to any APIs that enable the application to issue I/O requests directly to the VMDK using a VMDK handle. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A non-transitory computer readable storage medium having stored thereon program code executable by computer system, the program code embodying a method for enabling filter-level access to a virtual disk (VMDK), the method comprising:
-
invoking, by an application running on the computer system, a first application programming interface (API) for opening the VMDK, the invoking of the first API causing an ordered group of filters associated with the VMDK to be instantiated; coordinating, by the application, with a target filter in the ordered group of filters to establish a communication channel between the application and the target filter; receiving, by the application from the target filter, a handle to the target filter via the communication channel, the handle being a reference or identifier that is uniquely associated with the target filter; and issuing, by the application, an I/O request to the VMDK via the target filter by specifying the handle, the issuing causing data associated with the I/O request to be filtered by all other filters that are downstream from the target filter in the ordered group while bypassing the target filter and all other filters that are upstream from the target filter in the ordered group, wherein the first API does not return a VMDK handle to the application, and wherein the application does not have access to any APIs that enable the application to issue I/O requests directly to the VMDK using a VMDK handle. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer system comprising:
-
a processor; and an application running on the processor, wherein the application is configured to; invoke a first application programming interface (API) for opening a virtual disk (VMDK), the invoking of the first API causing an ordered group of filters associated with the VMDK to be instantiated; coordinate with a target filter in the ordered group of filters to establish a communication channel between the application and the target filter; receive, from the target filter, a handle to the target filter via the communication channel, the handle being a reference or identifier that is uniquely associated with the target filter; and issue an I/O request to the VMDK via the target filter by specifying the handle, the issuing causing data associated with the I/O request to be filtered by all other filters that are downstream from the target filter in the ordered group while bypassing the target filter and all other filters that are upstream from the target filter in the ordered group, wherein the first API does not return a VMDK handle to the application, and wherein the application does not have access to any APIs that enable the application to issue I/O requests directly to the VMDK using a VMDK handle. - View Dependent Claims (12, 13, 14, 15)
-
Specification