一种访问存储设备的方法及装置与流程

文档序号:11216115阅读:673来源:国知局
一种访问存储设备的方法及装置与流程

本发明涉及通信领域,特别涉及一种访问存储设备的方法及装置。



背景技术:

在数字化、信息化的当今社会,数据作为最基础的元素,没有数据就没有信息技术的飞速发展,因此对数据的安全就有相当高的要求。为了保证数据的安全性,当前数据中心使用主从两个存储设备来存储数据,数据中心内的主机在主存储设备中读写数据,从存储设备对主存储设备中的数据进行备份;当主存储设备中的数据受到破坏时,将从存储设备中的数据同步到主存储设备中,以保证数据的安全性。

目前当主存储设备中的数据受到破坏且需要同步数据时,主机接收用户触发的同步命令,该同步命令用于触发主机将从存储设备中的数据拷贝到主存储设备中,然后主机将从存储设备包括的各存储区域内的数据分别拷贝到主存储设备中对应的存储区域中;例如,将从存储设备包括的第一个存储区域内存储的数据拷贝到主存储设备的一个存储区域中,拷贝完了再将从存储设备包括的第二个存储区域内存储的数据拷贝到主存储设备的另一存储区域中,直到拷贝完从存储设备中的所有存储区域内存储的数据为止。

需要说明的是,在同步的过程中当主机需要读写主存储设备中的某个存储区域时,如果已向该存储区域拷贝完数据,则主机可以直接读写该存储区域;如果正在向该存储区域拷贝数据,则主机等待拷贝完成之后再读写该存储区域;如果还未向该存储区域拷贝数据,则主机需要先向该存储区域拷贝数据并在拷贝完之后读写该存储区域。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

在同步数据的过程中,如果主机需要读写的存储区域正在拷贝数据或还未拷贝数据,主机需要等待一段时后才能读写该存储区域,影响主机的读写性能。



技术实现要素:

为了提高主机的读写性能,本发明提供了一种访问存储设备的方法及装置。所述技术方案如下:

第一方面,提供了一种访问存储设备的方法,所述方法包括:

接收同步命令消息,所述同步命令消息用于触发将从存储设备中的数据同步到主存储设备,所述从存储设备是对主存储设备的备份,所述主存储设备包括第一磁盘阵列和第一管理模块,所述第一管理模块指向所述第一磁盘阵列;所述从存储设备包括第二磁盘阵列和第二管理模块,所述第二管理模块指向所述第二磁盘阵列;

将所述第一管理模块指向所述第二磁盘阵列,以及将所述第二管理模块指向所述第一磁盘阵列;

接收读写指令,根据所述读写指令读写所述第一管理模块指向的所述第二磁盘阵列。

在第一方面中,将第一管理模块指向的第二磁盘阵列,以及将第二管理模块指向的第一磁盘阵列,由于第二磁盘阵列中的数据未受到破坏,且同步数据的方向是由第二磁盘阵列向第一磁盘阵列同步,这样在向第一磁盘阵列同步数据的过程,不需要向第二磁盘阵列存储数据,如此主机向第一管理模块发送读写指令时,第一管理模块读写其指向的第二磁盘阵列,不会响应读写数据,从而提高了主机的读写性能。

结合第一方面,在第一方面的第一种可能的实现方式中,所述第一管理模块存储所述第一磁盘阵列的地址或用于指向所述第一磁盘阵列的第一指针;所述第二管理模块存储所述第二磁盘阵列的地址或用于指向所述第二磁盘阵列的第二指针;

所述将所述第一管理模块指向所述第二磁盘阵列,包括:

将所述第一管理模块存储的所述第一磁盘阵列的地址更新为所述第二磁盘阵列的地址,或者,将所述第一管理模块存储的第一指针由指向所述第一磁盘阵列更新为指向所述第二磁盘阵列;

所述将所述第二管理模块指向所述第一磁盘阵列,包括:

将所述第二管理模块存储的所述第二磁盘阵列的地址更新为所述第一磁盘阵列的地址,或者,将所述第二管理模块存储的第二指针由指向所述第二磁盘 阵列更新为指向所述第一磁盘阵列。

在第一方面的第一种可能的实现方式中,由于第一管理模块存储第一磁盘阵列的地址或用于指向第一磁盘阵列的第一指针;第二管理模块存储第二磁盘阵列的地址或用于指向第二磁盘阵列的第二指针,将第一管理模块变换为指向第二磁盘阵列时,只需要更新第一管理模块包括的地址或第一指针,以及将第二管理模块变换为指向第一磁盘阵列时,只需要更新第二管理模块存储的地址或第二指针,操作简便。

结合第一方面,在第一方面的第二种可能的实现方式中,所述方法还包括:

对所述第一管理模块指向的所述第二磁盘阵列中当前存储的数据进行快照处理,得到快照数据;

将所述快照数据同步到所述第二管理模块指向的所述第一磁盘阵列中。

在第一方面的第二种可能的实现方式中,由于对第二磁盘阵列中的数据进行快照得到了快照数据,然后再将快照数据同步到第一磁盘阵列中,这样保证了第一磁盘阵列与第二磁盘阵列同步,且在同步过程中避免主机对第二磁盘阵列的读写产生影响。

第二方面、提供了一种访问存储设备的装置,所述装置包括:

接收单元,用于接收同步命令消息,所述同步命令消息用于触发将从存储设备中的数据同步到主存储设备,所述从存储设备是对主存储设备的备份,所述主存储设备包括第一磁盘阵列和第一管理模块,所述第一管理模块指向所述第一磁盘阵列;所述从存储设备包括第二磁盘阵列和第二管理模块,所述第二管理模块指向所述第二磁盘阵列;

处理单元,用于将所述第一管理模块指向所述第二磁盘阵列,以及将所述第二管理模块指向所述第一磁盘阵列;

所述接收单元,还用于接收读写指令;

所述处理单元,还用于根据所述接收单元接收的所述读写指令读写所述第一管理模块指向的所述第二磁盘阵列。

在第二方面中,将第一管理模块指向第二磁盘阵列,以及将第二管理模块指向第一磁盘阵列,由于第二磁盘阵列中的数据未受到破坏,且同步数据的方向是由第二磁盘阵列向第一磁盘阵列同步,这样在向第一磁盘阵列同步数据的 过程,不需要向第二磁盘阵列存储数据,如此主机向第一管理模块发送读写指令时,第一管理模块读写其指向的第二磁盘阵列,不会响应读写数据,从而提高了主机的读写性能。

结合第二方面,在第二方面的第一种可能的实现方式中,所述第一管理模块存储所述第一磁盘阵列的地址或用于指向所述第一磁盘阵列的第一指针;所述第二管理模块存储所述第二磁盘阵列的地址或用于指向所述第二磁盘阵列的第二指针;

所述处理单元,用于将所述第一管理模块存储的所述第一磁盘阵列的地址更新为所述第二磁盘阵列的地址,或者,将所述第一管理模块存储的第一指针由指向所述第一磁盘阵列更新为指向所述第二磁盘阵列;将所述第二管理模块存储的所述第二磁盘阵列的地址更新为所述第一磁盘阵列的地址,或者,将所述第二管理模块存储的第二指针由指向所述第二磁盘阵列更新为指向所述第一磁盘阵列。

在第二方面的第一种可能的实现方式中,由于第一管理模块存储第一磁盘阵列的地址或用于指向第一磁盘阵列的第一指针;第二管理模块存储第二磁盘阵列的地址或用于指向第二磁盘阵列的第二指针,将第一管理模块变换为指向第二磁盘阵列时,只需要更新第一管理模块存储的地址或第一指针,以及将第二管理模块变换为指向第一磁盘阵列时,只需要更新第二管理模块存储的地址或第二指针,操作简便。

结合第二方面,在第二方面的第二种可能的实现方式中,所述处理单元,用于对所述第一管理模块指向的所述第二磁盘阵列中当前存储的数据进行快照处理,得到快照数据;将所述快照数据同步到所述第二管理模块指向的所述第一磁盘阵列中。

在第二方面的第二种可能的实现方式中,由于对第二磁盘阵列中的数据进行快照得到了快照数据,然后再将快照数据同步到第一磁盘阵列中,这样保证了第一磁盘阵列与第二磁盘阵列同步,且在同步过程中避免主机对第二磁盘阵列的读写产生影响。

附图说明

图1-1是本发明实施例提供的一种网络架构图;

图1-2是本发明实施例提供的另一种网络架构示意图;

图2是本发明实施例提供的一种主机结构示意图;

图3-1是本发明实施例提供的一种访问存储设备的方法流程图;

图3-2是本发明实施例提供的一种显示界面示意图;

图3-3是本发明实施例提供的另一种网络架构示意图;

图3-4是本发明实施例提供的另一种网络架构示意图;

图4是本发明实施例提供的一种访问存储设备的装置结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本发明实施例可以应用于数据中心或机房等数据存储应用场景。该应用场景的网络架构如图1-1所示,该网络架构包括主机和存储设备,存储设备包括主存储设备和从存储设备。主机只对主存储设备进行读写访问。当主机需要读写访问时,主机只向主存储设备发送读写指令,读写指令包括读指令和写指令,读指令用于主机从主存储设备中读数据,写指令用于主机向主存储设备中写数据。从存储设备是对主存储设备的备份。

参见图1-2,主存储设备包括第一管理模块和第一磁盘阵列,第一管理模块指向第一磁盘阵列,第一磁盘阵列的数目可以为一个或多个,当为一个时,第一管理模块指向该一个第一磁盘阵列,当为多个时,第一管理模块分别指向该多个中的每个第一磁盘阵列。主机向主存储设备发送读写指令实质是向第一管理模块发送读写指令。第一磁盘阵列用于存储数据,第一管理模块用于接收主机发送的读写指令,根据该读写指令读写其指向的第一磁盘阵列。第一管理模块根据该读写指令读写其指向的第一磁盘阵列具体可以为,当主机需要读数据时,主机向第一管理模块发送读指令,第一管理模块接收该读指令,从其指向的第一磁盘阵列中读取该读指令对应的数据,再向主机发送该数据;当主机需要写数据时,主机向第一管理模块发送写指令和需要向主存储设备写入的数据,第一管理模块接收该写指令和该数据,将该数据写入其指向的第一磁盘阵列。

从存储设备包括第二管理模块和第二磁盘阵列,第二管理模块指向第二磁 盘阵列,第二磁盘阵列用于存储数据,第二磁盘阵列的数目可以为一个或多个,当为一个时,第二管理模块指向该一个第二磁盘阵列,当为多个时,第二管理模块分别指向该多个中的每个第二磁盘阵列。第二管理模块用于将主存储设备中的数据备份至其指向的第二磁盘阵列,具体的,第二管理模块定期或不定期地将主存储设备中发生变化的数据存储到其指向的第二磁盘阵列中。

可选的,第一管理模块指向第一磁盘阵列的方式可以为:第一管理模块存储第一磁盘阵列的地址,或者,第一管理模块存储用于指向第一磁盘阵列的第一指针。

第一管理模块在接收主机发送的读写指令时,可以根据自身存储的第一磁盘阵列的地址或第一指针,确定出对应的第一磁盘阵列,然后对第一磁盘阵列进行读写操作。

可选的,第二管理模块指向第二磁盘阵列的方式可以为:第二管理模块存储第二磁盘阵列的地址,或者,第二管理模块存储用于指向第二磁盘阵列的第二指针。

第二管理模块在将主存储设备中发生变化的数据存储到第二磁盘阵列时,先根据自身包括的第二磁盘阵列的地址或第二指针,确定出对应的第二磁盘阵列,然后再将将主存储设备中发生变化的数据存储到第二磁盘阵列中。

可选的,参见图1-2,第一管理模块包括第一读写缓存单元和第一卷管理单元,第一读写缓存单元用于接收主机发送的读写指令,根据该读写指令读写第一磁盘阵列,第一卷管理单元用于管理第一磁盘阵列的存储空间。第一读写缓存单元存储第一磁盘阵列的地址或第一指针,同样,第一卷管理单元也存储第一磁盘阵列的地址或第一指针。第一读写缓存单元在接收到主机发送的读写指令后,先根据自身存储的第一磁盘阵列的地址或第一指针确定出对应的第一磁盘阵列,然后再根据该读写指令读写第一磁盘阵列;以及,第一卷管理单元也是根据自身存储的第一磁盘阵列的地址或第一指针确定出对应的第一磁盘阵列,然后再管理第一磁盘阵列的存储空间。

例如,读写指令为读指令时,第一读写缓存单元接收主机发送的读指令,先根据自身存储的第一磁盘阵列的地址或第一指针确定出对应的第一磁盘阵列,然后从第一磁盘阵列中读取该读指令对应的数据并向主机发送该数据;读写指令为写指令时,第一读写缓存单元接收主机发送的写指令和需要向主存储 设备写入的数据,然后向第一卷管理单元发送用于请求分配存储空间的命令;第一卷管理单元根据自身存储的第一磁盘阵列的地址或第一指针,确定出对应的第一磁盘阵列,在第一磁盘阵列中分配存储空间,向第一读写缓存单元发送该存储空间的地址,最后由第一读写缓存单元根据该存储空间的地址将该数据写入该存储空间。

第二管理模块包括第二读写缓存单元和第二卷管理单元,第二读写缓存单元用于将主存储设备中的数据备份至第二磁盘阵列,第二卷管理单元用于管理第二磁盘阵列的存储空间。第二读写缓存单元存储第二磁盘阵列的地址或第二指针,同样,第二卷管理单元也存储第二磁盘阵列的地址或第二指针。可选的,在将主存储设备中的数据备份至第二磁盘阵列过程,第二卷管理单元根据自身存储的第二磁盘阵列的地址或第二指针确定出对应的第二磁盘阵列,在第二磁盘阵列中分配存储空间,向第二读写缓存单元发送该存储空间的地址,第二读写缓存单元根据该存储空间的地址将主存储设备中的数据存储该存储空间中。

在本实施例中,存储设备可以为lun(logicalunitnumber,逻辑单元号),主存储设备可以为主lun,从存储设备可以为从lun。第一读写缓存单元为主lun中包括的cache(缓存),第一卷管理单元为主lun中包括的volume(卷)。第二读写缓存单元为从lun中包括的cache,第二卷管理单元为从lun中包括的volume。

其中,需要说明的是:主存储设备中存储的数据常常会遭到病毒攻击、磁盘坏道或磁盘损坏等原因受到破坏,为了保证主机能够正常的读写访问主存储设备,需要将从存储设备中的数据同步至主存储设备,详细过程可以参见后续实施提供的详细过程。

参见图2,图2是本发明实施例提供的一种主机200结构示意图,主机200可以是上述图1-1和1-2所示实施例提及的主机,主机200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上接收器201、处理器202,还可以包括发送器203,一个或一个以上存储应用程序204或数据205的存储介质206(例如一个或一个以上海量存储设备)。其中,存储介质206可以是短暂存储或持久存储。存储在存储介质206的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括一系列指令操作。更进一步地,处理器202可以 设置为与存储介质206通信,在主机200上执行存储介质206中的一系列指令操作。

主机200还可以包括一个或一个以上电源207,一个或一个以上有线或无线网络接口208,一个或一个以上输入输出接口209,和/或,一个或一个以上操作系统210,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等,且该操作系统210可以存储在存储介质206中。

在本发明中主机200的接收器201、处理器202具有以下功能:

所述接收器201,用于接收同步命令消息,所述同步命令消息用于触发将从存储设备中的数据同步到主存储设备,所述从存储设备是对主存储设备的备份,所述主存储设备包括第一磁盘阵列和第一管理模块;所述第一管理模块指向所述第一磁盘阵列,所述从存储设备包括第二磁盘阵列和第二管理模块,所述第二管理模块指向所述第二磁盘阵列;其中,可选的,第一管理模块用于接收主机发送的读写指令,根据所述读写指令读写其指向的所述第一磁盘阵列,第二管理模块,用于将所述主存储设备中的数据备份至其指向的所述第二磁盘阵列;

所述处理器202,用于将所述第一管理模块指向所述第二磁盘阵列,以及将所述第二管理模块指向所述第一磁盘阵列;

所述接收器201,还用于接收读写指令;

所述处理器202,还用于根据所述接收单元201接收的所述读写指令读写所述第一管理模块指向的所述第二磁盘阵列。

可选的,所述第一管理模块存储所述第一磁盘阵列的地址或用于指向所述第一磁盘阵列的第一指针;所述第二管理模块存储所述第二磁盘阵列的地址或用于指向所述第二磁盘阵列的第二指针;

所述处理器202,用于将所述第一管理模块存储的所述第一磁盘阵列的地址更新为所述第二磁盘阵列的地址,或者,将所述第一管理模块存储的第一指针由指向所述第一磁盘阵列更新为指向所述第二磁盘阵列;将所述第二管理模块存储的所述第二磁盘阵列的地址更新为所述第一磁盘阵列的地址,或者,将所述第二管理模块存储的第二指针由指向所述第二磁盘阵列更新为指向所述第一磁盘阵列。

可选的,所述第一管理模块包括第一读写缓存单元和第一卷管理单元,所述第一读写缓存单元用于接收主机发送的读写指令,根据所述读写指令读写所 述第一磁盘阵列,所述第一卷管理单元用于管理所述第一磁盘阵列的存储空间;所述第一读写缓存单元存储所述第一磁盘阵列的地址或所述第一指针,所述第一卷管理单元存储所述第一磁盘阵列的地址或所述第一指针;

所述处理器202,用于将所述第一读写缓存单元存储的所述第一磁盘阵列的地址更新为所述第二磁盘阵列的地址,以及,将所述第一卷管理单元存储的所述第一磁盘阵列的地址更新为所述第二磁盘阵列的地址;或者,将所述第一读写缓存单元存储的第一指针由指向所述第一磁盘阵列更新为指向所述第二磁盘阵列,以及,将所述第一卷管理单元存储的第一指针由指向所述第一磁盘阵列更新为指向所述第二磁盘阵列。

可选的,所述第二管理模块包括第二读写缓存单元和第二卷管理单元,所述第二读写缓存单元用于将所述主存储设备中的数据备份至所述第二磁盘阵列,所述第二卷管理单元用于管理所述第二磁盘阵列的存储空间;所述第二读写缓存单元存储所述第二磁盘阵列的地址或所述第二指针,所述第二卷管理单元存储所述第二磁盘阵列的地址或所述第二指针;

所述处理器202,用于将所述第二读写缓存单元存储的所述第二磁盘阵列的地址更新为所述第一磁盘阵列的地址,以及,将所述第二卷管理单元存储的所述第二磁盘阵列的地址更新为所述第一磁盘阵列的地址;或者,将所述第二读写缓存单元存储的第二指针由指向所述第二磁盘阵列更新为指向所述第一磁盘阵列,以及,将所述第二卷管理单元存储的第二指针由指向所述第二磁盘阵列更新为指向所述第一磁盘阵列。

可选的,所述处理器202,用于对所述第一管理模块指向的所述第二磁盘阵列中当前存储的数据进行快照处理,得到快照数据;将所述快照数据同步到所述第二管理模块指向的所述第一磁盘阵列中。

在本发明实施例中,将第一管理模块指向的第一磁盘阵列变换为指向第二磁盘阵列,以及将第二管理模块指向的第二磁盘阵列变为指向第一磁盘阵列,由于在向第一磁盘阵列同步数据的过程,不需要向第二磁盘阵列存储数据,如此主机向第一管理模块发送读写指令时,第一管理模块读写其指向的第二磁盘阵列,不会响应读写数据,从而提高了主机的读写性能。

参见图3-1,本发明实施例提供了一种访问存储设备的方法,该方法的执行 主体可以为上述任一实施例提及的主机,该方法包括:

步骤301:接收同步命令消息,该同步命令消息用于触发将从存储设备中的数据同步到主存储设备中。

本发明实施例应用于如图1-1所示的网络架构,当主存储设备中存储的数据遭受到病毒攻击、磁盘坏道或磁盘损坏等原因破坏时,用户可以向主机提交同步命令消息,该同步命令消息携带该主存储设备的地址和该主存储设备对应的从存储设备的地址,用于表示触发将从存储设备中的数据同步到主存储设备中。

用户向主机提交同步命令消息的实现方式有多种,接下来,用一具体实例详细说明用户向主机提交同步命令消息的一种实现方式,详细过程为:

主机可以检测出该网络架构中数据受到破坏的主存储设备,然后向用户发出提示,该提示可以为语音提示或在主机的显示界面上显示一段文字提示。用户可以在主机上打开如图3-2所示的显示界面,主机在该显示界面上显示该网络架构中包括的主存储设备和每个主存储设备对应的从存储设备;对于数据受到破坏的主存储设备,主机还可以在该主存储设备所在行显示破坏标识和同步按钮。用户可以点击该同步按钮,该按钮会产生携带该主存储设备的地址和该主存储设备对应的从存储设备的地址的同步命令消息并提交给主机。

可选的,用户除了按上述方式向主机提交同步命令消息外,还可以采用其他方式,在此就不一一介绍。

其中,参见图1-2,主存储设备包括第一管理模块和第一磁盘阵列,第一管理模块指向第一磁盘阵列,第一磁盘阵列用于存储数据,从存储设备包括第二管理模块和第二磁盘阵列,第二管理模块指向第二磁盘阵列,第二磁盘阵列用于存储数据。主存储设备中的数据受到破坏实质为第一磁盘阵列中存储的数据受到破坏。

步骤302:将主存储设备中包括的第一管理模块指向的第二磁盘阵列。

在执行本步骤前,第一管理模块指向第一磁盘阵列,第一管理模块指向第一磁盘阵列的实现形式可以为:第一管理模块存储第一磁盘阵列的地址,或者,第一管理模块存储用于指向第一磁盘阵列的第一指针。

本步骤可以为:主机根据主存储设备的地址和从存储设备的地址,确定参与同步的主存储设备和从存储设备,获取从存储设备中存储的第二磁盘阵列的地址,将第一管理模块存储的第一磁盘阵列的地址更新为第二磁盘阵列的地址, 或者,根据第二磁盘阵列的地址,将第一管理模块存储的第一指针由指向第一磁盘阵列更新为指向第二磁盘阵列。

对于上述描述的更新过程,在具体实现时可以有多种实现方式,在本实施例中给出一种具体实现方式,其详细过程可以为:

主机在确定出参与同步的主存储设备和从存储设备后,向从存储设备发送获取请求消息,从存储设备接收该获取请求消息,向主机发送其包括的第二磁盘阵列的地址;主机接收第二磁盘阵列的地址,向主存储设备包括的第一管理模块发送更新命令消息,该更新命令消息携带第二磁盘阵列的地址;第二管理模块接收该更新命令消息,将自身存储的第一磁盘阵列的地址更新为第二磁盘阵列的地址,或者,根据第二磁盘阵列的地址,将自身存储的第一指针由指向第一磁盘阵列更新为指向第二磁盘阵列。

可选的,第一管理模块包括第一读写缓存单元和第一卷管理单元,第一读写缓存单元存储第一磁盘阵列的地址或第一指针,第一卷管理单元存储第一磁盘阵列的地址或第一指针。

相应的,主机对第一管理模块存储的地址或指针进行更新的过程,可以为:

主机将第一读写缓存单元存储的第一磁盘阵列的地址更新为第二磁盘阵列的地址,以及,将第一卷管理单元存储的第一磁盘阵列的地址更新为第二磁盘阵列的地址;或者,将第一读写缓存单元存储的第一指针由指向第一磁盘阵列更新为指向第二磁盘阵列,以及,将第一卷管理单元存储的第一指针由指向第一磁盘阵列更新为指向第二磁盘阵列。

对于上述更新第一读写缓存单元和第一卷管理单元中的地址或指针过程,在具体实现时可以有多种实现方式,在本实施例中也给出一种具体实现方式,其详细过程可以为:

主机分别向第一读写缓存单元和第一卷管理单元发送更新命令消息,该更新命令消息携带第二磁盘阵列的地址;第一读写缓存单元接收该更新命令消息,将自身存储的第一磁盘阵列的地址更新为第二磁盘阵列的地址,或者,根据第二磁盘阵列的地址,将自身存储的第一指针由指向第一磁盘阵列更新为指向第二磁盘阵列;同样,第一卷管理单元接收该更新命令消息,将自身存储的第一磁盘阵列的地址更新为第二磁盘阵列的地址,或者,根据第二磁盘阵列的地址,将自身存储的第一指针由指向第一磁盘阵列更新为指向第二磁盘阵列。

步骤303:将从存储设备中包括的第二管理模块指向的第一磁盘阵列。

在执行本步骤前,第二管理模块指向第二磁盘阵列,第二管理模块指向第二磁盘阵列的实现形式可以为:第二管理模块存储第二磁盘阵列的地址,或,第二管理模块存储用于指向第二磁盘阵列的第二指针。

本步骤可以为:主机获取主存储设备中存储的第一磁盘阵列的地址,将第二管理模块存储的第二磁盘阵列的地址更新为第一磁盘阵列的地址,或者,根据第一磁盘阵列的地址,将第二管理模块存储的第二指针由指向第二磁盘阵列更新为指向第一磁盘阵列。

对于上述描述的更新过程,在具体实现时可以有多种实现方式,在本实施例中给出一种具体实现方式,其详细过程可以为:

主机向主存储设备发送获取请求消息,主存储设备接收该获取请求消息,向主机发送其包括的第一磁盘阵列的地址;主机接收第一磁盘阵列的地址,向从存储设备包括的第二管理模块发送更新命令消息,该更新命令消息携带第一磁盘阵列的地址;第二管理模块接收该更新命令消息,将自身存储的第二磁盘阵列的地址更新为第一磁盘阵列的地址,或者,根据第一磁盘阵列的地址,将自身存储的第二指针由指向第二磁盘阵列更新为指向第一磁盘阵列。

可选的,第二管理模块包括第二读写缓存单元和第二卷管理单元,第二读写缓存单元存储第二磁盘阵列的地址或第二指针,第二卷管理单元存储第二磁盘阵列的地址或第二指针。

相应的,主机对第二管理模块存储的地址或指针进行更新的过程,可以为:

主机将第二读写缓存单元存储的第二磁盘阵列的地址更新为第一磁盘阵列的地址,以及,将第二卷管理单元存储的第二磁盘阵列的地址更新为第一磁盘阵列的地址;或者,将第二读写缓存单元存储的第二指针由指向第二磁盘阵列更新为指向第一磁盘阵列,以及,将第二卷管理单元存储的第二指针由指向第二磁盘阵列更新为指向第一磁盘阵列。

对于上述更新第二读写缓存单元和第二卷管理单元中的地址或指针过程,在具体实现时可以有多种实现方式,在本实施例中也给出一种具体实现方式,其详细过程可以为:

主机向第二读写缓存单元和第二卷管理单元发送更新命令消息,该更新命令消息携带第一磁盘阵列的地址;第二读写缓存单元接收该更新命令消息,将 自身存储的第二磁盘阵列的地址更新为第一磁盘阵列的地址,或者,根据第一磁盘阵列的地址,将自身存储的第二指针由指向第二磁盘阵列更新为指向第一磁盘阵列;同样,第二卷管理单元接收该更新命令消息,将自身存储的第二磁盘阵列的地址更新为第一磁盘阵列的地址,或者,根据第一磁盘阵列的地址,将自身存储的第二指针由指向第二磁盘阵列更新为指向第一磁盘阵列。

需要说明的是:上述步骤302和303没有先后时序关系,可以先执行步骤302再执行步骤303,可以先执行步骤303再执行步骤302,或者两个步骤同步执行。且经过上述两个步骤之后,参见图3-3,主存储设备中的第一管理模块指向第二磁盘阵列,第二管理模块指向第一磁盘阵列;主机当接收到读写指令时需要读写访问主存储设备,主机可以执行如下步骤。

步骤304:接收读写指令,根据该读写指令读写主存储设备包括的第一管理模块指向的第二磁盘阵列。

具体的,主机接收读写指令,向主存储设备的第一管理模块发送该读写指令,第一管理模块接收该读写指令,根据该读写指令在其指向的第二磁盘阵列中进行读写操作;由于第二磁盘阵列中的数据未受到破坏,不需要向第二磁盘阵列中同步数据,所以第一管理模块在接收到主机发送的读写指令后,可以对第二磁盘阵列中的任何存储空间进行读写操作,从而提高了主机的读写性能。

另外,在执行步骤303之后,由于第一磁盘阵列中的数据受到破坏,需要将第二磁盘阵列的数据同步至第一磁盘阵列,因此在执行完步骤303之后,在第二磁盘阵列中的数据未发生变化之前,需要执行如下步骤。

步骤305:对第一管理模块指向的第二磁盘阵列中当前存储的数据进行快照处理,得到快照数据。

其中,该快照数据是当前第二磁盘阵列中存储的数据的备份,并且在当前之后即使第二磁盘阵列中的数据发生变化,该快照数据仍为当前第二磁盘阵列中存储的数据,不会随着第二磁盘阵列中的数据变化而变化。例如,参见图3-4,对第二磁盘阵列进行快照得到的快照数据,该快照数据为当前第二磁盘阵列的备份,其数据不会随第二磁盘阵列中的数据变化而变化。

步骤306:将快照数据同步到第一磁盘阵列中。

其中,第一磁盘阵列是由多个磁片组成,如果主存储设备发生磁盘坏道或磁盘损坏,则第一磁盘阵列中的某一个或多个磁片发生了损坏,在执行本步骤 之前,需要将第一磁盘阵列中发生损坏的磁片替换为完好的磁片,然后再将快照数据同步到第一磁盘阵列中。

可选的,在同步完成后,当第二磁盘阵列中的数据发生变化时,第二管理模块将第二磁盘阵列中发生变化的数据备份至第一磁盘阵列中。

在本发明实施例中,直接将由第一管理模块指向第一磁盘阵列变为指向第二磁盘阵列,将由第二管理模块指向第二磁盘阵列变为指向第一磁盘阵列。这样同步数据的方法变为从第二磁盘阵列向第一磁盘阵列同步,又由于第二磁盘阵列中的数据未发生损坏,在同步数据的过程不需要向第二磁盘阵列存储数据,所以主机可以直接对第二磁盘阵列进行读写操作,提高了主机的读写性能。另外,在变换之后对第二磁盘阵列进行快照得到快照数据,然后将该快照数据同步到第一磁盘阵列,保证第一磁盘阵列中的数据与第二磁盘阵列中的数据同步。

参见图4,本发明实施例提供了一种访问存储设备的装置,所述装置包括:

接收单元401,用于接收同步命令消息,所述同步命令消息用于触发将从存储设备中的数据同步到主存储设备,所述从存储设备是对主存储设备的备份,所述主存储设备包括第一磁盘阵列和第一管理模块,所述第一管理模块指向所述第一磁盘阵列;所述从存储设备包括第二磁盘阵列和第二管理模块,所述第二管理模块指向所述第二磁盘阵列;

处理单元402,用于将所述第一管理模块指向所述第二磁盘阵列,以及将所述第二管理模块指向所述第一磁盘阵列;

所述接收单元401,还用于接收读写指令;

所述处理单元402,还用于根据接收单元401接收的所述读写指令读写所述第一管理模块指向的所述第二磁盘阵列。

可选的,所述第一管理模块存储所述第一磁盘阵列的地址或用于指向所述第一磁盘阵列的第一指针;所述第二管理模块存储所述第二磁盘阵列的地址或用于指向所述第二磁盘阵列的第二指针;

所述处理单元402,用于将所述第一管理模块存储的所述第一磁盘阵列的地址更新为所述第二磁盘阵列的地址,或者,将所述第一管理模块存储的第一指针由指向所述第一磁盘阵列更新为指向所述第二磁盘阵列;将所述第二管理模块存储的所述第二磁盘阵列的地址更新为所述第一磁盘阵列的地址,或者,将 所述第二管理模块存储的第二指针由指向所述第二磁盘阵列更新为指向所述第一磁盘阵列。

可选的,所述第一管理模块包括第一读写缓存单元和第一卷管理单元所述第一读写缓存单元存储所述第一磁盘阵列的地址或所述第一指针,所述第一卷管理单元存储所述第一磁盘阵列的地址或所述第一指针;可选的,所述第一读写缓存单元用于接收主机发送的读写指令,根据所述读写指令读写所述第一磁盘阵列,所述第一卷管理单元用于管理所述第一磁盘阵列的存储空间;

所述处理单元402,用于将所述第一读写缓存单元存储的所述第一磁盘阵列的地址更新为所述第二磁盘阵列的地址,以及,将所述第一卷管理单元存储的所述第一磁盘阵列的地址更新为所述第二磁盘阵列的地址;或者,将所述第一读写缓存单元存储的第一指针由指向所述第一磁盘阵列更新为指向所述第二磁盘阵列,以及,将所述第一卷管理单元存储的第一指针由指向所述第一磁盘阵列更新为指向所述第二磁盘阵列。

所述处理单元402在具体更新时,所述处理单元402向从存储设备发送获取请求消息,以使从存储设备接收该获取请求消息后发送其包括的第二磁盘阵列的地址;接收从存储设备的第二磁盘阵列的地址,向主存储设备包括的第一管理模块发送更新命令消息,该更新命令消息携带第二磁盘阵列的地址,以使第二管理模块接收该更新命令消息,将自身存储的第一磁盘阵列的地址更新为第二磁盘阵列的地址,或者,根据第二磁盘阵列的地址,将自身存储的第一指针由指向第一磁盘阵列更新为指向第二磁盘阵列;

以及,所述处理单元402向主存储设备发送获取请求消息,以使主存储设备接收该获取请求消息并发送其包括的第一磁盘阵列的地址;接收第一磁盘阵列的地址,向从存储设备包括的第二管理模块发送更新命令消息,该更新命令消息携带第一磁盘阵列的地址,以使第二管理模块接收该更新命令消息,将自身存储的第二磁盘阵列的地址更新为第一磁盘阵列的地址,或者,根据第一磁盘阵列的地址,将自身存储的第二指针由指向第二磁盘阵列更新为指向第一磁盘阵列。

可选的,所述第二管理模块包括第二读写缓存单元和第二卷管理单元,所述第二读写缓存单元用于将所述主存储设备中的数据备份至所述第二磁盘阵列,所述第二卷管理单元用于管理所述第二磁盘阵列的存储空间;所述第二读 写缓存单元存储所述第二磁盘阵列的地址或所述第二指针,所述第二卷管理单元存储所述第二磁盘阵列的地址或所述第二指针;

所述处理单元402,用于将所述第二读写缓存单元存储的所述第二磁盘阵列的地址更新为所述第一磁盘阵列的地址,以及,将所述第二卷管理单元存储的所述第二磁盘阵列的地址更新为所述第一磁盘阵列的地址;或者,将所述第二读写缓存单元存储的第二指针由指向所述第二磁盘阵列更新为指向所述第一磁盘阵列,以及,将所述第二卷管理单元存储的第二指针由指向所述第二磁盘阵列更新为指向所述第一磁盘阵列。

可选的,所述处理单元402,用于对所述第一管理模块指向的所述第二磁盘阵列中当前存储的数据进行快照处理,得到快照数据;将所述快照数据同步到所述第二管理模块指向的所述第一磁盘阵列中。

在本发明实施例中,直接将第一管理模块由指向第一磁盘阵列变为指向第二磁盘阵列,将第二管理模块由指向第二磁盘阵列变为指向第一磁盘阵列,再对第二磁盘阵列进行快照得到快照数据,然后将该快照数据同步到第一磁盘阵列,保证第一磁盘阵列中的数据与第二磁盘阵列中的数据同步。由于第二磁盘阵列中的数据未发生损坏,在同步数据的过程不需要向第二磁盘阵列存储数据,所以主机可以直接对第二磁盘阵列进行读写操作,提高了主机的读写性能。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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