子LUN所有权对齐的制作方法

文档序号:19064938发布日期:2019-11-06 02:14阅读:396来源:国知局
子LUN所有权对齐的制作方法

在存储阵列系统中,主机可访问卷或逻辑单元号(本文称为“lun”)每个从子lun(sub-lun)集合形成。每个子lun可以由存储阵列的存储控制器拥有(或托管)。组成lun的各个子lun的所有权可以分布在存储阵列的多个不同存储控制器上。当存储控制器拥有子lun时,存储控制器负责具有物理存储的物理或虚拟存储设备的往来数据操作,数据操作诸如读/写和输入/输出操作,物理存储被分配或可以被分配给子lun,以用于存储(虚拟或逻辑)子lun的数据。子lun用作指向存储数据的一个或多个存储设备的逻辑指针。存储控制器处理子lun的物理存储介质的数据访问。物理存储介质可以包括任何合适的物理存储介质,诸如硬盘驱动器(hdd)、例如闪存驱动器的固态驱动器(ssd)或其他存储设备、或者可以包括其组合。

分布式存储系统可以包括多个存储阵列,其中存储阵列中的lun和数据保持同步或者从一个存储阵列远程复制到另一存储阵列。但是,通常,子lun可能在不同存储阵列的存储控制器之中未对齐。例如,第一存储阵列中的单个存储控制器可以负责两个或更多个子lun的数据操作。在远程第二存储阵列中,这些子lun可以分布在两个或更多个存储控制器之中。

第一存储阵列和第二存储阵列的存储控制器之中的这种子lun未对齐可能导致数据传输效率低下,尤其是在从一个存储阵列到另一存储阵列的数据的远程复制操作的情况下。存储控制器可能需要将数据操作请求从存储阵列的一个控制器代理到另一控制器。数据操作请求的代理可以经由控制器互链(inter-link)来执行,并且可能由于有限的控制器间(inter-controller)带宽和/或由处理数据操作请求从存储阵列中的一个存储控制器到另一存储控制器所需的时间所强加的延迟而导致对存储阵列的负面性能影响。



技术实现要素:

本公开的示例针对一种用于在存储阵列的多个存储控制器之中进行子lun对齐的系统以及相关方法和存储指令的非瞬态计算机存储设备,指令可操作以使得一个或多个处理器执行该方法。

本文的方法可通过执行存储在非瞬态机器可读存储介质(或计算机可读介质)上的软件指令的一个或多个处理器、通过集成在存储控制器内的控制电路、或通过可控制存储控制器或与其交互的主计算机、或其任何组合来实现。处理器生成第一存储阵列的多个存储控制器的第一子lun所有权映射。第一子lun所有权映射指示第一存储阵列的多个存储控制器的子lun的所有权。子lun所有权映射可包括标识多个存储控制器和存储控制器拥有的用于数据操作请求(诸如读/写操作)的相应子lun的电子数据文件。

第一子lun所有权映射被传输到第二存储阵列的存储控制器。第二存储阵列基于第一子lun所有权映射而对齐第二存储阵列的多个存储控制器的一个或多个子lun的所有权。

处理器可确定子lun所有权改变是否包括从由存储控制器可访问的第一存储设备到由第二存储阵列的另一存储控制器可访问的第二存储设备的数据移动。当子lun所有权改变不包括该数据移动时,对齐由第二存储阵列的每个存储控制器拥有的子lun,以与第一存储阵列的存储控制器的对应子lun所有权对齐。当子lun所有权包括数据移动时,则该存储控制器的处理器协调第一存储设备和第二存储设备的数据移动。

可以对齐第二存储阵列的多个存储控制器的子lun的所有权,以完全匹配或部分匹配第一存储阵列的多个存储控制器的子lun所有权。部分匹配例如可以是存储控制器的一个或多个子lun的匹配。

附图说明

当结合附图阅读时,从以下详细描述中可以最好地理解本公开。应当强调的是,根据工业上的标准实践,各个特征未按比例绘制。实际上,为了清楚讨论,可以任意增加或减少各个特征的尺寸。

图1是由主计算机访问的示例存储阵列的示意图。

图2是具有两个存储阵列的示例分布式存储系统的示意图,两个存储阵列具有采用远程复制点对点配置的多个存储控制器。

图3是具有两个存储阵列的示例分布式存储系统的示意图,两个存储阵列具有采用远程复制多对多配置的多个存储控制器。

图4是用于子lun所有权对齐的示例方法的流程图。

图5是存储用于子lun所有权对齐的指令的示例计算设备和机器可读存储介质。

图6是用于子lun所有权对齐的示例方法的流程图。

具体实施方式

现在将在下面公开要求保护的主题的示例。为了清楚起见,在本说明书中并未描述实际实现的所有特征。应当理解,在任何这样的实际示例的开发中,可以做出许多特定于实现的决策以实现开发者的特定目标,诸如遵守与系统相关的和与业务相关的约束,这些约束将从一个实现到另一实现而变化。而且,应当理解,即使复杂且耗时,这种开发努力对于受益于本公开的本领域普通技术人员来说也是例行任务。

