一种利用SSD缓存对LUN进行加速的方法和装置与流程

文档序号:12304885阅读:442来源:国知局
一种利用SSD缓存对LUN进行加速的方法和装置与流程

本发明属于缓存设备技术领域,特别是涉及一种利用ssd缓存对lun进行加速的方法和装置。



背景技术:

在存储系统中,ssd磁盘在随机读写方面具有优异的表现,因此引入ssd缓存技术能够提高ssd硬盘的性价比,显著提高存储系统的io处理性能。如何将ssd磁盘资源进行有效管理,使其对lun级别的加速效果发挥到最佳,是存储系统ssd缓存设计的重点。

现有存储系统只支持对lunio的a/p路径访问方式的加速,即缓存分区只能加速与其prefer_node属性相同的lun。一般存储系统需要和多路径软件配合使用,主要实现控制器的故障切换和恢复、io流的负载均衡以及磁盘的虚拟化,对于双节点存储系统中使用a/a双活路径方式进行io访问时,此时io会从两个控制器都下发,原来的a/p模式下的ssd缓存就不能满足a/a模式的lun加速,尤其是会导致数据一致性出现问题。



技术实现要素:

为解决上述问题,本发明提供了一种利用ssd缓存对lun进行加速的方法和装置,能够满足a/a双活模式下的加速需求,做到ssd缓存系统功能稳定,保证数据一致性,提高存储系统的可靠性。

本发明提供的一种利用ssd缓存对lun进行加速的方法,包括:

将ssd加入到缓存池中,创建多个至少包括两个pdisk的ssd缓存分区;

将lun封装成带有缓存分区属性的vdisk数据结构;

为所述vdisk数据结构添加所述缓存分区属性,进行缓存映射,并开启ssd缓存加速。

优选的,在上述利用ssd缓存对lun进行加速的方法中,

所述将lun封装成带有缓存分区属性的vdisk数据结构为:

利用逻辑卷的方式,将lun封装成带有缓存分区属性的vdisk数据结构。

优选的,在上述利用ssd缓存对lun进行加速的方法中,

所述将ssd加入到缓存池中,创建多个至少包括两个pdisk的ssd缓存分区为:

将ssd加入到缓存池中,创建多个只有两个pdisk的ssd缓存分区。

优选的,在上述利用ssd缓存对lun进行加速的方法中,

所述开启ssd缓存加速之后,还包括:

接收主机端采用双活模式下发的ios;

对所述ios进行缓存,如果命中则重新引导ios到对应的ssd缓存分区,否则直接提交到对应的所述vdisk。

优选的,在上述利用ssd缓存对lun进行加速的方法中,

所述开启ssd缓存加速之后,还包括:

当所述主机端的任一节点发生故障时,则利用另一个节点对所述ios进行缓存。

本发明提供的一种利用ssd缓存对lun进行加速的装置,包括:

创建单元,用于将ssd加入到缓存池中,创建多个至少包括两个pdisk的ssd缓存分区;

封装单元,用于将lun封装成带有缓存分区属性的vdisk数据结构;

映射单元,用于为所述vdisk数据结构添加所述缓存分区属性,进行缓存映射,并开启ssd缓存加速。

优选的,在上述利用ssd缓存对lun进行加速的装置中,

所述封装单元具体用于利用逻辑卷的方式,将lun封装成带有缓存分区属性的vdisk数据结构。

优选的,在上述利用ssd缓存对lun进行加速的装置中,

所述创建单元具体用于将ssd加入到缓存池中,创建多个只有两个pdisk的ssd缓存分区。

优选的,在上述利用ssd缓存对lun进行加速的装置中,

还包括:

接收单元,用于接收主机端采用双活模式下发的ios;

第一缓存单元,用于对所述ios进行缓存,如果命中则重新引导ios到对应的ssd缓存分区,否则直接提交到对应的所述vdisk。

优选的,在上述利用ssd缓存对lun进行加速的装置中,

还包括:

第二缓存单元,用于当所述主机端的任一节点发生故障时,则利用另一个节点对所述ios进行缓存。

通过上述描述可知,本发明提供的上述利用ssd缓存对lun进行加速的方法和装置,由于该方法包括将ssd加入到缓存池中,创建多个至少包括两个pdisk的ssd缓存分区;将lun封装成带有缓存分区属性的vdisk数据结构;为所述vdisk数据结构添加所述缓存分区属性,进行缓存映射,并开启ssd缓存加速,因此能够满足a/a双活模式下的加速需求,做到ssd缓存系统功能稳定,保证数据一致性,提高存储系统的可靠性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的第一种利用ssd缓存对lun进行加速的方法的示意图;

图2为ssd缓存分区与pdisk的对应关系的示意图;

图3为a/a模式ssd缓存加速过程的示意图;

图4为本申请实施例提供的第一种利用ssd缓存对lun进行加速的装置的示意图。

具体实施方式

本发明的核心思想在于提供一种利用ssd缓存对lun进行加速的方法和装置,能够满足a/a双活模式下的加速需求,做到ssd缓存系统功能稳定,保证数据一致性,提高存储系统的可靠性。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请实施例提供的第一种利用ssd缓存对lun进行加速的方法如图1所示,图1为本申请实施例提供的第一种利用ssd缓存对lun进行加速的方法的示意图,该方法包括如下步骤:

s1:将ssd加入到缓存池中,创建多个至少包括两个pdisk的ssd缓存分区;

具体的,可以创建多个缓存池,参考图2,图2为ssd缓存分区与pdisk的对应关系的示意图,创建缓存分区时,可根据实际需要来决定pdisk的数量,从图中可以看出,其中的partition0中包括pdisk0和pdisk1这样两个pdisk,而partition1中包括pdisk2和pdisk3这样两个pdisk。针对双控有两个pdisk,而针对多控设备,则会对应增加pdisk的数量。

s2:将lun封装成带有缓存分区属性的vdisk数据结构;

继续参考图2,可见hdd资源池被划分出vdisk0、vdisk1、vdisk2以及vdisk3,可以将其中的vdisk0对应到上述partition0,将其中的vdisk1对应到上述partition1等等,此处不再赘述。

s3:为所述vdisk数据结构添加所述缓存分区属性,进行缓存映射,并开启ssd缓存加速。

开启加速后,ssd缓存会重新引导io进行ssd加速。

通过上述描述可知,本申请实施例提供的第一种利用ssd缓存对lun进行加速的方法,由于包括将ssd加入到缓存池中,创建多个至少包括两个pdisk的ssd缓存分区;将lun封装成带有缓存分区属性的vdisk数据结构;为所述vdisk数据结构添加所述缓存分区属性,进行缓存映射,并开启ssd缓存加速,因此能够满足a/a双活模式下的加速需求,做到ssd缓存系统功能稳定,保证数据一致性,提高存储系统的可靠性。

本申请实施例提供的第二种利用ssd缓存对lun进行加速的方法,是在上述第一种利用ssd缓存对lun进行加速的方法的基础上,还包括如下技术特征:

所述将lun封装成带有缓存分区属性的vdisk数据结构为:

利用逻辑卷的方式,将lun封装成带有缓存分区属性的vdisk数据结构。

本申请实施例提供的第三种利用ssd缓存对lun进行加速的方法,是在上述第一种或第二种利用ssd缓存对lun进行加速的方法的基础上,还包括如下技术特征:

所述将ssd加入到缓存池中,创建多个至少包括两个pdisk的ssd缓存分区为:

将ssd加入到缓存池中,创建多个只有两个pdisk的ssd缓存分区k,映射关系为pdisk_id=pid*node_id,两个pdisk容量一致,可以属于不同缓存池。

需要说明的是,ssd缓存分区由pdisk组成作为缓存分区的基本管理单位,一个pdisk实际是vdisk数据结构的再封装,即对应后端可访问的基本逻辑卷,对于a/a模式下的存储系统,一个ssd缓存为了保证对一个vdisk的加速功能,每个控制器需要维护一个pdisk,所以这两个pdisk组成了存储系统的一个partition。一般而言,双活系统的ssd缓存维护32个缓存分区,所以需要维护64个pdisk,存储系统中的ssd缓存主要进行随机读加速,对于写ios,为了保持数据一致性,需要进行两个控制器之间的元数据的同步。

本申请实施例提供的第四种利用ssd缓存对lun进行加速的方法,是在上述第三种利用ssd缓存对lun进行加速的方法的基础上,还包括如下技术特征:

所述开启ssd缓存加速之后,还包括:

接收主机端采用双活模式下发的ios;

