Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
DETAILED ACTION
Claim Interpretation - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(f):
(f) Element in Claim for a Combination. – An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The following is a quotation of pre-AIA 35 U.S.C. 112, sixth paragraph:
An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
Claims limitation 31-37 has/have been interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, because it uses/they use a generic placeholder storage computing node, client computing node, physical storage, virtual machines, computing node, coupled with functional language without reciting sufficient structure to achieve the function. Furthermore, the generic placeholder is not preceded by a structural modifier. Since the claim limitation(s) invokes 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, claims 31-37 has/have been interpreted to cover the corresponding structure described in the specification that achieves the claimed function, and equivalents thereof.
A review of the specification, Fig. 7 [0094] shows that the following appears to be the corresponding structure described in the specification for the 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph limitation.
If applicant wishes to provide further explanation or dispute the examiner’s interpretation of the corresponding structure, applicant must identify the corresponding structure with reference to the specification by page and line number, and to the drawing, if any, by reference characters in response to this Office action.
If applicant does not intend to have the claim limitation(s) treated under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112 , sixth paragraph, applicant may amend the claim(s) so that it/they will clearly not invoke 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, or present a sufficient showing that the claim recites/recite sufficient structure, material, or acts for performing the claimed function to preclude application of 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph.
For more information, see MPEP § 2173 et seq. and Supplementary Examination Guidelines for Determining Compliance With 35 U.S.C. 112 and for Treatment of Related Issues in Patent Applications, 76 FR 7162, 7167 (Feb. 9, 2011).
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP §§ 706.02(l)(1) - 706.02(l)(3) for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/process/file/efs/guidance/eTD-info-I.jsp.
Claims 21-44 are rejected on the ground of nonstatutory double patenting as being unpatentable over claim 1 of U.S. Patent No. 11,579,910 and prior art.
Although the claims at issue are not identical, they are not patentably distinct from each other because: Claim 1 of U.S. Patent Application No. 11,579,910 in view of prior art as shown in the corresponding table below contains every element of Claims 21-44 of the instant application and therefore anticipates the claims.
Present Application No. 18/741,140
21, 31, 38, 41. (New) A method for enforcing quality-of-service (QoS) policies at sub-logical unit granularity, the method comprising:
creating logical storage unit for a virtualization environment (i.e. as mapped by Shah);
storing virtual disks for virtual machines of the virtualization environment in the logical storage unit; (1 via 11,579,910)
determining a first QoS policy for a virtual disk of the virtual disks and one or more additional QoS policies for one or more additional virtual disks of the virtual disks; (2)
determining the first virtual disk is stored in a first block range of the logical storage unit and the one or more additional virtual disks are stored in one or more other block ranges of the logical storage unit; assigning the first QoS policy to the first block range; (3)
receiving a data operation from the virtualization environment; determining the data operation targets the first block range rather than one of the one or more other block ranges; and performing the data operation on the first block range in accordance with the first QoS policy. (4)
22. (New) The method of claim 21, comprising: assigning a second QoS policy of the one or more additional QoS policies to a second block range of the one or more other block ranges corresponding to a second virtual disk of the virtual disks; receiving a second data operation from the virtualization environment; determining the second data operation targets the second block range; and performing the data operation on the second block range in accordance with the second QoS policy (i.e. as taught by Tylik in claim 22).
23. (New) The method of claim 21, comprising: receiving a second data operation from the virtualization environment; determining the second data operation targets a different block range other than the first block range and the one or more other block ranges; and performing the data operation on the different block range (i.e. as taught by Tylik in claim 23).
24. (New) The method of claim 21, wherein performing the data operation comprises:monitoring performance of the data operation; comparing the performance to a defined performance indicated by the first QoS policy; and ensuring the data operation meets or exceed the defined performance (i.e. as taught by Tylik in claim 24).
25. (New) The method of claim 21, wherein determining the data operation targets the first block range comprises:evaluating the data operation to identify logical block addresses targeted by the operation; and determining the logical block addresses are within addresses of the first block range (i.e. as taught by Nikaido in claim 25).
26. (New) The method of claim 21, comprising:determining a virtual machine corresponding to the first virtual disk; identifying at least one other virtual disk of the virtual machine; determining at least one further block range of the logical storage unit storing the at least one other virtual disk; and assigning the first QoS policy to the at least one further block range (i.e. as taught by Tylik in claim 26).
27. (New) The method of claim 21, wherein determining the first virtual disk is stored in the first block range comprises: transmitting a request for the first block range to a management tier of the virtualization environment; receiving the first block range in response to the request, wherein the first block range indicates at least one starting block value and corresponding ending block value; and associating the first block range with the first virtual disk (i.e. as taught by Lu in claim 27).
28. (New) The method of claim 27, comprising: receiving an updated block range from the management tier, wherein the updated block range comprises an update to the first block range; and modifying the first block range in accordance with the updated block range (i.e. as taught by Muroyama in claim 28).
29. (New) The method of claim 21, comprising:moving the first virtual disk from the logical storage unit to a second logical storage unit; determining the first virtual disk is stored in a second block range of the second logical storage unit; and assigning the first QoS policy to the second block range (i.e. as taught by Singh in claim 29).
30. (New) The method of claim 21, comprising: receiving a modification to the first QoS policy, wherein the modification includes adding one or more QoS metrics, removing one or more QoS metrics, or modifying one or more QoS metrics; and continuing to perform the data operation on the first block range in accordance with the modification (i.e. as taught by Longo in claim 30).
32. (New) The system of claim 31, comprising:physical storage configured to store the logical storage volume, wherein the physical storage is distributed across a distributed computing platform (i.e. as taught by Tylik in claim 32).
33. (New) The system of claim 31, comprising:the client computing node configured to execute a virtual machine in a virtualization environment, wherein the virtual machine generates the data operations and wherein the virtual machine creates a file system within the logical storage volume to store the file (i.e. as taught by Shah in claim 33).
34. (New) The system of claim 33, comprising:one or more second virtual machines in the virtualization environment configured to store one or more files in the file system; and the computing node configured to determine different QoS policies for the one or more files and associate the different QoS policies with locations of the one or more files in the logical storage volume (i.e. as taught by Sadko in claim 34).
35. (New) The system of claim 31, comprising:the computing node configured to: monitor performance of the data operations; and allocate resources to ensure the performance satisfies the QoS policy (i.e. as taught by Tylik in claim 35).
36. (New) The system of claim 31, wherein to determine the location, the computing node is configured to: determine two or more disparate memory locations corresponding to the file in the logical storage volume; and include the two or more disparate memory locations in a memory location range identifying the location (i.e. as taught by Nikaido in claim 36).
37. (New) The system of claim 31, wherein the logical storage volume corresponds to a physical port and a target address is assigned to the physical port, the system comprising: the computing node configured to direct the data operations to the target address (i.e. as taught by Mimata in claim 37).
39. (New) The system of claim 38, wherein the instructions direct the processor to: receive second data storage operations; determine the second data storage operations are directed to the logical storage volume; determine a second block range, different from the block range, within the logical storage volume to which the second data operations are directed; determine a second QoS policy, different from the QoS policy, assigned to the second block range, wherein the second QoS policy is associated with a second file stored in the logical storage volume at the second block range; and enforce the second QoS policy on the second data operations (i.e. as taught by Tylik in claim 39).
40. (New) The system of claim 38, wherein the instructions direct the processor to:enforce a second QoS policy on the data operations, wherein the second QoS policy corresponds to the logical storage volume (i.e. as taught by Tylik in claim 40).
42. (New) The method of claim 41, wherein assigning the QoS policies to the blocks comprises:for each virtual disk of the virtual disks: identifying a location in the storage system where the virtual disk is stored, wherein the location comprises a range of blocks; identifying a QoS policy associated with the virtual disk; and assigning the QoS to the range of blocks (i.e. as taught by Tylik in claim 42).
43. (New) The method of claim 41, wherein performing the read and write operations in accordance with the assigned QoS policies comprises:receiving a request to perform a storage operation, wherein the request identifies a location in the logical storage unit; identifying a QoS policy assigned to the location identified by the storage request; and performing the storage operation in accordance with the QoS policy (i.e. as taught by Tylik in claim 43).
44. (New) The method of claim 43, wherein performing the read and write operations in accordance with the assigned QoS policies further comprises: receiving a second request to perform a second storage operation, wherein the second request identifies a different location in the logical storage unit; identifying a different QoS policy assigned to the different location identified by the second request; and performing the second storage operation in accordance with the different QoS policy assigned to the different location (i.e. as taught by Tylik in claim 44).
U.S. Patent No. 11,579,910 in view of prior art
1. A method comprising:
hosting, through a virtualization environment lacking native functionality for providing quality of service guarantees and monitoring, a plurality of virtual machines,
(1) wherein virtual disks of the plurality of virtual machines are stored through a file system over a logical unit number (LUN) at block ranges according a sub-LUN granularity; identifying, by a service external to the virtualization environment, the block ranges of the LUN storing the virtual disks according to the sub-LUN granularity;
(2) creating, by the service, a quality of service (QoS) policy object defining a policy to apply at the sub-LUN granularity to block ranges assigned to the QoS policy object, wherein QoS workload objects are defined through the QoS policy object for each block range assigned to the QoS policy object, and
(3) wherein a QoS workload object is created for a block range of a virtual disk to provide the quality of service guarantees and monitoring at the sub-LUN granularity for the virtual disk and excluding other virtual disks stored at block ranges not assigned to the QoS policy object;
(4) performing a workload lookup for the QoS workload objects using the block range targeted by an operation to identify the QoS workload object defined for the block range; and in response to a workload to policy lookup determining that the QoS workload object is mapped to the QoS policy object, enforcing, by the service, the policy of the QoS policy object upon the operation using the QoS workload object.
Claim Rejections - 35 USC §103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim/s 21-24, 26, 31-33, 35, 38-44 is/are rejected under 35 U.S.C. 103 as being unpatentable over Shah (Pub. No. US 2019/0065092) in view of Tylik (Pat. No. US 10,268,419).
Claim 21, 31, 38, 41, Shah teaches “a method for enforcing quality-of-service (QoS) policies at sub-logical unit granularity, the method comprising: creating logical storage unit for a virtualization environment; storing virtual disks for virtual machines of the virtualization environment in the logical storage unit ([0033] FIG. 2 depicts an example hierarchical structure of storage objects that represent a virtual disk. As previously discussed above, a VM 112 running on one of nodes 111 may perform I/O operations on a virtual disk that is stored as a hierarchical or composite object 200 in object store 116.); determining a first QoS policy for a virtual disk of the virtual disks and one or more additional QoS policies for one or more additional virtual disks of the virtual disks ([0036] In one embodiment, if an administrator creates a storage profile or policy for a composite object such as virtual disk object 200, CLOM sub-module 325 applies a variety of heuristics and/or distributed algorithms to generate virtual disk blueprint 215 that describes a configuration in cluster 110 that meets or otherwise suits the storage policy (e.g., RAID configuration to achieve desired redundancy through mirroring and access performance through striping, which nodes' local storage should store certain portions/partitions/stripes of the virtual disk to achieve load balancing, etc.). For example, CLOM sub-module 325, in one embodiment, is responsible for generating blueprint 215 describing the RAID1/RAID0 configuration for virtual disk object 200 in FIG. 2 when the virtual disk was first created by the administrator. As previously discussed, a storage policy may specify requirements for capacity, IOPS, availability, and reliability. Storage policies may also specify a workload characterization (e.g., random or sequential access, I/O request size, cache size, expected cache hit ration, etc.). Additionally, the administrator may also specify an affinity to VSAN module 114 to preferentially use certain nodes 111 (or the local disks housed therein). For example, when provisioning a new virtual disk for a VM, an administrator may generate a storage policy or profile for the virtual disk specifying that the virtual disk have a reserve capacity of 400 GB, a reservation of 150 read IOPS, a reservation of 300 write IOPS, and a desired availability of 99.99%. Upon receipt of the generated storage policy, CLOM sub-module 325 consults the in memory metadata database maintained by its VSAN module 114 to determine the current state of cluster 110 in order generate a virtual disk blueprint for a composite object (e.g., the virtual disk object) that suits the generated storage policy. As further discussed below, CLOM sub-module 325 may then communicate the blueprint to its corresponding distributed object manager (DOM) sub-module 340 which interacts with object space 116 to implement the blueprint by, for example, allocating or otherwise mapping component objects (e.g., stripes) of the composite object to physical storage locations within various nodes 111 of cluster 110.)”.
However, Shah may not explicitly teach further details of its policies.
Tylik teaches “determining the first virtual disk is stored in a first block range of the logical storage unit ([Fig. 3] data stored in VVOL1 608a of 602a (i.e. disk as taught by Shah)) and the one or more additional virtual disks are stored in one or more other block ranges of the logical storage unit ([Fig. 3] data stored in VVOL2 608b of 602a (i.e. another disk as taught by Shah)); assigning the first QoS policy to the first block range; receiving a data operation from the virtualization environment; determining the data operation targets the first block range rather than one of the one or more other block ranges; and performing the data operation on the first block range in accordance with the first QoS policy ([Col. 18, Lines 13-46] Referring to FIG. 8, shown is an example 700 illustrating a case where a QOS limit and associated bucket of tokens are only applied at the single VVOL level. The example 700 includes storage container 510, and VVOLs 502 and 503 created within the storage container 510, as in FIG. 7. The example 700 also includes the bucket 703 of tokens for the single VVOL 502 and an incoming I/O 704 directed to the VVOL 502 created in storage container 510. The bucket 703 may be populated with tokens deposited in accordance with a rate denoted by the QOS limit specified for the VVOL 502. For illustration in this example, assume the I/O 704 consumes only a single token from bucket 703. In this case, a token is consumed from bucket 703 and the I/O 704 may be serviced. There is no bucket at the storage container level for storage container 510 in this example. Once the QOS limit or number of tokens in the bucket 703 is exhausted, no I/O directed to VVOL 502 is serviced until more tokens in bucket 703 become available. In at least one embodiment, the bucket 703 may have tokens deposited in accordance with a rate denoted by the QOS limit of the VVOL 502. For example, if the QOS limit for VVOL 502 is 1,000 KBs/second, each second, processing may be performed to deposit or increase the number of tokens in the bucket 703 by 1,000. Although, for example, the QOS limit for VVOL 502 may be exhausted whereby there are no tokens in bucket 703, a second incoming I/O directed to VVOL 503 is still serviced since, in this example, there is no QOS limit specified for VVOL 503. Although not illustrated in FIG. 8, if a QOS limit and corresponding bucket of tokens are specified for VVOL 503 and there are a sufficient number of tokens in the bucket to service the second I/O directed to VVOL 503, then the appropriate number of tokens from the bucket for VVOL 503 is consumed and the second I/O is serviced.)”.
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Tylik with the teachings of Shah in order to provide a system that teaches enforcing QOS on storage locations. The motivation for applying Tylik teaching with Shah teaching is to provide a system that allows for design choice. Shah, Tylik are analogous art directed towards virtualized storage. Together Shah, Tylik teaches every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied the teachings of Tylik with the teachings of Shah by known methods and gained expected results.
Claim 22, 39, the combination teaches the claim, wherein Tylik teaches “the method of claim 21, comprising: assigning a second QoS policy of the one or more additional QoS policies to a second block range of the one or more other block ranges corresponding to a second virtual disk of the virtual disks; receiving a second data operation from the virtualization environment; determining the second data operation targets the second block range; and performing the data operation on the second block range in accordance with the second QoS policy ([Col. 18, Lines 13-46] Although not illustrated in FIG. 8, if a QOS limit and corresponding bucket of tokens are specified for VVOL 503 and there are a sufficient number of tokens in the bucket to service the second I/O directed to VVOL 503, then the appropriate number of tokens from the bucket for VVOL 503 is consumed and the second I/O is serviced.)”.
Rationale to claim 21 is applied here.
Claim 23, the combination teaches the claim, wherein Tylik teaches “the method of claim 21, comprising: receiving a second data operation from the virtualization environment; determining the second data operation targets a different block range other than the first block range and the one or more other block ranges; and performing the data operation on the different block range ([Col. 18, Lines 13-46] Although not illustrated in FIG. 8, if a QOS limit and corresponding bucket of tokens are specified for VVOL 503 and there are a sufficient number of tokens in the bucket to service the second I/O directed to VVOL 503, then the appropriate number of tokens from the bucket for VVOL 503 is consumed and the second I/O is serviced.)”.
Rationale to claim 21 is applied here.
Claim 24, the combination teaches the claim, wherein Tylik teaches “the method of claim 21, wherein performing the data operation comprises: monitoring performance of the data operation; comparing the performance to a defined performance indicated by the first QoS policy; and ensuring the data operation meets or exceed the defined performance ([Col. 7, Lines 31-38] (22) Also shown in FIG. 1 is a service processor 22a that may be used to manage and monitor the system 12. In one embodiment, the service processor 22a may be used in collecting performance data, for example, regarding the I/O performance in connection with data storage system 12. This performance data may relate to, for example, performance measurements in connection with a data request as may be made from the different host computer systems 14a 14n. ) [Col. 18, Lines 13-46] Referring to FIG. 8, shown is an example 700 illustrating a case where a QOS limit and associated bucket of tokens are only applied at the single VVOL level. The example 700 includes storage container 510, and VVOLs 502 and 503 created within the storage container 510, as in FIG. 7. The example 700 also includes the bucket 703 of tokens for the single VVOL 502 and an incoming I/O 704 directed to the VVOL 502 created in storage container 510. The bucket 703 may be populated with tokens deposited in accordance with a rate denoted by the QOS limit specified for the VVOL 502. For illustration in this example, assume the I/O 704 consumes only a single token from bucket 703. In this case, a token is consumed from bucket 703 and the I/O 704 may be serviced. There is no bucket at the storage container level for storage container 510 in this example. Once the QOS limit or number of tokens in the bucket 703 is exhausted, no I/O directed to VVOL 502 is serviced until more tokens in bucket 703 become available. In at least one embodiment, the bucket 703 may have tokens deposited in accordance with a rate denoted by the QOS limit of the VVOL 502. For example, if the QOS limit for VVOL 502 is 1,000 KBs/second, each second, processing may be performed to deposit or increase the number of tokens in the bucket 703 by 1,000. Although, for example, the QOS limit for VVOL 502 may be exhausted whereby there are no tokens in bucket 703, a second incoming I/O directed to VVOL 503 is still serviced since, in this example, there is no QOS limit specified for VVOL 503. Although not illustrated in FIG. 8, if a QOS limit and corresponding bucket of tokens are specified for VVOL 503 and there are a sufficient number of tokens in the bucket to service the second I/O directed to VVOL 503, then the appropriate number of tokens from the bucket for VVOL 503 is consumed and the second I/O is serviced.)”.
Claim 26, the combination teaches the claim, wherein Tylik teaches “the method of claim 21, comprising: determining a virtual machine corresponding to the first virtual disk; identifying at least one other virtual disk of the virtual machine; determining at least one further block range of the logical storage unit storing the at least one other virtual disk ([Col. 11, Lines 39-47] (40) As mentioned above, a virtualization environment vendor, such as VMware, may allow data storage system vendors to integrate with the virtualization environment by providing an API used to configure and provision physical storage for a VVOL (which is a particular type of logical device used by a VM). Using the API, a request may be issued with parameters to create a VVOL and provision storage for the VVOL. Such parameters may specify different requested options for one or more VVOLs being created.); and assigning the first QoS policy to the at least one further block range ([Col. 17, Lines 3-10] The first bucket of tokens may denote an amount of tokens in accordance with the first QOS limit. The first bucket of tokens may denote an amount of storage resources available for consumption in connection with servicing I/O operations directed collectively to the storage container, such as I/Os directed to any of the VVOLs included in, or configured from, the storage container.)”.
Claim 32, the combination teaches the claim, wherein Tylik teaches “the system of claim 31, comprising: physical storage configured to store the logical storage volume, wherein the physical storage is distributed across a distributed computing platform ([Fig.1] distributed memory of 10)”.
Claim 33, the combination teaches the claim, wherein Shah teaches “the system of claim 31, comprising: the client computing node configured to execute a virtual machine in a virtualization environment, wherein the virtual machine generates the data operations and wherein the virtual machine creates a file system within the logical storage volume to store the file ([0034] Descriptor file 210 includes a reference to composite object 200 that is separately stored in object store 116 and conceptually represents the virtual disk (and thus may also be sometimes referenced herein as a virtual disk object). Composite object 200 stores metadata describing a storage organization or configuration for the virtual disk (sometimes referred to herein as a virtual disk “blueprint”) that suits the storage requirements or service level agreements (SLAs) in a corresponding storage profile or policy (e.g., capacity, availability, IOPS, etc.) generated by an administrator when creating the virtual disk. For example, composite object 200 includes a virtual disk blueprint 215 that describes a RAID 1 configuration where two mirrored copies of the virtual disk (e.g., mirrors) are each further striped in a RAID 0 configuration. Composite object 225 may thus contain references to a number of “leaf” or “component” objects 220x corresponding to each stripe (e.g., data partition of the virtual disk) in each of the virtual disk mirrors. The metadata accessible by VSAN module 114 in the in-memory metadata database for each component object 220 (e.g., for each stripe) provides a mapping to or otherwise identifies a particular node 111 x in cluster 110 that houses the physical storage resources (e.g., magnetic disks 118, etc.) that actually store the stripe (as well as the location of the stripe within such physical resource).).
Claim 35, the combination teaches the claim, wherein Tylik teaches “the system of claim 31, comprising: the computing node configured to: monitor performance of the data operations; and allocate resources to ensure the performance satisfies the QoS policy ([Col. 17, Lines 1-15] A first QOS limit and first bucket of tokens may be associated with the storage container. A second QOS limit and second bucket of tokens may be associated with a single VVOL configured from the storage container. The first bucket of tokens may denote an amount of tokens in accordance with the first QOS limit. The first bucket of tokens may denote an amount of storage resources available for consumption in connection with servicing I/O operations directed collectively to the storage container, such as I/Os directed to any of the VVOLs included in, or configured from, the storage container. In a similar manner, the second bucket of tokens may denote an amount of tokens in accordance with the second QOS limit. The second bucket of tokens may denote an amount of storage resources available for consumption in connection with I/Os directed to a single VVOL.)”.
Claim 40, the combination teaches the claim, wherein Tylik teaches “the system of claim 38, wherein the instructions direct the processor to: enforce a second QoS policy on the data operations, wherein the second QoS policy corresponds to the logical storage volume ([Col. 18, Lines 13-46] Although not illustrated in FIG. 8, if a QOS limit and corresponding bucket of tokens are specified for VVOL 503 and there are a sufficient number of tokens in the bucket to service the second I/O directed to VVOL 503, then the appropriate number of tokens from the bucket for VVOL 503 is consumed and the second I/O is serviced.)”.
Claim 42, the combination teaches the claim, wherein Tylik teaches “the method of claim 41, wherein assigning the QoS policies to the blocks comprises: for each virtual disk of the virtual disks: identifying a location in the storage system where the virtual disk is stored, wherein the location comprises a range of blocks; identifying a QoS policy associated with the virtual disk; and assigning the QoS to the range of blocks ([Col. 18, Lines 13-46] Although not illustrated in FIG. 8, if a QOS limit and corresponding bucket of tokens are specified for VVOL 503 and there are a sufficient number of tokens in the bucket to service the second I/O directed to VVOL 503, then the appropriate number of tokens from the bucket for VVOL 503 is consumed and the second I/O is serviced.)”.
Claim 43, the combination teaches the claim, wherein Tylik teaches “the method of claim 41, wherein performing the read and write operations in accordance with the assigned QoS policies comprises: receiving a request to perform a storage operation, wherein the request identifies a location in the logical storage unit; identifying a QoS policy assigned to the location identified by the storage request; and performing the storage operation in accordance with the QoS policy ([Col. 18, Lines 13-46] Although not illustrated in FIG. 8, if a QOS limit and corresponding bucket of tokens are specified for VVOL 503 and there are a sufficient number of tokens in the bucket to service the second I/O directed to VVOL 503, then the appropriate number of tokens from the bucket for VVOL 503 is consumed and the second I/O is serviced.)”.
Claim 44, the combination teaches the claim, wherein Tylik teaches “the method of claim 43, wherein performing the read and write operations in accordance with the assigned QoS policies further comprises: receiving a second request to perform a second storage operation, wherein the second request identifies a different location in the logical storage unit; identifying a different QoS policy assigned to the different location identified by the second request; and performing the second storage operation in accordance with the different QoS policy assigned to the different location ([Col. 18, Lines 13-46] Although not illustrated in FIG. 8, if a QOS limit and corresponding bucket of tokens are specified for VVOL 503 and there are a sufficient number of tokens in the bucket to service the second I/O directed to VVOL 503, then the appropriate number of tokens from the bucket for VVOL 503 is consumed and the second I/O is serviced.)”.
Claim/s 25, 36 is/are rejected under 35 U.S.C. 103 as being unpatentable over Shah, Tylik in view of Nikaido (Pub. No. US 2015/0253991).
Claim 25, the combination may not explicitly teach details of an address range of the VVOL.
Nikaido teaches “the method of claim 21, wherein determining the data operation targets the first block range comprises: evaluating the data operation to identify logical block addresses targeted by the operation; and determining the logical block addresses are within addresses of the first block range ([0071] In the pool ID 213a, information (pool ID) identifying a pool 260 that stores a real page (referred to as a corresponding real page in the description of the table) corresponding to the entry is stored. In the VVOL apparatus number 213b, an apparatus number of a VVOL to which the corresponding real page is allocated is stored. In the page# 213c, a page# of a virtual page to which the corresponding real page is allocated is stored. In the VVOL address (CCHH) 213d, an address range of the virtual page in a virtual volume to which the corresponding real page is allocated is stored. In the real address 213e, an address (real address) on a pool VOL of the corresponding real page is stored.)”.
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Nikaido with the teachings of Shah, Tylik in order to provide a system that teaches content of a VVOL is based upon a range. The motivation for applying Nikaido teaching with Shah, Tylik teaching is to provide evidence as to how content is accessed within a VVOL of Tylik. Shah, Tylik, Nikaido are analogous art directed towards virtualized storage. Together Shah, Tylik, Nikaido teaches every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied the teachings of Nikaido with the teachings of Shah, Tylik by known methods and gained expected results.
Claim 36, the combination may not explicitly teach details of an address range.
Nikaido teaches “the system of claim 31, wherein to determine the location, the computing node is configured to: determine two or more disparate memory locations corresponding to the file in the logical storage volume; and include the two or more disparate memory locations in a memory location range identifying the location ([Fig. 7] VVO address, ex 1000-1009)”.
Rationale to claim 25 is applied here.
Claim/s 27 is/are rejected under 35 U.S.C. 103 as being unpatentable over Shah, Tylik in view of Lu (Pub. No. US 2021/0089471).
Claim 27, the combination may not explicitly teach the limitation.
Lu teaches “the method of claim 21, wherein determining the first virtual disk is stored in the first block range comprises: transmitting a request for the first block range to a management tier of the virtualization environment; receiving the first block range in response to the request, wherein the first block range indicates at least one starting block value and corresponding ending block value; and associating the first block range with the first virtual disk ([0097] The operation request includes the first virtual address, and the first virtual address is used to indicate the location that is in the virtual disk and from or to which the to-be-operated data is read or written. The first virtual address may be in a plurality of specific forms. For example, the first virtual address may be an offset O of the location that is in the virtual disk and from or to which the to-be-operated data is read or written, an offset O of the location that is in the virtual disk and from or to which the to-be-operated data is read or written and a length L of the to-be-operated data, a start address of the location that is in the virtual disk and from or to which the to-be-operated data is read or written, a start address and an end address of the location that is in the virtual disk and from or to which the to-be-operated data is read or written, a start address of the location that is in the virtual disk and from or to which the to-be-operated data is read or written and a length L of the to-be-operated data, or the like. This is not limited herein. The following uses an example in which the first virtual address is the offset O of the location that is in the virtual disk and from or to which the to-be-operated data is read or written and the length L of the to-be-operated data for description.)”.
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Lu with the teachings of Shah, Tylik in order to provide a system that teaches storage of virtual disks of Shah. The motivation for applying Lu teaching with Shah, Tylik teaching is to provide evidence as to how content is accessed. Shah, Tylik, Lu are analogous art directed towards virtualized storage. Together Shah, Tylik, Lu teaches every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied the teachings of Lu with the teachings of Shah, Tylik by known methods and gained expected results.
Claim/s 28 is/are rejected under 35 U.S.C. 103 as being unpatentable over Shah, Tylik, Lu in view of Muroyama (Pub. No. US 2013/0262813).
Claim 28, the combination may not explicitly teach the limitation.
Muroyama teaches “the method of claim 27, comprising: receiving an updated block range from the management tier, wherein the updated block range comprises an update to the first block range; and modifying the first block range in accordance with the updated block range ([0137] (Step S38) The volume control unit 150 changes the strip size of the logical volume 600 to 256 KB in the access management table 134. Hereinafter, the access processing unit 140 uses 256 KB as the strip sire in locating the access destination strip in the logical volume 600. Furthermore, when the write position in LUN 0 is changed to another LBA range in step S36, a new LBA range is registered in LUN 0 by updating the logical volume management table 133 (the leading LBA is changed). When the RAID group is changed, that change is also reflected. In this manner, the tuned LUN 0 becomes accessible.)”.
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Muroyama with the teachings of Shah, Tylik, Lu in order to provide a system that teaches updating of ranges. The motivation for applying Muroyama teaching with Shah, Tylik, Lu teaching is to provide design choice. Shah, Tylik, Lu, Muroyama are analogous art directed towards virtualized storage. Together Shah, Tylik, Lu, Muroyama teaches every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied the teachings of Muroyama with the teachings of Shah, Tylik, Lu by known methods and gained expected results.
Claim/s 29 is/are rejected under 35 U.S.C. 103 as being unpatentable over Shah, Tylik, in view of Singh (Pub. No. US 2017/0177222).
Claim 29, the combination may not explicitly teach the limitation.
Singh teaches “the method of claim 21, comprising: moving the first virtual disk from the logical storage unit to a second logical storage unit; determining the first virtual disk is stored in a second block range of the second logical storage unit; and assigning the first QoS policy to the second block range ([0069] QoS may be based on various parameters, such as one or more of a bandwidth parameter, a network latency parameter, an IO performance parameter, a throughput parameter, a storage type parameter and a storage latency parameter. QoS may be maintained automatically when at least one of an application and a container that is serviced by storage through the converged storage and network controller is migrated from a host computer to another computer. Similarly, QoS may be maintained automatically when at least one target storage device that services at least one of an application and a container through the converged storage and network controller is migrated from a first location to another location or multiple locations. For example, storage may be scaled, or different storage media types may be selected, to meet storage needs as requirements are increased. In embodiments, a security feature may be provided, such as encryption of network traffic data, encryption of data in storage, or both. Various storage features may be provided as well, such as compression, protection levels (e.g., RAID levels), use of different storage media types, global de-duplication, and snapshot intervals for achieving at least one of a recovery point objective (RPO) and a recovery time objective (RTO).)”.
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Singh with the teachings of Shah, Tylik in order to provide a system that teaches maintaining QOS upon migration. The motivation for applying Singh teaching with Shah, Tylik teaching is to provide design choice. Shah, Tylik, Singh are analogous art directed towards virtualized storage. Together Shah, Tylik, Singh teaches every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied the teachings of Singh with the teachings of Shah, Tylik by known methods and gained expected results.
Claim/s 30 is/are rejected under 35 U.S.C. 103 as being unpatentable over Shah, Tylik, in view of Longo (Pub. No. US 2018/0081832).
Claim 30, the combination may not explicitly teach the limitation.
Longo teaches “the method of claim 21, comprising: receiving a modification to the first QoS policy, wherein the modification includes adding one or more QoS metrics, removing one or more QoS metrics, or modifying one or more QoS metrics; and continuing to perform the data operation on the first block range in accordance with the modification ([0053] As noted above, client QoS parameters can be changed at any time by the client or an administrator. FIG. 2 depicts a user interface 200 for setting client QoS in accordance with one illustrative implementation. The user interface 200 can include inputs that are used to change various QoS parameters. For example, slide bars 202 and/or text boxes 204 can be used to adjust QoS parameters. As noted above in one implementation, client QoS parameters include a minimum IOPS, a maximum IOPS, and a maximum burst IOPS. Each of these parameters can be adjusted with inputs, e.g., slide bars and/or text boxes. In addition, the IOPS for different size IO operations can be shown. In the user interface 200, the QoS parameters associated with 4 k sized IO operations are changed. When any performance parameter is changed, the corresponding IOPS for different sized IO operations are automatically adjusted. For example, when the burst parameter is changed, IOPS values 206 are automatically adjusted. Once the QoS parameters have been set, activating a save changes button 208 updates the client's QoS parameters. As described below, the target performance manager 402 can use the updated QoS parameters, such that the updated QoS parameters take effect immediately. The updated QoS parameters take effect without requiring any user data to be moved in the system.)”.
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Longo with the teachings of Shah, Tylik in order to provide a system that teaches maintaining adjusting QOS metric. The motivation for applying Longo teaching with Shah, Tylik teaching is to provide design choice. Shah, Tylik, Longo are analogous art directed towards virtualized storage. Together Shah, Tylik, Longo teaches every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied the teachings of Longo with the teachings of Shah, Tylik by known methods and gained expected results.
Claim/s 34 is/are rejected under 35 U.S.C. 103 as being unpatentable over Shah, Tylik, in view of Sakdeo (Pub. No. US 2016/0299693).
Claim 34, the combination may not explicitly teach details of an address range.
Sadko teaches “the system of claim 33, comprising: one or more second virtual machines in the virtualization environment configured to store one or more files in the file system; and the computing node configured to determine different QoS policies for the one or more files and associate the different QoS policies with locations of the one or more files in the logical storage volume ([0041] FIG. 4 is a flow chart illustrating an embodiment of a process to implement a QoS parameter on a per-virtual machine basis. In various embodiments, the process of FIG. 4 may be implemented by a virtual machine-aware storage system, such as storage system 108 of FIG. 1. In the example shown, quality of service (QoS) parameter data is received for each of one or more virtual machines (402). In various embodiments, QoS parameters may be received via an administrative user interface; an API, web services call, or other programmatic interface; a configuration file; etc. In various embodiments, all or fewer than all files stored on a storage system may be associated with a QoS parameter. For example, certain files may be associated with virtual machines each of which has been assigned a minimum IOPS QoS parameter value, while other files may be associated with virtual machines for which no minimum IOPS commitment has been configured and/or files not (yet) associated with any virtual machine.)”.
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Sakdeo with the teachings of Shah, Tylik in order to provide a system that teaches each VM associated data may have different QOS as taught by Tylik. The motivation for applying Sakdeo teaching with Shah, Tylik teaching is to provide design choice. Shah, Tylik, Sakdeo are analogous art directed towards virtualized storage. Together Shah, Tylik, Sakdeo teaches every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied the teachings of Sakdeo with the teachings of Shah, Tylik by known methods and gained expected results.
Claim/s 37 is/are rejected under 35 U.S.C. 103 as being unpatentable over Shah, Tylik, in view of Mimata (Pub. No. US 2016/0019145).
Claim 37, the combination may not explicitly teach the limitation.
Mimata teaches “the system of claim 31, wherein the logical storage volume corresponds to a physical port and a target address is assigned to the physical port, the system comprising: the computing node configured to direct the data operations to the target address ([0044] The host computer 10 is an example of a host apparatus and is configured by a general-purpose server apparatus or the like to execute a predetermined process. The host computer 10 issues an I/O request to the storage system 100. The I/O request is an SCSI command, for example, and includes a request type (such as read or write), a port number and an LUN (Logical Unit Number) associated with an LDEV (logical unit) at an I/O destination, and an LBA (Logical Block Address) of an area at the I/O destination in the LDEV.)”.
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Mimata with the teachings of Shah, Tylik in order to provide a system that teaches maintaining routing requests of Shah. The motivation for applying Mimata teaching with Shah, Tylik teaching is to provide design choice. Shah, Tylik, Mimata are analogous art directed towards virtualized storage. Together Shah, Tylik, Mimata teaches every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied the teachings of Mimata with the teachings of Shah, Tylik by known methods and gained expected results.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to WYNUEL S AQUINO whose telephone number is (571)272-7478. The examiner can normally be reached 9AM-5PM EST M-F.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Lewis Bullock can be reached at 571-272-3759. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/WYNUEL S AQUINO/Primary Examiner, Art Unit 2199