现在参照图1,描述了由主计算机100访问的示例存储阵列180的示意图。存储阵列180可以包括多个存储控制器140、150、160、170。存储控制器140、150、160、170每个可以包括嵌入相应存储控制器中的一个或多个硬件处理器145、155、165、175,以用于执行存储阵列180的一系列功能。硬件处理器145、155、165、175可以处理数据操作请求,数据移动以及其他数据相关功能,诸如raid和卷管理。存储控制器140、150、160、170可以具有一个或多个输入/输出(i/o)路径,以与计算机网络、主计算机、存储设备和/或其他存储控制器通信。

硬件处理器145、155、165、175可以是一个或多个中央处理单元(cpu)、基于半导体的微处理器和/或适合于检索和执行存储在机器可读存储介质中的指令的其他硬件设备。硬件处理器145、155、165、175可以获取、解码和执行指令,以控制用于管理子lun对齐的过程。作为检索和执行指令的替代或补充,硬件处理器145、155、165、175可以包括一个或多个电子电路,其包括用于执行一个或多个指令的功能的电子部件,例如现场可编程门阵列(fpga)或专用集成电路(asic)。

主计算机100使用lun110作为用于访问包含在存储阵列180的物理或虚拟存储设备上的数据的虚拟卷或虚拟地址空间来访问数据。lun110从分布在n个存储控制器140、150、160、170的存储阵列180上或由n个存储控制器140、150、160、170的存储阵列180托管的子lun集合形成。存储阵列180中的每个存储控制器140、150、160、170具有目标端口、处理器和存储器,以接收和处理来自主计算机100的数据操作请求。

lun映射表120将整个lun的逻辑块范围130映射到如由子luna、子lunb、子lunc...子lunx、子luny、子lunz所描绘的子lun中的每一个。在示例存储阵列180中,lun映射表120对每个存储控制器140可用,使得任何存储控制器140、150、160、170可以提供对整个lun的完全读/写访问,不管哪些存储控制器140、150、160、170拥有哪些子lun。每个子lun由存储阵列180中的一个存储控制器140、150、160、170拥有(或托管)。对于给定存储控制器140、150、160、170所拥有的每个子lun,存储控制器140、150、160、170管理对子lun的输入/输出访问,包括对分配用于存储子lun数据的物理存储介质执行输入/输出访问(即,响应对子lun请求的输入/输出访问而执行对物理存储介质的输入/输出访问)。

存储控制器140、150、160、170可以处理来自主计算机100的数据操作请求。数据操作请求可以包括将数据写入存储阵列180的请求以及从存储阵列读取数据的请求。存储控制器140、150、160、170可以从位于物理或虚拟存储设备上的数据存储器接收读取请求以读取数据。此外,存储控制器140、150、160、170可以接收写入请求,以将数据写入物理或虚拟存储设备上。存储控制器140、150、160、170可以包括可以存储数据操作请求的一些部分以及用于写入操作的任何伴随数据的高速缓冲存储器,使得接收控制器140、150、160、170可以代理到另一控制器的数据操作请求。

每个存储控制器140、150、160、170通过代理向主计算机100提供对其他存储控制器140、150、160、170的子lun的间接访问。如本文所使用的,“代理”可以包括到不拥有子lun的存储控制器的数据操作请求的接收,并且由接收存储控制器将数据操作请求转发给另一存储控制器。在代理数据操作请求时,接收存储控制器将与存储阵列中的另一存储控制器通信,并将数据操作请求和任何伴随数据传递给拥有子lun的存储控制器。最初接收数据操作请求的存储控制器可以等待来自拥有子lun的存储控制器的验证或确认已成功执行了预期的数据操作请求。当接收到该确认时,最初接收数据操作请求的存储控制器将随后向发起数据操作请求的主计算机提交验证或确认。在以读取操作的形式进行数据操作请求的情况下,数据将由拥有子lun的存储控制器读取,并且将读取的数据传递回最初接收存储控制器,而最初接收存储控制器随后将读取数据传递到主计算机100。

当数据操作请求到达存储控制器140、150、160、170中的任何一个时,可以由接收存储控制器执行lun的反向映射,以将数据操作请求代理或重定向到拥有子lun的适当存储控制器140、150、160、170。存储控制器中的每一个可以包括lun的可访问副本以及存储在可访问存储介质或其他存储器高速缓存中的子lun查找表。子lun查找表可以包括用于每个存储控制器的唯一标识符以及用于每个存储控制器的相应子lun指针。

数据操作请求的代理经由控制器互链(图1中未示出)执行。与存储控制器对其拥有的子lun的直接物理存储介质访问相比,数据操作请求的代理可能导致负面的性能影响。性能影响可能是有限的控制器间带宽和/或由处理数据操作请求并从一个存储控制器140、150、160、170转发数据操作请求和伴随数据到另一存储控制器所需的时间所强加的延迟的结果。

当给定存储控制器140、150、160、170从主机100接收到由另一存储控制器140、150、160、170所拥有的特定子lun的数据操作请求时,接收存储控制器140、150、160、170将数据操作请求转发给拥有子lun的存储控制器140、150、160、170以用于处理,并且等待响应。

