Storage server and its operating method and data center including the same

By generating multiple refresh write commands and recording them in the log file, combined with the replication commands from the external storage server, context switching is reduced, thus solving the CPU latency problem caused by write operations in a distributed environment and improving the performance and efficiency of the storage server.

CN114443755BActive Publication Date: 2026-05-19SAMSUNG ELECTRONICS CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SAMSUNG ELECTRONICS CO LTD
Filing Date
2021-10-29
Publication Date
2026-05-19

AI Technical Summary

Technical Problem

In a distributed environment, write operations in block services require context switching, which leads to CPU latency and inefficiency, impacting the performance of storage servers.

Method used

By generating multiple refresh write commands and recording them in the log file, context switching is reduced, and the operation completion signal of the copy command is used by the external storage server to achieve multi-offset write operations.

Benefits of technology

It improves CPU efficiency, reduces write operation latency, and enhances the I/O performance and efficiency of the storage server.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114443755B_ABST
    Figure CN114443755B_ABST
Patent Text Reader

Abstract

A storage server and a method of driving the same are provided. The storage server includes a processor configured to generate a plurality of flush write commands based on a write command of first data provided by a host, provide a replication command corresponding to the write command to an external storage server, and receive an operation completion signal of the replication command from the external storage server, a memory storing a program of a log file into which the plurality of flush write commands are recorded, and a storage device configured to receive a multi-offset write command including one or more flush write commands recorded into the log file and perform a flush operation on the multi-offset write command. The processor is further configured to provide the multi-offset write command to the storage device based on the log file after receiving the operation completion signal.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to related applications

[0002] This application is based on and claims priority to Korean Patent Application No. 10-2020-0145767, filed on November 4, 2020, with the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference in its entirety. Technical Field

[0003] One or more embodiments of this disclosure relate to storage servers, methods of driving storage servers, and data centers including storage servers. Background Technology

[0004] Block services are used in distributed environments such as virtual machines and data centers. However, since block services are provided as local block services, strong consistency of characteristics among multiple local blocks needs to be achieved by quickly reading the latest written data during reads. High consistency between applications stored in a database requires high reliability, and consistent characteristics require more write data reads than inconsistent characteristics.

[0005] Specifically, because writing in a distributed environment requires a server / node replication process, context switching is necessary during the write operation. This increases the latency and inefficiency of processors such as the central processing unit (CPU) and reduces the performance of the entire distributed environment. Summary of the Invention

[0006] One or more embodiments of this disclosure provide a storage server in which context switching is reduced to improve CPU efficiency.

[0007] One or more embodiments of this disclosure provide a storage server that performs operations associated with multi-offset write commands that request multiple write operations in a single operation.

[0008] However, certain aspects, features, and advantages of this disclosure are not limited to one or more embodiments set forth herein. Other aspects, features, and advantages of this disclosure will become more apparent to those skilled in the art to which this disclosure pertains from the following description.

[0009] According to an embodiment, a storage server is provided, comprising: a processor configured to: generate a plurality of refresh write commands based on a write command for first data provided by a host, provide a copy command corresponding to the write command to an external storage server, and receive an operation completion signal for the copy command from the external storage server; a memory storing a program of a log file, wherein the plurality of refresh write commands are recorded in the log file; and a storage device configured to receive a multi-offset write command and perform a refresh operation on the multi-offset write command, wherein the multi-offset write command includes at least one of the plurality of refresh write commands recorded in the log file, wherein the processor is further configured to: provide the multi-offset write command to the storage device based on the log file after receiving the operation completion signal.

[0010] According to an embodiment, a method for driving a storage server is provided. The method includes: generating a plurality of refresh write commands based on a write command for first data provided by a host; recording the plurality of refresh write commands in a log file; providing a copy command corresponding to the write command to an external storage server; receiving an operation completion signal for the copy command from the external storage server; and providing a multi-offset write command to a storage device including at least one of the plurality of refresh write commands.

[0011] According to an embodiment, a data center is provided, comprising: an application server providing write commands for first data; a first storage server and a second storage server. The first storage server includes: a first processor configured to: generate a plurality of first refresh write commands based on write commands from the application server, and provide a copy command corresponding to the write commands to the second storage server; a first memory storing a first program for a first log file, wherein the plurality of first refresh write commands are recorded in the first log file; and a first storage device configured to: receive a first multi-offset write command including at least one of the plurality of first refresh write commands, and perform a first refresh operation on the first multi-offset write commands. The second storage server includes: a second processor configured to: generate a plurality of second refresh write commands based on the copy commands provided by the first storage server, and provide an operation completion signal to the first storage server; a second memory storing a second program for a second log file, wherein the plurality of second refresh write commands are recorded in the second log file; and a second storage device configured to receive a second multi-offset write command for at least one of the plurality of second refresh write commands, and perform a second refresh operation based on the second multi-offset write commands. The first processor is further configured to: after receiving an operation completion signal, provide a first multi-offset write command to the first storage device based on the first log file, and the second processor is further configured to: after receiving an operation completion signal, provide a second multi-offset write command to the second storage device based on the second log file. Attached Figure Description

