WO2013107029A1 - 一种基于块存储的数据处理方法、装置及系统 - Google Patents

一种基于块存储的数据处理方法、装置及系统 Download PDF

Info

Publication number
WO2013107029A1
WO2013107029A1 PCT/CN2012/070626 CN2012070626W WO2013107029A1 WO 2013107029 A1 WO2013107029 A1 WO 2013107029A1 CN 2012070626 W CN2012070626 W CN 2012070626W WO 2013107029 A1 WO2013107029 A1 WO 2013107029A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
storage node
node
block
cache
Prior art date
Application number
PCT/CN2012/070626
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 CN201280000102.2A priority Critical patent/CN103329111B/zh
Priority to EP12866154.3A priority patent/EP2711841A4/en
Priority to PCT/CN2012/070626 priority patent/WO2013107029A1/zh
Publication of WO2013107029A1 publication Critical patent/WO2013107029A1/zh
Priority to US14/143,186 priority patent/US9507720B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Definitions

  • the present invention relates to the field of information technology (Information Technology, referred to as IT), and in particular, to a data processing method, device and system based on block storage. Background technique
  • the data processing system based on the block storage in the prior art generally adopts the 1+N mode, that is, a service processing node responsible for service processing and N JBOD (Just Out Bunch Of Disks), as shown in FIG.
  • the service processing node includes two controllers, and the cache medium is located in the controller, and carries the read and write cache function of the JBOD.
  • the controllers are connected to each other through a peripheral bus interface (PCI Express, PCI-E) channel, and the controllers transmit data through the PCI-E channel.
  • PCI Express PCI-E
  • the controller is connected to the JBOD through a finite strip serial connection (Serial Attatched Small Computer System Interface, SAS) channel.
  • SAS Serial Attatched Small Computer System Interface
  • An object of the embodiments of the present invention is to provide a data processing method, apparatus, and system based on block storage, which can enhance the scalability of a cache medium in a data processing system.
  • an embodiment of the present invention provides a data processing method based on block storage, which is applied in a system including at least two storage nodes, where each storage node includes a CPU, a cache medium, and a non-volatile storage medium, where each The cache media in the storage nodes constitute a cache pool, and the method includes:
  • the service processing node receives a data operation request sent by the client, where the data operation request carries a logical address of the non-volatile storage block operated by the data operation request, and the non-volatile storage block is included in the non-easy In a lossy storage medium;
  • an embodiment of the present invention provides a service processing node, including:
  • a receiver configured to receive a data operation request sent by the client, where the data operation request carries a logical address of the non-volatile storage block operated by the data operation request;
  • a processor configured to determine, according to a logical address of the nonvolatile storage block received by the receiver, an address of a storage node where the nonvolatile storage block is located;
  • a transmitter configured to send, according to an address of the storage node determined by the processor, a data operation request received by the receiver to the storage node, so as to be under the control of a CPU of the storage node, in the
  • the data operation request is processed in a cache medium of the storage node, where the storage node includes a CPU, a cache medium, and a non-volatile storage medium, and the non-volatile storage block includes the non-volatile In the storage medium.
  • an embodiment of the present invention provides a data processing system based on block storage, including: a service processing node, and at least two storage nodes, each storage node including a CPU, a cache medium, and a non-volatile storage medium.
  • the cache medium in each storage node constitutes a cache pool, where the service processing node is configured to receive a data operation request sent by the client, according to the data.
  • the logical address of the non-volatile storage block operated by the data operation request carried by the operation request determining an address of the storage node where the non-volatile storage block is located, according to the address of the storage node
  • the storage node where the lossy storage block is located sends the data operation request;
  • the storage node is configured to receive a data operation request sent by the service processing node, and process the data operation request in its own cache medium under the control of its own CPU.
  • the service processing node finds the storage node corresponding to the data operation request in the data processing system according to the logical address carried by the data operation request, because each storage node in the data processing system includes an independent CPU, a cache medium, and In a non-volatile storage medium, the cache medium in each storage node constitutes a cache pool, so that each additional storage node increases the capacity of the cache pool, thereby enhancing the scalability of the cache medium in the data processing system.
  • FIG. 1 is a structural diagram of a data processing system based on block storage in the prior art
  • FIG. 2 is a schematic structural diagram of a data processing system based on block storage according to an embodiment of the present invention
  • FIG. 3 is a flowchart of a data processing method based on block storage according to an embodiment of the present invention
  • FIG. 4 is a flowchart of another data processing method based on block storage according to an embodiment of the present invention
  • a flow chart of a data processing method based on block storage is provided.
  • FIG. 6 is a schematic diagram of a service processing node according to an embodiment of the present invention.
  • FIG. 3 is a schematic diagram of a block storage-based data processing system according to an embodiment of the present invention. detailed description
  • FIG. 2 is a schematic structural diagram of a block storage-based data processing system according to an embodiment of the present invention.
  • the data processing system includes a service processing node and at least two storage nodes.
  • Each storage node includes a CPU, a cache medium, and a non-volatile storage medium.
  • the cache medium in each storage node constitutes a buffer pool, and the service processing node stores the data operation request sent by the client to the data processing system.
  • the node forwards the data operation request.
  • the data operation request After receiving the data operation request sent by the service processing node, the data operation request is processed in the cache medium of the storage node under the control of the CPU of the storage node.
  • the non-volatile storage medium in the storage node is compared with a cache medium, generally, the capacity of the non-volatile storage medium is larger than the capacity of the cache medium, and the non-volatile storage
  • the medium is specifically for holding the written data so as not to be lost, and the non-volatile storage medium includes, but is not limited to, a flash memory, a CD-ROM, a digital versatile disc (DVD), or other optical storage.
  • the cache medium generally refers to a memory for buffering data read or written by the client, so as to improve performance of the data processing system.
  • all the storage nodes in the data processing system are independent of each other, and all the storage nodes constitute a storage pool of the data processing system, and the cache medium in all the storage nodes constitutes a buffer pool of the data processing system (Cache). Pool), each additional storage node will increase the cache capacity of the cache pool.
  • the storage space in the embodiment of the present invention is presented to the user in the form of a logical volume, where each logical volume corresponds to a part of the storage space in the storage pool, and each logical volume is divided into a series of logical blocks, and the logical blocks are in logic.
  • the address (or offset) in the volume is called Logical Block Address (LBA).
  • LBA Logical Block Address
  • Each logical block carries an identification information, and the identification information includes the logical volume of the logical volume where the logical block is located. The number and the logical block address of the logical block. Based on the identification information of the logical block, a nonvolatile storage area (nonvolatile storage block) corresponding to the logical block can be found.
  • an embodiment of the present invention provides a data processing method based on block storage.
  • the method includes: S301: The service processing node receives a data operation request sent by the client, where the data operation request carries a logical address of the non-volatile storage block operated by the data operation request;
  • non-volatile memory block is included in the non-volatile storage medium
  • the logical address may include a logical volume number corresponding to the non-volatile storage block and a logical block address.
  • a volume number of the logical volume operated by the data operation request is a volume number 0, and the operated logic
  • the offset of the block in the logical volume is IbaO, and the logical address includes volume number 0 and IbaO;
  • the service processing node determines an address of a storage node where the non-volatile storage block is located according to a logical address of the non-volatile storage block.
  • the manner in which the service processing node determines the address of the storage node where the non-volatile storage block is located may include the following manners:
  • the service processing node performs a hash operation on the logical address of the non-volatile storage block to obtain a hash value, and according to the hash value, obtain the non-volatile storage corresponding to the hash value.
  • a logical address corresponds to a non-volatile storage block. Since the hash algorithm has a compression characteristic, after the hash address of the plurality of non-volatile storage blocks is hashed, the same hash value may be obtained, indicating The plurality of non-volatile memory blocks are at different locations on the same storage node;
  • the correspondence between the hash value and the address of the storage node may be pre-configured in the service processing node. For example, if there are 100 storage nodes in the data processing system, 100 hash values and the address of the storage node are pre-configured. Correspondence relationship;
  • the manner in which the service processing node obtains the address of the storage node where the non-volatile storage block is located corresponding to the hash value may include the following manners:
  • the service processing node searches, according to the hash value, a correspondence between the hash value and an address of a storage node where the non-volatile storage block is located in a pre-configured correspondence, and obtains a correspondence relationship from the search. Obtaining an address of a storage node where the nonvolatile storage block is located; S303: The service processing node sends the data operation request to the storage node according to an address of the storage node, so as to be in a cache medium of the storage node under the control of a CPU of the storage node. The data operation request is processed;
  • the manner of processing the data operation request in the cache medium of the storage node under the control of the CPU of the storage node may include the following manners:
  • the cache medium of the storage node stores a correspondence between the data carried by the write request and the logical address under the control of the CPU of the storage node;
  • the storage node obtains the data requested by the read request from the cache medium of the storage node according to the logical address under the control of the CPU of the storage node, Returning the data requested by the request to the client;
  • the cache medium of the storage node stores a correspondence between the data carried by the write request and the logical address, and specifically, the data carried by the write request is saved in a cache medium of the storage node. Describe the logical address carried by the request and the mapping relationship between the data and the logical address.
  • the service processing node obtains the address of the storage node according to the logical address carried by the data operation request, and sends a data operation request to the storage node according to the obtained address of the storage node, and the storage node receives the data operation request.
  • the data operation request is processed in the storage node's own cache medium, and after a certain time, the storage node's own CPU accesses the non-volatile storage operated by the data operation request according to the logical address. Piece.
  • the service processing node finds the storage node corresponding to the data operation request in the data processing system according to the logical address carried by the received data operation request, because the data processing system
  • Each storage node in the storage node includes a separate CPU, a cache medium, and a non-volatile storage medium.
  • the cache medium in each storage node constitutes a cache pool, so that each additional storage node increases the capacity of the cache pool, thereby enhancing Data processing system
  • the storage node includes a separate CPU, which can independently process the data operation request in the storage node's cache medium, and each additional storage node will enhance the data processing system's cache processing capability; There is a separate access channel between the cache medium and the non-volatile storage medium in each storage node.
  • the service processing node determines the address of the storage node according to the logical address carried in the data operation request, and according to the address of the storage node to the storage node Forwarding the data operation request, the task of buffering the data operation request is distributed to each storage node of the data processing system for processing, thereby reducing the load of the service processing node, and further, the storage node receives the request.
  • a flow chart of a data processing method based on block storage is provided in the embodiment of the present invention.
  • a data operation request sent by a service processing node to a storage node takes a write request as an example. Examples include:
  • the client sends a write request to the service processing node, where the write request carries a logical address of the non-volatile storage block operated by the write request.
  • the logical address may include a logical volume number corresponding to the non-volatile storage block and a logical block address.
  • a volume number of the logical volume operated by the write request is a volume number 0, and the operated logical block
  • the offset in the logical volume is IbaO, and the logical address includes volume number 0 and IbaO;
  • S402 The service processing node performs a hash operation on the logical address carried by the write request to obtain a hash value, and obtains the non-volatile storage block corresponding to the hash value according to the hash value.
  • the correspondence between the hash value and the address of the storage node may be pre-configured in the service processing node. For example, if there are 100 storage nodes in the data processing system, 100 hashes are pre-configured. The correspondence between the value and the address of the storage node;
  • the manner in which the service processing node obtains the address of the storage node where the non-volatile storage block is located corresponding to the hash value may include the following manners:
  • the service processing node searches, according to the hash value, a correspondence between the hash value and an address of a storage node where the non-volatile storage block is located in a pre-configured correspondence, and obtains a correspondence relationship from the search. Obtaining an address of a storage node where the nonvolatile storage block is located;
  • S403 The service processing node sends the write request to the storage node according to an address of the storage node.
  • the cache medium of the storage node stores a correspondence between the data carried by the write request and the logical address under the control of a CPU of the storage node.
  • the storage node includes a CPU, a cache medium, and a non-volatile storage medium, and the non-volatile storage block is included in the non-volatile storage medium;
  • the manner in which the cache medium of the storage node saves the correspondence between the data carried by the write request and the logical address includes the following manners:
  • the corresponding relationship between the data carried by the write request and the logical address is saved in the cache block that is hit, for example, the logical address carried by the write request is (Volume 0, IbaO), in the cache medium, the cache block already stores data corresponding to the logical address, and directly updates the data in the cache block, and saves the data carried by the write request and the logical address.
  • the logical address carried by the write request is (Volume 0, IbaO)
  • the cache block already stores data corresponding to the logical address, and directly updates the data in the cache block, and saves the data carried by the write request and the logical address.
  • the write request misses the cache block in the cache medium, storing the data carried by the write request and the logic in one of the free cache blocks when the cache medium has a free cache block
  • Corresponding relationship of addresses for example, no cache block in the cache medium holds data corresponding to the logical address
  • the cache medium has a free cache block, allocate a free cache block in the free cache block to save
  • Corresponding relationship between the data carried by the write request and the logical address otherwise, when waiting for the cache block in the cache medium to have a free cache block, allocating an idle space in the idle cache block
  • the cache block stores a correspondence between the data carried by the write request and the logical address; wherein the cache block is included in the cache medium, and each cache medium can be divided into multiple cache blocks;
  • the idle cache block specifically includes: a cache block that does not store data associated with the logical address, or a cache block that has written the stored data to a non-volatile storage medium;
  • the cache block storing the corresponding relationship carries the write request in the corresponding relationship according to the logical address in the corresponding relationship.
  • the data is saved to the non-volatile memory block corresponding to the logical address.
  • data carried by the write request in the corresponding relationship may be saved to the storage node when the CPU of the storage node is idle.
  • Non-volatile memory block
  • S405 The storage node sends a write request response to the service processing node.
  • S406 The service processing node sends the write request response to the client.
  • the manner in which the storage node sends the write request response to the client may also include the following manners:
  • the storage node directly sends the write request response to the client.
  • the storage node may back up data of each cache block to a cache block of another storage node, and if the data processing system has N storage nodes, the storage A node can have N-1 channels connected to other storage nodes. Compared with the prior art, there are enough channels for redundant backup, and the number of channels does not become a bottleneck of redundant backup.
  • the service processing node finds the storage node corresponding to the write request in the data processing system according to the logical address carried by the received write request, because each storage node in the data processing system includes an independent The CPU, the cache medium, and the non-volatile storage medium, the cache medium in each storage node constitutes a cache pool, so that each additional storage node increases the capacity of the cache pool, thereby enhancing the cache medium in the data processing system.
  • Scalability Secondly, the storage node contains a separate CPU, which can independently process the write request in the storage medium's cache medium. Each additional storage node enhances the cache processing capability of the data processing system.
  • each storage node there is a separate access channel between the cache medium and the non-volatile storage medium in each storage node.
  • the data processing system How many storage nodes are there, how many access channels are there between the cache medium and the non-volatile storage medium, which improves the performance of the data processing system for reading and writing data; again, the service processing node according to the logical address carried in the write request Determining an address of the storage node, and forwarding a write request to the storage node according to the address of the storage node.
  • each storage node of the data processing system for processing, reducing The load of the service processing node, further, when the storage node receives the write request sent by the service processing node, the cache medium of the storage node saves the correspondence between the data carried by the write request and the logical address, because the data is written in the cache medium.
  • each storage node may be connected to other multi-channel strip storage node, so that the number of channels does not become a bottleneck for redundancy, and thus improves the performance of redundancy.
  • FIG. 5 it is a flowchart of a data processing method based on block storage according to an embodiment of the present invention.
  • a data operation request sent by a service processing node to a storage node takes a read request as an example. Examples include:
  • the client sends a read request to the service processing node, where the read request carries a logical address of the non-volatile storage block operated by the read request.
  • the logical address may include a logical volume number corresponding to the non-volatile storage block and a logical block address.
  • a volume number of the logical volume operated by the write request is a volume number 0, and the operated logical block
  • the offset in the logical volume is IbaO, and the logical address includes volume number 0 and IbaO;
  • S502 The service processing node performs a hash operation on the logical address carried by the read request to obtain a hash value, and obtains the non-volatile storage block corresponding to the hash value according to the hash value.
  • the correspondence between the hash value and the address of the storage node may be pre-configured in the service processing node. For example, if there are 100 storage nodes in the data processing system, 100 hashes are pre-configured. The correspondence between the value and the address of the storage node;
  • the manner in which the service processing node obtains the address of the storage node where the non-volatile storage block is located corresponding to the hash value may include the following manners:
  • the service processing node searches, according to the hash value, a correspondence between the hash value and an address of a storage node where the non-volatile storage block is located in a pre-configured correspondence, and obtains a correspondence relationship from the search. Obtaining an address of a storage node where the nonvolatile storage block is located;
  • S503 The service processing node sends the read request to the storage node according to an address of the storage node.
  • the storage node obtains data requested by the read request from a cache medium of the storage node according to the logical address, under the control of a CPU of the storage node.
  • the manner in which the storage node obtains the data requested by the read request from the cache medium of the storage node according to the logical address may include the following manners:
  • the read request misses a cache block in the cache medium according to the logical address
  • the cache medium has a free cache block
  • one of the free cache blocks is obtained from the non-volatile storage block
  • the data requested by the read request for example, if the cache medium has a free cache block, allocate a free cache block in the free cache block for use from the non-volatile storage corresponding to the logical address.
  • Obtaining the data requested by the read request in the block otherwise, when waiting for the cache medium to have a free cache block, allocating a free cache block in the free cache block for not corresponding to the logical address
  • the cache block that obtains the data requested by the read request saves a correspondence between the data requested by the read request and the logical address
  • S505 The storage node sends the data requested by the read request to the service processing node.
  • S506 The service processing node returns the data requested by the read request to the client.
  • the manner in which the storage node returns the data requested by the read request to the client may also include the following manners:
  • the storage node directly returns the data requested by the read request to the client.
  • the service processing node finds the storage node corresponding to the read request in the data processing system according to the logical address carried by the received read request, because each storage node in the data processing system includes an independent The CPU, the cache medium, and the non-volatile storage medium, the cache medium in each storage node constitutes a cache pool, so that each additional storage node increases the capacity of the cache pool, thereby enhancing the cache medium in the data processing system.
  • the storage node contains a separate CPU, which can independently process the read request in the storage node's cache medium, and each additional storage node will enhance the data processing system's cache processing capability; in addition, each storage There is a separate access channel between the cache medium and the non-volatile storage medium in the node. From the perspective of the system, how many storage nodes are in the data processing system, there will be between the cache medium and the non-volatile storage medium.
  • a service processing node determines the address of the storage node according to the logical address carried in the read request, and forwards the read request to the storage node according to the address of the storage node, and caches the read request compared with the prior art.
  • the processed tasks are distributed to the various storage nodes of the data processing system for processing, which reduces the load on the service processing nodes.
  • a service processing node includes:
  • the receiver 601 is configured to receive a data operation request sent by the client, where the data operation request carries a logical address of the non-volatile storage block operated by the data operation request;
  • the processor 602 is configured to determine, according to the logical address of the non-volatile storage block received by the receiver 601, an address of a storage node where the non-volatile storage block is located;
  • the storage node includes a CPU, a cache medium, and a non-volatile storage medium, and the non-volatile storage block is included in the non-volatile storage medium.
  • the processor 602 is specifically configured to perform a hash operation on the logical address of the non-volatile storage block to obtain a hash value, and obtain the non-corresponding to the hash value according to the hash value.
  • a configurator configured to pre-configure a correspondence between a hash value and an address of the storage node
  • the processor 602 is specifically configured to perform a hash operation on the logical address of the non-volatile storage block to obtain the hash value, and correspondingly configured in the configurator according to the hash value. Searching for a correspondence between the hash value and an address of the storage node where the non-volatile storage block is located, and obtaining an address of the storage node where the non-volatile storage block is located from the searched correspondence.
  • the receiver 601 is further configured to receive data requested by the read request returned by the storage node;
  • the transmitter 603 is further configured to send, to the client, data requested by the read request received by the receiver 601.
  • the service processing node provided by the embodiment of the present invention sends a data operation request sent by the client to the storage node through the sender, because each storage node in the data processing system includes an independent CPU, a cache medium, and a non-volatile storage medium.
  • the cache medium in each storage node constitutes a cache pool, so that each additional storage node increases the capacity of the cache pool, thereby enhancing the scalability of the cache medium in the data processing system.
  • the processor receives the receiver according to the receiver.
  • a block storage-based data processing system includes: a service processing node 701, and at least two storage nodes 702, each storage node including a CPU. a cache medium and a non-volatile storage medium, wherein the cache medium in each storage node constitutes a cache pool, where
  • the service processing node 701 is configured to receive a data operation request sent by the client, and determine the non-volatile memory according to a logical address of the non-volatile storage block operated by the data operation request carried by the data operation request. The address of the storage node where the storage block is located, and the data operation request is sent to the storage node where the non-volatile storage block is located according to the address of the storage node;
  • the storage node 702 is configured to receive a data operation request sent by the service processing node 701, and process the data operation request in its own cache medium under the control of its own CPU.
  • the service processing node 701 is specifically configured to perform a hash operation on the logical address of the non-volatile storage block to obtain a hash value, and obtain a location corresponding to the hash value according to the hash value.
  • the service processing node may be a service processing node as shown in FIG. 6.
  • the service processing node finds the storage node corresponding to the data operation request in the data processing system according to the logical address carried by the data operation request, due to data processing
  • Each storage node in the system includes a separate CPU, a cache medium, and a non-volatile storage medium.
  • the cache medium in each storage node constitutes a cache pool, so that each additional storage node increases the capacity of the cache pool.
  • the scalability of the cache medium in the data processing system is enhanced; secondly, the storage node includes a separate CPU, and the data operation request can be processed independently in the storage medium of the storage node, and the data processing system is enhanced for each additional storage node.
  • the cache medium of the storage node saves the correspondence between the data carried by the write request and the logical address, because Writing data in the cache medium is faster than writing data in the non-volatile storage medium, thereby improving the performance of the system; further, each storage node can have multiple channels connected to other storage nodes, so that the number of channels is not It becomes a bottleneck for redundant backups, which improves the performance of redundant backups.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及信息技术领域,尤其涉及一种基于块存储的数据处理方法、装置及系统。本发明实施例提供的基于块存储的数据处理方法,该方法应用在包括至少两个存储节点的系统中,每个存储节点包括CPU、缓存介质以及非易失性存储介质,所述每个存储节点中的缓存介质构成缓存池,在该方法中,业务处理节点接收到客户端发送的数据操作请求后,根据所述数据操作请求携带的逻辑地址向所述系统中对应的存储节点发送所述数据操作请求,以便在所述存储节点的CPU的控制下,在所述存储节点的缓存介质中对所述数据操作请求进行处理。通过本发明实施例提供的方法,通过增加存储节点的数目便会增加系统中缓存介质的容量,从而增强了数据处理系统中缓存介质的可扩展性。

