一种追加写场景下顺序存储磁盘管理的方法及系统技术方案

技术编号:24251085 阅读:55 留言:0更新日期:2020-05-22 23:20
本发明专利技术公开了一种追加写场景下顺序存储磁盘管理的方法及系统,方法包括:首先定义磁盘结构,对磁盘初始化,在首次写入数据时,ChunkServer申请chunk,初始化chunk的ChunkMeta信息;在申请chunk的同时,为该chunk申请一个block,作为chunk的起始block;将chunk的数据偏移和大小转成block的内的写入偏移和大小;当写入数据大小超过一个block的大小,分配一个新的block给ChunkServer;当分配block成功,将block的id写入到ChunkMeta的有序列表block_list中,同时,将下一个block的id写入前一个block的末尾数据段,完成落盘操作。本发明专利技术能够有效的对裸盘按照块的方式进行管理,灵活定义块的大小,利用追加写的办法提升存储速度。

A method and system of sequential storage disk management under the scenario of additional write

【技术实现步骤摘要】
一种追加写场景下顺序存储磁盘管理的方法及系统
本专利技术涉及磁盘管理
,尤其涉及一种追加写场景下顺序存储磁盘管理的方法及系统。
技术介绍
随着SSD(SolidStateDisk,固态硬盘)等存储介质的出现,磁盘IO效率得到巨大突破,存储方式已经成了云存储瓶颈优化的重点。顺序读写是提升存储速度的一种重要方式,追加写是实现顺序读写的一种方式。在现有技术中,对于单机磁盘数据管理通常由两种方式,一种是使用本地文件系统进行数据管理;另外一种是对数据块进行数据管理,在系统初始化时,将磁盘划分成固定的大小块(通常被称为chunk),系统在存储文件数据时,通过算法分配磁盘上多个chunk(分布式存储系统对外开放提供的最小存储单位)来存储该文件,记录chunk与文件的对应关系,最后,将对应的关系持久化到数据盘或者数据库中。现有分布式存储场景下的单机磁盘处理技术的主要缺陷有以下几点:1、若chunk设置过大,系统事先会为每个chunk分配出固定大小,当存储小文件的时候,就会造成很大的浪费。例如,对于一个1G的chunk,实际未写满1GB,仍本文档来自技高网...

【技术保护点】
1.一种追加写场景下顺序存储磁盘管理的方法,其特征在于,包括:/n将磁盘划分为DiskMeta、ChunkMeta和BlockData;其中,所述BlockData由固定大小磁盘块组成,通过磁盘物理偏移进行区分;/n从磁盘加载DiskMeta和ChunkMeta数据信息;/n基于所述ChunkMeta中起始block_id,按照块加载该chunk所有的block_id到所述ChunkMeta的有序列表block_list中;/n扫描所述ChunkMeta的有序列表block_list,得到空闲的block的队列和block的分配位图block_bit_map;/n在首次写入数据时,ChunkS...

【技术特征摘要】
1.一种追加写场景下顺序存储磁盘管理的方法,其特征在于,包括:
将磁盘划分为DiskMeta、ChunkMeta和BlockData;其中,所述BlockData由固定大小磁盘块组成,通过磁盘物理偏移进行区分;
从磁盘加载DiskMeta和ChunkMeta数据信息;
基于所述ChunkMeta中起始block_id,按照块加载该chunk所有的block_id到所述ChunkMeta的有序列表block_list中;
扫描所述ChunkMeta的有序列表block_list,得到空闲的block的队列和block的分配位图block_bit_map;
在首次写入数据时,ChunkServer申请chunk,初始化chunk的ChunkMeta信息;
在申请chunk的同时,为该chunk申请一个block,作为chunk的起始block;
将chunk的数据偏移和大小转成block的内的写入偏移和大小;
当写入数据大小超过一个block的大小,分配一个新的block给ChunkServer;
当分配block成功,将block的id写入到所述ChunkMeta的有序列表block_list中,同时,将下一个block的id写入前一个block的末尾数据段,完成落盘操作。


2.根据权利要求1所述的方法,其特征在于,所述当写入数据大小超过一个block的大小,分配一个新的block给ChunkServer,包括:
判断空闲block队列free_block_list是否为空,若是,则返回磁盘满的状态码,若否,则:
从所述空闲block队列free_block_list中获取第一个block;
通过所述block的分配位图block_bit_map判断该block是否被使用,若否,则:
该block分配成功,将所述block的分配位图block_bit_map的分配的位置置1。


3.根据权利要求2所述的方法,其特征在于,还包括:
按照chunk上的偏移计算读取数据在chunk的第几个block上;
基于计算结果,在所述ChunkMeta中的有序列表block_list中,获取block的id;
按照block的id计算磁盘上的偏移地址,按照偏移读取数据;
判断读取数据大小是否超过当前的block,若否,则读取结束返回数据,若是,则从所述ChunkMeta中的有序列表block_list中获取下一个block。


4.根据权利要求3所述的方法,其特征在于,还包括:
删除ChunkMeta元数据;
当删除所述ChunkMeta元数据成功时,释放block块。


5.根据权利要求4所述的方法,其特征在于,当删除所述ChunkMeta元数据成功时,释放block块,包括:
将block的id加入空闲block队列free_block_list末尾;
将所述block的分配位图block_bit_map的分配位置置0。


6.一种追加写场景下顺序存储磁盘管理的系统,其特征在于,包括:
定义模块,用于将磁盘划分为DiskMeta、ChunkMeta和BlockData;其中,所述BlockData由固定大小磁盘块组成,通过磁盘物理偏移进行区分;
第一加载模块,用于从磁盘加载Disk...

【专利技术属性】
技术研发人员:蔡军方然
申请(专利权)人:优刻得科技股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1