CN106557280B - 数据存储方法、存储阵列及主机服务器 - Google Patents

数据存储方法、存储阵列及主机服务器 Download PDF

Info

Publication number
CN106557280B
CN106557280B CN201610943256.5A CN201610943256A CN106557280B CN 106557280 B CN106557280 B CN 106557280B CN 201610943256 A CN201610943256 A CN 201610943256A CN 106557280 B CN106557280 B CN 106557280B
Authority
CN
China
Prior art keywords
storage array
token
host server
request
magnetic disc
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
Application number
CN201610943256.5A
Other languages
English (en)
Other versions
CN106557280A (zh
Inventor
孙长明
田知非
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Huawei Digital Technologies Co Ltd
Original Assignee
Beijing Huawei Digital Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Huawei Digital Technologies Co Ltd filed Critical Beijing Huawei Digital Technologies Co Ltd
Priority to CN201610943256.5A priority Critical patent/CN106557280B/zh
Publication of CN106557280A publication Critical patent/CN106557280A/zh
Application granted granted Critical
Publication of CN106557280B publication Critical patent/CN106557280B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

本发明实施例提供数据存储方法、存储阵列及主机服务器,涉及存储技术领域,解决了现有技术中不能完全解决存储阵列中逻辑磁盘与主机服务器中虚拟磁盘的映射关系发生改变后,由于主机服务器上无法实时更新该映射关系的变化而导致的数据损坏或业务中断的问题。该方法包括:存储阵列接收主机服务器发送的I/O请求,I/O请求携带第一令牌;存储阵列将第一令牌与多个当前令牌进行匹配;若多个当前令牌中存在与第一令牌相同的当前令牌,存储阵列通过与第一令牌相同的当前令牌对应的逻辑磁盘处理I/O请求,并向主机服务器发送I/O请求处理成功的消息;若多个当前令牌中不存在与第一令牌相同的当前令牌,存储阵列向主机服务器发送I/O请求处理失败的消息。

Description

数据存储方法、存储阵列及主机服务器
技术领域
本发明涉及存储技术领域,尤其涉及数据存储方法、存储阵列及主机服务器。
背景技术
配置存储阵列中逻辑磁盘与主机服务器中虚拟磁盘的映射关系是使用存储区域网络(英文:storage area network,缩写:SAN)中存储资源运行主机业务的基本操作。在实际生产和服务环境中,业务需求会不断变化,需要该映射关系进行维护,因此变更该映射关系是常见的操作之一。
然而,现有技术中,上述映射发生改变后,主机服务器上无法实时更新该映射关系的变化,从而在主机服务器向存储阵列发送输入/输出(英文:input/output,缩写:I/O)请求时,可能会导致数据损坏或业务中断。比如,如图1A所示,最初存储阵列中逻辑磁盘与主机服务器中虚拟磁盘的映射关系是逻辑磁盘1映射给虚拟磁盘1,逻辑磁盘2映射给虚拟磁盘2。去除所有映射关系,交换顺序映射逻辑磁盘2和逻辑磁盘1给主机服务器中的虚拟磁盘,最终主机上的使用顺序也相应变化,如图1B所示。然而,由于上述映射发生改变后,主机服务器上无法实时更新映射关系的变化,实际的主机服务器中的虚拟磁盘和存储阵列中逻辑磁盘的对应关系会发生错乱,如图1C所示,存储阵列中的逻辑磁盘2将对应主机服务器中的虚拟磁盘1,存储阵列中的逻辑磁盘1将对应主机服务器中的虚拟磁盘2。也就是说,在主机服务器侧,原本应该发送给逻辑磁盘1的I/O请求被错误发送给逻辑磁盘2,原本应该发送给逻辑磁盘2的I/O请求被错误发送给逻辑磁盘1,此时就会导致数据损坏或业务中断。
针对上述问题,目前提出两种解决方案:
第一种解决方案中,存储阵列在接收到I/O请求之后,若发现映射关系发生改变,通过向主机服务器返回单位注意(英文:unit attention,缩写:UA)以告知主机服务器当前映射关系改变,但是,由于I/O请求是异步处理,假设存储阵列在接收到I/O请求之后发现映射关系发生改变,则在存储阵列向主机服务器返回UA前主机服务器仍然会继续向存储阵列发送I/O请求,这样仍然可能导致数据损坏或业务中断。
第二种解决方案中,主机服务器定时检测映射关系是否改变,由于定时检测存在检测周期,假设在映射关系改变到下一次周期检测到映射关系改变期间,有I/O请求发送到存储阵列,这样仍然可能导致数据损坏或业务中断。
综上,上述两种解决方案并不能完全解决存储阵列中逻辑磁盘与主机服务器中虚拟磁盘的映射关系发生改变后,由于主机服务器上无法实时更新该映射关系的变化而导致的数据损坏或业务中断的问题。因此,如何解决该问题,成为目前亟待解决的问题。
发明内容
本发明的实施例提供数据存储方法、存储阵列及主机服务器,以至少解决存储阵列中逻辑磁盘与主机服务器中虚拟磁盘的映射关系发生改变后,由于主机服务器上无法实时更新该映射关系的变化而导致的数据损坏或业务中断的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,本发明实施例提供一种数据存储方法,该方法包括:存储阵列接收主机服务器发送的输入/输出I/O请求,该I/O请求携带第一令牌,用于请求访问该存储阵列中的逻辑磁盘;该存储阵列将该第一令牌与多个当前令牌进行匹配,其中,该多个当前令牌中的某个当前令牌为当该存储阵列中的一个逻辑磁盘第一次映射给该主机服务器中的一个虚拟磁盘时,该存储阵列为该一个逻辑磁盘生成的当前令牌;若该多个当前令牌中存在与该第一令牌相同的当前令牌,该存储阵列通过与该第一令牌相同的当前令牌对应的逻辑磁盘处理该I/O请求,并向该主机服务器发送该I/O请求处理成功的消息;若该多个当前令牌中不存在与该第一令牌相同的当前令牌,该存储阵列向该主机服务器发送该I/O请求处理失败的消息。
基于本发明实施例提供的数据存储方法,在存储阵列中逻辑磁盘发生改变后,存储阵列将主机服务器发送的第一令牌与该存储阵列中的所有当前令牌进行匹配,若在存储阵列中能匹配到与第一令牌相同的当前令牌,就可以由该令牌对应的逻辑磁盘处理I/O请求,若在存储阵列中匹配不到与第一令牌相同的当前令牌,存储阵列则不处理该I/O请求,并向发送I/O处理失败的消息,因此不会出现现有技术中不该处理该I/O请求的逻辑磁盘处理该I/O请求的问题,从而避免了逻辑磁盘的数据被破坏或业务中断的问题,提高了数据存储的可靠性。
在一种可能的设计中,该I/O请求还携带该主机服务器中第一虚拟磁盘的标识;该存储阵列将该第一令牌与多个当前令牌进行匹配,包括:该存储阵列根据该第一虚拟磁盘的标识,确定该第一虚拟磁盘对应的第一逻辑磁盘;该存储阵列将该第一令牌与该第一逻辑磁盘中的当前令牌进行匹配;若该第一令牌与该第一逻辑磁盘中的当前令牌不相同,该存储阵列将该第一令牌与该存储阵列其它逻辑磁盘中的当前令牌进行匹配。
在一种可能的设计中,该存储阵列根据该主机服务器的标识和该逻辑磁盘的标识为该一个逻辑磁盘生成当前令牌。
又一方面,本发明实施例提供一种数据存储方法,该方法包括:主机服务器获取输入/输出I/O请求,该I/O请求携带第一令牌,用于请求访问存储阵列中的逻辑磁盘;该主机服务器向第一存储阵列发送该I/O请求,以使得该第一存储阵列将该第一令牌与多个当前令牌进行匹配后向该第一存储阵列发送该I/O请求处理成功或失败的消息,其中,该多个当前令牌中的某个当前令牌为当该第一存储阵列中的一个逻辑磁盘第一次映射给该主机服务器中的一个虚拟磁盘时,该第一存储阵列为该一个逻辑磁盘生成的当前令牌;该主机服务器接收该第一存储阵列发送的该I/O请求处理成功或失败的消息。
在一种可能的设计中,在该主机服务器接收该第一存储阵列发送的该I/O请求处理失败的消息之后,还包括:该主机服务器向第二存储阵列发送该I/O请求,以使得该第二存储阵列将该第一令牌与多个当前令牌进行匹配后向该第二存储阵列发送该I/O请求处理成功或失败的消息,其中,该第二存储阵列的信息为该第一存储阵列中的信息生成时,该主机服务器将该第一存储阵列的信息同步至该第二存储阵列得到的;该主机服务器接收该第二存储阵列发送的该I/O请求处理成功或失败的消息。
基于本发明实施例提供的数据存储方法,在第一存储阵列中逻辑磁盘发生变化后,且第一存储阵列中的匹配不到与第一令牌相同的当前令牌,第一存储阵列不处理该I/O请求,只要第二存储阵列中的存在与第一令牌相同的当前令牌,就可以匹配到与第一令牌相同的令牌,从而可以由该令牌对应的逻辑磁盘处理I/O请求,因此不会出现现有技术中不该处理该I/O请求的逻辑磁盘处理该I/O请求的问题,避免了逻辑磁盘的数据被破坏或业务中断的问题,提高了数据存储的可靠性。
又一方面,本发明实施例提供一种存储阵列,该存储阵列具有实现上述方法实施例中存储阵列行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
又一方面,本发明的实施例提供一种存储阵列,包括:处理器、存储器、总线和通信接口;该存储器用于存储计算机执行指令,该处理器与该存储器通过该总线连接,当该存储阵列运行时,该处理器执行该存储器存储的该计算机执行指令,以使该存储阵列执行如上述任意一项的数据存储方法。
又一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述存储阵列所用的计算机软件指令,其包含用于执行上述方面为存储阵列所设计的程序。
另外,上述存储阵列实施例中任一种设计方式所带来的技术效果可参见上述方法实施例中不同设计方式所带来的技术效果,此处不再赘述。
又一方面,本发明实施例提供一种主机服务器,该主机服务器具有实现上述方法实施例中主机服务器行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
又一方面,本发明的实施例提供一种主机服务器,包括:处理器、存储器、总线和通信接口;该存储器用于存储计算机执行指令,该处理器与该存储器通过该总线连接,当该主机服务器运行时,该处理器执行该存储器存储的该计算机执行指令,以使该主机服务器执行如上述任意一项的数据存储方法。
又一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述主机服务器所用的计算机软件指令,其包含用于执行上述方面为主机服务器所设计的程序。
另外,上述主机服务器实施例中任一种设计方式所带来的技术效果可参见上述方法实施例中不同设计方式所带来的技术效果,此处不再赘述。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
相较于现有技术,在存储阵列中逻辑磁盘发生改变后,存储阵列将主机服务器发送的令牌与该存储阵列中的所有当前令牌进行匹配,若在存储阵列中能匹配到与第一令牌相同的当前令牌,就可以由该令牌对应的逻辑磁盘处理I/O请求,若在存储阵列中匹配不到与第一令牌相同的当前令牌,存储阵列则不处理该I/O请求,并向发送I/O处理失败的消息,因此不会出现现有技术中不该处理该I/O请求的逻辑磁盘处理该I/O请求的问题,从而避免了逻辑磁盘的数据被破坏或业务中断的问题,提高了数据存储的可靠性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据存储的示意图;
图2为本发明实施例提供的一种数据存储系统的架构图;
图3为本发明实施例提供的一种计算机设备示意图;
图4为本发明实施例提供的一种数据存储方法的流程图;
图5为本发明实施例提供的根据配置的映射关系生成令牌并创建虚拟磁盘的示意图;
图6为本发明实施例提供的又一种数据存储方法的流程图;
图7为本发明实施例提供的普通场景下的一种数据存储的示意图;
图8为本发明实施例提供的普通场景下的又一种数据存储方法的示意图;
图9为本发明实施例提供的一种双活场景下的数据存储的示意图;
图10为本发明实施例提供的又一种数据存储方法的流程图;
图11为本发明实施例提供的又一种双活场景下的数据存储示意图;
图12为本发明实施例提供的一种存储阵列结构示意图;
图13为本发明实施例提供的又一种存储阵列结构示意图;
图14为本发明实施例提供的一种主机服务器结构示意图;
图15为本发明实施例提供的又一种主机服务器结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
如本申请所使用的术语“组件”、“模块”、“系统”等等旨在指代计算机相关实体,该计算机相关实体可以是硬件、固件、硬件和软件的结合、软件或者运行中的软件。例如,组件可以是,但不限于是:在服务器上运行的处理器、对象、可执行文件、执行中的线程、程序和/或计算机。作为示例,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于执行中的过程和/或线程中,并且组件可以位于一个计算机中以及/或者分布在两个或更多个计算机之间。此外,这些组件(能够从在其上具有各种数据结构的各种计算机可读介质中执行。这些组件可以通过诸如根据具有一个或多个数据分组(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一个组件进行交互和/或以信号的方式通过诸如互联网之类的网络与其它系统进行交互)的信号,以本地和/或远程过程的方式进行通信。
此外,本申请将围绕可包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
需要说明的是,本文中的“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。“多个”是指两个或多于两个。
需要说明的是,本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
需要说明的是,为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
需要说明的是,本发明实施例中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个逻辑磁盘是指两个或两个以上的逻辑磁盘。
需要说明的是,本发明实施例中,“的(英文:of)”,“相应的(英文:corresponding,relevant)”和“对应的(英文:corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
需要说明的是,本发明实施例描述的网络架构以及定位业务场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
如图2所示,为本发明的实施例提供的数据存储系统的架构示意图,该数据存储系统主要包括主机服务器21和存储阵列22。其中,主机服务器21中可以包括M个虚拟磁盘211,存储阵列22中可以包括N个逻辑磁盘221,其中M和N为正整数。
下面将对图2所示的数据存储系统的各组成部分进行具体的介绍:
存储阵列22:由大量的存储模块组成,每个存储模块存放1位二值数据(0,1),通常存储模块排成行×列矩阵形式,存储阵列是把多个磁盘组成一个阵列,当做单一磁盘使用,将数据以分段(英文:striping)的方式存储在不同的磁盘中,存取数据时,阵列中的相关磁盘一起执行,大幅降低数据的存取时间。
逻辑磁盘221:在物理存储设备上将存储空间按照前期规划和功能划分的逻辑存储模块。应理解,逻辑磁盘不等于某个具体的设备,只是逻辑存储模块。每个逻辑磁盘都有一个对应的逻辑模块号(英文:logical unit number,缩写:LUN),用以标识该逻辑磁盘。一个或多个逻辑磁盘可以组成虚拟机文件系统,用以存放虚拟磁盘数据。
需要说明的是,在现有的存储电气协议下,每个逻辑磁盘上都包含有控制信息区域和用户数据区域两个区域。其中,控制信息区域中存储的是逻辑磁盘的属性信息数据,如逻辑磁盘的LUN、名称、所属的存储设备等;用户数据区域存储的是用户指定存储的数据。通常,用户可以访问和管理用户数据区域的数据,而无权管理控制信息区域的数据。相比于用户数据区域的数据,控制信息区域的数据的相对较少。
虚拟磁盘(英文:virtual disk,缩写:Vdisk)211:在内存中虚拟出一个或多个磁盘,可以加快磁盘的数据交换速度,用于提高电脑的运行速度。
具体的,图2中的主机服务器21和存储阵列22均可以通过图3中的计算机设备(或系统)来实现。
图3所示为本发明实施例提供的计算机设备示意图。计算机设备300包括至少一个处理器301,通信总线302,存储器303以及至少一个通信接口304。
处理器301可以是一个通用中央处理器(英文:central processing unit,缩写:CPU),微处理器,特定应用集成电路(英文:application-specific integrated circuit,缩写:ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。
通信总线302可包括一通路,在上述组件之间传送信息。
通信接口304,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(英文:radio access network,缩写:RAN),无线局域网(英文:wireless local area networks,缩写:WLAN)等。
存储器303可以是只读存储器(英文:read-only memory,缩写:ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(英文:random access memory,缩写:RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(英文:electrically erasable programmable read-only memory,缩写:EEPROM)、只读光盘(英文:compact disc read-only memory,缩写:CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器303可以是独立存在,通过总线与处理器相连接。存储器303也可以和处理器集成在一起。
其中,存储器303用于存储执行本发明方案的应用程序代码,并由处理器301来控制执行。处理器301用于执行存储器303中存储的应用程序代码,从而实现数据存储。
在具体实现中,处理器301可以包括一个或多个CPU,例如图3中的CPU0和CPU1。
在具体实现中,计算机设备300可以包括多个处理器301,这些处理器301中的每一个可以是一个单核(英文:single-CPU)处理器,也可以是一个多核(英文:multi-CPU)处理器。这里的处理器301可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,计算机设备300还可以包括输出设备305和输入设备306。输出设备305和处理器301通信,可以以多种方式来显示信息。例如,输出设备305可以是液晶显示器(英文:liquid crystal display,缩写:LCD),发光二级管(英文:light emitting diode,缩写:LED)显示设备,阴极射线管(英文:cathode ray tube,缩写:CRT)显示设备,或投影仪(英文:projector)等。输入设备306和处理器301通信,可以以多种方式接受用户的输入。例如,输入设备306可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的计算机设备300可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,计算机设备300可以是台式机、便携式电脑、网络服务器、掌上电脑(英文:personal digital assistant,缩写:PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图3中类似结构的设备。本发明实施例不限定计算机设备300的类型。
下面将基于图2所示的数据存储系统,对本发明实施例提供的数据存储方法进行介绍,如图4所示,为本发明实施例提供的一种数据存储方法的流程图,包括步骤S401-S409:
S401、主机服务器获取I/O请求,该I/O请求携带第一令牌,用于请求访问存储阵列中的逻辑磁盘。
S402、主机服务器向存储阵列发送该I/O请求。
S403、存储阵列接收主机服务器发送的该I/O请求。
S404、存储阵列将第一令牌与多个当前令牌进行匹配。
其中,该多个当前令牌中的某个当前令牌为当该存储阵列中的一个逻辑磁盘第一次映射给主机服务器中的一个虚拟磁盘时,该存储阵列为该逻辑磁盘生成的令牌。
S405、若多个当前令牌中存在与第一令牌相同的当前令牌,存储阵列通过与第一令牌相同的当前令牌对应的逻辑磁盘处理I/O请求。
S406、存储阵列向主机服务器发送I/O请求处理成功的消息。
S407、主机服务器接收存储阵列发送的I/O请求处理成功的消息。
S408、若多个当前令牌中不存在与第一令牌相同的当前令牌,存储阵列向主机服务器发送I/O请求处理失败的消息。
S409、主机服务器接收存储阵列发送的I/O请求处理失败的消息。
具体的,本发明实施例步骤S404中:
如图5A所示,配置存储阵列的逻辑磁盘1和主机服务器的虚拟磁盘1的映射关系后,主机服务器中并没有为逻辑磁盘1创建虚拟磁盘1,而是如图5B所示,当存储阵列中的逻辑磁盘1第一次映射给主机服务器中的虚拟磁盘1时,根据上述配置的映射关系,主机服务器为逻辑磁盘1创建虚拟磁盘1,并且,存储阵列可以根据主机服务器的标识和逻辑磁盘1的标识生成逻辑磁盘1的令牌1。主机服务器主动读取逻辑磁盘1的令牌1并将令牌1存储在虚拟磁盘1中。
同样的,如图5A所示,配置存储阵列的逻辑磁盘2和主机服务器的虚拟磁盘2的映射关系后,主机服务器中并没有为逻辑磁盘2创建虚拟磁盘2,而是如图5B所示,当存储阵列中的逻辑磁盘2第一次映射给主机服务器中的虚拟磁盘2时,根据上述配置的映射关系,主机服务器为逻辑磁盘2创建虚拟磁盘2,并且,存储阵列可以根据主机服务器的标识和逻辑磁盘2的标识生成逻辑磁盘2的令牌2。主机服务器主动读取逻辑磁盘2的令牌2并将令牌2存储在虚拟磁盘2中。
可选的,该多个当前令牌中的某个当前令牌也可以是当该存储阵列中的一个逻辑磁盘第一次映射给主机服务器中的一个虚拟磁盘时,由该主机服务器根据主机服务器的标识和逻辑磁盘的标识生成后发送给该存储阵列的,本发明对由主机服务器生成令牌还是由存储阵列生成令牌不做具体限定。
可选的,本发明实施例中,在生成令牌时,除了结合主机服务器的标识和逻辑磁盘的标识来生成令牌,还可以结合时间戳、随机码等其他因素来生成令牌,本发明实施例对此不作具体限定。
具体的,该主机服务器的标识可以包含主机服务器的操作系统的类型、主机服务器的启动器名称信息、主机名称等;该逻辑磁盘的标识可以包含逻辑磁盘信息,本发明实施例对此不作具体限定。
其中,上述步骤S401、S402、S407、S409中存储阵列的动作可以由图3所示的计算机设备300中的处理器301调用存储器303中存储的应用程序代码来执行,本发明实施例对此不作任何限制。
其中,上述步骤S403、S404、S405、S406、S408中主机服务器的动作可以由图3所示的计算机设备300中的处理器301调用存储器303中存储的应用程序代码来执行,本发明实施例对此不作任何限制。
进一步的,步骤S401中的I/O请求还可以携带主机服务器中第一虚拟磁盘的标识。进而,如图6所示,本发明实施例的步骤S404具体还可以包括步骤S4041-S4043:
S4041、存储阵列根据第一虚拟磁盘的标识,确定第一虚拟磁盘对应的第一逻辑磁盘。
S4042、存储阵列将第一令牌与第一逻辑磁盘中的当前令牌进行匹配。
S4043、若第一令牌与第一逻辑磁盘中的当前令牌不相同,存储阵列将第一令牌与存储阵列其他逻辑磁盘中的当前令牌进行匹配。
基于本发明实施例提供的数据存储方法,主机服务器向存储阵列发送携带第一令牌的I/O请求,存储阵列将第一令牌与第一逻辑磁盘中的当前令牌进行匹配,若存在与第一令牌相同的当前令牌,存储阵列通过与第一令牌相同的当前令牌对应的逻辑磁盘处理I/O请求。若不存在与第一令牌相同的当前令牌,存储阵列不处理该I/O请求,而是向主机服务器发送I/O请求处理失败的消息。也就是说,基于本发明实施例提供的数据存储方法,在存储阵列中逻辑磁盘发生改变后,存储阵列将主机服务器发送的第一令牌与该存储阵列中的所有当前令牌进行匹配,若在存储阵列中能匹配到与第一令牌相同的当前令牌,就可以由该令牌对应的逻辑磁盘处理I/O请求,若在存储阵列中匹配不到与第一令牌相同的当前令牌,存储阵列则不处理该I/O请求,并向发送I/O处理失败的消息,因此不会出现现有技术中不该处理该I/O请求的逻辑磁盘处理该I/O请求的问题,从而避免了逻辑磁盘的数据被破坏或业务中断的问题,提高了数据存储的可靠性。
其中,上述步骤S401、S402、S407、S409中存储阵列的动作可以由图3所示的计算机设备300中的处理器301调用存储器303中存储的应用程序代码来执行,本发明实施例对此不作任何限制。
其中,上述步骤S403、S4041、S4042、S4043、S405、S406、S408中主机服务器的动作可以由图3所示的计算机设备300中的处理器301调用存储器303中存储的应用程序代码来执行,本发明实施例对此不作任何限制。
下面以一个主机服务器和一个存储阵列交互的普通场景为例,对图3所示的数据存储方法进行详细说明。
示例性的,假设存储阵列中的逻辑磁盘与主机服务器中的虚拟磁盘的初始映射关系如图7A所示,存储阵列中的逻辑磁盘1映射给主机服务器中的虚拟磁盘1,存储阵列中的逻辑磁盘2映射给主机服务器中的虚拟磁盘2。并且,根据上述的令牌生成方法生成的逻辑磁盘1的令牌为令牌1,逻辑磁盘2的令牌为令牌2。
则去除所有映射关系,交换顺序映射逻辑磁盘2和逻辑磁盘1给主机服务器中的虚拟磁盘,最终主机上的使用顺序也相应变化,如图7B所示。然而,由于上述映射发生改变后,主机服务器上无法实时更新映射关系的变化,实际的主机服务器中的虚拟磁盘和存储阵列中逻辑磁盘的对应关系会发生错乱,如图7C所示,存储阵列中的逻辑磁盘2将对应主机服务器中的虚拟磁盘1,存储阵列中的逻辑磁盘1将对应主机服务器中的虚拟磁盘2。也就是说,在主机服务器侧,原本应该发送给逻辑磁盘1的I/O请求被错误发送给逻辑磁盘2,原本应该发送给逻辑磁盘2的I/O请求被错误发送给逻辑磁盘1。
按照现有的技术方案,在主机服务器向存储阵列发送I/O请求后,逻辑磁盘2将处理虚拟磁盘1的I/O请求,逻辑磁盘1将处理虚拟磁盘2的I/O请求,从而将导致数据损坏或业务中断。
而按照图4所示的实施例提供的数据存储方法,由于虚拟磁盘1对应的I/O请求携带的令牌1与逻辑磁盘2中的当前令牌不一致,存储阵列将不在逻辑磁盘2中处理该I/O请求,而是存储阵列在逻辑磁盘1中匹配到令牌1,通过逻辑磁盘1处理该I/O请求,并向主机服务器发送I/O请求处理成功的消息,从而不会造成数据损坏和业务中断。
或者,示例性的,假设存储阵列中的逻辑磁盘与主机服务器中的虚拟磁盘的初始映射关系如图8A所示,存储阵列中的逻辑磁盘1映射给主机服务器中的虚拟磁盘1,存储阵列中的逻辑磁盘2映射给主机服务器中的虚拟磁盘2,并且,根据上述的令牌生成方法生成的逻辑磁盘1生成令牌1,逻辑磁盘2生成令牌2。
则删除逻辑磁盘2和虚拟磁盘2的映射关系,添加逻辑磁盘3和主机服务器中的虚拟磁盘3的映射关系,最终映射关系发生改变,如图8B所示。然而,由于上述映射发生改变后,主机服务器上无法实时更新映射关系的变化,实际的主机服务器中的虚拟磁盘2和存储阵列中逻辑磁盘3的对应关系会发生错乱,如图8C所示,存储阵列中的逻辑磁盘3将对应主机服务器中的虚拟磁盘2。也就是说,在主机服务器侧,原本应该发送给逻辑磁盘2的I/O请求被错误发送给逻辑磁盘3。
按照现有的技术方案,在主机服务器向存储阵列发送I/O请求后,逻辑磁盘3将处理虚拟磁盘2的I/O请求,从而将导致数据损坏或业务中断。
而按照图4所示的实施例提供的数据存储方法,由于虚拟磁盘2对应的I/O请求携带的令牌2与逻辑磁盘3中的当前令牌不一致,存储阵列将不在逻辑磁盘3中处理该I/O请求,而是存储阵列在其他逻辑磁盘中匹配令牌2,还是匹配不到与令牌2相同的当前令牌,存储阵列则不处理该I/O请求,并向主机服务器发送I/O请求处理失败的消息,因此不会出现现有技术中不该处理该I/O请求的逻辑磁盘处理该I/O请求的问题,从而不会造成数据损坏和业务中断。
如图9所示,为本发明的实施例提供的另一种数据存储系统的架构示意图,该数据存储系统主要包括主机服务器91、存储阵列92和存储阵列93。其中,机服务器91中可以包括M个虚拟磁盘911,存储阵列92中可以包括N个逻辑磁盘921,存储阵列93中可以包括K个逻辑磁盘931,其中M、N和K为正整数。
下面将基于图9所示的数据存储系统,对本发明实施例提供的数据存储方法进行介绍,假设存储阵列92为第一存储阵列,存储阵列93为第二存储阵列,则本发明实施例还提供一种数据存储方法,如图10所示,为本发明实施例提供的另一种数据存储方法的流程图,包括步骤S1001-S1017:
S1001、主机服务器获取I/O请求,该I/O请求携带第一令牌,用于请求访问存储阵列中的逻辑磁盘。
S1002、主机服务器向第一存储阵列发送该I/O请求。
S1003、第一存储阵列接收主机服务器发送的该I/O请求。
S1004、第一存储阵列将第一令牌与多个当前令牌进行匹配。
其中,多个当前令牌中的某个当前令牌为当第一存储阵列中的一个逻辑磁盘第一次映射给主机服务器中的一个虚拟磁盘时,第一存储阵列为一个逻辑磁盘生成的当前令牌。
需要说明的是,第一存储阵列中令牌的生成方式可参考上一实施例中步骤404中的描述,本发明实施例在此不再赘述。
S1005、若多个当前令牌中不存在与第一令牌相同的当前令牌,第一存储阵列向主机服务器发送I/O请求处理失败的消息。
S1006、主机服务器接收第一存储阵列发送的I/O请求处理失败的消息。
需要说明的是,若多个当前令牌中存在与第一令牌相同的当前令牌时,第一令牌和当前令牌匹配成功的情况可参考上一实施例中步骤S405–S407的处理方式,本发明实施例在此不再赘述。
S1007、主机服务器向第二存储阵列发送该I/O请求。
S1008、第二存储阵列接收主机服务器发送的该I/O请求。
S1009、第二存储阵列将第一令牌与多个当前令牌进行匹配。
其中,第二存储阵列的信息为第一存储阵列中的信息生成时,主机服务器将第一存储阵列的信息同步至第二存储阵列得到的。
具体的,用户配置第一存储阵列的逻辑磁盘和主机服务器的虚拟磁盘的映射关系,当主机服务器或者第一存储阵列生成令牌后,用户为第二存储阵列创建和第一存储阵列容量相同的逻辑磁盘,并且配置主机服务器、第一存储阵列、第二存储阵列的双活关系,进而,主机服务器将第一存储阵列中逻辑磁盘的信息同步至第二存储阵列的逻辑磁盘中。
其中,第一存储阵列中同步至第二存储阵列中的信息包括:第一存储阵列中逻辑磁盘的信息和逻辑磁盘对应令牌的信息。
具体的,主机服务器可以在第一存储阵列的每一个逻辑磁盘映射到主机服务器的虚拟磁盘时生成令牌后将第一存储阵列的信息同步至第二存储阵列,也可以在第一存储阵列的一组逻辑磁盘映射到主机服务器的一组虚拟磁盘时生成令牌后将第一存储阵列的信息同步至第二存储阵列,本发明实施例对此不作具体限定。
S1010、若多个当前令牌中存在与第一令牌相同的当前令牌,第二存储阵列通过与第一令牌相同的当前令牌对应的逻辑磁盘处理I/O请求。
S1011、第二存储阵列向主机服务器发送I/O请求处理成功的消息。
S1012、主机服务器接收第二存储阵列发送的I/O请求处理成功的消息。
S1013、若多个当前令牌中不存在与第一令牌相同的当前令牌,第二存储阵列向主机服务器发送I/O请求处理失败的消息。
S1014、主机服务器接收第二存储阵列发送的I/O请求处理失败的消息。
其中,步骤S1004中的I/O请求和步骤S1009中的I/O请求还可以携带主机服务器中第一虚拟磁盘的标识,由第一存储阵列或第二存储阵列根据上一实施例的步骤S4041-S4043的处理方式进行处理,本发明实施例在此不再赘述。
基于本发明实施例提供的数据存储方法,主机服务器向第一存储阵列发送携带第一令牌的I/O请求,第一存储阵列将第一令牌与第一逻辑磁盘中的当前令牌进行匹配,若不存在与第一令牌相同的当前令牌,存储阵列不处理该I/O请求,第一存储阵列向主机服务器发送处理I/O请求失败的消息。主机服务器可以向第二存储阵列发送携带第一令牌的I/O请求,若存在与第一令牌相同的当前令牌,第一存储阵列通过与第一令牌相同的当前令牌对应的逻辑磁盘处理I/O请求。也就是说,基于本发明实施例提供的数据存储方法,在第一存储阵列中逻辑磁盘发生变化后,且第一存储阵列中的匹配不到与第一令牌相同的当前令牌,第一存储阵列不处理该I/O请求,只要第二存储阵列中的存在与第一令牌相同的当前令牌,就可以匹配到与第一令牌相同的令牌,从而可以由该令牌对应的逻辑磁盘处理I/O请求,因此不会出现现有技术中不该处理该I/O请求的逻辑磁盘处理该I/O请求的问题,避免了逻辑磁盘的数据被破坏或业务中断的问题,提高了数据存储的可靠性。
其中,上述步骤S1003、S1004、S1005、S1008、S1009、S1010、S1011、S1013中存储阵列的动作可以由图3所示的计算机设备300中的处理器301调用存储器303中存储的应用程序代码来执行,本发明实施例对此不作任何限制。
其中,上述步骤S1001、S1002、S1006、S1007、S1012、S1014中主机服务器的动作可以由图3所示的计算机设备300中的处理器301调用存储器303中存储的应用程序代码来执行,本发明实施例对此不作任何限制。
下面以一个主机服务器和两个存储阵列交互的双活场景为例,对图10所示的数据存储方法进行详细说明。
示例性的,假设存储阵列1为第一存储阵列,存储阵列2为第二存储阵列,存储阵列1和存储阵列2中的虚拟磁盘与主机服务器中的逻辑磁盘的初始映射关系如图11A所示,包括:存储阵列1和存储阵列2中的逻辑磁盘1均映射给主机服务器中的虚拟磁盘1,存储阵列1和存储阵列2中的逻辑磁盘2均映射给主机服务器中的虚拟磁盘2,并且,在存储阵列1中,根据上述的令牌生成方法生成的逻辑磁盘1的令牌为令牌1,逻辑磁盘2的令牌为令牌2。其中,存储阵列2中的逻辑磁盘的信息和令牌的信息为主机服务器将存储阵列1的逻辑磁盘1的信息及令牌1和逻辑磁盘2的信息及令牌2同步至存储阵列2得到的。
则删除存储阵列1中逻辑磁盘2和虚拟磁盘2的映射关系,在存储阵列1添加逻辑磁盘3和主机服务器中的虚拟磁盘3的映射关系,并将存储阵列1中新添加的逻辑磁盘3信息同步至存储阵列2,最终映射关系发生改变,如图11B所示。然而,由于上述映射关系发生改变后,主机服务器上无法实时更新映射关系的变化,实际的主机服务器中的虚拟磁盘2和存储阵列1的逻辑磁盘3的对应关系会发生错乱,如图11C所示,存储阵列1的逻辑磁盘3将对应主机服务器中的虚拟磁盘2。也就是说,在主机服务器侧,原本应该发送给存储阵列1的逻辑磁盘2的I/O请求被错误发送给存储阵列1的逻辑磁盘3。
按照现有的技术方案,在主机服务器向第一存储阵列发送I/O请求后,存储阵列1的逻辑磁盘3将处理虚拟磁盘2的I/O请求,从而将导致数据损坏或业务中断。
而按照图10所示的实施例提供的数据存储方法,由于虚拟磁盘2对应的I/O请求携带的令牌2与存储阵列1逻辑磁盘3中的当前令牌不一致,存储阵列1将不在逻辑磁盘3中处理该I/O请求,而是存储阵列1在其他逻辑磁盘中匹配令牌2,还是匹配不到与令牌2相同的当前令牌,存储阵列1则不处理该I/O请求,并向主机服务器发送I/O请求处理失败的消息,然后主机服务器向存储阵列2的逻辑磁盘2发送I/O请求,存储阵列2中的逻辑磁盘2匹配到令牌2,就可以由令牌2对应的逻辑磁盘2处理I/O请求,因此不会出现现有技术中不该处理该I/O请求的逻辑磁盘处理该I/O请求的问题,从而避免了逻辑磁盘的数据被破坏或业务中断的问题,提高了数据存储的可靠性。
或者,示例性的,删除存储阵列1中所有的映射关系,交换顺序映射逻辑磁盘2和逻辑磁盘1给主机服务器中的虚拟磁盘的场景下的数据存储方式可参考上述普通场景下的数据存储方式,本发明实施例在此不再赘述。
上述主要从存储阵列和主机服务器交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,上述的存储阵列和主机服务器为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各实例的模块及方法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对存储阵列和主机服务器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图12示出了上述实施例中所涉及的存储阵列的一种可能的结构示意图,该存储阵列1200包括:接收模块1201、匹配模块1202、生成模块1203、处理模块1204和发送模块1205。接收模块1201用于支持存储阵列1200执行图4中的过程S403,图6中的过程S403,图10中的过程S1003,S1008;匹配模块1202用于支持存储阵列1200执行图4中的过程S404,图6中的过程S4041-S4043,图10中的过程S1004、S1009;生成模块1203用于生成当前令牌;处理模块1204用于支持存储阵列1200执行图4中的过程S405,图6中的过程S405,图10中的过程S1010;发送模块1205用于支持存储阵列1200执行图4中的过程S406、S408,图6中的过程S406、S408,图10中的过程S1005,S1011,S1013;其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成单元的情况下,图13示出了上述实施例中所涉及的存储阵列的一种可能的结构示意图,该存储阵列1300包括:通信模块1301和处理模块1302。通信模块1301可用于支持存储阵列1300执行图4中的过程S403、S406、S408,图6中的过程S403、S406、S408,图10中的过程S1003,S1005,S1008,S1011,S1013;处理模块1302可用于支持存储阵列1300执行图4中的过程S404、S405,图6中的过程S4041-S4043、S405,图10中的过程S1004、S1009、S1010。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用对应各个功能划分各个功能模块的情况下,图14示出了上述实施例中所涉及的主机服务器的一种可能的结构示意图,该主机服务器1400包括:获取模块1401、发送模块1402、接收模块1403,可选的还包括同步模块1404。获取模块1401用于支持主机服务器1400执行图4中的过程S401,图6中的过程S401,图10中的过程S1001;发送模块1402用于支持主机服务器1400执行图4中的过程S402,图6中的过程S402,图10中的过程S1002、S1007;接收模块1403用于支持主机服务器1400执行图4中的过程S407、S409,图6中的过程S407、S409,图10中的过程S1006、S1012、S1014;同步模块1404用于支持主机服务器将第一存储阵列的信息同步至所述第二存储阵列。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
以采用集成单元的情况下,图15示出了上述实施例中所涉及的主机服务器的一种可能的结构示意图,该主机服务器功能实体1500包括:通信模块1501和处理模块1502。通信模块1501用于支持主机服务器1500执行图4中的过程S402、S407、S409,图6中的过程S402、S407、S409,图10中的过程S1002、S1007、S1006、S1012、S1014;处理模块1502用于支持主机服务器1500执行图4中的过程S401,图6中的过程S401,图10中的过程S1001。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本发明实施例还提供了一种计算机存储介质,用于储存为上述主机服务器或存储阵列所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的程序,可以实现数据存储。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。
本发明是参照本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (12)

1.一种数据存储方法,其特征在于,所述方法包括:
存储阵列接收主机服务器发送的输入/输出I/O请求,所述I/O请求携带第一令牌,用于请求访问所述存储阵列中的逻辑磁盘;
所述存储阵列将所述第一令牌与多个当前令牌进行匹配,其中,所述多个当前令牌中的某个当前令牌为当所述存储阵列中的一个逻辑磁盘第一次映射给所述主机服务器中的一个虚拟磁盘时,所述存储阵列为所述一个逻辑磁盘生成的当前令牌;
若所述多个当前令牌中存在与所述第一令牌相同的当前令牌,所述存储阵列通过与所述第一令牌相同的当前令牌对应的逻辑磁盘处理所述I/O请求,并向所述主机服务器发送所述I/O请求处理成功的消息;
若所述多个当前令牌中不存在与所述第一令牌相同的当前令牌,所述存储阵列向所述主机服务器发送所述I/O请求处理失败的消息。
2.根据权利要求1所述的方法,其特征在于,所述I/O请求还携带所述主机服务器中第一虚拟磁盘的标识;
所述存储阵列将所述第一令牌与多个当前令牌进行匹配,包括:
所述存储阵列根据所述第一虚拟磁盘的标识,确定所述第一虚拟磁盘对应的第一逻辑磁盘;
所述存储阵列将所述第一令牌与所述第一逻辑磁盘中的当前令牌进行匹配;
若所述第一令牌与所述第一逻辑磁盘中的当前令牌不相同,所述存储阵列将所述第一令牌与所述存储阵列其它逻辑磁盘中的当前令牌进行匹配。
3.根据权利要求1或2所述的方法,其特征在于,所述存储阵列为所述一个逻辑磁盘生成当前令牌,包括:
所述存储阵列根据所述主机服务器的标识和所述逻辑磁盘的标识为所述一个逻辑磁盘生成当前令牌。
4.一种数据存储方法,其特征在于,所述方法包括:
主机服务器获取输入/输出I/O请求,所述I/O请求携带第一令牌,用于请求访问存储阵列中的逻辑磁盘;
所述主机服务器向第一存储阵列发送所述I/O请求,以使得所述第一存储阵列将所述第一令牌与多个当前令牌进行匹配后向所述第一存储阵列发送所述I/O请求处理成功或失败的消息,其中,所述多个当前令牌中的某个当前令牌为当所述第一存储阵列中的一个逻辑磁盘第一次映射给所述主机服务器中的一个虚拟磁盘时,所述第一存储阵列为所述一个逻辑磁盘生成的当前令牌;
所述主机服务器接收所述第一存储阵列发送的所述I/O请求处理成功或失败的消息。
5.根据权利要求4所述的方法,其特征在于,在所述主机服务器接收所述第一存储阵列发送的所述I/O请求处理失败的消息之后,还包括:
所述主机服务器向第二存储阵列发送所述I/O请求,以使得所述第二存储阵列将所述第一令牌与多个当前令牌进行匹配后向所述第二存储阵列发送所述I/O请求处理成功或失败的消息,其中,所述第二存储阵列的信息为所述第一存储阵列中的信息生成时,所述主机服务器将所述第一存储阵列的信息同步至所述第二存储阵列得到的;
所述主机服务器接收所述第二存储阵列发送的所述I/O请求处理成功或失败的消息。
6.一种存储阵列,其特征在于,所述存储阵列包括:接收模块、匹配模块、生成模块、处理模块和发送模块;
所述接收模块,用于接收主机服务器发送的输入/输出I/O请求,所述I/O请求携带第一令牌,用于请求访问所述存储阵列中的逻辑磁盘;
所述匹配模块,用于将所述第一令牌与多个当前令牌进行匹配,其中,所述生成模块,用于当所述存储阵列中的一个逻辑磁盘第一次映射给所述主机服务器中的一个虚拟磁盘时,为所述一个逻辑磁盘生成一个当前令牌;
所述处理模块,用于若所述多个当前令牌中存在与所述第一令牌相同的当前令牌,通过与所述第一令牌相同的当前令牌对应的逻辑磁盘处理所述I/O请求;以及,所述发送模块,用于向所述主机服务器发送所述I/O请求处理成功的消息;
所述发送模块,还用于若所述多个当前令牌中不存在与所述第一令牌相同的当前令牌,向所述主机服务器发送所述I/O请求处理失败的消息。
7.根据权利要求6所述的存储阵列,其特征在于,所述I/O请求还携带所述主机服务器中第一虚拟磁盘的标识;
所述匹配模块具体用于:
根据所述第一虚拟磁盘的标识,确定所述第一虚拟磁盘对应的第一逻辑磁盘;
将所述第一令牌与所述第一逻辑磁盘中的当前令牌进行匹配;
若所述第一令牌与所述第一逻辑磁盘中的当前令牌不相同,将所述第一令牌与所述存储阵列其它逻辑磁盘中的当前令牌进行匹配。
8.根据权利要求6或7所述的存储阵列,其特征在于,所述生成模块具体用于:
根据所述主机服务器的标识和所述逻辑磁盘的标识为所述一个逻辑磁盘生成当前令牌。
9.一种主机服务器,其特征在于,所述主机服务器包括:获取模块、发送模块、接收模块;
所述获取模块,用于获取输入/输出I/O请求,所述I/O请求携带第一令牌,用于请求访问存储阵列中的逻辑磁盘;
所述发送模块,用于向第一存储阵列发送所述I/O请求,以使得所述第一存储阵列将所述第一令牌与多个当前令牌进行匹配后向所述第一存储阵列发送所述I/O请求处理成功或失败的消息,其中,所述多个当前令牌中的某个当前令牌为当所述第一存储阵列中的一个逻辑磁盘第一次映射给所述主机服务器中的一个虚拟磁盘时,所述第一存储阵列为所述一个逻辑磁盘生成的当前令牌;
所述接收模块,用于接收所述第一存储阵列发送的所述I/O请求处理成功或失败的消息。
10.根据权利要求9所述的主机服务器,其特征在于,所述主机服务器还包括同步模块;
所述同步模块,用于在所述第一存储阵列中的信息生成时,将所述第一存储阵列的信息同步至第二存储阵列;
所述发送模块,还用于在所述接收模块接收所述第一存储阵列发送的所述I/O请求处理失败的消息之后,向第二存储阵列发送所述I/O请求,以使得所述第二存储阵列将所述第一令牌与多个当前令牌进行匹配后向所述第二存储阵列发送所述I/O请求处理成功或失败的消息;
所述接收模块,还用于接收所述第二存储阵列发送的所述I/O请求处理成功或失败的消息。
11.一种存储阵列,其特征在于,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储阵列运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述存储阵列执行如权利要求1-3中任意一项所述的数据存储方法。
12.一种主机服务器,其特征在于,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述主机服务器运行时,所述处理器执行所述主机服务器存储的所述计算机执行指令,以使所述主机服务器执行如权利要求4或5中任意一项所述的数据存储方法。
CN201610943256.5A 2016-10-31 2016-10-31 数据存储方法、存储阵列及主机服务器 Active CN106557280B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610943256.5A CN106557280B (zh) 2016-10-31 2016-10-31 数据存储方法、存储阵列及主机服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610943256.5A CN106557280B (zh) 2016-10-31 2016-10-31 数据存储方法、存储阵列及主机服务器

Publications (2)

Publication Number Publication Date
CN106557280A CN106557280A (zh) 2017-04-05
CN106557280B true CN106557280B (zh) 2019-10-15

Family

ID=58443529

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610943256.5A Active CN106557280B (zh) 2016-10-31 2016-10-31 数据存储方法、存储阵列及主机服务器

Country Status (1)

Country Link
CN (1) CN106557280B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019080150A1 (zh) * 2017-10-25 2019-05-02 华为技术有限公司 一种双活存储系统和地址分配方法
CN108762677A (zh) * 2018-05-30 2018-11-06 郑州云海信息技术有限公司 一种存储设备的智能扫描方法及系统
CN112118194B (zh) * 2019-06-04 2021-12-10 华为技术有限公司 数据交换设备、服务器和通信系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101714064A (zh) * 2009-12-29 2010-05-26 成都市华为赛门铁克科技有限公司 数据存取方法及服务器
CN102576329A (zh) * 2009-04-23 2012-07-11 Netapp股份有限公司 存储区域网络中虚拟存储管理的主动-主动支持
CN103186481A (zh) * 2011-12-28 2013-07-03 富士通株式会社 信息处理设备及防止未授权访问的方法
CN103814352A (zh) * 2012-12-31 2014-05-21 华为技术有限公司 一种虚拟设备重建方法与装置
CN104636076A (zh) * 2013-11-15 2015-05-20 中国电信股份有限公司 一种用于云存储的分布式块设备驱动方法和系统
CN104811473A (zh) * 2015-03-18 2015-07-29 华为技术有限公司 一种创建虚拟非易失性存储介质的方法、系统及管理系统
CN104850501A (zh) * 2015-04-29 2015-08-19 中国人民解放军国防科学技术大学 一种ddr存储器访存地址映射方法及访存地址映射单元

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102576329A (zh) * 2009-04-23 2012-07-11 Netapp股份有限公司 存储区域网络中虚拟存储管理的主动-主动支持
CN101714064A (zh) * 2009-12-29 2010-05-26 成都市华为赛门铁克科技有限公司 数据存取方法及服务器
CN103186481A (zh) * 2011-12-28 2013-07-03 富士通株式会社 信息处理设备及防止未授权访问的方法
CN103814352A (zh) * 2012-12-31 2014-05-21 华为技术有限公司 一种虚拟设备重建方法与装置
CN104636076A (zh) * 2013-11-15 2015-05-20 中国电信股份有限公司 一种用于云存储的分布式块设备驱动方法和系统
CN104811473A (zh) * 2015-03-18 2015-07-29 华为技术有限公司 一种创建虚拟非易失性存储介质的方法、系统及管理系统
CN104850501A (zh) * 2015-04-29 2015-08-19 中国人民解放军国防科学技术大学 一种ddr存储器访存地址映射方法及访存地址映射单元

Also Published As

Publication number Publication date
CN106557280A (zh) 2017-04-05

Similar Documents

Publication Publication Date Title
US20230291786A1 (en) Client-directed placement of remotely-configured service instances
US9667750B2 (en) Client-initiated leader election in distributed client-server systems
CN106375101B (zh) 一种生命周期管理方法及装置
CN105074702B (zh) 提供单租户和多租户环境的数据库系统
US10044837B2 (en) Generation and distribution of named, definable, serialized tokens
CN106557280B (zh) 数据存储方法、存储阵列及主机服务器
CN109697120A (zh) 用于应用迁移的方法、电子设备
CN109885786A (zh) 数据缓存处理方法、装置、电子设备及可读存储介质
CN110458468A (zh) 一种任务处理方法、装置、电子设备及存储介质
CN103856547A (zh) 多虚拟机的映射方法、系统及客户端设备
CN109302494A (zh) 一种网络存储系统的配置方法、装置、设备及介质
CN115129423A (zh) 资源管理方法、装置、设备及存储介质
CN111324667A (zh) 一种数据同步方法、装置、电子设备及存储介质
WO2022184495A1 (en) Serverless runtime container allocation
CN102833295B (zh) 分布式缓存系统中的数据操作方法和装置
CN113010498A (zh) 一种数据同步方法、装置、计算机设备及存储介质
CN113254424A (zh) 数据服务迁移方法、装置及设备
CN106227470B (zh) 一种存储资源管理方法及装置
CN112363980A (zh) 一种分布式系统的数据处理方法及装置
US11797697B1 (en) Sharing with multiple people access to one or more resources each conveyed in a single NFT
CN114840562B (zh) 业务数据的分布式缓存方法、装置、电子设备及存储介质
CN110083657A (zh) 数据互通方法、装置、终端及存储介质
CN107688441A (zh) 一种存储虚拟化的实现方法及装置
CN111523927A (zh) 资源的发送方法、装置、设备及存储介质
CN111552715A (zh) 用户查询方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant