数据存储方法和装置的制造方法

文档序号:8905066阅读:164来源:国知局
数据存储方法和装置的制造方法
【技术领域】
[0001]本发明涉及互联网技术领域,尤其涉及一种数据存储方法和装置。
【背景技术】
[0002]对于一个虚拟操作系统来说,为了保证其数据可靠性,需要将数据保存在更可靠的云存储服务器上。另外,将存储保存在另外一个位置,也是虚拟操作系统迀移的充分条件。
[0003]但是输入输出(Input Output ;以下简称:10)对系统的性能是至关重要的,因此,将存储从本地移动到网络上的云存储,需要尽量减少由此带来的性能损失。
[0004]现有的技术方案一般都是采取互联网小型计算机接口(Internet Smal IComputer System Interface ;以下简称:ISCSI)的方式,在本地物理机上创建一个小型计算机接口 (Small Computer System Interface ;以下简称:SCSI)设备,将这个设备分配给虚拟操作系统。SCSI设备在底层通过ISCSI将SCSI命令发送给ISCSI目标器(ISCSItarget),一般云存储服务器都有自己的数据交换协议,所以这其中还要涉及SCSI命令和云存储服务器的协议的转换。ISCSI target可以部署在本地或者一个固定的服务器上,或者云存储服务器上。但是上述方案增加了 1路径的长度,增加了中央处理器(CentralProcessing Unit ;以下简称:CPU)的负载,对系统性能的消耗较大。

【发明内容】

[0005]本发明的目的旨在至少在一定程度上解决相关技术中的技术问题之一。
[0006]为此,本发明的第一个目的在于提出一种数据存储方法。该方法可以实现将数据存储在存储服务器上,缩短了 1路径,提高了系统的1吞吐,减轻了 CPU的负载,优化了系统性能。
[0007]本发明的第二个目的在于提出一种数据存储装置。
[0008]为了实现上述目的,本发明第一方面实施例的数据存储方法,包括:模拟设备接收来自客户操作系统的数据;将所述数据在宿主系统的用户空间中按照存储服务器使用的协议进行封装;将封装后的数据发送给所述存储服务器进行存储。
[0009]本发明实施例的数据存储方法,模拟设备接收来自客户操作系统的数据之后,将上述数据在宿主系统的用户空间中按照存储服务器使用的协议进行封装,然后将封装后的数据发送给上述存储服务器进行存储,从而可以实现将数据存储在存储服务器上,缩短了1路径,提高了系统的吞吐,减轻了 CPU的负载,优化了系统性能。
[0010]为了实现上述目的,本发明第二方面实施例的数据存储装置,设置在模拟设备中,所述数据存储装置包括:接收模块,用于接收来自客户操作系统的数据;封装模块,用于将所述接收模块接收的数据在宿主系统的用户空间中按照存储服务器使用的协议进行封装;发送模块,用于将所述封装模块封装后的数据发送给所述存储服务器进行存储。
[0011]本发明实施例的数据存储装置,实现为虚拟机监控器中的一个模拟设备,接收模块接收数据之后,封装模块将上述数据在宿主系统的用户空间中按照存储服务器使用的协议进行封装,然后发送模块将封装后的数据发送给上述存储服务器进行存储,从而可以实现将数据存储在存储服务器上,缩短了 1路径,提高了系统的1吞吐,减轻了 CPU的负载,优化了系统性能。
[0012]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
[0013]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0014]图1为本发明数据存储方法一个实施例的流程图;
[0015]图2为本发明数据存储方法的应用场景一个实施例的示意图;
[0016]图3为本发明数据存储装置一个实施例的结构示意图。
【具体实施方式】
[0017]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
[0018]图1为本发明数据存储方法一个实施例的流程图,如图1所示,该数据存储方法可以包括:
[0019]步骤101,模拟设备接收来自客户操作系统的数据。
[0020]步骤102,将上述数据在宿主系统的用户空间中按照存储服务器使用的协议进行封装。
[0021]步骤103,将封装后的数据发送给上述存储服务器进行存储。
[0022]本实施例中,上述模拟设备是在上述宿主系统上基于虚拟机监控器(VirtualMachine Monitor),例如快速模拟器(Quick Emulator ;以下简称:Qemu)实现的,上述模拟设备为外设部件互连标准(Peripheral Component Interconnect ;以下简称:PCI)接口的块设备;上述客户操作系统使用块设备驱动来驱动上述模拟设备,上述客户操作系统运行于虚拟机监控器之上。
[0023]本发明图1所示实施例提供的数据存储方法可以应用在图2所示的架构中,图2为本发明数据存储方法的应用场景一个实施例的示意图。
[0024]参见图2,本发明基于虚拟机监控器Qemu,设计并实现了一个模拟设备。为了避免修改客户操作系统,减少对客户操作系统的影响,该模拟设备被模拟为一个块设备,客户操作系统中无需实现任何对该模拟设备的驱动,直接使用块设备驱动即可;为了更高效的在客户操作系统和宿主系统之间进行通信,模拟设备采用虚拟输入输出(Virt1)标准实现数据通信;为了避免存储服务器升级等带来的影响,模拟设备与存储服务器进行了解耦,本发明在宿主系统上设计实现了一个存储服务器的代理服务器。
[0025]为了使客户操作系统不经修改就可以使用本发明图1所示实施例提供的方法,这一点尤其是对于那些用户自定义的客户操作系统非常有意义,本发明将模拟设备注册为PCI接口的Virt1块设备,客户操作系统发现是PCI总线上的Virt1块设备后,将使用虚拟输入输出块设备(virt1-blk)驱动来驱动该模拟设备。
[0026]本发明图1所示实施例中,上述模拟设备与上述客户操作系统之间通过Virt1的方式共享内存,模拟设备与客户操作系统之间通过传递上述数据所在内存的物理地址实现上述数据的访问,从而实现了数据的零复制。
[0027]本发明图1所示实施例中,将封装后的数据发送给存储服务器进行存储可以为:模拟设备将封装后的数据通过网络通信协议栈发送给上述存储服务器进行存储。
[0028]本发明中,模拟设备接收到数据之后,不再经过宿主系统的内核1栈,而是在宿主系统的用户空间中按照存储服务器的协议进行封装后,通过网络通信协议栈直接发送给远端的存储服务器。另外,本实施例对Qemu中的1路径进行了优化,缩短了 1路径。
[0
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1