Resource protection in a cluster environment
First Claim
1. A method of protecting volumes of a mass storage device shared by a server cluster, comprising the steps of:
- a) transferring from (i) a first file system of a first server of said server cluster to (ii) a first filter driver of said first server, a write request packet directed to a first volume of said mass storage device;
b) determining whether said first volume is unprotected for said server cluster;
c) determining that said first server has ownership of said first volume if step b) determines that said first volume is unprotected for said server cluster; and
d) transferring said write request packet from said first filter driver to a lower level driver for said mass storage device only if step c) determines that said first server has ownership of said first volume.
2 Assignments
0 Petitions
Accused Products
Abstract
A method of protecting volumes of a mass storage device shared by a server cluster includes the step of transferring from (i) a first file system of a first server of the server cluster to (ii) a first filter driver of the first server, a write request packet directed to a first volume of the mass storage device. Another step of the method includes determining at the first filter driver whether the first server has ownership of the first volume. Yet another step of the method includes transferring the write request packet from the first filter driver to a lower level driver for the mass storage device only if the determining step determines that the first server has ownership of the first volume. Apparatus for carrying out the method are also disclosed.
-
Citations
17 Claims
-
1. A method of protecting volumes of a mass storage device shared by a server cluster, comprising the steps of:
-
a) transferring from (i) a first file system of a first server of said server cluster to (ii) a first filter driver of said first server, a write request packet directed to a first volume of said mass storage device;
b) determining whether said first volume is unprotected for said server cluster;
c) determining that said first server has ownership of said first volume if step b) determines that said first volume is unprotected for said server cluster; and
d) transferring said write request packet from said first filter driver to a lower level driver for said mass storage device only if step c) determines that said first server has ownership of said first volume.
-
-
2. A method of protecting volumes of a mass storage device shared by a server cluster, comprising the steps of:
-
a) transferring from (i) a first file system of a first server of said server cluster to (ii) a first filter driver of said first server, a write request packet directed to a first volume of said mass storage device;
b) determining whether said first volume is unlocked for said first server;
c) determining that said first server has said ownership of said first volume if step c) determines that said first volume is unlocked for said first server; and
d) transferring said write request packet from said first filter driver to a lower level driver for said mass storage device only if step c) determines that said first server has ownership of said first volume.
-
-
3. A method of protecting volumes of a mass storage device shared by a server cluster, comprising the steps of:
-
a) transferring from (i) a first file system of a first server of said server cluster to (ii) a first filter driver of said first server, a write request packet directed to a first volume of said mass storage device;
b) determining at said first filter driver whether said first server has ownership of said first volume;
c) transferring said write request packet from said first filter driver to a lower level driver for said mass storage device only if step b) determines that said first server has ownership of said first volume;
d) determining at said first filter driver whether said first volume is protected for said server cluster;
e) locking said first volume from said first server in response to step d) determining that said first volume is protected for said server cluster; and
f) unlocking said first volume for said first server in response to said first filter driver receiving an unlock request packet directed to said first volume, wherein step b) comprises the steps of b1) determining whether said first volume is unlocked for said first server, and b2) determining that said first server has ownership of said first volume if step b1) determines that said first volume is unlocked for said first server.
-
-
4. A method of protecting volumes of a mass storage device shared by a server cluster, comprising the steps of:
-
a) transferring from (i) a first file system of a first server of said server cluster to (ii) a first filter driver of said first server, a write request packet directed to a first volume of said mass storage device;
b) determining at said first filter driver whether said first server has ownership of said first volume;
c) transferring said write request packet from said first filter driver to a lower level driver for said mass storage device only if step b) determines that said first server has ownership of said first volume;
d) generating a write protected packet from said write request packet if step b) determines that said first server does not have ownership of said first volume; and
e) transferring said write protected packet from said first filter driver to said first file system in response to step d) generating said write protected packet.
-
-
5. A method of protecting volumes of a mass storage device shared by a server cluster, comprising the steps of:
-
a) transferring from (i) a first file system of a first server of said server cluster to (ii) a first filter driver of said first server, a write request packet directed to a first volume of said mass storage device;
b) determining at said first filter driver whether said first server has ownership of said first volume; and
c) transferring said write request packet from said first filter driver to a lower level driver for said mass storage device only if step b) determines that said first server has ownership of said first volume;
wherein step b) comprises the steps of;
b1) determining whether said first volume is locked from said first server, and b2) determining that said first server does not have ownership of said first volume if step b1) determines that said first volume is locked from said first server.
-
-
6. A method of protecting volumes of a mass storage device shared by a server cluster, comprising the steps of:
-
a) transferring from (i) a first file system of a first server of said server cluster to (ii) a first filter driver of said first server, a write request packet directed to a first volume of said mass storage device;
b) determining at said first filter driver whether said first server has ownership of said first volume; and
c) transferring said write request packet from said first filter driver to a lower level driver for said mass storage device only if step b) determines that said first server has ownership of said first volume;
d) determining at said first filter driver whether said first volume is protected for said server cluster; and
e) locking said first volume from said first server in response to step d) determining that said first volume is protected for said server cluster, wherein step b) comprises the steps of b1) determining whether said first volume is unlocked for said first server, and b2) determining that said first server does not have ownership of said first volume if step b1) determines that said first volume is locked for said first server.
-
-
7. A method of protecting volumes of a mass storage device shared by a server cluster, comprising the steps of:
-
a) transferring from (i) a first file system of a first server of said server cluster to (ii) a first filter driver of said first server, a write request packet directed to a first volume of said mass storage device;
b) determining at said first filter driver whether said first server has ownership of said first volume;
c) transferring said write request packet from said first filter driver to a lower level driver for said mass storage device only if step b) determines that said first server has ownership of said first volume;
d) protecting said first volume by storing a separate persistent protection value for each server of said server cluster that indicates said first volume is protected for said server cluster;
e) determining for each server of said server cluster whether said separate persistent protection value indicates that said first volume is protected for said server cluster;
f) setting a separate lock value for each server of said server cluster that indicates said first volume is locked from said each server in response to step e) determining said separate persistent protection value for said each server indicates said first volume is protected for said server cluster; and
g) updating said lock value for said first server to indicate that said first volume is unlocked for said first server in response to said first filter driver receiving an unlock request packet directed to said first volume, wherein step b) comprises the step of determining that said first server has ownership of said first volume based upon said lock value for said first server.
-
-
8. A filter driver for protecting volumes of a mass storage device shared by a server cluster, comprising a plurality of instructions which when executed by a first server of said server cluster causes said first server to:
-
process a write request packet (i) directed to a first volume of said mass storage device, and (ii) received from a first file system of said first server;
determine whether said first volume is unprotected for said server cluster;
determine that said first server has ownership of said first volume if said first server determines that said first volume is unprotected from said server; and
transfer said write request packet to a lower level driver for said mass storage device only if said first server determines that said first server has ownership of said first volume.
-
-
9. A filter driver for protecting volumes of a mass storage device shared by a server cluster, comprising a plurality of instructions which when executed by a first server of said server cluster causes said first server to:
-
process a write request packet (i) directed to a first volume of said mass storage device, and (ii) received from a first file system of said first server;
determine whether said first volume is unlocked for said first server;
determine that said first server has ownership of said first volume if said first server determines that said first volume is unlocked for said first server; and
transfer said write request packet to a lower level driver for said mass storage device only if said first server determines that said first server has ownership of said first volume.
-
-
10. A filter driver for protecting volumes of a mass storage device shared by a server cluster, comprising a plurality of instructions which when executed by a first server of said server cluster causes said first server to:
-
process a write request packet (i) directed to a first volume of said mass storage device, and (ii) received from a first file system of said first server;
determine in response to processing said write request packet whether said first server has ownership of said first volume; and
transfer said write request packet to a lower level driver for said mass storage device only if said first server determines that said first server has ownership of said first volume;
wherein said plurality of instructions when executed by said processor further cause said processor to;
determine whether said first volume is protected for said server cluster;
lock said first volume from said first server in response to determining that said first volume is protected for said server cluster;
receive an unlock request packet received from said first file system and directed to said first volume;
unlock said first volume for said first server in response to receiving said unlock request packet; and
determine that said first server has ownership of said first volume if said first server determines that (i) said first volume is unlocked for said first server.
-
-
11. A filter driver for protecting volumes of a mass storage device shared by a server cluster, comprising a plurality of instructions which when executed by a first server of said server cluster causes said first server to:
-
process a write request packet (i) directed to a first volume of said mass storage device, and (ii) received from a first file system of said first server;
determine in response to processing said write request packet whether said first server has ownership of said first volume; and
transfer said write request packet to a lower level driver for said mass storage device only if said first server determines that said first server has ownership of said first volume;
generate a write protected packet from said write request packet if said first server determines that said first server does not have ownership of said first volume; and
transfer said write protected packet to said first file system.
-
-
12. A filter driver for protecting volumes of a mass storage device shared by a server cluster, comprising a plurality of instructions which when executed by a first server of said server cluster causes said first server to:
-
process a write request packet (i) directed to a first volume of said mass storage device, and (ii) received from a first file system of said first server;
determine in response to processing said write request packet whether said first server has ownership of said first volume; and
transfer said write request packet to a lower level driver for said mass storage device only if said first server determines that said first server has ownership of said first volume;
wherein said plurality of instructions when executed by said first server further cause said first server to;
determine whether said first volume is locked for said first server; and
determine that said first server does not have ownership of said first volume if said first server determines that said first volume is locked for said first server.
-
-
13. A filter driver for protecting volumes of a mass storage device shared by a server cluster, comprising a plurality of instructions which when executed by a first server of said server cluster causes said first server to:
-
process a write request packet (i) directed to a first volume of said mass storage device, and (ii) received from a first file system of said first server;
determine in response to processing said write request packet whether said first server has ownership of said first volume; and
transfer said write request packet to a lower level driver for said mass storage device only if said first server determines that said first server has ownership of said first volume;
wherein said plurality of instructions when executed by said first server further cause said first server to;
determine whether said first volume is protected for said server cluster;
lock said first volume from said first server in response to determining that said first volume is protected for said server cluster;
determine that said first server does not have ownership of said first volume if said first server determines that said first volume is locked for said first server.
-
-
14. A filter driver for protecting volumes of a mass storage device shared by a server cluster, comprising a plurality of instructions which when executed by a first server of said server cluster causes said first server to:
-
process a write request packet (i) directed to a first volume of said mass storage device, and (ii) received from a first file system of said first server;
determine in response to processing said write request packet whether said first server has ownership of said first volume; and
transfer said write request packet to a lower level driver for said mass storage device only if said first server determines that said first server has ownership of said first volume;
wherein said plurality of instructions when executed by said first server further cause said first server to;
determine whether a persistent protection value of said first server indicates that said first volume is protected for said server cluster;
set a lock value for said first server that indicates that said first volume is locked from said first server if said first server determines that said persistent protection value indicates that said first volume is protected for said server cluster;
update said lock value for said first server to indicate that said first volume is unlocked in response to receiving a unlock request packet directed to said first volume; and
determine that said first server has ownership of said first volume based upon said lock value for said first server indicating that said first volume is unlocked for said first server.
-
-
15. A server cluster, comprising:
-
a mass storage device comprising a plurality of volumes;
a first server coupled to said mass storage device, said first server comprising a first file system, a first filter driver, and at least one first lower level driver for said mass storage device, wherein said first filter driver is operable to;
a) process a first write request packet received from said first file system that is directed to a first volume of said plurality of volumes, b) determine in response to processing said first write request packet whether said first server has ownership of said first volume, and c) transfer said first write request packet to said at least one lower level driver only if said first server has ownership of said first volume;
a second server coupled to said mass storage device, said second server comprising a second file system, a second filter driver, and at least one second lower level driver for said mass storage device, wherein said second filter driver is operable to;
a) process a second write request packet received from said second file system that is directed to said first volume of said plurality of volumes;
b) determine in response to processing said second write request packet whether said second server has ownership of said second volume; and
c) transfer said second write request packet to said at least one second lower level driver only if said second server has ownership of said first volume; and
a cluster manager operable to (i) cause said first server to store a first persistent protection value that indicates that said first volume is protected, and (ii) cause said second server to store a second persistent protection value that indicates that said first volume is protected, (iii) cause said first file system to transfer to said first filter driver, an unlock request packet directed to said first volume, wherein said first filter driver is further operable to d) determine whether said first persistent protection value indicates that said first volume is protected, e) set a first lock value for said first server to indicate that said first volume is locked in response to said first persistent protection value indicating that said first volume is protected, f) update said first lock value to indicate that said first volume is unlocked in response to receiving said unlock request packet, g) determine that said first server has ownership of said first volume based upon said lock value for said first server indicating that said first volume is unlocked, and said second filter driver is further operable to d) determine whether said second persistent protection value indicates that said first volume is protected, e) set a second lock value for said second server to indicate that said first volume is locked from said second server in response to said second persistent protection value indicating that said first volume is protected, f) determine that said second server does not have ownership of said first volume based upon said second lock value for said second server indicating that said first volume is locked from second server. - View Dependent Claims (16)
said cluster manager comprises software routines executed by said first server and said second server.
-
-
17. A server cluster, comprising:
-
a mass storage device comprising a plurality of volumes;
a first server coupled to said mass storage device, said first server comprising a first file system, a first filter driver, and at least one first lower level driver for said mass storage device, wherein said first filter driver is operable to;
a) process a first write request packet received from said first file system that is directed to a first volume of said plurality of volumes, b) determine in response to processing said first write request packet whether said first server has ownership of said first volume, c) transfer said first write request packet to said at least one lower level driver only if said first server has ownership of said first volume;
d) generate a write protected packet from said write request packet if said first server does not have ownership of said first volume; and
e) transfer said write protected packet from said first filter driver to said first file system in response to generating said write protected packet; and
a second server coupled to said mass storage device, said second server comprising a second file system, a second filter driver, and at least one second lower level driver for said mass storage device, wherein said second filter driver is operable to;
a) process a second write request packet received from said second file system that is directed to said first volume of said plurality of volumes;
b) determine in response to processing said second write request packet whether said second server has ownership of said second volume; and
c) transfer said second write request packet to said at least one second lower level driver only if said second server has ownership of said first volume.
-
Specification