总线设备、计算机设备及实现物理主机云存储的方法技术

技术编号:20915420 阅读:35 留言:0更新日期:2019-04-20 09:28
本申请实施例提供了一种总线设备、计算机设备及实现物理主机云存储的方法。在一种实施例中,一种应用于物理主机的总线设备,该总线设备通过物理主机总线连接到物理机上,所述总线设备包括:请求接收模块,用于接收由在物理主机的操作系统内安装的块设备驱动程序发送的I/O请求信息;协议栈实现模块,用于实现存储协议栈并利用该存储协议栈建立所述总线设备与云存储系统之间的通信,并将所述请求接收模块获得的所述I/O请求信息按照通信协议向所述云存储系统发送。

Bus Device, Computer Device and the Method of Implementing Physical Host Cloud Storage

The embodiment of the application provides a bus device, a computer device and a method for realizing cloud storage of a physical host. In one embodiment, a bus device applied to a physical host is connected to a physical machine through a physical host bus, which includes: a request receiving module for receiving I/O request information sent by a block device driver installed in the operating system of a physical host; and a protocol stack implementation module for storing and utilizing the protocol stack. The storage protocol stack establishes the communication between the bus device and the cloud storage system, and transmits the I/O request information obtained by the request receiving module to the cloud storage system according to the communication protocol.

【技术实现步骤摘要】
总线设备、计算机设备及实现物理主机云存储的方法
本说明书一个或多个实施例涉及计算机
,尤其涉及一种总线设备、计算机设备及实现物理主机云存储的方法。
技术介绍
弹性计算云(ElasticComputingCloud)是一种云计算服务,即基于虚拟化技术,将本地的物理机虚拟化成多个虚拟机(VirtualMachine,VM)来使用,以此来提高资源的使用率,压缩成本。其中,基于弹性计算云技术虚拟出来的虚拟机的存储服务一般都是基于块设备(BlockDevice)的存储服务,业界称之为弹性块存储服务(ElasticBlockStorage)。块存储服务,是基于块设备驱动(BlockDeviceDriver)提供的一种块级别的存储服务。当今,虚拟化技术因其弹性网络、弹性存储、快速交付等特点,已成为主流云主机服务的实现基础。然而,虚拟机通常存在性能损失、特性损失、资源争抢、软硬件较难耦合等方面的弊端,而传统物理机由于先天技术缺陷而不具备虚拟机的弹性(如:弹性存储)。为此,有必要提出一种新的物理机,以将传统物理机的优势和传统虚拟机的优势进行融合。
技术实现思路
有鉴于此,本说明书一个或多个实施例提供一种总线设备、计算机设备及实现物理主机云存储的方法。为实现上述目的,本说明书一个或多个实施例提供的技术方案如下:在一个方面,提出的一种应用于物理主机的总线设备,该总线设备通过物理主机总线连接到物理机上,所述总线设备包括:请求接收模块,用于接收由在物理主机的操作系统内安装的块设备驱动程序发送的I/O请求信息;协议栈实现模块,用于实现存储协议栈并利用该存储协议栈建立所述总线设备与云存储系统之间的通信,并将所述请求接收模块获得的所述I/O请求信息按照通信协议向所述云存储系统发送。在另一个方面,提出的一种计算机设备,包括:物理主机,安装有操作系统,在所述操作系统内安装有块设备驱动程序;用于通过物理机总线与所述物理主机连接的总线设备,所述总线设备包括请求接收模块和协议栈实现模块,所述请求接收模块用于接收由在物理主机的操作系统内安装的块设备驱动程序发送的I/O请求信息,所述协议栈实现模块用于实现存储协议栈并利用该存储协议栈建立所述总线设备与云存储系统之间的通信,并将所述请求接收模块获得的所述I/O请求信息按照通信协议向所述云存储系统发送。在又一个方面,提出的一种实现物理主机云存储的方法,应用于通过物理机总线与所述物理主机连接的总线设备,所述方法包括:接收由在物理主机的操作系统内安装的块设备驱动程序发送的I/O请求信息;通过所述总线设备内实现的存储协议栈建立所述总线设备与云存储系统之间的通信;将所述I/O请求信息按照通信协议向所述云存储系统发送,以使所述云存储系统执行相应的I/O操作。通过以上技术方案可见,通过可以通过物理机总线连接到物理机上的总线设备,可以实现将物理机的I/O请求传递给后端的云存储系统,从而实现了物理主机的弹性存储,将传统物理机的优势(如:裸金属高性能、硬件高隔离、支持硬件虚拟化)和传统虚拟机的优势(如:弹性存储、快速交付)相互融合。附图说明图1示出了示例性实施例提供的一种计算机设备的架构;图2示出了一示例性实施例提供的一种实现物理主机云存储的方法的流程图。具体实施方式当今,虚拟机因其具备诸如弹性网络、弹性存储、快速交付等弹性优势,而被应用到各种云部署场景中。然而,由于物理机本身具备诸如裸机高性能、硬件高隔离、支持硬件虚拟化等优势,在很多场景中依然需要基于物理机进行部署实现。因而出现了将物理机的优势和虚拟机的优势进行相互融合的需求。列举如下几种典型的需求场景:1、在诸如公有云部署场景下,物理机普遍需要具备虚拟私有云(VirtualPrivateCloud,VPC)的网络接入、弹性存储、快速交付等弹性特点。另外,在高性能计算(HighPerformanceComputing,HPC)和异构计算等场景下,普遍需要支持远程直接数据存取(RemoteDirectMemoryAccess,RDMA)网络,而RDMA虚拟化技术目前并不成熟,RDMA典型场景需要基于物理机进行部署。2、在混合云场景中,需要公有云厂商提供具备弹性能力的裸机服务。3、在互联网数据中心(IDC)搬站场景下,要求裸机大规模部署Docker(开源的应用容器引擎)。4、诸如ARM和Power等非x86指令集CPU,其虚拟化适配的工作量巨大,需要快速高效地满足非x86指令集CPU的IaaS(InfrastructureasaService,基础设施即服务)云部署。5、传统虚拟化技术(如:intelVT-x和KVM等)在性能损失、特性损失、资源争抢、软硬件耦合等方面的问题亟待解决。为了将虚拟机的弹性和物理机的裸机高性能、硬件高隔离、支持硬件虚拟化等优势相互融合,本申请实施例提出了一种具备虚拟机的弹性的物理机,该物理机可以保留传统物理机的优势。如图1所示,为本申请实施例提出的一种计算机设备的架构,该计算机设备包括:物理主机、与物理主机通过总线(Bus)相连接的总线设备(“总线设备”是一种通过接口电路连接到物理机的总线上的硬件,该硬件通常可即插即用)、云存储系统以及用于实现总线设备和云存储系统间的通信的网卡(NetworkInterfaceCard,NIC)。其中,物理主机的系统盘和数据盘都可以存在于该云存储系统上,由该云存储系统根据需求来分配,云存储是相对于本地存储,在数据健壮性上提供了更高的可用性和容错性。所述物理主机可包括处理器(CPU)、主板、内存、总线等硬件。该物理主机上可以安装有操作系统(Operatingsystem,OS),并且在该操作系统内安装块设备驱动程序(BlockDeviceDriver)。块设备(BlockDevice)是I/O设备中的一类,其用于将信息存储在固定大小的块中,每个块都有自己的地址,还可以在设备的任意位置读取一定长度的数据。在虚拟机中,为了提高虚拟机内外的I/O性能,通常需要通过半虚拟化技术来虚拟出一个虚拟磁盘(通常被虚拟为一个PCI设备),该虚拟出的PCI设备通过安装在虚拟机内部的块设备驱动程序进行驱动。本申请实施例中,为了能够实现物理机的弹性存储,上述块设备驱动程序(BlockDeviceDriver)可以选用在虚拟机中使用的用于驱动虚拟块设备的虚拟块设备驱动程序,也就是说,将传统在虚拟机中使用的虚拟块设备驱动程序复用到物理机中。作为一种示例,所述虚拟块设备驱动程序可以为virtio-blk驱动,通常,virtio可视为半虚拟化hypervisor中位于设备之上的抽象层。在相关技术中,virtio-blk作为一种半虚拟化驱动,可应用于在XEN或KVM等虚拟化平台。以qemu-kvm架构的虚拟化平台为例,在虚拟机中安装的virtio-blk驱动也被称为前端(virtio-blkfrontend),而用于虚拟PCI设备的qemu程序被称为后端(virtio-blkbackend),需要前后端配合来完成虚拟机内外的数据传输。在本申请实施例中,可以将前端程序复用到物理主机中,但是并不需要通过虚拟化技术虚拟出来一个PCI设备,而是通过硬件方式实现一个后端来与前端程序配合。本实施例通过将在虚拟机中的virtio-blk驱动程本文档来自技高网...

【技术保护点】
1.一种应用于物理主机的总线设备,该总线设备通过物理主机总线连接到物理机上,其特征在于,所述总线设备包括:请求接收模块,用于接收由在物理主机的操作系统内安装的块设备驱动程序发送的I/O请求信息;协议栈实现模块,用于实现存储协议栈并利用该存储协议栈建立所述总线设备与云存储系统之间的通信,并将所述请求接收模块获得的所述I/O请求信息按照通信协议向所述云存储系统发送。

【技术特征摘要】
1.一种应用于物理主机的总线设备,该总线设备通过物理主机总线连接到物理机上,其特征在于,所述总线设备包括:请求接收模块,用于接收由在物理主机的操作系统内安装的块设备驱动程序发送的I/O请求信息;协议栈实现模块,用于实现存储协议栈并利用该存储协议栈建立所述总线设备与云存储系统之间的通信,并将所述请求接收模块获得的所述I/O请求信息按照通信协议向所述云存储系统发送。2.根据权利要求1所述的总线设备,其特征在于,所述块设备驱动程序为在虚拟机中使用的用于驱动虚拟块设备的虚拟块设备驱动程序。3.根据权利要求2所述的总线设备,其特征在于,所述虚拟块设备驱动程序为virtio-blk驱动。4.根据权利要求2所述的总线设备,其特征在于,所述总线设备为通过PCIe总线连接到物理主机的PCIe设备。5.根据权利要求4所述的总线设备,其特征在于,所述PCIe设备满足如下条件:所述PCIe设备的配置空间内的配置信息满足所述虚拟块设备驱动程序的要求;所述PCIe设备的BAR寄存器实现所述虚拟块设备驱动程序要求的寄存器定义以及中断机制所需的INTx、或MSI或MSIX配置表项。6.根据权利要求4所述的总线设备,其特征在于,所述PCIe设备的扩展只读存储器中存放有云盘启动驱动程序,所述云盘启动驱动程序用于从云存储系统读取所述物理主机开机所需的数据。7.根据权利要求1所述的总线设备,其特征在于,所述请求接收模块/协议栈实现模块包括:现场可编程门阵列FPGA、和/或特定用途集成电路ASIC、和/或系统级芯片SoC。8.一种计算机设备,其特征在于,包括:物理主机,安装有操作系统,在所述操作系统内安装有块设备驱动程序;用于通过物理机总线与所述物理主机连接的总线设备,所述总线设备包括请求接收模块和协议栈实现模块,所述请求接收模块用于接收由在物理主机的操作系统内安装的块设备驱动程序发送的I/O请求信息,所述协议栈实现模块用于实现存储协议栈并利用该存储协议栈建立所述总线设备与云存储系统之间的通信,并将所述请求接收模块获得的所述I/O请求信息按照通信协议向所述云存储系统发送。9.根据权利要求8所述的计算机设备,其特征在于,所述块设备驱动程序为...

【专利技术属性】
技术研发人员:张献涛杨航
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1