在拥有存储控制器(即负责子lun数据操作请求的控制器)处理数据操作请求并且发送成功处理的证实或确认之后,接收存储控制器然后响应回主机。

现在,本公开将转向描述两个分离的存储阵列的存储控制器之中的子lun未对齐的讨论。参照图2,描述了具有两个存储阵列220、260的示例分布式存储系统的示意图,其中两个存储阵列220、260具有采用远程复制点对点配置的多个存储控制器230、240和270、280。每个存储阵列220、260包括两个存储控制器230、240和270、280,其中每个存储控制器托管给定的lun,该给定的lun分别由存储阵列220上的子luna、子lunb、子lunc、子lund、子lune和子lunf以及存储阵列260上的副本子luna’、子lunb’、子lunc’、子lund’、子lune’和子lunf’组成。来自第一存储阵列220的数据被复制到第二存储阵列260。在图2中,每个子lun具有由第一存储阵列220的第一控制器拥有的源版本(例如,子luna),以及由第二存储阵列260的第二控制器拥有的副本或目的地版本(例如,子luna’)。

第一存储阵列220具有两个存储控制器230、240。第一存储控制器230拥有(例如,处理数据操作请求的)子luna、子lunb和子lunc。第二存储控制器230拥有(例如,处理数据操作请求的)子lund、子lune和子lunf。存储控制器230经由控制器互链222与存储控制器240通信。存储控制器230具有一个或多个cpu235。存储控制器240具有一个或多个cpu295。

第二存储阵列260具有两个存储控制器270、280。第一存储控制器270拥有(例如,处理数据操作请求的)子lune’、子lunf’和子luna’。第二存储控制器280拥有(例如,处理数据操作请求的)子lunb’、子lunc’和子lund’。存储控制器270经由控制器互链262与存储控制器280通信。虽然针对每个存储阵列示出了两个存储控制器,但是每个存储阵列可以具有任何数量的存储控制器。存储控制器270具有一个或多个cpu275。存储控制器280具有一个或多个cpu285。

第一存储阵列220的第一存储控制器230与第二存储阵列260的第一存储控制器270通信。通信链路242将存储控制器230连接到存储控制器270,以用于数据操作请求和响应的通信。第一存储阵列220的第二存储控制器240通过通信链路250与第二存储阵列260的第二存储控制器280通信。通信链路242、250通过允许存储控制器关于数据操作请求彼此双向通信的计算机网络210提供通信信道。如本文所述,计算机网络210可以包括例如存储区域网络(san)、局域网(lan)、虚拟lan(vlan)、无线局域网(wlan)、虚拟专用网络(vpn)、因特网等、或者可以包括其组合。

在第一存储阵列220处的第一存储控制器230拥有子luna、子lunb和子lunc。在第一存储阵列220处的第二存储控制器240拥有子lund、子lune和子lunf。在第二存储阵列260处的第一存储控制器270拥有子lune’、子lunf’和子luna’。在第二存储阵列260处的第二存储控制器280拥有子lunb’、子lunc’和子lund’。

在本文描述的一些示例中,对于在第一存储阵列220上的给定存储控制器拥有的给定子lun集合,当对于给定子lun集合的副本子lun不全部由作为第二存储阵列260的一部分并且能够与给定存储控制器直接通信(即,不涉及存储阵列中的至少一个的另一存储控制器)的一个对应存储控制器拥有时,可以存在子lun的未对齐。在图2的示例中,存储控制器230和270能够经由通信链路242直接彼此通信(即,不经过任何其他存储控制器,诸如存储控制器240或280)。子lun未对齐,因为第一存储控制器230拥有子luna、子lunb和子lunc,但是第一存储控制器270(存储控制器230可以与其直接通信)不拥有子luna’、子lunb’和子lunc’,但拥有子lune’、子lunf’和子luna’。子lun也未对齐,因为第二存储控制器240拥有子lund、子lune和子lunf,但是第二存储控制器280(存储控制器240可以与其直接通信)不拥有子lund’、子lune’和子lunf’,但拥有子lunb’、子lunc’和子lund’。

在该示例中,仅子luna和a’在第一存储阵列220的第一控制器230和第二存储阵列260的第一控制器270上对齐。此外,仅子lund和d’在第一存储阵列220的第二控制器240和第二存储阵列260的第二控制器280上对齐。其他子lunb和子lunb’、子lunc和子lunc’、子lune和子lune’以及子lunf和子lunf’在第一存储阵列220和第二存储阵列260的存储控制器上未对齐。

由于子lun未对齐,第二存储阵列260的存储控制器可能需要在存储控制器270、280之中代理数据操作请求。例如,当第一存储控制器230向第一存储控制器270发送与子luna和子lunb相关的数据操作请求时,第一存储控制器270随后需要经由控制器互链262将子lunb的数据操作请求的部分代理到存储控制器280。在这个例子中,由于两个存储控制器230和270之中的子lun所有权未对齐而导致控制器互链262的使用效率低。换句话说,如果子luna和子luna’以及子lunb和子lunb’的所有权在第一存储阵列220和第二存储阵列260上的各个存储控制器之间已经对齐(即,使存储控制器270拥有用于数据操作请求的子luna’和子lunb’),那么可以避免经由控制器互链262将数据从第二存储阵列260的一个存储控制器270代理到另一控制器280。

