【技术实现步骤摘要】
本专利技术涉及计算机数据读写
,尤其涉及一种基于同步写的回写I/O调度系统。
技术介绍
档系统的最小逻辑可寻址单位是块(block),块的大小一般为4KB。块设备中最小的可寻址单元是扇区,大多数块设备的扇区大小为512B,一个块由8个扇区组成。物理上,磁盘由许多扇区组成,逻辑上,磁盘由许多块设备组成。I/O调度器是档系统和块存储设备之间的一层软件。应用程序通过调用read/write方法或者是mmap方法,创建I/O请求,这些请求可以是对任意档上任意位置的修改。档系统既不会简单地按请求接收次序提交请求,也不会在接收到请求后立即存储到磁盘。而是在提交前,它会先执行合并与排序操作,从而提高系统的整体性能。目前,现有的操作系统通常采用如下方式写入数据:当向档系统写入数据块时,档系统需要修改元数据,而这些元数据通常只是若干字节,为了保证系统的高可用,档系统需要将这些元数据的修改存储到磁盘下。磁盘的读写是以块为单位,通常块的大小为4KB,对于异步写,系统可以将修改积累到一定程度再写到磁盘,而对于同步写,向档系统写入几个位元组的小数据的时候,档系统必须向磁盘写入4KB数据,从而造成了小数据的写放大,浪费了磁盘的I/O带宽,影响系统的性能。
技术实现思路
本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此本发明的目的在于提出一种磁盘数据的同步回写方法。一种磁盘数据的同步回 ...
【技术保护点】
一种磁盘数据的同步回写方法,所述磁盘逻辑划分为多个Z‑存储区和多个N‑存储区,所述每个Z‑存储区由多个Z簇组成,所述N‑存储区由多个N簇组成,所述Z‑簇及N‑簇分别具有多个块,每个块由多个扇区组成,其特征在于,所述同步回写方法包括:设置一个写缓存空间,比较并获取档系统需要写入的数据块A与所述写缓存中具有相同起始扇区号的数据块A’的差异计算结果diff,并将写缓存中的数据块A’替换为数据块A;采用绝对公平算法对每个差异计算的结果diff赋予权重值,根据权重值对差异计算的结果diff从大大小排序;当有普通数据块B请求写入时,控制对数据块B进行压缩,节省出部分空间,取权重最大的差异计算的结果diff插入到所述部分空间形成数据块B’,并控制将数据块B’写入到磁盘第一个块为空的Z‑簇中,并将数据块B缓存到写缓存空间中;当所述写缓存的使用率达到预设阈值时,置换出写缓存中的数据块替换磁盘上的数据块,使Z‑簇变成N簇。
【技术特征摘要】
1.一种磁盘数据的同步回写方法,所述磁盘逻辑划分为多个Z-存储区和
多个N-存储区,所述每个Z-存储区由多个Z簇组成,所述N-存储区由多个N
簇组成,所述Z-簇及N-簇分别具有多个块,每个块由多个扇区组成,其特征
在于,所述同步回写方法包括:
设置一个写缓存空间,比较并获取档系统需要写入的数据块A与所述写缓
存中具有相同起始扇区号的数据块A’的差异计算结果diff,并将写缓存中的
数据块A’替换为数据块A;
采用绝对公平算法对每个差异计算的结果diff赋予权重值,根据权重值
对差异计算的结果diff从大大小排序;
当有普通数据块B请求写入时,控制对数据块B进行压缩,节省出部分空
间,取权重最大的差异计算的结果diff插入到所述部分空间形成数据块B’,
并控制将数据块B’写入到磁盘第一个块为空的Z-簇中,并将数据块B缓存到
写缓存空间中;
当所述写缓存的使用率达到预设阈值时,置换出写缓存中的数据块替换磁
盘上的数据块,使Z-簇变成N簇。
2.根据权利要求1所述的同步回写方法,其特征在于,所述设置一个写
缓存,比较并获取档系统需要写入的数据块A与所述写缓存中具有相同起始扇
区号的数据块A’的差异计算结果diff的具体步骤为:
档系统接收到写请求,获取写请求中的所述数据块A的起始扇区号,并在
写缓存中搜索,是否存在相同起始扇区号的数据块A’;
如果存在,则使用差异计算,计算出数据块A和数据块A’之间的差异计
算结果diff;
如果不存在,则直接将写请求提交到请求队列上。
3.根据权利要求2所述的同步回写方法,其特征在于,当有新的普通数
据块B请求写入时,在控制对数据块B进行压缩之前还包括步骤:
判断是否有差异计算结果diff;
若有差异计算结果diff,则采用部分块模式持久化存储数据方式先对数
据块B进行压缩,节省出部分空间,计算压缩后的大小数据块B的大小Len,
并取权重最大的差异计算的结果diff插入到所述节省出来的部分空间中形成
数据块B’,并将数据块B’写入到所述磁盘;
若无差异计算结果diff,采用全块模式持久化存储数据方式更新磁盘逻
辑结构,则将所述数据块B写入到所述Z族的第一个数据块之...
【专利技术属性】
技术研发人员:刘星,江松,王洋,须成忠,
申请(专利权)人:中国科学院深圳先进技术研究院,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。