WO2015172391A1 - 快速数据读写方法和装置 - Google Patents

快速数据读写方法和装置 Download PDF

Info

Publication number
WO2015172391A1
WO2015172391A1 PCT/CN2014/077693 CN2014077693W WO2015172391A1 WO 2015172391 A1 WO2015172391 A1 WO 2015172391A1 CN 2014077693 W CN2014077693 W CN 2014077693W WO 2015172391 A1 WO2015172391 A1 WO 2015172391A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
data
metadata
storage medium
read
Prior art date
Application number
PCT/CN2014/077693
Other languages
English (en)
French (fr)
Inventor
方帆
李俊
Original Assignee
华为技术有限公司
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
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PCT/CN2014/077693 priority Critical patent/WO2015172391A1/zh
Priority to CN201480037236.0A priority patent/CN105393236B/zh
Publication of WO2015172391A1 publication Critical patent/WO2015172391A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation

Definitions

  • the present invention relates to the field of data processing, and in particular, to a fast data reading and writing method and apparatus. Background technique
  • a complete computer system consists of three systems: computing system, storage system and network system. These three are managed by one operating system; the storage system exists in the operating system as a file system, and the overhead of the file system is in the entire operating system. A large part of the performance overhead.
  • the file system and the device driver are part of the operating system, and the CPU is responsible for logical operations and data operations.
  • the process initiates 10 requests, and the 10 requests pass through the operating system.
  • the kernel processed by the CPU.
  • the main steps are as follows: The process needs to initiate 10 requests to the operating system when reading and writing files; the kernel reads the metadata in the memory, and wraps the 10 requests, for example, the 10 requests include the start address of the file, the length of the file, and the like, And send the packaged 10 request to the device driver; the kernel controls the device driver, sends a request to read or write data to the disk, and the disk performs a corresponding read or write operation; the disk transfers the data to the memory, and updates the element.
  • Data the above steps all require CPU participation, which consumes CPU computing power.
  • FIG. 1B the file system and the device driver are stripped from the software, and the file system and the driver are related.
  • the operation is solidified in the hardware, using hardware to complete the file system and driver related operations, but if the file system is too large, the metadata is too much, and the metadata is kept in the memory, the hardware memory is limited, so the hardware can The supported file size and number are limited, and the technology needs to modify various aspects such as software and hardware, so it is not easy to integrate into the existing operating system. Summary of the invention It is an object of the present invention to provide a fast data reading and writing method and apparatus for accelerating a file system
  • an embodiment of the present invention provides a fast data reading and writing method, which is applied to a computer system, where the computer system includes a storage medium, a host, and a hardware acceleration controller HAC, and the hardware acceleration controller passes through an interface.
  • the host is connected to a storage medium, the host includes a central processing unit, and the host is connected to an external interface, and the method includes:
  • the hardware acceleration controller HAC receives a read/write request sent by the central processing unit, the read/write request includes metadata of a file externally required to read or write data, and the read/write request is determined by the central processor
  • the command sent by the system process is generated after the data read/write request is made;
  • the reading data from the file according to the metadata further includes:
  • the hardware acceleration controller parses the metadata to obtain the file Block data, the block data including address and length information of the file;
  • the address information of the file block data is converted into 10 commands recognizable by the storage medium, and the 10 command is sent to the storage medium to directly perform a read operation on the storage medium instead of the host.
  • the method further includes:
  • the HAC determines, according to the file metadata, that the file corresponding to the metadata is in the local memory, and sends the data corresponding to the file to the host.
  • the method further includes: when the read/write request is a write request, the write request further includes data that needs to be written into the storage medium, where Writing data that needs to be written into the file is written into the file, and further includes:
  • the HAC writes the data that needs to be written into the storage medium into a file corresponding to the metadata
  • the method further includes: when the HAC determines, according to the metadata, that the local does not have the file, The hardware acceleration controller parses the metadata to obtain block data of the file, where the block data includes address and length information of the file;
  • the data that needs to be written into the storage medium is written to a storage space in the storage medium corresponding to the address information of the file block data.
  • an embodiment of the present invention provides a fast data reading and writing device, which is applied to a computer system, where the computer system includes a storage medium, a host, and a hardware acceleration controller HAC, and the hardware acceleration controller passes through an interface.
  • the host is connected to a storage medium, the host includes a central processing unit, and the host is connected to an external interface, and the device includes:
  • An interface module configured to receive a read/write request sent by the central processing unit, where the read/write request includes metadata of a file that needs to be externally read or written, and the read/write request is determined by the central processor
  • the command sent by the system process is generated after the data read/write request is made;
  • a data transceiver module configured to read data from the file according to the metadata; or write data that needs to be written into the file to the file; and report data to the central processor Read/take results.
  • the device further includes: a searching unit, configured to: when the read/write request is a read request, search for a local according to metadata in the read request Whether there is a file corresponding to the metadata in the memory;
  • a command parsing module configured to: when the determining unit determines that the local memory does not have the file according to the metadata, parse the metadata, and obtain block data of the file, where the block data is Including the address and length information of the file;
  • a command conversion module configured to convert address information of the file block data into 10 commands recognizable by the storage medium, and send the 10 command to a storage medium, instead of directly performing the storage medium on the central processing unit Read operation.
  • the data transceiver module is further configured to: when the read/write request is a read request, the searching unit is configured according to When the file metadata determines that the file corresponding to the metadata is in the local memory, the data corresponding to the file is sent to the host.
  • the write request when the read/write request is a write request, the write request further includes data that needs to be written into the storage medium, and the device further includes: a unit, configured to search, according to the metadata in the write request, whether the local memory has a file corresponding to the metadata;
  • the data transceiver module If the local memory has a file corresponding to the metadata, the data transceiver module writes the data that needs to be written into the storage medium into a file corresponding to the metadata;
  • a synchronization unit configured to synchronize a file corresponding to the metadata in the local memory to the storage medium.
  • the parsing module parses the metadata to obtain block data of the file, where the block data includes the file Address and length information; a command conversion module, configured to convert address information of the file block data into 10 commands recognizable by the storage medium, and send the 10 command to a storage medium, to directly write to the storage medium instead of the host ;
  • the data transceiver module is configured to write the data that needs to be written into the storage medium to a storage space in the storage medium corresponding to the address information of the file block data.
  • an embodiment of the present invention provides a fast data reading and writing device, which is applied to a computer system, where the computer system includes a storage medium, a host, and a hardware acceleration controller HAC, and the hardware acceleration controller passes through an interface.
  • the host is connected to a storage medium, the host includes a central processing unit, and the host is connected to an external interface, and the device includes: a network interface; a processor; a memory;
  • An application physically stored in the memory including instructions operable to cause the processor to perform the following process:
  • the read/write request including metadata of a file externally required to read or write data, the read/write request being judged by the central processor
  • the command sent by the process is generated after the data read/write request is made;
  • the processor reads data from the file according to the metadata; or writes data that needs to be written into the file into the file;
  • the network interface reports data read/fetch results to the central processor.
  • the processor searches for local memory of the hardware acceleration controller according to metadata in the read request. Whether there is a file corresponding to the metadata; the metadata is parsed to obtain block data of the file, and the block data includes address and length information of the file;
  • the processor determines, according to the file metadata, that the local memory has a
  • the data corresponding to the file is sent to the host.
  • the read/write request when the read/write request is a write request, the write request further includes data that needs to be written into a storage medium, and the processor is configured according to the Write metadata in the request, and find whether a file corresponding to the metadata is in the local memory of the hardware acceleration controller;
  • the processor If the local memory has a file corresponding to the metadata, the processor writes the data that needs to be written into the storage medium into a file corresponding to the metadata;
  • the metadata is parsed to obtain block data of the file, where the block data includes an address of the file And length information;
  • the data that needs to be written into the storage medium is written to a storage space in the storage medium corresponding to the address information of the file block data.
  • FIG. 1A is a schematic diagram of a software stack before modification in the prior art 2 according to an embodiment of the present invention
  • FIG. 1B is a schematic diagram of a software stack in the prior art 2 according to an embodiment of the present invention
  • FIG. 2 is a schematic diagram of a location of a HAC according to an embodiment of the present invention.
  • FIG. 3 is a flowchart of fast data reading and writing according to Embodiment 1 of the present invention.
  • Embodiment 4 is a block diagram of fast data reading and writing according to Embodiment 1 of the present invention.
  • FIG. 5 is a schematic diagram of a HAC according to an embodiment of the present invention.
  • FIG. 6 is a schematic structural diagram of a fast data reading and writing apparatus according to Embodiment 2 of the present invention.
  • FIG. 7 is a schematic structural diagram of a fast data reading and writing apparatus according to Embodiment 3 of the present invention. detailed description
  • FIG. 2 is a schematic diagram of a HAC position according to an embodiment of the present invention.
  • the rack server includes a backplane 210, a storage medium 220, and a hardware accelerometer (HAC) 230.
  • HAC hardware accelerometer
  • the bottom plate 210 includes a south bridge 211, a CPU 212, and a memory 21 3, a south bridge 211, a CPU 212, and a memory.
  • the storage medium 220 is configured to receive a read or write operation request of the host, and perform various access and control on the flash memory chips in the storage medium;
  • the other chips in the storage medium 220 and the flash memory chip may be disposed on a printed circuit board (PCB) and connected through PCB traces, and finally presented in the form of a hard disk box, or a flash memory chip and a storage medium.
  • PCB printed circuit board
  • the other chip is made into an expansion card, and is connected to the backplane 210 through a peripheral interconnect fast channel (PCI-Express, PCIe) interface; the HAC 230 is used to provide a hardware channel for data transmission, and is connected to the backplane 210 and the storage medium 220 through an interface such as PCIe. It can be integrated on the storage medium 220.
  • PCI-Express PCIe
  • PCIe peripheral interconnect fast channel
  • the storage medium 220 may be a solid state drive (SSD), a hardware accelerate controller (HHD), or a combination thereof.
  • SSD may be an application-specific integrated circuit (ASIC) or a programmable logic device. (programmable logic device, PLD).
  • PLD programmable logic device
  • the PLD can be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or Its combination.
  • FIG. 3 is a flowchart of a fast data reading and writing method according to Embodiment 1 of the present invention.
  • the main body of the embodiment is an HAC.
  • the HAC can be integrated on the storage medium or a separate expansion card, and is connected to the host through a PCIe interface, a SAS interface, or a SATA interface.
  • This embodiment includes the following steps:
  • Step 310 The HAC receives a read/write request sent by the central processing unit, where the read/write request includes metadata of a file that needs to externally read or write data, and the read/write request is determined by the central processing unit.
  • the command sent by the system process is generated after the data read/write request is made;
  • the HAC receives a command sent by the host, where the command may be a read or write request of the file, or may be a write request to write the metadata to the local, the request includes metadata of the file, and the metadata may include the ID of the file.
  • Offset information and length information wherein the offset information and the length information are equivalent to the start address and the end address of the data in the file, and the offset information and the length of the file may be determined by the start address and the end address of the data in the file. information.
  • the HAC searches, according to the metadata in the read request, whether the local memory of the hardware acceleration controller has a file corresponding to the metadata;
  • the hardware acceleration controller parses the metadata to obtain the read data.
  • Block data of the file the block data including address and length information of the file;
  • the address information of the file block data is converted into 10 commands recognizable by the storage medium, and the 10 command is sent to the storage medium to directly perform a read operation on the storage medium instead of the host.
  • the HAC determines, according to the file metadata, that the file corresponding to the metadata is in the local memory, and sends the data corresponding to the file to the host.
  • the write request further includes data that needs to be written into the storage medium
  • the H AC searches for the local memory of the hardware acceleration controller according to the metadata in the write request. Whether there is a file corresponding to the metadata; if the local memory has a file corresponding to the metadata, the HAC writes the data that needs to be written into the storage medium, and writes the data corresponding to the metadata a file; synchronize the file corresponding to the metadata in the local memory to the storage medium.
  • the hardware acceleration controller parses the metadata to obtain block data of the file, where the block data includes the Address and length information of the file; converting the address information of the file block data into 10 commands recognizable by the storage medium, and transmitting the 10 command to the storage medium to directly write to the storage medium instead of the host And writing the data that needs to be written into the storage medium to a storage space in the storage medium corresponding to the address information of the file block data.
  • the HAC searches whether the file corresponding to the metadata exists locally. If the file corresponding to the metadata does not exist locally, the HAC is based on the advance.
  • the type of the received file system parsing the metadata of the file system, parsing the block data of the file according to the metadata, and wrapping the offset information and the length information of the file into address information of the file block data; when the request is read.
  • the request when the HAC determines that the file is locally owned according to the file name, sends the first data to the host, where the first data is data in the file to be read by the host.
  • the metadata refers to the file organization information of the file system, and does not include the specific data information of the file.
  • the result of the HAC feeding back to the CPU is the read data; and when the HAC receives the write request, the result of the HAC feeding back to the CPU may be a data write succeeded. Confirmation message.
  • the HAC converts the address information of the file block data into a 10 command and sends the 10 command to the storage medium for reading or writing the storage medium.
  • the HAC parses the address information of the file block data, converts the address information of the file block data into 10 commands recognizable by the storage medium, and transmits the 10 command to the storage medium.
  • the HAC when the 10 command is a read operation command, the HAC sends the read command to the storage medium, and the storage medium reads the data according to the read operation command, and receives the data returned by the storage medium, and sends the data to the host;
  • the HAC sends data to the host the first data can be transferred to the host memory using Di rect Memory Acces (DMA), or a general transmission method can be used.
  • DMA Di rect Memory Acces
  • the write operation command includes host address information
  • the HAC sends a write operation command to the storage medium
  • the storage medium writes the second data to the storage medium according to the host address information
  • the CPU needs to write the metadata to the HAC local, the HAC receives the write request sent by the host to write the metadata to the local, and reads the metadata corresponding to the write request from the host, and the meta Data is written to the local metadata cache.
  • writing metadata to the metadata cache local to the HAC includes two cases: (1) If the local metadata cache has enough storage space, the metadata is written directly to the local metadata cache.
  • the metadata is written to the metadata cache area, which is initiated by the host when the process is switched.
  • the host will refresh the file system related information of the process to be switched to the metadata cache.
  • the host can capture the occurrence of this event:
  • the process opens a file, the metadata in the host will increase, and the host will write the metadata to the local metadata cache;
  • the host captures the event and notifies the metadata of the HAC invalid file.
  • FIG. 4 is a block diagram of fast data reading and writing according to an embodiment of the present invention.
  • FIG. 4 when the file corresponding to the metadata does not exist in the HAC, how does the host read the first data or write the second data through the HAC, where, in this embodiment, the processing of the data by the HAC is refined to the HAC.
  • FIG. 5 is a schematic diagram of a HAC provided by an embodiment of the present invention.
  • the HAC includes a host interface 510, a command parsing module 520, and a data transceiving module 530.
  • the host interface 510 is configured to receive various commands of the host, such as read or write requests.
  • the host interface 510 may be a PCIe interface or other bus interfaces.
  • the command parsing module 520 is configured to parse metadata of the file system, such as identifying files.
  • the type of the system parsing the super block metadata of the file system, parsing the block data of the file according to the super block metadata, and converting the length information and the offset information of the file coming from the host interface 510 into the address information of the file block data, and Sending the address information of the parsed block data to the data transceiver module 530;
  • the data transceiver module 530 is configured to receive the address information of the block data, convert the address information into 10 commands that the storage medium can recognize, and Order to send to the storage medium.
  • Step 401 The host sends a command to the host interface.
  • the host sends various commands including, for example, a command to read a file, a command to write a second data to a file, and the like.
  • Step 402 The command parsing module parses the command type.
  • the command parsing module 520 parses the command type.
  • the type of the command may be a read or write request of the file, or may be a write request to write the metadata to the local, when the command type is a read or write request of the file.
  • the file name, the offset information, and the length information of the file carried in the read or write operation request are executed in step 403.
  • step 409 is performed.
  • Step 403 The command parsing module parses the metadata, and sends the address information of the file block data to the data transceiver module.
  • the command parsing module 520 finds whether the file corresponding to the file name exists locally, and if not, the command parsing module 520 parses according to the type of the file system written in advance.
  • the metadata of the file system parses the block data of the file according to the metadata, and converts the offset information and the length information of the file sent by the host interface into the address information of the file block data.
  • Step 404 the data transceiver module parses the address information of the file block data, and sends a command to the storage medium.
  • the data transceiver module 530 receives the address information of the file block data sent by the command parsing module 520, converts the address information of the file block data into 10 commands recognizable by the storage medium, and sends the 10 command to the storage medium.
  • Step 405 The storage medium sends the first data to the data transceiver module, and the data transceiver module sends the first data to the host memory.
  • the data transceiver module 530 sends the read operation command to the storage medium, and the storage medium reads the first data according to the read operation command, and sends the first data to the data transceiver module 630.
  • the data transceiver module 530 receives the first data sent by the storage medium.
  • the data transceiver module 530 receives the first data returned by the storage medium, and then sends the first data to the host memory by using a DMA method. After completion, step 407 is performed.
  • Step 406 The host writes the second data to the storage medium.
  • the command parsing module 520 parses the host data address information, the configuration of the storage medium is completed, and the host writes the second data to the storage medium. After completion, go to step 407.
  • Step 407 The data transceiver module sends a completion message to the host interface.
  • the data transceiver module 530 sends a completion message to the host interface 510.
  • Step 408 The host interface sends a completion message to the host.
  • step 409 the host writes the metadata to the HAC.
  • step 410 the HAC receives the metadata and saves it to the metadata cache.
  • the host writes the metadata to the local metadata cache.
  • the HAC receives a read or write request of a file sent by the host, and the read or write request includes metadata of the file; when the HAC determines that the file does not exist locally according to the metadata; According to the type of the file system received in advance, parsing the metadata of the file system, and converting the offset information and the length information of the file into the address information of the file block data according to the block data of the metadata parsing file; the address of the file block data by the HAC
  • the information is converted into 10 commands, and 10 commands are sent to the storage medium for reading or writing to the storage medium, so that the processing of the file system is performed by the HAC, and the consumption of the host in the 10 processing is greatly reduced, so that the host can process
  • HAC can be integrated into the operating system at minimal cost, and HAC changes to the operating system with less hardware changes.
  • the second embodiment of the present invention provides a fast data reading apparatus for implementing the method of the first embodiment.
  • the device may be the hardware accelerator HAC in the foregoing embodiment, and is applied to a computer system, where the computer system includes a storage medium, a host, and a hardware acceleration controller HAC, and the device is connected to the host and the storage medium through an interface.
  • the host includes a central processing unit, and the host is connected to an external interface.
  • the device is an interface unit 610 and a data transceiver module 620.
  • the interface module 610 is configured to receive a read/write request sent by the central processing unit, where the read/write request includes metadata of a file that needs to be externally read or written, and the read/write request is received by the central processor. Determining that the command sent by the system process is generated after the data read/write request is received;
  • a data transceiver module 620 configured to read data from the file according to the metadata; or write data that needs to be written into the file to the file; and report data read/to the central processor Take the result.
  • the device further includes:
  • a searching unit configured to: when the read/write request is a read request, find, according to the metadata in the read request, whether the local memory has a file corresponding to the metadata;
  • a command parsing module configured to: when the determining unit determines that the local memory does not have the file according to the metadata, parse the metadata, and obtain block data of the file, where the block data is Including the address and length information of the file;
  • a command conversion module configured to convert address information of the file block data into 10 commands recognizable by the storage medium, and send the 10 command to a storage medium, instead of directly performing the storage medium on the central processing unit Read operation.
  • the data transceiver module is further configured to: when the read/write request is a read request, the data corresponding to the search unit file is sent to the host.
  • the write request when the read/write request is a write request, the write request further includes data that needs to be written into the storage medium, and the device further includes: a searching unit, configured to search, according to the metadata in the write request, whether the local memory has a file corresponding to the metadata;
  • the data transceiver module If the local memory has a file corresponding to the metadata, the data transceiver module writes the data that needs to be written into the storage medium into a file corresponding to the metadata;
  • a synchronization unit configured to synchronize a file corresponding to the metadata in the local memory to the storage medium.
  • the hardware acceleration controller parses the metadata to obtain block data of the file, where the block data includes address and length information of the file;
  • a command conversion module configured to convert address information of the file block data into 10 commands recognizable by the storage medium, and send the 10 command to a storage medium, to directly write to the storage medium instead of the host ;
  • the data transceiver module is configured to write the data that needs to be written into the storage medium to a storage space in the storage medium corresponding to the address information of the file block data.
  • the processing of the file system 10 is performed by the HAC, the processing speed of the 10 is greatly improved, and the consumption of the host in the 10 processing is greatly reduced, so that the host can handle more other services, and the HAC can The minimal cost is integrated into the operating system, and the hardware changes to the HAC are small when integrated into the operating system.
  • each unit included in the data processing apparatus provided in this embodiment is only divided according to functional logic, but is not limited to the foregoing division, as long as the corresponding function can be implemented;
  • the specific names of the units are also for convenience of distinction from each other and are not intended to limit the scope of the present invention.
  • FIG. 7 it is a schematic structural diagram of a fast data reading apparatus provided in Embodiment 3 of the present invention.
  • the apparatus includes: as shown in FIG. 7, the embodiment includes a network interface 81 0, a processor 820, and a memory 830.
  • System bus 840 is used to connect network interface 81 0, processor 820, and memory 830.
  • Network interface 810 is used for data transmission and communication with a host and/or storage medium.
  • Memory 830 can be a persistent storage, such as a hard drive and flash memory, with software modules and device drivers in memory 830.
  • the software modules are capable of performing the various functional modules of the above described methods of the present invention; the device drivers can be network and interface drivers.
  • the processor 820 reads data from the file according to the metadata; or writes data that needs to be written into the file into the file;
  • the network interface 810 reports data read/fetch results to the central processor.
  • the processor 820 searches, according to the metadata in the read request, whether the local memory of the hardware acceleration controller has a file corresponding to the metadata.
  • the metadata is parsed to obtain block data of the file, where the block data includes address and length information of the file;
  • the address information of the file block data is converted into 10 commands recognizable by the storage medium, and the 10 command is sent to the storage medium through the network interface, in place of the host directly reading the storage medium.
  • the processor 820 determines, according to the file metadata, that the file corresponding to the metadata is in the local memory, and the data corresponding to the file is sent through the network interface 810. Sent to the host.
  • the read/write request is a write request
  • the write request further includes data that needs to be written into the storage medium
  • the processor 820 searches for the content according to the metadata in the write request. Whether the local memory has a file corresponding to the metadata;
  • the processor 820 writes the data that needs to be written into the storage medium into a file corresponding to the metadata;
  • the file corresponding to the metadata in the local memory is synchronized to the storage medium through the network interface 810.
  • the processor 820 determines, according to the metadata, that the local does not have the file, the processor 820 parses the metadata, acquires block data of the file, and the block data. Include the address and length information of the file;
  • the data that needs to be written into the storage medium is written to a storage space in the storage medium corresponding to the address information of the file block data.
  • the processing of the file system 10 is performed by the HAC, the processing speed of the 10 is greatly improved, and the consumption of the host in the 10 processing is greatly reduced, so that the host can handle more other services, and the HAC can The minimal cost is integrated into the operating system, and the hardware changes to the HAC are small when integrated into the operating system.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种快速数据读写方法,应用于计算机系统中,所述计算机系统包括存储介质、主机以及硬件加速控制器HAC,所述硬件加速控制器通过接口与所述主机和存储介质相连,所述主机包括一中央处理器,所述主机与外部接口相连,所述方法包括:硬件加速控制器HAC接收中央处理器发送的读/写请求,所述读/写请求包括外部需要读取或写入数据的文件的元数据,所述读/写请求由所述中央处理器判断出系统进程发送的命令为到数据读/写请求后生成;根据所述元数据,从所述文件中读取数据;或者,将需要写入所述文件的数据写入所述文件;向所述中央处理器报告数据读/取结果。利用实施例提供的方法,使得文件系统的IO处理由HAC进行,主机可以处理更多的其他业务。