[0012] Certain aspects, features, and advantages of this disclosure will become clearer from the following description taken in conjunction with the accompanying drawings, in which:

[0013] Figure 1 This is a block diagram illustrating a data center according to an embodiment;

[0014] Figure 2 This is a block diagram illustrating a storage service server according to an embodiment;

[0015] Figure 3 This is a flowchart illustrating the operation of a storage server according to an embodiment;

[0016] Figure 4 This is a ladder diagram illustrating the operation of a data center according to an example embodiment;

[0017] Figures 5 to 13 This is a diagram illustrating the operation of a storage server according to various embodiments;

[0018] Figure 14 This is a block diagram illustrating a storage service server in a data center according to an embodiment;

[0019] Figure 15 It is used for explanation Figure 14 A block diagram illustrating the operation of a storage server in a data center; and

[0020] Figures 16 to 18 This is a diagram used to illustrate the effect of a data center according to one or more embodiments. Detailed Implementation

[0021] In the following description, embodiments of the present disclosure will be illustrated with reference to the accompanying drawings. Figures 1 to 18 In the description, the same reference numerals are used for substantially the same components, and for the sake of brevity, repeated descriptions of components may be omitted. Furthermore, throughout this disclosure, similar reference numerals are used for similar components.

[0022] As used herein, expressions such as "at least one of..." modify the entire list of elements after the list of elements, rather than modifying individual elements within the list. For example, the expression "at least one of a, b, and c" should be understood as including only a, only b, only c, both a and b, both a and c, both b and c, or all of a, b, and c. In this paper, when the term "identical" is used to compare dimensions of two or more elements, the term can encompass dimensions of "substantially identical".

[0023] It should be understood that although the terms "first," "second," "third," "fourth," etc., may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. Therefore, without departing from the teachings of the inventive concept, the first element discussed below may be referred to as the second element.

[0024] Figure 1 This is a block diagram illustrating a data center according to an embodiment.

[0025] Reference Figure 1 Data center 10 is a facility that collects various types of data and provides services, and may also be referred to as a data storage center. Data center 10 can be a system for search engine and database operations, a computing system used by various companies such as banks or government agencies, and a distributed storage system. Data center 10 may include application servers 100 to 100n and storage servers 200 to 200m. The number of application servers 100 to 100n and the number of storage servers 200 to 200m can be varied depending on the embodiment, and the number of application servers 100 to 100n and the number of storage servers 200 to 200m can differ from each other. Multiple storage servers 200 to 200m may be included in a single cluster C and may be driven by each of the application servers 100 to 100n.

[0026] Application server 100 may include one or more processors 110 and one or more memories 120. Storage server 200 may include one or more processors 210 and one or more memories 220. Taking storage server 200 as an example, processor 210 can control the overall operation of storage server 200. The specific operation of processor 210 according to one or more embodiments will be described below.

[0027] Processor 210 can access memory 220 to execute commands and / or data loaded into memory 220. Memory 220 may be DDR SDRAM (Dual Data Rate Synchronous DRAM), HBM (High Bandwidth Memory), HMC (Hybrid Memory Cube), DIMM (Dual In-line Memory Module), Optane DIMM, or NVM DIMM (Non-Volatile DIMM). Specific operation of memory 220 according to one or more embodiments will be described below.

[0028] The number of processors 210 and memory 220 included in storage server 200 can be varied. In embodiments, processors 210 and memory 220 can provide processor-memory pairs. In embodiments, the number of processors 210 and memory 220 can be different from each other. Processor 210 can include a single-core processor or a multi-core processor. The description of storage server 200 can also be similarly applied to application server 100. Depending on the embodiment, application server 100 may not include storage device 150. Storage server 200 can include at least one or more storage devices 250. The number of storage devices 250 included in storage server 200 can be varied depending on the embodiment.

[0029] Application servers 100 to 100n and storage servers 200 to 200m can communicate with each other via network 300. Network 300 can be implemented using FC (Fibre Channel), Ethernet, etc. In this case, FC is a medium used for relatively high-speed data transmission and can use optical switches that provide high performance / high availability. Depending on the access type of network 300, storage servers 200 to 200m can be provided as file storage, block storage, or object storage.

[0030] In this embodiment, network 300 can be a storage-only network such as a SAN (Storage Area Network). For example, the SAN can be an FC-SAN, which uses an FC network and is implemented according to the FCP (FC protocol). In another example, the SAN can be an IP-SAN, which uses a TCP / IP network and is implemented according to the iSCSI (Internet Small Computer System Interface) (or SCSI over TCP / IP or Internet SCSI) protocol. In yet another example, network 300 can be a general-purpose network such as a TCP / IP network. For example, network 300 can be implemented according to protocols such as FCoE (Fibre Channel over Ethernet), NAS (Network Attached Storage), and NVMe-oF (NVMe over Fabrics).

[0031] The following text will describe application server 100 and storage server 200. The description of application server 100 can also be applied to another application server 100n, and the description of storage server 200 can also be applied to another storage server 200m.

[0032] Application server 100 can store data requested by users or clients in one of storage servers 200 to 200m via network 300. Furthermore, application server 100 can retrieve data requested by users or clients from one of storage servers 200 to 200m via network 300. For example, application server 100 can be implemented as a web server, a DBMS (Database Management System), etc.

[0033] Application server 100 can operate as a host for storage servers 200 to 200m, etc. Application server 100 can access the memory 120n or storage device 150n included in another application server 100n via network 300, and can also access the memory 220 to 220m or storage device 250 to 250m included in storage servers 200 to 200m via network 300. Therefore, application server 100 can perform various operations on the data stored in application servers 100 to 100n and / or storage servers 200 to 200m. For example, application server 100 can execute commands for moving or copying data between application servers 100 to 100n and / or storage servers 200 to 200m. At this point, data can be moved from storage devices 250 to 250m of storage servers 220 to 220m via storage devices 200 to 200m of storage servers 220 to 220m, or directly to storage devices 120 to 120n of application servers 100 to 100n. Data moved via network 300 can be encrypted data for security and privacy purposes.

[0034] Taking storage server 200 as an example, interface 254 can provide physical connections between processor 210 and controller 251, as well as physical connections between NIC 240 and controller 251. For example, interface 254 can be implemented as DAS (Direct Attached Storage) type, where storage device 250 is directly connected via a dedicated cable. Furthermore, interface 254 can be implemented as various interface types, such as ATA (Advanced Technology Attachment), SATA (Serial ATA), e-SATA (External SATA), SCSI (Small Computer Small Interface), SAS (Serial Attached SCSI), PCI (Peripheral Component Interconnect), PCIe (Fast PCI), NVMe (Fast NVM), IEEE 1394, USB (Universal Serial Bus), SD (Secure Digital) card, MMC (Multimedia Card), eMMC (Embedded Multimedia Card), UFS (Universal Flash Memory), eUFS (Embedded Universal Flash Memory), and CF (Compact Flash Memory) card interfaces.

[0035] Storage server 200 may also include switch 230 and network interface controller (NIC) 240. Depending on the control of processor 210, switch 230 can selectively connect processor 210 and storage device 250, or selectively connect NIC 240 and storage device 250.

[0036] In this embodiment, NIC 240 may include a network interface card, a network adapter, etc. NIC 240 can connect to network 300 via a wired interface, wireless interface, Bluetooth interface, optical interface, etc. NIC 240 may include internal memory, a digital signal processor (DSP), a host bus interface, etc., and can connect to processor 210 and / or switch 230, etc., via the host bus interface. The host bus interface may also be implemented as one of the examples of interface 254 described above. In this embodiment, NIC 240 may also be integrated with at least one of processor 210, switch 230, and storage device 250.

[0037] In storage servers 200 to 200m and / or application servers 100 to 100n, processors 110 to 110n and / or processors 210 to 210m can send commands to storage devices 150 to 150n and 250 to 250m, respectively. Furthermore, processors 110 to 110n and / or processors 210 to 210m can send commands to memories 120 to 120n and 220 to 220m, respectively, to program or read data. However, one or more embodiments are not limited thereto, and processors 110 to 110n can send commands to storage devices 250 to 250m, and processors 210 to 210m can send commands to storage devices 150 to 150n. Similarly, processors 110 to 110n can send commands to memories 220 to 220m, and processors 210 to 210m can send commands to memories 120 to 120n. Furthermore, the data can be data with errors corrected by an ECC (Error Correction Code) engine. The data can undergo Data Bus Inversion (DBI) or Data Masking (DM) processing and may include CRC (Cyclic Redundancy Check) information. For security and privacy, the data can be encrypted.

[0038] Storage devices 150 to 150m and 250 to 250m can send control signals and command / address signals to NAND flash memory devices 252 to 252m in response to read commands received from one or more processors. Therefore, when reading data from NAND flash memory devices 252 to 252m, the RE (read enable) signal can be input as a data output control signal and used to output data to the DQ bus. The RE signal can be used to generate the DQS (data strobe). Depending on the rising or falling edge of the WE (write enable) signal, command and address signals can be latched into the page buffer.

[0039] Controller 251 typically controls the operation of storage device 250. In embodiments, controller 251 may include SRAM (Static Random Access Memory). Controller 251 may write data to NAND flash memory device 252 in response to a write command, or may read data from NAND flash memory device 252 in response to a read command. For example, write and / or read commands may be provided from processor 210 in storage server 200, processor 210m in another storage server 200m, or processors 110 to 110n in application servers 100 to 100n. Dynamic Random Access Memory (DRAM) 253 may temporarily store (buffer) data to be written to or read from NAND flash memory device 252. Furthermore, DRAM 253 may also store metadata. Here, metadata is data used to manage user data or NAND flash memory 252.

