CN111124265B - 数据访问方法、设备和计算机程序产品 - Google Patents
数据访问方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN111124265B CN111124265B CN201811289378.2A CN201811289378A CN111124265B CN 111124265 B CN111124265 B CN 111124265B CN 201811289378 A CN201811289378 A CN 201811289378A CN 111124265 B CN111124265 B CN 111124265B
- Authority
- CN
- China
- Prior art keywords
- data
- copy
- data block
- write operation
- logical unit
- 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
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000004590 computer program Methods 0.000 title abstract description 8
- 230000004044 response Effects 0.000 claims abstract description 34
- 238000013507 mapping Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 13
- 230000003111 delayed effect Effects 0.000 claims description 4
- 230000010076 replication Effects 0.000 description 41
- 230000005012 migration Effects 0.000 description 14
- 238000013508 migration Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 238000003491 array Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000013500 data storage Methods 0.000 description 10
- 239000003795 chemical substances by application Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011895 specific detection Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Abstract
本公开的实施例涉及一种数据访问方法、设备和计算机程序产品。该数据访问方法,包括:响应于接收到针对第一逻辑单元(LU)中的第一数据块的写操作请求,确定是否存在从第一LU向第二LU的正在执行的复制操作;响应于确定存在正在执行的复制操作,检测第一数据块中的数据的复制状态;以及基于复制状态,确定写操作请求在复制操作执行期间的执行策略。
Description
技术领域
本公开的实施例总体上涉及存储系统,并且更具体地涉及在存储系统中使用的数据访问方法、设备和计算机程序产。
背景技术
在数据存储阵列(有时也称为“数据存储系统”)之间移动卷是存储行业中的一个使用实例。例如,在进行硬件升级或容量平衡时,通常需要在存储系统之间移动卷。几乎所有存储系统都支持向外部数据存储阵列“推入”卷,或从外部数据存储阵列“拉出”卷。然而,目前大多数存储系统仅支持数据冷迁移,这意味着在数据迁移过程中,从主机到源阵列的所有读/写操作(也称输入/输出操作,简称I/O操作)都必须停止。
某些存储系统虽然支持无缝的数据移动,但前提是源阵列和目标阵列都需要意识到这一迁移。因此这些技术方案不能用于在不同供应商的阵列之间移动卷。此外,由于这些技术方案通常使用“拉”模式,源阵列中的全部数据(包括“洞”)都会被转发给目标阵列。因此,这种操作是低效且浪费阵列之间带宽的。另外,在某些存储系统中,如果来自主机的读I/O落入尚未复制的范围内,也必须将读操作转发到源卷。这同样会导致低效率和带宽的浪费。
发明内容
该公开提供了一种在将数据从源存储阵列迁移到(或复制到)目标数据存储系统的过程中,不中断来自主机层面I/O操作的解决方案。此外,在上述数据迁移操作完成之后,还能够将用于服务随后的主机层面I/O操作的访问路径从与源阵列连接的路径“无缝地”切换到与目标阵列连接的路径上,以使得目标阵列自动地对接下来的I/O请求做出响应。
本公开的第一方面提供了一种数据访问方法,包括:响应于接收到针对第一逻辑单元(LU)中的第一数据块的写操作请求,确定是否存在从第一LU向第二LU的正在执行的复制操作;响应于确定存在正在执行的复制操作,检测第一数据块中的数据的复制状态;以及基于复制状态,确定写操作请求在复制操作执行期间的执行策略。通过这样的方式,使得在将数据从源存储阵列迁移到(或复制到)目标数据存储系统的过程中,不中断来自主机层面I/O操作。
在一些实施例中,确定写操作请求的执行策略包括:响应于复制状态指示第一数据块中的数据未被复制,执行针对第一数据块的写操作。因为该数据块尚未被复制,因此可以直接向源阵列执行写操作,而并不影响该数据块向目标阵列的复制。这是因为,随后,其数据内容通过该写操作而被更新的该第一数据块才会被复制到目标阵列中。
在一些实施例中,确定写操作请求的执行策略包括:响应于复制状态指示第一数据块中的数据正在复制,延迟针对第一数据块的写操作。在一些实施例中,方法还包括:响应于检测到复制状态变为指示第一数据块中的数据已被复制,执行针对第一数据块的写操作。例如,可以先将该写操作加入到一个队列中,并且在目标数据段被复制到目标卷之后,再次发送被加入到队列中的上述写操作。通过这种方式,在数据的复制过程被确保的同时,无需在主机层面中断I/O操作。
在一些实施例中,确定写操作请求的执行策略包括:响应于复制状态指示第一数据块中的数据已被复制,执行针对第一数据块中的数据的写操作;以及执行针对第二LU中的、与第一数据块相对应的第二数据块中的数据的写操作,其中第二数据块中的数据是第一数据块中的数据的副本。
这确保了在从第一LU到第二LU的数据迁移全部完成之前,在第一LU中的第一数据块中的数据与第二LU中的相对应的第二数据块中的数据总是保持一致。
在一些实施例中,方法还包括:在复制操作的开始之前,创建从主机到第一组磁盘的第一组访问路径;创建从第一LU到第二LU的映射关系;以及创建从主机到第二组磁盘的第二组访问路径。在一些实施例中,方法还包括:在复制操作的结束之后,响应于接收到针对第一数据块的写操作请求,将用于数据访问的路径从第一组访问路径中的一条访问路径切换到第二组访问路径中的一条访问路径,以使得第二LU对写操作请求做出响应。
通过这种方式,使得在将来的整个复制操作的结束之后,只需执行路径翻转,就可以将用于服务随后的主机层面I/O操作的第一组访问路径从与源阵列连接的路径“无缝地”切换到与目标阵列连接的第二组路径上。
在一些实施例中,方法还包括:执行复制操作,其中执行复制操作包括:响应于检测到第一数据块中的数据为零,跳过针对第一数据块中的数据的复制操作。
与传统技术方案中通常将源阵列中的全部数据(包括“洞”)都转发给目标阵列相比,这种在数据迁移过程中对“洞”的跳过将节省源阵列与目标阵列之间的带宽。
本公开的第二方面提供了一种数据访问设备,包括:处理单元;以及存储器,耦合至处理单元并且存储有指令,指令在由处理单元执行时执行以下动作:响应于接收到针对第一逻辑单元(LU)中的第一数据块的写操作请求,确定是否存在从第一LU向第二LU的正在执行的复制操作;响应于确定存在正在执行的复制操作,检测第一数据块中的数据的复制状态;以及基于复制状态,确定写操作请求在复制操作执行期间的执行策略。
本公开的第三方面提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据本公开第一方面的方法的步骤。
附图说明
在此提供本文所描述的附图,用以进一步解释本公开,并构成本公开的一部分。本公开的示例性实施例及其描述用于解释本公开,而并非不恰当地限制本公开。
图1示出了一种具有双存储处理器的存储阵列的典型配置;
图2示出了一种设备映射的示例;
图3显示了一种VMware中固有的多路径软件的I/O处理流程;
图4示出了一种用于实施根据本公开的实施例的技术方案的存储系统400的示意性框图;
图5是描述了根据本公开实施例的存储系统中的各个组件之间的交互的示意性框图;
图6示出了根据本公开实施例的数据访问方法的流程图;
图7描述了根据本公开的实施例的创建复制会话过程的时序图;
图8示出了根据本公开的实施例的启动复制会话过程的时序图;
图9示出了根据本公开实施例的在复制操作进行期间对I/O操作的处理;
图10示出了根据本公开的实施例的复制会话执行的时序图;
图11示出了根据本公开实施例的数据复制完成以及路径翻转的时序图;以及
图12示出了用来实施本公开的实施例的设备的示意性框图。
在附图中,相同或相似的附图标记用于表示相同或相似的元件。
具体实施方式
如上所述,目前大多数存储系统仅支持数据冷迁移,这意味着在数据迁移过程中必须停止从主机到源逻辑单元(LU)的所有读/写操作(也称输入/输出操作,简称I/O操作)。
为此,本公开的各种实施例提供了这样一种解决方案,即,在将数据从源存储阵列迁移到(或拷贝到)目标数据存储阵列的过程中,使得来自主机I/O操作不中断。此外,在上述数据迁移操作完成之后,还能够将用于服务随后的主机I/O操作的访问路径从与源数据存储阵列(后面简称为“源阵列”)连接的路径“无缝地”切换到与目标数据存储阵列(后面简称为“目标阵列”)连接的路径上。
图1示出了一种具有双存储处理器的存储阵列120的典型配置100。如图1所示,在现代数据中心中,通常存在从主机110到存储阵列120的多条路径,以用于实现高可用性和动态负载平衡。例如,在图1所示的示例中,示出了从主机110到数据存储阵列120的四条路径,这四条路径分别从主机的两个端口(即,端口A、端口B)经由两个交换机(即,交换机A、交换机B)——例如,光纤交换机——而相应地连接到存储阵列的四个端口。
接下来参考图2,主机上的操作系统将每条路径视为一个物理设备(即,磁盘)。在图1所示的配置中,从操作系统的角度来看,主机将会把这四条路径认为是四个物理设备220-1、220-2、220-3和220-4。如图2所示,上述四个物理设备在Linux操作系统下分别被标识为“/dev/sdc”、“/dev/sdd”、“/dev/sde”、和“/dev/sdf”。
此外,主机中通常还包括有一个多路径软件(MPIO)115作为操作系统的一个组件。该多路径软件可以将这四个物理设备映射成一个多路径映射设备210(其在图2中被标识为“/dev/mapper/dm-1”),并进而将该单个多路径映射设备210发布到主机应用程序112。通过这样的配置,主机110可以通过多条路径来访问单个逻辑单元(LU)。需要指出,在本文中,“逻辑单元“也可以被称为“卷”,即,两个术语可以互换。
MPIO 115可以检测系统上所有可用的物理设备,然后使用小型计算机接口(SCSI)查询命令来从存储阵列120中获取设备的信息。多路径软件可以根据标识符(例如,WWN)来识别两个(或更多)设备是否是同一设备。
继续参考图2,当从主机应用程序112接收读写操作请求(也称为I/O请求)后,MPIO115从可用多条路径中选择一条路径来将I/O请求发送到存储阵列120,以完成针对磁盘设备的读写请求。
此外,MPIO 115还支持如下模式,即,当所选的条路径上I/O失败(也即,检测到连接到外部存储的路径不能用)时,MPIO 115会返回某一检测代码。通常,MIPO要么直接将一条“I/O失败信息”返回给主机应用程序112,要么会自动选择另一条路径以将I/O请求再次向存储阵列120进行发送。
图3显示了VMware中固有多路径软件(NMP)的I/O处理流程。需要指出,大多数MPIO都可以支持特定于数据存储阵列的插件,以获得更大的灵活性。例如,VMware的NMP可以支持额外的存储阵列类型插件(SATP)和路径选择插件(PSP)。与此类似,Windows中的固有MPIO可以支持额外的特定于设备的模块(DSM)。
例如,当SATP知道如何处理该检测代码时,将返回另一路径来将I/O请求发送到存储阵列120(子步骤9)。当SATP不知道如何处理该检测代码时,将向主机应用程序返回这一故障(子步骤11)。
发明人注意到,由于主机中的MPIO能够支持插件,并且更新其插件不会中断主机的I/O操作,因此本专利的解决方案可以利用一种“定制化的”多路径软件插件(例如在Linux下,包括SATP和PSP)连同与阵列一起工作的主机代理114,将将卷无缝地推送到外部阵列(即,目标阵列)。此外,由于多路径软件保存有源卷的标识与目标卷标识之间的映射。因此,在目标阵列上不存在源卷标识的欺骗。另外,通过利用多路径软件中的定制插件,该解决方案也适用于使用固有多路径软件的用户。
图4示出了一种用于实施根据本公开的实施例的技术方案的存储系统400的系统架构。下面列出了主要组件的功能。
-定制化的MIPO插件113:其负责在LU移动期间处理来自主机应用程序112的I/O。该MIPO插件113可以理解来自阵列的特定于供应商的检测代码,以及来自主机代理114的特定的对I/O进行管理的函数(IOCTL),然后在主机110上执行相应的操作。
-主机代理114:其用于接收来自复制控制器410的请求,并将IOCTL发送到上述定制化的插件113,以便让插件113执行一些操作。例如,让插件113执行目标卷WWN与源卷WWN之间的映射。
-SCSI传输协议驱动420:该驱动是数据块的前端驱动程序,它处理主机和阵列之间的SCSI传输协议通信,例如,光纤通道(FC)驱动程序或Internet小型计算机系统接口(iSCSI)驱动程序。
-SCSI语义驱动程序430:其用于解析来自主机的常规SCSI命令以及对主机做出响应。
-复制引擎440:其是一个分层驱动程序,并且只有在LU活跃地涉及复制会话时才会被插入到用于特定LU的I/O堆栈中。复制会话完成后,将从I/O堆栈中删除关联的驱动程序。此外,复制引擎440负责从源卷读取数据并将数据推送到目标卷。如果数据将被写入的范围正在向目标卷复制时,复制引擎440还会将上述驱动程序的写I/O排入队列,或者如果数据将被写入的范围已被复制到目标卷时,则还将写I/O转发给目标卷。
-映射的LUN驱动程序450:其用于执行映射的LUN(公共LUN)与FLARE LUN(内部LUN)之间的映射(这里,FLARE LUN指的是传统的LUN,其不支持虚拟资源分配特性)。此外,映射的LUN驱动程序450还提供了一个接口,以使得复制引擎440可以使用该接口在一个特殊的“读取下一个”请求中查找下一个分配数据的区域。此功能可以让复制引擎440跳过对源卷中未分配数据的区域(或“洞”)执行复制。另外,如果读取区域全为零,则返回读I/O的特定状态。这也有助于避免对不必要的数据进行复制。
-复制控制器410:其是一个控制路径组件,用于创建复制会话,并负责监控整个复制过程。
-第三方阵列上的组件:其应提供存储系统的标准接口。例如,第三方阵列上的管理系统460应提供可用于创建卷和获取卷信息的接口。第三方阵列上的I/O处理系统470应当可以接受标准SCSI命令。
图5描述了根据本公开实施例的存储系统的各个组件之间的交互。大多数组件的功能在图4中已经进行了描述。以下对未在图4中示出的其他组件进行说明。组件之间交互的细节将在下面的部分中描述。
-区域管理器数据库(ZMD)520用于维护命名的iSCSI路径,以用于iSCSI目标LU发现。用户将目标第三方存储系统的IP、端口、和认证信息输入到复制控制器410中,然后复制控制器410调用ZMD 520接口来存储信息。前端磁盘(FEDisk)510将从ZMD 520获取这些信息并登录到外部存储系统530。
-FEDisk 510:用于建立和验证与外部存储系统530的FC和iSCSI连接。对于iSCSI来说,FEDisk 510使用ZMD 520获取用于建立与外部存储系统530的iSCSI连接的iSCSI目标信息。对于FC来说,FEDisk 510与微端口(Miniport)通信以发现存储区域网络(SAN)设备。FEDisk 510将内部I/O请求格式转换为SCSI协议格式,并将I/O请求传递给前端驱动程序以发送到外部存储系统530。
图6示出了根据本公开实施例的数据访问方法600的流程图。方法600可以在如上面所描述的图4和图5所示的系统400和500中执行。
如图6所示,在610,响应于接收到针对第一LU(也即,源LU)中的第一数据块的写操作请求,确定是否存在从第一LU向第二LU(也即,目标LU)的正在执行的复制操作。例如,在某些实施例中,用户可以通过主机应用程序将写操作请求发送给第一LU。在第一LU的前端驱动程序接收到该写操作请求后,该写操作请求被从上至下“逐层地”转发给下一层的驱动程序。在某些实施例中,监控是否存在从第一LU向第二LU的正在执行的复制操作可以由图4中示出的复制控制器410执行。
在620,响应于确定存在正在执行的复制操作,检测第一数据块中的数据的复制状态。该复制状态包括但不限于:未被复制、正在复制、和已被复制。复制状态的检测同样可以由复制控制器410执行。在630,基于该复制状态,确定该写操作请求在复制操作执行期间的执行策略。
与传统的方式不同,根据本公开的各种实施例,在主机层面的I/O操作不会由于存在正在进行的数据复制操作而被中断。
在一些实施例中,在创建复制操作之前,需要完成一些预配置工作,其中包括:在主机系统上更新定制化的MPIO插件和主机代理。在主机、源阵列和目标阵列之间建立网络连接和控制路径连接。
图7描述了创建复制会话过程的时序图。如图7所示,在子步骤1处,用户10需要输入外部阵列管理接口的IP地址、IP端口、和认证信息。如果源阵列和目标阵列通过iSCSI连接,则用户10还需要输入外部iSCSI目标的IP地址、IP端口和身份验证信息。需要指出,仅当两个阵列通过iSCSI连接时,才需要执行子步骤2、以及子步骤7至12。如果两个阵列通过FC连接,则微型端口可以自动发现SCSI目标并登录到所有发现的SCSI目标。在子步骤18和子步骤19中,FEDisk 510创建内部设备对象,然后将内部设备对象的处理程序返回到复制引擎440。复制引擎440获取处理程序后可以使用该处理程序向FEDisk 510发送写I/O请求。然后FEDisk 510构造一个写SCSI命令描述块(CDB),这个CDB将由Miniport发送到目标存储系统。
在一些实施例中,在复制操作的开始之前,创建从主机到第一组磁盘的第一组访问路径;创建从第一LU到第二LU的映射关系;以及创建从主机到第二组磁盘的第二组访问路径。
如之前所讨论的,创建从主机到磁盘的多条访问路径可以通过定制化的MPIO插件113实现。创建从第一LU到第二LU的映射关系同样可以通过制化的MPIO插件113实现。
例如,图8示出了根据本公开的实施例的启动复制会话的时序图。在复制会话启动之前,定制化的MPIO插件113需要设置源卷和目标卷之间的映射关系。必要信息(例如,WWN)由复制控制器410提供给主机代理(子步骤2),然后主机代理114调用定制的MPIO插件113以进行两个卷的特定映射(子步骤3)。
继续参考图8,子步骤4至11描述了在通过定制的MPIO插件113完成了设备映射之后的过程。子步骤4至11的目的是将新创建的物理设备(表示到目标卷的路径)放入到与源卷的物理设备(或路径)相同的一个多路径组中。唯一的区别在于:源卷的设备/路径是“活跃的”,而目标卷的设备/路径是“不活跃的”。这可确保在复制会话完成后,I/O不会在主机级别中断。定制的MPIO插件只需要执行路径切换(也称:路径翻转),便可以将新的I/O指向目标卷。
图9示出了根据本公开实施例的在复制操作进行期间对I/O操作的处理。如图9所示,在复制数据时,源卷被分成许多数据段。这些数据段按顺序被复制。在卷迁移期间,源卷上可以具有三种类型的区域,即,如图9所示的数据未被复制到目标卷的区域、数据正被复制到目标卷的区域、和数据已被复制到目标卷的区域。
对于来自主机的读操作,复制引擎440可以直接将其转发给底层驱动程序。对于来自主机的写操作,复制引擎440可以根据待写入的区域的不同而启用三种不同的配置,也即,根据待写入的区域的不同而制定相应地写操作策略。
具体来说,在一些实施例中,确定写操作请求的执行策略可以包括:当复制状态指示第一数据块中的数据‘未被复制’时,执行针对第一数据块的写操作。换言之,如果该写操作请求落入未被复制区域,则复制引擎440将该写操作直接转发给底层驱动程序。
在一些实施例中,确定写操作请求的执行策略包括:当复制状态指示第一数据块中的数据‘正在复制’时,延迟针对第一数据块的写操作。在一些实施例中,当检测到复制状态变为指示第一数据块中的数据已被复制,执行针对第一数据块的写操作。换言之,如果写操作落入正在复制的区域,复制引擎440可以先将该写操作加入到一个队列中,并且在目标数据段被复制到目标卷之后,再次发送被加入到队列中的上述写操作。
在一些实施例中,确定写操作请求的执行策略包括:当复制状态指示第一数据块中的数据‘已被复制’时,执行针对第一数据块中的数据的写操作,以及执行针对第二LU中的、与第一数据块相对应的第二数据块中的数据的写操作,其中第二数据块中的数据是第一数据块中的数据的副本。也就是说,如果写操作落入已被复制的区域,则将该写操作转发到底层驱动程序,并同时将其镜像到目标卷。仅当底层物理磁盘和目标阵列都确认该写操作完成时,才能完成此写操作。
在一些实例中,执行复制操作包括:响应于检测到第一数据块中的数据为零,跳过针对第一数据块中的数据的复制操作。具体来说,在复制执行阶段,复制引擎440从底层MLU读取数据并将数据写入目标卷。图10示出了数据复制过程的时序图。基本上,复制引擎440首先将读操作发送到源卷中的MLU以获取数据。然后在FEDisk 510的帮助下将带有数据的写操作发送到目标卷。在子步骤3处,复制引擎440决定是继续写入获取数据还是返回读取另一段数据。这取决于读操作的返回状态。如果MLU完成了读操作,并返回名为“全零”的特殊状态,则复制引擎440可以确定无需将这些数据写入目标卷,并且应该继续下一个读操作。
这提供了一种避免将源卷中的“洞”复制到目标卷的方法,由此可以节省源阵列和目标阵列之间的带宽,并加快数据迁移过程。此外,还能够使得第三方系统上的目标卷的配置精简。
3.多路径软件保存源卷的标识和目标卷标识之间的映射。因此,目标阵列上没有源卷标识的欺骗。
4.通过利用多路径软件的定制插件,该解决方案也适用于使用本机多路径软件的客户。
在子步骤5-7中,FEDisk 510从复制引擎440接收写操作并将此写操作转换为SCSI写操作命令,该命令可通过Miniport发送到目标卷。在某些实施例中,如果一段数据正在被写入目标卷,则只有当前一个写操作被目标卷完成时,才能启动下一个读-写循环。
在一些实例中,在复制操作的结束之后,响应于接收到针对第一数据块的写操作请求,将用于数据访问的路径从第一组访问路径中的一条访问路径切换到第二组访问路径中的一条访问路径,以使得第二LU对写操作请求做出响应。
具体来说,在复制完最后一个数据段之后(也即,整个复制操作结束),复制引擎440将中止所有未完成的I/O并使用特定于供应商的检测代码拒绝传入的I/O。收到这些感知代码后,自定义MPIO插件113将开始对来自主机的应用程序的I/O请求进行排队。然后,复制引擎440通知复制控制器410该复制会话已经完成。复制控制器410将告诉主机代理,让定制的MPIO插件113执行路径翻转并停止对I/O进行排队。
图11示出了上述这些步骤。其中,子步骤6和子步骤7是路径翻转的主要动作。如上面参照图8所讨论的,在定制的MPIO插件113完成设备映射之后,可以将新创建的物理设备(表示到目标卷的路径)放入到与源卷的物理设备(或路径)相同的一个多路径组中。唯一的区别在于:源卷的设备/路径是“活跃的”,而目标卷的设备/路径是“不活跃的”。这可确保在复制会话完成后,I/O不会在主机级别中断。定制的MPIO插件只需要执行路径翻转,便可以将新的I/O指向目标卷。在步骤6,主机代理通知自定义MPIO插件113复制会话已完成。然后它切换源/目标卷的主动/被动状态。在子步骤7,具有自定义MPIO插件113的多路径软件停止对传入的I/O进行排队,并再次将这些I/O发送给存储阵列。不同之处在于,在路径翻转之后,定制的MPIO插件113将返回通往目标卷的路径,来作为多路径软件请求发送I/O时的最佳路径。
图12示出了一个可以用来实施本公开的实施例的设备1200的示意性框图。如图所示,设备1200包括中央处理单元(CPU)1201,其可以根据存储在只读存储器(ROM)1202中的计算机程序指令或者从存储单元408加载到随机访问存储器(RAM)1203中的计算机程序指令,来执行各种适当的动作和处理。在RAM 1203中,还可存储设备1200操作所需的各种程序和数据。CPU 1201、ROM 1202以及RAM 1203通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线1204。
设备1200中的多个部件连接至I/O接口1205,包括:输入单元1206,例如键盘、鼠标等;输出单元12012,例如各种类型的显示器、扬声器等;存储单元1208,例如磁盘、光盘等;以及通信单元1209,例如网卡、调制解调器、无线通信收发机等。通信单元1209允许设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法600,可由处理单元1201执行。例如,在一些实施例中,方法600可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1208。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1202和/或通信单元1209而被载入和/或安装到设备1200上。当计算机程序被加载到RAM 1203并由CPU1201执行时,可以执行上文描述的方法600的一个或多个步骤。备选地,在其他实施例中,CPU 1201也可以以其他任何适当的方式被配置以实现上述过程/方法。
应当理解,本公开的上述详细实施例仅仅是为了举例说明或解释本公开的原理,而不是限制本公开。因此,不脱离本发明的精神和范围的任何修改、等同替换和改进等均应被包括在本发明的保护范围之内。同时,本公开的所附权利要求旨在覆盖落入权利要求的范围和界限内或范围和界限的等同物内的所有变化和修改。
Claims (17)
1.一种数据访问方法,包括:
响应于接收到针对第一逻辑单元中的第一数据块的写操作请求,确定是否存在从所述第一逻辑单元向第二逻辑单元的正在执行的复制操作;
响应于确定存在正在执行的所述复制操作,检测所述第一数据块中的数据的复制状态;
基于所述复制状态,确定所述写操作请求在所述复制操作执行期间的执行策略;
执行所述复制操作,其中执行所述复制操作包括:
响应于检测到所述第一数据块中的所述数据为零,确定从所述第一逻辑单元读取的数据不需要被写入所述第二逻辑单元,并且跳过针对第一数据块中的所述数据的所述复制操作,其中所述第一数据块包括所述第一逻辑单元的未分配区域,并且其中跳过针对所述第一数据块中的所述数据的所述复制操作还包括:执行读取下一个请求,所述读取下一个请求查找所述第一逻辑单元中的下一个分配区域并且在所述下一个分配区域包含全零的情况下附加地返回预定状态;
其中确定所述写操作请求的所述执行策略和执行所述复制操作两者由源阵列的I/O堆栈中的第一分层驱动程序执行;
其中所述第一分层驱动程序被插入到所述源阵列的所述I/O堆栈中以用于执行所述复制操作,并且随后响应于所述复制操作的完成而从所述源阵列的所述I/O堆栈中被移除;并且
其中所述第一分层驱动程序通过使用由包含在所述源阵列的映射的LUN驱动程序提供的接口来执行所述读取下一个请求。
2.根据权利要求1所述的方法,其中确定所述写操作请求的执行策略包括:
响应于所述复制状态指示所述第一数据块中的数据未被复制,执行针对所述第一数据块的写操作。
3.根据权利要求1所述的方法,其中确定所述写操作请求的执行策略包括:
响应于所述复制状态指示所述第一数据块中的数据正在复制,延迟针对所述第一数据块的写操作。
4.根据权利要求3所述的方法,还包括:
响应于检测到所述复制状态变为指示所述第一数据块中的数据已被复制,执行针对所述第一数据块的写操作。
5.根据权利要求1所述的方法,其中确定所述写操作请求的执行策略包括:
响应于所述复制状态指示所述第一数据块中的数据已被复制,
执行针对所述第一数据块中的数据的写操作;以及
执行针对所述第二逻辑单元中的、与所述第一数据块相对应的第二数据块中的数据的写操作,其中所述第二数据块中的数据是所述第一数据块中的数据的副本。
6.根据权利要求1所述的方法,还包括:
在所述复制操作的开始之前,
创建从主机到第一组磁盘的第一组访问路径;
创建从所述第一逻辑单元到所述第二逻辑单元的映射关系;以及
创建从所述主机到第二组磁盘的第二组访问路径。
7.根据权利要求6所述的方法,还包括:
在所述复制操作的结束之后,
响应于接收到针对所述第一数据块的所述写操作请求,将用于所述数据访问的路径从所述第一组访问路径中的一条访问路径切换到所述第二组访问路径中的一条访问路径,以使得所述第二逻辑单元对所述写操作请求做出响应。
8.根据权利要求1所述的方法,其中所述第一分层驱动程序将被指向当前正被复制到所述第二逻辑单元的写入的范围的写I/O排入队列,以及向所述第二逻辑单元转发被指向已经被复制到所述第二逻辑单元的写I/O。
9.根据权利要求8所述的方法,其中所述映射的LUN驱动程序还将所述第一逻辑单元映射到所述源阵列的内部逻辑单元。
10.一种数据访问设备,包括:
处理单元;以及
存储器,耦合至所述处理单元并且存储有指令,所述指令在由所述处理单元执行时执行以下动作:
响应于接收到针对第一逻辑单元中的第一数据块的写操作请求,确定是否存在从所述第一逻辑单元向第二逻辑单元的正在执行的复制操作;
响应于确定存在正在执行的所述复制操作,检测所述第一数据块中的数据的复制状态;以及
基于所述复制状态,确定所述写操作请求在所述复制操作执行期间的执行策略;
执行所述复制操作,其中执行所述复制操作包括:
响应于检测到所述第一数据块中的所述数据为零,确定从所述第一逻辑单元读取的数据不需要被写入所述第二逻辑单元,并且跳过针对第一数据块中的所述数据的所述复制操作,其中所述第一数据块包括所述第一逻辑单元的未分配区域,并且其中跳过针对所述第一数据块中的所述数据的所述复制操作还包括:执行读取下一个请求,所述读取下一个请求查找所述第一逻辑单元中的下一个分配区域并且在所述下一个分配区域包含全零的情况下附加地返回预定状态;
其中确定所述写操作请求的所述执行策略和执行所述复制操作两者由源阵列的I/O堆栈中的第一分层驱动程序执行;
其中所述第一分层驱动程序被插入到所述源阵列的所述I/O堆栈中以用于执行所述复制操作,并且随后响应于所述复制操作的完成而从所述源阵列的所述I/O堆栈中被移除;并且
其中所述第一分层驱动程序通过使用由包含在所述源阵列的映射的LUN驱动程序提供的接口来执行所述读取下一个请求。
11.根据权利要求10所述的设备,其中确定所述写操作请求的执行策略包括:
响应于所述复制状态指示所述第一数据块中的数据未被复制,执行针对所述第一数据块的写操作。
12.根据权利要求10所述的设备,其中确定所述写操作请求的执行策略包括:
响应于所述复制状态指示所述第一数据块中的数据正在复制,延迟针对所述第一数据块的写操作。
13.根据权利要求12所述的设备,其中所述动作还包括:
响应于检测到所述复制状态变为指示所述第一数据块中的数据已被复制,执行针对所述第一数据块的写操作。
14.根据权利要求10所述的设备,其中确定所述写操作请求的执行策略包括:
响应于所述复制状态指示所述第一数据块中的数据已被复制,
执行针对所述第一数据块中的数据的写操作;以及
执行针对所述第二逻辑单元中的、与所述第一数据块相对应的第二数据块中的数据的写操作,其中所述第二数据块中的数据是所述第一数据块中的数据的副本。
15.根据权利要求10所述的设备,其中所述动作还包括:
在所述复制操作的开始之前,
创建从主机到第一组磁盘的第一组访问路径;
创建从所述第一逻辑单元到所述第二逻辑单元的映射关系;以及
创建从所述主机到第二组磁盘的第二组访问路径。
16.根据权利要求15所述的设备,其中所述动作还包括:
在所述复制操作的结束之后,
响应于接收到针对所述第一数据块的所述写操作请求,将用于所述数据访问的路径从所述第一组访问路径中的一条访问路径切换到所述第二组访问路径中的一条访问路径,以使得所述第二逻辑单元对所述写操作请求做出响应。
17.一种计算机可读存储介质,存储有机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1-9任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811289378.2A CN111124265B (zh) | 2018-10-31 | 2018-10-31 | 数据访问方法、设备和计算机程序产品 |
US16/592,837 US11461012B2 (en) | 2018-10-31 | 2019-10-04 | Non-disruptive data migration from a source storage array to a destination storage array |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811289378.2A CN111124265B (zh) | 2018-10-31 | 2018-10-31 | 数据访问方法、设备和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124265A CN111124265A (zh) | 2020-05-08 |
CN111124265B true CN111124265B (zh) | 2023-11-10 |
Family
ID=70327098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811289378.2A Active CN111124265B (zh) | 2018-10-31 | 2018-10-31 | 数据访问方法、设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11461012B2 (zh) |
CN (1) | CN111124265B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106575271A (zh) * | 2014-06-23 | 2017-04-19 | 谷歌公司 | 管理存储设备 |
US9830105B1 (en) * | 2015-12-21 | 2017-11-28 | EMC IP Holding Company LLC | Migrating data objects together with their snaps |
US9985873B1 (en) * | 2015-09-10 | 2018-05-29 | EMC IP Holding Company LLC | Data storage system providing asymmetric multipath storage access |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7233977B2 (en) | 1998-12-18 | 2007-06-19 | Emc Corporation | Messaging mechanism employing mailboxes for inter processor communications |
US7546482B2 (en) * | 2002-10-28 | 2009-06-09 | Emc Corporation | Method and apparatus for monitoring the storage of data in a computer system |
US9411819B1 (en) * | 2012-06-27 | 2016-08-09 | Emc Corporation | Federated namespace management |
JP6208860B2 (ja) * | 2013-07-02 | 2017-10-04 | ヒタチ データ システムズ エンジニアリング ユーケー リミテッドHitachi Data Systems Engineering Uk Limited | 仮想化されたファイル・システムのマイグレーションのための方法および装置、仮想化されたファイル・システムのマイグレーションのためのデータ・ストレージ・システム、ならびにデータ・ストレージ・システム内で使用するためのファイル・サーバ |
US10452315B2 (en) * | 2014-09-24 | 2019-10-22 | Hewlett Packard Enterprise Development Lp | Block priority information |
CN108228647B (zh) | 2016-12-21 | 2022-05-24 | 伊姆西Ip控股有限责任公司 | 用于数据拷贝的方法和设备 |
US10037157B1 (en) * | 2016-12-22 | 2018-07-31 | EMC IP Holding Company LLC | Techniques for migrating to a thinly-provisioned logical disk without writing zero blocks |
US10528416B2 (en) * | 2017-12-11 | 2020-01-07 | International Business Machines Corporation | Checking data integrity of data storage systems |
-
2018
- 2018-10-31 CN CN201811289378.2A patent/CN111124265B/zh active Active
-
2019
- 2019-10-04 US US16/592,837 patent/US11461012B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106575271A (zh) * | 2014-06-23 | 2017-04-19 | 谷歌公司 | 管理存储设备 |
US9985873B1 (en) * | 2015-09-10 | 2018-05-29 | EMC IP Holding Company LLC | Data storage system providing asymmetric multipath storage access |
US9830105B1 (en) * | 2015-12-21 | 2017-11-28 | EMC IP Holding Company LLC | Migrating data objects together with their snaps |
Non-Patent Citations (1)
Title |
---|
Ali Mashtizadeh.The Design and Evolution of Live Storage Migration in VMware ESX.《Proceedings of the 2011 USENIX conference on USENIX annual technical conference》.2011,第1至14页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111124265A (zh) | 2020-05-08 |
US11461012B2 (en) | 2022-10-04 |
US20200133508A1 (en) | 2020-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11228647B2 (en) | System and method for sharing SAN storage | |
US10423332B2 (en) | Fibre channel storage array having standby controller with ALUA standby mode for forwarding SCSI commands | |
EP3668056B1 (en) | Method and device for transmitting data processing request | |
US9244817B2 (en) | Remote debugging in a cloud computing environment | |
US10678465B2 (en) | Seamless migration of storage volumes between storage arrays | |
RU2427891C2 (ru) | Виртуальная сетевая система хранения информации, сетевое запоминающее устройство и виртуальный способ | |
US8510815B2 (en) | Virtual computer system, access control method and communication device for the same | |
EP2795454B1 (en) | Systems and methods for providing data management services | |
WO2019195003A1 (en) | Virtual rdma switching for containerized applications | |
US8819374B1 (en) | Techniques for performing data migration | |
US8301812B1 (en) | Techniques for performing host path detection verification | |
US7805520B2 (en) | Storage system, program and method | |
US9063661B1 (en) | Automated updating of parameters and metadata in a federated storage environment | |
US20230152978A1 (en) | Data Access Method and Related Device | |
WO2016082078A1 (zh) | 路径管理的系统、装置和方法 | |
US8762485B2 (en) | Information system having computer and storage apparatus coupled to network | |
JP4208506B2 (ja) | 高性能記憶装置アクセス環境 | |
WO2018107433A1 (zh) | 信息处理方法和装置 | |
JP5439435B2 (ja) | 計算機システムおよびその計算機システムにおけるディスク共有方法 | |
US11073996B2 (en) | Host rescan for logical volume migration | |
CN110471627B (zh) | 一种共享存储的方法、系统及装置 | |
CN111124265B (zh) | 数据访问方法、设备和计算机程序产品 | |
US9400605B2 (en) | Efficient management of a virtual tape library cluster | |
US11231857B2 (en) | Methods, apparatuses and computer program products for processing and managing storage unit access | |
CN113691389A (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 |