CN108228099B - 一种数据存储的方法及装置 - Google Patents

一种数据存储的方法及装置 Download PDF

Info

Publication number
CN108228099B
CN108228099B CN201711447086.2A CN201711447086A CN108228099B CN 108228099 B CN108228099 B CN 108228099B CN 201711447086 A CN201711447086 A CN 201711447086A CN 108228099 B CN108228099 B CN 108228099B
Authority
CN
China
Prior art keywords
storage
units
data
virtual
distributed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711447086.2A
Other languages
English (en)
Other versions
CN108228099A (zh
Inventor
陈之琦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Unionpay Co Ltd
Original Assignee
China Unionpay Co Ltd
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 China Unionpay Co Ltd filed Critical China Unionpay Co Ltd
Priority to CN201711447086.2A priority Critical patent/CN108228099B/zh
Publication of CN108228099A publication Critical patent/CN108228099A/zh
Application granted granted Critical
Publication of CN108228099B publication Critical patent/CN108228099B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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]
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes

Landscapes

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

Abstract

本申请实施例涉及一种数据存储的方法及装置,应用于包括分布式存储设备和集中式存储设备的存储系统;所述集中式存储设备中的存储块映射为所述分布式存储设备中的虚拟单元;所述方法包括:接收数据写入指令,所述数据写入指令携带待写入数据;将所述待写入数据划分为多个数据块,并确定每个数据块的存储位置;若确定所述多个数据块中存在至少一个数据块的存储位置为所述虚拟单元,则通过所述分布式存储设备将所述数据块发送给所述集中式存储设备;所述集中式存储设备将所述数据块存储至所述虚拟单元对应的存储块中。

Description

