CN105808443B - 一种数据迁移的方法、装置及系统 - Google Patents
一种数据迁移的方法、装置及系统 Download PDFInfo
- Publication number
- CN105808443B CN105808443B CN201410842902.XA CN201410842902A CN105808443B CN 105808443 B CN105808443 B CN 105808443B CN 201410842902 A CN201410842902 A CN 201410842902A CN 105808443 B CN105808443 B CN 105808443B
- Authority
- CN
- China
- Prior art keywords
- controller
- data block
- heat
- storage space
- migration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005012 migration Effects 0.000 title claims abstract description 274
- 238000013508 migration Methods 0.000 title claims abstract description 274
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000005070 sampling Methods 0.000 claims abstract description 144
- 230000004044 response Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000004883 computer application Methods 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 17
- 238000013507 mapping Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种数据迁移的方法、装置及系统,涉及计算机应用技术领域,用以降低现有技术中负载均衡时导致的数据块错误迁移和反复迁移的问题。该方法包括:在采样周期内,获取所述各个控制器存储空间中数据块的被访问次数;根据所述各个控制器存储空间中数据块的被访问次数计算当前采样周期内所述各个控制器的热度,所述控制器的热度等于:在采样周期内,对所述控制器存储空间中数据块的被访问次数进行加权运算得到的加权运算值;确定所述各个控制器的热度是否大于第一阈值;发送第一迁移指令给第一控制器,发送第二迁移指令给第二控制器。本发明可用于数据迁移。
Description
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种数据迁移的方法、装置及系统。
背景技术
存储区域网络(Storage Area Network,简称SAN)是一种使用高速网络或子网络将存储设备和服务器连接起来的网络。SAN使存储设备与网络分离开来,成为计算机网络的对等体。
一般来说,一个SAN由负责网络连接的通信结构、负责组织连接的管理层、存储部件以及计算机系统组成,SAN设备的典型架构可以参考图1。其中,主机、控制器以及集中式高速缓存(简称集中式CAHCE)是一一对应的,且集中式CACHE中划分了不止一块区域,每个区域称为一个逻辑单元号(Logic Unit Number,简称Lun),在创建Lun时,已经分配好了各个Lun归属的控制器。示例的,假设图1中主机1、嵌入式处理器1和集中式CACHE1一一对应,则若主机1要访问集中式CACHE1中的某一数据块,主机1先通过接口芯片1,如光纤信道/小型计算机系统接口(Fiber Channel/Internet Small Computer System Interface,简称FC/iSCSI)芯片将访问请求发送给嵌入式处理器1,嵌入式处理器1接收该请求并将其中的数据部分发送给集中式CACHE,将其中的控制指令部分发送给控制器1,通知控制器1对集中式CACHE中的数据进行操作。
但在上述数据块访问的过程中,由于主机和控制器是一一对应的,所以可能会出现某个控制器负载过大的而其他控制器负载较低的情况。此时,若不采取措施进行负载均衡,可能会导致系统的性能受到影响。为了解决这一问题,现有技术通过控制器的CPU占用率来对数据块进行迁移以实现负载均衡,进而提高系统的性能。但是,由于控制器的CPU占用率仅能反映某一时刻正在运行的进程占用的CPU资源的多少。因此,对于那些控制器CPU占用率大但不经常使用的进程来说,虽然其控制器CPU占用率较高,但实际上在这种情况下并没有必要对控制器中的数据块进行迁移,此时若仅根据控制器的CPU占用率来判定是否进行数据块迁移的话,很容易造成错误迁移;而对于突发进程来说,控制器的CPU占用率会频繁发生变动,进而导致数据块出现反复迁移。
发明内容
本发明的实施例提供一种数据迁移的方法、装置及系统,用以降低现有技术中负载均衡时导致的数据块错误迁移和反复迁移的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明提供了一种数据迁移的方法,所述方法应用于存储区域网络SAN系统中的迁移控制装置,所述存储区域网络SAN系统包括主机、迁移控制装置和至少两个控制器,所述每个控制器包括存储空间,所述迁移控制装置分别与所述主机、所述至少两个控制器连接,所述方法包括:
在采样周期内,获取所述各个控制器存储空间中数据块的被访问次数;
根据所述各个控制器存储空间中数据块的被访问次数计算当前采样周期内所述各个控制器的热度,所述控制器的热度等于:在采样周期内,对所述控制器存储空间中数据块的被访问次数进行加权运算得到的加权运算值;
确定所述各个控制器的热度是否大于第一阈值;
发送第一迁移指令给第一控制器,其中:所述第一迁移指令中携带的迁出数据块标识是第一数据块的标识,所述第一数据块存储于所述第一控制器存储空间中,所述第一迁移指令携带的迁入控制器标识是第二控制器的标识,第一控制器的热度大于所述第一阈值,第二控制器的热度不大于第一阈值;
发送第二迁移指令给所述第二控制器,其中:所述第二迁移指令中携带的迁出数据块标识是第二数据块的标识,所述第二数据块存储于所述第二控制器存储空间中,所述第二迁移指令携带的迁入控制器标识是所述第一控制器的标识;
其中,所述第一数据块的热度大于所述第二数据块的热度。
结合第一方面,在第一种可能的实现方式中,所述根据所述各个控制器存储空间中数据块的被访问次数计算当前采样周期内所述各个控制器的热度具体包括:
根据所述各个控制器存储空间中数据块的被访问次数和第一公式,计算所述当前采样周期内各个控制器的热度,所述第一公式为:
其中,UM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMj表示当前采样周期内第M个控制器存储空间中第j个数据块的被访问次数。
结合第一方面,在第二种可能的实现方式中,所述根据所述各个控制器存储空间中数据块的被访问次数计算所述当前采样周期内各个控制器的热度具体包括:
根据所述各个控制器存储空间中数据块的被访问次数和第二公式,计算所述当前采样周期内各个控制器的热度,所述第二公式为:
其中,OM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMj表示当前采样周期内第M个控制器存储空间中第j个数据块的被访问次数,P0表示单位数据块的大小。
结合第一方面,在第三种可能的实现方式中,所述根据所述各个控制器存储空间中数据块的被访问次数计算所述当前采样周期内各个控制器的热度具体包括:
根据所述各个控制器存储空间中数据块的被访问次数和第三公式,计算所述当前采样周期内各个控制器的热度,所述第三公式包括:
其中,NM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMij表示第i个采样周期内第M个控制器存储空间中第j个数据块的被访问次数,k表示当前采样周期,n表示预先设定的连续采样次数,T表示预先设定的数据块热度的半衰期,所述热度的半衰期表示所述数据块的被访问次数减半时所经历的时间。
结合第一方面至第一方面的第三种可能的实现方式中任意一种实现方式,在第四种可能的实现方式中,所述获取采样周期内所述各个控制器存储空间中数据块的被访问次数之前,所述方法还包括:
接收所述各个控制器发送的各自的第一路由信息,所述第一路由信息包括发出第一路由信息的控制器的:控制器标识以及所述控制器存储空间中的数据块标识;
接收所述各个主机发送的各自的第二路由信息,所述第二路由信息包括发出第二路由信息的主机的:主机标识以及所述主机中的逻辑块标识;
根据所述第一路由信息和所述第二路由信息,建立第三路由信息,所述第三路由信息包括主机标识、主机中的逻辑块标识、所述控制器标识以及所述控制器存储空间中的数据块标识之间的对应关系。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述获取采样周期内所述各个控制器存储空间中数据块的被访问次数具体包括:
接收各个主机在采样周期内发送的访问请求,所述访问请求中包括所述各个主机标识和所述主机中的逻辑块标识;
根据所述访问请求,确定所述第三路由信息中是否包含所述各个所述主机标识和所述主机中的逻辑块标识;
根据所述访问请求中包含的所述各个主机标识和所述主机中的逻辑块标识以及所述第三路由信息,记录所述各个主机在采样周期内对所述不同控制器存储空间中数据块的访问次数。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述发送第一迁移指令给第一控制器,发送第二迁移指令给第二控制器之后,所述方法还包括:
将访问所述第一控制器存储空间中第一数据块的访问请求和访问所述第二控制器存储空间中第二数据块的访问请求放入重发队列中;
接收所述第一控制器和所述第二控制器发送的迁移应答指令;
根据所述迁移应答指令,更新所述第三路由信息,得到第四路由信息;
根据所述第四路由信息对访问所述第一数据块的访问请求和访问所述第二数据块的访问请求进行路由。
结合第一方面,在第七种可能的实现方式中,在所述根据所述各个控制器存储空间中数据块的被访问次数计算所述各个控制器的热度之后,所述方法还包括:
确定所述各个控制器的热度是否均大于第二阈值;
确定所述各个控制器的热度是否大于第一阈值具体包括:若所述控制器的热度不全大于所述第二阈值,则确定所述各个控制器的热度是否大于第一阈值。
结合第一方面,在第八种可能的实现方式中,所述第一阈值为其中,表示所有控制器的热度的平均值,α表示热度偏离百分比。
第二方面,本发明提供了一种迁移控制装置,所述装置应用于存储区域网络SAN系统,所述存储区域网络SAN系统包括主机、至少两个控制器和迁移控制装置,所述迁移控制装置分别与所述主机、所述至少两个控制器连接,所述装置包括:获取模块、计算模块、确定模块、发送模块;
所述获取模块,用于在采样周期内,获取所述各个控制器存储空间中数据块的被访问次数;
所述计算模块,用于根据所述各个控制器存储空间中数据块的被访问次数计算当前采样周期内所述各个控制器的热度,所述控制器的热度等于:在采样周期内,对所述控制器存储空间中数据块的被访问次数进行加权运算得到的加权运算值;
所述确定模块,用于确定所述各个控制器的热度是否大于第一阈值;
所述发送模块,用于发送第一迁移指令给第一控制器,其中:第一迁移指令中携带的迁出数据块标识是第一数据块的标识,第一数据块存储于第一控制器存储空间中,第一迁移指令携带的迁入控制器标识是第二控制器的标识,第一控制器的热度大于第一阈值,第二控制器的热度不大于第一阈值;
所述发送模块,用于发送第二迁移指令给第二控制器,其中:第二迁移指令中携带的迁出数据块标识是第二数据块的标识,第二数据块存储于所述第二控制器存储空间中,第二迁移指令携带的迁入控制器标识是所述第一控制器的标识;
其中,所述第一数据块的热度大于所述第二数据块的热度。
结合第二方面,在第一种可能的实现方式中,所述计算模块具体用于:
根据所述各个控制器存储空间中数据块的被访问次数和第一公式,计算所述当前采样周期内各个控制器的热度,所述第一公式为:
其中,UM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMj表示当前采样周期内第M个控制器存储空间中第j个数据块的被访问次数。
结合第二方面,在第二种可能的实现方式中,所述计算模块具体用于:
根据所述各个控制器存储空间中数据块的被访问次数和第二公式,计算所述当前采样周期内各个控制器的热度,所述第二公式为:
其中,OM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMj表示当前采样周期内第M个控制器存储空间中第j个数据块的被访问次数,P0表示单位数据块的大小。
结合第二方面,在第三种可能的实现方式中,所述计算模块具体用于:
根据所述各个控制器存储空间中数据块的被访问次数和第三公式,计算所述当前采样周期内各个控制器的热度,所述第三公式包括:
其中,NM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMij表示第i个采样周期内第M个控制器存储空间中第j个数据块的被访问次数,k表示当前采样周期,n表示预先设定的连续采样次数,T表示预先设定的数据块热度的半衰期,所述热度的半衰期表示所述数据块的被访问次数减半时所经历的时间。
结合第二方面至第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述装置还包括:接收模块、建立模块;
所述接收模块,用于接收所述各个控制器发送的各自的第一路由信息,所述第一路由信息包括发出第一路由信息的控制器的:控制器标识以及所述控制器存储空间中的数据块标识;
所述接收模块,还用于接收所述各个主机发送的各自的第二路由信息,所述第二路由信息包括发出第二路由信息的主机的:主机标识以及所述主机中的逻辑块标识;
所述建立模块,用于根据所述第一路由信息和所述第二路由信息,建立第三路由信息,所述第三路由信息包括主机标识、主机中的逻辑块标识、所述控制器标识以及所述控制器存储空间中的数据块标识之间的对应关系。
结合第二方面的第四中可能的实现方式,在第五种可能的实现方式中,所述装置还包括:接收模块、确定模块、记录模块;
所述接收模块,用于接收各个主机在采样周期内发送的访问请求,所述访问请求中包括所述各个主机标识和所述主机中的逻辑块标识;
所述确定模块,用于根据所述访问请求,确定所述第三路由信息中是否包含所述各个所述主机标识和所述主机中的逻辑块标识;
所述记录模块,用于根据所述访问请求中包含的所述各个主机标识和所述主机中的逻辑块标识以及所述第三路由信息,记录所述采样周期内所述各个控制器存储空间中数据块的被访问次数。
结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述装置还包括:处理模块、更新模块、路由模块;
所述处理模块,用于将访问所述第一控制器存储空间中第一数据块的访问请求和访问所述第二控制器存储空间中第二数据块的访问请求放入重发队列中;
所述接收模块,还用于接收所述第一控制器和所述第二控制器发送的迁移应答指令;
所述更新模块,用于根据所述迁移应答指令,更新所述第三路由信息,得到第四路由信息;
所述路由模块,用于根据所述第四路由信息对访问所述第一数据块的访问请求和访问所述第二数据块的访问请求进行路由。
结合第二方面,在第七种可能的实现方式中,所述确定模块,还用于确定所述各个控制器的热度是否均大于第二阈值;
所述确定模块,还用于若所述控制器的热度不全大于所述第二阈值时,确定所述各个控制器的热度是否大于第一阈值。
第三方面,本发明提供了一种存储区域网络SAN系统,包括:主机、第二方面或第二方面的任意一种可能的实现方式中所述的迁移控制装置和至少两个控制器;所述控制器用于接收所述迁移控制装置发送的迁移指令,并根据所述迁移指令对数据块进行迁移。
结合第三方面,在第一种可能的实现方式中,所述迁移控制装置包括接口芯片、交换芯片和处理器;所述接口芯片分别与所述主机、所述交换芯片连接,所述交换芯片分别与所述处理器、所述至少两个控制器连接;
所述处理器用于在采样周期内,获取所述各个控制器存储空间中数据块的被访问次数;根据所述各个控制器存储空间中数据块的被访问次数计算当前采样周期内所述各个控制器的热度;确定所述各个控制器的热度是否大于第一阈值;发送第一迁移指令给第一控制器;发送第二迁移指令给第二控制器。
本发明实施例提供了一种数据迁移的方法、装置及系统。该方法可以根据在采样周期内获取到的各个控制器存储空间中数据块的被访问次数,计算出当前采样周期内各个控制器的热度,并通过将各个控制器的热度与第一阈值进行比较,判断是否进行数据块的迁移,以均衡各个控制器的负载。由于将控制器存储空间中数据块的被访问次数经过加权运算得到的加权运算值,可以准确的反映出数据块的热度,所以即使控制器的CPU占用率高,其数据块的热度不一定高不一定高,也即控制器的热度不一定高。因而通过控制器的热度的大小对控制器存储空间中的数据块进行迁移,可以有效避免出现数据块的错误迁移;对于突发进程来说,由于控制器的CPU占用率不稳定,很容易出现数据块的反复迁移的情况,而本发明所述的方法在进行数据块迁移时,依据的是采样周期内各个控制器的热度和控制器存储空间中数据块的热度,所以可以在一定程度上缓解突发进程对采样周期内控制器的总热度影响,进而不会导致数据块之间进行频繁的迁移。所以,综上所述,本发明所述的方法,可以缓解现有技术中通过CPU占用率进行负载均衡时导致的数据块错误迁移和反复迁移的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有SAN设备的典型架构示意图;
图2为本发明实施例提供的一种数据迁移的方法流程图;
图3为本发明实施例提供的SAN系统架构示意图;
图4为本发明实施例提供的另一种数据迁移的方法流程图;
图5为本发明实施例提供的SAN系统的初始化过程示意图;
图6为本发明实施例提供的另一种数据迁移的方法流程图;
图7为本发明实施例提供的主机和控制器的映射关系示意图;
图8为本发明实施例提供的以Lun为单位进行数据迁移前数据块的分布状态示意图;
图9为本发明实施例提供的以Lun为单位进行数据迁移后数据块的分布状态示意图;
图10为本发明实施例提供的以Chunk为单位进行数据迁移时数据块的分布状态示意图;
图11为本发明实施例提供的以Chunk为单位进行数据迁移时数据块的分布状态示意图;
图12为本发明实施例提供的以Chunk为单位进行数据迁移时数据块的分布状态示意图;
图13为本发明实施例提供的数据迁移前高低热度数据块的路由信息示意图;
图14为本发明实施例提供的数据迁移后更新的高低热度数据块的路由信息示意图;
图15为本发明实施例提供的一种迁移控制装置的示意图;
图16为本发明实施例提供的另一种迁移控制装置的示意图;
图17为本发明实施例提供的一种实体装置示意图;
图18为本发明实施例提供的一种迁移控制装置示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种数据迁移的方法,如图2所示,该方法应用于存储区域网络(Storage Area Network,简称SAN)系统中的迁移控制装置,所述SAN系统包括主机、迁移控制装置和至少两个控制器,所述每个控制器包括存储空间,所述迁移控制装置分别与所述主机、所述至少两个控制器连接,该方法包括:
步骤201、在采样周期内,获取所述各个控制器存储空间中数据块的被访问次数。
其中,该方法的执行主体为迁移控制装置。所述控制器存储空间是指具备存储功能的控制器中包含的物理空间。
具体的,可以参考图3所示的SAN设备架构,其中,图3所示的SAN设备包括:接口芯片301、迁移控制装置300和控制器304。迁移控制装置300具体可以包括:交换芯片302和嵌入式处理器303。主机通过接口芯片301与交换芯片302相连,接口芯片301和交换芯片302之间可以通过基于PCIe标准的接口建立连接,交换芯片302通过基于PCIe标准的接口与嵌入式处理器303之间建立连接,交换芯片302和多个控制器304之间可以通过基于PCIe非透明桥接(Non-Transparent Bridge,简称NTB)标准的接口建立连接。需要说明的是,本发明所述的控制器304中包含有存储空间,既具备存储功能,又具备控制功能。交换芯片302可以选用商用多端口PCIe交换芯片,接口芯片301可以选用FC或iSCSI交换芯片,接口芯片301、交换芯片302、嵌入式处理器303的数量取决于系统对端口的需求及处理能力,本发明对此不做限制。
而在采样周期内,获取所述各个控制器存储空间中数据块的被访问次数之前,如图4所示,本发明所述的方法还可以包括:
步骤101、接收所述各个控制器发送的各自的第一路由信息,所述第一路由信息包括发出第一路由信息的控制器的:控制器标识以及所述控制器存储空间中的数据块标识。
步骤102、接收所述各个主机发送的各自的第二路由信息,所述第二路由信息包括发出第二路由信息的主机的:主机标识以及所述主机中的逻辑块标识。
步骤103、根据所述第一路由信息和所述第二路由信息,建立第三路由信息,所述第三路由信息包括主机标识、主机中的逻辑块标识、所述控制器标识以及所述控制器存储空间中的数据块标识之间的对应关系。
需要说明的是,主机中的逻辑块是迁移控制装置虚拟出来的数据存储区域,仅对主机可见,属于逻辑上的概念,并非真实的物理存储区域,控制器存储空间中的数据块才是真实存在的存储区域。
针对步骤101-步骤103,迁移控制装置在接收到控制器侧和主机侧各自发送的第一路路由信息和第二路由信息后,可以根据这两个路由信息建立起控制器标识、控制器存储空间中的数据块标识与主机标识、主机逻辑块标识之间的映射关系。
示例的,结合图3和图5,对第三路由信息的建立过程进行详细说明。由于控制器304和迁移控制装置300是相互独立的,所以在系统上电后,控制器304和迁移控制装置300各自独立启动并完成初始化。具体的,参考图5,各个控制器304启动并完成设备初始化,然后获取系统配置信息。示例的,若控制器304中的存储空间是以Lun为单位进行划分的,也即数据块的单位为Lun,则系统配置信息中可以包括:控制器标识和控制器Lun标识,控制器304根据获取到的系统配置信息建立第一路由信息,以完成控制器304的路由初始化,然后,控制器尝试通过基于PCIe NTB机制的接口与迁移控制装置300建立连接,链路建立后,控制器304将自身的第一路由信息上报给迁移控制装置300。其他控制器也采用相同的方式完成设备初始化,并根据自身标识和Lun标识建立第一路由信息,最后通过建立好的链路将各自的第一路由信息上报给迁移控制装置300。迁移控制装置300也独立启动并完成初始化,然后迁移控制装置300根据建立好的链路接收各个控制器304发送的第一路由信息,并根据接收到的主机发送的第二路由信息建立第三路由信息。其中,第三路由信息中包括:主机标识、主机Lun标识、控制器标识以及控制器Lun标识,其中,主机Lun标识是主机中的逻辑块标识,并非真实的物理设备。
具体的,根据第一路由信息及第二路由信息建立的第三路由信息可以以路由表的形式呈现。示例的。路由表的具体结构可参考表1。其中,Host ID表示主机标识,Host LunID表示主机Lun标识,Ctrl ID表示控制器标识,Ctrl Lun ID表示控制器Lun标识,从表1可以看出,Host 0中的Lun 0-3分别与Ctrl 0中的Lun 0-3一一对应。
表1
Host ID | Host Lun ID | Ctrl ID | Ctrl Lun ID |
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
0 | 2 | 0 | 2 |
0 | 3 | 0 | 3 |
又示例的,若控制器中的存储空间以Lun为单位进行划分后,又将每个Lun以Chunk(Chunk是数据存储的最小单位)为单位进行了细粒度的划分,那么控制器存储空间中数据块的最小单位就是Chunk,此时系统配置信息中可以包括:控制器ID、控制器Lun ID和控制器Chunk ID信息。此时,迁移控制装置收到该第一路由信息及第二路由信息后建立的第三路由信息可以参考表2所示的结构。通过表1和表2可以看出,迁移控制装置建立的第三路由信息实现了主机侧不同的逻辑块与控制器侧不同的数据块之间的一一映射。建立好映射关系后,只要改变主机侧和控制器侧的映射关系,就可以实现主机侧和控制器侧的无归属,也即主机和控制器不再是一对一的关系,一个主机可以对应任意一个控制器,也可以对应多个控制器,多个主机也可以对应任意一个控制器。
表2
示例的,为了便于理解主机侧和控制器侧的映射关系,图7示出了表2所示的路由表中主机侧和控制器侧的四个Chunk的映射关系,从图7可以看出,主机侧Host 0中归属于同一Lun 0的4个不同的Chunk分别与控制器侧Ctrl 0和Ctrl 1中的不同Chunk相对应,具体的,可以参考图7中所示的阴影区域,主机侧和控制器侧阴影形状相同的区域,即为逻辑上和物理上相互对应的区域。从图7还可以看出,迁移控制装置将主机侧归属于同一个Lun的Chunk,分散到了控制器侧的不同控制器存储空间中的不同Chunk里。这样,迁移控制装置只需要改变第三路由信息中主机侧和控制器侧的映射关系,就可以实现主机侧与控制器侧的任意一个数据块的一一映射。若在系统运行过程中,第三路由信息发生变化,则控制器可以随时更改并同步迁移控制装置上第三路由信息。
在第三路由信息建立后,如图6所示,步骤201中所述的获取采样周期内所述各个控制器存储空间中数据块的被访问次数具体包括:
步骤2010、接收各个主机在采样周期内发送的访问请求。
其中,所述访问请求中包括所述各个主机标识和所述主机中的逻辑块标识。
步骤2011、根据所述访问请求,确定所述第三路由信息中是否包含所述各个所述主机标识和所述主机中的逻辑块标识。
步骤2012、根据所述访问请求中包含的所述各个主机标识和所述主机中的逻辑块标识以及所述第三路由信息,记录所述各个主机在采样周期内对所述不同控制器存储空间中数据块的被访问次数。
具体的,针对步骤2010-步骤2012,当主机侧发起访问请求时,迁移控制装置根据该访问请求获取其中包含的所述各个主机标识和所述主机中的逻辑块标识,然后根据该主机标识和主机中的逻辑块标识信息,查找第三路由信息,若第三路由信息中包含该主机标识和主机逻辑块标识,则说明控制器存储空间中的数据块被访问,迁移控制装置会将该数据块的被访问次数进行累加,也即将记录的对该数据块的被访问次数加1,直至采样周期结束。此时,不同控制器存储空间中数据块的被访问次数就会被迁移控制装置记录下来,迁移控制装置根据记录的不同控制器存储空间中数据块的被访问次数,即可计算出控制器存储空间中数据块的热度。
步骤202、根据所述各个控制器存储空间中数据块的被访问次数计算当前采样周期内所述各个控制器的热度。
其中,控制器的热度等于:在采样周期内,对所述控制器存储空间中数据块的被访问次数进行加权运算得到的加权运算值。具体的,迁移控制装置首先根据采样周期内各个控制器存储空间中每个数据块的被访问次数计算出每个数据块的热度,然后对隶属于该控制器存储空间中的数据块的热度求和,即可得到该控制器的热度。
步骤203、确定所述各个控制器的热度是否大于第一阈值。
其中,所述第一阈值为根据控制器的热度预先设定的值。具体的,迁移控制装置通过将各个控制器的热度与第一阈值进行比较,即可得到二者的大小关系。
可选的,第一阈值可以为所有控制器的热度的平均值也可以为优选的,本发明实施例以作为第一阈值。其中,表示所有控制器的热度的平均值,α表示热度偏离百分比。
可选的,步骤202中所述的根据所述各个控制器存储空间中数据块的被访问次数计算当前采样周期内所述各个控制器的热度具体包括:
根据所述各个控制器存储空间中数据块的被访问次数和第一公式,计算所述当前采样周期内各个控制器的热度,所述第一公式为:
其中,UM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMj表示当前采样周期内第M个控制器存储空间中第j个数据块的被访问次数。
示例的,若某个控制其中包含5个Lun,且在采样周期内,这5个Lun的被访问次数分别为100次、150次、80次、300次和200次,则该控制器的热度即为隶属于该控制器的5个Lun的被访问次数之和,即830次。
示例的,假设SAN系统中包括3个控制器,且这3个控制器在采样周期内的被访问次数分别为500次、300次和400次,则采样周期内,所有控制器的被访问次数的平均值为400次,此时可以将第一阈值设置为400次。优选的,通常将第一阈值设置的偏大一些,如设置为平均值的(1+α)倍。其中,α可以取10%、20%等,当α取10%时,第一阈值为400*(1+10%)=440次。当然,第一阈值也可以采用其他的设置方法,本发明对此不做限定。
可选的,步骤202中所述的根据所述各个控制器存储空间中数据块的被访问次数计算所述当前采样周期内各个控制器的热度还可以为:
根据所述各个控制器存储空间中数据块的被访问次数和第二公式,计算所述当前采样周期内各个控制器的热度,所述第二公式为:
其中,OM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMj表示当前采样周期内第M个控制器存储空间中第j个数据块的被访问次数,P0表示单位数据块的大小。
具体的,若控制器中的存储空间是以Lun为单位进行划分的,则每个数据块的大小为一个Lun所占据的存储空间的大小,若控制器中的存储空间是以Chunk为单位进行划分的,则每个数据块的大小为一个Chunk所占据的存储空间的大小。
可选的,步骤202中所述的根据所述各个控制器存储空间中数据块的被访问次数计算所述当前采样周期内各个控制器的热度还可以为:
根据所述各个控制器存储空间中数据块的被访问次数和第三公式,计算所述当前采样周期内各个控制器的热度,所述第三公式包括:
其中,NM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMij表示第i个采样周期内第M个控制器存储空间中第j个数据块的被访问次数,k表示当前采样周期,n表示预先设定的连续采样次数,T表示预先设定的数据块热度的半衰期,所述热度的半衰期表示所述数据块的被访问次数减半时所经历的时间。
具体的,根据第三公式计算出的数据块的热度不仅跟当前采样周期内数据块的被访问次数有关,还与数据块在历史采样周期内,也即当前采样周期前的采样周期内的被访问次数有关。具体的,若当前采样周期k大于或等于预先设定的连续采样次数n,则当前采样周期前的第(k-n)个采样周期开始计算,若当前采样周期k小于预先设定的连续采样次数n,则从第1个采样周期开始计算。所以根据第三公式计算出的数据块的热度进行数据块迁移比仅通过当前采样周期内的数据块的被访问次数计算出的数据块的热度进行数据块迁移相比更加准确。
示例的,第三公式中各个变量的取值可以为:k=100,T=36小时,UMij=1000次,n=30。其中,n和T由用户根据经验指定。通过第三公式,可以计算出每个数据块的热度,对每个控制器中包含的多个数据块的热度求和后,即可得到该控制器的热度。
步骤204、发送第一迁移指令给第一控制器,发送第二迁移指令给第二控制器。
其中,第一迁移指令中携带的迁出数据块标识是第一数据块的标识,第一数据块存储于第一控制器存储空间中,第一迁移指令携带的迁入控制器标识是第二控制器的标识,第一控制器的热度大于第一阈值,第二控制器的热度不大于第一阈值;第二迁移指令中携带的迁出数据块标识是第二数据块的标识,第二数据块存储于所述第二控制器存储空间中,第二迁移指令携带的迁入控制器标识是所述第一控制器的标识。
示例的,以SAN系统中包括控制器1、控制器2和控制3,采样周期内,这三个控制器的被访问次数分别为500次、300次和400次,第一阈值为且α为10%为例,对控制器存储空间中数据块的迁移过程进行说明。
根据上述设定条件,第一阈值为440次,也即控制器1的被访问次数大于第一阈值440次,为第一控制器;控制器2和控制器3的被访问次数小于第一阈值,为第二控制器。此时,迁移控制装置会发送第一迁移指令给控制器1,发送第二迁移指令给第二控制器,例如,可以在控制器2和控制器3中选择被访问次数较小的控制器3,然后,控制器1和控制器3会根据收到的迁移指令对存储空间中的数据块进行迁移。具体的,控制器1收到的第一迁移指令中携带有迁出数据块标识,也即第一数据块标识,第一数据块存储在控制器1中,且第一迁移指令中还携带有迁入控制器标识,也即第二控制器标识(控制器3的标识)。控制器1和控制器3根据各自收到的迁移指令将要迁出的数据块迁移到相应的控制器。数据块迁移完成后,控制器1中被访问次数大的数据块迁移到了控制器3中,而控制器3中被访问次数小的数据块迁移到了控制器1。这样,原有被访问次数大的控制器1的被访问次数降低,而原有被访问次数小的控制器3的被访问次数升高,实现了控制器间被访问次数的均衡,达到了负载均衡的目的。
需要说明的是,在进行数据块的迁移时,迁出的数据块可以存储在迁入控制器存储空间中待迁出的数据块的存储位置,也可以存储在迁入控制器存储空间中的空闲位置。具体的,可以将被访问次数大于第一阈值的第一控制器中被访问次数最大的控制器与被访问次数小于第一阈值的第二控制器中的被访问次数最小的控制器之间进行数据块迁移。具体到控制器存储空间中的数据块,优选的,也可以将满足条件的控制器存储空间中被访问次数最大的数据块和被访问次数最小的数据块进行迁移,然后依次将被访问次数次大的数据块和被访问次数次小的数据块进行迁移,依次类推,直至所有控制器的热度均小于第一阈值。
具体的,参考图8和图9所示的数据迁移前后各个控制器存储空间中数据块的分布状态示意图,假设控制器的热度是根据第一公式计算的,且控制器中的存储空间仅划分了一级,也即数据块的最小单位为Lun,对控制器中Lun的迁移过程进行说明。其中,主机侧的主机0至主机3与迁移控制装置通过各自的FC接口芯片实现互连,控制器侧的控制器0至控制器3通过基于PCIe NTB机制的接口与迁移控制装置实现互连。
假设图8中迁移控制装置记录的采样周期内控制器0存储空间中Lun 0和Lun 1的被访问次数分别为300次和200次,控制器1存储空间中的Lun 0和Lun 1的被访问次数分别为200次和100次,控制器2存储空间中的Lun 0和Lun 1的被访问次数均为400次,控制器3中的Lun 0和Lun 1的被访问次数分别为100次和300次,那么控制器0至控制器3的总的被访问次数分别为500次、300次、800次和400次,所有控制器的被访问次数的平均值为500次。
若将控制器的第一阈值设置为则当α取20%时,第一阈值为500*(1+20%)=600,迁移控制装置通过比较可知,控制器2的被访问次数大于第一阈值600,其他三个控制器的被访问次数均小于第一阈值600,且控制器1的被访问次数最小。此时,迁移控制装置会对控制器2和控制器1存储空间中的数据块(即Lun)进行迁移。具体的,迁移控制装置发送第一迁移指令给控制器2,发送第二迁移指令给控制器1,其中,第一迁移指令中包含将控制器2存储空间中的Lun1的标识以及控制器1的标识,第二迁移指令中包含控制器1存储空间中的Lun1的标识以及控制器2的标识。控制器1和控制器2根据迁移控制装置发送的迁移指令,将控制器1存储空间中的Lun1迁移至控制器2,将控制器2存储空间中的Lun1迁移至控制器1。数据块迁移完成后,控制器1的被访问次数为600次,控制器2的被访问次数为500次,总体来看,迁移完成后所有控制器的被访问次数均不大于第一阈值600次,此时,迁移结束。若迁移后,各个控制器的被访问次数仍然大于第一阈值,则继续进行数据块的迁移,直至所有控制器的被访问次数均满足小于第一阈值的条件为止。
本发明实施例提供了一种数据迁移的方法,该方法可以根据在采样周期内获取到的各个控制器存储空间中数据块的被访问次数,计算出当前采样周期内各个控制器的热度,并通过将各个控制器的热度与第一阈值进行比较,判断是否进行数据块的迁移,以均衡各个控制器的负载。由于将控制器存储空间中数据块的被访问次数经过加权运算得到的加权运算值,可以准确的反映出数据块的热度,所以即使控制器的CPU占用率高,其数据块的热度不一定高不一定高,也即控制器的热度不一定高。因而通过控制器的热度的大小对控制器存储空间中的数据块进行迁移,可以有效避免出现数据块的错误迁移;对于突发进程来说,由于控制器的CPU占用率不稳定,很容易出现数据块的反复迁移的情况,而本发明所述的方法在进行数据块迁移时,依据的是采样周期内各个控制器的热度和控制器存储空间中数据块的热度,所以可以在一定程度上缓解突发进程对采样周期内控制器的总热度影响,进而不会导致数据块之间进行频繁的迁移。所以,综上所述,本发明所述的方法,可以缓解现有技术中通过CPU占用率进行负载均衡时导致的数据块错误迁移和反复迁移的问题。
可选的,如图6所示,在执行完步骤202:根据各个控制器存储空间中数据块的被访问次数计算当前采样周期内各个控制器的热度之后,所述方法还可以包括:
步骤205、确定所述各个控制器的热度是否均大于第二阈值。
步骤206、若所述控制器的热度均大于所述第二阈值,则不对所述控制器存储空间中的数据块进行迁移。
若所述控制器的被访问次数不全大于所述第二阈值,则执行步骤203:确定所述各个控制器的热度是否大于第一阈值。
参考图8和图9,在执行步骤201-步骤204中所述的数据迁移的方法时发现,若仅通过控制器的热度与第一阈值的关系来判断是否对控制器存储空间中的数据块进行迁移还存在以下问题。
例如,若控制器0至控制器3的热度分别为750次、850次、800次和840次,则所有控制器的被访问次数的平均值为810次,若以平均值810次为第一阈值,则数据块将在被访问次数为850次的控制器2和被访问次数为750次的控制器0之间进行迁移,由于此时每个控制器的被访问次数都相对较大,此时若还对其进行数据块迁移,不仅起不到负载均衡的目的,还会使各个控制器的负载越来越重。若此时再设置一个第二阈值,比如700次,则迁移控制装置通过比较后可知当前各个控制器的被访问次数均较大,也即各个控制器的负载均比较重,不适合进行数据块的迁移。在这种情况下,迁移控制装置将不对控制器存储空间中的数据块进行迁移,这样可以避免在控制器自身负载比较重的情况下仍对数据块进行迁移,而给控制器带来额外负担的问题。
另外,如果仅将控制器中的存储空间划分为一级,也即数据块的最小单位为Lun,还存在下述的问题:在进行数据块的迁移后,被访问次数大于第一阈值的控制器的被访问次数减小太多,而与之进行迁移的数据块归属的控制器的被访问次数增大太多的情况。出现这种现象的原因是,Lun占据的存储空间较大,一般为数十GB至数十TB。为解决这一问题,优选的方案是在将控制器中的存储空间以Lun为单位进行划分后,再将Lun划分为更小的单位,如Chunk,Chunk所占据的存储空间可以很小,比如512Byte。
若控制器中的存储空间被划分为了两级,即第一级的存储单位为Lun,第二级的存储单位Chunk,那么在进行数据块迁移时,就可以以Chunk为单位进行迁移,而不是以Lun为单位进行迁移。以Chunk为单位进行数据块迁移与以Lun为单位进行数据块迁移相比,由于Chunk的单位更小,其存储的数据也比较少,所以迁移一个Chunk所需的时间要远小于迁移一个Lun所需的时间,而且,以Chunk为单位进行迁移,数据块迁移的精度也更高,可以有效避免以Lun为单位进行数据块迁移后,被访问次数大于第一阈值的控制器的被访问次数突然减小,而被访问次数小于第一阈值的控制器的被访问次数突然大于第一阈值这种的情况的发生,实现更加精准的细粒度负载均衡。
可选的,在步骤204:发送第一迁移指令给所述第一控制器,发送第二迁移指令给所述第二控制器之后,所述方法还包括:
步骤207、将访问所述第一控制器存储空间中第一数据块的访问请求和访问所述第二控制器存储空间中第二数据块的访问请求放入重发队列中。
步骤208、接收所述第一控制器和所述第二控制器发送的迁移应答指令。
步骤209、根据所述迁移应答指令,更新所述第三路由信息,得到第四路由信息。
步骤210、根据所述第四路由信息对访问所述第一数据块的访问请求和访问所述第二数据块的访问请求进行路由。
具体的,参考图8和图9,假设控制器2接收到迁移控制装置发送的第一迁移指令,控制器1接收到迁移控制装置发送的第二迁移指令,且控制器2中待迁出的数据块为Lun 0,控制器1中待迁出的数据块为Lun 1,则迁移控制装置会将对控制器2中的Lun 0和控制器1中的Lun 1的访问请求放入重发队列中。示例的,若控制器中没有多余的存储空间存储迁出的数据块,则控制器会将控制器2中的数据块Lun0和控制器1中待迁出的数据块Lun1进行互换。数据块迁移后的分布状态如图9所示,归属于控制器2中的被访问次数大的数据块Lun 0和归属于控制器1的低热度数据块Lun 1之间发生了迁移。数据块迁移完成后,控制器1和控制器2发送迁移应答信号给迁移控制装置,其中,迁移应答信号中携带有迁入数据块和迁出数据块的地址信息,迁移控制装置收到该迁移应答信号后,根据迁移应答信号中携带的信息更新第三路由信息,得到数据块迁移后的第四路由信息(即将进行迁移的两个数据块的地址信息互换),重发队列中及后续主机发起的访问请求将通过第四路由信息进行路由。数据迁移完成后,迁移控制装置会进入下一个采样周期,重复执行步骤201-步骤204所述的方法进行数据块迁移。
下面,结合图10-14,假设控制器中的存储空间被划分为两级,且不存在多余的空闲存储空间为例,对数据块的迁移过程进行详细说明,假设需要进行迁移的数据块分别为低热度数据块1001和高热度数据块1003,其中,低热度数据块1001和高热度数据块1003为归属于不同控制器的不同Lun中的不同Chunk,图10-12为以Chunk为单位进行负载均衡时不同阶段的数据块的分布状态示意图,图13为数据块迁移前低热度数据块1001和高热度数据块1003的路由信息,图14数据块迁移后低热度数据块1001和高热度数据块1003的路由信息,数据块迁移的具体步骤为:
步骤1、迁移控制装置暂停对控制器1中的低热度数据块1001的路由,将主机对低热度数据块1001的访问请求放入重发队列中。
步骤2、控制器1生成低热度数据块1001的副本1002,如图10所示。
步骤3、迁移控制装置暂停对控制器2中的高热度数据块1003的路由,将主机对所述第一数据块的IO请求放入重发队列中。
步骤4、控制器2通过控制器1与控制器2之间建立的PCIe链路将高热度数据块1003发送给控制器1,使控制器2中的高热度数据块1003在控制器1中的低热度数据块1001位置上生成高热度数据块副本1004,如图11所示。
步骤5、迁移控制装置将原控制器2中的高热度数据块1003的路由信息更改为原控制器1中的低热度数据块1001的路由地址。
步骤6、迁移控制装置根据更新后的路由信息重新转发重发队列及主机中对原控制器2中的高热度数据块1003的IO请求。
此时,由于原控制器2中的高热度数据块1003的路由信息已更新,所以重发队列中和后续的IO请求都将被路由至高热度数据块副本1004。
步骤7、控制器1通过控制器1与控制器2之间建立的PCIe链路将低热度数据块副本1002发送给控制器2,使控制器1中的低热度数据块副本1002在控制器2中的高热度数据块1003位置上生成低热度数据块1002的副本1005,并删除低热度数据块的副本1002,如图12所示。
步骤8、迁移控制装置根据更新后的路由信息重新转发重发队列及主机中对原控制器1中的低热度数据块1001的IO请求。
此时,由于原控制器1中的低热度数据块1001的路由信息已更新,所以重发队列中和后续的IO请求都将被路由至低热度数据块副本1005中。
具体的,路由信息的更新可参考图13和图14,其中,图13中第一条路由信息701为控制器1中的低热度数据块1001的路由信息,图13中第二条路由信息702为控制器2中的高热度数据块1003的路由信息,图14中第一条路由信息801为原低热度数据块1001和原高热度数据块1003进行迁移后更新的低热度数据块1001的路由信息,图14中第二条路由信息802为原低热度数据块1001和原高热度数据块1003进行迁移后更新的高热度数据块1003的路由信息。路由信息更新后,对原高热度数据块和原低热度数据块的IO请求将被路由至进行数据块迁移后的控制器中。
需要说明的是,通过第二公式和通过第三公式计算出的控制器的热度对数据块进行迁移,与通过第一公式计算出的控制器的热度对数据块进行迁移相比,除计算出的热度不同外,其余步骤均相同,在此不再赘述。
本发明实施例提供了一种数据迁移的方法,该方法可以根据在采样周期内获取到的各个控制器存储空间中数据块的被访问次数,计算出当前采样周期内各个控制器的热度,并通过将各个控制器的热度与第一阈值进行比较,判断是否进行数据块的迁移,以均衡各个控制器的负载。由于将控制器存储空间中数据块的被访问次数经过加权运算得到的加权运算值,可以准确的反映出数据块的热度,所以即使控制器的CPU占用率高,其数据块的热度不一定高不一定高,也即控制器的热度不一定高。因而通过控制器的热度的大小对控制器存储空间中的数据块进行迁移,可以有效避免出现数据块的错误迁移;对于突发进程来说,由于控制器的CPU占用率不稳定,很容易出现数据块的反复迁移的情况,而本发明所述的方法在进行数据块迁移时,依据的是采样周期内各个控制器的热度和控制器存储空间中数据块的热度,所以可以在一定程度上缓解突发进程对采样周期内控制器的总热度影响,进而不会导致数据块之间进行频繁的迁移。所以,综上所述,本发明所述的方法,可以缓解现有技术中通过CPU占用率进行负载均衡时导致的数据块错误迁移和反复迁移的问题。进一步的,通过将控制器的运行参数与第一阈值和第二阈值同时进行比较,还可以判断出控制器自身的负载情况。当控制器的热度均大于第二阈值时,说明各个控制器自身的负载都比较重,此时,分发装置将不会对控制器中的数据块进行迁移,因此,可以有效避免对本身负载就较重的控制器进行数据块迁移而带来的额外负担。而通过将控制器划分为更小的存储区域,还能够实现细粒度的负载均衡,使得控制器进行数据迁移时能够更加精确,能有效避免以较大的数据块为单位进行迁移时,迁移后各个控制器的负载仍然不均衡的情况。
本发明实施例提供了一种迁移控制装置90,如图15所示,所述装置应用于SAN系统,所述SAN系统包括主机、迁移控制装置和至少两个控制器,所述迁移控制装置分别与所述主机、所述至少两个控制器连接,所述装置包括:获取模块901、计算模块902、确定模块903、发送模块904。
所述获取模块901,用于在采样周期内,获取所述各个控制器存储空间中数据块的被访问次数;
所述计算模块902,用于根据所述各个控制器存储空间中数据块的被访问次数计算当前采样周期内所述各个控制器的热度,所述控制器的热度等于:在采样周期内,对所述控制器存储空间中数据块的被访问次数进行加权运算得到的加权运算值;
所述确定模块903,用于确定所述各个控制器的热度是否大于第一阈值;
所述发送模块904,用于发送第一迁移指令给第一控制器,其中:第一迁移指令中携带的迁出数据块标识是第一数据块的标识,第一数据块存储于第一控制器存储空间中,第一迁移指令携带的迁入控制器标识是第二控制器的标识,第一控制器的热度大于第一阈值,第二控制器的热度不大于第一阈值;
所述发送模块904,用于发送第二迁移指令给第二控制器,其中:第二迁移指令中携带的迁出数据块标识是第二数据块的标识,第二数据块存储于所述第二控制器存储空间中,第二迁移指令携带的迁入控制器标识是所述第一控制器的标识;
其中,所述第一数据块的热度大于所述第二数据块的热度。
可选的,如图16所示,所述计算模块902具体用于:
所述计算模块902,具体用于根据所述各个控制器存储空间中数据块的被访问次数和第一公式,计算所述当前采样周期内各个控制器的热度,所述第一公式为:
其中,UM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMj表示当前采样周期内第M个控制器存储空间中第j个数据块的被访问次数。
所述计算模块902,还具体用于根据所述各个控制器存储空间中数据块的被访问次数和第二公式,计算所述当前采样周期内各个控制器的热度,所述第二公式为:
其中,OM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMj表示当前采样周期内第M个控制器存储空间中第j个数据块的被访问次数,P0表示单位数据块的大小。
所述计算模块902,具体还用于根据所述各个控制器存储空间中数据块的被访问次数和第三公式,计算所述当前采样周期内各个控制器的热度,所述第三公式包括:
其中,NM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMij表示第i个采样周期内第M个控制器存储空间中第j个数据块的被访问次数,k表示当前采样周期,n表示预先设定的连续采样次数,T表示预先设定的数据块热度的半衰期,所述热度的半衰期表示所述数据块的被访问次数减半时所经历的时间。
可选的,如图16所示,所述装置还包括:接收模块905、建立模块906。
所述接收模块905,用于接收所述各个控制器发送的各自的第一路由信息,所述第一路由信息包括发出第一路由信息的控制器的:控制器标识以及所述控制器存储空间中的数据块标识。
所述接收模块905,还用于接收所述各个主机发送的各自的第二路由信息,所述第二路由信息包括发出第二路由信息的主机的:主机标识以及所述主机中的逻辑块标识。
所述建立模块906,用于根据所述第一路由信息和所述第二路由信息,建立第三路由信息,所述第三路由信息包括主机标识、主机中的逻辑块标识、所述控制器标识以及所述控制器存储空间中的数据块标识之间的对应关系。
可选的,如图16所示,所述装置还包括:记录模块907。
所述接收模块905,还用于接收各个主机在采样周期内发送的访问请求,所述访问请求中包括所述各个主机标识和所述主机中的逻辑块标识。
所述确定模块903,还用于根据所述访问请求,确定所述第三路由信息中是否包含所述各个所述主机标识和所述主机中的逻辑块标识。
所述记录模块907,用于根据所述访问请求中包含的所述各个主机标识和所述主机中的逻辑块标识以及所述第三路由信息,记录所述采样周期内所述各个控制器存储空间中数据块的被访问次数。
可选的,如图16所示,所述装置还包括:处理模块908、更新模块909、路由模块910。
所述处理模块908,用于将访问所述第一控制器存储空间中第一数据块的访问请求和访问所述第二控制器存储空间中第二数据块的访问请求放入重发队列中。
所述接收模块905,还用于接收所述第一控制器中和所述第二控制器发送的迁移应答指令。
所述更新模块909,用于根据所述迁移应答指令,更新所述第三路由信息,得到第四路由信息。
所述路由模块910,用于根据所述第四路由信息对访问所述第一数据块的访问请求和访问所述第二数据块的访问请求进行路由。
可选的,如图16所示,所述确定模块903,还用于确定所述各个控制器的热度是否均大于第二阈值。
所述确定模块903,还用于若所述控制器的热度不全大于所述第二阈值时,确定所述各个控制器的热度是否大于第一阈值。
本发明实施例提供了一种数据迁移的装置。该装置可以根据在采样周期内获取到的各个控制器存储空间中数据块的被访问次数,计算出当前采样周期内各个控制器的热度,并通过将各个控制器的热度与第一阈值进行比较,判断是否进行数据块的迁移,以均衡各个控制器的负载。由于将控制器存储空间中数据块的被访问次数经过加权运算得到的加权运算值,可以准确的反映出数据块的热度,所以即使控制器的CPU占用率高,其数据块的热度不一定高不一定高,也即控制器的热度不一定高。因而通过控制器的热度的大小对控制器存储空间中的数据块进行迁移,可以有效避免出现数据块的错误迁移;对于突发进程来说,由于控制器的CPU占用率不稳定,很容易出现数据块的反复迁移的情况,而本发明所述的装置在进行数据块迁移时,依据的是采样周期内各个控制器的热度和控制器存储空间中数据块的热度,所以可以在一定程度上缓解突发进程对采样周期内控制器的总热度影响,进而不会导致数据块之间进行频繁的迁移。所以,综上所述,本发明所述的装置,可以缓解现有技术中通过CPU占用率进行负载均衡时导致的数据块错误迁移和反复迁移的问题。
本发明实施例提供了一种迁移控制装置120,如图17所示,所述装置应用于SAN系统,该装置包括:发送器1201,接收器1202、存储器1203、处理器1204、总线1205。
其中,所述发送器1201、接收器1202、存储器1203和所述处理器1204之间是通过总线1205耦合在一起的,其中所述总线1205除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线1205。存储器1203可以包括只读存储器和随机存取存储器,并向处理器1204提供指令和数据。存储器1203的一部分还可以包括非易失性随机存取存储器(NVRAM)。
存储器1203存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集。存储器1203用于存储本发明方案的应用程序代码,执行本发明方案的应用程序代码保存在存储器中,并由处理器1204来控制执行。
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
所述处理器1204还可以称为CPU(Central Processing Unit,中央处理单元)。所述处理器1204通过调用存储器1203存储的操作指令(该操作指令可存储在操作系统中),执行如下操作:
在采样周期内,获取所述各个控制器存储空间中数据块的被访问次数;根据所述各个控制器存储空间中数据块的被访问次数计算当前采样周期内所述各个控制器的热度,所述控制器的热度等于:在采样周期内,对所述控制器存储空间中数据块的被访问次数进行加权运算得到的加权运算值;确定所述各个控制器的热度是否大于第一阈值。发送第一迁移指令给第一控制器,其中:第一迁移指令中携带的迁出数据块标识是第一数据块的标识,第一数据块存储于第一控制器存储空间中,第一迁移指令携带的迁入控制器标识是第二控制器的标识,第一控制器的热度大于第一阈值,第二控制器的热度不大于第一阈值。
发送第二迁移指令给第二控制器,其中:第二迁移指令中携带的迁出数据块标识是第二数据块的标识,第二数据块存储于所述第二控制器存储空间中,第二迁移指令携带的迁入控制器标识是所述第一控制器的标识。
其中,所述第一数据块的热度大于所述第二数据块的热度。
可选的,所述处理器1204还用于根据所述各个控制器存储空间中数据块的被访问次数和第一公式,计算所述当前采样周期内各个控制器的热度,所述第一公式为:
其中,UM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMj表示当前采样周期内第M个控制器存储空间中第j个数据块的被访问次数。
可选的,所述处理器1204,还用于根据所述各个控制器存储空间中数据块的被访问次数和第二公式,计算所述当前采样周期内各个控制器的热度,所述第二公式为:
其中,OM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMj表示当前采样周期内第M个控制器存储空间中第j个数据块的被访问次数,P0表示单位数据块的大小。
所述处理器1204,还用于根据所述各个控制器存储空间中数据块的被访问次数和第三公式,计算所述当前采样周期内各个控制器的热度,所述第三公式包括:
其中,NM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMij表示第i个采样周期内第M个控制器存储空间中第j个数据块的被访问次数,k表示当前采样周期,n表示预先设定的连续采样次数,T表示预先设定的数据块热度的半衰期,所述热度的半衰期表示所述数据块的被访问次数减半时所经历的时间。
可选的,所述接收器1202用于接收所述各个控制器发送的各自的第一路由信息,所述第一路由信息包括发出第一路由信息的控制器的:控制器标识以及所述控制器存储空间中的数据块标识。
所述接收器1202还用于接收所述各个主机发送的各自的第二路由信息,所述第二路由信息包括发出第二路由信息的主机的:主机标识以及所述主机中的逻辑块标识。
所述处理器1204还用于根据所述第一路由信息和所述第二路由信息,建立第三路由信息,所述第三路由信息包括主机标识、主机中的逻辑块标识、所述控制器标识以及所述控制器存储空间中的数据块标识之间的对应关系。
可选的,如图17所示,所述接收器1202,还用于接收各个主机在采样周期内发送的访问请求,所述访问请求中包括所述各个主机标识和所述主机中的逻辑块标识。
所述处理器1204,还用于根据所述访问请求,确定所述第三路由信息中是否包含所述各个所述主机标识和所述主机中的逻辑块标识。
所述处理器1204,还用于根据所述访问请求中包含的所述各个主机标识和所述主机中的逻辑块标识以及所述第三路由信息,记录所述采样周期内所述各个控制器存储空间中数据块的被访问次数。
可选的,如图17所示,所述处理器1204,还用于将访问所述第一控制器存储空间中第一数据块的访问请求和访问所述第二控制器存储空间中第二数据块的访问请求放入重发队列中。
所述接收器1202,还用于接收所述第一控制器和所述第二控制器发送的迁移应答指令。
所述处理器1204,还用于根据所述迁移应答指令,更新所述第三路由信息,得到第四路由信息。
所述处理器1204,还用于根据所述第四路由信息对访问所述第一数据块的访问请求和访问所述第二数据块的访问请求进行路由。
可选的,如图17所示,所述处理器1204,还用于确定所述各个控制器的热度是否均大于第二阈值。
所述处理器1204,还用于确定所述各个控制器的热度是否大于第一阈值具体包括:若所述控制器的热度不全大于所述第二阈值,则确定所述各个控制器的热度是否大于第一阈值。
本发明实施例提供还了一种存储区域网络SAN系统130,如图18所示,该系统包括:主机、迁移控制装置和至少两个控制器;所述迁移控制装置为上述任一项所述的迁移控制装置;所述控制器用于接收所述迁移控制装置发送的迁移指令,并根据所述迁移指令对数据块进行迁移。
可选的,所述迁移控制装置包括接口芯片、交换芯片和处理器;所述接口芯片分别与所述主机、所述交换芯片连接,所述交换芯片分别与所述处理器、所述至少两个控制器连接。
其中,所述处理器用于在采样周期内,获取所述各个控制器存储空间中数据块的被访问次数;根据所述各个控制器存储空间中数据块的被访问次数计算当前采样周期内所述各个控制器的热度;确定所述各个控制器的热度是否大于第一阈值;发送第一迁移指令给第一控制器;发送第二迁移指令给第二控制器。
本发明实施例提供的SAN系统,该系统可以根据在采样周期内获取到的各个控制器存储空间中数据块的被访问次数,计算出当前采样周期内各个控制器的热度,并通过将各个控制器的热度与第一阈值进行比较,判断是否进行数据块的迁移,以均衡各个控制器的负载。由于将控制器存储空间中数据块的被访问次数经过加权运算得到的加权运算值,可以准确的反映出数据块的热度,所以即使控制器的CPU占用率高,其数据块的热度不一定高不一定高,也即控制器的热度不一定高。因而通过控制器的热度的大小对控制器存储空间中的数据块进行迁移,可以有效避免出现数据块的错误迁移;对于突发进程来说,由于控制器的CPU占用率不稳定,很容易出现数据块的反复迁移的情况,而本发明所述的系统在进行数据块迁移时,依据的是采样周期内各个控制器的热度和控制器存储空间中数据块的热度,所以可以在一定程度上缓解突发进程对采样周期内控制器的总热度影响,进而不会导致数据块之间进行频繁的迁移。所以,综上所述,本发明所述的系统,可以缓解现有技术中通过CPU占用率进行负载均衡时导致的数据块错误迁移和反复迁移的问题。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (19)
1.一种数据迁移的方法,其特征在于,所述方法应用于存储区域网络SAN系统中的迁移控制装置,所述存储区域网络SAN系统包括迁移控制装置、至少两个主机和至少两个控制器,所述至少两个控制器包括存储空间,所述迁移控制装置分别与所述至少两个主机、所述至少两个控制器连接,所述方法包括:
在采样周期内,获取各个所述控制器存储空间中数据块的被访问次数;
根据各个所述控制器存储空间中数据块的被访问次数计算当前采样周期内各个所述控制器的热度,所述控制器的热度等于:在采样周期内,对所述控制器存储空间中数据块的被访问次数进行加权运算得到的加权运算值;
确定各个所述控制器的热度是否大于第一阈值;
发送第一迁移指令给第一控制器,其中:所述第一迁移指令中携带的迁出数据块标识是第一数据块的标识,所述第一数据块存储于所述第一控制器存储空间中,所述第一迁移指令携带的迁入控制器标识是第二控制器的标识,所述第一控制器的热度大于所述第一阈值,所述第二控制器的热度不大于所述第一阈值;
发送第二迁移指令给所述第二控制器,其中:所述第二迁移指令中携带的迁出数据块标识是第二数据块的标识,所述第二数据块存储于所述第二控制器存储空间中,所述第二迁移指令携带的迁入控制器标识是所述第一控制器的标识;
其中,所述第一数据块的热度大于所述第二数据块的热度。
2.根据权利要求1所述的方法,其特征在于,所述根据各个所述控制器存储空间中数据块的被访问次数计算当前采样周期内各个所述控制器的热度具体包括:
根据各个所述控制器存储空间中数据块的被访问次数和第一公式,计算所述当前采样周期内各个控制器的热度,所述第一公式为:
其中,UM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMj表示当前采样周期内第M个控制器存储空间中第j个数据块的被访问次数。
3.根据权利要求1所述的方法,其特征在于,所述根据各个所述控制器存储空间中数据块的被访问次数计算所述当前采样周期内各个控制器的热度具体包括:
根据各个所述控制器存储空间中数据块的被访问次数和第二公式,计算所述当前采样周期内各个控制器的热度,所述第二公式为:
其中,OM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMj表示当前采样周期内第M个控制器存储空间中第j个数据块的被访问次数,P0表示单位数据块的大小。
4.根据权利要求1所述的方法,其特征在于,所述根据各个所述控制器存储空间中数据块的被访问次数计算所述当前采样周期内各个控制器的热度具体包括:
根据各个所述控制器存储空间中数据块的被访问次数和第三公式,计算所述当前采样周期内各个控制器的热度,所述第三公式包括:
其中,NM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMij表示第i个采样周期内第M个控制器存储空间中第j个数据块的被访问次数,k表示当前采样周期,n表示预先设定的连续采样次数,T表示预先设定的数据块热度的半衰期,所述热度的半衰期表示所述数据块的被访问次数减半时所经历的时间。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述获取采样周期内各个所述控制器存储空间中数据块的被访问次数之前,所述方法还包括:
接收各个所述控制器发送的各自的第一路由信息,所述第一路由信息包括发出第一路由信息的控制器的:控制器标识以及所述控制器存储空间中的数据块标识;
接收各个所述主机发送的各自的第二路由信息,所述第二路由信息包括发出第二路由信息的主机的:主机标识以及所述主机中的逻辑块标识;
根据所述第一路由信息和所述第二路由信息,建立第三路由信息,所述第三路由信息包括主机标识、主机中的逻辑块标识、所述控制器标识以及所述控制器存储空间中的数据块标识之间的对应关系。
6.根据权利要求5所述的方法,其特征在于,所述获取采样周期内各个所述控制器存储空间中数据块的被访问次数具体包括:
接收各个主机在采样周期内发送的访问请求,所述访问请求中包括各个所述主机标识和所述主机中的逻辑块标识;
根据所述访问请求,确定所述第三路由信息中是否包含所述各个所述主机标识和所述主机中的逻辑块标识;
根据所述访问请求中包含的各个所述主机标识和所述主机中的逻辑块标识以及所述第三路由信息,记录所述采样周期内各个所述控制器存储空间中数据块的被访问次数。
7.根据权利要求6所述的方法,其特征在于,所述发送第一迁移指令给第一控制器,发送第二迁移指令给第二控制器之后,所述方法还包括:
将访问所述第一控制器存储空间中第一数据块的访问请求和访问所述第二控制器存储空间中第二数据块的访问请求放入重发队列中;
接收所述第一控制器和所述第二控制器发送的迁移应答指令;
根据所述迁移应答指令,更新所述第三路由信息,得到第四路由信息;
根据所述第四路由信息对访问所述第一数据块的访问请求和访问所述第二数据块的访问请求进行路由。
8.根据权利要求1所述的方法,其特征在于,在所述根据各个所述控制器存储空间中数据块的被访问次数计算各个所述控制器的热度之后,所述方法还包括:
确定各个所述控制器的热度是否均大于第二阈值;
确定各个所述控制器的热度是否大于第一阈值具体包括:若所述控制器的热度不全大于所述第二阈值,则确定各个所述控制器的热度是否大于第一阈值。
9.根据权利要求1所述的方法,其特征在于,所述第一阈值为其中,表示所有控制器的热度的平均值,α表示热度偏离百分比。
10.一种迁移控制装置,其特征在于,所述装置应用于存储区域网络SAN系统,所述存储区域网络SAN系统包括迁移控制装置、至少两个主机和至少两个控制器,所述迁移控制装置分别与所述至少两个主机、所述至少两个控制器连接,所述装置包括:获取模块、计算模块、确定模块、发送模块;
所述获取模块,用于在采样周期内,获取各个所述控制器存储空间中数据块的被访问次数;
所述计算模块,用于根据各个所述控制器存储空间中数据块的被访问次数计算当前采样周期内各个所述控制器的热度,所述控制器的热度等于:在采样周期内,对所述控制器存储空间中数据块的被访问次数进行加权运算得到的加权运算值;
所述确定模块,用于确定各个所述控制器的热度是否大于第一阈值;
所述发送模块,用于发送第一迁移指令给第一控制器,其中:所述第一迁移指令中携带的迁出数据块标识是第一数据块的标识,所述第一数据块存储于所述第一控制器存储空间中,所述第一迁移指令携带的迁入控制器标识是第二控制器的标识,所述第一控制器的热度大于所述第一阈值,所述第二控制器的热度不大于所述第一阈值;
所述发送模块,用于发送第二迁移指令给所述第二控制器,其中:所述第二迁移指令中携带的迁出数据块标识是第二数据块的标识,所述第二数据块存储于所述第二控制器存储空间中,所述第二迁移指令携带的迁入控制器标识是所述第一控制器的标识;
其中,所述第一数据块的热度大于所述第二数据块的热度。
11.根据权利要求10所述的装置,其特征在于,所述计算模块具体用于:
根据各个所述控制器存储空间中数据块的被访问次数和第一公式,计算所述当前采样周期内各个控制器的热度,所述第一公式为:
其中,UM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMj表示当前采样周期内第M个控制器存储空间中第j个数据块的被访问次数。
12.根据权利要求10所述的装置,其特征在于,所述计算模块具体用于:
根据各个所述控制器存储空间中数据块的被访问次数和第二公式,计算所述当前采样周期内各个控制器的热度,所述第二公式为:
其中,OM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMj表示当前采样周期内第M个控制器存储空间中第j个数据块的被访问次数,P0表示单位数据块的大小。
13.根据权利要求10所述的装置,其特征在于,所述计算模块具体用于:
根据各个所述控制器存储空间中数据块的被访问次数和第三公式,计算所述当前采样周期内各个控制器的热度,所述第三公式包括:
其中,NM表示当前采样周期内第M个控制器的热度,r表示第M个控制器存储空间中数据块的总个数,UMij表示第i个采样周期内第M个控制器存储空间中第j个数据块的被访问次数,k表示当前采样周期,n表示预先设定的连续采样次数,T表示预先设定的数据块热度的半衰期,所述热度的半衰期表示所述数据块的被访问次数减半时所经历的时间。
14.根据权利要求10-13中任一项所述的装置,其特征在于,所述装置还包括:接收模块、建立模块;
所述接收模块,用于接收各个所述控制器发送的各自的第一路由信息,所述第一路由信息包括发出第一路由信息的控制器的:控制器标识以及所述控制器存储空间中的数据块标识;
所述接收模块,还用于接收各个所述主机发送的各自的第二路由信息,所述第二路由信息包括发出第二路由信息的主机的:主机标识以及所述主机中的逻辑块标识;
所述建立模块,用于根据所述第一路由信息和所述第二路由信息,建立第三路由信息,所述第三路由信息包括主机标识、主机中的逻辑块标识、所述控制器标识以及所述控制器存储空间中的数据块标识之间的对应关系。
15.根据权利要求14所述的装置,其特征在于,所述获取模块具体包括:接收模块、确定模块、记录模块;
所述接收模块,用于接收各个主机在采样周期内发送的访问请求,所述访问请求中包括各个所述主机标识和所述主机中的逻辑块标识;
所述确定模块,用于根据所述访问请求,确定所述第三路由信息中是否包含各个所述主机标识和所述主机中的逻辑块标识;
所述记录模块,用于根据所述访问请求中包含的各个所述主机标识和所述主机中的逻辑块标识以及所述第三路由信息,记录所述采样周期内各个所述控制器存储空间中数据块的被访问次数。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:处理模块、更新模块、路由模块;
所述处理模块,用于将访问所述第一控制器存储空间中第一数据块的访问请求和访问所述第二控制器存储空间中第二数据块的访问请求放入重发队列中;
所述接收模块,还用于接收所述第一控制器和所述第二控制器发送的迁移应答指令;
所述更新模块,用于根据所述迁移应答指令,更新所述第三路由信息,得到第四路由信息;
所述路由模块,用于根据所述第四路由信息对访问所述第一数据块的访问请求和访问所述第二数据块的访问请求进行路由。
17.根据权利要求10所述的装置,其特征在于,所述确定模块,还用于确定各个所述控制器的热度是否均大于第二阈值;
所述确定模块,还用于若所述控制器的热度不全大于所述第二阈值时,确定各个所述控制器的热度是否大于第一阈值。
18.一种存储区域网络SAN系统,其特征在于,包括:主机、权利要求10-17中任一项所述的迁移控制装置和至少两个控制器;所述控制器用于接收所述迁移控制装置发送的迁移指令,并根据所述迁移指令对数据块进行迁移。
19.根据权利要求18所述的SAN系统,其特征在于,所述迁移控制装置包括接口芯片、交换芯片和处理器;所述接口芯片与所述主机、所述交换芯片连接,所述交换芯片分别与所述处理器、所述至少两个控制器连接;
所述处理器用于在采样周期内,获取各个所述控制器存储空间中数据块的被访问次数;根据各个所述控制器存储空间中数据块的被访问次数计算当前采样周期内各个所述控制器的热度;确定各个所述控制器的热度是否大于第一阈值;发送第一迁移指令给第一控制器;发送第二迁移指令给第二控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410842902.XA CN105808443B (zh) | 2014-12-29 | 2014-12-29 | 一种数据迁移的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410842902.XA CN105808443B (zh) | 2014-12-29 | 2014-12-29 | 一种数据迁移的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105808443A CN105808443A (zh) | 2016-07-27 |
CN105808443B true CN105808443B (zh) | 2019-01-18 |
Family
ID=56419993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410842902.XA Active CN105808443B (zh) | 2014-12-29 | 2014-12-29 | 一种数据迁移的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105808443B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107783720A (zh) * | 2016-08-24 | 2018-03-09 | 深圳市深信服电子科技有限公司 | 一种数据均衡方法及存储设备 |
CN107577425A (zh) * | 2017-08-23 | 2018-01-12 | 杭州宏杉科技股份有限公司 | 一种数据迁移方法及装置 |
CN108874311B (zh) * | 2018-05-29 | 2022-02-08 | 北京盛和大地数据科技有限公司 | 融合存储系统中的数据迁移方法和装置 |
CN110858124B (zh) * | 2018-08-24 | 2021-06-01 | 华为技术有限公司 | 数据迁移方法及装置 |
CN109558337B (zh) * | 2018-11-30 | 2023-09-19 | 北京同有飞骥科技股份有限公司 | 高速缓存的动态访问方法、装置及存储介质 |
CN113228563B (zh) * | 2018-12-27 | 2024-04-05 | 苹果公司 | 用于阈值监测的方法和系统 |
CN112433679B (zh) * | 2020-12-01 | 2023-06-16 | 广州城市职业学院 | 一种数据存储方法、装置、电子设备及存储介质 |
CN117348820A (zh) * | 2023-12-04 | 2024-01-05 | 浪潮云信息技术股份公司 | 一种分布式系统的数据处理方法、系统、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1480850A (zh) * | 2002-12-04 | 2004-03-10 | 联想(北京)有限公司 | 动态迁移数据的方法及其存储系统 |
US7039922B1 (en) * | 1999-11-29 | 2006-05-02 | Intel Corporation | Cluster with multiple paths between hosts and I/O controllers |
CN102521138A (zh) * | 2011-11-28 | 2012-06-27 | 成都市华为赛门铁克科技有限公司 | 数据迁移触发方法和装置 |
CN102834807A (zh) * | 2011-04-18 | 2012-12-19 | 华为技术有限公司 | 多处理器系统负载均衡的方法和装置 |
-
2014
- 2014-12-29 CN CN201410842902.XA patent/CN105808443B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7039922B1 (en) * | 1999-11-29 | 2006-05-02 | Intel Corporation | Cluster with multiple paths between hosts and I/O controllers |
CN1480850A (zh) * | 2002-12-04 | 2004-03-10 | 联想(北京)有限公司 | 动态迁移数据的方法及其存储系统 |
CN102834807A (zh) * | 2011-04-18 | 2012-12-19 | 华为技术有限公司 | 多处理器系统负载均衡的方法和装置 |
CN102521138A (zh) * | 2011-11-28 | 2012-06-27 | 成都市华为赛门铁克科技有限公司 | 数据迁移触发方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105808443A (zh) | 2016-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105808443B (zh) | 一种数据迁移的方法、装置及系统 | |
US11080080B2 (en) | Virtual machine and volume allocation in hyperconverged infrastructure environment and storage system | |
US20190310925A1 (en) | Information processing system and path management method | |
US8850152B2 (en) | Method of data migration and information storage system | |
US7506101B2 (en) | Data migration method and system | |
US8898385B2 (en) | Methods and structure for load balancing of background tasks between storage controllers in a clustered storage environment | |
US8407436B2 (en) | Methods and apparatus for migrating thin provisioning volumes between storage systems | |
JP4842593B2 (ja) | ストレージ仮想化装置のデバイス制御引継ぎ方法 | |
JP5830599B2 (ja) | 計算機システム及びその管理システム | |
JP2008217216A (ja) | 負荷分散方法及び計算機システム | |
JP2010086049A (ja) | 管理計算機及びその運用方法 | |
US20160291877A1 (en) | Storage system and deduplication control method | |
US11099754B1 (en) | Storage array with dynamic cache memory configuration provisioning based on prediction of input-output operations | |
US20100306465A1 (en) | Storage system comprising plurality of processor units | |
US11704034B2 (en) | Load balancing in a storage system | |
CN108228099B (zh) | 一种数据存储的方法及装置 | |
US20200252319A1 (en) | Determining zoned but inactive i/o paths | |
US9081509B2 (en) | System and method for managing a physical storage system and determining a resource migration destination of a physical storage system based on migration groups | |
US10503440B2 (en) | Computer system, and data migration method in computer system | |
US11768744B2 (en) | Alerting and managing data storage system port overload due to host path failures | |
US10013216B2 (en) | Storage system | |
US11237745B2 (en) | Computer system and volume arrangement method in computer system to reduce resource imbalance | |
JP2019036089A (ja) | 情報処理装置、ストレージシステムおよびプログラム | |
US8521954B2 (en) | Management computer and volume configuration management method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |