一种写性能优化方法、装置及存储系统的制作方法

文档序号:9564390阅读:398来源:国知局
一种写性能优化方法、装置及存储系统的制作方法
【技术领域】
[0001] 本发明涉及领域,尤其涉及一种写性能优化方法、装置及存储系统。
【背景技术】
[0002] 统一存储是指同时支持文件访问和块设备访问等多种访问接口的存储系统。ZFS 文件系统(Zettabyte File System),也叫动态文件系统(Dynamic File System),是具有 块设备接口与文件系统接口的统一存储系统。ZFS提供的块设备接口可以充分利用多块磁 盘的带宽资源,用户可以根据需要挂载多种文件系统。
[0003] ZFS整体结构自上而下由接口层、数据管理层和存储池层组成,见图1。在接口层, 通过 ZPL (ZFS POSIX Layer,ZFS POSIX 层)对外提供文件系统接口,通过 ZVOL (ZFS Volume Emulator,ZFS卷模拟器)提供块设备接口。数据管理层集合了事务对象处理,快照,日志 等对象级实现。存储分配层负责维护ZFS的存储池,存储空间的申请与释放,以及对底层存 储设备的读写控制。ZFS通过写时复制等技术以保证数据的一致性与可靠性。使用日志写 (ZFS Intent Log,简称ZIL)实现ZFS的同步写语义,保证数据可以同步到磁盘中,防止系 统突然断电而导致数据丢失。
[0004] 目前,ZFS的写性能还有待优化。

【发明内容】

[0005] 有鉴于此,本发明实施例的目的是提供一种写性能优化方法、装置及存储系统,以 优化存储系统的写性能。
[0006] 为解决上述技术问题,本发明实施例提供方案如下:
[0007] 本发明实施例提供一种写性能优化方法,用于一存储系统,包括:
[0008] 获取至少两个顺序写请求,所述顺序写请求非对齐地访问所述存储系统的存储装 置中的数据块,所述顺序写请求携带有待写入数据和所述待写入数据的待写入到所述存储 装置中的存储空间信息;
[0009] 根据全部所述顺序写请求携带的存储空间信息,判断全部所述顺序写请求是否连 续;
[0010] 在全部所述顺序写请求连续时,读取全部所述顺序写请求非对齐地访问的所述存 储装置中的第一个和最后一个数据块;
[0011] 根据全部所述顺序写请求携带的待写入数据和存储空间信息和读取出的第一个 和最后一个数据块,更新全部所述顺序写请求非对齐地访问的数据块。
[0012] 优选地,所述根据全部所述顺序写请求携带的存储空间信息,判断全部所述顺序 写请求是否连续包括:
[0013] 根据全部所述顺序写请求携带的存储空间信息,判断全部所述存储空间信息表征 的存储空间是否连续,如果是,则全部所述顺序写请求连续;否则,全部所述顺序写请求不 连续。
[0014] 优选地,所述根据全部所述顺序写请求携带的待写入数据和存储空间信息和读取 出的第一个和最后一个数据块,更新全部所述顺序写请求非对齐地访问的数据块包括:
[0015] 根据访问所述第一个数据块的所述顺序写请求携带的待写入数据和存储空间信 息,更新所述第一个数据块;
[0016] 根据访问所述最后一个数据块的所述顺序写请求携带的待写入数据和存储空间 信息,更新所述最后一个数据块;
[0017] 对于全部所述顺序写请求非对齐地访问的所述第一个和最后一个数据块之外的 其它每个数据块,根据访问所述其它每个数据块的全部所述顺序写请求携带的待写入数据 和存储空间信息,更新所述其它每个数据块。
[0018] 本发明实施例还提供一种写性能优化方法,用于一存储系统,包括:
[0019] 判断至少两个写请求针对的数据是否需要同步存储到所述存储系统的存储装 置;
[0020] 当所述数据需要同步存储到所述存储装置时,利用一个输入/输出I/O请求,将所 述至少两个写请求对应的待提交日志提交给所述存储装置,使得所述存储装置能够根据所 述待提交日志,对所述数据进行同步存储,所述待提交日志包括所述至少两个写请求中每 个写请求针对的数据和所述存储装置中的存储空间信息。
[0021] 优选地,所述待提交日志包括所述至少两个写请求分别对应的日志,或者,所述至 少两个写请求分别对应的日志被合并后得到的日志。
[0022] 本发明实施例还提供一种写性能优化方法,用于一存储系统,所述存储系统包括 至少第一对象集和第二对象集,所述方法包括:
[0023] 获取所述第一对象集内分别针对第一待写入数据和第二待写入数据的第一同步 写请求和第二同步写请求;
[0024] 分别为所述第一待写入数据和所述第二待写入数据分配所述第一对象集和所述 第二对象集的存储装置进行存储。
[0025] 本发明实施例还提供一种写性能优化装置,用于一存储系统,包括:
[0026] 第一获取模块,用于获取至少两个顺序写请求,所述顺序写请求非对齐地访问所 述存储系统的存储装置中的数据块,所述顺序写请求携带有待写入数据和所述待写入数据 的待写入到所述存储装置中的存储空间信息;
[0027] 第一判断模块,用于根据全部所述顺序写请求携带的存储空间信息,判断全部所 述顺序写请求是否连续;
[0028] 读取模块,用于在全部所述顺序写请求连续时,读取全部所述顺序写请求非对齐 地访问的所述存储装置中的第一个和最后一个数据块;
[0029] 更新模块,用于根据全部所述顺序写请求携带的待写入数据和存储空间信息和读 取出的第一个和最后一个数据块,更新全部所述顺序写请求非对齐地访问的数据块。
[0030] 优选地,所述第一判断模块包括:
[0031] 判断单元,用于根据全部所述顺序写请求携带的存储空间信息,判断全部所述存 储空间信息表征的存储空间是否连续,如果是,则全部所述顺序写请求连续;否则,全部所 述顺序写请求不连续。
[0032] 优选地,所述更新模块包括:
[0033] 第一更新单元,用于根据访问所述第一个数据块的所述顺序写请求携带的待写入 数据和存储空间信息,更新所述第一个数据块;
[0034] 第二更新单元,用于根据访问所述最后一个数据块的所述顺序写请求携带的待写 入数据和存储空间信息,更新所述最后一个数据块;
[0035] 第三更新单元,用于对于全部所述顺序写请求非对齐地访问的所述第一个和最后 一个数据块之外的其它每个数据块,根据访问所述其它每个数据块的全部所述顺序写请求 携带的待写入数据和存储空间信息,更新所述其它每个数据块。
[0036] 本发明实施例还提供一种写性能优化装置,用于一存储系统,包括:
[0037] 第二判断模块,用于判断至少两个写请求针对的数据是否需要同步存储到所述存 储系统的存储装置;
[0038] 提交模块,用于当所述数据需要同步存储到所述存储装置时,利用一个输入/输 出I/O请求,将所述至少两个写请求对应的待提交日志提交给所述存储装置,使得所述存 储装置能够根据所述待提交日志,对所述数据进行同步存储,所述待提交日志包括所述至 少两个写请求中每个写请求针对的数据和所述存储装置中的存储空间信息。
[0039] 优选地,所述待提交日志包括所述至少两个写请求分别对应的日志,或者,所述至 少两个写请求分别对应的日志被合并后得到的日志。
[0040] 本发明实施例还提供一种写性能优化装置,用于一存储系统,所述存储系统包括 至少第一对象集和第二对象集,所述装置包括:
[0041] 第二获取模块,用于获取所述第一对象集内分别针对第一待写入数据和第二待写 入数据的第一同步写请求和第二同步写请求;
[0042] 分配模块,用于分别为所述第一待写入数据和所述第二待写入数据分配所述第一 对象集和所述第二对象集的存储装置进行存储。
[0043] 本发明实施例还提供一种包括以上所述的写性能优化装置的存储系统。
[0044] 从以上所述可以看出,本发明实施例至少具有如下有益效果:
[0045] 通过顺序写请求连续时读取第一个和最后一个数据块来进行非对齐地访问的数 据块的更新,不需要读取中间数据块,从而减少了从存储装置中读取数据块的次数,从而优 化了存储系统的写性能。
[0046] 通过利用一个I/O请求提交日志,减少了同步写请求的日志提交所产生的I/O请 求数,从而优化存储系统的写性能。
[0047] 通过为本对象集内的同步写请求分配其它对象集的成员盘,从而减轻了本对象集 的成员盘负载,从而优化存储系统的写性能。
【附图说明】
[0048] 图1表示ZFS整体架构图;
[0049] 图2表示本发明实施例提供的第一种存储方法的步骤流程图;
[0050] 图3表示本发明实施例提供的第二种存储方法的步骤流程图;
[0051] 图4表示本发明实施例提供的第三种存储方法的步骤流程图;
[0052] 图5表示本发明实施例的较佳实施方式的FastWrite写优化方法的整体结构图;
[0053] 图6表示本发明实施例的较佳实施方式的非对齐的顺序写请求;
[0054] 图7表示本发明实施例的较佳实施方式的非对齐顺序写聚合策略;
[0055] 图8表示本发明实施例的较佳实施方式的同步写
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1