Description

一种基于块存储的数据处理方法、 装置及系统 技术领域
本发明涉及信息技术(Information Technology, 简称: IT )领域, 尤其涉 及一种基于块存储的数据处理方法、 装置及系统。 背景技术
随着信息技术的发展, 在海量数据的需求下, 对系统的存储性能提出了新 的挑战 , 一种提升性能的措施是在设备中使用緩存介质。
现有技术中基于块存储的数据处理系统一般采用 1+N的方式,即一个负责 业务处理的业务处理节点以及 N台 JBOD( Just a Bunch Of Disks,磁盘扩展拒), 如图 1所示。 其中, 业务处理节点包括两个控制器, 緩存介质位于控制器中, 承载着 JBOD的读写緩存功能。 控制器之间通过外设组件互连标准的总线接口 ( PCI Express, 简称: PCI-E )通道相连, 控制器之间通过 PCI-E通道传输数 据。 控制器与 JBOD 之间通过有限条串行连接小型计算机系统接口 (Serial Attatched Small Computer System Interface, 简称: SAS )通道相连。 在需扩展 大量磁盘(DISK ) 时, 由于 SAS通道的限制, 一般采用 JBOD级联的方式。
现有技术中基于块存储的数据处理系统在扩展 JBOD时, 需要相应地增加 业务处理节点中緩存介质的容量。 对于緩存介质, 其扩展性由于受硬件技术发 展的限制而成为瓶颈, 其实际发挥作用就受到了制约。 现有技术没有提供有效 的机制来解决这一问题。 发明内容
本发明实施例的目的在于提供一种基于块存储的数据处理方法、 装置及系 统, 可以增强数据处理系统中緩存介质的可扩展性。 一方面, 本发明实施例提供一种基于块存储的数据处理方法, 应用在包括 至少两个存储节点的系统中, 每个存储节点包括 CPU、緩存介质以及非易失性 存储介质, 所述每个存储节点中的緩存介质构成緩存池, 该方法包括:
业务处理节点接收客户端发送的数据操作请求, 所述数据操作请求携带所 述数据操作请求所操作的非易失性存储块的逻辑地址, 所述非易失性存储块包 含在所述非易失性存储介质中;
所述业务处理节点根据所述非易失性存储块的逻辑地址, 确定所述非易失 性存储块所在的存储节点的地址;
所述业务处理节点根据所述存储节点的地址向所述存储节点发送所述数 据操作请求, 以便于在所述存储节点的 CPU 的控制下, 在所述存储节点的緩 存介质中对所述数据操作请求进行处理。
另一方面, 本发明实施例提供一种业务处理节点, 包括:
接收器, 用于接收客户端发送的数据操作请求, 所述数据操作请求携带所 述数据操作请求所操作的非易失性存储块的逻辑地址;
处理器, 用于根据所述接收器接收到的所述非易失性存储块的逻辑地址, 确定所述非易失性存储块所在的存储节点的地址;
发送器, 用于根据所述处理器确定的存储节点的地址, 向所述存储节点发 送所述接收器接收到的数据操作请求, 以便于在所述存储节点的 CPU 的控制 下, 在所述存储节点的緩存介质中对所述数据操作请求进行处理, 其中, 所述 存储节点包括 CPU、緩存介质以及非易失性存储介质, 所述非易失性存储块包 含中所述非易失性存储介质中。
另一方面, 本发明实施例提供一种基于块存储的数据处理系统, 包括: 业 务处理节点, 以及至少两个存储节点, 每个存储节点包括 CPU, 緩存介质以及 非易失性存储介质, 所述每个存储节点中的緩存介质构成緩存池, 其中, 所述业务处理节点, 用于接收客户端发送的数据操作请求, 根据所述数据 操作请求携带的所述数据操作请求所操作的非易失性存储块的逻辑地址, 确定 所述非易失性存储块所在的存储节点的地址, 根据所述存储节点的地址向所述 非易失性存储块所在的存储节点发送所述数据操作请求;
所述存储节点, 用于接收所述业务处理节点发送的数据操作请求, 在自身 的 CPU的控制下, 在自身的緩存介质中对所述数据操作请求进行处理。
本发明实施例由业务处理节点根据数据操作请求所携带的逻辑地址, 找到 数据处理系统中与数据操作请求对应的存储节点, 由于数据处理系统中的每个 存储节点包含独立的 CPU、 緩存介质以及非易失性存储介质, 每个存储节点中 的緩存介质构成緩存池, 使得每增加一个存储节点便会增加緩存池的容量, 从 而增强了数据处理系统中緩存介质的可扩展性。 附图说明
图 1为现有技术中一种基于块存储的数据处理系统架构图;
图 2 为本发明实施例提供的一种基于块存储的数据处理系统的架构示意 图;
图 3为本发明实施例提供的一种基于块存储的数据处理方法流程图; 图 4为本发明实施例提供的另一种基于块存储的数据处理方法流程图; 图 5为本发明实施例提供的另一种基于块存储的数据处理方法流程图; 图 6为本发明实施例提供的一种业务处理节点的示意图;
图 Ί为本发明实施例提供的一种基于块存储的数据处理系统的示意图。 具体实施方式
下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清 除、 完整地描述。
如图 2所示, 为本发明实施例提供的一种基于块存储的数据处理系统的架 构示意图。其中,所述数据处理系统包括业务处理节点以及至少两个存储节点, 每个存储节点包括 CPU、緩存介质以及非易失性存储介质, 每个存储节点中的 緩存介质构成緩存池, 业务处理节点接收到客户端发送的数据操作请求后, 向 数据处理系统中的存储节点转发该数据操作请求。 在接收到业务处理节点发送 的数据操作请求后, 在存储节点的 CPU控制下, 在所述存储节点的緩存介质 中对所述数据操作请求进行处理。
其中, 所述存储节点中的非易失性存储介质是与緩存介质对比而言, 一般 而言, 所述非易失性存储介质的容量比緩存介质的容量大, 所述非易失性存储 介质具体用于保存所写的数据, 以便不被丟失, 作为示例而非限定, 所述非易 失性存储介质包括但不限于闪存、 CD-ROM、 数字化多功能光盘(DVD )或其 他光学存储设备、 磁卡、 磁带、 磁盘或其他磁性存储设备, 所述緩存介质一般 指内存, 用于緩存所述客户端所读或写的数据, 以便于提升数据处理系统的性 能。
从图 2可知, 数据处理系统中所有的存储节点相互独立, 所有的存储节点 构成了数据处理系统的存储池(Storage Pool ), 所有存储节点中的緩存介质构 成了数据处理系统的緩存池 (Cache Pool),每增加一个存储节点便会增加緩存池 的緩存容量。
其中, 本发明实施例中的存储空间以逻辑卷的形式呈现给用户, 每一个逻 辑卷对应于存储池中的一部分存储空间, 每一个逻辑卷被划分为一系列的逻辑 块, 逻辑块在逻辑卷中的地址 (或偏移量) 称为逻辑块地址 (Logical Block Address, 简称: LBA ), 每一个逻辑块均携带了一个标识信息, 该标识信息包 括该逻辑块所在的逻辑卷的逻辑卷号以及该逻辑块的逻辑块地址。 根据逻辑块 的标识信息, 可以找到与该逻辑块对应的非易失性存储区域(非易失性存储 块)。
基于图 2所示的示意图, 本发明实施例提供一种基于块存储的数据处理方 法。 如图 3所示, 该方法包括: S301 : 业务处理节点接收客户端发送的数据操作请求, 所述数据操作请求 携带所述数据操作请求所操作的非易失性存储块的逻辑地址;
其中, 所述非易失性存储块包含在所述非易失性存储介质中;
其中, 所述逻辑地址可以包括所述非易失性存储块对应的逻辑卷号以及逻 辑块地址, 例如, 所述数据操作请求所操作的逻辑卷的卷号为卷号 0, 所操作 的逻辑块在所述逻辑卷中的偏移量为 IbaO, 则所述逻辑地址包括卷号 0 以及 IbaO;
S302: 所述业务处理节点根据所述非易失性存储块的逻辑地址, 确定所述 非易失性存储块所在的存储节点的地址;
其中, 所述业务处理节点确定所述非易失性存储块所在的存储节点的地址 的方式, 可以包括如下方式:
所述业务处理节点对所述非易失性存储块的逻辑地址进行哈希运算, 得到 哈希值, 根据所述哈希值, 得到与所述哈希值对应的所述非易失性存储块所在 的存储节点的地址;
其中, 一个逻辑地址与一个非易失性存储块对应, 由于哈希算法具有压缩 特性, 多个非易失性存储块的逻辑地址经过哈希运算后, 可能得到相同的哈希 值, 则表明所述多个非易失性存储块在同一存储节点上的不同位置;
可选的, 可以在业务处理节点中预先配置哈希值与存储节点的地址的对应 关系, 例如, 若数据处理系统中有 100个存储节点, 则预先配置 100个哈希值 与存储节点的地址的对应关系;
其中 , 所述业务处理节点得到与所述哈希值对应的所述非易失性存储块所 在的存储节点的地址的方式, 可以包括以下方式:
所述业务处理节点根据所述哈希值, 在预先配置的对应关系中查找所述哈 希值与所述非易失性存储块所在的存储节点的地址的对应关系, 从查找得到的 对应关系中得到所述非易失性存储块所在的存储节点的地址; S303: 所述业务处理节点根据所述存储节点的地址向所述存储节点发送所 述数据操作请求, 以便于在所述存储节点的 CPU 的控制下, 在所述存储节点 的緩存介质中对所述数据操作请求进行处理;
其中, 在所述存储节点的 CPU控制下, 在所述存储节点的緩存介质中对 所述数据操作请求进行处理的方式, 可以包括以下方式:
若所述数据操作请求为写请求,在所述存储节点的 CPU控制下,所述存储 节点的緩存介质保存所述写请求携带的数据与所述逻辑地址的对应关系; 或 者,
若所述数据操作请求为读请求, 在所述存储节点的 CPU控制下, 所述存 储节点根据所述逻辑地址从所述存储节点的緩存介质中获得所述读请求所请 求的数据, 将所述读请求所请求的数据返回所述客户端;
可选的, 所述存储节点的緩存介质保存所述写请求携带的数据与所述逻辑 地址的对应关系 , 具体是指在所述存储节点的緩存介质中保存所述写请求携带 的数据、 所述写请求携带的逻辑地址以及所述数据与所述逻辑地址之间的映射 关系。
在此, 需要指出的是, 所述业务处理节点根据数据操作请求携带的逻辑地 址得到存储节点的地址, 并根据得到的存储节点的地址向存储节点发送数据操 作请求, 存储节点接收到数据操作请求后, 在 CPU 的控制下, 在存储节点自 身的緩存介质中对数据操作请求进行处理, 在一定的时间之后, 存储节点自身 的 CPU会根据逻辑地址访问数据操作请求所操作的非易失性存储块。
本发明实施例提供的一种基于块存储的数据处理方法, 业务处理节点根据 接收到的数据操作请求所携带的逻辑地址, 找到数据处理系统中与数据操作请 求对应的存储节点, 由于数据处理系统中的每个存储节点包含独立的 CPU、緩 存介质以及非易失性存储介质, 每个存储节点中的緩存介质构成了緩存池, 使 得每增加一个存储节点便会增加緩存池的容量, 从而增强了数据处理系统中緩 存介质的可扩展性; 其次, 存储节点包含独立的 CPU, 可以独立地在存储节点 的緩存介质中对数据操作请求进行处理, 每增加一个存储节点便会增强数据处 理系统的緩存处理能力; 另外, 每一个存储节点中的緩存介质与非易失性存储 介质之间有单独的访问通道, 从系统的角度看, 数据处理系统中有多少个存储 节点, 緩存介质与非易失性存储介质之间便会有多少条访问通道, 提高了数据 处理系统读写数据的性能; 再次, 业务处理节点根据数据操作请求中携带的逻 辑地址确定存储节点的地址, 并根据该存储节点的地址向存储节点转发数据操 作请求, 与现有技术相比, 将对数据操作请求进行緩存处理的任务分散至数据 处理系统的各个存储节点中进行处理,减轻了业务处理节点的负荷,进一步地, 存储节点接收到业务处理节点发送的写请求时, 存储节点的緩存介质保存写请 求携带的数据与所述逻辑地址的对应关系, 由于在緩存介质中写数据比在非易 失性存储介质中写数据快, 从而提高了系统的性能。 如图 4所示, 为本发明实施例提供的一种基于块存储的数据处理方法流程 图, 在本实施例中, 业务处理节点向存储节点发送的数据操作请求以写请求为 例, 该实施例具体包括:
S401 : 客户端向业务处理节点发送写请求, 所述写请求携带所述写请求所 操作的非易失性存储块的逻辑地址;
其中, 所述逻辑地址可以包括所述非易失性存储块对应的逻辑卷号以及逻 辑块地址, 例如, 所述写请求所操作的逻辑卷的卷号为卷号 0, 所操作的逻辑 块在所述逻辑卷中的偏移量为 IbaO, 则所述逻辑地址包括卷号 0以及 IbaO;
S402: 所述业务处理节点对所述写请求携带的逻辑地址进行哈希运算, 得 到哈希值, 根据所述哈希值, 得到与所述哈希值对应的所述非易失性存储块所 在的存储节点的地址;
其中, 可以在所述业务处理节点中预先配置哈希值与存储节点的地址的对 应关系, 例如, 若数据处理系统中有 100个存储节点, 则预先配置 100个哈希 值与存储节点的地址的对应关系;
则 , 所述业务处理节点得到与所述哈希值对应的所述非易失性存储块所在 的存储节点的地址的方式, 可以包括以下方式:
所述业务处理节点根据所述哈希值, 在预先配置的对应关系中查找所述哈 希值与所述非易失性存储块所在的存储节点的地址的对应关系, 从查找得到的 对应关系中得到所述非易失性存储块所在的存储节点的地址;
S403: 所述业务处理节点根据所述存储节点的地址, 向所述存储节点发送 所述写请求;
S404: 在所述存储节点的 CPU 的控制下, 所述存储节点的緩存介质保存 所述写请求携带的数据与所述逻辑地址的对应关系;
其中, 所述存储节点包括 CPU、 緩存介质以及非易失性存储介质, 所述非 易失性存储块包含在所述非易失性存储介质中;
其中, 所述存储节点的緩存介质保存所述写请求携带的数据与所述逻辑地 址的对应关系的方式, 具体包括以下方式:
若所述写请求命中所述緩存介质中的緩存块, 则在命中的緩存块中保存所 述写请求携带的数据与所述逻辑地址的对应关系, 例如, 所述写请求携带的逻 辑地址为 (卷 0, IbaO ), 在所述緩存介质中已经有緩存块保存与该逻辑地址对 应的数据, 则直接更新该緩存块中的数据, 保存所述写请求携带的数据与所述 逻辑地址的对应关系; 或者,
若所述写请求未命中所述緩存介质中的緩存块, 则在所述緩存介质有空闲 的緩存块的时候 , 在其中一个空闲的緩存块中保存所述写请求携带的数据与所 述逻辑地址的对应关系, 例如, 所述緩存介质中没有緩存块保存与所述逻辑地 址对应的数据, 若所述緩存介质有空闲的緩存块, 则在空闲的緩存块中分配一 个空闲的緩存块保存所述写请求携带的数据与所述逻辑地址的对应关系, 否 则, 等待所述緩存介质中有空闲的緩存块时, 在空闲的緩存块中分配一个空闲 的緩存块保存所述写请求携带的数据与所述逻辑地址的对应关系; 其中, 所述緩存块包含在所述緩存介质中, 每一个緩存介质可划分为多个 緩存块;
其中, 所述空闲的緩存块具体包括: 没有存储与所述逻辑地址关联的数据 的緩存块, 或者已经将存储的数据写入非易失性存储介质的緩存块;
可选的, 在保存所述写请求携带的数据与所述逻辑地址的对应关系之后, 保存所述对应关系的緩存块根据所述对应关系中的逻辑地址, 将所述对应关系 中写请求携带的数据保存至与所述逻辑地址对应的非易失性存储块 , 作为示例 而非限定, 可以在所述存储节点的 CPU 空闲时, 将所述对应关系中写请求携 带的数据保存至所述非易失性存储块;
S405: 所述存储节点向所述业务处理节点发送写请求响应;
S406: 所述业务处理节点向所述客户端发送所述写请求响应;
其中, 所述存储节点向所述客户端发送所述写请求响应的方式, 还可以包 括以下方式:
所述存储节点直接向所述客户端发送所述写请求响应。
可选的, 为保证写数据的可靠性, 所述存储节点可以把其中各緩存块的数 据分别备份到其他存储节点的緩存块中, 若该数据处理系统有 N个存储节点, 则所述存储节点可以有 N-1条与其他存储节点相连的通道, 与现有技术相比, 有足够的通道进行冗余备份, 通道数不会成为冗余备份的瓶颈。
本发明实施例提供的方法实施例, 业务处理节点根据接收到的写请求所携 带的逻辑地址, 找到数据处理系统中与写请求对应的存储节点, 由于数据处理 系统中的每个存储节点包含独立的 CPU、 緩存介质以及非易失性存储介质, 每 个存储节点中的緩存介质构成了緩存池, 使得每增加一个存储节点便会增加緩 存池的容量, 从而增强了数据处理系统中緩存介质的可扩展性; 其次, 存储节 点包含独立的 CPU, 可以独立地在存储节点的緩存介质中对写请求进行处理, 每增加一个存储节点便会增强数据处理系统的緩存处理能力; 另外, 每一个存 储节点中的緩存介质与非易失性存储介质之间有单独的访问通道, 从系统的角 度看, 数据处理系统中有多少个存储节点, 緩存介质与非易失性存储介质之间 便会有多少条访问通道, 提高了数据处理系统读写数据的性能; 再次, 业务处 理节点根据写请求中携带的逻辑地址确定存储节点的地址, 并根据该存储节点 的地址向存储节点转发写请求, 与现有技术相比, 将对写请求进行緩存处理的 任务分散至数据处理系统的各个存储节点中进行处理, 减轻了业务处理节点的 负荷, 进一步地, 存储节点接收到业务处理节点发送的写请求时, 存储节点的 緩存介质保存写请求携带的数据与所述逻辑地址的对应关系, 由于在緩存介质 中写数据比在非易失性存储介质中写数据快, 从而提高了系统的性能; 再进一 步地, 每一个存储节点可以有多条与其他存储节点相连的通道, 使得通道数不 会成为冗余备份的瓶颈, 从而提高了冗余备份的性能。 如图 5所示, 为本发明实施例提供的一种基于块存储的数据处理方法流程 图, 在本实施例中, 业务处理节点向存储节点发送的数据操作请求以读请求为 例, 该实施例具体包括:
S501 : 客户端向业务处理节点发送读请求, 所述读请求携带所述读请求所 操作的非易失性存储块的逻辑地址;
其中, 所述逻辑地址可以包括所述非易失性存储块对应的逻辑卷号以及逻 辑块地址, 例如, 所述写请求所操作的逻辑卷的卷号为卷号 0, 所操作的逻辑 块在所述逻辑卷中的偏移量为 IbaO, 则所述逻辑地址包括卷号 0以及 IbaO;
S502: 所述业务处理节点对所述读请求携带的逻辑地址进行哈希运算, 得 到哈希值, 根据所述哈希值, 得到与所述哈希值对应的所述非易失性存储块所 在的存储节点的地址;
其中, 可以在所述业务处理节点中预先配置哈希值与存储节点的地址的对 应关系, 例如, 若数据处理系统中有 100个存储节点, 则预先配置 100个哈希 值与存储节点的地址的对应关系;
则 , 所述业务处理节点得到与所述哈希值对应的所述非易失性存储块所在 的存储节点的地址的方式, 可以包括以下方式:
所述业务处理节点根据所述哈希值, 在预先配置的对应关系中查找所述哈 希值与所述非易失性存储块所在的存储节点的地址的对应关系, 从查找得到的 对应关系中得到所述非易失性存储块所在的存储节点的地址;
S503 : 所述业务处理节点根据所述存储节点的地址, 向所述存储节点发送 所述读请求;
S504: 在所述存储节点的 CPU控制下, 所述存储节点根据所述逻辑地址 从所述存储节点的緩存介质中获得所述读请求所请求的数据;
其中, 所述存储节点根据所述逻辑地址从所述存储节点的緩存介质中获得 所述读请求所请求的数据的方式, 可以包括以下方式:
若所述读请求根据所述逻辑地址命中所述緩存介质中的緩存块, 在命中的 緩存块中获得所述读请求所请求的数据; 或者,
若所述读请求根据所述逻辑地址未命中所述緩存介质中的緩存块, 在所述 緩存介质有空闲的緩存块时, 其中一个空闲的緩存块从所述非易失性存储块中 获得所述读请求所请求的数据, 例如, 若所述緩存介质有空闲的緩存块, 则在 空闲的緩存块中分配一个空闲的緩存块用于从与所述逻辑地址对应的非易失 性存储块中获得所述读请求所请求的数据, 否则, 等待所述緩存介质有空闲的 緩存块时, 在空闲的緩存块中分配一个空闲的緩存块用于从与所述逻辑地址对 应的非易失性存储块中获得所述读请求所请求的数据;
可选的, 在获得所述读请求所请求的数据之后, 获得所述读请求所请求的 数据的緩存块保存所述读请求所请求的数据与所述逻辑地址的对应关系;
S505: 所述存储节点向所述业务处理节点发送所述读请求所请求的数据;
S506: 所述业务处理节点将所述读请求所请求的数据返回客户端; 其中, 所述存储节点将所述读请求所请求的数据返回客户端的方式, 还可 以包括以下方式:
所述存储节点直接将所述读请求所请求的数据返回客户端。
本发明实施例提供的方法实施例, 业务处理节点根据接收到的读请求所携 带的逻辑地址, 找到数据处理系统中与读请求对应的存储节点, 由于数据处理 系统中的每个存储节点包含独立的 CPU、 緩存介质以及非易失性存储介质, 每 个存储节点中的緩存介质构成了緩存池, 使得每增加一个存储节点便会增加緩 存池的容量, 从而增强了数据处理系统中緩存介质的可扩展性; 其次, 存储节 点包含独立的 CPU, 可以独立地在存储节点的緩存介质中对读请求进行处理, 每增加一个存储节点便会增强数据处理系统的緩存处理能力; 另外, 每一个存 储节点中的緩存介质与非易失性存储介质之间有单独的访问通道, 从系统的角 度看, 数据处理系统中有多少个存储节点, 緩存介质与非易失性存储介质之间 便会有多少条访问通道, 提高了数据处理系统读写数据的性能; 再次, 业务处 理节点根据读请求中携带的逻辑地址确定存储节点的地址, 并根据该存储节点 的地址向存储节点转发读请求, 与现有技术相比, 将对读请求进行緩存处理的 任务分散至数据处理系统的各个存储节点中进行处理, 减轻了业务处理节点的 负荷。 如图 6所示, 为本发明实施例提供的一种业务处理节点, 包括:
接收器 601 , 用于接收客户端发送的数据操作请求, 所述数据操作请求携 带所述数据操作请求所操作的非易失性存储块的逻辑地址;
处理器 602, 用于根据所述接收器 601接收到的所述非易失性存储块的逻 辑地址, 确定所述非易失性存储块所在的存储节点的地址;
发送器 603 , 用于根据所述处理器 602确定的存储节点的地址, 向所述存 储节点发送所述接收器 601接收到的数据操作请求, 以便于在所述存储节点的 CPU的控制下, 在所述存储节点的緩存介质中对所述数据操作请求进行处理, 其中, 所述存储节点包括 CPU、 緩存介质以及非易失性存储介质, 所述非易失 性存储块包含在所述非易失性存储介质中。
其中, 所述处理器 602具体用于对所述非易失性存储块的逻辑地址进行哈 希运算得到哈希值, 根据所述哈希值, 得到与所述哈希值对应的所述非易失性 存储块所在的存储节点的地址。
其中, 本发明实施例提供的所述业务处理节点还可以包括:
配置器, 用于预先配置哈希值与存储节点的地址的对应关系;
则, 所述处理器 602具体用于对所述非易失性存储块的逻辑地址进行哈希 运算得到所述哈希值, 根据所述哈希值, 在所述配置器预先配置的对应关系中 查找所述哈希值与所述非易失性存储块所在的存储节点的地址的对应关系, 从 查找得到的对应关系中得到所述非易失性存储块所在的存储节点的地址。
可选的, 若所述数据操作请求为读请求, 所述接收器 601还用于接收所述 存储节点返回的所述读请求所请求的数据;
贝' J , 所述发送器 603还用于向所述客户端发送所述接收器 601接收到的读 请求所请求的数据。
本发明实施例提供的业务处理节点, 通过发送器向存储节点发送客户端发 送的数据操作请求, 由于数据处理系统中的每个存储节点包含独立的 CPU、緩 存介质以及非易失性存储介质, 每个存储节点中的緩存介质构成了緩存池, 使 得每增加一个存储节点便会增加緩存池的容量, 从而增强了数据处理系统中緩 存介质的可扩展性; 其次, 处理器根据接收器接收到的非易失性存储块的逻辑 地址, 确定非易失性存储块所在的存储节点的地址, 发送器根据该存储节点的 地址向存储节点转发数据操作请求 , 与现有技术相比, 将緩存处理的任务分 散至数据处理系统的各存储节点中进行处理, 减轻了业务处理节点的负荷。 如图 7所示, 为本发明实施例提供的一种基于块存储的数据处理系统, 包 括: 业务处理节点 701 , 以及至少两个存储节点 702, 每个存储节点包括 CPU, 緩存介质以及非易失性存储介质, 所述每个存储节点中的緩存介质构成緩存 池, 其中,
所述业务处理节点 701 , 用于接收客户端发送的数据操作请求, 根据所述 数据操作请求携带的所述数据操作请求所操作的非易失性存储块的逻辑地址 , 确定所述非易失性存储块所在的存储节点的地址, 根据所述存储节点的地址向 所述非易失性存储块所在的存储节点发送所述数据操作请求;
所述存储节点 702,用于接收所述业务处理节点 701发送的数据操作请求, 在自身的 CPU的控制下, 在自身的緩存介质中对所述数据操作请求进行处理。
其中, 所述业务处理节点 701具体用于对所述非易失性存储块的逻辑地址 进行哈希运算, 得到哈希值, 根据所述哈希值, 得到与所述哈希值对应的所述 非易失性存储块所在的存储节点的地址。
可选的, 所述业务处理节点可以为如图 6所示的业务处理节点。
其中, 系统中各个设备之间的具体交互方法可以参考方法实施例中的描 述, 这里不再贅述。
本发明实施例提供的一种基于块存储的数据处理方法、 装置及系统, 业务 处理节点根据数据操作请求所携带的逻辑地址, 找到数据处理系统中与数据操 作请求对应的存储节点, 由于数据处理系统中的每个存储节点包含独立的 CPU, 緩存介质以及非易失性存储介质, 每个存储节点中的緩存介质构成了緩 存池, 使得每增加一个存储节点便会增加緩存池的容量, 从而增强了数据处理 系统中緩存介质的可扩展性; 其次, 存储节点包含独立的 CPU, 可以独立地在 存储节点的緩存介质中对数据操作请求进行处理, 每增加一个存储节点便会增 强数据处理系统的緩存处理能力; 另外, 每一个存储节点中的緩存介质与非易 失性存储介质之间有单独的访问通道, 从系统的角度看, 数据处理系统中有多 少个存储节点, 緩存介质与非易失性存储介质之间便会有多少条访问通道, 提 高了数据处理系统读写数据的性能; 再次, 业务处理节点根据数据操作请求中 携带的逻辑地址确定存储节点的地址, 并根据该存储节点的地址向存储节点转 发数据操作请求, 与现有技术相比, 将对数据操作请求进行緩存处理的任务分 散至数据处理系统的各个存储节点中进行处理, 减轻了业务处理节点的负荷, 进一步地, 存储节点接收到业务处理节点发送的写请求时, 存储节点的緩存介 质保存写请求携带的数据与所述逻辑地址的对应关系, 由于在緩存介质中写数 据比在非易失性存储介质中写数据快, 从而提高了系统的性能; 再进一步地, 每一个存储节点可以有多条与其他存储节点相连的通道, 使得通道数不会成为 冗余备份的瓶颈, 从而提高了冗余备份的性能。
通过以上的实施方式的描述可知, 本领域的技术人员可以清楚地了解到上 述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式 来实现。 基于这样的理解, 本发明的技术方案本质上或者说对现有技术做出贡 献的部分可以以软件产品的形式体现出来, 该计算机软件产品可以存储在存储 介质中, 如 ROM/RAM、 磁碟、 光盘等, 包括若干指令用以使得一台计算机设 备(可以是个人计算机, 服务器, 或者网络设备等)执行本发明各个实施例或 者实施例的某些部分所述的方法。
需要说明的是, 本说明书中的各个实施例均采用递进的方式描述, 各个实 施例之间相同相似的部分互相参见即可, 每个实施例重点说明的都是与其他实 施例的不同之处。尤其,对于装置实施例而言, 由于其基本相似于方法实施例, 所以描述得比较简单, 相关之处参见方法实施例的部分说明即可。 以上所描述 的装置实施例仅仅是示意性的, 其中作为分离部件说明的单元可以是或者也可 以不是物理上分开的, 作为单元显示的部件可以是或者也可以不是物理单元, 即可以位于一个地方, 或者也可以分布到多个网络单元上。 可以根据实际的需 要选择其中的部分或者全部模块来实现本实施例方案的目的。 本领域普通技术 人员在不付出创造性劳动的情况下, 即可以理解并实施。
总之, 以上所述仅为本发明技术方案的较佳实施例而已, 并非用于限定本 发明的保护范围。凡在本发明的精神和原则之内, 所作的任何修改、等同替换、 改进等, 均应包含在本发明的保护范围之内。

