CN112347044B - 一种基于spdk的对象存储优化方法 - Google Patents

一种基于spdk的对象存储优化方法 Download PDF

Info

Publication number
CN112347044B
CN112347044B CN202011247634.9A CN202011247634A CN112347044B CN 112347044 B CN112347044 B CN 112347044B CN 202011247634 A CN202011247634 A CN 202011247634A CN 112347044 B CN112347044 B CN 112347044B
Authority
CN
China
Prior art keywords
file
storage
data
disk
index
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
CN202011247634.9A
Other languages
English (en)
Other versions
CN112347044A (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.)
Beijing Scistor Technologies Co ltd
Original Assignee
Beijing Scistor Technologies 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 Beijing Scistor Technologies Co ltd filed Critical Beijing Scistor Technologies Co ltd
Priority to CN202011247634.9A priority Critical patent/CN112347044B/zh
Publication of CN112347044A publication Critical patent/CN112347044A/zh
Application granted granted Critical
Publication of CN112347044B publication Critical patent/CN112347044B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • 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/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明是一种基于SPDK的对象存储优化方法,属于数据存储技术领域。本发明方法包括:配置对象存储系统至少包含3台服务器,每台服务器至少配有1块SSD盘及多块HDD盘,并在对象存储系统安装好SPDK(存储性能开发工具包)驱动库;对象存储系统启动并初始化,自动配置好索引数据的SSD盘和对象数据的HDD盘;上层业务通过对象存储系统的类S3接口写入或读取对象数据;在写入时,对象的索引信息通过SPDK的文件写入接口操作磁盘直接持久化到SSD盘,对象的content通过Linux文件系统接口直接持久化到HDD盘。采用本发明方法提高了对象存储系统的响应速率,提高了对象存储的整体性能,实现了成本和性能的权衡。

Description

一种基于SPDK的对象存储优化方法
技术领域
本发明属于数据存储技术领域,具体涉及一种基于SPDK(存储性能开发工具包)的对象存储优化方法。
背景技术
随着存储技术的不断发展,固态存储设备正在逐渐进入数据中心。目前新一代的固态存储,比起传统磁盘设备,在性能、功耗和机架密度上都具有显著的优势。但相对于传统磁盘,固态盘的价格昂贵,在大规模的数据中心中还不能够作为主要的存储介质,因此闪存类存储设备缓存技术成为当下大数据存储优化研究的重点。现有固态存储设备与磁盘混合介质存储优化技术,在海量对象存储上主要在冷热数据上进行存储的优化。现有技术在进行数据的读写操作时,以内核态的方式访问固态盘,需要通过本地文件系统及驱动才能完成最终访问,IO(输入/输出)路径较长,延时高,固态盘的高性能未被充分利用,很难满足高性能高并发的应用场景的需求。
因此,如何使对象存储系统在固态盘与机械磁盘的场景下,充分利用固态盘的特性提高系统整体的写入、读取能力成为了亟待解决的问题。
发明内容
本发明针对现有对象存储优化未充分利用固态盘的特性的问题,提供了一种基于SPDK驱动库,在用户态下驱动固态盘的对象存储系统优化方法。
本发明提供的基于SPDK的对象存储优化方法,具体步骤如下:
步骤一、配置对象存储系统至少包含3台服务器,每台服务器至少配有1块NVMeSSD盘及若干块HDD盘,同时对象存储系统安装好SPDK驱动库。
步骤二、对象存储系统启动并初始化,根据对象存储系统配置文件自动配置好索引数据的SSD盘和对象数据的HDD盘。
步骤三、上层业务通过对象存储系统的类S3接口写入对象数据,对象的索引信息通过SPDK的文件写入接口操作磁盘直接持久化到SSD盘,对象的content通过Linux文件系统接口直接持久化到HDD盘。
当写入的数据小于一个文件存储块时,通过SPDK文件写入接口将对象的索引数据放入SSD盘的文件存储缓存区,对象索引数据存储有服务对象的键key、对象属性信息及对象内容content的存储位置;将文件存储缓存区中一段时间内的数据,或者文件存储缓存区中大小为一个存储块的数据,压缩为SSD盘的一个文件块,利用伪分布式存储算法放入SSD盘中;文件异步存储服务将SSD文件块逐步移至HDD盘中;对象索引存储服务更新对象索引信息。
当写入的数据大于一个文件存储块时,通过SPDK文件写入接口将对象的索引数据放入SSD盘的文件存储缓存区,对象的索引数据包括对象key、对象属性信息及对象content的存储位置,将文件存储缓存区中的对象索引数据利用伪分布式存储算法放入SSD盘中;文件异步存储服务将对象content按照文件存储块的大小进行分片,并将各片分散存储到各节点的HDD盘中,对象索引存储服务更新对象索引信息,并加入分片信息。
步骤四、上层业务通过对象存储系统的类S3接口读取数据,根据对象key值访问对象的索引数据,再去定位文件所在位置,然后读取对象content信息并返回。
与现有技术相比,本发明的优点和积极效果在于:本发明优化的对象存储充分利用了SPDK驱动直接操作SDD盘进行对象索引数据的存储及作为对象写入时的缓存队列。对象索引文件通常数据量(通常存储对象属性、合并切分信息、offset和size等关键信息)很小,存储到SSD盘,读取时先访问SSD索引数据,实现了对象索引数据高效访问,对象content数据的快速定位;合并后的大文件通常在64MB,甚至更大,单盘所存储的合并大文件数量远小于原小文件的数量,大文件切分,切分后提高了文件读取并发速率,且合并切分都通过SDD盘作为合并是文件队列缓存显著提供了文件的写入速度。
附图说明
图1是应用本发明方法的对象存储系统的基本框图;
图2是本发明方法中小对象写入的流程图;
图3是本发明方法中大对象写入的流程图;
图4是本发明方法中对象读取的流程图。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
目前对象存储管理系统若全部采用SSD盘,成本比较高,因此本发明将IO较高的对象索引存储,以及小文件合并、大文件分片管理部分,迁移到SSD盘上来,提高了对象存储系统的响应速率。本发明方法对对象索引存储、小文件合并、大文件分片的这部分,巧妙运用SPDK的特性来直接操作SSD裸盘,提高了对象存储的整体性能,实现了成本和性能的权衡。
本发明提供的基于SPDK的对象存储优化方法,分为如下四个步骤来说明。
步骤一、准备至少3台服务器,每台服务器至少配有1块NVMe SSD盘及若干块HDD盘,同时服务器上还安装好SPDK驱动库。SSD盘表示固态硬盘,固态硬盘采用NVMe存储系统,NVMe的英文全称为Non-Volatile Memory express,HDD表示硬盘驱动器。
如图1所示,对象存储系统至少运行在3台服务器上,图1中的节点1,2,3代表3台服务器,每台服务器上的配置相同,都至少配置有1块NVMe SSD盘,多个HDD盘,服务器上安装Linux文件系统,文件异步存储服务,对象索引存储服务,对象存储读取服务,以及SPDK驱动库。服务器与上层业务之间通过访问接口进行数据交互,访问接口中包括S3接口,POSIX(可移植操作系统接口),客户端。
步骤二、对象存储系统启动并初始化,根据对象存储系统配置文件,对象索引存储服务及文件异步存储服务自动配置好索引数据的SSD盘和对象数据的HDD盘。
步骤三、上层业务通过对象存储系统的类S3接口写入对象数据,对象的索引信息通过SPDK的文件写入接口操作磁盘直接持久化到SSD盘,对象的content(内容)通过Linux文件系统接口直接持久化到HDD盘。具体的操作包括如下步骤301和302。
步骤301、当写入的为小对象时,即写入的数据小于一个文件存储块,如图2所示,调用SPDK驱动中的文件写入接口将对象的索引数据放入SSD盘的文件存储缓存区,对象索引数据中存储服务对象key(键)、对象属性信息及对象content的存储位置;等待一段时间,继续在文件存储缓冲区放入小对象数据,或当文件存储缓冲区放入的数据大小为设定的一个存储块时,将文件存储缓存区内的数据压缩到SSD盘的一个块,利用伪分布式存储算法放入SSD盘中;文件异步存储服务将SSD盘的文件块逐步移至HDD盘中;对象索引存储服务更新对象索引信息。
步骤302、当写入的为大对象时,即对象数据大于等于一个文件存储块,如图3所示,调用SPDK驱动中的文件写入接口将对象的索引数据放入SSD盘的文件存储缓存区,对象索引存储服务将对象key、对象属性信息及对象content的存储位置,利用伪分布式存储算法放入SSD盘中;文件异步存储服务将对象content按照文件存储块的大小进行分片,并按照分布式存储算法将各片分散存储到各节点的HDD盘中,对象索引存储服务更新对象索引信息,并加入分片索引信息。
步骤四、如图4所示,通过对象存储系统的类S3接口读取数据,根据对象key值访问对象的索引数据,再去定位文件所在位置,然后读取对象content信息并返回。根据对象的索引信息判断对象是合并存储还是分片存储,具体的操作包括如下步骤401和402。
步骤401、如果通过SPDK文件读取接口获取的对象索引中具有文件的合并存储信息,则该对象为小对象的合并存储,根据索引中的对象content存储信息和分布式存储算法,定位到文件存储的具体节点的具体磁盘的具体文件块,再根据offset和size信息,将对象content读取出来并返回给上层业务。Size记录数据大小,offset记录数据在文件块中的偏移量。
步骤402、如果通过SPDK文件读取接口获取的对象索引中具有文件的切分存储信息,则该对象为大对象的合并存储,根据索引中的对象content分片文件存储信息和分布式存储算法,定位到文件存储的所有具体节点的具体磁盘的具体文件块,并同时通过网络并发将各片的内容流式汇聚到用户访问的对象存储系统的节点,再根据分片的编号流式将对象content文件信息返回给上层业务。
应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。

Claims (3)

1.一种基于SPDK的对象存储优化方法,其特征在于,包括如下步骤:
步骤一、配置对象存储系统至少包含3台服务器,每台服务器至少配有1块NVMe SSD盘及多块HDD盘,并在对象存储系统上安装SPDK驱动库;其中,SSD盘表示固态硬盘,HDD表示硬盘驱动器,SPDK表示存储性能开发工具包;
步骤二、对象存储系统启动并初始化,根据对象存储系统的配置文件自动配置好索引数据的SSD盘和对象数据的HDD盘;步骤三、上层业务通过对象存储系统的类S3接口写入对象数据时,对象的索引信息通过SPDK的文件写入接口操作磁盘直接持久化到SSD盘,对象的内容content通过Linux文件系统接口直接持久化到HDD盘;
当对象数据小于一个文件存储块时,通过SPDK文件写入接口将对象的索引数据放入SSD盘的文件存储缓存区,对象索引数据存储有服务对象的键key、对象属性信息及对象内容content的存储位置;将文件存储缓存区中一段时间内的数据,或者文件存储缓存区中大小为一个存储块的数据,压缩为SSD盘的一个文件块,利用伪分布式存储算法放入SSD盘中;文件异步存储服务将SSD文件块逐步移至HDD盘中;对象索引存储服务更新对象索引信息,加入合并存储信息;
当对象数据大于一个文件存储块时,通过SPDK文件写入接口将对象的索引数据放入SSD盘的文件存储缓存区,对象的索引数据包括对象key、对象属性信息及对象content的存储位置,将文件存储缓存区中的对象索引数据利用伪分布式存储算法放入SSD盘中;文件异步存储服务将对象content按照文件存储块的大小进行分片,并将各片分散存储到各节点的HDD盘中,对象索引存储服务更新对象索引信息,并加入分片信息;
步骤四、上层业务通过对象存储系统的类S3接口读取数据时,根据对象的键访问对象的索引数据,再定位文件所在位置,读取对象内容content并返回。
2.根据权利要求1所述的方法,其特征在于,所述的步骤四中,如果通过SPDK文件读取接口获取的对象索引中具有文件的合并存储信息,则该对象为小对象的合并存储,小对象是指数据小于一个文件存储块;此时,根据索引中的对象content存储信息和分布式存储算法,定位到文件存储的节点的磁盘的文件块,再根据数据在文件块中的偏移量offset和数据大小size,将对象content读取出来并返回给上层业务。
3.根据权利要求1所述的方法,其特征在于,所述的步骤四中,如果通过SPDK文件读取接口获取的对象索引中具有文件的切分存储信息,则该对象为大对象的合并存储,大对象是指数据大于一个文件存储块;此时,根据索引中的对象content分片文件存储信息和分布式存储算法,定位到文件存储的所有节点的磁盘的文件块,并同时通过网络并发将各片的内容流式汇聚到用户访问的对象存储系统的节点,再根据分片的编号流式将对象content文件信息返回给上层业务。
CN202011247634.9A 2020-11-10 2020-11-10 一种基于spdk的对象存储优化方法 Active CN112347044B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011247634.9A CN112347044B (zh) 2020-11-10 2020-11-10 一种基于spdk的对象存储优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011247634.9A CN112347044B (zh) 2020-11-10 2020-11-10 一种基于spdk的对象存储优化方法

Publications (2)

Publication Number Publication Date
CN112347044A CN112347044A (zh) 2021-02-09
CN112347044B true CN112347044B (zh) 2024-04-12

Family

ID=74363172

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011247634.9A Active CN112347044B (zh) 2020-11-10 2020-11-10 一种基于spdk的对象存储优化方法

Country Status (1)

Country Link
CN (1) CN112347044B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113242175B (zh) * 2021-04-29 2022-03-25 烽火通信科技股份有限公司 一种基于spdk的存储网关及其实现方法
CN113688099B (zh) * 2021-08-09 2023-10-13 上海沄熹科技有限公司 基于spdk的数据库存储引擎加速方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679898A (zh) * 2015-03-18 2015-06-03 成都汇智远景科技有限公司 一种大数据访问方法
CN107291399A (zh) * 2017-06-30 2017-10-24 郑州云海信息技术有限公司 一种基于spdk的后端存储方法、装置及系统
CN109800185A (zh) * 2018-12-29 2019-05-24 上海霄云信息科技有限公司 一种数据存储系统中的数据缓存方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10789020B2 (en) * 2017-06-12 2020-09-29 Pure Storage, Inc. Recovering data within a unified storage element

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679898A (zh) * 2015-03-18 2015-06-03 成都汇智远景科技有限公司 一种大数据访问方法
CN107291399A (zh) * 2017-06-30 2017-10-24 郑州云海信息技术有限公司 一种基于spdk的后端存储方法、装置及系统
CN109800185A (zh) * 2018-12-29 2019-05-24 上海霄云信息科技有限公司 一种数据存储系统中的数据缓存方法

Also Published As

Publication number Publication date
CN112347044A (zh) 2021-02-09

Similar Documents

Publication Publication Date Title
CN106662981B (zh) 存储设备、程序和信息处理方法
CN102467408B (zh) 一种虚拟机数据的访问方法和设备
US8762674B2 (en) Storage in tiered environment for colder data segments
JP5445682B2 (ja) ストレージシステム
US8751725B1 (en) Hybrid storage aggregate
US8996799B2 (en) Content storage system with modified cache write policies
US9870176B2 (en) Storage appliance and method of segment deduplication
US20150032938A1 (en) System and method for performing efficient processing of data stored in a storage node
CN107704211B (zh) 一种磁光电混合光盘库及其管理方法和管理系统
CN113821171B (zh) 一种基于哈希表与lsm树的键值存储方法
US11200159B2 (en) System and method for facilitating efficient utilization of NAND flash memory
CN112347044B (zh) 一种基于spdk的对象存储优化方法
WO2018171296A1 (zh) 一种文件合并方法及控制器
KR20150050457A (ko) 하이브리드 디바이스에서의 고체 상태 메모리 커맨드 큐
EP4016276A1 (en) Data deduplication method and apparatus
CN111752479B (zh) 有效存储数据的方法和系统
US20200293219A1 (en) Multi-tiered storage
JP2019028954A (ja) ストレージ制御装置、プログラム、及び重複排除方法
CN111897486B (zh) 一种基于软件定义的智能统一存储系统
WO2023020136A1 (zh) 存储系统中的数据存储方法及装置
KR102471966B1 (ko) 스토리지 노드 기반의 키-값 스토어를 이용하는 데이터 입출력 방법
CN110515562A (zh) 一种磁盘访问方法及装置
CN103064926B (zh) 数据处理方法和装置
US9542326B1 (en) Managing tiering in cache-based systems
US11989108B2 (en) Multi-tier heat maps

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