然而,根据下面描述的方法,可以通过存储控制器对齐子lun所有权,以减少相同存储阵列的存储控制器之间的数据代理。例如,在第二存储阵列260处的第二存储控制器280可以将子lunb’和子lunc’的所有权对齐到第一存储控制器270。在第二存储阵列260处的第一存储控制器270可以将子lune’和子lunf’的所有权对齐到第二存储控制器280。结果将是第一控制器270具有子luna’、子lunb’、子lunc’的所有权并且第二控制器280具有子lund’、子lune’、子lunf’的所有权。

现在参照图3,描述了具有两个存储阵列320、360的示例分布式存储系统的示意图,两个存储阵列320、360具有采用远程复制多对多链路配置的多个存储控制器330、340和370、380。每个存储阵列320、360包括两个存储控制器330、340和370、380,其中每个存储控制器托管由子luna/a’、子lunb/b’、子lunc/c’、子lund/d’、子lune/e’和子lunf/f’组成的给定lun。来自第一存储阵列320的数据被复制在第二存储阵列360上。

第一存储阵列320具有两个存储控制器330、340。第一存储控制器330处理子luna、子lunb、子lunc的数据操作请求。第二存储控制器340处理子lund、子lune、子lunf的数据操作请求。存储控制器330经由控制器互链322与存储控制器340通信。存储控制器330具有一个或多个cpu335。存储控制器340具有一个或多个cpu395。

第二存储阵列360具有两个存储控制器370、380。第一存储控制器370处理子lune’、子lunf’、子luna’的数据操作请求。第二存储控制器380处理子lunb’、子lunc’、子lund’的数据操作请求。存储控制器370经由控制器互链362与存储控制器380通信。虽然针对每个存储阵列示出了两个存储控制器,但是存储阵列可以具有任何数量的存储控制器。存储控制器370具有一个或多个cpu375。存储控制器380具有一个或多个cpu385。

第一存储阵列320的第一存储控制器330与第二存储阵列360的第一存储控制器370通信。通信链路342将存储控制器330连接到存储控制器370。另一通信链路355将存储控制器330连接到存储控制器380。第一存储阵列320的第二存储控制器340与第二存储阵列360的第二存储控制器380通信。通信链路350将存储控制器340连接到存储控制器380。另一通信链路345将存储控制器340连接到存储控制器370。

通信链路342、345、350、355通过允许存储控制器关于数据操作请求彼此双向通信的计算机网络310提供通信信道。如本文所述,计算机网络310可以包括例如存储区域网络(san)、局域网(lan)、虚拟lan(vlan)、无线局域网(wlan)、虚拟专用网络(vpn)、因特网等、或者可以包括其组合。

用于通信链路的标识符可以作为表或其他数据结构(“链接表”)存储在由存储控制器可访问的计算机可读存储介质(例如,高速缓冲存储器)上。例如,通信链路可以是另一存储控制器的位置的地址,诸如互联网协议(ip)地址、媒体访问控制(mac)地址、通用资源定位符(url)或其他类型的位置标识符。

在该示例中,在第一存储阵列320处的每个存储控制器330、340可以访问在第二存储阵列360处的所有存储控制器370、380。如果在第一存储阵列处存在“n”个存储控制器,并且在第二存储阵列处存在“m”个存储控制器,每个存储控制器必须访问第一存储阵列和第二存储阵列两者中的所有n个存储控制器。则这将导致配置“n×m”通信链路。此配置在阵列端口处消耗大量主机逻辑连接。

如果任何通信链路342、355、345、350发生故障,或者通信链路中的一条可能掉线,那么本文描述的子lun对齐方法可以用于子lun所有权对齐。可以在通信链路掉线之前执行子lun所有权的对齐。例如,如果通信链路345或355掉线,则存储控制器的子lun所有权可以在同一存储阵列的存储控制器之间对齐。例如,在第二存储阵列360处的第二存储控制器380可以将子lunb’和子lunc’的所有权对齐到第一存储控制器370。在第二存储阵列360处的第一存储控制器370可以将子lune’和子lunf’的所有权对齐到第二存储控制器380。结果将是第一控制器370具有子luna’、子lunb’、子lunc’的所有权并且第二控制器380具有子lund’、子lune’、子lunf’的所有权。

示例对齐方法

本文描述的子lun所有权对齐方法可以改善分布式存储阵列之中的数据操作请求处理时间,并且当在存储阵列之间执行远程复制操作时减少存储控制器之中的控制器间串扰。本文的方法可以由执行存储在非瞬态机器可读存储介质上的软件指令的存储控制器的一个或多个处理器,通过集成在存储控制器内的控制电路、或者通过可以控制存储控制器或可以与存储控制器交互的主计算机、或者其组合来实现。例如,方法可以由可以在第一存储阵列的任何存储控制器上以及第二存储阵列的任何存储控制器上执行的一个或多个守护进程或进程来执行。此外,方法可以由独立的计算设备执行,该独立的计算设备与第一存储阵列的存储控制器和第二存储阵列的存储控制器通信地耦接。