Claims

权利要求书
1、 一种基于块存储的数据处理方法, 其特征在于, 所述方法应用在包括 至少两个存储节点的系统中, 每个存储节点包括 CPU、緩存介质以及非易失性 存储介质, 所述每个存储节点中的緩存介质构成緩存池, 所述方法包括: 业务处理节点接收客户端发送的数据操作请求, 所述数据操作请求携带所 述数据操作请求所操作的非易失性存储块的逻辑地址, 所述非易失性存储块包 含在所述非易失性存储介质中;
所述业务处理节点根据所述非易失性存储块的逻辑地址, 确定所述非易失 性存储块所在的存储节点的地址;
所述业务处理节点根据所述存储节点的地址向所述存储节点发送所述数 据操作请求, 以便于在所述存储节点的 CPU 的控制下, 在所述存储节点的緩 存介质中对所述数据操作请求进行处理。
2、 如权利要求 1 所述的方法, 其特征在于, 所述业务处理节点根据所述 非易失性存储块的逻辑地址, 确定所述非易失性存储块所在的存储节点的地 址, 具体包括:
所述业务处理节点对所述非易失性存储块的逻辑地址进行哈希运算, 得到 哈希值;
所述业务处理节点根据所述哈希值 , 得到与所述哈希值对应的所述非易失 性存储块所在的存储节点的地址。
3、 如权利要求 2所述的方法, 其特征在于, 还包括:
在所述业务处理节点中预先配置哈希值与存储节点的地址的对应关系; 贝' J , 所述业务处理节点根据所述哈希值, 得到与所述哈希值对应的所述非 易失性存储块所在的存储节点的地址, 具体包括:
所述业务处理节点根据所述哈希值, 在预先配置的对应关系中查找所述哈 希值与所述非易失性存储块所在的存储节点的地址的对应关系, 从查找得到的 对应关系中得到所述非易失性存储块所在的存储节点的地址。
4、 如权利要求 1至 3 中任一权利要求所述的方法, 其特征在于, 所述在 所述存储节点的 CPU控制下, 在所述存储节点的緩存介质中对所述数据操作 请求进行处理, 具体包括:
若所述数据操作请求为写请求,在所述存储节点的 CPU控制下,所述存储 节点的緩存介质保存所述写请求携带的数据与所述逻辑地址的对应关系; 或 者,
若所述数据操作请求为读请求,在所述存储节点的 CPU控制下,所述存储 节点根据所述逻辑地址从所述存储节点的緩存介质中获得所述读请求所请求 的数据, 将所述读请求所请求的数据返回所述客户端。
5、 如权利要求 4 所述的方法, 其特征在于, 所述存储节点的緩存介质保 存所述写请求携带的数据与所述逻辑地址的对应关系, 具体包括:
若所述写请求命中所述緩存介质中的緩存块, 则在命中的緩存块中保存所 述写请求携带的数据与所述逻辑地址的对应关系; 或者,
若所述写请求未命中所述緩存介质中的緩存块, 则在所述緩存介质有空闲 的緩存块时 , 在其中一个空闲的緩存块中保存所述写请求携带的数据与所述逻 辑地址的对应关系。
6、 如权利要求 5 所述的方法, 其特征在于, 所述保存所述写请求携带的 数据与所述逻辑地址的对应关系之后, 还包括:
保存所述对应关系的緩存块根据所述对应关系中的逻辑地址, 将所述对应 关系中写请求携带的数据保存至与所述逻辑地址对应的非易失性存储块。
7、 如权利要求 4 所述的方法, 其特征在于, 所述存储节点根据所述逻辑 地址从所述存储节点的緩存介质中获得所述读请求所请求的数据, 具体包括: 若所述读请求根据所述逻辑地址命中所述緩存介质中的緩存块, 则在命中 的緩存块中获得所述读请求所请求的数据; 或者, 若所述读请求根据所述逻辑地址未命中所述緩存介质中的緩存块, 则在所 述緩存介质有空闲的緩存块时, 其中一个空闲的緩存块从所述非易失性存储块 中获得所述读请求所请求的数据。
8、 如权利要求 Ί 所述的方法, 其特征在于, 所述存储节点根据所述逻辑 地址从所述存储节点的緩存介质中获得所述读请求所请求的数据之后, 还包 括:
获得所述读请求所请求的数据的緩存块保存所述读请求所述请求的数据 与所述逻辑地址的对应关系。
9、 一种业务处理节点, 其特征在于, 包括:
接收器, 用于接收客户端发送的数据操作请求, 所述数据操作请求携带所 述数据操作请求所操作的非易失性存储块的逻辑地址;
处理器, 用于根据所述接收器接收到的所述非易失性存储块的逻辑地址, 确定所述非易失性存储块所在的存储节点的地址;
发送器, 用于根据所述处理器确定的存储节点的地址, 向所述存储节点发 送所述接收器接收到的数据操作请求, 以便于在所述存储节点的 CPU 的控制 下, 在所述存储节点的緩存介质中对所述数据操作请求进行处理, 其中, 所述 存储节点包括 CPU、緩存介质以及非易失性存储介质, 所述非易失性存储块包 含在所述非易失性存储介质中。
10、 如权利要求 9所述的业务处理节点, 其特征在于, 所述处理器具体用 于对所述非易失性存储块的逻辑地址进行哈希运算得到哈希值, 根据所述哈希 值, 得到与所述哈希值对应的所述非易失性存储块所在的存储节点的地址。
11、 如权利要求 10所述的业务处理节点, 其特征在于, 还包括: 配置器, 用于预先配置哈希值与存储节点的地址的对应关系;
则, 所述处理器具体用于对所述非易失性存储块的逻辑地址进行哈希运算 得到所述哈希值, 根据所述哈希值, 在所述配置器预先配置的对应关系中查找 所述哈希值与所述非易失性存储块所在的存储节点的地址的对应关系, 从查找 得到的对应关系中得到所述非易失性存储块所在的存储节点的地址。
12、如权利要求 9至 11中任一权利要求所述的业务处理节点,其特征在于, 若所述数据操作请求为读请求, 所述接收器还用于接收所述存储节点返回的所 述读请求所请求的数据;
贝' J , 所述发送器还用于在所述数据操作请求为读请求时, 向所述客户端发 送所述接收器接收到的所述读请求所请求的数据。
13、 一种基于块存储的数据处理系统, 其特征在于, 包括: 业务处理节点, 以及至少两个存储节点, 每个存储节点包括 CPU, 緩存介质以及非易失性存储 介质, 所述每个存储节点中的緩存介质构成緩存池, 其中,
所述业务处理节点, 用于接收客户端发送的数据操作请求, 根据所述数据 操作请求携带的所述数据操作请求所操作的非易失性存储块的逻辑地址, 确定 所述非易失性存储块所在的存储节点的地址, 根据所述存储节点的地址向所述 非易失性存储块所在的存储节点发送所述数据操作请求;
所述存储节点, 用于接收所述业务处理节点发送的数据操作请求, 在自身 的 CPU的控制下, 在自身的緩存介质中对所述数据操作请求进行处理。
14、 如权利要求 13 所述的系统, 其特征在于, 所述业务处理节点具体包 括如权 9至 12中任一权利要求所述的业务处理节点。
PCT/CN2012/070626 2012-01-19 2012-01-19 一种基于块存储的数据处理方法、装置及系统 WO2013107029A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201280000102.2A CN103329111B (zh) 2012-01-19 2012-01-19 一种基于块存储的数据处理方法、装置及系统
EP12866154.3A EP2711841A4 (en) 2012-01-19 2012-01-19 METHOD, DEVICE AND SYSTEM FOR PROCESSING DATA BASED ON BLOCK MEMORY
PCT/CN2012/070626 WO2013107029A1 (zh) 2012-01-19 2012-01-19 一种基于块存储的数据处理方法、装置及系统
US14/143,186 US9507720B2 (en) 2012-01-19 2013-12-30 Block storage-based data processing methods, apparatus, and systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/070626 WO2013107029A1 (zh) 2012-01-19 2012-01-19 一种基于块存储的数据处理方法、装置及系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/143,186 Continuation US9507720B2 (en) 2012-01-19 2013-12-30 Block storage-based data processing methods, apparatus, and systems

