存储系统的制作方法

文档序号:19744943发布日期:2020-01-21 18:12阅读:125来源:国知局
存储系统的制作方法

本发明通常涉及一种存储系统,特别涉及一种存储系统中的卷组的迁移。



背景技术:

作为背景技术,有专利文献1。专利文献1中公开了如下内容:“一种存储系统,其包含进行从迁移前卷组向迁移后卷组的迁移的多个存储装置,其中,上述多个存储装置在上述迁移中,接受从主机向上述迁移前卷组和上述迁移后卷组的多个卷内的任意卷的写入命令,上述多个存储装置按照预先规定的顺序,将上述写入命令的写入数据分别写入到上述多个卷,上述多个存储装置中的第一存储装置在上述多个卷的最后,将上述写入数据写入到最后卷,上述多个存储装置中提供与上述最后卷不同的卷的存储装置在进行排它锁之后,分别将上述写入数据写入到上述不同的卷,在上述写入数据向上述最后卷的写入结束后解除上述排它锁。”。

现有技术文献

专利文献

专利文献1:日本专利第6234557号说明书



技术实现要素:

发明要解决的课题

在企业级的存储系统中,谋求一种存储装置的群集配置实现的highavailability(ha)功能。ha功能实现存储系统的高可用性。ha结构具有双工系统,在故障发生时自动切断故障系统,仅使用正常系统继续动作。

进而,active-active型ha结构将所有系统作为运转系统运用。在active-active型ha结构中,存储系统也接受卷对中的任一个i/o(input/output)访问。

在active-active型ha结构的存储系统中的数据迁移中,谋求在维持主机i/o无停止且active-active型ha结构的状态下,对数据进行迁移。即,在维持active-active型ha结构的高可用性的同时实现数据迁移。

作为根据active-active型ha结构的卷组,假设有包含成为虚拟卷的基础的多个物理卷的第一和第二卷组。第一卷组为包含均能够由i/o命令指定的pvol(主物理卷)和svol1(第一副物理卷)的组,且数据能够在该组中的物理卷之间同步。第二卷组为包含均能够由i/o命令指定的上述pvol和svol2(第二副物理卷)的组,且数据能够在该组中的物理卷之间同步。第一卷组为迁移源,第二卷组为迁移目的地。

在根据所接受的写入命令的写入目的为pvol、svol1和svol2中的任一个的情况下,能够期待通过将写入对象的数据并行写入至pvol、svol1和svol2来对该写入命令进行高速处理。但,并非必须同时将写入对象的数据写入到所有pvol、svol1和svol2。因此,例如,针对上述虚拟卷的某地址(例如lba(logicalblockaddress))从pvol、svol1和svol2中的任一个读出的数据可能不同于之后针对同一地址从pvol、svol1和svol2中的另一个读出的数据,即,可能发生所谓的数据乱码。

用于解决课题的技术方案

在存储系统中,第一存储装置具有svol1,第二存储装置具有svol2,第三存储装置具有pvol。在写入命令指定pvol、svol1和svol2中的任意个的情况下,第一至第三存储装置中的至少一个将该写入命令所对应的写入对象的数据写入至pvol,之后,将该写入对象的数据并行写入至svol1和svol2。在读取命令指定pvol、svol1和svol2中的任意个的情况下,第一至第三存储装置中的至少一个将该读取命令所对应的读取对象的数据从pvol中读出。

发明效果

即使并行写入至pvol、svol1和svol2,也能够防止发生所谓的数据乱码。

附图说明

图1是说明ha多目标结构中的卷对迁移的概要的图。

图2是表示计算机系统的配置例的图。

图3是表示主机计算机的配置例的图。

图4是表示物理存储装置的硬件配置例的图。

图5是表示物理存储装置的软件配置例的图。

图6a是表示资源管理表的配置例的图。

图6b是表示主机组管理表的配置例的图。

图7是表示虚拟存储箱管理表的配置例的图。

图8是表示虚拟存储管理表的配置例的图。

图9a是表示卷拷贝对管理表的配置例的图。

图9b是表示排它锁管理表的配置例的图。

图10是表示ha卷迁移步骤的图。

图11是表示有关由来自主机计算机的write命令指定pvol的实例的写入处理的流程的图。

图12是表示有关由来自主机计算机的write命令指定svol1的实例的写入处理的流程的图。

图13是表示有关由来自主机计算机的write命令指定svol2的实例的写入处理的流程的图。

图14是表示有关由来自主机计算机的read命令指定pvol的实例的写入处理的流程的图。

图15是表示有关由来自主机计算机的read命令指定svol1的实例的写入处理的流程的图。

图16是表示有关由来自主机计算机的read命令指定svol2的实例的写入处理的流程的图。

具体实施方式

在以下说明中,“接口部”可以为一个以上的接口。该一个以上的接口可以为一个以上的同种类的通信接口设备(例如一个以上的nic(networkinterfacecard:网卡)),也可以为两个以上的不同种类的通信接口设备(例如nic和hba(hostbusadapter:主机总线适配器))。