Description

快速数据读写方法和装置
技术领域
本发明涉及数据处理领域, 尤其涉及一种快速数据读写方法和装置。 背景技术
一个完整的计算机系统由计算系统,存储系统和网络系统三个系统组成, 这三者由一个操作系统来管理; 存储系统在操作系统中以文件系统方式存在, 文件系统的开销在整个操作系统的性能开销中占很大一部分。
现有技术一中, 文件系统和设备驱动程序是操作系统的一部分, 由 CPU 负责逻辑操作和数据操作, 当需要进行文件的读或写操作时, 由进程发起 10 请求, 该 10请求经过操作系统内核, 由 CPU处理。 其主要步骤如下: 进程需 要读写文件时向操作系统发起 10请求; 内核读取内存中的元数据, 对该 10 请求包装, 比如使得该 10请求包括文件的开始地址, 文件的长度等信息, 并 将该包装后的 10请求发送到设备驱动程序; 内核控制设备驱动程序, 将读或 写数据的请求发送到磁盘, 磁盘进行对应的读或写操作; 磁盘将数据传送到 内存, 并更新元数据, 以上步骤都需要 CPU参与, 耗费 CPU的计算能力。
现有技术二中, 对图 1A 中的软件栈进行修改, 修改后的软件栈如图 1B 所示, 图 1B中, 将文件系统和设备驱动程序从软件剥离, 并将文件系统和驱 动的相关操作固化在硬件中, 使用硬件来完成文件系统和驱动程序的相关操 作, 但是如果文件系统太大, 则元数据太多, 而元数据都被保持在内存中, 硬件的内存有限, 所以硬件能支持的文件大小和个数受限, 而且该技术需要 修改软件和硬件等多方面的内容, 因此不容易集成到现有的操作系统中。 发明内容 本发明的目的是提供一种快速数据读写方法和装置, 以加速文件系统的
10性能。
第一方面, 本发明实施例提供了一种快速数据读写方法, 应用于计算机 系统中, 所述计算机系统包括存储介质、 主机以及硬件加速控制器 HAC, 所述 硬件加速控制器通过接口与所述主机和存储介质相连, 所述主机包括一中央 处理器, 所述主机与外部接口相连, 所述方法包括:
硬件加速控制器 HAC接收中央处理器发送的读 /写请求, 所述读 /写请求 包括外部需要读取或写入数据的文件的元数据, 所述读 /写请求由所述中央处 理器判断出系统进程发送的命令为到数据读 /写请求后生成;
根据所述元数据, 从所述文件中读取数据; 或者, 将需要写入所述文件 的数据写入所述文件;
向所述中央处理器报告数据读 /取结果。
结合第一方面,在第一种可能的实施方式中,所述读 /写请求为读请求时, 所述根据所述元数据, 从所述文件中读取数据进一步包括:
根据所述读请求中的元数据, 查找所述硬件加速控制器的本地内存中是 否具有与所述元数据对应的文件; 述硬件加速控制器对所述元数据进行解析, 获取所述文件的块数据, 所述块 数据中包括所述文件的地址和长度信息;
将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令发送到存储介质, 以代替所述主机直接对所述存储介质进行读操 作。
结合第一方面的第一种可能的实施方式, 在第二种可能的实施方式中, 所述方法还包括:
当所述读 /写请求为读请求, 所述 HAC根据所述文件元数据确定本地内存 中具有所述元数据对应的文件时, 将所述文件对应的数据发送给所述主机。 结合第一方面, 在第三种可能的实施方式中, 所述方法还包括: 当所述 读 /写请求为写请求时, 所述写请求中还包括需要写入存储介质中的数据, 所 述将需要写入所述文件的数据写入所述文件, 进一步包括:
根据所述写请求中的元数据, 查找所述硬件加速控制器的本地内存中是 否具有与所述元数据对应的文件;
如果所述本地内存中具有与所述元数据对应的文件, 所述 HAC将所述需 要写入存储介质中的数据, 写入所述元数据对应的文件;
将所述本地内存中与所述元数据对应的文件, 同步到所述存储介质中。 结合第一方面的第三种可能的实施方式, 在第四种可能的实施方式中, 所述方法还包括: 当所述 HAC根据所述元数据确定所述本地不具有所述文件 时, 所述硬件加速控制器对所述元数据进行解析, 获取所述文件的块数据, 所述块数据中包括所述文件的地址和长度信息;
将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令发送到存储介质, 以代替所述主机直接对所述存储介质进行写操 作;
将所述需要写入存储介质中的数据写入到所述存储介质中与所述文件块 数据的地址信息对应的存储空间。
第二方面, 本发明实施例提供了一种快速数据读写装置, 应用于计算机 系统中, 所述计算机系统包括存储介质、 主机以及硬件加速控制器 HAC, 所述 硬件加速控制器通过接口与所述主机和存储介质相连, 所述主机包括一中央 处理器, 所述主机与外部接口相连, 所述装置包括:
接口模块, 用于接收中央处理器发送的读 /写请求, 所述读 /写请求包括 外部需要读取或写入数据的文件的元数据, 所述读 /写请求由所述中央处理器 判断出系统进程发送的命令为到数据读 /写请求后生成;
数据收发模块, 用于根据所述元数据, 从所述文件中读取数据; 或者, 将需要写入所述文件的数据写入所述文件; 并且向所述中央处理器报告数据 读 /取结果。
结合第二方面, 在第一种可能的实施方式中, 所述装置还包括: 查找单元, 用于在所述读 /写请求为读请求时, 根据所述读请求中的元数 据, 查找本地内存中是否具有与所述元数据对应的文件;
命令解析模块, 用于当所述查找单元根据所述元数据确定所述本地内存 中不具有所述文件时, 对所述元数据进行解析, 获取所述文件的块数据, 所 述块数据中包括所述文件的地址和长度信息;
命令转化模块, 用于将所述文件块数据的地址信息转化为存储介质能够 识别的 10命令, 并将所述 10命令发送到存储介质, 以代替所述中央处理器 直接对所述存储介质进行读操作。
结合第二方面的第一种可能的实施方式, 在第二种可能的实施方式中, 所述数据收发模块还用于: 当所述读 /写请求为读请求时, 所述查找单元根据 所述文件元数据确定本地内存中具有所述元数据对应的文件时, 将所述文件 对应的数据发送给所述主机。
结合第二方面, 在第三种可能的实施方式中, 当所述读 /写请求为写请求 时, 所述写请求中还包括需要写入存储介质中的数据, 所述装置还包括: 查找单元, 用于根据所述写请求中的元数据, 查找本地内存中是否具有 与所述元数据对应的文件;
如果所述本地内存中具有与所述元数据对应的文件, 所述数据收发模块 将所述需要写入存储介质中的数据, 写入所述元数据对应的文件;
同步单元, 用于将所述本地内存中与所述元数据对应的文件, 同步到所 述存储介质中。
结合第一方面的第三种可能的实施方式, 在第四种可能的实施方式中, 解析模块对所述元数据进行解析, 获取所述文件的块数据, 所述块数据中包 括所述文件的地址和长度信息; 命令转化模块, 用于将所述文件块数据的地址信息转化为存储介质能够 识别的 10命令, 并将所述 10命令发送到存储介质, 以代替所述主机直接对 所述存储介质进行写操作;
所述数据收发模块用于将所述需要写入存储介质中的数据写入到所述存 储介质中与所述文件块数据的地址信息对应的存储空间。
第三方面, 本发明实施例提供了一种快速数据读写装置, 应用于计算机 系统中, 所述计算机系统包括存储介质、 主机以及硬件加速控制器 HAC, 所述 硬件加速控制器通过接口与所述主机和存储介质相连, 所述主机包括一中央 处理器, 所述主机与外部接口相连, 所述装置包括: 网络接口; 处理器; 存 储器;
物理存储在所述存储器中的应用程序, 所述应用程序包括可用于使所述 处理器执行以下过程的指令:
通过网络接口接收中央处理器发送的读 /写请求, 所述读 /写请求包括外 部需要读取或写入数据的文件的元数据, 所述读 /写请求由所述中央处理器判 断出系统进程发送的命令为到数据读 /写请求后生成;
所述处理器根据所述元数据, 从所述文件中读取数据; 或者, 将需要写 入所述文件的数据写入所述文件;
所述网络接口向所述中央处理器报告数据读 /取结果。
结合第三方面,在第一种可能的实施方式中,所述读 /写请求为读请求时, 所述处理器根据所述读请求中的元数据, 查找所述硬件加速控制器的本地内 存中是否具有与所述元数据对应的文件; 所述元数据进行解析, 获取所述文件的块数据, 所述块数据中包括所述文件 的地址和长度信息;
将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令通过网络接口发送到存储介质, 以代替所述主机直接对所述存储 介质进行读操作。
结合第三方面的第一种可能的实施方式, 在第二种可能的实施方式中, 当所述读 /写请求为读请求, 所述处理器根据所述文件元数据确定本地内存中 具有所述元数据对应的文件时, 将所述文件对应的数据发送给所述主机。
结合第一方面, 在第三种可能的实施方式中, 当所述读 /写请求为写请求 时, 所述写请求中还包括需要写入存储介质中的数据, 所述处理器根据所述 写请求中的元数据, 查找所述硬件加速控制器的本地内存中是否具有与所述 元数据对应的文件;
如果所述本地内存中具有与所述元数据对应的文件, 所述处理器将所述 需要写入存储介质中的数据, 写入所述元数据对应的文件;
通过所述网络接口将所述本地内存中与所述元数据对应的文件, 同步到 所述存储介质中。
结合第三方面的第三种可能的实施方式, 在第四种可能的实施方式中, 对所述元数据进行解析, 获取所述文件的块数据, 所述块数据中包括所述文 件的地址和长度信息;
将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令发送到存储介质, 以代替所述主机直接对所述存储介质进行写操 作;
将所述需要写入存储介质中的数据写入到所述存储介质中与所述文 件块数据的地址信息对应的存储空间。
通过上述方案, 由于文件系统的 10处理由专门的 HAC来处理, 10速度可 以大大提升, 因此整个文件系统的 10性能会得到很大的提升; 而且主机在 10 的消耗大大减少, 主机可以处理更多的其他业务; HAC能够以最小的代价集成 到操作系统中, 对硬件的改动比较小。 附图说明
图 1A为本发明实施例提供的现有技术二中修改前的软件栈示意图; 图 1B为本发明实施例提供的现有技术二中的软件栈示意图;
图 2为本发明实施例提供的 HAC位置示意图;
图 3为本发明实施例一提供的快速数据读写流程图;
图 4为本发明实施例一提供的快速数据读写框图;
图 5为本发明实施例提供的 HAC示意图;
图 6为本发明实施例二提供的快速数据读写装置结构示意图;
图 7为本发明实施例三提供的快速数据读写装置结构示意图。 具体实施方式
为了使本发明的目的、 技术方案和优点更加清楚, 下面将结合附图对本 发明作进一步地详细描述, 显然, 所描述的实施例仅是本发明一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没有 做出创造性劳动前提下所获得的所有其它实施例, 都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的, 而非 旨在限制本发明。 在本发明实施例和所附权利要求书中所使用的单数形式的 "一种"、 "所述 "和"该"也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解, 尽管在本发明实施例中可能釆用术语第一、 第二等来描述各 种数据, 但这些数据不应限于这些术语。 这些术语仅用来将终端彼此区分开。
图 2为本发明实施例提供的 HAC位置示意图。 在图 2中, 机架服务器包 括底板 210, 存储介质 220 和硬件加速控制器 ( hardware acce l era te cont ro l ler, HAC ) 230。
底板 210包括南桥 211、 CPU212和内存 21 3, 南桥 211、 CPU212和内存
21 3用于对其它扩展卡进行控制, 实现主机的功能; 存储介质 220, 用于接收 主机的读或写操作请求, 并对存储介质中的闪存芯片进行各种访问和控制; 存储介质 220中的其它芯片可以和闪存芯片设置在一个印刷电路板 ( printed circuit board, PCB)上, 并通过 PCB走线相连, 最后呈现的形式是硬盘盒, 也可以将闪存芯片和存储介质的其它芯片做成扩展卡, 通过外设互联快速通 道(PCI- Express, PCIe )接口与底板 210相连; HAC230用于提供数据传输 的硬件通道, 通过 PCIe等接口和底板 210、 存储介质 220相连, 也可以集成 在存储介质 220上。
其中, 存储介质 220可以是固态硬盘(solid state drive, SSD) , 磁 盘驱动器 ( hardware accelerate controller, HHD)或其组合, SSD可以是 专用集成电路 ( application-specific integrated circuit, ASIC ) 或者 可编程逻辑器件(programmable logic device, PLD ) 。 该 PLD 可以是复杂 可编程逗辑器件 ( complex programmable logic device, CPLD ) , 现场可编 程逗辑门阵歹 ij ( field-programmable gate array, FPGA ) , 通用阵歹' ( generic array logic, GAL )或其组合。
图 3为本发明实施例一提供的快速数据读写方法流程图。 如图 3所示, 本实施例的主体是 HAC, HAC既可以集成在存储介质上, 也可以是独立的扩 展卡, 通过 PCIe接口、 SAS接口或者 SATA接口和主机相连。 本实施例包括 以下步骤:
步骤 310, HAC接收中央处理器发送的读 /写请求, 所述读 /写请求包括外 部需要读取或写入数据的文件的元数据, 所述读 /写请求由所述中央处理器判 断出系统进程发送的命令为到数据读 /写请求后生成;
具体地, HAC接收主机发送的命令, 该命令可以是文件的读或写请求, 也可以是将元数据写入本地的写请求, 该请求包括文件的元数据, 元数据 中可以包括文件的 ID, 偏移信息和长度信息, 其中, 该偏移信息和长度信 息等价于文件中数据的开始地址, 结束地址, 可以由文件中数据的开始地 址和结束地址, 确定文件的偏移信息以及长度信息。
320, 根据所述元数据, 从所述文件中读取数据; 具体而言, HAC接收到 CPU发送的读 /写请求后, 根据所述读请求中的元 数据, 查找所述硬件加速控制器的本地内存中是否具有与所述元数据对应的 文件;
所述读 /写请求为读请求时, 当所述 HAC根据所述元数据确定所述本地内 存中不具有所述文件时, 所述硬件加速控制器对所述元数据进行解析, 获取 所述文件的块数据, 所述块数据中包括所述文件的地址和长度信息;
将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令发送到存储介质, 以代替所述主机直接对所述存储介质进行读操 作。
当所述读 /写请求为读请求, 所述 HAC根据所述文件元数据确定本地内存 中具有所述元数据对应的文件时, 将所述文件对应的数据发送给所述主机。
330 , 将需要写入所述文件的数据写入所述文件;
当所述读 /写请求为写请求时, 所述写请求中还包括需要写入存储介质中 的数据, H AC根据所述写请求中的元数据, 查找所述硬件加速控制器的本地内 存中是否具有与所述元数据对应的文件; 如果所述本地内存中具有与所述元 数据对应的文件, 所述 HAC将所述需要写入存储介质中的数据, 写入所述元 数据对应的文件; 将所述本地内存中与所述元数据对应的文件, 同步到所述 存储介质中。
当所述 HAC根据所述元数据确定所述本地不具有所述文件时, 所述硬件 加速控制器对所述元数据进行解析, 获取所述文件的块数据, 所述块数据中 包括所述文件的地址和长度信息; 将所述文件块数据的地址信息转化为存储 介质能够识别的 10命令, 并将所述 10命令发送到存储介质, 以代替所述主 机直接对所述存储介质进行写操作; 将所述需要写入存储介质中的数据写入 到所述存储介质中与所述文件块数据的地址信息对应的存储空间。
具体地, 在接收到主机的读或写请求时, HAC 查找该元数据对应的文 件在本地是否存在, 如果元数据对应的文件在本地不存在, HAC 根据预先 接收的文件系统类型, 解析文件系统的元数据, 根据元数据解析文件的块 数据, 并将文件的偏移信息和长度信息进行包装, 将其转化为文件块数据 的地址信息; 当请求为读请求, HAC 根据文件名确定本地具有该文件时, 将第一数据发送给主机, 其中, 第一数据是主机要读取的文件中的数据。
需要说明的是, 元数据指的是文件系统的文件组织信息, 不包括文件 的具体数据信息。
340 , 向所述中央处理器报告数据读 /取结果。
具体地, 当 HAC接收到的是读请求时, HAC向 CPU反馈的结果是读取到的 数据; 而当 HAC接收到的是写请求时, HAC向 CPU反馈的结果可以是一个数据 写入成功的确认消息。
进一步的, 在步骤 320和 330 中, HAC将文件块数据的地址信息转化为 10命令,并将 10命令发送到存储介质,用以对所述存储介质进行读或写操作。
其中, HAC解析文件块数据的地址信息,将该文件块数据的地址信息转化 为存储介质能够识别的 10命令, 并将 10命令发送给存储介质。
举例来说, 当 10命令为读操作命令时, HAC将读命令发送给存储介质, 用于存储介质根据读操作命令读取数据, 并接收存储介质返回的数据, 并将 该数据发送给主机; 其中, HAC将数据发送给主机时, 可以使用直接存储器访 问 ( Di rect Memory Acces s , DMA )将第一数据传输到主机内存, 也可以使用 一般的传输方式。
10命令为写操作命令, 写操作命令中包括主机地址信息, HAC将写操 作命令发送给存储介质, 用以存储介质根据主机地址信息, 将第二数据写 入到存储介质中。
在另一种实施例中, 还有可能是 CPU需要将元数据写入 HAC本地, HAC 接收主机发送的将元数据写入本地的写请求, 从主机读取写请求对应的元 数据, 将元数据写入到本地的元数据緩存区。
具体地, 将元数据写入 HAC本地的元数据緩存区包括两种情况: ( 1 ) 如果本地元数据緩存区有足够的存储空间, 则将元数据直接写 入本地元数据緩存区。
其中, 将元数据写入元数据緩存区是在进程切换时, 由主机发起的, 主 机在进程切换的时候会将即将被切换运行的进程的文件系统相关信息刷新到 元数据緩存区。 当进程打开或者关闭文件的时候, 主机能够捕捉到这个事件 的发生: 当进程打开一个文件后, 主机中的元数据就会增加, 主机会将元数 据写入到本地元数据緩存区; 当进程关闭某个文件时, 主机捕捉到该事件, 同时通知 HAC无效文件的元数据。
( 2 )如果元数据緩存区没有足够的存储空间, 选择替换緩存项, 将替换 緩存项删除, 将元数据写入替换緩存项的原始元数据緩存区。
其中, 替换緩存项的替换策略有很多现有技术可以使用, 比如, 最近最 少使用策略(leas t recent ly used, URL ) ,对象大小策略, 最少使用频率策 略( leas t frequent ly used, LFU ) ,最低关系值策略 ( lowes t re la t ive va lue , LRV )等。
图 4为本发明实施例提供的快速数据读写框图。 图 4中是 HAC中不存在 元数据对应的文件时, 主机如何通过 HAC, 读取第一数据或者写入第二数据, 其中, 在本实施例中, 将 HAC对数据的处理细化到 HAC中的每个模块。
如图 5所示, 图 5本发明实施例提供的 HAC示意图。 在图 5中, HAC包括 主机接口 510, 命令解析模块 520和数据收发模块 530。
主机接口 510, 用于接收主机的各种命令, 比如读或写请求, 主机接口 510可以是 PCIe接口, 也可以是其它总线接口; 命令解析模块 520用于解析 文件系统的元数据, 比如识别文件系统的类型, 解析该文件系统的超级块元 数据, 根据超级块元数据解析文件的块数据, 并将主机接口 510 过来的文件 的长度信息和偏移信息转化为文件块数据的地址信息, 并将解析完成后的块 数据的地址信息发送到数据收发模块 530;数据收发模块 530用于接收块数据 的地址信息, 将该地址信息转化为存储介质能够识别的 10命令, 并将 10命 令发送给存储介质。
步骤 401, 主机发送命令给主机接口。
具体地, 主机发送各种命令, 该命令包括比如读某个文件的命令, 将第 二数据写入某个文件的命令等。
步骤 402, 命令解析模块解析命令类型。
具体地, 命令解析模块 520解析命令类型, 比如, 该命令的类型可以是 文件的读或写请求, 也可以是将元数据写入本地的写请求, 当命令类型是文 件的读或写请求时, 该读或写操作请求中携带文件的文件名, 偏移信息和长 度信息, 执行步骤 403; 当命令类型是将元数据写入本地的写请求时, 执行步 骤 409。
步骤 403,命令解析模块解析元数据,将文件块数据的地址信息下发到数 据收发模块。
具体地, 当命令的类型是文件的读或写请求时, 命令解析模块 520查找 文件名对应的文件在本地是否存在, 如果不存在, 命令解析模块 520根据预 先写入的文件系统的类型, 解析文件系统的元数据, 根据元数据解析文件的 块数据, 并将主机接口发送的文件的偏移信息和长度信息转化为文件块数据 的地址信息。
步骤 404, 数据收发模块解析文件块数据的地址信息, 发送 10命令至存 储介质。
具体地, 数据收发模块 530接收命令解析模块 520发送的文件块数据的 地址信息, 将该文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 10命令发送到存储介质。 其中, 数据收发模块 530和存储介质间的存储 数据通道有多条, 该多条通道可以并行的进行读取第一数据。 当 10命令为读 操作命令时, 跳转至步骤 405, 当 10命令为写操作命令时, 跳转至步骤 406。
步骤 405,存储介质将第一数据发送给数据收发模块,数据收发模块发送 第一数据至主机内存。 具体地, 当 10命令为读操作命令时, 数据收发模块 530将所述读操作命 令发送给存储介质, 存储介质根据读操作命令读取第一数据, 并将第一数据 发送给数据收发模块 630, 数据收发模块 530接收存储介质发送的第一数据。 其中, 数据收发模块 530接收存储介质返回的第一数据后, 通过 DMA方式将 第一数据发送给主机内存。 完成后执行步骤 407。
步骤 406, 主机写入第二数据至存储介质。
具体地, 当 10命令为写操作命令时, 命令解析模块 520解析主机数据地 址信息后, 完成存储介质的配置, 主机将第二数据写入至存储介质。 完成后 执行步骤 407。
步骤 407, 数据收发模块发送完成消息至主机接口。
具体地, 完成步骤 405或者步骤 406后, 数据收发模块 530向主机接口 510发送完成消息。
步骤 408, 主机接口发送完成消息至主机。
步骤 409, 主机将元数据写入 HAC。
步骤 410, HAC接收元数据并保存到元数据緩存区。
具体地, 当命令类型是将元数据写入本地的写请求时, 主机将元数据写 入本地元数据緩存区。
利用本发明实施例提供的快速数据读取方法, HAC接收主机发送的文件的 读或写请求, 读或写请求包括文件的元数据; 当 HAC根据所述元数据确定本 地不具有所述文件时, 根据预先接收的文件系统类型, 解析文件系统的元数 据, 根据元数据解析文件的块数据, 将文件的偏移信息和长度信息转化为文 件块数据的地址信息; HAC将文件块数据的地址信息转化为 10命令, 并将 10 命令发送到存储介质, 用以对存储介质进行读或写操作, 使得文件系统的 10 处理由 HAC进行, 主机在 10处理上的消耗大大减少, 使得主机可以处理更多 的其他业务, HAC能够以最小的代价集成到操作系统中, HAC集成到操作系统 时对硬件的改动较小。 相应的, 如图 6 所示, 本发明实施例二提供一种用以实现实施例一所述 方法的快速数据读取装置。该装置可以是前述实施例中的硬件加速器 HAC,应 用于计算机系统中, 所述计算机系统包括存储介质、 主机以及硬件加速控 制器 HAC, 所述装置通过接口与所述主机和存储介质相连, 所述主机包括 一中央处理器, 所述主机与外部接口相连, 其为本发明实施例装置包括: 接 口单元 610, 数据收发模块 620, 其中,
接口模块 610, 用于接收中央处理器发送的读 /写请求, 所述读 /写请 求包括外部需要读取或写入数据的文件的元数据,所述读 /写请求由所述中 央处理器判断出系统进程发送的命令为到数据读 /写请求后生成;
数据收发模块 620,用于根据所述元数据,从所述文件中读取数据;或者, 将需要写入所述文件的数据写入所述文件; 并且向所述中央处理器报告数据 读 /取结果。
进一步的, 在一种实施例中, 所述装置还包括:
查找单元, 用于在所述读 /写请求为读请求时, 根据所述读请求中的元数 据, 查找本地内存中是否具有与所述元数据对应的文件;
命令解析模块, 用于当所述查找单元根据所述元数据确定所述本地内存 中不具有所述文件时, 对所述元数据进行解析, 获取所述文件的块数据, 所 述块数据中包括所述文件的地址和长度信息;
命令转化模块, 用于将所述文件块数据的地址信息转化为存储介质能够 识别的 10命令, 并将所述 10命令发送到存储介质, 以代替所述中央处理器 直接对所述存储介质进行读操作。
所述数据收发模块还用于: 当所述读 /写请求为读请求时, 所述查找单元 文件对应的数据发送给所述主机。
在另一种实施例中,, 当所述读 /写请求为写请求时, 所述写请求中还包 括需要写入存储介质中的数据, 所述装置还包括: 查找单元, 用于根据所述写请求中的元数据, 查找本地内存中是否具有 与所述元数据对应的文件;
如果所述本地内存中具有与所述元数据对应的文件, 所述数据收发模块 将所述需要写入存储介质中的数据, 写入所述元数据对应的文件;
同步单元, 用于将所述本地内存中与所述元数据对应的文件, 同步到所 述存储介质中。 硬件加速控制器对所述元数据进行解析, 获取所述文件的块数据, 所述块数 据中包括所述文件的地址和长度信息;
命令转化模块, 用于将所述文件块数据的地址信息转化为存储介质能够 识别的 10命令, 并将所述 10命令发送到存储介质, 以代替所述主机直接对 所述存储介质进行写操作;
所述数据收发模块用于将所述需要写入存储介质中的数据写入到所述存 储介质中与所述文件块数据的地址信息对应的存储空间。
利用本发明实施例提供的装置,使得文件系统的 10处理由 HAC进行, 10 处理速度被大大提高, 而且主机在 10处理上的消耗大大减少, 使得主机可以 处理更多的其他业务, HAC能够以最小的代价集成到操作系统中, HAC集成到 操作系统时对硬件的改动较小。
需要说明的是, 本实施例提供的一种数据处理装置所包括的各个单元只 是按照功能逻辑进行划分的, 但并不局限于上述的划分, 只要能够实现相应 的功能即可; 另外, 各功能单元的具体名称也只是为了便于相互区分, 并不 用于限制本发明的保护范围。
如图 7所示, 其为本发明实施例三提供的快速数据读取装置的结构示 意图。 该装置包括: 如图 7所示, 本实施例包括网络接口 81 0、 处理器 820 和存储器 830。
系统总线 840用于连接网络接口 81 0、 处理器 820和存储器 8 30。 网络接口 810用于与主机和 /或存储介质进行数据传输和通信。
存储器 830可以是永久存储器, 例如硬盘驱动器和闪存, 存储器 830中 具有软件模块和设备驱动程序。 软件模块能够执行本发明上述方法的各种功 能模块; 设备驱动程序可以是网络和接口驱动程序。
在启动时, 这些软件组件被加载到存储器 830中, 然后被处理器 820访 问并执行如下指令:
通过网络接口 810接收主机的中央处理器发送的读 /写请求, 所述读 /写 请求包括外部需要读取或写入数据的文件的元数据, 所述读 /写请求由所述中 央处理器判断出系统进程发送的命令为到数据读 /写请求后生成;
所述处理器 820根据所述元数据, 从所述文件中读取数据; 或者, 将需 要写入所述文件的数据写入所述文件;
所述网络接口 810向所述中央处理器报告数据读 /取结果。
进一步地, 所述读 /写请求为读请求时, 所述处理器 820根据所述读请求 中的元数据, 查找所述硬件加速控制器的本地内存中是否具有与所述元数据 对应的文件; 所述元数据进行解析, 获取所述文件的块数据, 所述块数据中包括所述文件 的地址和长度信息;
将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令通过网络接口发送到存储介质, 以代替所述主机直接对所述存储 介质进行读操作。
进一步地, 当所述读 /写请求为读请求, 所述处理器 820根据所述文件 元数据确定本地内存中具有所述元数据对应的文件时, 通过网络接口 810将 所述文件对应的数据发送给所述主机。
进一步地, 当所述读 /写请求为写请求时, 所述写请求中还包括需要写入 存储介质中的数据, 所述处理器 820根据所述写请求中的元数据, 查找所述 本地内存中是否具有与所述元数据对应的文件;
如果所述本地内存中具有与所述元数据对应的文件, 所述处理器 820将 所述需要写入存储介质中的数据, 写入所述元数据对应的文件;
通过所述网络接口 810将所述本地内存中与所述元数据对应的文件, 同 步到所述存储介质中。
进一步地, 当所述处理器 820根据所述元数据确定所述本地不具有所述 文件时, 所述处理器 820对所述元数据进行解析, 获取所述文件的块数据, 所述块数据中包括所述文件的地址和长度信息;
将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令发送到存储介质, 以代替所述主机直接对所述存储介质进行写操 作;
将所述需要写入存储介质中的数据写入到所述存储介质中与所述文件块 数据的地址信息对应的存储空间。
利用本发明实施例提供的装置,使得文件系统的 10处理由 HAC进行, 10 处理速度被大大提高, 而且主机在 10处理上的消耗大大减少, 使得主机可以 处理更多的其他业务, HAC能够以最小的代价集成到操作系统中, HAC集成到 操作系统时对硬件的改动较小。
专业人员应该还可以进一步意识到, 结合本文中所公开的实施例描述的 各示例的单元及算法步骤, 能够以电子硬件、 计算机软件或者二者的结合来 实现, 为了清楚地说明硬件和软件的可互换性, 在上述说明中已经按照功能 一般性地描述了各示例的组成及步骤。 这些功能究竟以硬件还是软件方式来 执行, 取决于技术方案的特定应用和设计约束条件。 专业技术人员可以对每 个特定的应用来使用不同方法来实现所描述的功能, 但是这种实现不应认为 超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、 处理 器执行的软件模块, 或者二者的结合来实施。 软件模块可以置于随机存储器 ( RAM ) 、 内存、 只读存储器(ROM ) 、 电可编程 R0M、 电可擦除可编程 R0M、 寄存器、 硬盘、 可移动磁盘、 CD-R0M、 或技术领域内所公知的任意其它形式 的存储介质中。
以上所述的具体实施方式, 对本发明的目的、 技术方案和有益效果进行 了进一步详细说明, 所应理解的是, 以上所述仅为本发明的具体实施方式而 已, 并不用于限定本发明的保护范围, 凡在本发明的精神和原则之内, 所做 的任何修改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。