Publications (1)

Publication Number Publication Date
WO2013107029A1 true WO2013107029A1 (zh) 2013-07-25

Family

ID=48798514

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/070626 WO2013107029A1 (zh) 2012-01-19 2012-01-19 一种基于块存储的数据处理方法、装置及系统

Country Status (4)

Country Link
US (1) US9507720B2 (zh)
EP (1) EP2711841A4 (zh)
CN (1) CN103329111B (zh)
WO (1) WO2013107029A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106873914A (zh) * 2017-02-21 2017-06-20 郑州云海信息技术有限公司 一种jbod级联的设计方案
CN110764688A (zh) * 2018-07-27 2020-02-07 杭州海康威视数字技术股份有限公司 对数据进行处理的方法和装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10078613B1 (en) * 2014-03-05 2018-09-18 Mellanox Technologies, Ltd. Computing in parallel processing environments
WO2015150976A1 (en) 2014-04-03 2015-10-08 Strato Scale Ltd. Cluster-wide memory management using similarity-preserving signatures
US20150312366A1 (en) * 2014-04-24 2015-10-29 Strato Scale Ltd. Unified caching of storage blocks and memory pages in a compute-node cluster
US9928149B2 (en) 2014-08-29 2018-03-27 Cynny Space Srl Systems and methods to maintain data integrity and redundancy in a computing system having multiple computers
US9390028B2 (en) 2014-10-19 2016-07-12 Strato Scale Ltd. Coordination between memory-saving mechanisms in computers that run virtual machines
US9912748B2 (en) 2015-01-12 2018-03-06 Strato Scale Ltd. Synchronization of snapshots in a distributed storage system
CN106233265A (zh) 2015-02-26 2016-12-14 斯特拉托斯卡莱有限公司 将访问频率层次结构用于逐出目标的选择
US10019175B2 (en) 2016-08-31 2018-07-10 International Business Machines Corporation Managing program access to data storage resources
CN111654519B (zh) * 2017-09-06 2024-04-30 华为技术有限公司 用于传输数据处理请求的方法和装置
CN109672714B (zh) * 2017-10-17 2022-02-25 中移(苏州)软件技术有限公司 一种分布式存储系统的数据处理方法及分布式存储系统
US10700974B2 (en) * 2018-01-30 2020-06-30 Marvell Israel (M.I.S.L) Ltd. Dynamic allocation of memory for packet processing instruction tables in a network device
CN108268219B (zh) * 2018-02-01 2021-02-09 杭州宏杉科技股份有限公司 一种处理io请求的方法及装置
CN110825309B (zh) * 2018-08-08 2021-06-29 华为技术有限公司 数据读取方法、装置及系统、分布式系统
CN111367461B (zh) * 2018-12-25 2024-02-20 兆易创新科技集团股份有限公司 一种存储空间管理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1489057A (zh) * 2002-10-10 2004-04-14 �Ҵ���˾ 存储控制器和处理器中管理虚拟化物理存储器方法和系统
CN101169760A (zh) * 2006-10-26 2008-04-30 北京华旗资讯数码科技有限公司 电子硬盘的存储空间的管理方法
CN101663651A (zh) * 2007-03-30 2010-03-03 完美天空Jsat株式会社 分布式存储系统
CN102223388A (zh) * 2010-05-10 2011-10-19 北京月新时代科技有限公司 一种集群存储器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003162377A (ja) * 2001-11-28 2003-06-06 Hitachi Ltd ディスクアレイシステム及びコントローラ間での論理ユニットの引き継ぎ方法
US7801912B2 (en) * 2005-12-29 2010-09-21 Amazon Technologies, Inc. Method and apparatus for a searchable data service
US9003159B2 (en) * 2009-10-05 2015-04-07 Marvell World Trade Ltd. Data caching in non-volatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1489057A (zh) * 2002-10-10 2004-04-14 �Ҵ���˾ 存储控制器和处理器中管理虚拟化物理存储器方法和系统
CN101169760A (zh) * 2006-10-26 2008-04-30 北京华旗资讯数码科技有限公司 电子硬盘的存储空间的管理方法
CN101663651A (zh) * 2007-03-30 2010-03-03 完美天空Jsat株式会社 分布式存储系统
CN102223388A (zh) * 2010-05-10 2011-10-19 北京月新时代科技有限公司 一种集群存储器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2711841A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106873914A (zh) * 2017-02-21 2017-06-20 郑州云海信息技术有限公司 一种jbod级联的设计方案
CN110764688A (zh) * 2018-07-27 2020-02-07 杭州海康威视数字技术股份有限公司 对数据进行处理的方法和装置
CN110764688B (zh) * 2018-07-27 2023-09-05 杭州海康威视数字技术股份有限公司 对数据进行处理的方法和装置