如以下示例方法中所述,子lun所有权映射标识存储阵列的存储控制器之中的子lun所有权。子lun所有权映射可以采用电子形式,诸如逻辑映射、文件、表、或分别包括标识存储阵列的存储控制器和存储控制器所拥有的子lun的信息的其他数据结构、索引、散列。子lun所有权映射可以包括指示存储控制器标识符的数据值,并且对于每个存储控制器标识符,可以将存储控制器标识符与存储控制器标识符所标识的存储控制器所拥有的子lun的子lun标识符相关联。子lun所有权映射可以包括指示介质类型、raid(独立磁盘冗余阵列)级别和子lun大小的数据值。

如下面进一步描述的,辅存储阵列的存储控制器从主存储阵列的存储控制器接收子lun所有权映射。接收存储控制器将接收到的子lun所有权映射与接收存储控制器的lun表进行比较。接收存储控制器评估子lun所有权映射并标识第一存储阵列的存储控制器的子lun所有权与第二存储阵列的存储控制器的子lun所有权不对齐的位置。接收存储控制器确定第二存储阵列的子lun的所有权对齐,以匹配或部分匹配第一存储阵列的子lun所有权映射。

在接收存储控制器确定第二存储阵列的子lun所有权的对齐之后,接收存储控制器利用所确定的子lun所有权对齐来更新接收存储控制器的lun表,或者可替代地,接收存储控制器创建新的lun表,并用新的lun表替换现有lun表。新的lun表包括确定的子lun所有权对齐。然后将新的lun表传输到第二存储阵列中的其他存储控制器中的每一个,随后,第二存储器的其他存储控制器然后将使用新的lun表更新其当前lun表。以这种方式,第二存储阵列的存储控制器将反映子lun所有权对齐变化。

在更新lun表期间,对lun表进行更改的存储控制器可以暂时且短暂地暂停复制服务,直到完成重新配置转换。

在物理存储设备之中的数据移动之前,可以优先考虑子lun所有权对齐。在某些存储阵列配置中,两个或更多个存储控制器可以具有对同一物理存储设备的输入/输出访问。在该配置中,从存储控制器中的一个存储控制器到另一存储控制器的子lun的对齐将不涉及来自物理存储设备的数据移动。

在其他存储阵列配置中,两个或更多个存储控制器可以不具有对同一物理存储设备的输入/输出访问。除了对齐子lun所有权之外,存储阵列的存储控制器还可以协调从第一存储控制器可访问的一个物理存储设备到第二存储控制器可访问的另一物理存储设备的数据移动。

此外,当要移动数据时,存储控制器或分离的系统可以在两个存储阵列的存储控制器中的每一个之中协调和平衡移动数据,而不是仅仅在一个存储阵列的存储控制器之中移动数据。例如,实际存储在第一存储控制器可访问的物理存储设备上的数据可以被移动到第二存储控制器可访问的另一物理存储设备。在某些情况下,在平衡数据移动的同时,一些数据将从第一存储控制器可访问的一个物理存储设备移动到第一存储阵列中的第二存储控制器可访问的另一物理存储设备,并且一些数据将从第一存储控制器可访问的一个物理存储设备移动到第二存储阵列中的第二存储控制器可访问的另一物理存储设备。

可以基于触发事件而发生存储阵列之中的子lun所有权的对齐。例如,当存在硬件配置更改、硬件故障、链路故障或可能导致子lun所有权更改的任何其他触发事件时,可能会发生对齐。此外,如下所述的分析引擎可以执行诸如守护进程或服务的软件指令,以监视存储阵列并且确定需要子lun对齐或者有益于优化存储阵列之中的远程数据复制。

现在参照图4,描述了用于子lun所有权对齐的方法400。方法400开始(框410)于为第一存储阵列的存储控制器配置第一存储阵列的lun和子lun所有权(框420)。生成第一存储阵列的存储控制器的子lun所有权映射(框430)。存储阵列的每个存储控制器都可以访问存储控制器、标识每个子lun以及管理与子lun相关的数据操作的特定存储控制器的lun表。lun表可以存储在相应存储控制器的存储高速缓存和/或存储器中。存储阵列的每个存储控制器都具有lun表的副本。

存储阵列的任何存储控制器可以生成子lun所有权映射。在一个示例中,子lun所有权映射由第一存储阵列的第一存储控制器通过制作其lun表的副本来生成。复制的lun表可以用作子lun所有权映射,并且可以由第一存储阵列的第一存储控制器传输到第二存储阵列的第一存储控制器。在另一示例中,第一存储控制器从lun表读取数据并使用来自lun表的信息子集创建子lun所有权映射。在该示例中,子lun所有权映射可以包括用于存储阵列的存储控制器的相应标识符,以及与相应标识符相关联的子lun。为了便于阅读,第一存储阵列的第一存储控制器将被称为发送控制器,第二存储阵列的第一存储控制器将被称为接收控制器。

子lun所有权映射由发送控制器传输到接收控制器(框440)。发送控制器向接收控制器发送请求以对齐子lun(框450)。例如,该请求可以是可由接收控制器解释的命令或指令。接收控制器响应于接收到命令或指令,然后执行如本文中参照所接收的子lun所有权映射所述的所有权对齐。