Claims

权 利 要 求 书
1、 一种快速数据读写方法, 应用于计算机系统中, 所述计算机系统包 括存储介质、 主机以及硬件加速控制器 HAC, 所述硬件加速控制器通过接口与 所述主机和存储介质相连, 所述主机包括一中央处理器, 所述主机与外部接 口相连, 其特征在于, 所述方法包括:
硬件加速控制器 HAC接收中央处理器发送的读 /写请求, 所述读 /写请求 包括外部需要读取或写入数据的文件的元数据, 所述读 /写请求由所述中央处 理器判断出系统进程发送的命令为到数据读 /写请求后生成;
根据所述元数据, 从所述文件中读取数据; 或者, 将需要写入所述文件 的数据写入所述文件;
向所述中央处理器报告数据读 /取结果。
2、 如权利要求 1所述的方法, 其特征在于, 所述读 /写请求为读请求时, 所述根据所述元数据, 从所述文件中读取数据进一步包括:
根据所述读请求中的元数据, 查找所述硬件加速控制器的本地内存中是 否具有与所述元数据对应的文件; 述硬件加速控制器对所述元数据进行解析, 获取所述文件的块数据, 所述块 数据中包括所述文件的地址和长度信息;
将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令发送到存储介质, 以代替所述主机直接对所述存储介质进行读操 作。
3、 如权利要求 2所述的方法, 其特征在于, 所述方法还包括:
当所述读 /写请求为读请求, 所述 HAC根据所述文件元数据确定本地内存 中具有所述元数据对应的文件时, 将所述文件对应的数据发送给所述主机。
4、 如权利要求 1所述的方法, 其特征在于, 所说方法还包括: 当所述读 /写请求为写请求时, 所述写请求中还包括需要写入存储介质中的数据, 所述 将需要写入所述文件的数据写入所述文件, 进一步包括:
根据所述写请求中的元数据, 查找所述硬件加速控制器的本地内存中是 否具有与所述元数据对应的文件;
如果所述本地内存中具有与所述元数据对应的文件, 所述 HAC将所述需 要写入存储介质中的数据, 写入所述元数据对应的文件;
将所述本地内存中与所述元数据对应的文件, 同步到所述存储介质中。
5、 如权利要求 4所述的方法, 其特征在于, 还包括: 当所述 HAC根据所 述元数据确定所述本地不具有所述文件时, 所述硬件加速控制器对所述元数 据进行解析, 获取所述文件的块数据, 所述块数据中包括所述文件的地址和 长度信息;
将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令发送到存储介质, 以代替所述主机直接对所述存储介质进行写操 作;
将所述需要写入存储介质中的数据写入到所述存储介质中与所述文件块 数据的地址信息对应的存储空间。
6、 一种快速数据读写装置, 应用于计算机系统中, 所述计算机系统包括 存储介质、主机以及硬件加速控制器 HAC, 所述硬件加速控制器通过接口与所 述主机和存储介质相连, 所述主机包括一中央处理器, 所述主机与外部接口 相连, 其特征在于, 所述装置包括:
接口模块, 用于接收中央处理器发送的读 /写请求, 所述读 /写请求包括 外部需要读取或写入数据的文件的元数据, 所述读 /写请求由所述中央处理器 判断出系统进程发送的命令为到数据读 /写请求后生成;
数据收发模块, 用于根据所述元数据, 从所述文件中读取数据; 或者, 将需要写入所述文件的数据写入所述文件; 并且向所述中央处理器报告数据 读 /取结果。
7、 如权利要求 6所述的 装置, 其特征在于, 还包括: 查找单元, 用于在所述读 /写请求为读请求时, 根据所述读请求中的元数 据, 查找本地内存中是否具有与所述元数据对应的文件;
命令解析模块, 用于当所述查找单元根据所述元数据确定所述本地内存 中不具有所述文件时, 对所述元数据进行解析, 获取所述文件的块数据, 所 述块数据中包括所述文件的地址和长度信息;
命令转化模块, 用于将所述文件块数据的地址信息转化为存储介质能够 识别的 10命令, 并将所述 10命令发送到存储介质, 以代替所述中央处理器 直接对所述存储介质进行读操作。
8、 如权利要求 7所述的装置, 其特征在于, 所述数据收发模块还用于: 当所述读 /写请求为读请求时, 所述查找单元根据所述文件元数据确定本地内 存中具有所述元数据对应的文件时, 将所述文件对应的数据发送给所述主机。
9、 如权利要求 1 所述的装置, 其特征在于, 当所述读 /写请求为写请求 时, 所述写请求中还包括需要写入存储介质中的数据, 所述装置还包括: 查找单元, 用于根据所述写请求中的元数据, 查找本地内存中是否具有 与所述元数据对应的文件;
如果所述本地内存中具有与所述元数据对应的文件, 所述数据收发模块 将所述需要写入存储介质中的数据, 写入所述元数据对应的文件;
同步单元, 用于将所述本地内存中与所述元数据对应的文件, 同步到所 述存储介质中。
1 0、 如权利要求 9 所述的装置, 其特征在于, 还包括: 当所述查找单元 述元数据进行解析, 获取所述文件的块数据, 所述块数据中包括所述文件的 地址和长度信息;
转化模块, 用于将所述文件块数据的地址信息转化为存储介质能够识别 的 10命令, 并将所述 10命令发送到存储介质, 以代替所述主机直接对所述 存储介质进行写操作; 所述数据收发模块用于将所述需要写入存储介质中的数据写入到所述存 储介质中与所述文件块数据的地址信息对应的存储空间。
11、 一种快速数据读写装置, 应用于计算机系统中, 所述计算机系统包 括存储介质、 主机以及硬件加速控制器 HAC, 所述硬件加速控制器通过接口与 所述主机和存储介质相连, 所述主机包括一中央处理器, 所述主机与外部接 口相连, 其特征在于, 所述装置包括: 网络接口; 处理器; 存储器;
物理存储在所述存储器中的应用程序, 所述应用程序包括可用于使所述 处理器执行以下过程的指令:
通过网络接口接收中央处理器发送的读 /写请求, 所述读 /写请求包括外 部需要读取或写入数据的文件的元数据, 所述读 /写请求由所述中央处理器判 断出系统进程发送的命令为到数据读 /写请求后生成;
所述处理器根据所述元数据, 从所述文件中读取数据; 或者, 将需要写 入所述文件的数据写入所述文件;
所述网络接口向所述中央处理器报告数据读 /取结果。
12、 如权利要求 11 所述的装置, 其特征在于, 所述读 /写请求为读请求 时, 所述处理器根据所述读请求中的元数据, 查找本地内存中是否具有与所 述元数据对应的文件; 所述元数据进行解析, 获取所述文件的块数据, 所述块数据中包括所述文件 的地址和长度信息;
将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令通过网络接口发送到存储介质, 以代替所述主机直接对所述存储 介质进行读操作。
1 3、 如权利要求 12所述的装置, 其特征在于, 当所述读 /写请求为读请 文件时, 将所述文件对应的数据发送给所述主机。
14、 如权利要求 11 所述的装置, 其特征在于, 当所述读 /写请求为写请 求时, 所述写请求中还包括需要写入存储介质中的数据, 所述处理器根据所 述写请求中的元数据, 查找本地内存中是否具有与所述元数据对应的文件; 如果所述本地内存中具有与所述元数据对应的文件, 所述处理器将所述 需要写入存储介质中的数据, 写入所述元数据对应的文件;
通过所述网络接口将所述本地内存中与所述元数据对应的文件, 同步到 所述存储介质中。
15、 如权利要求 14所述的装置, 其特征在于, 还包括: 当所述处理器根 据所述元数据确定所述本地不具有所述文件时, 所述处理器对所述元数据进 行解析, 获取所述文件的块数据, 所述块数据中包括所述文件的地址和长度 信息;
将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令发送到存储介质, 以代替所述主机直接对所述存储介质进行写操 作;
将所述需要写入存储介质中的数据写入到所述存储介质中与所述文件块 数据的地址信息对应的存储空间。
PCT/CN2014/077693 2014-05-16 2014-05-16 快速数据读写方法和装置 WO2015172391A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2014/077693 WO2015172391A1 (zh) 2014-05-16 2014-05-16 快速数据读写方法和装置
CN201480037236.0A CN105393236B (zh) 2014-05-16 2014-05-16 快速数据读写方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/077693 WO2015172391A1 (zh) 2014-05-16 2014-05-16 快速数据读写方法和装置

Publications (1)

Publication Number Publication Date
WO2015172391A1 true WO2015172391A1 (zh) 2015-11-19

Family

ID=54479207

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/077693 WO2015172391A1 (zh) 2014-05-16 2014-05-16 快速数据读写方法和装置

Country Status (2)

Country Link
CN (1) CN105393236B (zh)
WO (1) WO2015172391A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111679794A (zh) * 2020-06-17 2020-09-18 北京中存超为科技有限公司 多控存储系统中进行数据同步的方法和装置
CN112765055A (zh) * 2019-11-01 2021-05-07 北京忆芯科技有限公司 存储设备的控制部件

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107728936B (zh) * 2017-09-05 2020-10-09 华为技术有限公司 用于传输数据处理请求的方法和装置
CN109918319B (zh) * 2019-03-22 2021-03-05 深圳忆联信息系统有限公司 一种固态硬盘控制器加速方法及其系统
CN113590520B (zh) * 2021-06-15 2024-05-03 珠海一微半导体股份有限公司 Spi系统自动写入数据的控制方法及spi系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1291747A (zh) * 2000-11-24 2001-04-18 李楠甍 高速缓存设备及其使用方法
CN1892619A (zh) * 2005-07-06 2007-01-10 美国亿科三友公司 Raid系统存储容量适应运行系统和方法
CN101799741A (zh) * 2009-02-09 2010-08-11 联想(北京)有限公司 存储数据读取装置和方法
CN102981783A (zh) * 2012-11-29 2013-03-20 浪潮电子信息产业股份有限公司 一种基于Nand Flash的Cache加速方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1333346C (zh) * 2004-12-24 2007-08-22 北京中星微电子有限公司 一种访问文件的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1291747A (zh) * 2000-11-24 2001-04-18 李楠甍 高速缓存设备及其使用方法
CN1892619A (zh) * 2005-07-06 2007-01-10 美国亿科三友公司 Raid系统存储容量适应运行系统和方法
CN101799741A (zh) * 2009-02-09 2010-08-11 联想(北京)有限公司 存储数据读取装置和方法
CN102981783A (zh) * 2012-11-29 2013-03-20 浪潮电子信息产业股份有限公司 一种基于Nand Flash的Cache加速方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112765055A (zh) * 2019-11-01 2021-05-07 北京忆芯科技有限公司 存储设备的控制部件
CN111679794A (zh) * 2020-06-17 2020-09-18 北京中存超为科技有限公司 多控存储系统中进行数据同步的方法和装置
CN111679794B (zh) * 2020-06-17 2024-01-26 北京中存超为科技有限公司 多控存储系统中进行数据同步的方法和装置

Also Published As

Publication number Publication date
CN105393236A (zh) 2016-03-09
CN105393236B (zh) 2018-06-26

Similar Documents

Publication Publication Date Title
US8589119B2 (en) System and method for distributed processing
US9182912B2 (en) Method to allow storage cache acceleration when the slow tier is on independent controller
WO2015172391A1 (zh) 快速数据读写方法和装置
CN115495389B (zh) 存储控制器、计算存储装置以及计算存储装置的操作方法
WO2017157145A1 (zh) 一种数据预取方法以及装置
US10657052B2 (en) Information handling system with priority based cache flushing of flash dual in-line memory module pool
US20230325277A1 (en) Memory controller performing selective and parallel error correction, system including the same and operating method of memory device
EP4105771A1 (en) Storage controller, computational storage device, and operational method of computational storage device
CN113468083B (zh) 一种双端口NVMe控制器及控制方法
US8046507B2 (en) Computer, external storage and method for processing data information in external storage
EP4148572B1 (en) Computational storage device and storage system including the computational storage device
JP2015128207A (ja) 画像読取装置、画像読取方法及びプログラム
US11853614B2 (en) Synchronous write method and device, storage system and electronic device
EP4325367A1 (en) Method and device for data caching
US20110296111A1 (en) Interface for accessing and manipulating data
CN116738510A (zh) 有效地获得存储在地址空间中的信息的系统和方法
US9253276B2 (en) Multi-protocol bridge with integrated performance accelerating cache
RU2475817C1 (ru) Устройство буферизации потоков данных, считываемых из озу
US11442882B2 (en) Bridge circuit for providing conversion between PCIe-NVMe protocol and NVMe-TCP protocol and computer system using the same
JP6200100B2 (ja) 計算機システム
US20240160429A1 (en) Firmware upgrade method of network storage and network storage
WO2024012349A1 (zh) 数据处理方法、ssd控制器、电子设备及可读存储介质
US20240116541A1 (en) Data storage system for automated driving, operation method of data storage system for automated driving, and operation method of system
US20120066414A1 (en) Network storage system and network storage method
US20120102230A1 (en) Network storage system and network storage method

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201480037236.0

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14891976

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14891976

Country of ref document: EP

Kind code of ref document: A1