存储系统写盘失败时的重写方法、装置、设备和存储介质制造方法及图纸

技术编号:17394965 阅读:34 留言:0更新日期:2018-03-04 18:26
本申请公开了存储系统写盘失败时的重写方法、装置、设备和存储介质,该方法包括:当写盘失败时,对写盘失败的IO进行记录;当前事务的IO完成后,遍历写盘失败的IO,查找所述写盘失败的IO所归属的逻辑空间;根据所述逻辑空间的大小重新分配新的磁盘空间,并将所述新的磁盘空间更新到对应的所述逻辑空间中,将所述写盘失败的IO的数据写入所述新的磁盘空间中;将所述写盘失败的IO所属的逻辑空间对应的原来的磁盘空间标记为已使用。上述存储系统写盘失败时的重写方法、装置、设备和存储介质,能够避免单次写入失败导致进程退出问题,提升存储系统的稳定性。

Rewriting methods, devices, devices, and storage media when a storage system fails to write a disk

The invention discloses a storage system rewriting method, disk write failure device, device and storage medium, the method includes: when writing disk fails, recorded on the disk write failure IO; current affairs after completion of the IO traversal disk write failure IO, find the logical space to write disk failure IO belong; according to the logic space size to redistribute the new disk space, and will update the new disk space to the corresponding logical space, the failure of the IO disk write data is written into the new disk space; the original disk space will mark the logic space the disk write failure IO is corresponding to the use. The rewrite methods, devices, devices and storage media of the above storage system fail to avoid the single process failure and improve the stability of storage system.

【技术实现步骤摘要】
存储系统写盘失败时的重写方法、装置、设备和存储介质
本专利技术属于存储系统
,特别是涉及存储系统写盘失败时的重写方法、装置、设备和存储介质。
技术介绍
CEPH后端支持多种存储引擎,以插件式的方式来进行管理使用,包括Filestore、kvStore、Memstore和bluestore等等,目前最新的存储引擎为bluestore。bluestore减少了之前的存储引擎存在的写放大问题,并针对SSD盘做优化,而且直接管理裸盘,从理论上进一步减少文件系统部分的开销,将成为CEPH未来默认的存储引擎。Bluestore在写操作时,根据IO在对象中的起始位置偏移和长度是否按最小分配单位对齐,将该IO划分到若干个blob中,具体的,每一个IO都是用一个二元组(偏移,长度)来表示的,其中偏移是相对于IO所操作对象的偏移,整块磁盘按某个固定的大小(最小分配单位)划分为多个分配单位,每次分配空间时都要按这个分配单位的整数倍来分配,为IO分配空间时根据IO的(偏移,长度)是否按最小分配单位对齐(也就是偏移和长度的值是否能整除最小分配单位的值)将对齐部分和不对齐部分分别划分到不同的逻辑空间中,(对齐部分即为在这个“偏移”位置开始的“长度”范围内,有多少空间是占满最小分配单位的,不对齐部分即为IO的“偏移”开始或结束部分占不满一个最小分配单位的空间。对划分到每一个blob中的数据,根据数据长度分配磁盘空间,并将数据在对象中的偏移转换为磁盘空间的绝对偏移,通过linuxaio写入盘中。如果写盘失败,则负责写盘的OSD进程会自动退出,这样一旦磁盘中存在一定范围的坏块,分配空间时又正好分配了坏块空间,写数据时就会失败,进程就会自动退出,而坏块无标记,下次分配时可能还会分配到,进程反复退出会导致系统稳定性变差。
技术实现思路
为解决上述问题,本专利技术提供了存储系统写盘失败时的重写方法、装置、设备和存储介质,能够避免单次写入失败导致进程退出问题,提升存储系统的稳定性。本专利技术提供的存储系统写盘失败时的重写方法,包括:当写盘失败时,对写盘失败的IO进行记录;当前事务的IO完成后,遍历写盘失败的IO,查找所述写盘失败的IO所归属的逻辑空间;根据所述逻辑空间的大小重新分配新的磁盘空间,并将所述新的磁盘空间更新到对应的所述逻辑空间中,将所述写盘失败的IO的数据写入所述新的磁盘空间中;将所述写盘失败的IO所属的逻辑空间对应的原来的磁盘空间标记为已使用。优选的,在上述存储系统写盘失败时的重写方法中,所述查找所述写盘失败的IO所归属的逻辑空间为:根据所述写盘失败的IO在磁盘空间上的偏移在本次事务中所有写对象的所有blob中查找所述写盘失败的IO所归属的对象和blob。优选的,在上述存储系统写盘失败时的重写方法中,所述将所述写盘失败的IO的数据写入所述新的磁盘空间中为:通过linuxaio提交写操作,将所述写盘失败的IO的数据写入所述新的磁盘空间中。本专利技术提供的存储系统写盘失败时的重写装置,包括:记录单元,用于当写盘失败时,对写盘失败的IO进行记录;查找单元,用于当前事务的IO完成后,遍历写盘失败的IO,查找所述写盘失败的IO所归属的逻辑空间;重写单元,用于根据所述逻辑空间的大小重新分配新的磁盘空间,并将所述磁盘空间更新到对应的所述逻辑空间中,将所述写盘失败的IO的数据写入所述新的磁盘空间中;标记单元,用于将所述写盘失败的IO所属的逻辑空间对应的原来的磁盘空间标记为已使用。优选的,在上述存储系统写盘失败时的重写装置中,所述查找单元具体用于根据所述写盘失败的IO在磁盘空间上的偏移在本次事务中所有写对象的所有blob中查找所述写盘失败的IO所归属的对象和blob。优选的,在上述存储系统写盘失败时的重写装置中,所述重写单元具体用于通过linuxaio提交写操作,将所述写盘失败的IO的数据写入所述新的磁盘空间中。本专利技术提供的存储系统写盘失败时的重写设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上面任一项所述存储系统写盘失败时的重写方法的步骤。本专利技术提供的存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上面任一项所述存储系统写盘失败时的重写方法的步骤。通过上述描述可知,本专利技术提供的上述存储系统写盘失败时的重写方法、装置、设备和存储介质,该方法包括当写盘失败时,对写盘失败的IO进行记录;当前事务的IO完成后,遍历写盘失败的IO,查找所述写盘失败的IO所归属的逻辑空间;根据所述逻辑空间的大小重新分配新的磁盘空间,并将所述新的磁盘空间更新到对应的所述逻辑空间中,将所述写盘失败的IO的数据写入所述新的磁盘空间中;将所述写盘失败的IO所属的逻辑空间对应的原来的磁盘空间标记为已使用,因此能够避免单次写入失败导致进程退出问题,提升存储系统的稳定性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请实施例提供的第一种存储系统写盘失败时的重写方法的示意图;图2为本申请实施例提供的第一种存储系统写盘失败时的重写装置的示意图;图3为本申请实施例提供的存储系统写盘失败时的重写设备的示意图。具体实施方式本专利技术的核心思想在于提供存储系统写盘失败时的重写方法、装置、设备和存储介质,能够避免单次写入失败导致进程退出问题,提升存储系统的稳定性。下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本申请实施例提供的第一种存储系统写盘失败时的重写方法如图1所示,图1为本申请实施例提供的第一种存储系统写盘失败时的重写方法的示意图,该方法包括如下步骤:S1:当写盘失败时,对写盘失败的IO进行记录;需要说明的是,可以但不限于利用linuxaio(异步输入/输出)方式进行写盘,这里只是对写盘失败的IO记录,暂时不做其他处理。S2:当前事务的IO完成后,遍历写盘失败的IO,查找所述写盘失败的IO所归属的逻辑空间;需要说明的是,一次事务提交中会包含多个IO,必须等该事务中所有的IO都完成后才能对该事务跳转到下一个处理状态,处理流程是针对事务的,所以必须得等到事务中的IO完成后,才能遍历写盘失败的IO。一次事务提交中可能有多个IO,每一个IO都对应着一个具体的对象,在写数据分配空间的过程中,会先为对象分配逻辑存储空间,再为逻辑存储空间分配物理空间,每一块物理空间都是用“偏移+长度”的二元组来表示的。当物理空间写失败时,则需要遍历当前事务中的每一个对象的每一个逻辑空间所包含的物理空间,通过匹配物理空间二元组的偏移值,以确定写失败的物理空间属于哪个对象的哪个逻辑空间。S3:根据所述逻辑空间的大小重新分配新的磁盘空间,并将所述新的磁盘空间更新到对应的所述逻辑空间中,将所述写盘失败的IO的数据写入所述新的磁盘空间中;需要说明本文档来自技高网
...
存储系统写盘失败时的重写方法、装置、设备和存储介质

【技术保护点】
存储系统写盘失败时的重写方法,其特征在于,包括:当写盘失败时,对写盘失败的IO进行记录;当前事务的IO完成后,遍历写盘失败的IO,查找所述写盘失败的IO所归属的逻辑空间;根据所述逻辑空间的大小重新分配新的磁盘空间,并将所述新的磁盘空间更新到对应的所述逻辑空间中,将所述写盘失败的IO的数据写入所述新的磁盘空间中;将所述写盘失败的IO所属的逻辑空间对应的原来的磁盘空间标记为已使用。

【技术特征摘要】
1.存储系统写盘失败时的重写方法,其特征在于,包括:当写盘失败时,对写盘失败的IO进行记录;当前事务的IO完成后,遍历写盘失败的IO,查找所述写盘失败的IO所归属的逻辑空间;根据所述逻辑空间的大小重新分配新的磁盘空间,并将所述新的磁盘空间更新到对应的所述逻辑空间中,将所述写盘失败的IO的数据写入所述新的磁盘空间中;将所述写盘失败的IO所属的逻辑空间对应的原来的磁盘空间标记为已使用。2.根据权利要求1所述的存储系统写盘失败时的重写方法,其特征在于,所述查找所述写盘失败的IO所归属的逻辑空间为:根据所述写盘失败的IO在磁盘空间上的偏移在本次事务中所有写对象的所有blob中查找所述写盘失败的IO所归属的对象和blob。3.根据权利要求2所述的存储系统写盘失败时的重写方法,其特征在于,所述将所述写盘失败的IO的数据写入所述新的磁盘空间中为:通过linuxaio提交写操作,将所述写盘失败的IO的数据写入所述新的磁盘空间中。4.存储系统写盘失败时的重写装置,其特征在于,包括:记录单元,用于当写盘失败时,对写盘失败的IO进行记录;查找单元,用于当前事务的IO完成后,遍历写盘失败的IO...

【专利技术属性】
技术研发人员:甄天桥
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1