此外,发送控制器可以向接收控制器发送请求以匹配(或尝试最接近的匹配)关于介质类型、raid(独立磁盘冗余阵列)级别和子lun大小的一个或多个参数的子lun所有权映射。响应于接收请求,接收控制器还将调整第二存储阵列上的子lun以尝试在对齐子lun时匹配参数。

基于处理所接收的子lun所有权映射而执行第二存储阵列的多个控制器的所有权的对齐(框460)。接收控制器将接收到的子lun所有权映射与接收控制器的lun表进行比较。例如,接收控制器可以顺序读取所接收的子lun所有权映射并读取接收控制器的lun表。接收控制器可以在存储器中创建临时表,在该存储器中,子lun被标识为匹配第一存储阵列的存储控制器和第二存储阵列的存储控制器。存储器中的临时表还可以包括第一存储阵列的存储控制器和第二存储阵列的存储控制器不匹配的子lun的标识。第二存储阵列的所标识的非匹配子lun可以与第一存储阵列的对应子lun对齐。换句话说,非匹配的子lun可以在临时表中关联或移动到第二存储阵列的另一控制器。

然后,可以由接收控制器使用临时表,以更新第二存储阵列的lun表。接收控制器可以根据临时表中标识的对齐重新组织接收控制器的lun表。然后,更新的lun表被复制到第二存储阵列的其他存储控制器。然后,该方法结束(框470)。

在某些存储阵列配置中,接收控制器可能不能对齐子lun所有权。例如,与要对齐的子lun相关联的数据可以存储在物理存储设备上,并且由于数据大小限制和空间可用性,数据不能与子lun一起从一个存储控制器移动到另一存储器控制器。接收控制器可以向第一存储阵列的发起存储控制器(即发送控制器)发送以下通信:子lun的对齐不成功并且请求另一子lun所有权映射策略或新的映射计划。作为响应,发送控制器可以接受并执行所请求的映射策略或生成不同的子lun所有权映射,并重新发送到接收控制器以用于子lun的所有权对齐。

可以执行第二存储阵列上的子lun所有权的对齐,使得第二存储阵列的每个存储控制器的子lun的所有权匹配彼此的所有权(例如,使得如上所述的子lun的所有权不匹配被移除)。例如,如果第一存储阵列和第二存储阵列两者都具有四个存储控制器,那么子lun将对齐,以便每个存储阵列的第一存储控制器具有相应的子lun所有权,每个存储阵列的第二存储控制器具有相应的子lun所有权,并且每个存储阵列的第三存储控制器具有相应的子lun所有权,对存储阵列中的其余存储控制器依此类推。

现在参照图5,描述了示例计算设备500和存储用于执行子lun所有权对齐的指令的机器可读存储介质515。包括硬件处理器510的计算设备500可以执行存储在非瞬态计算机存储设备515上的指令。机器可读存储介质515的指令是关于图4描述的方法的实现。

诸如515之类的机器可读存储介质可以包括易失性和非易失性、可移动和不可移动介质,并且可以是包含或存储可执行指令、数据结构、程序模块、或处理器510可访问的其他数据的任何电的、磁的、光学的或其他物理存储设备,例如固件、可擦除可编程只读存储器(eprom)、随机存取存储器(ram)、非易失性随机存取存储器(nvram)、光盘、固态驱动器(ssd)、闪存芯片等。机器可读存储介质可以是非瞬态存储介质,其中术语“非瞬态”不包含瞬态传播信号。机器可读存储介质可以用可执行指令520-560编码,以用于根据本文描述的方法执行用于子lun对齐的方法。机器可读存储介质515可以位于存储控制器、主计算机和/或与存储阵列通信的另一设备或系统中。

现在参照图6,进一步描述了用于子lun所有权对齐的示例方法。示例方法开始(框605),并且处理器或其他操作过程或控制电路确定第一存储阵列和第二存储阵列之间是否存在新的远程复制关系(框610)。例如,处理器可以是通信地耦接到存储阵列的一个或多个存储控制器并且通信地耦接到第二存储阵列的一个或多个存储控制器的分离的计算设备。处理器可以是存储控制器的组成部分和/或可以是分离的计算设备的一个或多个处理器。

当处理器确定不存在新的远程复制关系时,那么处理器确定子lun是否在第一存储阵列和第二存储阵列的存储控制器之中对齐(框635)。例如,处理器可以读取第一存储阵列的lun表以及第二存储阵列的lun表。处理器可以比较两个lun表并确定第一存储阵列和第二存储阵列的存储控制器之中是否存在子lun所有权对齐。

当处理器确定子lun所有权对齐时,该方法结束(框640)。换句话说,对于两个阵列上的存储控制器,子lun所有权完全匹配或部分匹配两个或多个子lun的所有权。例如,当第一阵列的第一存储控制器拥有子luna、子lunb、子lunc并且第二阵列的第一存储控制器拥有子luna’、子lunb’、子lunc’时,以及当第一存储阵列的第二存储控制器拥有子lund、子lune、子lunf并且第二阵列的第二存储控制器拥有子lund’、子lune’、子lunf’时,可能发生匹配。

