一种数据访问方法及装置的制造方法_3

文档序号:9687375阅读:来源:国知局
0088]所述主机针对确定的所述存储控制器控制访问的每个逻辑单元,执行:
[0089]根据各存储控制器当前的负载,和当前访问该逻辑单元的单位时间访问量,从各存储控制器中选择分担处理访问该逻辑单元的数据访问请求的协作存储控制器;其中,所述单位时间访问量为单位时间内执行数据访问请求的次数或单位时间内访问的数据量;
[0090]所述主机将后续生成的访问该逻辑单元的数据访问请求发送给所述协作存储控制器。
[0091]这里,衡量存储控制器负载情况的负载指标可以是中央处理器(CentralProcessing Unit, CPU)利用率或缓存利用率等,这里并不限定。另外,这里,访问每个逻辑单元的单位时间访问量为单位时间内执行数据访问请求的次数,比如采用10PS来衡量,10PS为每秒钟执行I/O操作的次数,全称为Input/Output Operat1ns Per Second ;或者,单位时间访问量可以是单位时间内访问的数据量,比如采用带宽来衡量。
[0092]在该实施方式下,选择所述协作存储控制器的步骤具体可以是:
[0093]根据各存储控制器当前的负载,和当前访问该逻辑单元的单位时间访问量,判断所述各存储控制器中是否存在单个存储控制器能够分担处理访问该逻辑单元的全部数据访问请求;
[0094]如果存在,则选择存在的单个存储控制器作为所述协作存储控制器;
[0095]否则,根据各存储控制器当前的负载,和当前访问该逻辑单元的单位时间访问量,在各存储控制器中选择最少数量的存储控制器、且选择的存储控制器能共同分担处理访问该逻辑单元的全部数据访问请求,将选择的最少数量的存储控制器作为所述协作存储控制器。
[0096]在上述步骤中,当存在一个存储控制器能够分担处理访问该逻辑单元的全部数据访问请求时,优选由该存储控制器作为所述协作存储控制器,这样,可以提高该存储控制器的缓存命中率,从而提高数据I/O效率;同时,当该存储控制器发生故障时,只会影响该存储控制控制访问的逻辑单元,不会对其它存储控制器控制访问的逻辑单元产生影响。实际上,这时相当于调整了 LUN与存储控制器映射关系。这里,存储控制器能够分担处理访问该逻辑单元的全部数据访问请求是指当选择由该存储控制器负责处理访问该逻辑单元的全部数据访问请求后,该存储控制器的负载不会超过所述设定阈值。
[0097]若没有一个存储控制器能够分担处理访问该逻辑单元的全部数据访问请求,则选择多个协作存储控制器共同分担处理访问该逻辑单元的全部数据访问请求,并使这多个协作存储控制器的数量最少化。比如,可以从各存储控制器中选择当前负载率较低的几个存储控制器组成所述协作存储控制器,这样可以使得承担访问该逻辑单元的数据访问请求的存储控制器的数量最少,从而最大程度地提高存储控制器的缓存命中率。
[0098]当选择所述最少数量的存储控制器作为所述协作存储控制器时,可以将该逻辑单元分片分配给所述最少数量的存储控制器中的每个存储控制器。这里,将每个逻辑单元划分成多个分片,每个分片占用该逻辑单元中设定大小的逻辑地址范围,访问每个逻辑单元的单位时间访问量为访问该逻辑单元中包括的每个分片的单位时间访问量之和。在进行负载情况监测时,以一个分片为单位,分别监测每个逻辑单元中的每个分片上的I/o情况。
[0099]当需要将某个逻辑单元分片分配给多个存储控制器进行控制访问时,可以根据该逻辑单元中各分片的I/O情况及这多个存储控制器的负载情况,为其中每个存储控制器分配该逻辑单元中的一个或多个分片。
[0100]也即,所述主机将后续针对该逻辑单元生成的访问该逻辑单元的数据访问请求发送给所述协作存储控制器,包括:
[0101]根据选择的最少数量的存储控制器各自当前的负载,以及当前访问该逻辑单元的每个分片的单位时间访问量,确定选择的最少数量的存储控制器中的每个存储控制器分担处理访问该逻辑单元中的至少一个分片的全部数据访问请求;其中,每个逻辑单元包括多个设定大小的分片;
[0102]所述主机针对该逻辑单元中的每个分片执行:将后续生成的访问该逻辑单元的每个分片的数据访问请求,发送给确定的分担处理访问该分片的全部数据访问请求的存储控制器。
[0103]在具体实施过程中,当选择最少数量的存储控制器作为控制访问某个逻辑单元的协作存储控制器后,需要将该逻辑单元分片分配给其中的每个存储控制器进行访问控制,在应用运行过程中,各存储控制器的负载情况可能会发生变化。当监测到各存储控制器中存在单个存储控制器能够处理访问该逻辑单元的全部数据访问请求后,可以将分片后的逻辑单元进行合并,统一由该单个存储控制器来处理访问该逻辑单元的全部数据访问请求,也即重新选择该单个存储控制器作为所述协作存储控制器来控制访问整个逻辑单元。
[0104]下面通过一个优选的实施例对本发明实施例进行数据访问的方法作进一步说明。
[0105]如图6所示,为本发明实施例二提供的数据访问方法流程图,包括:
[0106]S601:主机生成数据访问请求,所述数据访问请求包括访问的存储设备的逻辑单兀号LUN。
[0107]S602:所述主机根据该LUN与存储控制器的映射关系,确定控制访问该LUN所标识的逻辑单元的存储控制器。
[0108]S603:所述主机将生成的所述数据访问请求发送给确定的所述存储控制器。
[0109]S604:所述主机监测到确定的所述存储控制器的负载超过设定阈值。
[0110]S605:所述主机针对确定的所述存储控制器控制访问的每个逻辑单元,执行:根据各存储控制器当前的负载,和当前访问该逻辑单元的单位时间访问量,判断所述各存储控制器中是否存在单个存储控制器能够分担处理访问该逻辑单元的全部数据访问请求;如果存在,进入S606,否则进入S607。
[0111]S606:选择存在的单个存储控制器分担处理访问该逻辑单元的全部数据访问请求。
[0112]S607:根据各存储控制器当前的负载,和当前访问该逻辑单元的单位时间访问量,在各存储控制器中选择最少数量的存储控制器、且选择的存储控制器能共同分担处理访问该逻辑单元的全部数据访问请求;根据选择的最少数量的存储控制器各自当前的负载,以及当前访问该逻辑单元的每个分片的单位时间访问量,确定选择的最少数量的存储控制器中的每个存储控制器分担处理访问该逻辑单元中的至少一个分片的全部数据访问请求。
[0113]S608:所述主机针对该逻辑单元中的每个分片执行:将后续生成的访问该逻辑单元的每个分片的数据访问请求,发送给确定的分担处理访问该分片的全部数据访问请求的存储控制器。
[0114]S609:当所述主机监测到各存储控制器中存在单个存储控制器能够处理访问该逻辑单元的全部数据访问请求后,选择该单个存储控制器分担处理访问该逻辑单元的全部数据访问请求。
[0115]下面,进行举例说明。首选需要说明的是,通常情况下,不同的存储控制器的处理性能会有所不同,并且不同的业务种类下单位时间访问量也不同。该举例中为了简化描述,假设存储控制器每1%的CPU利用率能处理100 10PS。并假设负载调整的上水位(也即所述设定阈值)为80% CPU利用率。
[0116]如图7(a)所示,初始时,分别将5个逻辑单元的I/O请求分配到对应的存储控制器中。运行一段时间后,如图7(b)所示,监测到存储控制器4的负载超过设定阈值,并且此时存储控制器3能够分担一个逻辑单元的全部I/O请求,则后续将访问LUN4的I/O请求全部分配给存储控制器3。继续运行一段时间后,如图7(c)所示,监测到存储控制器4的负载达到设定阈值,并且没有其它存储控制器能够分担处理整个LUN5的I/O请求,则此时将访问LUN5的I/O请求分片分配给存储控制器2和存储控制器4 ;这里,假设LUN5所标识的逻辑单元的总容量为5GB,访问该逻辑单元的总共10000 10PS中,访问该逻辑单元的每个1GB分片的1PS数目依次为1000(分片1)、4000(分片2)、2000(分片3)、1000(分片4)和2000(分片5)。因此,可以将访问分片1和2的I/O请求分配给存储控制器2,将访问分片
3、4、5的I/O请求分配给存储控制器4,如图7(d)所示。继续运行一段时间后,统计到存储控制器4和存储控制器2的负载较低,存储控制器4足以分担整个LUN5的I/O请求,因此将LUN5的各个分片合并,将后续访问LUN5的所有I/O请求都分配给存储控制器4,如图7(e)所示。
[0117]基于同一发明构思,本发明实施例中还提供了一种与数据访问方法对应的数据访问装置、设备,由于该装置、设备解决问题的原理与本发明实施例中的数据访问方法相似,因此该装置和设备的实施可以参见方法的实施,重复之处不再赘述。
[0118]如图8所示,为本发明实施例三提供的数据访问装置结构示意图,该
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1