另外,在以下说明中,“存储器部”为一个以上的存储器,典型而言,可以为主存储设备。

另外,在以下说明中,“存储设备部”为一个以上的存储设备,典型而言,可以为辅助存储设备。“存储设备”特别是指物理存储设备(physicalstoragedevice),典型为非易失性存储设备。

另外,在以下说明中,“存储部”为存储器部和存储设备部的至少一部分中的至少一个(典型而言,至少为存储器部)。

另外,在以下说明中,“处理器部”为一个以上的处理器。典型而言,至少一个处理器为像cpu(centralprocessingunit:中央处理器)那样的微处理器,但也可以为像gpu(graphicsprocessingunit:图形处理器)那样的其他种类的处理器。至少一个处理器可以为单核,也可以为多核。至少一个处理器也可以为进行处理的一部分或全部的硬件电路(例如fpga(field-programmablegatearray:现场可编程门阵列)或asic(applicationspecificintegratedcircuit:专用集成电路))等广义的处理器。

另外,在以下说明中,有时通过“xxx表”等表现,对针对输入可进行输出的信息进行说明,但这种信息可以为任何结构的数据,也可以为产生针对输入的输出的像神经网络那样的学习模型。因此,也可以将“xxx表”称为“xxx信息”。另外,在以下说明中,各表的配置为一例,一个表可以被分割成两个以上的表,两个以上的表的全部或一部分也可以为一个表。

另外,在以下说明中,有时以“程序”为主语对处理进行说明,但程序由处理器部执行,由此,为了一边适当地使用存储部和/或接口部等一边进行规定的处理,也可以将处理的主语设为处理器部(或具有该处理器部的像控制器那样的设备)。可以将程序从程序源安装到像计算机那样的装置。程序源例如可以为程序分发服务器或计算机可读取的(例如非暂时性)记录介质。另外,在以下说明中,两个以上的程序可以作为一个程序实现,一个程序也可以作为两个以上的程序实现。

另外,在以下说明中,“存储系统”在多个物理存储装置中配置,但这些多个物理存储装置中的至少一个也可以为通用计算机。通过该至少一个通用计算机执行规定的软件,可以在该通用计算机或包含该物理计算机的系统中构建sdx(software-definedanything)。作为sdx,例如可以采用sds(softwaredefinedstorage)或sddc(software-defineddatacenter)。例如,通过通用计算机执行具有存储功能的软件,可以构建作为sds的存储装置。

另外,在以下说明中,“物理vol”为配置ha对的卷,也可以为逻辑存储设备(例如地址空间)。物理卷可以为基于存储系统所具有的物理存储资源(例如,一个以上的存储设备)的实体卷,也可以为根据虚拟化技术(例如,thinprovisioning)的虚拟卷。

下面,参照附图对本发明的一实施例进行说明。应注意,本实施例仅为用于实现本发明的一例,并非用于限定本发明的技术范围。对各图中的共同的配置标注相同的参照符号。

以下说明的存储系统具有active-active型ha结构。ha结构具有双工系统,在故障发生时自动切断故障系统,具备用于仅使用正常的系统继续动作的自动故障恢复功能。active-active型ha结构通过将所有系统作为运转系统运用,实现资源的有效利用以及负载分散。在以下说明中,ha结构和ha对是指active-active型ha结构和ha对。存储系统也接受对ha对中的任一个的i/o访问。

下面,对ha对的迁移进行说明。具体而言,ha对的迁移为将一个迁移前ha对迁移至另一卷,通过迁移前ha对的另一个和新的卷构成迁移后ha对。存储系统在迁移中,接受对所有卷的i/o访问。存储系统在迁移结束后,对ha对进行切换。此外,ha对为active-active型ha结构的卷组的一例。迁移前ha对为迁移源即第一卷组的一例。迁移后ha对为迁移目的即第二卷组的一例。此外,“active-active型ha结构的卷组”是指包含均可由i/o(input/output)命令指定的两个以上的物理卷,且数据在该组中的物理卷间同步的组。

ha对由primaryvolume(pvol)和secondaryvolume(svol)构成。作为一例,存储系统在对创建时,将pvol的数据拷贝到svol。

在不迁移时,存储系统如果接收到向svol的write命令,则在写入数据向pvol的写入(向写入缓存器的写入或向存储驱动器的写入中的任一个)结束后,进行写入数据向svol的写入。一例中,就对pvol的i/o访问而言,伴随pvol的排它锁,在对svol的i/o访问中不使用排它锁。在对svol的访问中也可以使用排它锁。

在迁移时,关于写入处理,有关pvol的排它锁禁止其它的写入处理和读取处理,但有关svol的排它锁虽禁止其它的写入处理,但不禁止读取处理。读取处理中的排它锁禁止其它的写入处理,可以禁止其它的读取处理,也可以不禁止其它的读取处理。读取处理中的排它锁能够通过允许其它的读取处理而抑制向主机的响应延迟。

图1是表示卷迁移中的ha多目标结构的概要的图。根据图1的例,ha多目标结构以一个卷为两个ha对的共用pvol,通过这三个卷构成两个ha对。

图1的系统包含主机计算机1000、物理存储装置(也简称为存储装置)2000、虚拟存储装置3000。虚拟存储装置3000基于构成存储系统的多个物理存储装置2000。

本系统具有多个物理存储装置2000的active-active型ha结构(下面,也称为ha卷配置)。多个物理存储装置2000被作为单个虚拟存储装置3000提供给主机计算机1000。各物理存储装置2000针对来自主机计算机1000的请求,提供相同的存储装置配置信息,即虚拟存储装置1(3000)的配置信息。

在图1的例中,物理存储装置1(2000)的物理vol1(2900)和物理存储装置2(2000)的物理vol2(2900)构成ha对7100。物理vol1(2900)为pvol,物理vol2(2900)为svol。

对于物理vol1(2900)和物理vol2(2900),对主机计算机1000提供相同的vol信息,即虚拟vol11(3900)的信息。主机计算机1000执行os(operatingsystem)1310和备用路径程序1320来访问虚拟vol11(3900)。因此,主机计算机1000也可以通过备用路径程序1320使用向物理vol1(2900)的路径8100和向物理vol2(2900)的路径8200中的任一个。

针对一物理vol2900的写入数据被转发到另一物理vol2900。由此,可以维持物理vol1(2900)和物理vol2(2900)间的数据同一性。

这样,物理vol1(2900)和物理vol2(2900)可以作为一个卷从主机计算机1000进行i/o访问,另外,即使任一物理卷发生故障,也可以进行对其它的物理卷的i/o访问。

本实施例对维持主机i/o无停止且active-active型ha结构的卷对的迁移进行说明。作为一例,对将物理vol2(2900)向物理vol3迁移的例子进行说明。物理vol1和物理vol2构成迁移前卷对,物理vol1(2900)和物理vol3(2900)构成迁移后卷对。

首先,通过物理vol1(2900)和物理vol3(2900)形成ha对7200。在此,以物理vol1(2900)为pvol,以物理vol3(2900)为svol。在迁移中,将数据从pvol即物理vol1(2900)拷贝到svol即物理vol3(2900)。

在主机计算机1000和物理存储装置3(2000)中,对从主机计算机1000到物理vol3(2900)的路径8300进行定义。物理存储装置3(2000)对于物理vol3(2900),响应来自主机计算机1000的请求,与物理vol1(2900)和物理vol2(2900)同样,返回虚拟vol11(3900)的信息。

接着,在主机计算机1000和物理存储装置2(2000)中,删除从主机计算机1000到物理vol2(2900)的路径8200。进而,物理存储装置1(2000)和物理存储装置2(2000)删除ha对7100。由此,从物理存储装置2(2000)的物理vol2(2900)到物理存储装置3(2000)的物理vol3(2900)的迁移结束。

图2表示本实施例的计算机系统的配置例。图2的计算机系统包含主机计算机1000、物理存储装置2000、管理计算机4000。

计算机系统中包含的各种装置(系统)的数量与设计相关。物理存储装置1~3(2000)构成一台虚拟存储装置即虚拟存储装置。在本例的虚拟存储环境中,二台或三台物理存储装置构成一台虚拟存储,但构成该虚拟存储的物理存储的数量与设计相关。

物理存储装置a(2000)具有quorumdisk。quorumdisk在ha结构中的物理存储装置2000之间不能通信的情况下,提供确定安装有ha结构的物理存储装置2000中继续运转和停止的物理存储装置的功能。通过quorumdisk能够防止脑裂问题。

主机计算机1000、管理计算机4000和物理存储装置2000通过由lan6000构成的管理网络,可通信地连接。例如,管理网络6000为ip网络。管理网络6000只要为管理数据通信用的网络即可,也可以为任意类型的网络。

主机计算机1000和物理存储装置2000通过由san(storageareanetwork)5000构成的数据网络连接。主机计算机1000经由san5000访问物理存储装置2000的卷。数据网络5000只要为数据通信用网络即可,也可以为任意类型的网络。数据网络5000和管理网络6000可以为相同网络。

图3示意性表示主机计算机1000的配置例。主机计算机1000包含处理器即cpu(centralprocessingunit)1100、非易失性二级存储设备1200、主存储设备即存储器1300、输入输出设备1400、i/o请求发出侧接口即启动器端口(initiatorport)1600、管理接口(管理i/f)1700。各构成要素通过总线1500可通信地连接。

cpu1100根据存储于存储器1300的程序动作。典型而言,存储于二级存储设备1200的程序和数据被加载到存储器1300。本例中,存储器1300保持os(operatingsystem)1310、备用路径程序1320以及应用程序1330。应用程序1330进行物理存储装置2000提供的数据向卷的读写。

启动器端口1600为与san4000连接的网络接口。启动器端口1600经由san5000与物理存储装置2000收发数据和请求。

管理接口1700为与lan6000连接的网络接口。管理接口1700经由lan6000与物理存储装置2000收发管理数据和控制命令。管理接口1700还经由lan6000与管理计算机4000收发管理数据和控制命令。

图4是示意性表示物理存储装置2000的结构例的图。本例中,所有物理存储装置2000的基本结构相同,但构成要素的数量和存储容量等与各物理存储装置2000相关。它们也可以具有不同的基本配置。

物理存储装置2000包含多个存储设备(例如,硬盘驱动器和/或ssd(solidstatedrive))2200、控制物理存储装置2000且进行卷管理、或与主机计算机1000或其它的物理存储装置2000的数据通信等的存储控制器。

存储控制器包含处理器即cpu2100、存储器2300、i/o请求发出侧接口即启动器端口2600、i/o请求接收侧接口即目标端口2700、管理接口(管理i/f)2800、用于数据转发的高速缓冲存储器2400。存储装置2000的构成要素通过总线2500可通信地连接。

物理存储装置2000能够经由启动器端口2600与外部(其它)的物理存储装置2000连接,将i/o请求和写入数据发送到外部的物理存储装置2000,从外部的物理存储装置2000接收读取数据。启动器端口2600与san5000连接。

启动器端口2600具有将用于与外部的物理存储装置2000的通信的fc、fibrechanneloverethernet(fcoe)、iscsi等协议转换为在存储控制器内部使用的协议例如pcie的功能。

物理存储装置2000在目标端口2700,与主机计算机1000或外部的物理存储装置2000连接。物理存储装置2000经由目标端口2700,从主机计算机1000或外部的物理存储装置2000接收i/o请求和写入数据,另外,将读取数据发送到主机计算机1000或外部的物理存储装置2000。目标端口2700与san5000连接。

目标端口2700具有将用于与主机计算机1000或外部的物理存储装置2000的通信的fc、fibrechanneloverethernet(fcoe)、iscsi等协议转换成在存储控制器内部使用的协议例如pcie的功能。

管理接口2800为用于连接lan6000的设备。管理接口2800具有将lan6000中使用的协议转换为在存储控制器内部使用的协议例如pcie的功能。

cpu2100执行用于控制物理存储装置2000的程序而实现包含来自主机计算机1000的i/o的控制和物理存储装置2000卷的管理、控制的规定的功能。本实施例中说明的由cpu2100实现的功能的至少一部分也可以通过与cpu2100不同的逻辑电路实现。

通过由处理器(cpu)执行程序,一边使用存储器和接口一边进行规定的处理。因此,本公开中以程序为主语的说明也可以为以处理器为主语的说明。或,程序执行的处理为该程序动作的装置(例如物理存储装置2000或主机计算机1000)和系统进行的处理。

存储器2300存储cpu2100处理的数据和程序。存储器2300的数据例如被从物理存储装置2000内中的任意的存储设备2200、闪存(未图示)、或经由lan5000连接的其它装置等具备非暂时性存储介质的存储设备加载到存储器2300。

图5表示物理存储装置2000各自的存储器2300的软件结构例。存储器2300保持数据输入输出处理程序2350、资源管理程序2360和卷拷贝控制程序2370。而且,存储器2300保持资源管理表2310、虚拟存储箱管理表2320、虚拟存储管理表2330、卷拷贝对管理表2340、主机组管理表2380、排它锁管理表2390。

数据输入输出处理程序2350根据来自主机计算机1000的i/o请求,进行用户数据的读取和写入,进行与主机计算机1000以及其它的物理存储装置2000之间的所需的数据通信。

资源管理程序2360对物理存储装置2000的资源进行管理。资源管理程序2360除卷的创建和删除外,还进行以下说明的表(信息)的创建和更新。资源管理程序2360在其与管理计算机4000之间收发资源管理所需的信息。

卷拷贝控制程序2370对ha对中的物理卷间的拷贝进行控制。

下面,对物理存储装置2000分别保持且本实施例的说明中参照的表(信息)进行说明。相同名称的表在各物理存储装置2000中具有相同的结构(列)。以下参照附图说明的表为物理存储装置1(2000)保持的表。此外,各装置保持的信息也可以存储于表以外的结构体。

图6a表示资源管理表2310的配置例。资源管理表2310为用于管理该物理存储装置1(2000)的资源的表。

资源管理表2310具有存储物理存储装置1(2000)的资源类型的资源类型列2311、存储资源id的资源id列2312、存储该资源所属的资源组id的资源组id列2313、存储赋予该资源的虚拟资源id的虚拟资源id列2314。

图6b表示主机组管理表2380的配置例。主机组为针对每个主机计算机1000的os类型对连接于端口的主机计算机1000的wwn(worldwidename)进行分组后的组。主机组管理表2380具有存储端口id的端口id列2381、存储关于该端口的主机组id的主机组id列2382、表示主机计算机1000的os类型的主机模式列2383、存储登录到该主机组的主机wwn的主机wwn列2384、存储属于主机组id2382的主机计算机1000可以访问的卷id的卷id列2385。

图7表示虚拟存储箱管理表2320的配置例。虚拟存储箱为在一物理存储装置内一虚拟存储装置所具有的资源组的集合。虚拟存储箱管理表2320为用于管理虚拟存储装置3000的虚拟存储箱的表。

虚拟存储箱管理表2320具有存储虚拟存储箱id的虚拟存储箱id列2321、存储属于该虚拟存储箱的资源组id的资源组id列2322。

图8表示虚拟存储管理表2330的结构例。虚拟存储管理表2330为用于管理虚拟存储装置3000的表。虚拟存储管理表2330具有存储虚拟存储id的虚拟存储id列2331、存储属于该虚拟存储装置的虚拟存储箱id的虚拟存储箱id列2332。

图9a表示卷拷贝对管理表2340的配置例。卷拷贝对管理表2340为用于管理包含该物理存储装置2000所提供的卷的卷拷贝对的表。

卷拷贝对管理表2340具有存储卷拷贝对的对id的对id列2341、存储该对的类型的对类型列2342、存储该对的状态的对状态列2343。

卷拷贝对管理表2340还具有存储pvolid的pvolid列2344、存储svolid的svolid列2345。本例中,pvolid和svolid由物理存储装置2000的识别信息和该物理存储装置中的物理卷的识别信息构成。

卷拷贝对管理表2340还具有存储关于该对的对的id的关联对id列2346、存储该对和关联对的优先级的优先级列2347。本例中,优先级的数值越小,优先级越高。

存储于对类型列2342的对类型如果为ha则表示“ha”,如果为物理存储内的卷本地拷贝则表示“lc”,如果为物理存储间的卷远程拷贝则表示“rc”,如果为ha多目标结构则表示“ha-mlt”等卷拷贝对的类型。

存储于对状态列2343的对状态如果为数据拷贝中则存储“copy”,如果为数据拷贝结束后的同步状态则存储“pair”,如果为数据拷贝中断中则存储“suspend”等表示卷拷贝对间的数据拷贝的状态的字符串和/或数字。

存储于优先级列2347的优先级表示确定ha多目标结构中的数据写入顺序的信息。关于ha多目标结构,在本实施例中,第一对和第二对的优先级相同,因此,首先,进行向第一对和第二对的pvol的写入,之后,并行进行向第一对的svol和第二对的svol的写入。

图9b表示排它锁管理表2390的配置例。排它锁管理表2390保持用于管理物理卷的排它锁的信息。排它锁管理表2390具有存储排它锁的id的排它锁id列2391、存储物理卷的id的卷id列2392、以及存储排它锁的lba(logicalblockaddress)的lba列2393。

排它锁管理表2390对进行了排它锁的数据存储区域进行管理。各条目表示进行了排它锁的卷内区域,使用卷id和该卷内地址(lba)例如开始lba和数据长度进行指定。本例中,卷内部分区域被进行排它锁,但也可以以卷为单位进行排它锁。另外,可以设置存储排它锁的类型的列,排它锁id也可以包含表示排它锁的类型的信息。例如,从某符号开始的与排它锁id对应的排它锁可以为不可写入且不可读取的排它锁,从另一符号开始的与排它锁id对应的排它锁可以为不可写入且可读取的排它锁。

图10表示将物理存储装置2(st2)(2000)的物理vol2(svol)2900迁移为物理存储装置3(st3)(2000)的物理vol3(svol)2900的步骤。物理vol1、vol2、vol3(2900)为虚拟vol11(3000)的构成要素。此外,省略一部分符号。

物理vol2(svol)2900和物理存储装置2(2000)的物理vol1(pvol)2900为迁移前卷对(第一卷对)。

物理vol3(2900)和物理vol1(pvol)2900为迁移后卷对(第二卷对)。在迁移中,将物理vol1(pvol)2900的数据拷贝到物理vol3(2900)。本例中,可实施主机管理和存储管理双方的系统管理者进行路径以及卷的设定。

图10中,步骤a-0表示初始状态。在主机计算机1000、物理vol1、vol2之间对路径进行定义。物理vol1、vol2构成卷对。物理vol1、vo2为虚拟vol11的构成要素,主机计算机1000为了访问虚拟vol11,也能够访问任一物理vol1、vol。

在步骤a-1中,根据来自系统管理者的指示,物理存储装置3创建物理vol3。根据来自系统管理者的指示,物理存储装置1(st1)和物理存储装置3创建物理vol1和物理vol3的ha对。赋予对vol3的虚拟id。此时,vol1、vol2以及vol3为ha多目标结构。

在步骤a-2中,根据来自系统管理者的指示,主机计算机1000以及物理存储装置3对从主机计算机1000到物理vol3的路径进行定义。物理存储装置3将主机的wwn、端口id、vol3的卷id信息追加到主机组管理表2380。

接着,在步骤a-3中,根据来自系统管理者的指示,主机计算机1000以及物理存储装置2删除从主机计算机1000到物理vol2的路径。物理存储装置2从主机组管理表2380中删除主机的wwn、端口id、vol2的卷id信息。

接着,在步骤a-4中,根据来自系统管理者的指示,物理存储装置1、2删除物理vol1和物理vol2的ha对,而且,物理存储装置2删除物理vol2的虚拟id。

关于ha多目标结构,对本实施例的写入处理和读取处理进行说明。此外,下面,为使说明简单,假设成为虚拟vol11(虚拟卷的一例)的基础的多个物理卷为构成ha对1(迁移源即第一卷组的一例)的pvol(为主物理卷的一例,例如为物理vol1)和svol1(为第一副物理卷的一例,例如为物理vol2)。假设ha对2(迁移目的即第二卷组的一例)为作为迁移目的新的ha对的一例,由同pvol和svol3(为第二副物理卷的一例,例如为物理vol3)构成。另外,假设具有svol1的物理存储装置(第一存储装置的一例)为存储装置1,具有svol2的物理存储装置(第二存储装置的一例)为存储装置2,具有pvol的物理存储装置(第三存储装置的一例)为存储装置3。

在本实施例中,在从ha对1向ha对2的迁移中,在存储系统接受了write命令作为i/o命令且该接受的write命令指定pvol、svol1以及svol2中的任意个的情况下,存储装置1至3中的至少一个将该write命令所对应的写入对象的数据写入到pvol,之后,将该写入对象的数据并行写入到svol1和svol2。另外,在本实施例中,在从ha对1向ha对2的迁移中,在存储系统接受了read命令作为i/o命令且该接受的read命令指定pvol、svol1以及svol2中的任意个的情况下,存储装置1至3中的至少一个将该read命令所对应的读取对象的数据从pvol中读出,换言之,不进行来自svol1以及svol2的读出。这样,首先将写入对象的数据存储到pvol,之后,将其存储到svol1和2。必须将读取对象的数据从pvol中读出。即,保证顺序性以及整合性。结果,即使进行将数据并行写入到svol1和svol2,关于读出,也能够防止发生所谓的数据乱码。

具体而言,在本实施例中,在存储装置1至3中的任意个接收了write命令或read命令,由接收到该命令的存储装置执行的数据输入输出处理程序2350以及卷拷贝控制程序2370中的至少一个(下面,为方便起见称为“程序单元”)进行:

(w)在接收到的命令为write命令的情况下,即使该write命令指定pvol、svol1和svol2中的任意个,也将根据该write命令的写入对象的数据写入到pvol,之后,将该写入对象的数据写入到svol1和svol2中的至少一个。

(r)在接收到的命令为read命令的情况下,即使该read命令指定pvol、svol1和svol2中的任意个,也将根据该read命令的读取对象的数据从pvol中读出。

(w)的详情如下:

·在存储装置3接收到write命令的情况下,程序单元并行进行:将写入对象的数据写入到pvol,之后,将指定了svol1的write命令发送到存储装置1以将该写入对象的数据写入到svol1;将指定了svol2的write命令发送到存储装置2以将该写入对象的数据写入到svol2。在存储装置1和2分别接收到完成响应的情况下,程序单元将完成响应返回到主机计算机1000。

·在存储装置1接收到write命令的情况下,程序单元不将根据该write命令的写入对象的数据写入到svol1,而将指定pvol的write命令发送到存储装置3以将该写入对象的数据写入到pvol。存储装置3将写入对象的数据写入到pvol,之后,将该写入对象的数据写入到svol2,将完成响应返回到存储装置1。在存储装置1中,程序单元将上述写入对象的数据写入到svol1,将完成响应返回到主机计算机1000。

·在存储装置2接收到write命令的情况下,程序单元不将根据该write命令的写入对象的数据写入到svol2,而将指定pvol的write命令发送到存储装置3以将该写入对象的数据写入到pvol。存储装置3将写入对象的数据写入到pvol,之后,将该写入对象的数据写入到svol1,将完成响应返回到存储装置2。在存储装置2中,程序单元将上述写入对象的数据写入到svol2,将完成响应返回到主机计算机1000。

下面,对关于ha多目标结构的写入处理和读取处理各自的详情进行说明。此外,对发出到存储系统(虚拟存储装置3000)的write命令及read命令进行基于图6a~图8所示的表规定的处理,接受指定pvol、svol1和svol2中的任一个的write命令以及read命令,但在以下说明中,省略有关参照图6a~图8所示的表的处理的说明。

首先,对关于ha多目标结构的写入处理的详情进行说明。此外,在图11~图13中,采用下述符号规则:

·“writecmd”=write命令

·“writersp”=针对write命令的完成响应或错误响应

·“writersp(ok)”=针对write命令的完成响应

·“writersp(ng)”=针对write命令的错误响应

·“锁w/r)”=不可写入且不可读取的排它锁

·“锁w)”=不可写入且可读取的排它锁。

图11是表示有关由来自主机计算机1000的write命令指定pvol的实例(图1的路径8100被用于发送write命令的实例)的写入处理的流程的图。

存储装置3的数据输入输出处理程序2350从主机计算机1000接收write命令(s1101)。

存储装置3的数据输入输出处理程序2350或卷拷贝控制程序2370通过不可写入且不可读取的排它锁对pvol进行锁定,具体而言,例如,将该排它锁的id、pvol的id、以及包含进行了该排它锁的lba的条目追加到排它锁管理表2390(s1102)。存储装置3的数据输入输出处理程序2350将写入对象的数据写入到pvol(s1104)。此外,在此,可以将写入对象的数据实际写入到pvol,也可以其先写入到存储装置3的高速缓冲存储器2400再异步写入到pvol。正在进行不可写入且不可读取的排它锁的区域不能写入数据,也不能读出数据。

存储装置3的卷拷贝控制程序2370并行进行:将指定了svol1的write命令发送到存储装置1(s1104a);将指定了svol2的write命令发送到存储装置2(s1104b)。根据卷拷贝对管理表2340可确定pvol的对方为svol1以及svol2。另外,ha对1和ha对2的优先级相同,因此,并行进行s1104a和s1104b。

存储装置1的数据输入输出处理程序2350或卷拷贝控制程序2370响应来自存储装置3的write命令,而对svol1进行不可写入且可读取的排它锁(s1105a)。存储装置1的数据输入输出处理程序2350或卷拷贝控制程序2370将写入对象的数据写入到svol1(s1106a),返回针对来自存储装置3的write命令的响应(s1107a)。此外,关于svol2,通过存储装置2的数据输入输出处理程序2350或卷拷贝控制程序2370进行与s1105a~s1107a同样的处理(s1105b~s1107b)。

存储装置3的卷拷贝控制程序2370对是否从存储装置1和2双方接收到完成响应进行判断(s1108)。在s1108的判断结果为否的情况下,存储装置3的数据输入输出处理程序2350将错误响应返回到主机计算机1000(s1109)。错误响应例如可以为提示重试的响应(例如check响应)。由此,主机计算机1000可以再次发送相同的write命令。

在s1108的判断结果为是的情况下,存储装置3的数据输入输出处理程序2350将完成响应返回到主机计算机1000(s1110)。

对存储装置1至3分别解除排它锁(s1111a、s1111b、s1111c)。例如,在s1110之后,存储装置3的数据输入输出处理程序2350或卷拷贝控制程序2370分别将已将完成响应返回到主机计算机1000的情况报告给存储装置1和2,对pvol解除不可写入且不可读取的排它锁,具体而言,例如为从排它锁管理表2390删除包含该排它锁的id、pvol的id、以及进行了该排它锁的lba的条目(s1111a)。存储装置1的数据输入输出处理程序2350或卷拷贝控制程序2370接受来自存储装置3的报告而对svol1解除不可写入且可读取的排它锁(s1111b)。同样,存储装置2的数据输入输出处理程序2350或卷拷贝控制程序2370接受来自存储装置3的报告而对svol2解除不可写入且可读取的排它锁(s1111c)。

根据图11,即使将数据并行写入到svol1和svol2,也维持先将数据写入到pvol的顺序性,且,在读取处理中,即使由read命令指定pvol、svol1和svol2中的任意个,因为数据的读出源被pvol限制,所以也可以维持整合性。另外,有关pvol的不可写入且不可读取的排它锁以及有关svol1和svol2各自的不可写入且可读取的排它锁有助于整合性的维持。

图12是表示有关由来自主机计算机1000的write命令所指定svol1的实例(图1的路径8200被用于发送write命令的实例)的写入处理的流程的图。

存储装置1的数据输入输出处理程序2350从主机计算机1000接收write命令(s1201)。

存储装置1的数据输入输出处理程序2350或卷拷贝控制程序2370对svol1进行不可写入且可读取的排它锁(s1202)。而且,存储装置1的卷拷贝控制程序2370将指定了pvol的write命令发送到存储装置3(s1203)。根据卷拷贝对管理表2340可确定svol1的对方为pvol。

存储装置3的数据输入输出处理程序2350或卷拷贝控制程序2370响应于来自存储装置1的write命令而对pvol1进行不可写入且不可读取的排它锁(s1204),将写入对象的数据写入到pvol(s1205)。而且,存储装置3的卷拷贝控制程序2370将指定了svol2的write命令发送到存储装置2(s1206)。根据卷拷贝对管理表2340可特定pvol的对方为svol2,且因为从svol1侧接收到write命令,所以可确定无需将write命令发送到svol1侧。

存储装置2的数据输入输出处理程序2350或卷拷贝控制程序2370响应于来自存储装置3的write命令而对svol2进行不可写入且可读取的排它锁(s1207),将写入对象的数据写入到svol2(s1208)。而且,存储装置2的卷拷贝控制程序2370返回针对来自存储装置3的write命令的响应(s1209)。

存储装置3的卷拷贝控制程序2370在从存储装置2接收到响应的情况下,返回针对来自存储装置1的write命令的响应(s1210)。

存储装置1的数据输入输出处理程序2350或卷拷贝控制程序2370在从存储装置3接收到响应的情况下,将写入对象的数据写入到svol1(s1211),将针对s1201中接收到的write命令的响应返回到主机计算机1000(s1212)。

对存储装置1至3分别解除排它锁(s1213a、s1213b、s1213c)。例如,在s1212之后,存储装置1的数据输入输出处理程序2350或卷拷贝控制程序2370将已将完成响应返回到主机计算机1000的情况报告给存储装置3,也将该报告从存储装置3发送到存储装置2。之后,进行像s1213a~s1213c那样的锁定解除。

根据图12,即使由来自主机计算机1000的write命令指定svol1作为写入目的,也在将数据写入到svol1之前,将数据写入到pvol。即,维持先将数据写入到pvol的顺序性。在读取处理中,即使由read命令指定pvol、svol1和svol2中的任一个,数据的读出源也被pvol限制。因此,也可以维持整合性。

此外,根据图12的例子,按照pvol→svol2→svol1的顺序写入数据,但在将write命令发送到了pvol的情况下,也可以将数据并行写入到svol2和svol1。即,在s1205之后,也可以与s1206并行将指定svol1的write命令从存储装置3发送到存储装置1。而且,在从存储装置1和2分别接收到完成响应的情况下,存储装置3也可以将结束报告给存储装置1。存储装置1在接收到该报告的情况下,也可以将完成响应返回到主机计算机1000。

图13是表示有关由来自主机计算机1000的write命令指定svol2的实例(图1的路径8300被用于发送write命令的实例)的写入处理的流程的图。

根据图13,除图12的svol1为svol2,图12的svol2为svol1这一点外,分别进行与s1201~s1213c同样的处理(s1301~s1313c)。

以上为关于ha多目标结构的写入处理的详情的说明。接下来,对关于ha多目标结构的读取处理的详情进行说明。此外,在图14~图16中,采用下述符号规则:

·“readcmd”=read命令

·“readrsp”=针对read命令的完成响应(包含读取对象的数据的响应)或错误响应

·“readrsp(ok)”=针对read命令的完成响应

·“readrsp(ng)”=针对read命令的错误响应

·“锁w/r)”=不可写入且不可读取的排它锁

·“锁w)”=不可写入且可读取的排它锁。

图14是表示有关由来自主机计算机1000的read命令指定pvol的实例(图1的路径8100被用于发送read命令的实例)的读取处理的流程的图。

存储装置3的数据输入输出处理程序2350从主机计算机1000接收read命令(s1401)。

存储装置3的数据输入输出处理程序2350将根据该read命令的读取对象的数据从pvol中读出(s1402)。

存储装置3的数据输入输出处理程序2350将包含该读取对象的数据的响应返回到主机计算机1000(s1403)。

图15是表示有关由来自主机计算机1000的read命令指定svol1的实例(图1的路径8200被用于发送read命令的实例)的读取处理的流程的图。

存储装置1的数据输入输出处理程序2350从主机计算机1000接收read命令(s1501)。

存储装置1的数据输入输出处理程序2350或卷拷贝控制程序2370不从svol1中读出读取对象的数据,而将指定pvol的read命令发送到存储装置3(s1502)。

存储装置3的数据输入输出处理程序2350或卷拷贝控制程序2370响应于来自存储装置1的read命令而从pvol读出读取对象的数据(s1503),返回包含该读取对象的数据的响应(s1504)。

存储装置1的数据输入输出处理程序2350对s1502中发送的根据read命令的读出是否成功(能否接收到包含读取对象的数据的响应)进行判断(s1505)。

在s1505的判断结果为是的情况下,存储装置1的数据输入输出处理程序2350返回包含读取对象的数据的响应作为针对s1501中接收到的read命令的响应(s1506)。

在s1505的判断结果为否的情况下,存储装置1的数据输入输出处理程序2350将错误响应返回到主机计算机1000(s1507)。错误响应例如可以为提示重试的响应(例如check响应)。由此,主机计算机1000可以再次发送相同的read命令。

根据图15,即使由来自主机计算机1000的read命令指定svol1作为读出源,也最先从写入了数据的pvol中读出数据。因此,能够维持整合性。

图16是表示有关由来自主机计算机1000的read命令指定svol2的实例(图1的路径8300被用于发送read命令的实例)的写入处理的流程的图。

根据图16,除图15的svol1为svol2,图15的svol2为svol1这一点外,分别进行与s1501~s1507同样的处理(s1601~s1607)。

此外,本发明不限于上述的实施例,也可以包含各种变形例。例如,上述的实施例为使本发明容易理解而进行的详细说明,并非必须具备所说明的所有结构。另外,也可以将某实施例的结构的一部分置换为其它的实施例的结构,另外,也可以在某实施例的结构中追加其它的实施例的结构。另外,也可以对各实施例的结构的一部分进行其它结构的追加、删除、置换。

另外,上述各结构、功能、处理部等可以利用硬件通过将它们的一部分或全部设计到例如集成电路中等而实现。另外,上述各结构、功能等也可以利用软件通过解释、执行处理器实现各功能的程序而实现。实现各功能的程序、表、文件等信息可以置于存储器或硬盘、ssd(solidstatedrive)等记录装置、或ic卡、sd卡等记录介质。

附图标记说明

2000:物理存储装置。

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