当处理器确定存在新的远程复制关系时(框610),那么处理器确定在第一存储阵列和第二存储阵列的相应存储控制器之中是否存在子lun所有权对齐或匹配(框615)。例如,处理器可以读取第一存储阵列的lun表以及第二存储阵列的lun表。处理器可以比较两个lun表并确定第一存储阵列和第二存储阵列的存储控制器之中是否存在子lun所有权对齐。

如果存在子lun所有权对齐或匹配,那么该方法结束(框640)。如果不存在子lun所有权对齐,那么处理器可以确定是否存在可以利用现有通信链路对齐的可能改变(框618)。处理器可以确定现有通信链路不用于第一存储阵列和第二存储阵列的具有相同子lun所有权的控制器之间的控制器间通信。如果可以使用现有通信链路,则存储控制器将进行改变(框639),以使用可替代通信链路而不是存储控制器正在使用的先前通信链路。

例如,子luna可以位于第一存储阵列的控制器1上,子luna’可以位于第二存储阵列的控制器2上。然而,第一存储阵列的控制器1可以使用除了从第一存储阵列的控制器1到第二存储阵列的控制器2的通信链路之外的通信链路,以用于与子luna和子luna’相关的数据操作。处理器可以确定第一存储阵列的控制器1和第二存储阵列的控制器2之间是否存在通信链路。如果存在通信链路,那么然后将改变与子luna和子luna’相关的数据操作,以使用第一存储阵列的控制器1和第二存储阵列的控制器2之间的通信链路。然后,该方法结束(框640)。

如果不存在通信链路对齐,那么第一存储阵列的存储控制器生成子lun所有权映射(框620)。如前所述,存储阵列的每个存储控制器都可以访问存储控制器、标识每个子lun的lun表和管理与子lun相关的数据操作的特定存储控制器。lun表可以存储在相应存储控制器的存储高速缓存和/或存储器中。存储阵列的每个存储控制器都具有lun表的副本。

存储阵列的任何存储控制器可以生成子lun所有权映射。在一个示例中,子lun所有权映射由存储控制器通过制作其lun表的副本来生成。复制的lun表可以用作子lun所有权映射,以用于传输到第二存储阵列。在另一示例中,存储控制器从lun表读取数据,并使用来自lun表的信息子集创建子lun所有权映射。在该示例中,子lun所有权映射可以包括用于存储阵列的存储控制器的相应标识符以及与相应标识符相关联的子lun。

子lun所有权映射标识第一存储阵列的存储控制器以及哪些子lun被哪些存储控制器拥有。然后,由第一存储阵列生成的子lun所有权映射与第二存储阵列共享。第二存储阵列的存储控制器从第一存储阵列接收子lun所有权映射。

然后,第二存储阵列对齐其存储控制器的子lun的所有权,以匹配第一存储阵列的子lun所有权或部分匹配两个或更多个子lun的所有权(框625)。

第二存储阵列的存储控制器将接收到的子lun所有权映射与存储控制器的lun表进行比较。例如,接收存储控制器可以顺序读取所接收的子lun映射表,并读取存储控制器自己的lun表。存储控制器可以在存储器中创建临时表,在存储器中,子lun被标识为匹配第一存储阵列的存储控制器和第二存储阵列的存储控制器。存储器中的临时表还可以包括第一存储阵列的存储控制器和第二存储阵列的存储控制器不匹配的子lun的标识。第二存储阵列的所标识的非匹配子lun可以与第一存储阵列的对应子lun对齐。换句话说,非匹配的子lun可以在临时表中关联或移动到第二存储阵列的另一控制器。

然后,可以由存储控制器使用临时表,以更新第二存储阵列的lun表。第二个存储控制器将根据临时表中标识的对齐重新组织第二个控制器的lun表。更新的lun表将复制到第二个存储阵列的其他存储控制器。然后,该方法结束(框630)。

可替代地,第一存储阵列和第二存储阵列两者都可以改变子lun所有权的一部分以补充另一阵列的子lun所有权,直到实现完全匹配。该子lun所有权映射交换可以在其中第二存储阵列基于所接收的第一存储阵列的子lun所有权映射来对齐第二存储控制器子lun的多个步骤中执行。在第二个存储阵列不能将子lun所有权与第一个存储阵列的子lun所有权完全匹配的情况下,第二个存储阵列会尽可能多地对齐子lun。然后,第二个存储阵列基于对齐的子lun更新其lun表。然后,第二存储阵列可以生成子lun所有权映射,并将子lun所有权映射传输到第一存储阵列。然后,第一个存储阵列尝试重新对齐剩余的非匹配的子lun,并基于对齐的子lun更新其lun表。

