Persistent reservations for virtual disk using multiple targets
First Claim
1. A method of reserving a virtual disk in a storage platform having a plurality of storage nodes on each of which are stored virtual disks, said method comprising:
- receiving a request at a first process on one of said storage nodes to reserve a specific virtual disk in said storage platform, said request originating at an iSCSI Initiator virtual machine of a remote computer and coming directly via an iSCSI Target virtual machine of said remote computer;
said first process requesting of a coordinator process on one of said storage nodes a lock for said specific virtual disk;
said coordinator process giving said lock to said first process;
said first process changing a current reservation holder field of persistent storage on one of said storage nodes pertaining to said specific virtual disk to identify said iSCSI Initiator virtual machine; and
an application of said iSCSI Initiator virtual machine writing to, or reading from, said specific virtual disk only after receiving said lock;
receiving a second request at a second process on one of said storage nodes to reserve said specific virtual disk, said second request originating at a second iSCSI Initiator virtual machine of a second remote computer different from said remote computer and coming directly via a second iSCSI target virtual machine of said second remote computer; and
said second process requesting of said coordinator process said lock for said specific virtual disk.
3 Assignments
0 Petitions
Accused Products
Abstract
An application within a virtual machine is an iSCSI Initiator and is allowed to use as an iSCSI Target another virtual machine within the same hypervisor in order to make a persistent reservation for a virtual disk within a remotely-located storage platform. Any number of virtual machines within different hypervisors, and perhaps on different computers, use a local controller virtual machine to make a persistent reservation for the same virtual disk. The registration list and the current reservation holder data for an iSCSI persistent reservation for a particular virtual disk are held on a storage node of the storage platform rather than within a single virtual machine of a remote computer. A metadata module on the storage platform handles the incoming requests. A coordinator module within the storage platform uses a lock mechanism to guarantee that the reserve, release, preempt and clear commands are handled properly.
114 Citations
17 Claims
-
1. A method of reserving a virtual disk in a storage platform having a plurality of storage nodes on each of which are stored virtual disks, said method comprising:
-
receiving a request at a first process on one of said storage nodes to reserve a specific virtual disk in said storage platform, said request originating at an iSCSI Initiator virtual machine of a remote computer and coming directly via an iSCSI Target virtual machine of said remote computer; said first process requesting of a coordinator process on one of said storage nodes a lock for said specific virtual disk; said coordinator process giving said lock to said first process; said first process changing a current reservation holder field of persistent storage on one of said storage nodes pertaining to said specific virtual disk to identify said iSCSI Initiator virtual machine; and
an application of said iSCSI Initiator virtual machine writing to, or reading from, said specific virtual disk only after receiving said lock;receiving a second request at a second process on one of said storage nodes to reserve said specific virtual disk, said second request originating at a second iSCSI Initiator virtual machine of a second remote computer different from said remote computer and coming directly via a second iSCSI target virtual machine of said second remote computer; and said second process requesting of said coordinator process said lock for said specific virtual disk. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of releasing a reservation for a virtual disk in a storage platform having a plurality of storage nodes on each of which are stored virtual disks, said method comprising:
-
receiving a request at a first process on one of said storage nodes to release a reservation for a specific virtual disk in said storage platform, said request originating at an iSCSI Initiator virtual machine of a remote computer and coming directly via an iSCSI Target virtual machine of said remote computer; said first process requesting of a coordinator process on one of said storage nodes a lock for said specific virtual disk; said coordinator process giving said lock to said first process; and said first process resetting a current reservation holder field in persistent storage on one of said storage nodes that pertains to said specific virtual disk; receiving a second request at a second process on one of said storage nodes to reserve said specific virtual disk, said second request originating at an iSCSI Initiator second virtual machine of a second remote computer different from said remote computer and coming directly via a second iSCSI target virtual machine of said second remote computer; said second process requesting of said coordinator process said lock for said specific virtual disk; and said coordinator process giving said lock to said second process after said first process has returned said lock for said specific virtual disk to said coordinator process. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A method of preempting a reservation for a virtual disk in a storage platform having a plurality of storage nodes on each of which are stored virtual disks, said method comprising:
-
receiving a request at a first process on one of said storage nodes to preempt a reservation for a specific virtual disk in said storage platform, said request originating at an iSCSI Initiator virtual machine of a remote computer and coming directly via an iSCSI Target virtual machine of said remote computer; said first process requesting of a coordinator process on one of said storage nodes a lock for said specific virtual disk; said coordinator process giving said lock to said first process; and said first process setting a current reservation holder field in persistent storage on one of said storage nodes that pertains to said specific virtual disk, said current reservation holder field being set to identify said iSCSI Initiator virtual machine receiving a second request at a second process on one of said storage nodes to reserve said specific virtual disk; said second request originating at an iSCSI Initiator second virtual machine of a second remote computer different from said remote computer and coming directly via a second iSCSI target virtual machine of said second remote computer; said second process requesting of said coordinator process said lock for said specific virtual disk; and said coordinator process denying said lock to said second process because said first process holds said lock for said specific virtual disk. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification