CN117480485A - System and method for a memory controller card with redundant boot storage - Google Patents
System and method for a memory controller card with redundant boot storage Download PDFInfo
- Publication number
- CN117480485A CN117480485A CN202280041955.4A CN202280041955A CN117480485A CN 117480485 A CN117480485 A CN 117480485A CN 202280041955 A CN202280041955 A CN 202280041955A CN 117480485 A CN117480485 A CN 117480485A
- Authority
- CN
- China
- Prior art keywords
- storage
- data
- drives
- board
- controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 51
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000013500 data storage Methods 0.000 claims abstract description 21
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 claims description 4
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 3
- 230000008685 targeting Effects 0.000 claims description 3
- 239000007787 solid Substances 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Abstract
A memory controller and method for providing respective first and second solid state memory interfaces to control first and second flash memories; and a RAID controller coupled to the first and second solid state memory interfaces, the RAID controller presenting a single boot device to the CPU and synchronizing writes to the boot device to both the first and second solid state memories, the RAID controller providing a plurality of data storage ports to couple to at least three data storage drives, wherein the RAID controller presents a unified data device to the CPU.
Description
Priority
The present application claims priority from indian patent application No. 202111052758 filed on 11/17 of 2021, the contents of which are hereby incorporated herein in their entirety.
Technical Field
The present application relates to a drive controller in a computing system.
Background
Computer servers (also known as blade servers) provide limited physical space for data storage, but have stringent requirements for data storage.
Disclosure of Invention
In some examples, a storage controller card is provided with a first storage drive and a second storage drive, the first storage drive and the second storage drive being located on the storage controller card; and a storage processor in communication with each of the first and second on-board storage drives. The storage processor includes a RAID controller that presents a single boot device to the CPU, the single boot device including data stored as a mirrored set of storage drives on each of the first and second on-board storage drives, the RAID controller synchronizing writes to the boot device to both the first and second on-board storage drives such that the data on each of the first and second on-board storage drives is the same. In some examples, the memory controller card includes a plurality of data storage ports, each of the plurality of data storage ports being responsive to the memory processor. In certain examples, the storage controller card includes a plurality of data storage ports, each of the plurality of data storage ports being responsive to the RAID controller such that the RAID controller provides redundancy through the data storage port of one of RAID levels 0, 1, 10, 5, 50, 6, or 60. In some examples, in response to a read request addressed to the single boot device, the RAID controller reads data from only one of the first and second on-board storage drives and returns the read data. In some examples, the first and second on-board storage drives are each of m.2nvme, SD, SDHC, or SDXC memory cards. In some examples, the memory controller card is a PCIe xl6 expansion card. In some examples, the storage processor includes an encryption engine coupled to the RAID controller to encrypt data to be written to the first and second on-board storage drives and decrypt data read from either of the first and second on-board storage drives.
In some examples, a method is provided that includes providing a storage controller card having a storage processor, the storage processor including a RAID controller, a first on-board storage drive, and a second on-board storage drive. The method includes receiving, at the storage controller card, a command to write a data block targeting a logical address in a boot volume. The method includes writing a block of data to each of the first and second on-board storage drives. In some examples, the method includes encrypting the data block, wherein writing the data block to each of the first and second on-board storage drives refers to the encrypted data block. In some examples, the method includes receiving, at the storage controller, a command to read the data block targeted at the logical address within the boot volume, reading the encrypted data block from only one of the first and second on-board storage drives, decrypting the data block, and returning the data block.
In some examples, a server is provided that includes a Central Processing Unit (CPU); a boot read-only memory; and a storage controller card including first and second on-board storage drives and a storage processor including a RAID controller that presents to the CPU a single boot device including data stored as a mirrored set of storage drives on each of the first and second on-board storage drives, the RAID controller synchronizing writes to the boot device to both the first and second solid state memories such that the data on each of the first and second on-board storage drives is the same. In some examples, the memory controller card includes a plurality of data storage ports, each of the plurality of data storage ports being responsive to the memory processor. In certain examples, the storage controller card includes a plurality of data storage ports, each of the plurality of data storage ports being responsive to the RAID controller such that the RAID controller provides redundancy through the data storage port of one of RAID levels 0, 1, 10, 5, 50, 6, or 60. In some examples, in response to a read request from the CPU addressed to the single boot device, the RAID controller reads data from only one of the first and second on-board storage drives and returns the read data to the CPU. In some examples, the first and second on-board storage drives are each of m.2nvme, SD, SDHC, or SDXC memory cards. In some examples, the memory controller card is a PCIe xl6 expansion card. In some examples, the storage processor includes an encryption engine coupled to the RAID controller to encrypt data to be written to the first and second on-board storage drives and decrypt data read from either of the first and second on-board storage drives.
Drawings
Fig. 1 is an illustration of a server system according to an example of the present disclosure.
FIG. 2 is a diagram of a memory controller card with an on-board memory drive according to some examples of the present disclosure.
Fig. 3 is a flow chart of a method for expanding a card using a memory controller according to some examples of the present disclosure.
Detailed Description
Fig. 1 is an illustration of a server system according to an example of the present disclosure. The server 100 is a 1U form factor rack server. The server 100 includes a Printed Circuit Board (PCB) motherboard 101. Motherboard 101 includes a Central Processing Unit (CPU) 102, a Random Access Memory (RAM) slot 104, and a peripheral component interconnect express (PCI-e) slot 106. Memory controller card 108 is a PCI-e xl6 expansion card located in slot 106 and communicates with the CPU 102 and memory in RAM slot 104 via the PCI-e bus. The storage controller card 108 includes a first on-board storage drive 124a and a second on-board storage drive 124b. Memory controller card 108 includes a plurality of memory interface ports 110. Storage interface port 110 may support standard storage interface protocols such as SATA or SAS over a suitable cable 112. Storage interface port 110 may be a Universal Backplane Port (UBP). The server 100 may also include space for multiple drives 114a-114 d. In some examples, any of the drives 114a-114d may be a hard disk, a Solid State Drive (SSD), or a hybrid drive that incorporates both a hard disk and an SSD. Drives 114a and 114b are hot swappable in one example and can be removed and replaced while server 100 is running.
Server 100 needs to store operating system software and configuration options in a traditional file system. The server 100 is designed to maximize user data capacity within the limited capacity (e.g., physical space, power capacity, and thermal capacity) of the server enclosure. The drive 114 is preferably dedicated to data storage and need not contain storage for an operating system or application software. In one example, drives 114 are organized for redundant access of performance and/or reliability using RAID levels 0, 1, 10, 5, 50, 6, or 60. For example, RAID level 5 (or RAID level 6) redundancy requires at least three drives (four for RAID 6) clustered into data storage volumes. RAID 5/6 stripes data and one or two parity bits across multiple drives to form a RAID volume. In other words, in order to read data from a RAID 5/6 volume, at least three drives must be online and error free. RAID 5 volumes may survive a single drive failure, while RAID 6 volumes may survive two drive failures. Once a failed drive is replaced, the RAID controller must reconstruct the data on the replacement drive (or drives) and the reconstruction process can temporarily impact performance. RAID levels 5 and 6 provide fast read time, slow write time, and redundancy. In many scenarios, RAID 5/6 functionality is consistent with user workload (e.g., database servers or web servers). In contrast, RAID level 1 mirrors data between two drives that provide two identical images of the data. RAID level 1 provides balanced read/write performance.
In contrast, the system workload placed on the boot device is not well in line with the performance level of RAID 5/6, nor is it in line with the need to have multiple drives read from the volumes online and error free. When the server is first powered on (or restarted), the server's CPU accesses a dedicated memory called boot ROM 103, which stores software just enough to instruct the server's CPU to communicate with the boot device and to load a predetermined file (typically a secondary boot loader or operating system kernel) from the boot device. Preferably, the boot ROM does not contain complex driver software, such as a RAID controller driver. In addition to the secondary boot loader or kernel, the boot device typically stores operating system software, user programs, configuration data, swap space, and file system caches (collectively referred to as system data), which are preferably organized in a file system with high read and write capabilities. The boot device should have a high availability because the server cannot work without the boot device. The boot device is preferably encrypted to prevent unauthorized access to sensitive data such as login data, configuration data, and cache data. Encryption may also prevent attacks by some type of malicious actor.
FIG. 2 is a diagram of a storage controller card 108 with an on-board storage drive serving as a boot device according to some examples of the present disclosure. Memory controller card 108 is a printed circuit board configured as a PCLE card with card edge connector 128. Memory controller card 108 includes a memory processor 122, first and second on-board memory drives 124a and 124b, memory card connectors 126a and 126b, and memory port 110. The memory card connectors 126a, 126b provide respective electrical connections between the first and second on-board memory drives 124a, 124b and the memory processor 122, and thus the memory processor 122 communicates with each of the first and second on-board memory drives 124a, 124b. In some examples, the first and second on-board storage drives 124a, 124b are m.2nvme drives. In some examples, the first on-board storage drive 124a and the second on-board storage drive 124b are SD/SDHC/SDXC cards. The first and second on-board storage drives 124a, 124b may be flash drives that are compact and provide adequate storage with acceptable power and thermal performance. The storage processor 122 includes a Redundant Array of Inexpensive Disks (RAID) controller 130. The RAID controller 130 synchronizes the writing (and erasing) of the first and second on-board storage drives 124a, 124b to keep both synchronized as a single boot volume. RAID controller 130 may also provide RAID services for data drives 114 connected to storage interface ports 110. In some examples, RAID controller 130 may support 1024 drives in one or more drive enclosures housed in the enclosure of server 100 or external to server 100. RAID controller 130 may also identify any hardware or data errors and record or report the hardware or data errors to the operating system. In the event of an error, RAID controller 130 may interrupt the synchronization of first on-board storage drive 124a and second on-board storage drive 124b and treat the known good on-board storage drive as a normal device until the device that generated the error is replaced or repaired. The storage processor 122 optionally includes an encryption engine 132. The encryption engine 132 encrypts data written to the first and second on-board storage drives 124a and 124b and decrypts data read from the first and second on-board storage drives 124a and 124b. In some examples, encryption engine 132 may interact with a trusted platform module on motherboard 101 to obtain encryption credentials during startup.
The storage controller card 108 may include one or more heat sinks (not shown) to manage the heat generated by the RAID controller 130 and the first and second on-board storage drives 124a, 124b. In some examples, the heat sink may cover a majority of the memory controller card 108. As described above, the storage controller card 108 acts as a boot device for the CPU 102 and presents a single storage device to the CPU 102 by means of the RAID controller 130, i.e., the CPU 102 does not address the first and second on-board storage drives 124a, 124b as separate drives. Instead, the CPU 102 treats these drives as a single drive having a capacity equal to the capacity of the smaller of the first and second on-board storage drives 124a, 124b. The capacities of the first and second on-board storage drives 124a, 124b may not necessarily be different, and they may have the same capacity.
FIG. 3 is a flow chart of a method for using a memory controller card with an on-board memory drive according to some examples of the present disclosure. The method 300 begins at block 302, where the memory controller card 108 receives a read command that may come from the CPU 102 to read a block of data from a logical address of a single boot device. At block 304, RAID controller 130 of storage controller card 108 reads the data block from one of the first and second on-board storage drives. In one example, the storage controller card 108 reads the data blocks from only one of the first and second on-board storage drives. At block 306 (optional), the read data block is decrypted by encryption engine 132. At block 308, the read data block (optionally decrypted) is returned to the CPU.
At block 310, the memory controller card 108 receives a write comment addressed to the logical address of the single boot device, a command to write a block of data. At block 312 (optional), storage processor 122 encrypts the data block using optional encryption engine 132 to prevent snooping and to centralize encryption key management within storage controller card 108. At block 314, the RAID controller 130 writes the optionally encrypted data block to the first on-board storage drive 124a. At block 316, RAID controller 130 writes the optionally encrypted data blocks to a second on-board storage drive 124b to ensure that the data in both on-board storage drives 124a and 124b is the same. Thus, a single boot device includes data stored on each of the first and second on-board storage drives as a mirrored collection of storage drives, wherein the RAID controller 130 synchronizes writing to the boot device to both the first and second on-board storage drives such that the data on each of the first and second on-board storage drives is the same.
Although example embodiments have been described above, other variations and embodiments can be made by the present disclosure without departing from the spirit and scope of these embodiments.
Claims (12)
1. A memory controller card, the memory controller card comprising:
a first storage drive and a second storage drive, the first storage drive and the second storage drive being located on the storage controller card;
a storage processor in communication with each of the first and second on-board storage drives, the storage processor comprising a RAID controller that presents to the CPU a single boot device comprising data stored on each of the first and second on-board storage drives as a mirrored set of storage drives, the RAID controller synchronizing writing to the boot device to both the first and second on-board storage drives such that the data on each of the first and second on-board storage drives is the same.
2. The memory controller card of claim 1, comprising a plurality of data storage ports, each of the plurality of data storage ports being responsive to the memory processor.
3. The storage controller card of claim 1, comprising a plurality of data storage ports, each of the plurality of data storage ports being responsive to the RAID controller such that the RAID controller provides redundancy through a data storage port of one of RAID levels 0, 1, 10, 5, 50, 6, or 60.
4. A storage controller card as claimed in any one of claims 1 to 3, wherein in response to a read request addressed to the single boot device, the RAID controller reads data from only one of the first and second on-board storage drives and returns the read data.
5. The memory controller card of any one of claims 1-4, wherein the first and second on-board memory drives are each of m.2nvme, SD, SDHC, or SDXC memory cards.
6. The memory controller card of any of claims 1-5, wherein the memory controller card is a PCIe xl6 expansion card.
7. The storage controller card of any of claims 1-6, wherein the storage processor comprises an encryption engine coupled to the RAID controller to encrypt data to be written to the first and second on-board storage drives and decrypt data read from either of the first and second on-board storage drives.
8. A server, the server comprising:
a Central Processing Unit (CPU);
a boot read-only memory; and
the memory controller card of any of claims 1-7.
9. A method, the method comprising:
providing a storage controller card having a storage processor, a first on-board storage drive, and a second on-board storage drive, the storage processor comprising a RAID controller;
a command to write a block of data targeting a logical address in a boot volume is received at the storage controller card,
the data block is written to each of the first and second on-board storage drives.
10. The method of claim 8, comprising encrypting the data block, wherein writing the data block to each of the first and second on-board storage drives refers to the encrypted data block.
11. The method of claim 9, the method comprising
A command is received at the storage controller to read the data block targeting the logical address within the boot volume,
the encrypted data blocks are read from only one of the first and second on-board storage drives,
decrypting the block of data
And returning the data block.
12. The method of claim 8, further comprising the operation of any of the memory controller cards of claims 1-7.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN202111052758 | 2021-11-17 | ||
US17/724,728 | 2022-04-20 | ||
US17/724,728 US20230153037A1 (en) | 2021-11-17 | 2022-04-20 | System and Method for a Storage Controller Card with Redundant Boot Storage |
PCT/US2022/028694 WO2023091183A1 (en) | 2021-11-17 | 2022-05-11 | System and method for a storage controller card with redundant boot storage |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117480485A true CN117480485A (en) | 2024-01-30 |
Family
ID=89627915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280041955.4A Pending CN117480485A (en) | 2021-11-17 | 2022-05-11 | System and method for a memory controller card with redundant boot storage |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117480485A (en) |
-
2022
- 2022-05-11 CN CN202280041955.4A patent/CN117480485A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3458931B1 (en) | Independent scaling of compute resources and storage resources in a storage system | |
CN102081561B (en) | Mirroring data between redundant storage controllers of a storage system | |
CN107077438B (en) | Communicating over portions of a communication medium | |
US10635609B2 (en) | Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD | |
US11706895B2 (en) | Independent scaling of compute resources and storage resources in a storage system | |
US20060112267A1 (en) | Trusted platform storage controller | |
US10852352B2 (en) | System and method to secure FPGA card debug ports | |
US20170220506A1 (en) | Modular Software Defined Storage Technology | |
JP5509176B2 (en) | Computer system and module takeover method in computer system | |
US10606784B1 (en) | Software filtering of redundant sideband device management bus communications | |
US20200137079A1 (en) | System and method for detecting rogue devices on a device management bus | |
US7363531B2 (en) | Data synchronization for system controllers | |
US20230110633A1 (en) | Methods and apparatus for offloading encryption | |
CN112868013A (en) | System and method for restoring field programmable gate array firmware via sideband interface | |
US20230153037A1 (en) | System and Method for a Storage Controller Card with Redundant Boot Storage | |
CN117480485A (en) | System and method for a memory controller card with redundant boot storage | |
WO2023091183A1 (en) | System and method for a storage controller card with redundant boot storage | |
CN113127896B (en) | Data processing method and device based on independent encryption chip | |
US20220067161A1 (en) | Configuring trusted remote management communications using uefi | |
Nett et al. | IBM POWER9 systems designed for commercial, cognitive, and cloud | |
US20200042484A1 (en) | Integrated circuit with hot plug control | |
US11972119B2 (en) | Storage system and cryptographic operation method | |
US20230384952A1 (en) | Storage system and cryptographic operation method | |
US20240095196A1 (en) | Method for supporting erasure code data protection with embedded pcie switch inside fpga+ssd | |
KR20230070158A (en) | Storage device configured to obtain data of external device for debugging |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |