服务器、存储系统及相关方法与流程

文档序号:11230057阅读:498来源:国知局
服务器、存储系统及相关方法与流程
本发明涉及it
技术领域
,特别涉及一种服务器、存储系统及相关方法。
背景技术
:在现有的虚拟化环境中,服务器上安装有虚拟机,虚拟机内设置有应用程序和虚拟硬盘,服务器通过虚拟机监视器管理虚拟机,服务器与网络磁盘建立有数据连接,服务器上安装有网络磁盘组件,网络磁盘组件用于管理网络磁盘分配至服务器的存储空间,当虚拟机内的应用程序对虚拟硬盘进行读写时,产生io命令,该io命令会被虚拟机监视器获取,网络磁盘组件从虚拟机监视器获取io命令,并发送至网络磁盘,网络磁盘根据io命令进行io操作,并将携带有io操作结果的io操作响应信息返回至网络磁盘组件,网络磁盘组件将io操作响应信息发送至虚拟机监视器,虚拟机监视器将io操作响应信息发送至虚拟机,从而使得虚拟机的应用程序可以获取到io操作结果。在现有技术中,在网络磁盘组件本身出现问题不能工作维持一定时间,或在服务器与网络磁盘之间的通信链路断开的情况维持一定时间后,由于虚拟机发出的io命另一直不能得到处理,虚拟机内部业务长期处于等待状态,可能会导致虚拟机卡死,从而引起业务中断。技术实现要素:为解决现有技术的问题,本发明实施例提供一种服务器、存储系统及相关方法,可克服因io命令不能得到处理而造成业务中断的技术问题。第一方面,本发明实施例提供一种存储系统,包括通过网络连接的服务器集群和网络磁盘,服务器集群包括:第一服务器,包括:第一网络磁盘组件,第一服务器通过第一网络磁盘组件访问网络磁盘;虚拟机,虚拟机设置有应用程序、文件系统以及虚拟磁盘,应用程序用于产生对文件系统的用户文件进行操作的文件命令,文件系统用于根据文件命令产生对虚拟磁盘的io地址进行操作的io命令;虚拟机监视器,用于根据对虚拟磁盘的io地址进行操作的io命令产生对网络磁盘中的卷文件的读写指令,发送读写指令至第一网络磁盘组件,当确定读写指令执行失败时发送通知信息至监控装置;监控装置,用于接收通知消息,根据通知消息构造异常信息并发送至io重定向装置;io重定向装置,用于响应异常信息从虚拟机监视器获取读写指令,并查找服务器集群中与网络磁盘之间的通信链路状态正常的第二服务器的网络地址,产生第一网络报文并发送至第二服务器,其中第一网络报文携带有读写命令,且第一网络报文的源地址是第一服务器的网络地址,目的地址是第二服务器的网络地址;第二服务器,包括:io处理代理装置,用于接收第一网络报文,从第一网络报文解析出读写命令并发送至第二网络磁盘组件;第二网络磁盘组件,用于根据读写指令产生对网络磁盘中的物理磁盘的io地址进行读写的io命令,并发送对网络磁盘中的物理磁盘的io地址进行读写的io命令至网络磁盘。在本发明实施例中,当在第一服务器中针对网络磁盘的读写指令执行失败时,将读写指令发送至与网络磁盘之间的通信链路状态正常的第二服务器,由第二服务器的网络磁盘组件对读写指令进行处理,产生对网络磁盘中的物理磁盘的io地址进行读写的io命令,并发送该io命令至网络磁盘,从而在读写指令执行失败时,仍可通过另一服务器的处理实现对网络磁盘40进行读写操作。在本发明实施例的一种可能的实现方式中,监控装置具体用于根据通知消息检测第一网络磁盘组件的工作状态以及第一服务器与网络磁盘之间的通信链路状态,在网络磁盘组件的工作状态异常,或第一服务器与网络磁盘之间的通信链路状态异常时,构造异常信息。在本发明实施例的另一种可能的实现方式中,文件系统管理文件系统中的用户文件与虚拟磁盘的io地址的对应关系。在本发明实施例的另一种可能的实现方式中,虚拟机监视器记录有虚拟磁盘的io地址与网络磁盘分配至虚拟机的卷文件的卷号之间的对应关系。在本发明实施例的另一种可能的实现方式中,第一网络磁盘组件和第二网络磁盘组件均记录有网络磁盘分配至服务器集群中的所有虚拟机的卷文件的卷号与卷文件对应的物理磁盘的io地址之间的对应关系。第二方面,本发明实施例提供一种io命令的处理方法,该方法应用于存储系统,存储系统包括第一服务器、第二服务器以及网络磁盘,第一服务器设置有虚拟机、第一网络磁盘组件、虚拟机监视器、io重定向装置以及监控装置,虚拟机设置有虚拟磁盘,第一服务器通过第一网络磁盘组件访问网络磁盘,第二服务器设置io处理代理装置和第二网络磁盘组件,该方法包括:虚拟机产生对虚拟磁盘的io地址进行操作的io命令;虚拟机监视器根据对虚拟磁盘的io地址进行操作的io命令产生对网络磁盘中的卷文件的读写指令,发送读写指令至第一网络磁盘组件,当确定读写指令执行失败时发送通知信息至监控装置;监控装置接收通知消息,根据通知消息构造异常信息并发送至io重定向装置;io重定向装置响应异常信息从虚拟机监视器获取读写指令,并查找服务器集群中与网络磁盘之间的通信链路状态正常的第二服务器的网络地址,产生第一网络报文并发送至第二服务器,其中第一网络报文携带有读写命令,且第一网络报文的源地址是第一服务器的网络地址,目的地址是第二服务器的网络地址;io处理代理装置接收第一网络报文,从第一网络报文解析出读写命令并发送至第二网络磁盘组件;第二网络磁盘组件根据读写指令产生对网络磁盘中的物理磁盘的io地址进行读写的io命令,并发送对网络磁盘中的物理磁盘的io地址进行读写的io命令至网络磁盘。在本发明实施例的一种可能的实现方式中,监控装置接收通知信息,根据通知消息构造异常信息的步骤具体包括:监控装置根据通知消息检测第一网络磁盘组件的工作状态以及第一服务器与网络磁盘之间的通信链路状态,在第一网络磁盘组件的工作状态异常,或第一服务器与网络磁盘之间的通信链路状态异常时,构造异常信息。在本发明实施例的另一种可能的实现方式中,虚拟机还设置有应用程序和文件系统,文件系统管理文件系统中的用户文件与虚拟磁盘的io地址的对应关系,虚拟机产生对虚拟磁盘的io地址进行操作的io命令的步骤具体包括:应用程序产生对文件系统的用户文件进行操作的文件命令;文件系统根据文件系统中的用户文件与虚拟磁盘的io地址的对应关系将文件命令转换为虚拟磁盘的io地址进行操作的io命令。在本发明实施例的另一种可能的实现方式中,虚拟机监视器记录有虚拟磁盘的io地址与网络磁盘分配至虚拟机的卷文件的卷号之间的对应关系,虚拟机监视器根据对虚拟磁盘的io地址进行操作的io命令产生对网络磁盘中的卷文件的读写指令的步骤具体包括:虚拟机监视器根据虚拟磁盘的io地址与网络磁盘分配至虚拟机的卷文件的卷号之间的对应关系获取虚拟磁盘的io地址对应的卷文件的卷号;虚拟机根据卷文件的卷号产生对网络磁盘中的卷文件的读写指令。在本发明实施例的另一种可能的实现方式中,第一网络磁盘组件和第二网络磁盘组件均记录有网络磁盘分配至服务器集群中的所有虚拟机的卷文件的卷号与卷文件对应的物理磁盘的io地址之间的对应关系。第三方面,本发明实施例提供一种服务器,包括虚拟机、虚拟机监视器、网络磁盘组件、监控装置以及io重定向装置,服务器设置于服务器集群中,服务器集群经由网络与网络磁盘连接,服务器通过网络磁盘组件访问网络磁盘,虚拟机设置有应用程序、文件系统以及虚拟磁盘,其中:应用程序,用于产生对文件系统的用户文件进行操作的文件命令;文件系统,用于根据文件命令产生对虚拟磁盘的io地址进行操作的io命令;虚拟机监视器,用于根据对虚拟磁盘的io地址进行操作的io命令产生对网络磁盘中的卷文件的读写指令,发送读写指令至网络磁盘组件,当确定读写指令执行失败时发送通知信息至监控装置;监控装置,用于接收通知消息,根据通知消息构造异常信息并发送至io重定向装置;io重定向装置,用于响应异常信息从虚拟机监视器获取读写指令,并查找服务器集群中与网络磁盘之间的通信链路状态正常的另一服务器的网络地址,产生第一网络报文并发送至另一服务器,其中第一网络报文携带有读写命令,且第一网络报文的源地址是第一服务器的网络地址,目的地址是另一服务器的网络地址。在本发明实施例的一种可能的实现方式中,监控装置具体用于根据通知消息检测网络磁盘组件的工作状态以及服务器与网络磁盘之间的通信链路状态,在网络磁盘组件的工作状态异常,或服务器与网络磁盘之间的通信链路状态异常时,构造异常信息。在本发明实施例的另一种可能的实现方式中,文件系统管理文件系统中的用户文件与虚拟磁盘的io地址的对应关系。在本发明实施例的另一种可能的实现方式中,虚拟机监视器记录有虚拟磁盘的io地址与网络磁盘分配至虚拟机的卷文件的卷号之间的对应关系。在本发明实施例的另一种可能的实现方式中,网络磁盘组件记录有网络磁盘分配至服务器集群中的所有虚拟机的卷文件的卷号与卷文件对应的物理磁盘的io地址之间的对应关系。第四方面,本发明实施例提供一种io命令的处理方法,该方法应用于服务器,服务器包括虚拟机、虚拟机监视器、网络磁盘组件、监控装置以及io重定向装置,服务器设置于服务器集群中,服务器集群经由网络与网络磁盘连接,服务器通过网络磁盘组件访问网络磁盘,虚拟机设置有应用程序、文件系统以及虚拟磁盘,该方法包括:应用程序产生对文件系统的用户文件进行操作的文件命令;文件系统根据文件命令产生对虚拟磁盘的io地址进行操作的io命令;虚拟机监视器根据对虚拟磁盘的io地址进行操作的io命令产生对网络磁盘中的卷文件的读写指令,发送读写指令至网络磁盘组件,当确定读写指令执行失败时发送通知信息至监控装置;监控装置接收通知消息,根据通知消息构造异常信息并发送至io重定向装置;io重定向装置响应异常信息从虚拟机监视器获取读写指令,并查找服务器集群中与网络磁盘之间的通信链路状态正常的另一服务器的网络地址,产生第一网络报文并发送至另一服务器,其中第一网络报文携带有读写命令,且第一网络报文的源地址是第一服务器的网络地址,目的地址是另一服务器的网络地址。在本发明实施例的一种可能的实现方式中,监控装置接收通知信息,根据通知消息构造异常信息的步骤具体包括:监控装置根据通知消息检测网络磁盘组件的工作状态以及服务器与网络磁盘之间的通信链路状态,在网络磁盘组件的工作状态异常,或服务器与网络磁盘之间的通信链路状态异常时,构造异常信息。在本发明实施例的另一种可能的实现方式中,文件系统管理文件系统中的用户文件与虚拟磁盘的io地址的对应关系,虚拟机产生对虚拟磁盘的io地址进行操作的io命令的步骤具体包括:文件系统根据文件系统中的用户文件与虚拟磁盘的io地址的对应关系将文件命令转换为虚拟磁盘的io地址进行操作的io命令。在本发明实施例的另一种可能的实现方式中,虚拟机监视器记录有虚拟磁盘的io地址与网络磁盘分配至虚拟机的卷文件的卷号之间的对应关系,虚拟机监视器根据对虚拟磁盘的io地址进行操作的io命令产生对网络磁盘中的卷文件的读写指令的步骤具体包括:虚拟机监视器根据虚拟磁盘的io地址与网络磁盘分配至虚拟机的卷文件的卷号之间的对应关系获取虚拟磁盘的io地址对应的卷文件的卷号;虚拟机根据卷文件的卷号产生对网络磁盘中的卷文件的读写指令。在本发明实施例的另一种可能的实现方式中,网络磁盘组件记录有网络磁盘分配至服务器集群中的所有虚拟机的卷文件的卷号与卷文件对应的物理磁盘的io地址之间的对应关系。第五方面,本发明实施例提供一种服务器,包括存储器、处理器和总线,存储器和处理器分别与总线连接,存储器存储有程序指令,处理器执行存储器的程序指令以实现设置在服务器上的虚拟机、虚拟机监视器、网络磁盘组件、监控装置以及io重定向装置的功能,虚拟机设置有应用程序、文件系统和虚拟磁盘,其中:处理器执行存储器中的第一程序指令以执行步骤:应用程序产生对文件系统的用户文件进行操作的文件命令;处理器执行存储器中的第二程序指令以执行步骤:文件系统根据文件命令产生对虚拟磁盘的io地址进行操作的io命令;处理器执行存储器中的第三程序指令以执行步骤:虚拟机监视器根据对虚拟磁盘的io地址进行操作的io命令产生对网络磁盘中的卷文件的读写指令,发送读写指令至网络磁盘组件,当确定读写指令执行失败时发送通知信息至监控装置;处理器执行存储器中的第四程序指令以执行步骤:监控装置接收通知消息,根据通知消息构造异常信息并发送至io重定向装置;处理器执行存储器中的第五程序指令以执行步骤:io重定向装置响应异常信息从虚拟机监视器获取读写指令,并查找服务器集群中与网络磁盘之间的通信链路状态正常的另一服务器的网络地址,产生第一网络报文并发送至另一服务器,其中第一网络报文携带有读写命令,且第一网络报文的源地址是第一服务器的网络地址,目的地址是另一服务器的网络地址。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为根据本发明实施例的存储系统的结构示意图;图2是根据本发明实施例的存储系统的数据交互图;图3是根据本发明实施例的存储系统的另一数据交互图;图4是根据本发明实施例的io命令的处理方法的流程图;图5是根据本发明实施例的服务器的装置结构示意图。具体实施方式首先请参见图1,图1为根据本发明实施例的存储系统的结构示意图,如图1所示,存储系统包括服务器集群100以及网络磁盘40,服务器集群100至少包括第一服务器10和第二服务器20,服务器集群100以及网络磁盘40通过网络30建立通信链路连接。可选地,网络30具体例如为ineternet(互联网)、局域网、或ineternet和局域网的混合。网络磁盘40具有网络地址,由多个物理磁盘1-n组成,网络磁盘40提供接口以为服务器集群100中的服务器提供存储资源。网络磁盘40设置有网络地址,并且,网络磁盘40包含的多个物理磁盘1-n的存储空间分别设置为多个卷文件,并以卷号标识,网络磁盘40记录卷号与物理磁盘的io地址之间的关系。io重定向装置1025用于接收服务器集群100中的各监控装置上报的各监控装置所在的服务器与网络磁盘40之间的通信链路状态(于下文详细介绍)。第一服务器10上运行有至少一个虚拟机,示例性的,本发明实施例以一个虚拟机为例进行说明。该第一服务器10包括虚拟机101、操作系统102以及硬件103,虚拟机101包括应用程序1011、虚拟磁盘1012以及文件系统1013。操作系统102包括虚拟机监视器1021、网络磁盘组件1022、物理网卡驱动1023以及监控装置1024,硬件103包括物理网卡1031,虚拟机101运行在操作系统102上。在一些示例中,硬件103还包括处理器、存储器(图未示出)等,硬件103用于承载操作系统102的运行。在一种示例中,虚拟机监视器1021、网络磁盘组件1022、物理网卡驱动1023可设置在操作系统102的内核中。在另一种示例中,网络磁盘组件1022、物理网卡驱动1023可作为应用软件安装到操作系统102,在操作系统102上直接运行。物理网卡驱动1023用于驱动物理网卡1031,物理网卡驱动1023在操作系统102为物理网卡1031提供接口,操作系统102或安装在操作系统102的软件(如网络磁盘组件1022、监控装置1024和io重定向装置1025)可通过接口控制物理网卡1031发送或接收数据。网络磁盘组件1022、监控装置1024和io重定向装置1025在操作系统102中设置有各自网络端口。网络磁盘组件1022记录了网络磁盘40的网络地址,网络磁盘组件1022可通过物理网卡驱动1023提供的接口控制物理网卡1031收发数据以访问网络磁盘40。监控装置1024记录了网络磁盘40的网络地址,监控装置可通过物理网卡驱动1023提供的接口控制物理网卡1031收发数据,其中监控装置1024可发送命令至网络磁盘40以检测服务器10与网络磁盘40的通信链路状态。监控装置1024可监控网络磁盘组件1022的工作状态,举例而言,可通过检测操作系统102的进程列表,若网络磁盘组件1022中的关键进程不在进程列表中,则可确认网络磁盘组件1022工作状态异常。进一步,监控装置1024可监控第一服务器10与网络磁盘40之间的通信链路状态,举例而言,监控装置1024通过物理网卡驱动1023提供的接口控制物理网卡1031发送ping(packetinternetgroper,因特网包探索器)命令至网络磁盘40,利用ping命令来检测物理网卡2031与网络磁盘40之间的通信链路状态,其中,ping命令可利用网络上的设备的网络地址的唯一性,给网络磁盘40发送一个数据包,再要求网络磁盘40返回一个同样大小的数据包来确定第一服务器10与网络磁盘40之间是否连接相通,且时延是多少。在没有收到返回数据包,或时延超过预定数值时,监控装置1024确认第一服务器10与网络磁盘40之间的通信链路状态异常。虚拟机101上设置有操作系统,并设置有与操作系统兼容的文件系统1013。举例而言,虚拟机101可以设置有windows(视窗)操作系统,则文件系统1013可以为ntfs(newtechnologyfilesystem,新技术文件系统)。在另外一些示例中,虚拟机101可设置有unix或linux操作系统,文件系统1013可例如为ext(extendedfilesystem,延伸文件系统)或者xfs(extensionoftheextentfilesystem,扩展的延伸文件系统)文件系统。文件系统1013内设置有用户文件,文件系统1013管理用户文件与虚拟磁盘1012的io地址的对应关系,应用程序1011发出对用户文件进行操作的文件命令,文件系统1013可接收该文件命令,并根据上述对应关系将该文件命令转换为对虚拟磁盘1012的io地址进行读写的io命令。虚拟机101在虚拟机监视器1021上运行(在一些示例中,虚拟机监视器1021可运行多个虚拟机),虚拟机监视器1021可允许运行于其上的虚拟机所设置的操作系统和应用程序共享硬件103。在一些示例中,虚拟机监视器1021可为vmm(virtualmachinemonitor,虚拟机监视器),在另一些示例中,虚拟机监视器1021可为hypervisors(超级管理程序)。虚拟机监视器1021可以访问第一服务器10上的硬件103,并隔离运行于其上的多个虚拟机,当第一服务器10启动并执行虚拟机监视器1021时,虚拟机监视器1021会加载运行于其上的虚拟机的操作系统,同时会分配给每一台虚拟机适量的内存,cpu、网络和虚拟磁盘。在服务器集群100的服务器上运行的虚拟机加载虚拟磁盘时,虚拟机所在服务器的虚拟机监视器通过网络磁盘组件向网络磁盘40申请卷文件,网络磁盘40为虚拟机分配卷文件,并将所分配的卷文件的卷号和卷文件对应的物理磁盘的io地址发送至该网络磁盘组件,该网络磁盘组件将卷号发送至所在服务器的虚拟机监视器,并记录卷号与物理磁盘的io地址之间的关系以及该虚拟机监视器记录卷号与虚拟磁盘的io地址之间的关系。举例而言,虚拟机101加载虚拟磁盘1012时,虚拟机监视器1021通过网络磁盘组件1022向网络磁盘40发送用于申请卷文件的通知(在一些示例中,该通知还包括要求的虚拟磁盘空间大小等信息),网络磁盘40根据该通知为虚拟机101分配预定数量的卷文件,并将所分配的卷文件的卷号和卷文件对应的物理磁盘的io地址发送至网络磁盘组件1022,网络磁盘组件1022将卷号发送至虚拟机监视器1021,并记录该卷号与物理磁盘的io地址之间的关系,虚拟机监视器1021记录该卷号与虚拟磁盘的io地址之间的关系。值得注意的是,图1所示的服务器20与服务器10的结构大致相同,具有相同名称的模块具有相同功能,区别在于服务器20并没有设置io重定向装置,并且设置有io处理代理装置2025。io处理代理装置2025与io重定向装置1025通信,io处理代理装置2025在操作系统202中设置有网络端口。在一种可能的实施方式中,服务器集群100中所有服务器的网络磁盘组件之间进行数据同步。举例而言,网络磁盘组件1022记录有网络磁盘40分配至虚拟机101的卷文件的卷号与该卷文件对应的物理磁盘的io地址之间的对应关系(以下称为第一对应关系),网络磁盘组件2022记录有网络磁盘40分配至虚拟机201的卷文件的卷号与该卷文件对应的物理磁盘的io地址之间的对应关系(以下称为第二对应关系)。网络磁盘组件1022和网络磁盘组件2022之间通过数据交互同步第一对应关系和第二对应关系,对于图1未示出的服务器集群100的其他服务器中的网络磁盘组件亦然,从而使得服务器集群100中的每一网络磁盘组件均记录了网络磁盘40分配至服务器集群100中的所有虚拟机的卷文件的卷号与该卷文件对应的物理磁盘的io地址之间的对应关系。在另外一些示例中,也可由网络磁盘40分别向服务器集群100中的所有网络磁盘组件组播发送网络磁盘40分配至服务器集群中的所有虚拟机的卷文件的卷号与该卷文件对应的物理磁盘的io地址之间的对应关系,使得服务器集群100中的每一网络磁盘组件均记录网络磁盘40分配至服务器集群中的所有虚拟机的卷文件的卷号与该卷文件对应的物理磁盘的io地址之间的对应关系。在本发明实施例中,服务器集群100中的各监控装置会定期检测所在的服务器与网络磁盘40之间的通信链路状态,并将具体状态分别上报至io重定向装置1025。以第一服务器10为例,监控装置1024通过物理网卡驱动1023提供的接口控制物理网卡1031发送ping(packetinternetgroper,因特网包探索器)命令至网络磁盘40,利用ping命令来检测物理网卡2031与网络磁盘40之间的通信链路状态。其中,ping命令可利用网络上的设备的网络地址的唯一性,给网络磁盘40发送一个数据包,再要求网络磁盘40返回一个同样大小的数据包来确定第一服务器10与网络磁盘40之间是否连接相通,且时延是多少。当监控装置1024接收到网络磁盘40响应ping命令的返回数据包时,将携带有状态信息和自身网络地址的报文发送至io重定向装置1025,其中状态信息包括状态(正常或异常)、时延(当状态为异常时时延取0)。而服务器集群100中的其他监控装置也会执行如上动作,分别向io重定向装置1025上报状态信息。因此,io重定向装置1025可接收到服务器集群100中的所有服务器上报的状态信息,并进行更新维护,其中当前状态的维护列表如表1所示:服务器网络地址状态时延192.168.121.1150ms192.168.121.2140ms192.168.121.31100ms………………表1其中,由于维护列表会不断进行更新,维护列表并不限于表1所示,其数据可随网络状态实时变化。假设第一服务器10的网络地址是192.168.121.1,第二服务器的网络地址是192.168.121.2,第三服务器(图1中未示出)的网络地址是192.168.121.3,在表1中,状态为1表示自身与网络磁盘40的通信链路状态正常,状态为0表示自身与网络磁盘40的通信链路状态异常。因此,在当前时间,第一服务器10与网络磁盘40的通信链路状态正常,网络时延为50ms。第二服务器与网络磁盘40的通信链路状态正常,网络时延为40ms,第三服务器与网络磁盘40的通信链路状态正常,且网络时延值为100ms。故当前第二服务器20与网络磁盘40之间的通信链路状态最优。在本发明实施例中,当针对网络磁盘的读写指令执行失败时,将读写指令发送与网络磁盘之间的通信链路状态正常的另一服务器,使得该读写指令可经由另一服务器的网络磁盘组件进行处理,从而实现与网络磁盘进行通信,可克服因io命令不能得到处理而造成业务中断的技术问题。以下请参见图2,图2是根据本发明实施例的存储系统的数据交互图,图2示出在网络磁盘组件1022正常工作,且网络磁盘组件1022所在服务器10与网络磁盘40之间的通信链路状态正常时的数据交换方法,该数据交换方法具体包括以下步骤:步骤501:虚拟机101的应用程序1011访问虚拟磁盘1012时,文件系统1013产生对虚拟磁盘1012的io地址进行操作的io命令,并发送该io命令至虚拟机监视器1021。其中,应用程序1011访问虚拟磁盘1012时,产生对用户文件进行操作的文件命令,此时文件系统1013接收到对用户文件进行操作的文件命令。根据先前描述,文件系统1013管理用户文件与虚拟磁盘1012的io地址的对应关系,故文件系统1013可根据上述对应关系将对用户文件进行操作的文件命令转换为对虚拟磁盘1012的io地址进行操作的io命令。步骤502:虚拟机监视器1021从文件系统1013接收对虚拟磁盘1012的io地址进行操作的io命令,并根据虚拟磁盘1012的io地址与网络磁盘40分配至虚拟机101的卷文件的卷号之间的对应关系获取与该io命令对应的卷号,产生针对该卷号对应的卷文件的读写命令,并发送该读写命令至网络磁盘组件1022,并计时。步骤503:网络磁盘组件1022从虚拟机监视器1021接收该读写命令,并根据卷号与物理磁盘的io地址之间的关系获取物理磁盘的io地址,产生对物理磁盘的io地址进行操作的io命令并发送至网络磁盘40。其中,网络磁盘组件1022将对物理磁盘的io地址进行操作的io命令封装到网络报文,该网络报文的目的地址为网络磁盘的网络地址,网络磁盘组件1022通过物理网卡驱动1023提供的接口控制物理网卡1031将网络报文发送至网络30,使得该网络报文经由网络30被发送至网络磁盘40。步骤504:网络磁盘40对物理磁盘的io地址进行io操作,并返回响应信息至网络磁盘组件1022。其中,网络磁盘40将响应信息封装到网络报文,该网络报文的目的地址为第一服务器10的网络地址,网络磁盘40通过网络30发送至第一服务器10,网络磁盘组件1022通过物理网卡驱动1023提供的接口从物理网卡1031接收该网络报文,并解析出响应信息。步骤505:网络磁盘组件1022将响应信息发送至虚拟机监视器1021。步骤506:虚拟机监视器1021接收响应信息,并判断计时的时间是否超出预设时间段。步骤507:虚拟机监视器1021判断到计时的时间没有超出预设时间段,将响应信息发送至文件系统1013。由于文件系统1013在预定时间段内将响应信息发送至应用程序1011,因此,对于应用程序1011而言,相当于直接从虚拟磁盘1012进行读写,并获取到相应的响应信息。在上述方案中,在读写指令执行成功的情况下,可完成对网络磁盘40进行读写的动作。在本发明实施例中,进一步提供一种在读写指令执行失败的情况下,也可完成对网络磁盘40进行读写的io命令的处理方法,具体可参见图3。以下请参见图3,图3是根据本发明实施例的存储系统的另一数据交互图,图3示出在图2的步骤502中,在虚拟机监视器1021计时的时间超出预定时间段时仍没有接收到网络磁盘组件1022发送的响应信息的情况:步骤601:虚拟机101的应用程序1011访问虚拟磁盘1012时,文件系统1013产生对虚拟磁盘1012的io地址进行操作的io命令,并发送该io命令至虚拟机监视器1021。其中,应用程序1011访问虚拟磁盘1012时,产生对用户文件进行操作的文件命令,此时文件系统1013接收到对用户文件进行操作的文件命令。根据先前描述,文件系统1013管理用户文件与虚拟磁盘1012的io地址的对应关系,故文件系统1013可根据上述对应关系将对用户文件进行操作的文件命令转换为对虚拟磁盘1012的io地址进行操作的io命令。步骤602:虚拟机监视器1021从文件系统1013接收对虚拟磁盘1012的io地址进行操作的io命令,并根据虚拟磁盘1012的io地址与网络磁盘40分配至虚拟机101的卷文件的卷号之间的对应关系获取与该io命令对应的卷号,产生针对该卷号对应的卷文件的读写命令,并发送该读写命令至网络磁盘组件1022,并计时。步骤603:虚拟机监视器1021在确定读写指令执行失败时产生通知消息并发送至监控装置1024。举例而言,当虚拟机监视器1021在计时的时间超出预定时间段仍没有从网络磁盘组件1022接收到响应信息时,确定读写指令执行失败,产生通知信息,并发送通知信息至监控装置1024。步骤604:监控装置1024根据通知消息构造异常消息并发送异常消息至io重定向装置1025。举例而言,监控装置1024检测网络磁盘组件1022的工作状态,并检测第一服务器10与网络磁盘40之间的通信链路状态,任一者出现异常时,构造异常信息,发送异常信息至io重定向装置1025。步骤605:io重定向装置1025响应异常信息从虚拟机监视器1021获取读写指令,并查找服务器集群100中与网络磁盘40的通信链路状态正常的服务器20的第网络地址,产生第一网络报文并发送至服务器20,其中第一网络报文携带有读写命令,且第一网络报文的源地址是服务器10的网络地址,目的地址是服务器20的网络地址。在本步骤中,io重定向装置1025可查询维护列表,假设在当前时间维护列表刷新为表2所示:服务器网络地址状态时延192.168.121.100192.168.121.2142ms192.168.121.3190ms………………表2值得注意的是,由于维护列表是定期更新的,因此表2与上述表1不同,io重定向装置1025通过查询表2(当前状态的维护列表)可知服务器20(网络地址为192.168.121.2)与网络磁盘40之间的通信链路状态正常,且时延(42ms)最短,因此选择服务器20。步骤606:io处理代理装置2025接收第一网络报文,从第一网络报文解析出读写命令并发送至网络磁盘组件2022。步骤607:网络磁盘组件2022根据读写指令产生对网络磁盘40中的物理磁盘的io地址进行读写的io命令,并发送对网络磁盘中的物理磁盘的io地址进行读写的io命令至网络磁盘。在本步骤中,基于以上描述,由于网络磁盘组件2022与网络磁盘组件1022均记录有网络磁盘40分配至服务器集群中的所有虚拟机的卷文件的卷号与该卷文件对应的物理磁盘的io地址之间的对应关系,因此网络磁盘组件2022在获取到对卷文件的读写命令后,通过查询上述关系可获取卷文件对应的物理磁盘的io地址,从而可产生对物理磁盘的io地址进行读写的io命令。网络磁盘组件2022通过网络30将对物理磁盘的io地址进行读写的io命令发送至网络磁盘40。举例而言,网络磁盘组件2022产生携带有上述io命令的网络报文,并将该网络报文发送至网络磁盘40。步骤608:网络磁盘40接收对物理磁盘的io地址进行读写的io命令,并对物理磁盘进行io操作,产生响应信息并发送至io代理处理装置2024,其中响应信息包括io操作的结果。具体地,网络磁盘40将响应信息封装到网络报文并发送至网络30,其中该网络报文的目的地址为服务器20的网络地址,目的端口为io代理处理装置2024在操作系统202的网络端口,io代理处理装置2024通过物理网卡驱动2023提供的接口控制物理网卡2031接收该网络报文,并解析以获取响应信息。步骤609:io处理代理装置2024将响应信息发送至io重定向装置1025。步骤610:虚拟机监视器2021将响应信息发送至文件系统1013。在本发明实施例中,应用程序1011在访问虚拟磁盘1012时,若网络磁盘组件1022的工作状态出现异常,或第一服务器10与网络磁盘40之间的通信链路状态异常,另一通过网络30发送读写命令至服务器20,由于服务器20的网络磁盘组件2022与服务器10的网络磁盘组件1022均记录了网络磁盘40分配至服务器集群100中的所有虚拟机的卷文件的卷号与该卷文件对应的物理磁盘的io地址之间的对应关系,故网络磁盘组件2022可将对卷文件的读写命令转换为针对物理磁盘的io地址的io命令并发送网络磁盘40,从而可确保应用程序1011在所在虚拟机101迁移至第二服务器20后仍可正常访问网络磁盘40。可克服因io命令不能得到处理而造成业务中断的技术问题。本发明进一步揭示一种io命令的处理方法,具体请参见图4,图4是根据本发明实施例的io命令的处理方法的流程图,该方法应用于服务器10,服务器10包括虚拟机101、虚拟机监视器1021、网络磁盘组件1022、监控装置1024以及io重定向装置1025,服务器10设置于服务器集群100中,服务器集群100经由网络30与网络磁盘40连接,服务器10通过网络磁盘组件1022访问网络磁盘40,虚拟机101设置有应用程序1011、文件系统1013以及虚拟磁盘1012,该方法包括:步骤s701:应用程序1011产生对文件系统1013的用户文件进行操作的文件命令;步骤s702:文件系统1013根据文件命令产生对虚拟磁盘1012的io地址进行操作的io命令;可选地,文件系统1013管理文件系统1013中的用户文件与虚拟磁盘1012的io地址的对应关系,在步骤702中,文件系统1013根据文件系统1013中的用户文件与虚拟磁盘1012的io地址的对应关系将文件命令转换为虚拟磁盘1012的io地址进行操作的io命令。步骤s703:虚拟机监视器1021根据对虚拟磁盘1012的io地址进行操作的io命令产生对网络磁盘40中的卷文件的读写指令,发送读写指令至网络磁盘组件1022,当确定读写指令执行失败时发送通知信息至监控装置1024;可选地,虚拟机监视器1021记录有虚拟磁盘1012的io地址与网络磁盘40分配至虚拟机101的卷文件的卷号之间的对应关系,在步骤703中,虚拟机监视器1021根据虚拟磁盘1012的io地址与网络磁盘40分配至虚拟机101的卷文件的卷号之间的对应关系获取虚拟磁盘1012的io地址对应的卷文件的卷号,虚拟机101根据卷文件的卷号产生对网络磁盘40中的卷文件的读写指令。步骤s704:监控装置1024接收通知消息根据通知消息构造异常信息,并发送异常信息至io重定向装置1025。可选地,在步骤s704中,监控装置1024根据通知消息检测网络磁盘组件1022的工作状态以及服务器10与网络磁盘40之间的通信链路状态,在网络磁盘组件1022的工作状态异常,或服务器10与网络磁盘40之间的通信链路状态异常时,构造异常信息。步骤s705:io重定向装置1025响应异常信息从虚拟机监视器1021获取读写指令,并查找服务器集群100中与网络磁盘40之间的通信链路状态正常的另一服务器20的网络地址,产生第一网络报文并发送至另一服务器20,其中第一网络报文携带有读写命令,且第一网络报文的源地址是第一服务器10的网络地址,目的地址是另一服务器20的网络地址。另一可选地,网络磁盘组件1022记录有网络磁盘40分配至服务器集群100中的所有虚拟机101的卷文件的卷号与卷文件对应的物理磁盘的io地址之间的对应关系。在本发明实施例中,当在服务器10中,针对网络磁盘40的读写指令执行失败时,将读写指令发送至与网络磁盘40之间的通信链路状态正常的另一服务器20,由另一服务器20的网络磁盘组件1022对读写指令进行处理,产生对网络磁盘中的物理磁盘的io地址进行读写的io命令,并发送该io命令至网络磁盘40,从而在读写指令执行失败时,仍可通过另一服务器的处理实现对网络磁盘40进行读写操作。本发明进一步揭示一种服务器10,具体请参见图5,图5是根据本发明实施例的服务器的装置结构示意图,如图5所示:服务器10包括存储器802、处理器801和总线803,存储器802和处理器801分别与总线803连接,存储器802存储有程序指令,处理器801执行存储器802中的程序指令以实现虚拟机101、虚拟机监视器1021、网络磁盘组件1022、监控装置1024以及io重定向装置1025的功能,虚拟机101设置有应用程序1011、文件系统1012和虚拟磁盘1013,其中:处理器801执行存储器802中的第一程序指令以执行步骤:应用程序1011产生对文件系统1013的用户文件进行操作的文件命令;处理器801执行存储器802中的第二程序指令以执行步骤:文件系统1013根据文件命令产生对虚拟磁盘1012的io地址进行操作的io命令;可选地,文件系统1013管理文件系统1013中的用户文件与虚拟磁盘1012的io地址的对应关系,在上述步骤中,文件系统1013根据文件系统1013中的用户文件与虚拟磁盘1012的io地址的对应关系将文件命令转换为虚拟磁盘1012的io地址进行操作的io命令。处理器801执行存储器802中的第三程序指令以执行步骤:虚拟机监视器1021根据对虚拟磁盘1012的io地址进行操作的io命令产生对网络磁盘40中的卷文件的读写指令,发送读写指令至网络磁盘组件1022,当确定读写指令执行失败时发送通知信息至监控装置1024;可选地,虚拟机监视器1021记录有虚拟磁盘1012的io地址与网络磁盘40分配至虚拟机101的卷文件的卷号之间的对应关系,处理器801执行存储器802中的第三程序指令以执行步骤:虚拟机监视器1021根据虚拟磁盘1012的io地址与网络磁盘40分配至虚拟机101的卷文件的卷号之间的对应关系获取虚拟磁盘1012的io地址对应的卷文件的卷号,虚拟机101根据卷文件的卷号产生对网络磁盘40中的卷文件的读写指令。处理器801执行存储器802中的第四程序指令以执行步骤:监控装置1024接收通知消息根据通知消息构造异常信息,并发送异常信息至io重定向装置1025,。可选地,监控装置1024根据通知消息检测网络磁盘组件1022的工作状态以及服务器10与网络磁盘40之间的通信链路状态,在网络磁盘组件1022的工作状态异常,或服务器10与网络磁盘40之间的通信链路状态异常时,构造异常信息。处理器801执行存储器802中的第五程序指令以执行步骤:io重定向装置1025响应异常信息从虚拟机监视器1021获取读写指令,并查找服务器集群100中与网络磁盘40之间的通信链路状态正常的另一服务器20的网络地址,产生第一网络报文并发送至另一服务器20,其中第一网络报文携带有读写命令,且第一网络报文的源地址是第一服务器10的网络地址,目的地址是另一服务器20的网络地址。可选地,网络磁盘组件1022记录有网络磁盘40分配至服务器集群100中的所有虚拟机101的卷文件的卷号与卷文件对应的物理磁盘的io地址之间的对应关系。在本发明实施例中,当在服务器10中针对网络磁盘40的读写指令执行失败时,将读写指令发送至与网络磁盘40之间的通信链路状态正常的另一服务器20,由另一服务器20的网络磁盘组件1022对读写指令进行处理,产生对网络磁盘中的物理磁盘的io地址进行读写的io命令,并发送该io命令至网络磁盘40,从而在读写指令执行失败时,仍可通过另一服务器的处理实现对网络磁盘40进行读写操作。需说明的是,以上描述的任意装置实施例都仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。所属领域的技术人员可以清楚地了解到,上述描述的系统、装置或单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1