如果处理器确定不存在新的远程复制关系(框610),那么处理器确定子lun是否对齐(框635)。确定子lun是否对齐可以以上面关于框615讨论的方式执行。如果存在子lun所有权对齐或匹配,那么该方法结束(框640)。如果不存在子lun所有权对齐,那么处理器确定是否可以进行可能的改变以利用通信链路对齐(框638)。可以以上面关于框618讨论的方式来确定是否可以进行通信链路对齐改变。如果可以进行通信链路对齐改变,那么控制器将进行改变(框639),然后,该方法结束(方框640)。如果不存在通信链路对齐,那么第一存储阵列的存储控制器生成子lun所有权映射(框650)。子lun所有权映射的生成将以前面讨论的方式执行。第一存储阵列与第二存储阵列的存储控制器共享子lun所有权映射(框650)。

基于子lun所有权映射与第二存储控制器的lun表的比较,第二存储阵列的存储控制器确定第二存储控制器是否可以对齐子lun,以匹配第一存储阵列的子lun所有权映射或部分匹配两个或更多个的子lun的所有权(框655)。如果第二存储阵列可以对齐,那么第二存储阵列对齐第二存储阵列的存储控制器的子lun(框660),并且然后该方法结束(框665)。如果第二存储阵列不能对齐子lun以匹配第一阵列的所有权映射,那么第二存储阵列尝试对齐第二存储阵列的存储控制器的子lun中的一些子lun的所有权(框670)。

在某些情况下,第二存储阵列的存储控制器可能不能对齐所有子lun所有权。例如,与要对齐的子lun相关联的数据可以存储在物理存储设备上,并且由于数据空间要求或其他限制,数据不能与子lun一起从一个存储控制器移动到另一存储控制器。第二个存储控制器将对齐子lun中的一些子lun的子lun所有权,并且然后更新第二个存储阵列的lun表。第二存储阵列的存储控制器可以基于更新的lun表生成子lun所有权映射。此子lun所有权映射将反映第二个存储阵列能够重新对齐的子lun所有权。第二存储阵列的第一存储控制器可以将子lun所有权映射传输到第二存储阵列的存储控制器(框675)。然后,第一存储阵列的第一存储控制器可以根据接收的子lun所有权映射来尝试对齐子lun(框660)。然后,该方法结束(框665)。

可替代地,如果子lun所有权对齐不成功或不可能,那么如下所述的用户或分析引擎可以确定第一存储阵列和第二存储阵列的子lun所有权映射。例如,可以对齐第一存储阵列上的子lun的所有权,并且可以对齐第二存储阵列上的子lun的所有权。

分析引擎

诸如软件程序、过程或模块之类的分析引擎可以监视存储阵列并评估关于子lun所有权的历史信息,并观察分离的存储阵列的存储控制器之间以及存储阵列内的存储控制器之间的各个子lun的数据流量。如本文所使用的,分析引擎可以是硬件和程序的任何组合,以实现本文描述的分析引擎的功能。在一些示例中,分析引擎的功能可以以电子电路、存储在机器可读存储介质上的处理器可执行指令或其组合的形式至少部分地实现。

存储控制器可以被配置为从分析引擎接收指令和/或命令。分析引擎可以从存储控制器请求子lun所有权映射。响应于该请求,存储控制器可以生成子lun所有权映射并将子lun所有权映射传输到分析引擎。例如,分析引擎可以从第一存储阵列的存储控制器请求子lun所有权映射,并且可以从第二存储阵列的第二存储控制器请求子lun所有权映射。

分析引擎可以确定子lun所有权映射,其中第一存储阵列的子lun在第一存储阵列的存储控制器之中移动,并且其中第二存储阵列的子lun在第二存储阵列的存储控制器之中移动。此外,分析引擎可以确定存储在存储控制器可访问的物理存储设备上的数据可以被移动到存储阵列的另一存储控制器。

然后,分析引擎可以向存储阵列的相应存储控制器发送指令以对齐子lun的所有权,并且可选地将数据从一个物理存储设备移动到另一物理存储设备。

分析引擎可以评估通信链路的数据业务吞吐量、通信链路故障的历史和其他参数。存储控制器可以配置有api(应用程序编程接口),该api允许存储控制器接收命令以在存储阵列的存储控制器之中移动子lun的所有权。另外,存储控制器可以从远程源(诸如分析引擎)或通过来自另一程序或系统的api接收子lun所有权映射。这允许存储控制器从另一源接收子lun对齐的子lun所有权映射。

分析引擎可以确定通信链路将被断开以进行维护,如由调度或预测分析软件所确定的。然后,可以在执行维护时临时重新配置存储阵列的子lun所有权。例如,如果阵列间通信链路将被拉出(pulled)或离线,则可以临时重新配置子lun所有权,并且然后禁用通信链路。当通信链路再次运行时,子lun所有权可以重新配置为原始子lun所有权映射。

为了解释的目的,前述描述使用特定术语来提供对本公开的透彻理解。然而,对于本领域技术人员来说显而易见的是,不需要具体细节来实践本文所述的系统和方法。为了说明和描述的目的,给出了具体示例的前述描述。它们不意在穷举或将本公开限制于所描述的精确形式。根据上述教导,许多修改和变化都是可能的。示出和描述示例以最好地解释本公开的原理和实际应用,从而使得本领域的其他技术人员能够最好地利用本公开和具有适合于预期的特定用途的各种修改的各种示例。意图是本公开的范围由下面的权利要求及其等同物限定。

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