[0040] Storage device 250 may include a security element (SE) for security and privacy. Storage device 250 can perform database functions for stored data in data center 10a.

[0041] Figure 2 This is a block diagram illustrating storage servers 200p and 200s according to an embodiment.

[0042] According to an embodiment, data center 10a includes host application server 100a, first storage server 200p, and second storage server 200s.

[0043] Host application server 100a can store data based on user or client requests via network (300, see below). Figure 1 The first storage server 200p provides commands (CMD) and data. The host application server 100a can correspond to... Figure 1 At least one of application servers 100 to 100n.

[0044] The first storage server 200p may include a first processor 210p, a first non-volatile dual in-line memory module (NVDIMM) 220p, and a first storage device 250p. The second storage server 200s may include a first processor 210s, a second NVDIMM 220s, and a second storage device 250s.

[0045] In some embodiments, the first storage server 200p and the second storage server 200s correspond to Figure 1 Storage servers 200 to 200m. The first processor 210p and the second processor 210s can correspond to... Figure 1The processor 210 to 210m, the first NVDIMM 220p and the second NVDIMM 220s can correspond to Figure 1 The memory 220 to 220m, and the first storage device 250p and the second storage device 250s can correspond to Figure 1 The storage devices are 250 to 250m. The first storage server 200p and the second storage server 200s may include the same configuration. Furthermore, from the perspective of the host application server 100a, the second storage server 200s may be a storage server following the first storage server 200p. However, one or more embodiments are not limited thereto.

[0046] The first processor 210p receives data and a command (CMD) associated with the data from the host application server 100a. The first processor 210p can generate additional commands (CMD) in response to the commands (CMD) and provide these additional commands (CMD) to an external device, such as the second storage server 200s. The first processor 210p can also generate a return signal and provide the return signal to the host application server 100a.

[0047] The first NVDIMM 220p may include a first buffer 221p and a first non-volatile memory (NVM) device 222p. The first non-volatile memory device 222p may store and load a first log file 223p and a first firmware 224p to execute programs on the first log file 223p and the first firmware 224p. The first non-volatile memory device 222p may be an EEPROM (Electrically Erasable Programmable Read-Only Memory), flash memory, MRAM (Magnetic RAM), spin-transfer torque MRAM (Spin-Transfer Torque MRAM), FeRAM (Ferroelectric RAM), PRAM (Phase-Change RAM), or resistive RAM (RRAM).

[0048] The first buffer 221p can be used as a redrive buffer and redrive signals / commands input from the first processor 210p to provide redrive signals / commands to the first non-volatile storage device 222p in the first NVDIMM 2220p.

[0049] Commands for the first storage device 250p can be recorded in the first log file 223p. The first firmware 224p allows the first processor 210p to provide multi-offset write commands to the storage device 250p based on the first log file 223p. Furthermore, the first firmware 224p is software that provides operation commands from the first processor 210p to the first storage device 250p.

[0050] The first storage device 250p can receive commands from the first processor 210p and perform read / write operations according to the provided commands. The type of data programmed in the first storage device 250p can be data that can be programmed by the storage device, such as metadata and data allocators, as well as data input from external sources, and the examples of data types do not limit the technical ideas of this disclosure.

[0051] Figure 3 This is a flowchart illustrating the operation of a storage server according to an embodiment. Figure 4 This is a ladder diagram illustrating the operation of a data center according to an embodiment. Figures 5 to 13 This is a diagram used to illustrate the operation of a storage server according to various embodiments.

[0052] Reference Figures 3 to 5 The first processor 210p of the first storage device 200p receives a write command (WCMD) for the first data (data A) from the host application server 100a (S110).

[0053] The first processor 210p receives the write command (WCMD) for the first data (data A) and records the first to third refresh write commands (first refresh WCMD to third refresh WCMD) of the write command (WCMD) into the first log file 223p. Figure 3 (S120 in the middle).

[0054] Further reference Figure 6 The first refresh write command (first refresh WCMD) is the write command for the first data (data A). The first data (data A) is the data that the host requests to be written to the first data layout (DL_a).

[0055] The second refresh write command (second refresh WCMD) is a write command for the first allocator (allocator A) of the first data (data A). The third refresh write command (third refresh WCMD) is a write command for the first metadata (metadata A) of the first data (data A). The first allocator (allocator A) is the data used to implement resource allocation of the first data (data A). The first metadata (metadata A) is the data used to manage the first data (data A).

[0056] The first processor 210p records the first refresh write command (first refresh WCMD) in the first log file 223p. Figure 4 In S121, the second refresh write command (second refresh WCMD) is recorded in the first log file 223p. Figure 4 In S122), and record the third refresh write command (third refresh WCMD) in the first log file 223p. Figure 4(S123 in the example). The order of the log operations described above is an example used to illustrate the operations of one or more first storage servers. However, one or more embodiments are not limited to the above order, and the order of log operations can vary depending on various implementations of the storage server.

[0057] In addition, refer to Figure 7 Log operations in the first log file 223p ( Figure 3 S120 in the middle) completed ( Figure 3 After S130, the first processor 210p provides the copy command (RepCMD) of the write command (WCMD) to the second storage server 200s.

[0058] The second processor 210s receives the copy command (RepCMD) of the first data (data A) and records the first to third refresh write commands (first refresh WCMD to third refresh WCMD) of the copy command (RepCMD) into the second log file 223s (S140). Depending on the embodiment, the first to third refresh write commands (first refresh WCMD to third refresh WCMD) may be the same as the first to third refresh write commands (first refresh WCMD to third refresh WCMD) recorded in the first log file 223p.

[0059] The second processor 210s records the first refresh write command (first refresh WCMD) into the second log file 223s. Figure 4 In S141, the second refresh write command (second refresh WCMD) is recorded in the second log file 223s. Figure 4 In S142), and record the third refresh write command (third refresh WCMD) in the second log file 223s. Figure 4 (as described in S143). The order of the log operations described above is an example used to illustrate the operations of one or more second storage servers. However, one or more embodiments are not limited thereto, and the order of log operations can vary depending on various implementations of the storage server.

[0060] In addition, refer to Figure 7 and Figure 8 Log operations in the second log file at 223s ( Figure 3 S140 in the middle) completed ( Figure 3 After S150, the second processor 210s provides the first storage server 200p with an operation completion signal (notification signal) for the copy command (RepCMD).

[0061] According to some embodiments, the operation completion signal (notification signal) of the second processor 210s can signify that the operation of the replication command (RepCMD) provided by the first storage server 200p has been completed, and the operation completion signal can be a return signal from the first storage server 200p. Specifically, the second processor 210s can generate the operation completion signal (notification signal) in response to the replication command (RepCMD) received from the first processor 210p of the first storage server 200p (e.g., ...). Figure 7 As shown), and sends or returns the generated operation completion signal to the first storage server 200p (e.g. Figure 8 (As shown).

[0062] After receiving the operation completion signal (notification signal), the first processor 210p provides a return signal for the write command (WCMD) to the host application server 100a. Figure 3 (S160 in the example). The return signal of the write command (WCMD) can indicate that the operation of the write command (WCMD) provided by the host application server 100a has been completed.

[0063] Reference Figure 9 and Figure 10 The first firmware 224p reads the commands recorded in the first log file 223p. Figure 3 (S170 in the example). A multi-offset write command corresponding to the read command is executed, and a refresh operation corresponding to the multi-offset write command is performed on the first storage device 250p. Figure 3 (S180 in the middle).

[0064] In the first multi-offset write command of the first log file 223p, the first data (data A), the first allocator (allocator A), and the corresponding write command (WCMD) are... Figure 6 The first metadata (metadata A) is recorded.

[0065] Log sequence number (LSN), operation type, logical address (address), and data can be recorded in relation to the recorded command. According to some embodiments, the log sequence number (LSN) can represent the order in which commands are recorded in the first log file 223p, and can be executed by an index function of the command, depending on the embodiment.

[0066] The types of operations recorded include input (insert), change (update), and deletion (delete), and the types of operations can vary depending on the embodiment. The first to third write commands of this disclosure (first refresh WCMD to third refresh WCMD) can correspond to input or change operations.

[0067] Depending on the embodiment, the logical address storing the data for executing commands can be input to a logical address (address), and each command can be recorded to a logical page number (LPN). For example, first data (data A) and first logical page number (LPNa) are recorded together, first allocator (allocator A) and second logical page number (LPNb) are recorded together, and first metadata (metadata A) and c-th logical page number (LPNc) are recorded together.

[0068] exist Figure 10 In this embodiment, although each command is input into a separate logical page number (LPN) unit, the implementation can be modified to allow multiple commands to be programmed into the data in a single logical page number (LPN) unit.

[0069] The first firmware 224p can control the first processor 210p to issue a single first multi-offset write command (first MO_WCMD) for commands corresponding to the first to sixteenth log sequence numbers (LSN1 to LSN16). However, the number of recorded commands that only issue multi-offset write commands can vary depending on the embodiment, and multi-offset write commands can be issued if the number of recorded commands is greater than or equal to a preset threshold. Figure 4 (S181 in the text).

[0070] The first multi-offset write command (first MO_WCMD) can be based on Figure 6 The first data (data A), the first allocator (allocator A), and the first metadata (metadata A) corresponding to the write command WCMD are issued and provided to the first storage device 250p.

[0071] Figure 11 It is used to explain the basis and Figure 10 A diagram illustrating the operation of a storage device according to another embodiment, different from the previous one. (Refer to...) Figure 11 Regardless of the number of multi-offset write commands recorded, after a predetermined threshold time T has elapsed since the previous multi-offset write command was issued or a write command (WCMD) was received, the first firmware 224p can control the first processor 210p to issue a second multi-offset write command (second MO_WCMD). Figure 4 (S181 in the text).

[0072] and Figure 10 Unlike other firmware, the first firmware 224p controls the first processor 210p to issue a single second multi-offset write command (second MO_WCMD) for commands corresponding to the first to twelfth log sequence numbers (LSN1 to LSN12), and the first processor 210p is based on Figure 6 The first data (data A) and the first allocator (allocator A) issue a multi-offset write command.

[0073] Reference Figure 12 The first firmware 224p can provide the first multi-offset write command (first MO_WCMD) along with a logical address to the first storage device 250p. The first storage unit 250p performs a refresh operation on the multi-offset write command based on the provided logical address. Figure 4 (S183 in the text).

[0074] Refresh operation of the first storage device 250p ( Figure 4 In S183, the operations of the first to third refresh write commands (first refresh WCMD to third refresh WCMD) corresponding to the first multi-offset write command (first MO_WCMD) are executed simultaneously.

[0075] According to some embodiments, the first storage device 250p may not update the mapping information used to associate logical addresses with physical addresses in order to efficiently execute multi-offset write commands. For example, the first data (data A, see a-th logical page number (LPNa)) of the a-th logical page number (LPNa) Figure 10 The program executes at the a-th physical page number (PPNa), and thereafter, unless there is a request to update the mapping information of the first processor 210p or the first firmware 224p, the mapping information of the a-th logical page number (LPNa) and the a-th physical page number (PPNa) is not updated.

[0076] Similarly, the first allocator (allocator A, see b-th logical page number (LPNb)) for the b-th logical page number (LPNb) Figure 10 The program executes at the b-th physical page number (PPNb), and thereafter, unless there is a request to update the mapping information of the first processor 210p or the first firmware 224p, the mapping information of the b-th logical page number (LPNb) and the b-th physical page number (PPNb) is not updated.

[0077] Similarly, the first metadata (metadata A, see c-th logical page number (LPNc)) of the c-th logical page number (LPNc) Figure 10 The program executes at the c-th physical page number (PPNc), and thereafter, unless there is a request to update the mapping information of the first processor 210p or the first firmware 224p, the mapping information of the c-th logical page number (LPNc) and the c-th physical page number (PPNc) is not updated.

[0078] Therefore, according to some embodiments, the mapping information of physical addresses (LBN0 to LBNx) and physical addresses (PBN0 to PBNy) of the first storage device that can be processed by the first processor 210p in the first storage server 200p may not be updated unless otherwise required.

[0079] According to some embodiments, in the first storage device 250p, the a-th physical page number (PPNa) can be placed in the data page area of ​​the first storage device 250p, the b-th physical page number (PPNb) can be placed in the allocator page area of ​​the first storage device 250p, and the c-th physical page number (PPNc) can be placed in the metadata page area of ​​the first storage device 250p.

[0080] In addition, refer to Figure 13 The processor removes the logs of commands corresponding to multi-offset write commands from the log file. Figure 3 (S190 in the first log file 223p). The first processor 210p removes the logs of the first to third refresh write commands (first refresh WCMD to third refresh WCMD) corresponding to the first multi-offset write command (first MO_WCMD) from the first log file 223p. Figure 4 (S191 in the text).

[0081] exist Figures 9 to 13 The image shows the read operation of the first firmware 224p. Figure 4 In S171), the multi-offset write command (MO_WCMD) is issued (S181), and the refresh operation of the first storage device 250p is performed. Figure 4 The removal operation of S183 in the first log file (223p) and the removal operation of the first log file (S183). Figure 4 (S191 in the second firmware). However, the read operation of the second firmware 224s ( Figure 4 The issuance of the S172 (multi-offset write command) and the MO_WCMD command (in the context of writing) Figure 4 S182 in the second memory device refresh operation (250s) Figure 4 The removal operation of the second log file at 223s (S184 in the log file) Figure 4 S192) is executed in the second storage server 200s, which corresponds to the operation of the first storage server 200p.

[0082] Therefore, the read operation of the second firmware 224s ( Figure 4 The issuance of the S172 (multi-offset write command) and the MO_WCMD command (in the context of writing) Figure 4 S182 in the middle), refresh operation of the second storage device in 250s ( Figure 4 The removal operation of the second log file in the second storage server 200s (S184) and the second log file in the second storage server 223s (S184). Figure 4 S192 in the above can be operated in the same way as the first storage server 200p.

[0083] However, each second firmware 224s read operation ( Figure 4The issuance of the S172 (multi-offset write command) and the MO_WCMD command (in the context of writing) Figure 4 S182 in the middle), refresh operation of the second storage device in 250s ( Figure 4 The removal operation of the second log file at 223s (S184 in the log file) Figure 4 S192 in the first firmware can be read independently of each first firmware 224p. Figure 4 The issuance of the S171 (multi-offset write command) and the MO_WCMD (multi-offset write command) Figure 4 S181 in the first storage device 250p refresh operation ( Figure 4 The removal operation of S183 in the first log file (223p) and the removal operation of the first log file (S183). Figure 4 It is executed using S191 in the middle.

[0084] Figure 14 This is a block diagram illustrating the storage servers 220p' and 220s' of the data center 10b according to an embodiment.

[0085] In the following text, reference will be made to Figure 14 The storage servers 200p' and 200s' in data center 10b according to an embodiment are described. The main description will be related to... Figure 2 The differences between storage servers 200p and 200s are shown.

[0086] The first storage server 200p' includes a first DIMM 220p' and a first non-volatile storage device 240p separate from the first DIMM 220p'. The first DIMM 220p' includes volatile memory, and the volatile memory may be RAM (Random Access Memory), DRAM (Dynamic RAM), SRAM (Static RAM), T-RAM (Thyristor RAM), Z-RAM (Zero Capacitor RAM), and / or TTRAM (Dual Transistor RAM).

[0087] The first log file 241p and the first firmware 242p are loaded into the first DIMM 220p', and the programs in the first log file 241p and the first firmware 242p can be executed. The first DIMM 220p' can correspond to Figure 2 The first NVDIMM 220p.

[0088] The first non-volatile storage device 240p can be an EEPROM (Electrically Erasable Programmable Read-Only Memory), flash memory, MRAM (Magnetic RAM), spin-transfer torque MRAM (Spin-Transfer Torque MRAM), FeRAM (Ferroelectric RAM), PRAM (Phase Change RAM), or resistive RAM (RRAM).

[0089] The first non-volatile storage device 240p stores a first log file 241p and a first firmware 242p. The first log file 241p and the first firmware 242p stored in the first non-volatile storage device 240p can be loaded onto the first DIMM 220p'. In storing the first log file 241p and the first firmware 242p, the first non-volatile storage device 240p can correspond to... Figure 2 The first non-volatile storage device 222p.

[0090] The second storage server 200s' includes a second DIMM 220s' and a second non-volatile storage device 240s separate from the second DIMM 220s'. The second DIMM 220s' and the second non-volatile storage device 240s can correspond to the first DIMM 220p' and the first non-volatile storage device 240p, respectively. Therefore, it is clear that the description of the second DIMM 220s' and the second non-volatile storage device 240s is replaced by a description of the first DIMM 220p' and the first non-volatile storage device 240p.

[0091] Figure 15 It is used for explanation Figure 14 A diagram illustrating the operation of an embodiment. In Figure 2 In this embodiment, the host application server 100a provides the write command WCMD (see... Figure 5 Before that, it can be executed. Figure 15 The operation.

[0092] The first log file 241p and the first firmware 242p stored in the first non-volatile storage device 240p can be loaded onto the first DIMM 220p'. A program for the first log file 241p and the first firmware 242p loaded onto the first DIMM 220p can be executed. The first log file 241p and the first firmware 242p are loaded into the first DIMM 220p' before the program for the first log file 241p and the first firmware 242p in the first DIMM 220p' is executed.

[0093] Figures 16 to 18 This is a diagram used to illustrate the effect of a data center 10 according to one or more embodiments.

[0094] Reference Figure 2 and Figures 16 to 18 According to various embodiments, the first storage server 200p and the second storage server 200s can perform multi-offset write operations on the write command WCMD. That is, they can perform refresh operations on the write command WCMD.

[0095] Reference Figure 16Storage servers that do not perform multi-offset write operations achieve xIOPS (I / O per second) of operation. Conversely, according to one or more embodiments, the first storage server 200p and the second storage server 200s can achieve 4.54 xIOPS.

[0096] Reference Figure 17 A storage server that does not perform multi-offset write operations requires y seconds to perform a single I / O operation. Conversely, according to one or more embodiments, the first storage server 200p and the second storage server 200s require only 0.3y seconds to perform a single I / O operation.

[0097] Reference Figure 17 The processor of the storage server that does not perform multi-offset write operations exhibits 2% efficiency on a 4-8 core basis. Conversely, according to one or more embodiments, the processor 210p of the first storage server 200p and the processor 210s of the second storage server 200s exhibit 1.252% efficiency.

[0098] According to one or more embodiments, the first storage server 200p and the second storage server 200s can perform multi-offset write operations that simultaneously perform multiple refresh write operations, thereby improving the efficiency of one or more processors, reducing the latency required to perform I / O operations, and increasing the number of I / O operations performed per hour.

[0099] Some embodiments of this disclosure have been shown and described above. However, one or more embodiments of the invention are not limited to the specific embodiments described above. It is understood that various modifications, substitutions, improvements, and equivalents can be made thereto without departing from the spirit and scope of this disclosure. It should be understood that such modifications, substitutions, improvements, and equivalents should fall within the protection scope of this invention and should not be considered as independent of the inventive concept or prospect of this invention.

Claims

1. A storage server, comprising: The processor is configured as follows: Multiple refresh write commands are generated based on the write command for the first data provided by the host. Provide the external storage server with a copy command corresponding to the write command, and Receive the operation completion signal of the copy command from the external storage server; A memory, a program that stores log files, wherein the plurality of refresh write commands are recorded in the log files; as well as A storage device is configured to receive multi-offset write commands and perform flush operations on the multi-offset write commands, the multi-offset write commands including at least one of a plurality of flush write commands recorded in the log file. The processor is further configured to provide the multi-offset write command to the storage device based on the log file after receiving the operation completion signal.

2. The storage server according to claim 1, wherein, The processor is also configured to: After receiving the operation completion signal, a return signal for the write command is provided to the host, and After providing the return signal, the multi-offset write command is provided to the storage device.

3. The storage server according to claim 1, wherein, The storage device is configured to receive the multi-offset write command and simultaneously execute multiple write operations corresponding to the multi-offset write command.

4. The storage server according to claim 1, wherein, The memory is non-volatile memory, and The log file is stored in the memory.

5. The storage server according to claim 1, wherein, The memory is volatile memory, and The log file is stored in a non-volatile storage device separate from the memory.

6. The storage server according to claim 5, wherein, The memory is a dynamic random access memory (DRAM).

7. The storage server according to claim 5, wherein, The processor is also configured to load the log file from the non-volatile storage device into the memory before executing a program for the log file in the memory.

8. The storage server according to claim 1, wherein, The plurality of refresh write commands include a first refresh write command and a second refresh write command. The first refresh write command is a write command for the first data, and The second refresh write command is a write command for the metadata of the first data.

9. The storage server according to claim 1, wherein, Based on the fact that the number of write commands recorded in the log file is greater than or equal to a preset threshold log value, the processor is further configured to: provide the multi-offset write commands to the storage device based on the log file.

10. The storage server according to claim 1, wherein, The processor is also configured to provide the multi-offset write command to the storage device based on the log file after a predetermined threshold time has elapsed since the time the write command was received.

11. A method for driving a storage server, the method comprising: Multiple refresh write commands are generated based on the write command of the first data provided by the host. Record the multiple refresh write commands to a log file; Provide the external storage server with a copy command corresponding to the write command; Receive the operation completion signal of the copy command from the external storage server; as well as Provide the storage device with a multi-offset write command that includes at least one of the plurality of refresh write commands.

12. The method for driving a storage server according to claim 11, further comprising: After receiving the operation completion signal, a return signal for the write command is provided to the host, and Specifically, after providing the return signal, the multi-offset write command is provided to the storage device.

13. The method for driving a storage server according to claim 11 further includes simultaneously executing multiple write operations corresponding to the multi-offset write command.

14. The method for driving a storage server according to claim 11, wherein, The plurality of refresh write commands include a first refresh write command and a second refresh write command. The first refresh write command is a write command for the first data, and The second refresh write command is a write command for the metadata of the first data.

15. The method for driving a storage server according to claim 11, wherein, The log file is recorded from non-volatile memory, and The log file is stored in the non-volatile memory.

16. A data center, comprising: The application server provides write commands for the initial data. The first storage server includes: A first processor is configured to: generate a plurality of first refresh write commands based on the write commands from the application server, and provide a copy command corresponding to the write commands to a second storage server; A first memory stores a first program that stores a first log file, and the plurality of first refresh write commands are recorded in the first log file; A first storage device is configured to: receive a first multi-offset write command including at least one of the plurality of first refresh write commands, and perform a first refresh operation on the first multi-offset write command; The second storage server includes: The second processor is configured to: generate a plurality of second refresh write commands based on the copy command provided by the first storage server, and provide an operation completion signal to the first storage server; A second memory, a second program storing a second log file, wherein the plurality of second refresh write commands are recorded in the second log file; and The second storage device is configured to receive a second multi-offset write command that includes at least one of the plurality of second refresh write commands, and to perform a second refresh operation based on the second multi-offset write command. The first processor is further configured to: upon receiving the operation completion signal, provide the first multi-offset write command to the first storage device based on the first log file, and The second processor is further configured to: after receiving the operation completion signal, provide the second multi-offset write command to the second storage device based on the second log file.

17. The data center according to claim 16, wherein, The first processor is also configured to: After receiving the operation completion signal, a return signal for the write command is provided to the application server. After providing the return signal, the first multi-offset write command is provided to the first storage device, and The second processor is further configured to provide the second multi-offset write command to the second storage device after providing the return signal.

18. The data center according to claim 17, wherein, The first multi-offset write command and the second multi-offset write command are provided independently of each other.

19. The data center according to claim 16, wherein, The first storage device is further configured to receive the first multi-offset write command and simultaneously execute the plurality of first refresh write operations corresponding to the first multi-offset write command. The second storage device is further configured to receive the second multi-offset write command and simultaneously execute the plurality of second refresh write operations corresponding to the second multi-offset write command.

20. The data center according to claim 16, wherein, The first memory and the second memory are non-volatile memories. The first log file is stored in the first memory, and The second log file is stored in the second memory.