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
Status
This instant application No. 18/736440 has claims 1-20 pending. The effective filing date of this application is 06/06/2024.
Claim Interpretation
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.
The claims in this application are given their broadest reasonable interpretation using the plain meaning of the claim language in light of the specification as it would be understood by one of ordinary skill in the art. The broadest reasonable interpretation of a claim element (also commonly referred to as a claim limitation) is limited by the description in the specification when 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is invoked.
As explained in MPEP § 2181, subsection I, claim limitations that meet the following three-prong test will be interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph:
(A) the claim limitation uses the term “means” or “step” or a term used as a substitute for “means” that is a generic placeholder (also called a nonce term or a non-structural term having no specific structural meaning) for performing the claimed function;
(B) the term “means” or “step” or the generic placeholder is modified by functional language, typically, but not always linked by the transition word “for” (e.g., “means for”) or another linking word or phrase, such as “configured to” or “so that”; and
(C) the term “means” or “step” or the generic placeholder is not modified by sufficient structure, material, or acts for performing the claimed function.
Use of the word “means” (or “step”) in a claim with functional language creates a rebuttable presumption that the claim limitation is to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites sufficient structure, material, or acts to entirely perform the recited function.
Absence of the word “means” (or “step”) in a claim creates a rebuttable presumption that the claim limitation is not to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is not interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites function without reciting sufficient structure, material or acts to entirely perform the recited function.
Claim limitations in this application that use the word “means” (or “step”) are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action. Conversely, claim limitations in this application that do not use the word “means” (or “step”) are not being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action.
This application includes one or more claim limitations that do not use the word “means,” but are nonetheless being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, because the claim limitation(s) uses a generic placeholder that is coupled with functional language without reciting sufficient structure to perform the recited function and the generic placeholder is not preceded by a structural modifier. Such claim limitation(s) is/are: “logic” in claims 3-8, 10-13 and 18.
Because this/these claim limitation(s) is/are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, it/they is/are being interpreted to cover the corresponding structure described in the specification as performing the claimed function, and equivalents thereof.
A review of the specification 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: paragraph [0055] of the specification of the instant application in which the term “logic” is used to refer to instructions stored and performed by hardware circuitry or a processor.
If applicant does not intend to have this/these limitation(s) interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, applicant may: (1) amend the claim limitation(s) to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph (e.g., by reciting sufficient structure to perform the claimed function); or (2) present a sufficient showing that the claim limitation(s) recite(s) sufficient structure to perform the claimed function so as to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph.
Claim Objections
Claim 7 is objected to because of the following informalities:
Claim 7 recites the limitation “the logic to logic to……”. It is believed that the limitation recites “the logic to……”.
Appropriate correction is required.
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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claim 1 is rejected under 35 U.S.C. 103 as being unpatentable over Elliott et al (2008/0126697) hereinafter Elliott in view of Sundaresan et al (2024/0020030) hereinafter Sundaresan and further in view of Johnson (2014/0337540) hereinafter Johnson.
Regarding claim 1, Elliott discloses A redundant array of independent disk (RAID) on chip (ROC) cluster (Elliott: Fig.3), comprising:
a plurality of input-output controller (IOC) devices (Elliott: Fig. 4 - Fig. 6: First Controller 410a and Second controller 410b), each of the plurality of IOC devices comprising a physical disk interface in communication with one or more physical disks (Elliott: Fig. 5 and Fig. 6, each of first controller and second controller communicates with disk drives 505); and
a plurality of RAID….devices, each lacking a physical disk interface (Elliott: Fig. 3: First RAID controller and Second RAID controller), the plurality of RAID….devices comprising:
one or more secondary RAID….devices (Elliott: Fig. 3: Second Raid Controller 105b), each configured to manage one or more virtual disks (disclosed by Sundaresan below), in communication with one or more of the plurality of IOC devices ( Elliott: Fig. 5, Fig. 6: Second Controller connected to disk drives 505 ); and
Elliott does not explicitly disclose the totality of what Sundaresan discloses:
a primary RAID…. device in communication with each of the secondary RAID….devices (Sundaresan: [0091]: “the first RAID controller may provide at least a first portion of the file information to the second RAID controller via the PCIe protocol”), and configured to:
receive, from the one or more secondary RAID…. devices, a plurality of sets of configuration information, the plurality of sets of configuration information comprising a set of configuration information for each of the one or more secondary RAID…. devices (Sundaresan: [0093]: “the first RAID controller may receive the at least the first portion of the file information from the second RAID controller via the PCIe protocol”); and
configure each of the one or more secondary RAID…. devices to communicate with the plurality of IOC devices to manage one or more virtual disks by issuing commands to the plurality of IOC devices (Sundaresan: [0004]: “providing the access to the amount of data storage of the at least one of nonvolatile memory medium of the second RAID to the first RAID controller via the PCIe protocol may include providing a virtual drive to the first RAID controller via the PCIe protocol”).
Disclosures by Elliott and Sundaresan are analogous because they are in the same field of endeavor of memory access and control.
It would have been obvious to an ordinary person skilled in the art before the earliest effective filing date of the claimed invention to incorporate cross communications between RAID controllers in a RAID storage subsystem taught by Elliott to include providing a file information from a first RAID controller to a second RAID controller disclosed by Sundaresan. The motivation for providing a file information from a RAID controller to another RAID controller by paragraph [0003] of Sundaresan is for fast rebuilding the first RAID devices using the file information provided by the second RAID controller.
Elliott and Sundaresan do not explicitly disclose a RAID on chip (ROC) device.
However, Johnson discloses a redundant array of independent disk (RAID) on chip (ROC) (Johnson: [0006]: “one of the first and said second controller devices is a host device and one of the first and the second controller devices is a Raid on a Chip device”).
Disclosures by Elliott, Sundaresan and Johnson are analogous because they are in the same field of endeavor of memory access and control.
It would have been obvious to an ordinary person skilled in the art before the earliest effective filing date of the claimed invention to incorporate cross communications between RAID controllers in a RAID storage subsystem taught by Elliott/Sundaresan to include the ROC device structure disclosed by Johnson. The motivation for include the ROC device structure by paragraph [0017] of Johnson is for providing PCIe host interface which would result in greater bandwidth, faster data transmission speeds and improved power efficiency.
Claim 2 is rejected under 35 U.S.C. 103 as being unpatentable over Elliott in view of Sundaresan in view of Johnson as applied to claim 1 above, and further in view of Olarig et al (2024/0095196) hereinafter Olarig.
Regarding claim 2, the combination of Elliott, Sundaresan and Johnson does not disclose the current limitations of claim 2.
However, Olarig discloses The ROC cluster of claim 1, further comprising:
a RAID controller in communication with the primary ROC device and comprising a disk interface in communication with a plurality of physical disks (Olarig: [0055]: “all the SSDs have Present pins connected to the BMC. When a SSD is pulled out of the chassis, the BMC detects the removal. The BMC then reports the affected slot number to the RoC in the PCIe switch. The BMC may also periodically monitor the health of the SSDs”); wherein
the primary ROC device is further configured to:
receive a set of configuration information from the RAID controller (Olarig: [0055]: “The BMC may then report the failed slot number to the RoC so that a new SSD may be rebuilt”); and
configure the RAID controller to manage a virtual disk comprising a plurality of arms, each of the plurality of arms corresponding to one the plurality of physical disks (Fig. 3:
devices 130 each has a connector number 1-24 to connect to the PCIe Switches; [0097]: “since this virtual storage device uses physical storage devices 130-1 through 130-6, physical storage devices 130-1 through 130-6 should be hidden from the host. After all, it would be problematic for the host to attempt to directly access the blocks on storage devices 130-1 through 130-6”).
Disclosures by Elliott, Sundaresan, Johnson and Olarig are analogous because they are in the same field of endeavor of memory access and control.
It would have been obvious to an ordinary person skilled in the art before the earliest effective filing date of the claimed invention to incorporate cross communications between RAID controllers in a RAID storage subsystem taught by Elliott/Sundaresan/Johnson to include the primary ROC device to virtualize devices in the RAID system disclosed by Olarig. The motivation for including the primary ROC device to virtualize devices in the RAID system by paragraph [0043] of Olarig is for providing data protection to protect data loss.
Claims 3, 12-14, 16, 19 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Olarig in view of Mukherjee et al (2008/0077736) hereinafter Mukherjee.
Regarding claim 3, Olarig discloses A primary redundant array of independent drives (RAID) on chip (ROC) device (Olarig: Fig. 3), comprising:
logic (interpreted as a software instruction) to manage a ROC cluster comprising a plurality of RAID devices, the plurality of RAID devices comprising a first RAID device (Olarig: Fig. 3: [0040]: “a primary RoC as part of the host PCIe switch may virtualize all SSDs addresses”);
logic to communicate with a host (Olarig: [0044]: “The host software may be specially tailored to work with the PCIe switch+RoC hardware”);
logic to communicate with the plurality of RAID devices in the cluster (Olarig: [0043]: “The RoC may virtualize a bunch of devices that it claims and present them as a single device or fewer devices that are protection against data or device failures”); and
logic to configure the first RAID device to manage a first virtual disk (Olarig: [0044]: “To virtualize devices under RoC, the devices may be terminated at the RoC and not be visible to the host. That is, the PCIe switch may be connected to all known devices, and the RoC may be connected to the switch. To manage the devices, the RoC may discover and configure the individual devices through the PCIe switch”; [0043]: “The RoC may virtualize a bunch of devices that it claims and present them as a single device or fewer devices that are protection against data or device failures”), the first virtual disk comprising a plurality of arms, the plurality of arms comprising: a first arm corresponding to a first physical disk; and a second arm corresponding to a second physical disk (Fig. 3: storage devices 130 each has a connector number 1-24 to connect to the PCIe Switches; [0097]: “since this virtual storage device uses physical storage devices 130-1 through 130-6, physical storage devices 130-1 through 130-6 should be hidden from the host. After all, it would be problematic for the host to attempt to directly access the blocks on storage devices 130-1 through 130-6”).
Olarig does not explicitly disclose the totality of what Mukherjee discloses:
logic to receive, from the plurality of plurality of RAID devices, a plurality of sets of configuration information, the plurality of sets of configuration information comprising a set of configuration information for each of the plurality of RAID devices (Mukherjee: [0004]: “The RAID management application may need to possess the ability to acquire system information (e.g., available physical drives, valid RAID levels, and/or available virtual disk size, etc.); [0031]: “The management module 100 may be an upper level application that may be able to configure a RAID implementation using system specific information which may be available physical drives, possible RAID levels, and/or available virtual disks”).
Disclosures by Olarig and Mukherjee are analogous because they are in the same field of endeavor of memory access and control.
It would have been obvious to an ordinary person skilled in the art before the earliest effective filing date of the claimed invention to incorporate cross communications between RAID controllers in a RAID storage subsystem taught by Olarig to include a configuration of a RAID controller of any set of physical disks without prior knowledge of firmware information of the RAID controller disclosed by Mukherjee. The motivation for including the configuration of a RAID controller of any set of physical disks by paragraph [0005] of Mukherjee is for providing a more flexible way to determine the configuration of a particular RAID implementation.
Regarding claim 20, these claims limitations are significantly similar to those of claim 3, and, therefore, are rejected on the same grounds.
Regarding claim 12, Olarig combined further discloses The primary ROC device of claim 3, wherein the primary ROC device further comprises: logic to present, for a host, a unified view of the plurality of RAID devices (Olarig: [0046]: “each RoC and PCIe switch combination is instantiated as a separate device by the host. The host here may have standard OS drivers that will see all the SSDs virtualized by the RoC”).
Regarding claim 13, Olarig combined further discloses The primary ROC device of claim 3, wherein the primary ROC device further comprises:
logic to poll each of the plurality of RAID devices (Olarig: [0044]: “the RoC may discover and configure the individual devices through the PCIe switch”); and
logic to determine, based on polling each of the plurality of RAID devices, a failure of one or more devices ([0043]: “The RoC may virtualize a bunch of devices that it claims and present them as a single device or fewer devices that are protection against data or device failures”).
Regarding claim 14, Olarig combined further discloses The primary ROC device of claim 3, wherein the plurality of RAID devices comprises two or more ROC devices with heterogenous characteristics (Olarig: [0050]: “The two RoC controllers may co-ordinate their writes between them so as to keep both SSDs in sync. That is, each SSD from each RoC controller may contain identical data as in RAID 1 setup”).
Regarding claim 16, Olarig combined further discloses The primary ROC device of claim 3, wherein the primary ROC device further comprises: logic to identify an event that disrupts a workload equilibrium among the plurality of RAID devices (Olarig: [0155]: “PCIe switch with Look-Aside Erasure Coding logic 125 may detect the failure of storage device 130-1 via a Presence pin on the connector to storage device 130-1”); logic to determine a prospective change to a workload distribution to restore the workload equilibrium among the plurality of RAID devices ([0156]: “If and when storage device 130-1 fails, PCIe switch with Look-Aside Erasure Coding logic 125 may manage the situation by accessing any data that would normally be requested from storage device 130-1 using other means. For example, if there is a mirror of storage device 130-1, PCIe switch with Look-Aside Erasure Coding logic 125 may request the data from the mirror of storage device 130-1”); and logic to move at least one virtual disk among the plurality of RAID devices to produce the change to the workload distribution ([0155]: “If storage device 130-1 is removed from the chassis, or if storage device 130-1 has shut down”).
Regarding claim 19, Olarig combined further discloses The primary ROC device of claim 16, wherein: the event comprises one of:
a command from the host to add a virtual disk;
a command from the host to delete an existing virtual disk; or
a failure of one or more RAID devices, one or more input-output controllers, or one or more physical disks (Olarig: [0155]: “PCIe switch with Look-Aside Erasure Coding logic 125 may detect the failure of storage device 130-1 via a Presence pin on the connector to storage device 130-1”).
Claims 4-8, 10, 11 and 15 are rejected under 35 U.S.C. 103 as being unpatentable over Olarig in view of Mukherjee and further in view of Sundaresan.
Regarding claim 4, the combination of Olarig and Mukherjee do not disclose the current limitation of claim 4.
However, Sundaresan discloses The primary ROC device of claim 3, wherein the logic to receive a plurality of sets of configuration information comprises: logic to receive one or more Peripheral Component Interconnect Express (PCIe) vendor-defined messages (VDM) from each of the plurality of RAID devices (Sundaresan: [0086]: “the second RAID controller may provide access to the amount of data storage of the at least one of the nonvolatile memory medium to the first RAID controller via a PCIe protocol. For example, RAID controller 140N may provide access to data storage 710 to RAID controller 140A via a PCIe protocol. In one or more embodiments, the PCIe protocol may include a VDM protocol. For example, the PCIe protocol may encapsulate the VDM protocol. For instance, providing the access to the amount of data storage of the at least one of the nonvolatile memory medium to the first RAID controller via the PCIe protocol may include providing the access to the amount of data storage of the at least one of the nonvolatile memory medium to the first RAID controller via the VDM protocol”).
Disclosures by Olarig, Mukherjee and Sundaresan are analogous because they are in the same field of endeavor of memory access and control.
It would have been obvious to an ordinary person skilled in the art before the earliest effective filing date of the claimed invention to incorporate cross communications between RAID controllers in a RAID storage subsystem taught by Olarig/Mukherjee to include providing a file information from a first RAID controller to a second RAID controller using a PCIe protocol disclosed by Sundaresan. The motivation for providing a file information from a RAID controller to another RAID controller using a PCIe protocol by paragraph [0003] of Sundaresan is for fast rebuilding the first RAID devices using the file information provided by the second RAID controller.
Regarding claim 5, the combination of Olarig and Mukherjee do not disclose the current limitation of claim 5.
However, Sundaresan further discloses The primary ROC device of claim 3, wherein: the plurality of sets of configuration information comprises:
a first set of configuration information for the first RAID device, the first set of configuration information comprising characteristic information about a capability of the first RAID device (Sundaresan: [0086]: “providing the access to the amount of data storage of the at least one of the nonvolatile memory medium to the first RAID controller via the PCIe protocol may include providing the access to the amount of data storage of the at least one of the nonvolatile memory medium to the first RAID controller via the MCTP”); and
the primary ROC device comprises: logic to select the first RAID device based at least in part on the first set of configuration information ([0086]: “providing the access to the amount of data storage of the at least one of the nonvolatile memory medium to the first RAID controller via the PCIe protocol may include providing the access to the amount of data storage of the at least one of the nonvolatile memory medium to the first RAID controller via the VDM protocol…. providing the access to the amount of data storage of the at least one of the nonvolatile memory medium to the first RAID controller via the PCIe protocol may include providing the access to the amount of data storage of the at least one of the nonvolatile memory medium to the first RAID controller via the MCTP”).
Disclosures by Olarig, Mukherjee and Sundaresan are analogous because they are in the same field of endeavor of memory access and control.
It would have been obvious to an ordinary person skilled in the art before the earliest effective filing date of the claimed invention to incorporate cross communications between RAID controllers in a RAID storage subsystem taught by Olarig/Mukherjee to include providing a file information from a first RAID controller to a second RAID controller using a PCIe protocol disclosed by Sundaresan. The motivation for providing a file information from a RAID controller to another RAID controller using a PCIe protocol by paragraph [0003] of Sundaresan is for fast rebuilding the first RAID devices using the file information provided by the second RAID controller.
Regarding claim 6, Mukherjee combined further discloses The primary ROC device of claim 5, wherein: the logic to select the first RAID device to manage the first virtual disk further comprises:
logic to evaluate the plurality of sets of configuration information, including the first set of configuration information (Mukherjee: [0033]: “a system may include a RAID controller module (e.g., the RAID controller 102, 202 of FIG. 1-2) that may be configured to utilize of the set of physical disks forming any RAID implementation, a configuration module coupled to the RAID controller module (e.g., the RAID controller 102, 202 of FIG. 1-2) that obtains any of the firmware information of the RAID controller module (e.g., the RAID controller 102, 202 of FIG. 1-2) and system information of the particular set of physical disks forming the particular underlying RAID implementation that may be relevant for creating a configuration on a RAID controller module (e.g., the RAID controller 102, 202 of FIG. 1-2) of the particular underlying RAID implementation”); and
logic to determine, based at least in part on evaluation of the plurality of sets of configuration information, that the first RAID device would be an appropriate RAID device to manage the first virtual disk (Mukherjee: [0033]: “a management module (e.g., the management application 100 of FIGS. 1-2) coupled to the configuration module (e.g., the management application 100 of FIGS. 1-2) that may be able to configure the RAID controller module (e.g., the RAID controller 102, 202 of FIG. 1-2) of any set of physical disks forming any RAID implementation without prior knowledge of the firmware information of the RAID controller module (e.g., the RAID controller 102, 202 of FIG. 1-2) and system information of the any set of physical disks forming any of the RAID implementation through obtaining the firmware information and system information via the configuration module during configuration. The configuration module may also facilitates a decision making process of the management module (e.g., the management application 100 of FIGS. 1-2) based on any of the firmware information of the RAID controller module (e.g., the RAID controller 102, 202 of FIG. 1-2)”).
Disclosures by Olarig, Mukherjee and Sundaresan are analogous because they are in the same field of endeavor of memory access and control.
It would have been obvious to an ordinary person skilled in the art before the earliest effective filing date of the claimed invention to incorporate cross communications between RAID controllers in a RAID storage subsystem taught by Olarig/Sundaresan to include a configuration of a RAID controller of any set of physical disks without prior knowledge of firmware information of the RAID controller disclosed by Mukherjee. The motivation for including the configuration of a RAID controller of any set of physical disks by paragraph [0005] of Mukherjee is for providing a more flexible way to determine the configuration of a particular RAID implementation.
Regarding claim 7, Mukherjee combined further discloses The primary ROC device of claim 6, wherein the plurality of sets of configuration information further comprise information about workloads of each of the plurality of RAID devices (Mukherjee: [0042]: “The span count module 316 may determine a span count for a given RAID level taking into consideration physical configuration and firmware information. A number of physical disks which can be used in a current system configuration for one span may also be determined by the span count module”); and
the logic to logic to determine that the first RAID device would be an appropriate RAID device to manage the first virtual disk comprises: logic to determine, based at least in part on evaluation of the workload of the first RAID device and the workloads of one or more other additional RAID devices, that the first RAID device would be an appropriate RAID device to manage the first virtual disk (Mukherjee: [0033]: “a management module (e.g., the management application 100 of FIGS. 1-2) coupled to the configuration module (e.g., the management application 100 of FIGS. 1-2) that may be able to configure the RAID controller module (e.g., the RAID controller 102, 202 of FIG. 1-2) of any set of physical disks forming any RAID implementation without prior knowledge of the firmware information of the RAID controller module (e.g., the RAID controller 102, 202 of FIG. 1-2) and system information of the any set of physical disks forming any of the RAID implementation through obtaining the firmware information and system information via the configuration module during configuration. The configuration module may also facilitates a decision making process of the management module (e.g., the management application 100 of FIGS. 1-2) based on any of the firmware information of the RAID controller module (e.g., the RAID controller 102, 202 of FIG. 1-2)”).
Disclosures by Olarig, Mukherjee and Sundaresan are analogous because they are in the same field of endeavor of memory access and control.
It would have been obvious to an ordinary person skilled in the art before the earliest effective filing date of the claimed invention to incorporate cross communications between RAID controllers in a RAID storage subsystem taught by Olarig/Sundaresan to include a configuration of a RAID controller of any set of physical disks without prior knowledge of firmware information of the RAID controller disclosed by Mukherjee. The motivation for including the configuration of a RAID controller of any set of physical disks by paragraph [0005] of Mukherjee is for providing a more flexible way to determine the configuration of a particular RAID implementation.
Regarding claim 8, Mukherjee combined further discloses The primary ROC device of claim 6, wherein: the primary ROC device further comprises:
logic to receive a request from a host to create the first virtual disk, the request specifying that the virtual disk must possess a desired capability (Mukherjee: [0035]: “The RAID controller 202 A-N may communicate with the set of physical disks 204A-N, 206A-N, 208A-N through the bus (e.g., IDE, SCSI, SATA, SAS, and/or fiber channel, etc.) to manage each of the set of physical disks 104A, 104B, 104N in the RAID implementation and/or to present the set of physical disks 204A-N, 206A-N, 208A-N as logical units”); and
logic to instruct the first RAID device to create the first virtual disk (Mukherjee: [0002]: “The RAID system may combine multiple physical disks into a single logical unit”); and
the logic to determine that the first RAID device would be an appropriate RAID device to manage the first virtual disk comprises: logic to determine, at least in part on the first set of characteristic information, that the first RAID device is capable of managing a virtual disk with the desired capability (Mukherjee: [0033]: “a management module (e.g., the management application 100 of FIGS. 1-2) coupled to the configuration module (e.g., the management application 100 of FIGS. 1-2) that may be able to configure the RAID controller module (e.g., the RAID controller 102, 202 of FIG. 1-2) of any set of physical disks forming any RAID implementation without prior knowledge of the firmware information of the RAID controller module (e.g., the RAID controller 102, 202 of FIG. 1-2) and system information of the any set of physical disks forming any of the RAID implementation through obtaining the firmware information and system information via the configuration module during configuration. The configuration module may also facilitates a decision making process of the management module (e.g., the management application 100 of FIGS. 1-2) based on any of the firmware information of the RAID controller module (e.g., the RAID controller 102, 202 of FIG. 1-2)”).
Disclosures by Olarig, Mukherjee and Sundaresan are analogous because they are in the same field of endeavor of memory access and control.
It would have been obvious to an ordinary person skilled in the art before the earliest effective filing date of the claimed invention to incorporate cross communications between RAID controllers in a RAID storage subsystem taught by Olarig/Sundaresan to include a configuration of a RAID controller of any set of physical disks without prior knowledge of firmware information of the RAID controller disclosed by Mukherjee. The motivation for including the configuration of a RAID controller of any set of physical disks by paragraph [0005] of Mukherjee is for providing a more flexible way to determine the configuration of a particular RAID implementation.
Regarding claim 10, Olarig combined further discloses The primary ROC device of claim 5, wherein:
the first RAID device is a second ROC device (Olarig: [0046]: “the second RoC and PCIe switch combination may also expose a similar setup to the host”);
the primary ROC device further comprises ([0051]: “the other RoC controller is connected to the first RoC controller. The first RoC controller may expose one or more virtual NVMe SSDs to the host”):
logic to identify one or more input-output controller (IOC) devices in communication with the first and second physical disks ([0051]: “commands are sent by the host to the SSDs exposed by the first RoC controller”); and
the logic to instruct the first RAID device to create a virtual disk comprises: logic to instruct the first RAID device to create a virtual disk by communicating with the one or more IOC devices ([0051]: “The first RoC controller may expose one or more virtual NVMe SSDs to the host”).
Regarding claim 11, Olarig combined further discloses The primary ROC device of claim 10, wherein the primary ROC device further comprises:
logic to receive confirmation from the first RAID device that the virtual disk has been created (Olarig: [0052]: “The first RoC controller then reads the data for LBAs 0 and 2 from the first two SSDs on its PCIe switch, while the second RoC controller reads the data from LBAs 1 and 3 from the first two SSDs on its PCIe switch. The second RoC controller may then report it has completed its operations to the first RoC controller, which may then report the transaction as complete to the host”); and
logic to confirm to the host that the first virtual disk has been created, based at least in part on receiving the confirmation from the first RAID device ([0052]: “The second RoC controller may then report it has completed its operations to the first RoC controller, which may then report the transaction as complete to the host”).
Regarding claim 15, Olarig combined further discloses The primary ROC device of claim 5, wherein each of the plurality of sets of configuration information comprises a set of characteristic information, each set of characteristic information comprising: a board type (Olarig: Fig.3 : switch board); an IO queue depth ([0046]: “The RoC manages the hardware I/O path through the PCIe switch(es)”); a cache size ([0015]: “cache 545 is smaller in capacity than the overall virtual storage device”); a maximum number of IO frames supported ([0051]: “the 2 RoC controllers communicate in a way that keeps their I/O distributed in a custom setup”; [0067: “the BIOS or operating system may program the memory-mapped and I/O port addresses into the device's BAR configuration register”); an identification of one or more supported physical drive types ([0064]: “Bus enumeration may be performed by attempting to read the vendor ID and device ID (VID/DID) register for each combination of bus number and device number at the device's function”); and an identification of one or more supported RAID levels ([0035]: “This virtual grouping may be applied to storage by creating RAID sub-groups that are exposed to the user groups for virtualized environments in one embodiment or alternatively used for RAID grouping such as RAID 10, RAID 50, RAID 60”).
Claims 9, 17 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Olarig in view of Mukherjee in view of Sundaresan and further in view of Bade et al (2019/0243725) hereinafter Bade.
Regarding claim 9, the combination of Olarig, Mukherjee and Sundaresan do not disclose the current limitations of claim 9.
However, Bade discloses The primary ROC device of claim 8, wherein: the desired capability comprises a write-back capability (Bade: [0023]: “the virtual machine is associated with an operating system virtual hard drive having a cache type of “write back”); and
the first set of characteristic information includes a cache size indicating that the first RAID device is capable of managing a write-back virtual disk ([0023]: “If the cache type of that virtual hard drive was changed to “write through” at S460, the recovery management server may change the cache type back to “write back.”).
Disclosures by Olarig, Mukherjee, Sundaresan and Bade are analogous because they are in the same field of endeavor of memory access and control.
It would have been obvious to an ordinary person skilled in the art before the earliest effective filing date of the claimed invention to incorporate cross communications between RAID controllers in a RAID storage subsystem taught by Olarig/Mukherjee/Sundaresan to create an Infrastructure-as-a-Service snapshot of data on the virtual hard drive disclosed by Bade. The motivation for creating an Infrastructure-as-a-Service snapshot of data on the virtual hard drive by paragraph [0003] of Bade is for protecting IaaS workloads in a public cloud environment while efficiently allowing information to be re-created at another datacenter when a failure occurs.
Regarding claim 17, the combination of Olarig and Mukherjee do not disclose the current limitations of claim 17.
However Bade discloses The primary ROC device of claim 16, wherein:
the event comprises a command to convert a first virtual disk from a write-through mode to a write-back mode (Bade: [0023]: “If the cache type of that virtual hard drive was changed to “write through” at S460, the recovery management server may change the cache type back to “write back.””);
Disclosures by Olarig, Mukherjee and Bade are analogous because they are in the same field of endeavor of memory access and control.
It would have been obvious to an ordinary person skilled in the art before the earliest effective filing date of the claimed invention to incorporate cross communications between RAID controllers in a RAID storage subsystem taught by Olarig/Mukherjee to create an Infrastructure-as-a-Service snapshot of data on the virtual hard drive disclosed by Bade. The motivation for creating an Infrastructure-as-a-Service snapshot of data on the virtual hard drive by paragraph [0003] of Bade is for protecting IaaS workloads in a public cloud environment while efficiently allowing information to be re-created at another datacenter when a failure occurs.
Bade does not explicitly disclose the totality of what Sundaresan discloses:
the primary ROC device further comprises: logic to determine, based at least in part on the plurality of sets of configuration information, that that the first RAID device managing the first virtual disk is not capable of managing the first virtual disk in write-back mode (Sundaresan: [0024]: “fault tolerance of a storage controller for a virtual drive may be based at least on a redundant array of independent disks (RAID) level. For example, if the storage controller (e.g., a RAID controller) does not have additional one or more physical drives available (e.g., one or more standby physical drives), if all available drives are used, or a number of drives are constrained due to hardware topology or controller topology, a physical drive from another RAID may be utilized. For instance, another storage controller associated with the other RAID may provide access to storage of the other RAID to the storage controller. As an example, the other storage controller may provide storage of the other RAID as a virtual drive to the storage controller”);
the logic to determine a prospective change to the workload distribution to restore workload equilibrium among the plurality of RAID devices comprises: logic to identify, at least in part on the plurality of sets of configuration information, a second RAID device that is capable of managing the first virtual disk in write-back mode ([0024]: “if the storage controller (e.g., a RAID controller) does not have additional one or more physical drives available (e.g., one or more standby physical drives), if all available drives are used, or a number of drives are constrained due to hardware topology or controller topology, a physical drive from another RAID may be utilized. For instance, another storage controller associated with the other RAID may provide access to storage of the other RAID to the storage controller”); and
the logic to move at least one virtual disk among the plurality of RAID devices to produce the change to the workload distribution comprises: logic to move the first virtual disk from the first RAID device to the second RAID device ([0064]: “RAID controller 140A may determine that a drive has failed or is predicted to fail. At 416, RAID controller 140A may request a first list of free drives and space from RAID controller 140B. For example, RAID controller 140B may receive a request for the first list of free drives and free storage space from RAID controller 140A”; [0065]: “RAID controller 140A may receive the first list of free drives and free storage space from RAID controller 140B. For example, RAID controller 140B may provide the first list of free drives and free storage space to RAID controller 140A”).
Disclosures by Olarig, Mukherjee, Bade and Sundaresan are analogous because they are in the same field of endeavor of memory access and control.
It would have been obvious to an ordinary person skilled in the art before the earliest effective filing date of the claimed invention to incorporate cross communications between RAID controllers in a RAID storage subsystem taught by Olarig/Mukherjee/Bade to include providing a file information from a first RAID controller to a second RAID controller using a PCIe protocol disclosed by Sundaresan. The motivation for providing a file information from a RAID controller to another RAID controller using a PCIe protocol by paragraph [0003] of Sundaresan is for fast rebuilding the first RAID devices using the file information provided by the second RAID controller.
Regarding claim 18, the combination of Olarig and Mukherjee do not disclose the current limitations of claim 17.
However, Sundaresan further discloses The primary ROC device of claim 17, wherein: the logic to identify a change to a workload distribution to restore workload equilibrium among the plurality of RAID devices further comprises: logic to determine that moving the first virtual disk from the first RAID device to the second RAID device will result in a workload imbalance between the first RAID device and the second RAID device (Sundaresan: [0067]: “RAID controller 140A may create a fault-tolerant RAID utilizing space and at least one drive associated with RAID controller 140N. For example, RAID controller 140A may provide a request for an allocation of storage space to RAID controller 140N. In one instance, RAID controller 140A may request a virtual drive from RAID controller 140N. In another instance, RAID controller 140A may request access of the at least one drive from RAID controller 140N. At 432, RAID controller 140N may allocate storage space via at least one drive”);
logic to determine, based at least in part on the plurality of sets of configuration information that the first RAID device is capable of managing the second virtual disk ([0077]: “the RAID controller may utilize the available storage space from the participating RAID controller to rebuild the RAID and store data. In one example, RAID controller 140A may utilize the available storage space from RAID controller 140B to rebuild the RAID and store data. In a second example, RAID controller 140A may utilize the available storage space from RAID controller 140C to rebuild the RAID and store data. In another example, RAID controller 140A may utilize the available storage space from RAID controller 140N to rebuild the RAID and store data”);
the logic to move at least one virtual disk among the plurality of RAID devices to produce the change to the workload distribution further comprises: logic to move the second virtual disk from the second RAID device to the first RAID device ([0067]: “RAID controller 140A may request a virtual drive from RAID controller 140N. In another instance, RAID controller 140A may request access of the at least one drive from RAID controller 140N. At 432, RAID controller 140N may allocate storage space via at least one drive”); and
Disclosures by Olarig, Mukherjee and Sundaresan are analogous because they are in the same field of endeavor of memory access and control.
It would have been obvious to an ordinary person skilled in the art before the earliest effective filing date of the claimed invention to incorporate cross communications between RAID controllers in a RAID storage subsystem taught by Olarig/Mukherjee to include providing a file information from a first RAID controller to a second RAID controller using a PCIe protocol disclosed by Sundaresan. The motivation for providing a file information from a RAID controller to another RAID controller using a PCIe protocol by paragraph [0003] of Sundaresan is for fast rebuilding the first RAID devices using the file information provided by the second RAID controller.
Sundaresan does not explicitly disclose the totality of what Bade discloses:
logic to determine a prospective change to the workload distribution to restore workload equilibrium among the plurality of RAID devices further comprises: logic to identify a second virtual disk managed by the second RAID device that operates in a write-through mode (Bade: [0021]: “If a cache type associated with that virtual hard drive is “write back” at S410, the recovery management platform may change the cache type to “write through.”).
Disclosures by Olarig, Mukherjee, Sundaresan and Bade are analogous because they are in the same field of endeavor of memory access and control.
It would have been obvious to an ordinary person skilled in the art before the earliest effective filing date of the claimed invention to incorporate cross communications between RAID controllers in a RAID storage subsystem taught by Olarig/Mukherjee/Sundaresan to create an Infrastructure-as-a-Service snapshot of data on the virtual hard drive disclosed by Bade. The motivation for creating an Infrastructure-as-a-Service snapshot of data on the virtual hard drive by paragraph [0003] of Bade is for protecting IaaS workloads in a public cloud environment while efficiently allowing information to be re-created at another datacenter when a failure occurs.
RELEVANT ART CITED BY THE EXAMINER
The following prior art made of record and not relied upon is cited to establish the level of skill in the applicant’s art and those arts considered reasonably pertinent to applicant’s disclosure. See MPEP 707.05(c).
The prior art made of record and not relied upon is considered pertinent to applicant’s disclosure. The reference include:
Belgaied et al (2020/0264954), which teaches a server system in which data are written concurrently to a non-volatile memory cache and a RAID on chip (ROC). The server 210 writes the data to a non-volatile cache or transactional memory 220 and issues a (concurrent or sequential) second write request to the ROC 230. The ROC 230 may break up the data into the individual stripe blocks and a parity information to be stored in the parity stripe block of the RAID array. The ROC writes the data to the RAID array and as soon as the data are hardened on the hard disk drives, the disk drives return an acknowledge signal to the ROC.
Contact Information
Any inquiry concerning this communication or earlier communications from the examiner should be directed to HAN V DOAN whose telephone number is (571)270-7250. The examiner can normally be reached Monday, Wednesday and Thursday from 10:45 AM to 4:45PM EST.
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, Arpan Savla can be reached at 571-272-1077. 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.
/HAN V DOAN/Examiner, Art Unit 2137
/Arpan P. Savla/Supervisory Patent Examiner, Art Unit 2137