CN111158587A - 基于存储池虚拟化管理的分布式存储系统及数据读写方法 - Google Patents
基于存储池虚拟化管理的分布式存储系统及数据读写方法 Download PDFInfo
- Publication number
- CN111158587A CN111158587A CN201911254575.5A CN201911254575A CN111158587A CN 111158587 A CN111158587 A CN 111158587A CN 201911254575 A CN201911254575 A CN 201911254575A CN 111158587 A CN111158587 A CN 111158587A
- Authority
- CN
- China
- Prior art keywords
- data
- osd
- storage
- storage pool
- vosd
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
Abstract
本发明公开了一种基于存储池虚拟化管理的分布式存储系统及数据读写方法,该存储系统中至少存在一个存储服务器上的部分或全部OSD是部署在存储池上虚拟卷的vOSD;存储池为单个存储服务器上所有或部分物理硬盘构成的存储池,物理硬盘为HDD盘和/或SSD盘。数据通过随机算法按设定的数据分布策略进行保存,更进一步,存储池不仅保存vOSD的数据块,同时保存每个对应数据块的校验码以确保数据的完整性和一致性。本发明通过磁盘池化与虚拟化管理并与跨节点的RAID保护相结合实现两层数据保护,只需存储主从两副本即具有三副本相同或相近的数据保护和业务连续能力。并能够有效避免OSD负载不均匀导致的IO瓶颈,大幅降低成本,同时保证数据的完整性和一致性。
Description
技术领域
本发明属于分布式存储技术领域,涉及一种新型分布式存储的实现方法,具体涉及一种基于存储池虚拟化管理的分布式存储系统及数据读写方法。
背景技术
随着数字化转型的深入,海量数据对存储提出了新的要求。传统磁盘阵列虽然有技术成熟、性能良好、可用性高等优点,但面对海量数据,其缺点也越来越明显:如扩展性差、成本高等。为了克服上述缺点,满足海量数据的存储需求,市场上出现了分布式存储技术。
分布式存储系统,通常包括多个存储服务器(存储节点),以及多个客户端组成。其核心是将大量的数据或文件,通过随机算法如CRUSH或HASH均匀分布到多个存储服务器上。分布式存储有多种实现技术,如Ceph、GlusterFS、HDFS、GFS、Lizardfs、Swift等。超融合系统通常使用分布式存储技术作为其核心的存储系统。
以Ceph为例,集群由多个存储节点构成,每个节点具有多个OSD(Object StorageDevice),负责响应客户端IO请求保存及返回具体数据。每个OSD直接对应于该节点上的某个硬盘。Ceph推荐采用三副本的方式保护数据,即每个数据块需要分布保存在3个不同的OSD上。
Ceph采用自身提供的CRUSH算法,在大规模集群下,实现数据的快速、准确存放,同时能够在硬件故障或扩展硬件设备时,做到尽可能小的数据迁移,其原理如下:当用户要将数据存储到集群时,数据先被分割成多个object,(每个object一个object id,大小可设置,默认是4MB),object是Ceph存储的最小存储单元。由于object的数量很多,为了有效减少了object到OSD的索引表、降低元数据的复杂度,使得写入和读取更加灵活,引入了PG(Placement Group):PG用来管理object,每个object通过HASH,映射到某个PG中,一个PG可以包含多个object。PG再通过CRUSH计算,映射到OSD中。在三副本情况下,每个PG都会映射到三个OSD,保证了数据的冗余。
将OSD直接部署在物理硬盘带来以下几个问题:1)单个OSD(硬盘)上的工作负载呈现随机分布,当其中某些OSD工作负载比较大时,容易构成IO瓶颈;2)硬盘故障时,会导致OSD数据重建,对业务影响比较大;3)无法使用固态硬盘(SSD)对OSD进行加速。为了获得最佳IO性能,通常的做法是将3个副本都部署在SSD上,但缺点是由于SSD单位容量价格比机械硬盘(HDD)仍高出数倍。
发明内容
发明目的:针对现有技术中OSD直接部署在物理硬盘带来的问题,本发明目的在于提供一种新型的基于存储池虚拟化管理的分布式存储系统,通过将节点内的全部或部分磁盘进行池化与虚拟化管理,并与跨节点的RAID保护相结合实现两层数据保护,以虚拟卷为基础构建集群的OSD,即vOSD,使得vOSD上的工作负载均匀分布在支撑vOSD的存储池的所有磁盘上,有效避免OSD负载不均匀导致的IO瓶颈;进一步地,本发明提供一种上述存储系统的数据读写方法,以提升系统整体的IO性能,并节约成本。
技术方案:为实现上述发明目的,本发明采用如下技术方案:
基于存储池虚拟化管理的分布式存储系统,包括多个存储服务器,每个存储服务器上具有多个OSD,所述存储系统中至少存在一个存储服务器上的部分或全部OSD是部署在存储池上虚拟卷的虚拟OSD(vOSD);所述存储系统中所有OSD都为vOSD,或者存在部分存储服务器上的全部或部分OSD是部署在SSD盘上的OSD;所述存储池为单个存储服务器上所有物理硬盘或部分物理硬盘构成的存储池,所述物理硬盘为HDD盘和/或SSD盘;数据通过随机算法按照设定的数据分布策略保存在所述分布式存储系统中的vOSD,或OSD及vOSD上。
作为优选,所述存储系统中存储的数据块由主副本和从副本两份镜像数据构成,主副本部署在基于SSD的OSD上,从副本部署在基于存储池虚拟卷的vOSD上。在读取用户数据时,优先从基于SSD的OSD中读出。
作为另一优选,所述存储系统中存储的数据块有主副本和从副本两份镜像数据构成,主从副本均部署在基于存储池虚拟卷的vOSD上。
作为优选,所述存储池为通过条带技术和RAID1、条带技术和RAID5、条带技术和RAID6构成的RAID10、RAID50或RAID60管理的存储池。
作为优选,每个存储服务器上配置有MON进程服务,用于监控分布式存储中各个OSD和/或vOSD的状态。
作为优选,所述存储池中配置一个或多个SSD盘,用于存放该存储池管理用的元数据或热数据。
本发明另一方面提供的所述基于存储池虚拟化管理的分布式存储系统的数据读写方法,包括:在写入用户数据时,将用户数据分割成多个对象块,每个对象块通过随机算法映射到某个PG中,PG通过设定的数据分布策略映射到OSD中,存在基于SSD的OSD时,配置基于SSD的OSD为主OSD,仅用于保存主PG的数据,配置vOSD成为从OSD,仅用于保存从PG的数据;每个对象块的主从两副本,分别保存在主OSD和从vOSD中;在读取用户数据时,优先从基于SSD的OSD中读出。
在具体实施时,所述的随机算法包括CRUSH算法或HASH算法,所述的数据分布策略,可以有多种。比如常见的随机分布策略,数据按某种随机算法分布在存储系统中所有的OSD中;按权重分布策略,每个OSD对应一个权重系数,权重系数高的OSD分配到的数据多一些,而权重系数小的OSD分配到的数据少一些;按故障域分布策略,即限制数据的多个副本不能分配到同一个故障域,比如不能在同一个存储节点,或不能在同一个机柜,或不能在同一供电区域等;按OSD分布策略,如本发明所述的,主PG必须映射到基于SSD的OSD中,形成主OSD,而从PG必须映射到基于存储池虚拟卷的vOSD中,形成从OSD。上述多个策略之间可以进行组合,产生新的数据分布策略。
作为优选,基于Log-Structured方式的实现vOSD的数据写入,即数据块先组织为一个具有RAID保护的一个条带,将该条带按存储池物理地址顺序写入;每个数据块在写入时同时生成一个固定长度的校验码,将该校验码单独保持;读数据时,同时读出数据块和校验码,并用校验码去检验该数据块是否匹配,若匹配则返回数据;否则利用RAID的冗余功能修复数据。
作为优选,数据块在构成条带时,先经过数据压缩,再将压缩过的数据组成具有RAID保护能力的条带,按存储池的物理地址顺序写入磁盘。
在具体实施时,存储池虚拟化管理的实现,除了上述通过软件的方式实现Log-Structured管理,也可以通过硬件RAID控制卡(器)来代替,缺点是普通硬件RAID卡无法实现Log-Structured管理,但仍然可以实现vOSD的负载均衡。vOSD可以是某个存储节点上的硬件RAID控制卡(器)上的某个RAID组,或者基于多个RAID组构成条带上的其中一个虚拟卷,即多个vOSD由多个RAID组构成一个条带来共同支撑。
有益效果:与现有技术相比,本发明具体如下优点:
1、本发明通过将单个存储服务器上的硬盘构成存储池,在该存储池的基础上虚拟出来多个虚拟磁盘,以虚拟磁盘为基础构建集群的vOSD,由于vOSD的工作负载分布在节点所有硬盘上,因此可有效避免OSD负载不均匀导致的IO瓶颈。
2、本发明利用存储池的冗余技术,可以实现当硬盘出现故障时,存储池仍然可以正常工作,不影响vOSD的正常运行。同时,可使用固态硬盘保存存储池的元数据和热点数据,对该存储池(以及其上的vOSD)进行加速。
3、本发明的半闪存分布式存储系统可采用主从副本方案,主副本保存在基于固态硬盘的OSD中,而从副本保持在混合HDD和SSD构建的统一存储池上的vOSD上。该方案具有与三副本相同或相近的数据保护和业务连续能力,且具有与全闪存分布式存储相近的(读)性能,但成本却大幅度降低。
4、本发明将所有磁盘进行池化管理,建立vOSD并采用分布式算法实现跨节点的RAID保护(如两副本或分布式纠删码)相结合实现两层数据保护,vOSD的部署方式与直接部署在物理磁盘上的OSD相比,具有负载自动均衡、抵御磁盘故障、具备SSD加速功能等优势。
5、本发明可应用于IT基础架构中的存储系统,各种云计算平台的分布式云存储以及超融合等诸多IT细分市场,具有广泛的应用前景。
附图说明
图1为本发明一种实施例的分布式存储系统总体架构图,其中各个存储节点既有部署在SSD盘上的OSD,也有部署在存储池虚拟卷的vOSD。
图2为本发明另一种实施例的分布式存储系统总体架构图,其中部分存储节点部署基于SSD盘的OSD,部分节点部署基于存储池虚拟卷的vOSD。
图3为本发明第三种实施例的分布式存储系统总体架构图,主从副本均部署在基于存储池虚拟卷的vOSD。
图4为本发明实施例中半闪存分布式存储系统数据存储结构示意图,其中主副本为基于SSD的OSD,从副本为基于存储池虚拟卷的vOSD。
图5为本发明实施例中混合闪存分布式存储系统数据存储结构示意图,其中主从副本均为基于存储池虚拟卷的vOSD,SSD用于存储池的缓存加速。
图6为本发明实施例中存储节点内的存储虚拟化管理原理图。
图7为本发明实施例中存储虚拟化管理中的Log-structured数据写入管理示意图。
具体实施方式
下面结合附图和具体实施例,对本发明做进一步说明。
针对现有技术中OSD直接部署在物理硬盘存在的问题,本发明公开的分布式存储通过存储池虚拟化技术,构建具有容错能力、固态硬盘加速、负载均衡的vOSD,实现新型的半闪存分布式存储系统,即每个数据块由两份镜像数据构成,主副本和从副本,主副本部署在基于SSD的OSD上,从副本部署在基于存储池的vOSD上,读IO优先选择主副本的OSD。为进一步优化存储池的写性能,存储池采用Log-Structured写入模式,数据尽可能按顺序的方式写入机械硬盘,以最大限度发挥机械硬盘带宽能力。
首先对OSD虚拟化进行详细说明:常见的分布式存储中,各个节点上的物理磁盘(HDD或SSD),作为OSD来参与数据的随机分布。为避免前述的OSD直接部署在物理硬盘存在的一些问题,本发明首先通过软件实现手段,将单个节点上的所有磁盘,通过RAID技术,构建为一个统一的具有容错能力的存储池,例如通过条带技术和RAID1(镜像),条带技术和RAID5(单检验盘),条带技术和RAID6(双校验盘),构成一个RAID10,RAID50,或RAID60管理的存储池。根据具体RAID级别,这样构成的存储池可以抵御一个或多个磁盘故障,并保证业务可以连续进行。其次,在存储池之上,通过软件方式实现卷管理,实现以下几个核心功能:1)创建多个虚拟OSD;2)通过一个元数据管理模块,实现基于Log-Structured方式的vOSD数据按顺序方式写入,将随机的vOSD工作流尽可能顺序化,充分利用磁盘的高带宽来弥补机械硬盘IOPS的短板。3)每个数据块在写入时同时生成一个固定长度(如256位)的校验码,将该校验码单独保持;读数据时,同时读出数据块和校验码,并用校验码去检验该数据块是否匹配,若匹配,则返回数据给前端应用;否则利用RAID的冗余功能修复数据;4)数据块在写入时,允许数据块先经过数据压缩,如LZ4,GZIP1-9等压缩算法,然后将压缩过的数据写入磁盘;以节省存储空间。5)存储池配置一个或多个固态硬盘,其中存储池管理用的元数据或热数据自动放置在固态硬盘中,起到加速的作用。
分布式存储在生产系统中推荐使用三副本实现数据保护和业务连续。在全闪存分布式存储系统中,三副本意味着高昂的成本。本发明新型的半闪存方案,采用主从副本方案,主副本保存在基于固态硬盘的OSD中,而从副本保持在混合HDD和SSD构建的统一存储池上的vOSD上。由于从副本所在的存储池基于RAID保护功能,因此主从副本方案具有与三副本相同或相近的数据保护和业务连续能力。在此方案中,在写操作流程中,数据先写入主副本所在的基于SSD的OSD中,然后再写入混合存储池的vOSD。由于混合存储池采用了优化写性能的Log-structured模式,vOSD的写性能可以做到接近基于SSD的OSD的水平,或者相差不大的水平。在读操作流程中,数据优先从基于SSD的OSD中读出,因而总体上可以获得接近全闪存分布式存储系统的性能。
具体地,如图1所示,为本发明一种实施例的分布式存储系统总体架构图,其中各个存储节点既有部署在SSD盘上的OSD,也有部署在存储池虚拟卷的vOSD。该图中显示3个存储服务器构成一个存储集群,但并不限于3个节点。分布式存储的一个重要特征是横向扩展,支持节点数可以从3个节点到数百个节点。每个存储服务器使用2x 10Gb网络连接到前端业务网络,为前端业务服务器提供存储服务。每个存储服务器使用2x 10Gb网络连接到后端存储网络,该网络为OSD、vOSD之间提供通信和数据传输服务。每个存储服务器上配置有MON进程服务,用于监控分布式存储中各个OSD及vOSD的状态。OSD是分布式存储的基本数据存储单位,当用户要将数据存储到集群时,数据先被分割成多个对象块(object),(每个对象块用一个对象id来索引,其大小可设置,默认是4MB)。一个对象块需要两副本或三副本来实现数据冗余保护,通过PG的多副本来实现,在两副本情况下,每个PG都会映射到两个不同的OSD,在三副本情况下,每个PG都会映射到三个OSD,保证了数据的冗余。在对象块写入时,数据先写入一个主PG,然后由这个主PG负责将数据复制到一个或多个从PG。在需要读数据时,数据从主PG,而不是从PG中读出数据。当主PG所在的OSD发生故障时,某个从PG会被选中,升级为主PG。在默认情况下,一个OSD既含有主PG,也包含从PG。通过配置CRUSH算法,可以控制某些OSD全部用于主PG(称之为主OSD),某些OSD全部用于从PG(从OSD)。
每个存储节点配置有固态硬盘(SSD),以及机械硬盘。其中,SSD可用于构建直接OSD,通过CRUSH算法控制数据分布策略,使基于SSD的OSD仅用于保存主PG数据,也称为主OSD。而部分SSD和机械硬盘则构建为一个统一的存储池,通过软件实现RAID管理,虚拟卷管理等高级功能,在其上通过虚拟卷构建vOSD,作为分布式存储的基础数据存储单位,作为从OSD。
如图2所示,为本发明另一种实施例的分布式存储系统总体架构图,其中部分存储节点部署基于SSD盘的OSD,部分节点部署基于存储池虚拟卷的vOSD。其中存储服务器1与存储服务器3上磁盘全部为SSD,用于构建基于SSD的OSD,存储服务器2则将所有磁盘(可以含有SSD作为加速盘)构建为一个统一的存储池,在该存储池的虚拟卷上构建vOSD。
如图3所示,为本发明第三种实施例的分布式存储系统总体架构图,其主从副本均部署在基于存储池虚拟卷的vOSD。存储服务器1,2,3将所有磁盘(可以含有SSD作为加速盘)构建为一个统一的存储池,在该存储池的虚拟卷上构建vOSD。
图4为本发明的半闪存分布式存储系统结构图,其中主副本为基于SSD的OSD,从副本为基于存储池虚拟卷的vOSD。用户数据先被分割成多个对象块(object),每个对象块通过HASH,映射到某个PG中。PG再通过CRUSH计算或其他某种随机算法,映射到OSD中。通过设置相应的CRUSH配置,使得由SSD构成的OSD成为主OSD,仅用于保存主PG的数据,而由虚拟机构成的vOSD成为从OSD,仅用于保存从PG的数据。每个对象块具有两副本,分别保存在主OSD和从vOSD中。尽管用户数据只有两个副本,但由于支持vOSD的存储池具有RAID保护机制,因此该存储系统具备与三副本相似的数据保护能力。在读数据操作过程中,数据优先从基于SSD的OSD中读出,可充分发挥SSD具有的远高于机械硬盘的IO性能。
图5为本发明的混合闪存分布式存储系统结构图,其中主从副本均为基于存储池虚拟卷的vOSD,在存储池构建中,可使用SSD用于存储池的缓存加速。用户数据先被分割成多个对象块(object),每个对象块通过CRUSH或HASH算法,映射到某个PG中。PG再通过设定的某种数据分布策略,映射到OSD中。通过配置将主从副本都保存在vOSD中。每个vOSD既有主PG,也支持从PG。尽管用户数据只有两个副本,但由于支持vOSD的存储池具有RAID保护机制,因此该存储系统具备与三副本相似或更高的数据保护能力。
存储节点上的存储虚拟化管理原理如图6所示,在最底层是通过软件实现存储池化功能,即RAID功能和条带管理功能,管理该节点全部或部分磁盘,既可以全部是HDD,也全部是SSD,也可以是混合HDD/SSD。图示是两组2+1RAID5,数据块D1、D2生成校验数据块,构成一个RAID条带,分布在不同的3个硬盘中。其中任何一个硬盘损坏,可通过另外两个硬盘上的数据,实现数据恢复。数据块D3、D4生成校验数据块,构成另外一个RAID条带,分布在不同的3个硬盘中。RAID条带管理为虚拟卷管理提供受保护的物理地址空间(PBA,physicalblock address)。虚拟卷管理在一个统一的PBA(集合了所有磁盘的有效存储空间)的基础上,通过Log-structured数据IO管理功能,为该存储节点上的vOSD提供虚拟卷。虚拟机管理的核心功能是,完成各个虚拟卷的数据逻辑地址LBA到PBA的转换,即元数据的管理。Log-structured数据IO管理功能,能够将各个虚拟卷的随机IO写入工作流汇集,以顺序的方式写入PBA地址空间,最大限度发挥存储池的带宽能力,提升vOSD的写性能。
每个数据块在写入条带时,同时生成一个固定长度的校验码,将数据块与校验码分离保存;校验码可以作为存储池的元数据,单独保存在固态硬盘中,也可以组成元数据条带,与普通数据一样保存在存储池中。读数据时,分别读出数据块和校验码,并用校验码去检验该数据块是否匹配,若匹配则返回数据;否则利用存储池RAID的冗余功能修复数据。更进一步,为了优化存储空间使用效率,在数据块组成条带过程中,先经过一个数据压缩过程,比如常见的LZ4、GZIP1-9等压缩算法,再将压缩过的数据组成具有RAID保护功能的条带,然后顺序写入存储池的条带。
存储虚拟化管理中的Log-structured数据写入管理流程如图7所示,整个存储池的PBA空间由条带0,1,2,…,n等构成。虚拟卷的数据首先在缓存中组成条带,然后依顺序写入空闲且连续的PBA地址,这些PBA地址依次增加,到PBA最大值,然后从0开始重新循环。为了产生空闲且连续的PBA地址,系统使用垃圾回收GC流程,将有效数据块迁移,从而达到回收无效数据块所占的存储空间的目的。数据写入时,重新给数据分配新的PBA空间,而该数据此前的空间,则通过元数据表格标注为无效数据块,可通过垃圾回收GC流程回收。
综上,本发明提供分布式存储系统,通过基于Log-structured管理的存储池化与卷虚拟化来实现分布式存储OSD功能的实现,可将主副本放置在基于SSD的OSD上,从副本安置在存储池上虚拟出来的虚拟卷构成的vOSD上,数据优先从主副本OSD读出。本发明中vOSD通过其底层的存储池化与卷虚拟化,将其工作负载均匀分布在存储池上所有磁盘上,降低了IO延迟和存储瓶颈。基于Log-structured的管理技术可实现RAID数据保护、随机IO写转换为顺序写、数据压缩、以及SSD加速等高级功能,使得基于vOSD的分布式存储系统IO性能更高,数据更安全。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未详细说明的部分均可用现有技术加以实现。
Claims (10)
1.基于存储池虚拟化管理的分布式存储系统,包括多个存储服务器,每个存储服务器上具有多个OSD,其特征在于,所述存储系统中至少存在一个存储服务器上的部分或全部OSD是部署在存储池上虚拟卷的虚拟OSD(vOSD);所述存储系统中所有OSD都为vOSD,或者存在部分存储服务器上的全部或部分OSD是部署在SSD盘上的OSD;所述存储池为单个存储服务器上所有物理硬盘或部分物理硬盘构成的存储池,所述物理硬盘为HDD盘和/或SSD盘;数据通过随机算法按照设定的数据分布策略保存在所述分布式存储系统中的vOSD,或OSD及vOSD上。
2.根据权利要求1所述的基于存储池虚拟化管理的分布式存储系统,其特征在于,所述存储系统中存储的数据块由主副本和从副本两份镜像数据构成,主副本部署在基于SSD的OSD上,从副本部署在基于存储池虚拟卷的vOSD上。在读取用户数据时,优先从基于SSD的OSD中读出;在所有OSD都是vOSD时,主从副本均部署在基于存储池虚拟卷的vOSD上。
3.根据权利要求1所述的基于存储池虚拟化管理的分布式存储系统,其特征在于,所述存储池为通过条带技术和RAID1、条带技术和RAID5、条带技术和RAID6构成的RAID10、RAID50或RAID60管理的存储池。
4.根据权利要求1所述的基于存储池虚拟化管理的分布式存储系统,其特征在于,所述vOSD是某个存储节点上的硬件RAID控制卡/器上的某个RAID组,或基于多个RAID组构成条带上的其中一个虚拟卷。
5.根据权利要求1所述的基于存储池虚拟化管理的分布式存储系统,其特征在于,每个存储服务器上配置有MON进程服务,用于监控分布式存储中各个OSD和/或vOSD的状态。
6.根据权利要求1所述的基于存储池虚拟化管理的分布式存储系统,其特征在于,所述存储池中配置一个或多个SSD盘,用于存放该存储池管理用的元数据或热数据。
7.根据权利要求1所述的基于存储池虚拟化管理的分布式存储系统,其特征在于,所述随机算法包括CRUSH算法或HASH算法;所述数据分布策略包括随机分布策略、按权重分布策略、按故障域分布策略、按OSD分布策略或所述几种分布策略的组合。
8.根据权利要求1-7任一项所述的基于存储池虚拟化管理的分布式存储系统的数据读写方法,其特征在于,包括:在写入用户数据时,将用户数据分割成多个对象块,每个对象块通过随机算法映射到某个PG中,PG通过设定的数据分布策略映射到OSD中,存在基于SSD的OSD时,配置基于SSD的OSD为主OSD,仅用于保存主PG的数据,配置vOSD成为从OSD,仅用于保存从PG的数据;每个对象块的主从两副本,分别保存在主OSD和从vOSD中;在读取用户数据时,优先从基于SSD的OSD中读出。
9.根据权利要求8所述的基于存储池虚拟化管理的分布式存储系统的数据读写方法,其特征在于,通过硬件RAID控制卡/器或基于Log-Structured方式实现vOSD的数据写入,其中基于Log-Structured方式实现vOSD的数据写入即数据块先组织为一个具有RAID保护的一个条带,将该条带按存储池物理地址顺序写入;每个数据块在写入时同时生成一个固定长度的校验码,将数据块与校验码分离保存;读数据时,分别读出数据块和校验码,并用校验码去检验该数据块是否匹配,若匹配则返回数据;否则利用存储池RAID的冗余功能修复数据。
10.根据权利要求8所述的基于存储池虚拟化管理的分布式存储系统的数据读写方法,其特征在于,当数据块组成条带时,先经过数据压缩,再将压缩过的数据组成具有RAID保护功能的条带,然后写入磁盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911254575.5A CN111158587B (zh) | 2019-12-10 | 2019-12-10 | 基于存储池虚拟化管理的分布式存储系统及数据读写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911254575.5A CN111158587B (zh) | 2019-12-10 | 2019-12-10 | 基于存储池虚拟化管理的分布式存储系统及数据读写方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111158587A true CN111158587A (zh) | 2020-05-15 |
CN111158587B CN111158587B (zh) | 2023-03-21 |
Family
ID=70556562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911254575.5A Active CN111158587B (zh) | 2019-12-10 | 2019-12-10 | 基于存储池虚拟化管理的分布式存储系统及数据读写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111158587B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949217A (zh) * | 2020-08-21 | 2020-11-17 | 广东韶钢松山股份有限公司 | 超融合一体机及其软件定义存储sds处理方法和系统 |
CN112162699A (zh) * | 2020-09-18 | 2021-01-01 | 北京浪潮数据技术有限公司 | 一种数据读写方法、装置、设备及计算机可读存储介质 |
CN112596673A (zh) * | 2020-12-18 | 2021-04-02 | 南京道熵信息技术有限公司 | 具有双重raid数据保护的多活多控存储系统 |
CN113032186A (zh) * | 2021-05-24 | 2021-06-25 | 广东睿江云计算股份有限公司 | 一种基于raid与ceph的数据存储方法及其系统 |
CN113535096A (zh) * | 2021-09-16 | 2021-10-22 | 深圳创新科技术有限公司 | 虚拟NVMe固态驱动器存储构建方法及装置 |
CN114461152A (zh) * | 2022-04-12 | 2022-05-10 | 广东睿江云计算股份有限公司 | ceph读写质量优化方法、装置、计算机设备及存储介质 |
CN114780021A (zh) * | 2022-03-25 | 2022-07-22 | 北京百度网讯科技有限公司 | 副本修复方法、装置、电子设备及存储介质 |
CN115065693A (zh) * | 2022-06-13 | 2022-09-16 | 四川省自主可控电子信息产业有限责任公司 | 一种基于异构指令集的虚拟化存储池及其方法 |
CN116112511A (zh) * | 2022-12-28 | 2023-05-12 | 中国人寿保险股份有限公司上海数据中心 | 一种基于多网关的分布式储存系统 |
CN117707437A (zh) * | 2024-02-06 | 2024-03-15 | 济南浪潮数据技术有限公司 | 基于分布式存储系统的虚拟磁盘存储方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604226A (zh) * | 2009-07-14 | 2009-12-16 | 浪潮电子信息产业股份有限公司 | 一种基于虚拟raid构建动态缓存池提高存储系统性能的方法 |
CN106775494A (zh) * | 2017-01-06 | 2017-05-31 | 南京普天通信股份有限公司 | 一种基于分布式软件定义存储的数据存储装置及存储方法 |
-
2019
- 2019-12-10 CN CN201911254575.5A patent/CN111158587B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604226A (zh) * | 2009-07-14 | 2009-12-16 | 浪潮电子信息产业股份有限公司 | 一种基于虚拟raid构建动态缓存池提高存储系统性能的方法 |
CN106775494A (zh) * | 2017-01-06 | 2017-05-31 | 南京普天通信股份有限公司 | 一种基于分布式软件定义存储的数据存储装置及存储方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949217A (zh) * | 2020-08-21 | 2020-11-17 | 广东韶钢松山股份有限公司 | 超融合一体机及其软件定义存储sds处理方法和系统 |
CN112162699A (zh) * | 2020-09-18 | 2021-01-01 | 北京浪潮数据技术有限公司 | 一种数据读写方法、装置、设备及计算机可读存储介质 |
CN112162699B (zh) * | 2020-09-18 | 2023-12-22 | 北京浪潮数据技术有限公司 | 一种数据读写方法、装置、设备及计算机可读存储介质 |
CN112596673B (zh) * | 2020-12-18 | 2023-08-18 | 南京道熵信息技术有限公司 | 具有双重raid数据保护的多活多控存储系统 |
CN112596673A (zh) * | 2020-12-18 | 2021-04-02 | 南京道熵信息技术有限公司 | 具有双重raid数据保护的多活多控存储系统 |
CN113032186A (zh) * | 2021-05-24 | 2021-06-25 | 广东睿江云计算股份有限公司 | 一种基于raid与ceph的数据存储方法及其系统 |
CN113535096A (zh) * | 2021-09-16 | 2021-10-22 | 深圳创新科技术有限公司 | 虚拟NVMe固态驱动器存储构建方法及装置 |
CN114780021A (zh) * | 2022-03-25 | 2022-07-22 | 北京百度网讯科技有限公司 | 副本修复方法、装置、电子设备及存储介质 |
CN114780021B (zh) * | 2022-03-25 | 2022-11-29 | 北京百度网讯科技有限公司 | 副本修复方法、装置、电子设备及存储介质 |
CN114461152A (zh) * | 2022-04-12 | 2022-05-10 | 广东睿江云计算股份有限公司 | ceph读写质量优化方法、装置、计算机设备及存储介质 |
CN115065693A (zh) * | 2022-06-13 | 2022-09-16 | 四川省自主可控电子信息产业有限责任公司 | 一种基于异构指令集的虚拟化存储池及其方法 |
CN116112511A (zh) * | 2022-12-28 | 2023-05-12 | 中国人寿保险股份有限公司上海数据中心 | 一种基于多网关的分布式储存系统 |
CN117707437A (zh) * | 2024-02-06 | 2024-03-15 | 济南浪潮数据技术有限公司 | 基于分布式存储系统的虚拟磁盘存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111158587B (zh) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111158587B (zh) | 基于存储池虚拟化管理的分布式存储系统及数据读写方法 | |
US11327661B2 (en) | Storage system and data management method | |
JP5112003B2 (ja) | ストレージ装置及びこれを用いたデータ格納方法 | |
CN102405460B (zh) | 虚拟存储系统及其运行方法 | |
US7146460B2 (en) | Dynamic spindle usage leveling | |
US8639898B2 (en) | Storage apparatus and data copy method | |
US11150846B2 (en) | Storage system, computer-readable recording medium, and control method for system that reconstructs and distributes data | |
CN105988727B (zh) | 一种基于raid的存储方法和存储装置 | |
US10409682B1 (en) | Distributed RAID system | |
US11809720B2 (en) | Techniques for storage management | |
US20220413741A1 (en) | Method and system for dynamic topology-aware space allocation in a distributed system | |
US20200341873A1 (en) | Data access method, apparatus and computer program product | |
US11704053B1 (en) | Optimization for direct writes to raid stripes | |
JP5597266B2 (ja) | ストレージシステム | |
US11860746B2 (en) | Resilient data storage system with efficient space management | |
US11256428B2 (en) | Scaling raid-based storage by redistributing splits | |
CN113342258A (zh) | 用以进行全快闪存储器阵列伺服器的数据存取管理的方法与设备 | |
US11561695B1 (en) | Using drive compression in uncompressed tier | |
US11531500B1 (en) | Coalescing storage space of heterogeneous nodes for flexible expansion | |
CN116069266B (zh) | 磁盘漫游控制方法、装置、设备及计算机可读存储介质 | |
CN115857830A (zh) | 一种基于ceph存储数据的方法、装置及电子设备 | |
JP2021189937A (ja) | ストレージシステム及びストレージシステムの制御方法 | |
CN116401063A (zh) | 一种raid的资源分配方法、装置、设备及介质 | |
CN116483263A (zh) | 一种存储系统的存储设备、存储系统 |
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 |