对所述ios进行缓存,如果命中则重新引导ios到对应的ssd缓存分区,否则直接提交到对应的所述vdisk。

具体而言,参考图3,图3为a/a模式ssd缓存加速过程的示意图,正常的a/a模式情况下,对一个vdisk进行ssd缓存加速,两个节点可能都会接收到的ios,两个节点都需要创建该分区对应的pdisk,通过映射关系会使用partition对应节点上的pdisk来进行加速处理,同时对写io会进行元数据同步。

本申请实施例提供的第五种利用ssd缓存对lun进行加速的方法,是在上述第四种利用ssd缓存对lun进行加速的方法的基础上,还包括如下技术特征:

所述开启ssd缓存加速之后,还包括:

当所述主机端的任一节点发生故障时,则利用另一个节点对所述ios进行缓存。

具体的,当双节点存储系统中的某一节点发生故障后,下发vdisk的ios全部由另一节点接收和进行ssd缓存加速,这就有助于保证存储的安全性,有效避免对系统造成的不利影响。

上述方法创建和管理比较灵活,有效组织了ssd缓存资源,提高ssd缓存的加速性能,从而扩展了存储系统的功能,显著提升了存储系统的性能,还保证了系统的可靠性,保证存储系统ios不中断正常业务,用户体验更好。

本申请实施例提供的第一种利用ssd缓存对lun进行加速的装置如图4所示,图4为本申请实施例提供的第一种利用ssd缓存对lun进行加速的装置的示意图,该装置包括:

创建单元201,用于将ssd加入到缓存池中,创建多个至少包括两个pdisk的ssd缓存分区,创建缓存分区时,可根据实际需要来决定pdisk的数量;

封装单元202,用于将lun封装成带有缓存分区属性的vdisk数据结构;

映射单元203,用于为所述vdisk数据结构添加所述缓存分区属性,进行缓存映射,并开启ssd缓存加速。

本申请实施例提供的第二种利用ssd缓存对lun进行加速的装置,是在上述第一种利用ssd缓存对lun进行加速的装置的基础上,还包括如下技术特征:

所述封装单元具体用于利用逻辑卷的方式,将lun封装成带有缓存分区属性的vdisk数据结构。

本申请实施例提供的第三种利用ssd缓存对lun进行加速的装置,是在上述第一种或第二种利用ssd缓存对lun进行加速的装置的基础上,还包括如下技术特征:

所述创建单元具体用于将ssd加入到缓存池中,创建多个只有两个pdisk的ssd缓存分区。

需要说明的是,ssd缓存分区由pdisk组成作为缓存分区的基本管理单位,一个pdisk实际是vdisk数据结构的再封装,即对应后端可访问的基本逻辑卷,对于a/a模式下的存储系统,一个ssd缓存为了保证对一个vdisk的加速功能,每个控制器需要维护一个pdisk,所以这两个pdisk组成了存储系统的一个partition。一般而言,双活系统的ssd缓存维护32个缓存分区,所以需要维护64个pdisk,存储系统中的ssd缓存主要进行随机读加速,对于写ios,为了保持数据一致性,需要进行两个控制器之间的元数据的同步。

本申请实施例提供的第四种利用ssd缓存对lun进行加速的装置,是在上述第三种利用ssd缓存对lun进行加速的装置的基础上,还包括如下技术特征:

还包括:

接收单元,用于接收主机端采用双活模式下发的ios;

第一缓存单元,用于对所述ios进行缓存,如果命中则重新引导ios到对应的ssd缓存分区,否则直接提交到对应的所述vdisk。

正常的a/a模式情况下,对一个vdisk进行ssd缓存加速,两个节点可能都会接收到的ios,两个节点都需要创建该分区对应的pdisk,通过映射关系会使用partition对应节点上的pdisk来进行加速处理,同时对写io会进行元数据同步。

本申请实施例提供的第五种利用ssd缓存对lun进行加速的装置,是在上述第四种利用ssd缓存对lun进行加速的装置的基础上,还包括如下技术特征:

还包括:

第二缓存单元,用于当所述主机端的任一节点发生故障时,则利用另一个节点对所述ios进行缓存。

具体的,当双节点存储系统中的某一节点发生故障后,下发vdisk的ios全部由另一节点接收和进行ssd缓存加速,这就有助于保证存储的安全性,有效避免对系统造成的不利影响。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1