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 PDF

Info

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
Application number
CN202280041955.4A
Other languages
Chinese (zh)
Inventor
D·谢卡尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US17/724,728 external-priority patent/US20230153037A1/en
Application filed by Microchip Technology Inc filed Critical Microchip Technology Inc
Priority claimed from PCT/US2022/028694 external-priority patent/WO2023091183A1/en
Publication of CN117480485A publication Critical patent/CN117480485A/en
Pending legal-status Critical Current

Links

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

System and method for a memory controller card with redundant boot storage
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.
CN202280041955.4A 2021-11-17 2022-05-11 System and method for a memory controller card with redundant boot storage Pending CN117480485A (en)

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)

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