一种数据存储的方法及装置
技术领域
本申请实施例涉及数据处理领域,尤其涉及一种数据存储的方法及装置。
背景技术
现有的数据中心在过去长时间运行中,会采购不同公司、不同架构的存储产品。而不同公司、不同架构的存储设备不能够相互兼容,每一套自己的产品都仅支持自身厂商的管理软件。因而,不同的存储设备之间形成了信息孤岛,造成了资源的浪费,增加了运维的工作。
目前,如何将不同设备之间的壁垒打通,数据可以自由流通,是亟待解决的问题。
发明内容
本申请实施例提供一种数据存储的方法及装置,以解决不同存储设备的兼容问题,提高了不同存储设备的利用率,降低了不同存储设备的运维难度。
本申请实施例提供一种数据存储的方法,应用于包括分布式存储设备和集中式存储设备的存储系统;所述集中式存储设备中的存储块映射为所述分布式存储设备中的虚拟单元;所述方法包括:
接收数据写入指令,所述数据写入指令携带待写入数据;
将所述待写入数据划分为多个数据块,并确定每个数据块的存储位置;
若确定所述多个数据块中存在至少一个数据块的存储位置为所述虚拟单元,则通过所述分布式存储设备将所述数据块发送给所述集中式存储设备;所述集中式存储设备将所述数据块存储至所述虚拟单元对应的存储块中。
一种可能的实现方式,所述接收数据写入指令之前,还包括:
将所述分布式存储设备中的存储单元和所述虚拟单元的存储容量划分为相同的存储容量;
根据所述分布式存储设备和所述集中式存储设备的存储容量,以及所述存储单元和所述虚拟单元的存储容量,确定所述分布式存储设备中的存储单元的数量和所述虚拟单元的数量。
一种可能的实现方式,所述存储系统包括K个分布式存储设备;所述接收数据写入指令之前,所述方法还包括:
根据所述分布式存储设备中的存储单元的数量和所述虚拟单元的数量的比例,确定一个哈希环中的存储单元和虚拟单元的数量比;并根据一个哈希环中的存储单元和虚拟单元的总数量,确定一个哈希环中包括每个分布式存储设备的存储单元的数量N1和虚拟单元的数量M1;其中,一个哈希环中的存储单元和虚拟单元的总数量为K的倍数;所述N1,M1和K为大于0的正整数。
一种可能的实现方式,所述方法还包括:
在一个哈希环中,确定N1个第一存储区间,所述第一存储区间包括所有分布式存储设备的一个存储单元,并对每个第一存储区间中的存储单元进行排序;确定M1个第二存储区间,所述第二存储区间包括所有分布式存储设备的一个虚拟单元,并对每个分布式存储设备的虚拟单元进行排序;将所述N1个第一存储区间与所述M1个第二存储区间交替排序;根据所述N1个第一存储区间和所述M1个第二存储区间的排序,确定每个分布式存储设备中的每个存储单元和每个虚拟单元的标识;
所述确定每个数据块的存储位置,包括:
按照哈希函数确定每个数据块的哈希值;
将所述哈希值与标识相同的存储单元或虚拟单元的确定为所述数据块的存储位置。
一种可能的实现方式,所述通过所述分布式存储设备将所述数据块发送给所述集中式存储设备,包括:
所述分布式存储设备通过网络存储协议与所述集中式存储设备进行交互。
本申请实施例提供一种数据存储的装置,应用于包括分布式存储设备和集中式存储设备的存储系统;所述集中式存储设备中的存储块映射为所述分布式存储设备中的虚拟单元;所述装置包括:
接收单元,用于接收数据写入指令,所述数据写入指令携带待写入数据;
处理单元,用于将所述待写入数据划分为多个数据块,并确定每个数据块的存储位置;若确定所述多个数据块中存在至少一个数据块的存储位置为所述虚拟单元,则通过所述分布式存储设备将所述数据块发送给所述集中式存储设备;所述集中式存储设备将所述数据块存储至所述虚拟单元对应的存储块中。
一种可能的实现方式,所述处理单元还用于:
将所述分布式存储设备中的存储单元和所述虚拟单元的存储容量划分为相同的存储容量;
根据所述分布式存储设备和所述集中式存储设备的存储容量,以及所述存储单元和所述虚拟单元的存储容量,确定所述分布式存储设备中的存储单元的数量和所述虚拟单元的数量。
一种可能的实现方式,所述处理单元还用于:
根据所述分布式存储设备中的存储单元的数量和所述虚拟单元的数量的比例,确定一个哈希环中的存储单元和虚拟单元的数量比;并根据一个哈希环中的存储单元和虚拟单元的总数量,确定一个哈希环中包括每个分布式存储设备的存储单元的数量N1和虚拟单元的数量M1;其中,一个哈希环中的存储单元和虚拟单元的总数量为K的倍数;所述N1,M1和K为大于0的正整数。
一种可能的实现方式,所述处理单元还用于:
在一个哈希环中,确定N1个第一存储区间,所述第一存储区间包括所有分布式存储设备的一个存储单元,并对每个第一存储区间中的存储单元进行排序;确定M1个第二存储区间,所述第二存储区间包括所有分布式存储设备的一个虚拟单元,并对每个分布式存储设备的虚拟单元进行排序;将所述N1个第一存储区间与所述M1个第二存储区间交替排序;根据所述N1个第一存储区间和所述M1个第二存储区间的排序,确定每个分布式存储设备中的每个存储单元和每个虚拟单元的标识;
所述确定每个数据块的存储位置,包括:
按照哈希函数确定每个数据块的哈希值;
将所述哈希值与标识相同的存储单元或虚拟单元的确定为所述数据块的存储位置。
一种可能的实现方式,所述处理单元还用于:通过网络存储协议与所述集中式存储设备进行交互。
本申请实施例提供一种数据存储的方法及装置,应用于包括分布式存储设备和集中式存储设备的存储系统;集中式存储设备中的存储块映射为分布式存储设备中的虚拟单元,从而实现了分布式存储设备与集中式存储设备中的数据的流通,在数据写入过程中,若确定待写入数据的多个数据块中存在至少一个数据块的存储位置为虚拟单元,则通过分布式存储设备将该数据块发送给集中式存储设备;集中式存储设备将该数据块存储至虚拟单元对应的存储块中,从而解决了不同存储设备的不兼容问题,提高了不同存储设备的利用率,降低了不同存储设备的运维难度。
附图说明
图1为本申请实施例提供的一种数据存储的系统架构示意图;
图2为本申请实施例提供的一种数据存储的方法的流程示意图;
图3为本申请实施例提供的一种数据存储的结构示意图;
图4为本申请实施例提供的一种数据存储装置的结构示意图。
具体实施方式
现有的存储设备主要分为两大类,一类是以直接连接存储(Direct AttachedStorage,DAS)、网络连接存储(Network Attached Storage,NAS)和存储区域网络(StorageArea Network,SAN)等为代表的集中式存储;另一类是如部署在X86服务器上的分布式存储产品。
集中式存储设备根据服务器类型还可以将存储分类为:封闭系统的存储和开放系统的存储,封闭系统主要指大型机,AS400等服务器,开放系统指基于包括Windows、UNIX、Linux等操作系统的服务器;开放系统的存储可以分为:内置存储和外挂存储;开放系统的外挂存储根据连接的方式可以包括:直连式存储(Direct-Attached Storage,DAS)和网络化存储(Fabric-Attached Storage,FAS);开放系统的网络化存储根据传输协议又可以包括:NAS和SAN。
DAS是指将存储设备通过SCSI接口或光纤通道直接连接到一台计算机上。其中,直连式存储与服务器主机之间的连接通道通常采用小型计算机系统接口(Small ComputerSystem Interface,SCSI)连接,随着服务器CPU的处理能力越来越强,存储硬盘空间越来越大,阵列的硬盘数量越来越多,SCSI通道将会成为IO(Input/Output)端口瓶颈;服务器主机SCSI的ID资源有限,能够建立的SCSI通道连接有限。另外,直连式存储或服务器主机的升级扩展,只能由原设备厂商提供,通常受原设备厂商限制。
NAS为将存储设备通过标准的网络拓扑结构(例如,以太网),连接到一群计算机上。它以数据为中心,将存储设备与服务器彻底分离,NAS设备一般支持多计算机平台,用户通过网络支持协议可进入相同的文档,因而NAS设备可直接用于混合Unix/Windows NT局域网内,但是,NAS的一个缺点是它将存储事务由并行SCSI连接转移到了网络上,需要使用网络进行备份和恢复,占用了大量的带宽。
SAN依托光纤通道(Fibre Channel)为服务器和存储设备之间的连接提供更高的吞吐能力、支持更远的距离和更可靠的连通。SAN可以是交换式网络,也可以是共享式网络。在该网络中提供了多主机连接,但并非通过标准的网络拓扑。SAN采用的网络文件系统,作为高层协议,需要特别的文件服务器来管理磁盘数据,客户端以逻辑文件块的方式存取数据,文件服务器使用块映射存取真正的磁盘块,并完成磁盘格式和元数据管理。
综上所述,不同存储设备通常只能通过不同品牌提供的管理软件进行监控和管理。
分布式存储设备可以采用复杂指令架构计算机(Complex Instruction SetComputer,CISC)架构,例如X86服务器,或者RISC架构的服务器。
分布式部署是将数据分散的存储于多台独立的机器设备上,采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,不但解决了传统集中式存储系统中单存储服务器的瓶颈问题,还提高了系统的可靠性、可用性和扩展性。
针对集中式存储和分布式存储,两者之间由于架构的不同,互不兼容,甚者不同的集中式存储由于厂家的技术壁垒,也无法兼容,现有的技术为了简化管理步骤,现有的大型数据中心会在存储系统之上再运行一个统一管理软件,实现对不同存储设备的统一监控以及管理。在这样的使用方式下,虽能实现统一的管理与监控,简化运维复杂度,但是数据在两者之间不能进行自发的流通与迁移,单个文件只能存储在一个系统之上。难以适应灵活、多样的事务处理机制,以满足不同场景、不同业务数据对事务的不同要求。
如图1所示,本申请实施例提供一种数据存储的架构示意图,一种可能的实现方式,应用于包括分布式存储设备101-103和集中式存储设备104的存储系统;
本申请实施例中,集中式存储设备104可以为DAS、NAS和SAN等存储设备中任一种或是集合。可以根据实际需要确定,在此不做限定。本申请实施例中,以一个集中式存储设备为例进行说明,多个集中式存储设备的实施方式可以参考该实施例,在此不再赘述。在具体实施过程中,所述存储系统可以包括多个分布式存储设备,所述分布式存储设备的数量可以根据实际需要确定,在此以3个分布式存储设备101-103为例说明。
在具体实施过程中,对分布式存储设备101-103和集中式存储设备104的划分可以包括以下步骤:
步骤一、将集中式存储设备104划分为与分布式存储设备101-103的存储单元121-1212的大小相同的多个存储块;当然,可根据实际系统情况来划分存储单元与存储块的大小;
具体的划分方式可以为划分为逻辑单元号(Logical Unit Number,LUN)存储。例如,LUN的磁盘阵列可为相连的服务器分配逻辑单元号。连接服务器的方式可以为直连方式,也可以通过交换设备与服务器相连。LUN的磁盘阵列与服务器连接之后,就可以通过当前的网络接口将数据传输到磁盘阵列上。
步骤二、在分布式存储设备101-103中创建多个虚拟单元。
例如,分布式存储设备101-103可以为3个X86服务器,所述虚拟单元可以为根据不同的操作系统创建的虚拟卷。
一种可能的实现方式,分布式存储设备101-103建立的虚拟单元的个数总和与所述存储块的个数相同,并且所述虚拟单元显示的存储容量为映射的所述存储块的存储容量,以保证映射关系为一一映射。
步骤三、建立集中式存储设备104中的存储块与所述分布式存储设备101中的虚拟单元的一一映射关系。
在具体实施过程中,集中式存储设备104中的存储块与分布式存储设备建立网络连接。
一种可能的实现方式,所述分布式存储设备通过网络存储协议与所述集中式存储设备进行交互。例如,可以通过iSCSI协议,将集中式存储设备104中的存储块(LUN)与X86服务器上的虚拟卷建立映射关系,以使X86服务器可以通过网络访问所述存储块。
具体的,iSCSI协议定义了在传输控制协议(Transmission Control Protocol,TCP)/网络之间互连的协议(Internet Protocol,IP)网络发送、接收数据块级的存储数据的规则和方法。发送端将数据封装到TCP/IP包中再通过网络转发,接收端收到TCP/IP包之后,将其还原为数据并执行,完成之后将返回的数据再封装到TCP/IP包中再传送回发送端。
例如,所述集中式存储设备104中的存储块141映射为所述分布式存储设备101中的虚拟单元131。存储块141显示的存储容量为虚拟单元131的存储容量。
一种可能的实现方式,分布式存储设备101-103中的所述多个虚拟单元为平均分配的,以保证每个分布式存储设备中的虚拟单元的数量都是相同的,提高了所述存储系统的高并发和负载均衡,避免局部热点的出现。
进一步的,一种可能的实现方式,所述虚拟单元和所述存储单元的划分还包括:
将所述分布式存储设备中的存储单元和所述虚拟单元的存储容量划分为相同的存储容量;
根据所述分布式存储设备和所述集中式存储设备的存储容量,以及所述存储单元和所述虚拟单元的存储容量,确定所述分布式存储设备中的存储单元的数量和所述虚拟单元的数量。
需要说明的是,以下实施例是以分布式存储设备101为例说明的,其他分布式存储设备102-103与分布式存储设备101的设置方式相同。
因此,通过将所述分布式存储设备中的存储单元和所述虚拟单元的存储容量划分为相同的存储容量,在读写数据时,可以保证数据块在存储单元与虚拟单元中平均分配,可以提高所述存储系统的高并发和负载均衡,避免局部热点的出现,并进一步的提高所述存储系统的整体性能。
一种可能的实现方式,所述确定所述分布式存储设备中的存储单元与虚拟单元的存储容量后,还可以包括以下步骤确定每个分布式存储设备中的存储单元和虚拟单元的数量:
步骤一、根据所述分布式存储设备中的存储单元的数量N和所述虚拟单元的数量M的比例,确定一个哈希环中的存储单元和虚拟单元的数量比;
步骤二、并根据一个哈希环中的存储单元和虚拟单元的总数量,确定一个哈希环中包括每个分布式存储设备的存储单元的数量N1和虚拟单元的数量M1
其中,一个哈希环中的存储单元和虚拟单元的总数量为K的倍数。
一种可能的实现方式,所述一个哈希环中的存储单元和虚拟单元的总数量L可以满足以下公式:
L=n×(1+M/N)×K
其中,所述一个哈希环中的存储单元的数量N1和虚拟单元M1可以满足以下公式:
N1=n,M1=n×(M/N)
其中,N1和M1为大于0的正整数;n为大于0的正数。
例如,结合图1,分布式存储设备101的存储单元的数量为4,虚拟单元的数量为2,所述存储系统的分布式存储设备的数量为3。假设n取1,则所述一个哈希环中的存储单元和虚拟单元的总数量L为9,所述一个哈希环中的包括每个分布式存储设备的存储单元的数量N1为2,所述一个哈希环中的虚拟单元的数量N2为1。
由于所述存储系统中,包括12个存储单元和6个虚拟单元,因此,所述存储系统可以包括2个哈希环。
针对不同的哈希环,可以根据哈希环的顺序依次进行排序,每个哈希环中的存储单元和虚拟单元排序方式相同。
一种可能的实现方式,所述存储系统可以根据以下方式确定分布式存储设备101-103中的在一个哈希环中的存储单元和虚拟单元的标识,包括以下步骤:
步骤一、确定N1个第一存储区间,所述第一存储区间包括所有分布式存储设备的一个存储单元,并对每个第一存储区间中的存储单元进行排序;
步骤二、确定M1个第二存储区间,所述第二存储区间包括所有分布式存储设备的一个虚拟单元,并对每个分布式存储设备的虚拟单元进行排序;
步骤三、将所述N1个第一存储区间与所述M1个第二存储区间交替排序;
确定每个分布式存储设备中的每个存储单元和每个虚拟单元的标识。
举例来说,若确定分布式存储设备101-103中,分布式存储设备101包括4个存储单元121-124,和2个虚拟单元131-132;分布式存储设备102包括4个存储单元125-128,和2个虚拟单元133-134;分布式存储设备103包括4个存储单元129-1212,和2个虚拟单元135-136;
针对不同的哈希环,可以根据哈希环的顺序依次进行排序,每个哈希环中的存储单元和虚拟单元排序方式相同。
例如,所述存储系统包括2个哈希环,一个哈希环中的存储单元的数量为6,所述一个哈希环中的虚拟单元的数量为3。在第一个哈希环301中:包括2个第一存储区间,1个第二存储区间:
所述2个第一存储区间为:存储单元121,存储单元125,存储单元129;存储单元122,存储单元126,存储单元1210;
所述1个第二存储区间为:虚拟单元131,虚拟单元133,虚拟单元135;
在第二个哈希环302中,包括2个第一存储区间,1个第二存储区间:
所述2个第一存储区间为:
存储单元123,存储单元127,存储单元1211;存储单元124,存储单元128,存储单元1212。
所述1个第二存储区间为:
虚拟单元132,虚拟单元134,虚拟单元136。
其中,虚拟单元131-136分别映射至存储块141-146。
第一个哈希环301中,排序方式可以根据如图3所示的顺序标识为1-9:
存储单元121,存储单元125,存储单元129;虚拟单元131,虚拟单元133,虚拟单元135;存储单元122,存储单元126,存储单元1210;
第二个哈希环302中,排序方式可以根据如图3所示的顺序标识为1-9:
存储单元123,存储单元127,存储单元1211;虚拟单元132,虚拟单元134,虚拟单元136;存储单元124,存储单元128,存储单元1212。
当然,还可以按照其他排序方式,以实现所述N个第一存储区间和所述M个第二存储区间交替排序,在此不做限定。
通过该分配方法,可以使同一分布式存储设备中的不同存储单元和虚拟单元平均分布,以及多个分布式存储设备平均分布,有效的避免了局部热点的出现,保证所述存储系统的高并发以及负载均衡,提高了系统的高可用性。
一种可能的实现方式,可以将确定的每个分布式存储设备中的每个存储单元和每个虚拟单元的标识,映射到一个哈希环中,哈希环的大小为所有存储单元和虚拟单元的总和。
本申请实施例,可以通过iSCSI协议划分逻辑单元号的方式,将集中式存储划分为不同的虚拟卷,并挂载于分布式存储的X86服务器上。通过循环分配ID并映射的方式,间隔分配逻辑卷与虚拟卷,实现其在哈希环上的均匀分布,并配合哈希函数,完成存储资源虚拟化,实现数据的统一存储。
如图2所示,本申请实施例提供一种数据存储的方法流程示意图,所述方法包括以下步骤:
步骤201:接收数据写入指令;所述数据写入指令携带待写入数据;
步骤202:将所述待写入数据划分为多个数据块,并确定每个数据块的存储位置;
步骤203:若确定所述多个数据块中存在至少一个数据块的存储位置为所述虚拟单元,则通过所述分布式存储设备将所述数据块发送给所述集中式存储设备;所述集中式存储设备将所述数据块存储至所述虚拟单元对应的存储块中。
在步骤202中,所述数据块的大小可以根据所述存储系统的规定进行分割,例如,4KB,8KB等,在此不做限定。
一种可能的实现方式,每个数据块的存储位置的确定方法,可以包括以下步骤:
步骤一、按照哈希函数确定每个数据块的哈希值;
步骤二、将所述哈希值与标识相同的存储单元或虚拟单元的确定为所述数据块的存储位置。
其中,所述哈希函数可以为现有技术中的任一种,在此不再赘述。
在步骤二中,一种可能的实现方式,可以对确定的每个数据块的哈希函数值取余,即Hash(key)%L;将商确定为所述数据块的存储的哈希环的标识,余数确定为所述数据块存储在该哈希环标识相同的存储单元虚拟单元中。其中,所述L为所述存储系统中一个哈希环中存储单元和虚拟单元的总数量。
举例来说,L为9,若确定所述待写入数据的数据块的哈希函数值为16,则将16%9,则确定所述数据块的哈希值为7,存储至第二个哈希环中的标识为7的存储单元128。
在步骤203中,一种可能的实现方式,结合图1,举例来说,分布式存储设备101接收所述待写入数据,并确定所述待写入数据的多个数据块中有一个数据块需要存储至虚拟单元131中,则可以包括以下步骤:
步骤一、分布式存储设备101确定所述虚拟单元131映射的集中式存储设备104的存储块141,并向集中式存储设备104发送数据块写入指令;所述数据块写入指令包括所述数据块,以及所述数据块的存储位置:存储块141;
其中,所述写入指令可以通过iSCSI协议在TCP/IP网络发送。
步骤二、集中式出存储设备104接收到所述数据块写入指令后,解析所述写入指令中的所述数据块以及所述数据块的存储位置;
步骤三、集中式出存储设备104完成写入所述数据块后,向分布式存储设备101发送完成写入的响应;
步骤四、分布式存储设备101接收所述完成写入的响应后,确定所述数据块写入成功。
一种可能的实现方式,在所述存储系统确定所述待写入数据写入完成后,可以将所述待写入数据的数据属性信息,所述待写入数据的数据块的信息存储至元数据中;其中,所述数据块的信息包括所述待写入数据的数据块的划分顺序,以及每个数据块的存储位置等。
本申请实施例提供一种数据存储的方法,包括以下步骤:
步骤一、接收数据读取指令,所述数据读取指令携带待读取数据;
步骤二、在元数据中获取所述待读取数据的数据属性信息,所述待读取数据的数据块的信息等;
步骤三、根据所述待读取数据的数据块的划分顺序以及每个数据块的存储位置,在对应的存储位置读取对应的数据块;
步骤四、判断所述多个数据块中是否存在至少一个数据块的存储位置为所述存储系统的所述虚拟单元;若是,则转至步骤六,若否,则转至步骤五;
步骤五、向存储位置为所述存储系统中的存储单元对应的分布式存储设备发送读取指令,读取对应的所述待读取数据的数据块;
例如,数据块1的存储位置为存储单元121,则向分布式存储设备101发送所述读取指令,并读取数据块1。
步骤六、向存储位置为所述存储系统中的所述虚拟单元发送读取指令;
步骤七、所述分布式存储设备根据所述虚拟单元映射的所述集中式存储设备的存储块,向所述集中式存储设备发送读取所述数据块的读取指令;
步骤八、所述集中式存储设备根据所述数据块的读取指令,读取所述存储块的所述数据块,并将所述数据块发送至所述分布式存储设备;
步骤九、所述分布式存储设备将所述数据块上报至所述存储系统;
步骤十、若确定所述待读取数据中的所有数据块全部读取,则根据元数据中的数据块的划分顺序读取所述待读取数据。
如图4所示,本申请实施例提供一种数据存储的装置,其特征在于,应用于包括分布式存储设备和集中式存储设备的存储系统;所述集中式存储设备中的存储块映射为所述分布式存储设备中的虚拟单元;所述装置包括:
接收单元401,用于接收数据写入指令,所述数据写入指令携带待写入数据;
处理单元402,用于将所述待写入数据划分为多个数据块,并确定每个数据块的存储位置;若确定所述多个数据块中存在至少一个数据块的存储位置为所述虚拟单元,则通过所述分布式存储设备将所述数据块发送给所述集中式存储设备;所述集中式存储设备将所述数据块存储至所述虚拟单元对应的存储块中。
一种可能实现方式,处理单元402还用于:
将所述分布式存储设备中的存储单元和所述虚拟单元的存储容量划分为相同的存储容量;
根据所述分布式存储设备和所述集中式存储设备的存储容量,以及所述存储单元和所述虚拟单元的存储容量,确定所述分布式存储设备中的存储单元的数量和所述虚拟单元的数量。
一种可能实现方式,处理单元402还用于:
根据所述分布式存储设备中的存储单元的数量和所述虚拟单元的数量的比例,确定一个哈希环中的存储单元和虚拟单元的数量比;并根据一个哈希环中的存储单元和虚拟单元的总数量,确定一个哈希环中包括每个分布式存储设备的存储单元的数量N1和虚拟单元的数量M1;其中,一个哈希环中的存储单元和虚拟单元的总数量为K的倍数;所述N1,N2和K为大于0的正整数。
一种可能实现方式,处理单元402还用于:
在一个哈希环中,确定N1个第一存储区间,所述第一存储区间包括所有分布式存储设备的一个存储单元,并对每个第一存储区间中的存储单元进行排序;确定M1个第二存储区间,所述第二存储区间包括所有分布式存储设备的一个虚拟单元,并对每个分布式存储设备的虚拟单元进行排序;将所述N1个第一存储区间与所述M1个第二存储区间交替排序;根据所述N个第一存储区间和所述M个第二存储区间的排序,确定每个分布式存储设备中的每个存储单元和每个虚拟单元的标识;
所述确定每个数据块的存储位置,包括:
按照哈希函数确定每个数据块的哈希值;
将所述哈希值与标识相同的存储单元或虚拟单元的确定为所述数据块的存储位置。
一种可能实现方式,处理单元402还用于:通过网络存储协议与所述集中式存储设备进行交互。
本申请实施例中的方法及装置,应用于包括分布式存储设备和集中式存储设备的存储系统;所述集中式存储设备中的存储块映射为所述分布式存储设备中的虚拟单元,在数据写入过程中,若确定待写入数据的多个数据块中存在至少一个数据块的存储位置为虚拟单元,则通过分布式存储设备将该数据块发送给集中式存储设备;集中式存储设备将该数据块存储至虚拟单元对应的存储块中,从而实现了分布式存储与集中式存储系统之间的存储系统的融合,统一提供服务,数据块可以随机分布在分布式存储设备和集中式存储设备上,有效的消除了不同存储设备的技术壁垒,实现了分布式存储设备与集中式存储设备中的数据的流通,解决了不同存储设备的不兼容问题,提高了不同存储设备的利用率,降低了不同存储设备的运维难度。
本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储设备(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (8)

1.一种数据存储的方法,其特征在于,应用于包括分布式存储设备和集中式存储设备的存储系统;所述存储系统包括K个分布式存储设备;所述集中式存储设备中的存储块映射为所述分布式存储设备中的虚拟单元;所述方法包括:
根据所述分布式存储设备中的存储单元的数量和所述虚拟单元的数量的比例,确定一个哈希环中的存储单元和虚拟单元的数量比;并根据一个哈希环中的存储单元和虚拟单元的总数量,确定一个哈希环中包括每个分布式存储设备的存储单元的数量N1和虚拟单元的数量M1;其中,一个哈希环中的存储单元和虚拟单元的总数量为K的倍数;所述N1,M1和K为正整数;
接收数据写入指令,所述数据写入指令携带待写入数据;
将所述待写入数据划分为多个数据块,并确定每个数据块的存储位置;
若确定所述多个数据块中存在至少一个数据块的存储位置为所述虚拟单元,则通过所述分布式存储设备将所述数据块发送给所述集中式存储设备;所述集中式存储设备将所述数据块存储至所述虚拟单元对应的存储块中。
2.如权利要求1所述的方法,其特征在于,所述接收数据写入指令之前,还包括:
将所述分布式存储设备中的存储单元和所述虚拟单元的存储容量划分为相同的存储容量;
根据所述分布式存储设备和所述集中式存储设备的存储容量,以及所述存储单元和所述虚拟单元的存储容量,确定所述分布式存储设备中的存储单元的数量和所述虚拟单元的数量。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
在一个哈希环中,确定N1个第一存储区间,所述第一存储区间包括所有分布式存储设备的一个存储单元,并对每个第一存储区间中的存储单元进行排序;确定M1个第二存储区间,所述第二存储区间包括所有分布式存储设备的一个虚拟单元,并对每个分布式存储设备的虚拟单元进行排序;将所述N1个第一存储区间与所述M1个第二存储区间交替排序;根据所述N1个第一存储区间和所述M1个第二存储区间的排序,确定每个分布式存储设备中的每个存储单元和每个虚拟单元的标识;
所述确定每个数据块的存储位置,包括:
按照哈希函数确定每个数据块的哈希值;
将所述哈希值与标识相同的存储单元或虚拟单元的确定为所述数据块的存储位置。
4.如权利要求1所述的方法,其特征在于,所述通过所述分布式存储设备将所述数据块发送给所述集中式存储设备,包括:
所述分布式存储设备通过网络存储协议与所述集中式存储设备进行交互。
5.一种数据存储的装置,其特征在于,应用于包括分布式存储设备和集中式存储设备的存储系统;所述存储系统包括K个分布式存储设备;所述集中式存储设备中的存储块映射为所述分布式存储设备中的虚拟单元;所述装置包括:
接收单元,用于接收数据写入指令,所述数据写入指令携带待写入数据;
处理单元,用于根据所述分布式存储设备中的存储单元的数量和所述虚拟单元的数量的比例,确定一个哈希环中的存储单元和虚拟单元的数量比;并根据一个哈希环中的存储单元和虚拟单元的总数量,确定一个哈希环中包括每个分布式存储设备的存储单元的数量N1和虚拟单元的数量M1;其中,一个哈希环中的存储单元和虚拟单元的总数量为K的倍数;所述N1,M1和K为正整数;将所述待写入数据划分为多个数据块,并确定每个数据块的存储位置;若确定所述多个数据块中存在至少一个数据块的存储位置为所述虚拟单元,则通过所述分布式存储设备将所述数据块发送给所述集中式存储设备;所述集中式存储设备将所述数据块存储至所述虚拟单元对应的存储块中。
6.如权利要求5所述的装置,其特征在于,所述处理单元还用于:
将所述分布式存储设备中的存储单元和所述虚拟单元的存储容量划分为相同的存储容量;
根据所述分布式存储设备和所述集中式存储设备的存储容量,以及所述存储单元和所述虚拟单元的存储容量,确定所述分布式存储设备中的存储单元的数量和所述虚拟单元的数量。
7.如权利要求5或6所述的装置,其特征在于,所述处理单元还用于:
在一个哈希环中,确定N1个第一存储区间,所述第一存储区间包括所有分布式存储设备的一个存储单元,并对每个第一存储区间中的存储单元进行排序;确定M1个第二存储区间,所述第二存储区间包括所有分布式存储设备的一个虚拟单元,并对每个分布式存储设备的虚拟单元进行排序;将所述N1个第一存储区间与所述M1个第二存储区间交替排序;根据所述N1个第一存储区间和所述M1个第二存储区间的排序,确定每个分布式存储设备中的每个存储单元和每个虚拟单元的标识;
所述确定每个数据块的存储位置,包括:
按照哈希函数确定每个数据块的哈希值;
将所述哈希值与标识相同的存储单元或虚拟单元的确定为所述数据块的存储位置。
8.如权利要求5所述的装置,其特征在于,所述处理单元还用于:通过网络存储协议与所述集中式存储设备进行交互。
CN201711447086.2A 2017-12-27 2017-12-27 一种数据存储的方法及装置 Active CN108228099B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711447086.2A CN108228099B (zh) 2017-12-27 2017-12-27 一种数据存储的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711447086.2A CN108228099B (zh) 2017-12-27 2017-12-27 一种数据存储的方法及装置

Publications (2)

Publication Number Publication Date
CN108228099A CN108228099A (zh) 2018-06-29
CN108228099B true CN108228099B (zh) 2021-01-26

Family

ID=62649060

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711447086.2A Active CN108228099B (zh) 2017-12-27 2017-12-27 一种数据存储的方法及装置

Country Status (1)

Country Link
CN (1) CN108228099B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3798812A4 (en) 2018-06-27 2021-06-30 Huawei Technologies Co., Ltd. STORAGE SYSTEM AND METHOD FOR CHANGING THE MODE OF OPERATION OF THE STORAGE SYSTEM
CN109951394B (zh) * 2019-03-11 2021-04-27 中国银联股份有限公司 一种确定交易系统的虚拟节点数量的方法及装置
CN114047874B (zh) * 2021-10-20 2024-05-07 北京天融信网络安全技术有限公司 一种基于tcmu虚拟设备的数据存储系统和方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7379990B2 (en) * 2002-08-12 2008-05-27 Tsao Sheng Ted Tai Distributed virtual SAN
CN101625627B (zh) * 2009-08-05 2012-03-21 成都市华为赛门铁克科技有限公司 写入数据的方法、磁盘冗余阵列的控制器及磁盘冗余阵列
CN102546830B (zh) * 2012-02-27 2015-06-24 辛旻 一种服务器中实现存储的方法和系统
CN106648462B (zh) * 2016-11-21 2019-10-25 华为技术有限公司 数据存储方法及装置

Also Published As

Publication number Publication date
CN108228099A (zh) 2018-06-29

Similar Documents

Publication Publication Date Title
US10838620B2 (en) Efficient scaling of distributed storage systems
US7653801B2 (en) System and method for managing metrics table per virtual port in a logically partitioned data processing system
CN103765371B (zh) 导出作为存储对象的逻辑卷的数据存储系统
US7480742B2 (en) Method for virtual adapter destruction on a physical adapter that supports virtual adapters
US7546386B2 (en) Method for virtual resource initialization on a physical adapter that supports virtual resources
CN103748545B (zh) 数据存储系统和数据存储控制方法
US7543084B2 (en) Method for destroying virtual resources in a logically partitioned data processing system
CN106168884B (zh) 访问对象存储系统的计算机系统
US20060195618A1 (en) Data processing system, method, and computer program product for creation and initialization of a virtual adapter on a physical adapter that supports virtual adapter level virtualization
US20060195848A1 (en) System and method of virtual resource modification on a physical adapter that supports virtual resources
US10761859B2 (en) Information processing system, management device, and method for controlling information processing system
CN108228099B (zh) 一种数据存储的方法及装置
US10936522B1 (en) Performing input-output multi-pathing from user space
US11379387B2 (en) Storage system with submission queue selection utilizing application and submission queue priority
CN105739930A (zh) 一种存储架构及其初始化方法和数据存储方法及管理装置
US10782889B2 (en) Fibre channel scale-out with physical path discovery and volume move
US11526283B1 (en) Logical storage device access using per-VM keys in an encrypted storage environment
US11640245B2 (en) Logical storage device access in an encrypted storage environment
US11032373B1 (en) Host-based bandwidth control for virtual initiators
US11822706B2 (en) Logical storage device access using device-specific keys in an encrypted storage environment
US11782611B2 (en) Logical storage device access using device-specific keys in an encrypted storage environment
US11543971B2 (en) Array driven fabric performance notifications for multi-pathing devices
US11256446B1 (en) Host bus adaptor (HBA) virtualization aware multi-pathing failover policy
US11392459B2 (en) Virtualization server aware multi-pathing failover policy
US11983432B2 (en) Load sharing of copy workloads in device clusters

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant