[发明专利]向磁盘写入文件的方法及装置有效
| 申请号: | 201610835844.7 | 申请日: | 2016-09-20 |
| 公开(公告)号: | CN107844261B | 公开(公告)日: | 2022-08-09 |
| 发明(设计)人: | 李中军 | 申请(专利权)人: | 中兴通讯股份有限公司 |
| 主分类号: | G06F3/06 | 分类号: | G06F3/06 |
| 代理公司: | 北京天昊联合知识产权代理有限公司 11112 | 代理人: | 姜春咸;冯建基 |
| 地址: | 518057 广东省深*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 磁盘 写入 文件 方法 装置 | ||
本发明提供一种向磁盘写入文件的方法及装置,用以解决读取磁盘的数据或者再次覆盖写入数据到磁盘时数据定位时延较大的问题,该方法包括:判断缓存数据块待存入的条带CHUNK当前是否是第一次写入数据;如果CHUNK当前是第一次写入数据,则预占一个CHUNK最大配置长度的连续磁盘空间,然后将缓存数据块写入到CHUNK中,如果CHUNK当前不是第一次写入数据,则将缓存数据块写入到CHUNK中,该方案减小XFS读取磁盘数据时的数据定位时延和磁头转动时延,提升了IO效率。
技术领域
本发明涉及通讯领域,特别是涉及一种向磁盘写入文件的方法及装置。
背景技术
DFS(Distributed file system,分布式文件系统)分为文件访问客户端(FAC)、文件访问服务器(FAS)和文件元数据定位服务器(FLR)三个大的功能模块,一个文件的数据内容在FAS被写入磁盘中,并且在FAS是以条带(CHUNK)的形式存储在磁盘上的磁盘类型有SATA串口机械磁盘和SSD(Solid State Drives,固态磁盘),CHUNK的大小一般设置为64MB,并且一个CHUNK存储多个副本。FAS在把缓存上的数据写入磁盘或从磁盘上读取数据到缓存时,为了减少磁盘IO,是以块(BLOCK)为单位操作的(块大小一般设置为512KB),因此一个CHUNK的数据在FAS上要分多次写入磁盘或者多次从磁盘上读取,对于目前Linux的XFS(XFS文件系统是SGI开发的高级日志文件系统)文件系统在写入数据到磁盘时,虽然有延迟分配的策略,能够对同一个CHUNK的缓存块进行聚合后再分配磁盘的存储块空间,但是这种聚合的能力有限,基本上很难让一个CHUNK的所有缓存块数据聚合后分配到磁盘上连续的一段空间进行存储,这样导致了FAS的一个CHUNK的数据在磁盘上存放的空间是不连续的。
这种数据在磁盘上存放空间的不连续性,对于SATA(串行先进技术接口)机械磁盘来说,在读取磁盘的数据或者再次覆盖写入数据到磁盘的时候,磁盘的磁头需要在磁盘上不同的位置来回转动,会大大增加磁盘的寻道时间,即读写磁盘上的数据时会大大增加数据定位时延,特别是对于用sendfile每次读取一大块连续的数据(一般是1MB)的方式,表现出的性能很差,具体表现在平均每次磁盘IO等待的时间await指标值较高。
对于SSD固态磁盘来说,因为它是NAND Flash闪存作为存储介质,不用磁头,寻道时间几乎为0,不会导致上述的磁盘IO等待时间高的问题,但由于SSD固态磁盘的容量一般较小、可擦写次数有限导致的使用寿命短以及价格昂贵的原因,目前在每个FAS节点只有少量的几块SSD固态磁盘,主要用于存储热点文件数据内容,因此SSD固态磁盘需要与SATA机械磁盘区别对待。
发明内容
本发明提供一种向磁盘写入文件的方法及装置,用以解决由于数据在磁盘上存放空间的不连续性,在读取磁盘的数据或者再次覆盖写入数据到磁盘的时候,磁盘的磁头需要在磁盘上不同的位置来回转动,导致读写磁盘上的数据时会大大增加数据定位时延的问题。
根据本发明的第一个方面,提供了一种向磁盘中写入文件的方法,包括:判断缓存数据块待存入的条带CHUNK当前是否是第一次写入数据;如果CHUNK当前是第一次写入数据,则预占一个CHUNK最大配置长度的连续磁盘空间,然后将缓存数据块写入到CHUNK中,如果CHUNK当前不是第一次写入数据,则将缓存数据块写入到CHUNK中。
进一步的,上述方法还包括:在判断缓存数据块待存入的CHUNK当前是否是第一次写入数据之前,在读取到数据写入请求消息后,在文件访问服务器FAS的卷表中查询缓存数据块待写入的磁盘的类型是否是预设磁盘类型,如果缓存数据块待写入的磁盘的类型是预设磁盘类型,则执行判断缓存数据块待存入的条带CHUNK当前是否是第一次写入数据的步骤,否则将缓存数据块写入其待写入的磁盘。
其中,判断缓存数据块待存入的CHUNK当前是否是第一次写入数据,包括:查看缓存数据块待存入的CHUNK中的数据的长度;如果CHUNK中的数据的长度为零,确定CHUNK第一次写入数据;如果CHUNK中的数据的长度不为零,确定CHUNK并非第一次写入数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610835844.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种电动车
- 下一篇:一种屋顶花园雨水分流净化箱