Also Published As

Publication number Publication date
CN103329111B (zh) 2015-05-27
US20140115252A1 (en) 2014-04-24
EP2711841A4 (en) 2014-07-30
CN103329111A (zh) 2013-09-25
US9507720B2 (en) 2016-11-29
EP2711841A1 (en) 2014-03-26

Similar Documents

Publication Publication Date Title
WO2013107029A1 (zh) 一种基于块存储的数据处理方法、装置及系统
US10459649B2 (en) Host side deduplication
US9128855B1 (en) Flash cache partitioning
KR101480659B1 (ko) 2-레벨 시스템 메인 메모리
US8904061B1 (en) Managing storage operations in a server cache
US9268711B1 (en) System and method for improving cache performance
JP7105870B2 (ja) データアクセス方法、装置およびシステム
WO2019127018A1 (zh) 存储系统访问方法及装置
WO2015014109A1 (zh) 处理输入/输出请求的方法、宿主机、服务器和虚拟机
US8725939B1 (en) System and method for improving cache performance
CN107329704B (zh) 一种缓存镜像方法及控制器
US9268696B1 (en) System and method for improving cache performance
WO2019127021A1 (zh) 存储系统中存储设备的管理方法及装置
WO2015196378A1 (zh) 读写闪存中数据的方法、装置及用户设备
US8909886B1 (en) System and method for improving cache performance upon detecting a migration event
JP5893028B2 (ja) キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法
WO2014153931A1 (zh) 文件存储方法、装置、访问客户端及元数据服务器系统
US9971520B2 (en) Processing read and write requests
WO2019000423A1 (zh) 一种数据存储方法及设备
US20110258424A1 (en) Distributive Cache Accessing Device and Method for Accelerating to Boot Remote Diskless Computers
WO2019127017A1 (zh) 存储系统中存储设备的管理方法及装置
US9684672B2 (en) System and method for data storage
CN117112219A (zh) 主机内存数据访问的方法和装置
WO2014206232A1 (zh) 基于多内核处理器的一致性处理方法和装置
US11960419B2 (en) Systems and methods for data prefetching for low latency data read from a remote server

Legal Events

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

Ref document number: 12866154

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2012866154

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2012866154

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE