数据处理方法及装置的制作方法

文档序号:6443058阅读:129来源:国知局
专利名称:数据处理方法及装置的制作方法
技术领域
本发明涉及存储领域,特别涉及一种数据处理方法及装置。
背景技术
目前服务器(Server)与存储设备(Storage)之间一般采用FC(Fiber Channel,光纤通道)或者iSCSI (internet SCSI)连接,基于SCSI协议实现Server和Storage的数据交互。当Server需要读取Storage上的数据时,下发SCSI读取命令,由Server上连接的 HBA (Host Bus Adapter,主机总线适配)卡将命令转化为相应的光、电信号,经过光纤或以太网链路传送到Storage, Storage再将接收到的信号转换成小型计算机系统接口(Small Computer System Interface, SCSI)命令并进行处理后沿原通道将该命令的响应结果返回给Server,从而完成一次读写操作。随着CPU处理能力越来越强大,核数越来越多,把Server和Storage放到一个硬件系统中的趋势越来越强烈,它不仅可以带来成本和管理方面的优势,同时对功耗的降低也具有积极意义。现有技术一般采用虚拟机方案将Server和Storage快速地结合起来,虚拟机是通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。 通常,虚拟机可以根据需要配置虚拟硬件、安装操作系统等。使用虚拟机可以在一个物理主机内实现Server和Storage的统一,但由于在一个物理主机内存在两个虚拟机(Server和Storage分别对应一个虚拟机),因此需要通过软件模拟两个操作系统运行,也需要给两个虚拟机分配内存,将消耗大量系统资源。同时,在 Server和Storage之间进行数据传输时的内存拷贝也将消耗大量系统资源,因此对系统性能造成影响。

发明内容
本发明实施例提供了一种数据处理方法及装置,可以使得Server和Storage在同一个操作系统下运行程序,减少资源的消耗,并且在进行数据传输时,利用虚拟通道传递处理数据的地址,减少内存拷贝,提高系统性能。本发明实施例提供的数据处理方法,包括第一应用模块接收到写请求命令后,将待写入数据写入第一数据缓冲区,并将写请求指令和所述第一数据缓冲区的地址发送给第一虚拟主机总线适配卡VHBA,所述写请求指令包括所述待写入数据将要写入存储介质的地址;所述第一 VHBA将所述写请求指令和所述第一数据缓冲区的地址发送给第一存储阵列I吴块;所述第一存储阵列模块接收到所述写请求指令后,根据所述第一数据缓冲区的地址,从所述第一数据缓冲区中获取所述待写入数据,再根据所述待写入数据将要写入存储介质的地址将所述待写入数据写入存储介质中;
所述第一存储阵列模块向所述第一 VHBA返回所述写请求指令的响应,所述第一 VHBA向所述第一应用模块返回所述写请求指令的响应。本发明实施例提供的另一个数据处理方法,包括第二应用模块将读请求指令和第二数据缓冲区的地址发送给第二 VHBA,所述读请求指令包括待读取数据在存储介质中的地址;所述第二 VHBA将所述读请求指令和所述第二数据缓冲区的地址发送给第二存储阵列I吴块;所述第二存储阵列模块根据所述读请求指令中携带的所述待读取数据在存储介质中的地址,获取待读取数据,再根据所述第二数据缓冲区的地址将所述待读取数据写入所述第二数据缓冲区;所述第二存储阵列模块向所述第二 VHBA返回所述读请求指令的响应,所述第二 VHBA向所述应用模块返回所述读请求指令的响应。本发明实施例提供的数据处理装置,包括第一应用模块、第一 VHBA、第一数据缓冲区和第一存储阵列模块;所述第一应用模块接收到写请求命令后,将待写入数据写入所述第一数据缓冲区,并将写请求指令和所述第一数据缓冲区的地址发送给所述第一 VHBA, 所述写请求指令包括所述待写入数据将要写入存储介质的地址;所述第一 VHBA将所述写请求指令和所述第一数据缓冲区的地址发送给所述第一存储阵列模块;所述第一存储阵列模块接收到所述写请求指令后,根据所述第一数据缓冲区的地址,从所述第一数据缓冲区中获取所述待写入数据,再根据所述待写入数据将要写入存储介质的地址将所述待写入数据写入存储介质中;所述第一存储阵列模块向所述第一 VHBA返回所述写请求指令的响应,所述第一 VHBA向所述第一应用模块返回所述写请求指令的响应。本发明实施例提供的另一个数据处理装置,包括第二应用模块、第二 VHBA、第二数据缓冲区和第二存储阵列模块;所述第二应用模块用于将读请求指令和所述第二数据缓冲区的地址发送给第二 VHBA,所述读请求指令包括待读取数据在存储介质中的地址;所述第二 VHBA用于将所述读请求指令和所述第二数据缓冲区的地址发送给第二存储阵列模块;所述第二存储阵列模块用于根据所述待读取数据在存储介质中的地址,获取待读取数据,再根据所述第二数据缓冲区的地址将所述待读取数据写入所述第二数据缓冲区;所述第二存储阵列模块还用于向所述第二 VHBA返回所述读请求指令的响应,所述第二 VHBA向所述第二应用模块返回所述读请求指令的响应。在本发明实施例中,由于应用模块和存储阵列模块在同一个物理主机内,通过 VHBA卡连接,可以共用一套操作系统,在写数据时仅需传递数据缓冲区的地址和待写入数据,减少了内存拷贝,提升了系统性能。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I是本发明实施方式的一个数据处理方法流程图;图2是本发明实施方式的另一个数据处理方法流程图;图3是本发明实施方式的再一个数据处理方法流程图;图4是本发明实施方式中一个数据处理装置结构示意图;图5是本发明实施方式中另一个数据处理装置结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参见图一,是本发明一个实施方式所公开的数据处理方法;在本发明实施例中,第一应用模块可以包括各种应用程序和驱动程序,以应用软件栈的形式存在于物理主机中,第一存储阵列模块包括目标器Target和阵列控制软件, Target用于接收第一 VHBA发送的命令,并将该命令解析为存储阵列软件可以识别的命令, 并发送给存储阵列软件。第一应用模块和第一存储阵列模块被集成在一个物理主机内,通过第一虚拟主机总线适配卡VHBA (虚拟主机总线适配卡,Virtual Host Bus Adapter)连接,第一 VHBA使得第一应用模块和第一存储阵列模块之间形成一个虚拟通道,共用一个操作系统。本发明实施例所公开的数据处理方法具体包括如下步骤SlOl :第一应用模块接收到写请求命令后,将待写入数据写入第一数据缓冲区,并将写请求指令和所述第一数据缓冲区的地址发送给第一虚拟主机总线适配卡VHBA,所述写请求指令包括所述待写入数据将要写入存储介质的地址;其中,写请求命令包括待写入数据以及待写入数据将要写入存储介质的地址,而写请求指令则包括待写入数据将要写入存储介质的地址,不包括待写入数据本身。第一应用模块在该物理主机可以是一个应用软件栈,其中包括各种应用软件及驱动程序;第一存储阵列模块在该物理主机内可以是一个阵列软件栈,其中包括Target和各种阵列控制软件,第一应用模块和第一存储阵列模块之间通过第一 VHBA连接,第一 VHBA是软件模拟的HBA卡,具有物理HBA卡的功能,在应用软件栈中还包括第一 VHBA的驱动程序。在本发明实施例中,第一数据缓冲区可以是该物理主机内的内存。S102 :所述第一 VHBA将所述写请求指令和所述第一数据缓冲区的地址发送给第一存储阵列模块;S103:所述第一存储阵列模块接收到所述写请求指令后,根据所述第一数据缓冲区的地址,从所述第一数据缓冲区中获取所述待写入数据,再根据所述待写入数据将要写入存储介质的地址将所述待写入数据写入存储介质中;S104 :所述第一存储阵列模块向所述第一 VHBA返回所述写请求指令的响应,所述第一 VHBA向所述第一应用模块返回所述写请求指令的响应。在现有技术中,应用虚拟机和存储虚拟机分别使用不同的操作系统,因此在数据传递时不能采用传递地址的方式,而只能采用内存拷贝的方式。具体来说,应用虚拟机和存储虚拟机分别占用一部分主机内存,当应用虚拟机需要将数据写入存储介质时,先将待写入数据写入该应用虚拟机对应的内存,应用虚拟机将写数据命令发送给存储虚拟机时,将其内存中的待写入数据拷贝到存储虚拟机对应的内存中,存储虚拟机从其内存中获取该待写入数据之后,再将其写入存储介质中。而在应用虚拟机和存储虚拟机之间进行内存拷贝将消耗大量的系统资源,对系统性能造成影响。在本发明实施例中,由于第一应用模块和第一存储阵列模块在同一个物理主机内,通过第一 VHBA卡连接,可以共用一套操作系统,在写数据时仅需传递第一数据缓冲区的地址和待写入数据,减少了内存拷贝,提升了系统性能。此外,在现有技术中,采用虚拟机方案主要支持通过iSCSI访问存储系统,基本不支持FC方式,而在本发明实施例中由于应用模块和存储阵列模块之间通过VHBA连接,可以支持以FC方式访问存储系统。参见图二,是本发明另一个实施方式所公开的数据处理方法;S105 :第二应用模块将读请求指令和第二数据缓冲区的地址发送给第二 VHBA,所述读请求指令包括待读取数据在存储介质中的地址;S106 :所述第二 VHBA将所述读请求指令和所述第二数据缓冲区的地址发送给第二存储阵列模块;S107:所述第二存储阵列模块根据所述读请求指令中携带的所述待读取数据在存储介质中的地址,获取待读取数据,再根据所述第二数据缓冲区的地址将所述待读取数据写入所述第二数据缓冲区;S108 :所述第二存储阵列模块向所述第二 VHBA返回所述读请求指令的响应,所述第二 VHBA向所述应用模块返回所述读请求指令的响应。在现有技术中,当应用虚拟机需要读取数据时,将读数据请求发送给存储虚拟机, 存储虚拟机根据读数据请求获得待读取数据之后,将该待读取数据写入内存中,在响应应用虚拟机的读数据请求时,再将其内存中的待读取数据拷贝到应用虚拟机的内存中。而在应用虚拟机和存储虚拟机之间进行内存拷贝将消耗大量的系统资源,对系统性能造成影响。在本发明实施例中,第二应用模块可以包括各种应用程序和驱动程序,以应用软件栈的形式存在于物理主机中,第二存储阵列模块包括Target和阵列控制软件,Target用于接收第二 VHBA发送的命令,并将该命令解析为存储阵列软件可以识别的命令,并发送给存储阵列软件。第二应用模块和第二存储阵列模块在同一个物理主机内,共用一套操作系统,在读取数据时仅传递数据缓冲区的地址和待读取数据的地址,因此本发明实施例既实现了应用主机和存储系统的融合,减少了内存拷贝,提升了系统性能。请参见图3,下面以一个具体的实施例来说明本发明在读取数据时仅需传递数据缓冲区的地址和待读取数据的地址,可以减少内存拷贝,提升系统性能。S401 :第二应用模块需读取一个大小为512kb的数据,将该数据所在存储介质的地址以及数据缓冲区的地址发送给VHBA ;
该数据所在存储介质的地址以及数据缓冲区的地址均等于偏移加上长度,大小总共为16字节;S402 :第二 VHBA将大小为16字节的该数据所在存储介质的地址以及数据缓冲区的地址发送给第二存储阵列模块;S403:第二存储阵列模块根据所述待读取数据在存储介质中的地址,获取待读取数据,再根据所述数据缓冲区的地址将所述待读取数据写入所述数据缓冲区;S404 :所述第二存储阵列模块向所述第二 VHBA返回所述读请求指令的响应,所述第二 VHBA向所述第二应用模块返回所述读请求指令的响应。由此可见,在本发明实施例中,第二应用模块和第二目标模块只需要通过VHBA传递大小为16字节的地址,大大减少了内存拷贝,节省了系统资源。在本发明另一个实施例中,可以应用在统一存储系统之中,统一存储系统是指一种网络存储架构,它既支持基于文件的NAS(Network Attached Storage,网络附加存储)存储,又支持基于块的SAN(Storage Area Network,存储区域网络)存储。具体的,在本发明实施例中,第二应用模块与第二存储阵列模块被集成在一个物理主机内,第二应用模块可以包括文件系统以及文件共享协议,可对外提供共享文件系统, 而第二存储阵列模块可以直接处理SCSI命令,对外提供块服务,因此本发明实施例可以应用在统一存储的场景之中。参见图四,是本发明一个实施方式所公开的数据处理装置;在本发明实施例中,第一应用模块和第一存储阵列模块被集成在一个物理主机内,通过第一虚拟主机总线适配卡VHBA(虚拟主机总线适配卡,Virtual Hose Bus Adapter)连接,第一 VHBA使得第一应用模块和第一存储阵列模块之间形成一个虚拟通道, 共用一个操作系统。数据处理装置包括第一应用模块201、第一 VHBA202、第一存储阵列模块203和第一数据缓冲区204 ;其中,所述第一应用模块201接收到写请求命令后,将待写入数据写入所述第一数据缓冲区204,并将写请求指令和所述第一数据缓冲区204的地址发送给所述第一 VHBA202,所述写请求指令包括所述待写入数据将要写入存储介质的地址;第一应用模块201在该物理主机可以是一个应用软件栈,其中包括各种应用软件及驱动程序;第一存储阵列模块在该物理主机内可以是一个阵列软件栈,其中包括Target 和各种阵列控制软件,Target用于接收VHBA发送的写请求命令或读请求指令,并将该指令解析为阵列控制软件可以识别的命令之后,再转发给阵列控制软件。第一应用模块和第一存储阵列模块之间通过第一 VHBA202连接,第一 VHBA202是软件模拟的HBA卡,具有物理 HBA卡的功能,在应用软件栈中还包括第一 VHBA202的驱动程序。第一 VHBA202用于将所述写请求指令和所述第一数据缓冲区204的地址发送给第一存储阵列模块203 ;第一存储阵列模块203用于接收到所述写请求指令后,根据所述第一数据缓冲区 204的地址,从所述数据缓冲区204中获取所述待写入数据,再根据所述待写入数据将要写入存储介质的地址将所述待写入数据写入存储介质中;该第一存储阵列模块203还用于向所述第一 VHBA202返回所述写请求指令的响应,所述第一 VHBA202向所述第一应用模块201返回所述写请求指令的响应。在本发明实施例中,由于第一应用模块201和第一存储阵列模块203在同一个物理主机内,通过第一 VHBA卡202连接,可以共用一套操作系统,在写数据时仅需传递第一数据缓冲区204的地址和待写入数据,减少了内存拷贝,提升了系统性能。参见图五,是本发明一个实施方式所公开的数据处理装置,该装置包括第二应用模块301、第二 VHBA302、第二存储阵列模块303和第二数据缓冲区304 ;所述第二应用模块301用于将读请求指令和第二数据缓冲区304的地址发送给第二 VHBA302,所述读请求指令包括待读取数据在存储介质中的地址;所述第二 VHBA302用于将所述读请求指令和所述第二数据缓冲区304的地址发送给第二存储阵列模块303 ;所述第二存储阵列模块303还用于根据所述待读取数据在存储介质中的地址,获取待读取数据,再根据所述第二数据缓冲区304的地址将所述待读取数据写入所述第二数据缓冲区304 ;所述第二存储阵列模块303还用于向所述第二 VHBA302返回所述读请求指令的响应,所述第二 VHBA302向所述第二应用模块301返回所述读请求指令的响应。在本发明实施例中,第二应用模块301和第二存储阵列模块302在同一个物理主机内,共用一套操作系统,在读取数据时仅传递数据缓冲区304的地址和待读取数据的地址,因此本发明实施例既实现了应用主机和存储系统的融合,减少了内存拷贝,提升了系统性能。以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,上述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上对本发明所提供的一种能耗确定方法及装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式
及应用范围上均会有改变之处, 因此,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种数据处理方法,其特征在于,包括第一应用模块接收到写请求命令后,将待写入数据写入第一数据缓冲区,并将写请求指令和所述第一数据缓冲区的地址发送给第一虚拟主机总线适配卡VHBA,所述写请求指令包括所述待写入数据将要写入存储介质的地址;所述第一 VHBA将所述写请求指令和所述第一数据缓冲区的地址发送给第一存储阵列模块;所述第一存储阵列模块接收到所述写请求指令后,根据所述第一数据缓冲区的地址, 从所述第一数据缓冲区中获取所述待写入数据,再根据所述待写入数据将要写入存储介质的地址将所述待写入数据写入存储介质中;所述第一存储阵列模块向所述第一 VHBA返回所述写请求指令的响应,所述第一 VHBA 向所述第一应用模块返回所述写请求指令的响应。
2.根据权利要求I所述的方法,其特征在于所述第一应用模块包括应用软件栈,所述应用软件栈包括应用程序和驱动程序。
3.根据权利要求I所述的方法,其特征在于所述第一存储阵列模块包括目标器和阵列控制软件。
4.一种数据处理方法,其特征在于,包括第二应用模块将读请求指令和第二数据缓冲区的地址发送给第二 VHBA,所述读请求指令包括待读取数据在存储介质中的地址;所述第二 VHBA将所述读请求指令和所述第二数据缓冲区的地址发送给第二存储阵列模块;所述第二存储阵列模块根据所述读请求指令中携带的所述待读取数据在存储介质中的地址,获取待读取数据,再根据所述第二数据缓冲区的地址将所述待读取数据写入所述第二数据缓冲区;所述第二存储阵列模块向所述第二 VHBA返回所述读请求指令的响应,所述第二 VHBA 向所述应用模块返回所述读请求指令的响应。
5.根据权利要求4所述的方法,其特征在于所述第二应用模块包括应用软件栈,所述应用软件栈包括应用程序和驱动程序。
6.根据权利要求4所述的方法,其特征在于所述第二存储阵列模块包括目标器和阵列控制软件。
7.一种数据处理装置,其特征在于,包括第一应用模块、第一 VHBA、第一数据缓冲区和第一存储阵列模块;所述第一应用模块接收到写请求命令后,将待写入数据写入所述第一数据缓冲区,并将写请求指令和所述第一数据缓冲区的地址发送给所述第一 VHBA,所述写请求指令包括所述待写入数据将要写入存储介质的地址;所述第一 VHBA将所述写请求指令和所述第一数据缓冲区的地址发送给所述第一存储阵列I吴块;所述第一存储阵列模块接收到所述写请求指令后,根据所述第一数据缓冲区的地址, 从所述第一数据缓冲区中获取所述待写入数据,再根据所述待写入数据将要写入存储介质的地址将所述待写入数据写入存储介质中;所述第一存储阵列模块向所述第一 VHBA返回所述写请求指令的响应,所述第一 VHBA 向所述第一应用模块返回所述写请求指令的响应。
8.根据权利要求7所述的装置,其特征在于所述第一应用模块包括应用软件栈,所述应用软件栈包括应用程序和驱动程序。
9.根据权利要求7所述的装置,其特征在于所述第一存储阵列模块包括目标器和阵列控制软件。
10.一种数据处理装置,其特征在于,包括第二应用模块、第二 VHBA、第二数据缓冲区和第二存储阵列模块;所述第二应用模块用于将读请求指令和所述第二数据缓冲区的地址发送给第二 VHBA, 所述读请求指令包括待读取数据在存储介质中的地址;所述第二 VHBA用于将所述读请求指令和所述第二数据缓冲区的地址发送给第二存储阵列I吴块;所述第二存储阵列模块用于根据所述待读取数据在存储介质中的地址,获取待读取数据,再根据所述第二数据缓冲区的地址将所述待读取数据写入所述第二数据缓冲区;所述第二存储阵列模块还用于向所述第二 VHBA返回所述读请求指令的响应,所述第二 VHBA向所述第二应用模块返回所述读请求指令的响应。
全文摘要
本发明实施例提供了一种数据处理方法,包括应用模块将待写入数据写入数据缓冲区,并将写请求命令和所述数据缓冲区的地址发送给虚拟主机总线适配卡VHBA,所述写请求命令包括所述待写入数据将要写入存储介质的地址;所述VHBA将所述写请求命令和所述数据缓冲区的地址发送给存储阵列模块;所述存储阵列模块从所述数据缓冲区的地址中获取所述待写入数据,再根据所述待写入数据将要写入存储介质的地址将所述待写入数据写入存储介质中。在本发明实施例中,由于应用模块和存储阵列模块在同一个物理主机内,通过VHBA卡连接,可以共用一套操作系统,在写数据时仅需传递数据缓冲区的地址和待写入数据,减少了内存拷贝,提升了系统性能。
文档编号G06F3/06GK102609215SQ20111043920
公开日2012年7月25日 申请日期2012年4月11日 优先权日2012年4月11日
发明者罗庆超 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1