CN104636076B - A kind of distributed block device drives method and system for cloud storage - Google Patents
A kind of distributed block device drives method and system for cloud storage Download PDFInfo
- Publication number
- CN104636076B CN104636076B CN201310574012.0A CN201310574012A CN104636076B CN 104636076 B CN104636076 B CN 104636076B CN 201310574012 A CN201310574012 A CN 201310574012A CN 104636076 B CN104636076 B CN 104636076B
- Authority
- CN
- China
- Prior art keywords
- virtual
- vsp
- disk
- virtual disk
- vbus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种用于云存储的分布式块设备驱动方法和系统。该方法包括:将上层文件系统传来的I/O请求转换成虚拟块设备的访问报文,再调用网卡驱动将数据包发送至服务器,以访问服务器上的真实物理存储设备。本发明能够支持多种操作系统的远程加载和运行,支持多种存储设备的指令接口,并且能够高效地完成数据请求和处理。
The invention discloses a distributed block device driving method and system for cloud storage. The method includes: converting the I/O request from the upper file system into an access message of the virtual block device, and then calling the network card driver to send the data packet to the server, so as to access the real physical storage device on the server. The invention can support remote loading and running of multiple operating systems, support command interfaces of multiple storage devices, and can efficiently complete data request and processing.
Description
技术领域technical field
本发明涉及云计算领域,特别是涉及一种用于云存储的分布式块设备驱动方法和系统。The invention relates to the field of cloud computing, in particular to a distributed block device driving method and system for cloud storage.
背景技术Background technique
随着网络技术的发展,用户将重要的个人数据通过终端设备同步到网络存储设备中进行保存和管理。云计算作为一种新型的网络计算模式,将用户熟悉的操作系统和应用程序作为网络存储的内容提供给用户。云计算终端通过网络远程加载操作系统,采用块流方式动态执行,为用户提供跨平台的各种应用和服务。由于云计算终端本身不预设物理存储设备,因此它需要通过一种虚拟存储设备驱动来与云计算服务器上的物理存储资源进行交互,从而为用户提供一个虚拟磁盘的视图。该驱动方法需要能够支持多种操作系统的远程加载和运行,支持多种存储设备的指令接口,并且能够高效地完成数据请求和处理。With the development of network technology, users synchronize important personal data to network storage devices through terminal devices for storage and management. As a new type of network computing model, cloud computing provides users with familiar operating systems and applications as network storage content. The cloud computing terminal remotely loads the operating system through the network, adopts the block flow method to execute dynamically, and provides users with various cross-platform applications and services. Since the cloud computing terminal itself does not preset a physical storage device, it needs to use a virtual storage device driver to interact with the physical storage resources on the cloud computing server, so as to provide the user with a virtual disk view. The driving method needs to be able to support remote loading and running of multiple operating systems, support command interfaces of multiple storage devices, and be able to efficiently complete data requests and processing.
传统的驱动方法存在以下问题:The traditional driving method has the following problems:
第一、传统的驱动方法如Windows驱动模型和Linux驱动模型都是面向某种特定的操作系统的设备驱动模型,且仅适用于单机环境,不能满足云计算虚拟存储系统跨平台、网络化的需求。First, traditional driving methods such as the Windows driver model and the Linux driver model are device driver models for a specific operating system, and are only applicable to a stand-alone environment, and cannot meet the cross-platform and networked requirements of cloud computing virtual storage systems .
第二、基于虚拟机的设备模型配合网络存储协议的方式能够实现操作系统的远程启动和运行,著名的成果有Collective、ISR和OSCircular。其中,Collective和ISR是基于VMWare设备模型开发的系统,OS Circular则使用Xen-HVM设备模型。但是虚拟机运行时占用较多内存,并延长了I/O访问路径,从而对数据访问性能有较大影响。Second, the device model based on the virtual machine and the network storage protocol can realize the remote startup and operation of the operating system. The famous achievements include Collective, ISR and OSCircular. Among them, Collective and ISR are systems developed based on the VMWare device model, while OS Circular uses the Xen-HVM device model. However, when the virtual machine is running, it occupies more memory and extends the I/O access path, which has a great impact on data access performance.
发明内容Contents of the invention
鉴于以上,本发明提出一种用于云存储的分布式块设备驱动方法和系统。In view of the above, the present invention proposes a distributed block device driving method and system for cloud storage.
本发明提出一种用于云存储的分布式块设备驱动方法,包括:The present invention proposes a distributed block device driving method for cloud storage, including:
终端的VBD接收来自OS的I/O请求并传送给VSP;The VBD of the terminal receives the I/O request from the OS and sends it to the VSP;
VSP提取I/O请求中的虚拟磁盘参数并传送给VHBA;VSP extracts the virtual disk parameters in the I/O request and sends them to VHBA;
VHBA将该虚拟磁盘参数封装为网络数据报文并发送给服务器;The VHBA encapsulates the virtual disk parameters into a network data message and sends it to the server;
服务器的VIOP解析收到的网络数据报文,传送给PSP;The VIOP of the server parses the received network data message and sends it to the PSP;
PSP根据虚拟磁盘与物理磁盘之间的映射关系,将该虚拟磁盘参数转换为物理磁盘参数,访问真实的存储设备;According to the mapping relationship between the virtual disk and the physical disk, the PSP converts the virtual disk parameters into physical disk parameters and accesses the real storage device;
VHBA将处理结果返回给对应的虚拟磁盘设备对象,激活VSP;The VHBA returns the processing result to the corresponding virtual disk device object and activates the VSP;
VBD将返回的数据拷贝到指定的内存中,完成I/O请求。VBD copies the returned data to the specified memory to complete the I/O request.
进一步,还包括:Further, it also includes:
PSP设置对VBus的监听程序,当检测到VSP进入初始化状态后,PSP将探测物理磁盘,分配并初始化块设备接口,使其中的相应字段指向物理设备的设备号,向VBus进行注册并写入物理磁盘信息,等待VBus写入虚拟磁盘信息,VBus是VSP和PSP间的一种总线抽象,用以完成虚拟磁盘接口和物理存储接口之间的交互;PSP sets up the monitor program for VBus. When it detects that VSP enters the initialization state, PSP will detect the physical disk, allocate and initialize the block device interface, make the corresponding field point to the device number of the physical device, register with VBus and write the physical disk. Disk information, waiting for VBus to write virtual disk information, VBus is a bus abstraction between VSP and PSP, used to complete the interaction between the virtual disk interface and the physical storage interface;
VSP进入初始化状态,向VBus进行注册,写入虚拟磁盘请求报告,分配并初始化接口结构,使其中的相应字段指向虚拟磁盘设备的设备号之后进入初始化完成状态;VSP enters the initialization state, registers with VBus, writes the virtual disk request report, allocates and initializes the interface structure, makes the corresponding field point to the device number of the virtual disk device, and then enters the initialization completion state;
PSP检测到VBus中注册了新的虚拟设备后,获取VBus中虚拟设备请求报告,根据报告中的虚拟磁盘信息创建虚拟磁盘;After the PSP detects that a new virtual device is registered in the VBus, it obtains a virtual device request report in the VBus, and creates a virtual disk according to the virtual disk information in the report;
创建完成后,当PSP监测到VSP进入初始化完成状态时,向VBus中更新设备的物理磁盘信息,进入连接状态,准备处理从VSP传递过来的I/O请求;After the creation is completed, when the PSP monitors that the VSP enters the initialization completion state, it updates the physical disk information of the device to the VBus, enters the connection state, and prepares to process the I/O request passed from the VSP;
VSP检测到PSP进入连接状态,建立与PSP的连接,并从VBus中读入物理磁盘信息,完成虚拟磁盘与物理磁盘之间的映射。The VSP detects that the PSP enters the connection state, establishes a connection with the PSP, and reads the physical disk information from the VBus to complete the mapping between the virtual disk and the physical disk.
进一步,还包括:Further, it also includes:
操作系统遍历PCI总线上存在的所有驱动程序,加载VSP驱动;The operating system traverses all drivers existing on the PCI bus and loads the VSP driver;
VSP初始化具体的虚拟块设备对象,注册中断处理程序,虚拟块设备对象作为一个PCI设备将调用VHBA驱动;VSP initializes the specific virtual block device object, registers the interrupt handler, and the virtual block device object will call the VHBA driver as a PCI device;
VHBA初始化虚拟总线适配器控制器对象,通过PCI配置空间的信息分配硬件资源,注册中断服务,扩展出下一级虚拟接口总线结构VBus;VHBA initializes the virtual bus adapter controller object, allocates hardware resources through information in the PCI configuration space, registers interrupt services, and expands the next-level virtual interface bus structure VBus;
VHBA调用网络扫描接口,向服务器发送连接指令确认存储设备是否准备接收虚拟I/O请求;VHBA invokes the network scanning interface and sends a connection command to the server to confirm whether the storage device is ready to receive virtual I/O requests;
在获得一个确认成功回复后,VHBA发送虚拟磁盘扫描指令获取设备名称、设备号和虚拟磁盘信息;After getting a successful confirmation reply, VHBA sends a virtual disk scan command to obtain the device name, device number and virtual disk information;
根据上述设备配置信息,VHBA向VBus注册新的虚拟磁盘设备对象,进入虚拟块设备的创建阶段。According to the above device configuration information, the VHBA registers a new virtual disk device object with the VBus and enters the stage of creating a virtual block device.
本发明提出一种用于云存储的分布式块设备驱动系统,包括终端,该终端包括:VBD、VSP和VHBA,其中:The present invention proposes a distributed block device driver system for cloud storage, including a terminal, the terminal includes: VBD, VSP and VHBA, wherein:
VBD,接收来自OS的I/O请求并传送给VSP,将返回的数据拷贝到指定的内存中,完成I/O请求;VBD, receives the I/O request from the OS and sends it to VSP, copies the returned data to the specified memory, and completes the I/O request;
VSP,提取I/O请求中的虚拟磁盘参数并传送给VHBA;VSP extracts the virtual disk parameters in the I/O request and sends them to VHBA;
VHBA,将该虚拟磁盘参数封装为网络数据报文并发送给服务器,将服务器处理结果返回给对应的虚拟磁盘设备对象,激活VSP;VHBA encapsulates the virtual disk parameters into a network data message and sends it to the server, returns the server processing result to the corresponding virtual disk device object, and activates the VSP;
其中,服务器解析收到的网络数据报文,根据虚拟磁盘与物理磁盘之间的映射关系,将该虚拟磁盘参数转换为物理磁盘参数,访问真实的存储设备。Wherein, the server parses the received network data message, converts the virtual disk parameters into physical disk parameters according to the mapping relationship between the virtual disk and the physical disk, and accesses the real storage device.
进一步,VSP进入初始化状态,向VBus进行注册,写入虚拟磁盘请求报告,分配并初始化接口结构,使其中的相应字段指向虚拟磁盘设备的设备号之后进入初始化完成状态;VSP检测到PSP进入连接状态,建立与PSP的连接,并从VBus中读入物理磁盘信息,完成虚拟磁盘与物理磁盘之间的映射。Further, VSP enters the initialization state, registers with VBus, writes the virtual disk request report, allocates and initializes the interface structure, makes the corresponding field point to the device number of the virtual disk device, and then enters the initialization completion state; VSP detects that the PSP enters the connection state , establish a connection with the PSP, and read in the physical disk information from the VBus to complete the mapping between the virtual disk and the physical disk.
进一步,VSP初始化具体的虚拟块设备对象,注册中断处理程序,虚拟块设备对象作为一个PCI设备将调用VHBA驱动;Further, VSP initializes the specific virtual block device object, registers the interrupt handler, and the virtual block device object will call the VHBA driver as a PCI device;
VHBA初始化虚拟总线适配器控制器对象,通过PCI配置空间的信息分配硬件资源,注册中断服务,扩展出下一级虚拟接口总线结构VBus;VHBA调用网络扫描接口,向服务器发送连接指令确认存储设备是否准备接收虚拟I/O请求;在获得一个确认成功回复后,VHBA发送虚拟磁盘扫描指令获取设备名称、设备号和虚拟磁盘信息;根据上述设备配置信息,VHBA向VBus注册新的虚拟磁盘设备对象,进入虚拟块设备的创建阶段。VHBA initializes the virtual bus adapter controller object, allocates hardware resources through the information of the PCI configuration space, registers interrupt services, and expands the next-level virtual interface bus structure VBus; VHBA calls the network scanning interface and sends a connection command to the server to confirm whether the storage device is ready Receive the virtual I/O request; after obtaining a successful confirmation reply, VHBA sends a virtual disk scanning command to obtain the device name, device number and virtual disk information; according to the above device configuration information, VHBA registers a new virtual disk device object with VBus, and enters The creation phase of a virtual block device.
本发明提出一种用于云存储的分布式块设备驱动系统,包括服务器,该服务器包括VIOP和PSP,其中:The present invention proposes a distributed block device driver system for cloud storage, including a server, the server includes VIOP and PSP, wherein:
VIOP,解析从终端收到的网络数据报文,传送给PSP;VIOP, analyze the network data message received from the terminal, and send it to the PSP;
PSP,根据虚拟磁盘与物理磁盘之间的映射关系,将网络数据报文中携带的虚拟磁盘参数转换为物理磁盘参数,访问真实的存储设备;PSP, according to the mapping relationship between the virtual disk and the physical disk, converts the virtual disk parameters carried in the network data message into physical disk parameters, and accesses the real storage device;
其中,终端接收来自OS的I/O请求,提取I/O请求中的虚拟磁盘参数,将该虚拟磁盘参数封装为网络数据报文并发送给服务器,以及将服务器结果返回给对应的虚拟磁盘设备对象,完成I/O请求。Among them, the terminal receives the I/O request from the OS, extracts the virtual disk parameters in the I/O request, encapsulates the virtual disk parameters into a network data packet and sends it to the server, and returns the server result to the corresponding virtual disk device Object that completes the I/O request.
进一步,PSP设置对VBus的监听程序,当检测到VSP进入初始化状态后,PSP将探测物理磁盘,分配并初始化块设备接口,使其中的相应字段指向物理设备的设备号,向VBus进行注册并写入物理磁盘信息,等待VBus写入虚拟磁盘信息,VBus是VSP和PSP间的一种总线抽象,用以完成虚拟磁盘接口和物理存储接口之间的交互;PSP检测到VBus中注册了新的虚拟设备后,获取VBus中虚拟设备请求报告,根据报告中的虚拟磁盘信息创建虚拟磁盘;创建完成后,当PSP监测到VSP进入初始化完成状态时,向VBus中更新设备的物理磁盘信息,进入连接状态,准备处理从VSP传递过来的I/O请求。Further, the PSP sets up a monitor program for the VBus. When it detects that the VSP enters the initialization state, the PSP will detect the physical disk, allocate and initialize the block device interface, make the corresponding field point to the device number of the physical device, register and write to the VBus Enter the physical disk information, and wait for the VBus to write the virtual disk information. The VBus is a bus abstraction between the VSP and the PSP to complete the interaction between the virtual disk interface and the physical storage interface; the PSP detects that a new virtual disk has been registered in the VBus. After the device is installed, obtain the virtual device request report in the VBus, and create a virtual disk according to the virtual disk information in the report; after the creation is completed, when the PSP detects that the VSP enters the initialization completion state, update the physical disk information of the device to the VBus, and enter the connection state , ready to process the I/O request passed from the VSP.
本发明提出一种用于云存储的分布式块设备驱动系统,包括上述任一所述终端和上述任一所述服务器。The present invention proposes a distributed block device driver system for cloud storage, including any of the above-mentioned terminals and any of the above-mentioned servers.
进一步,终端和服务器之间通过标准的通信传输协议建立数据交互通道。Further, a data exchange channel is established between the terminal and the server through a standard communication transmission protocol.
本发明为云计算环境下的存储设备驱动程序描述了一个开放的架构。该架构独立于特定的操作系统、硬件平台以及系统I/O总线,能够满足云计算虚拟存储系统跨平台、网络化的需求。The invention describes an open architecture for the storage device driver in the cloud computing environment. The architecture is independent of specific operating systems, hardware platforms, and system I/O buses, and can meet the cross-platform and networked requirements of cloud computing virtual storage systems.
本发明能够支持多种操作系统的远程加载和运行,支持多种存储设备的指令接口,并且能够高效地完成数据请求和处理。The invention can support remote loading and running of various operating systems, support instruction interfaces of various storage devices, and can efficiently complete data request and processing.
附图说明Description of drawings
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:The accompanying drawings described here are used to provide a further understanding of the present invention, and constitute a part of the present invention. The schematic embodiments of the present invention and their descriptions are used to explain the present invention, and do not constitute improper limitations to the present invention. In the attached picture:
图1所示为本发明云计算环境下的设备驱动方法与传统设备驱动方法的比较示意图。FIG. 1 is a schematic diagram showing a comparison between the device driving method in the cloud computing environment of the present invention and the traditional device driving method.
图2所示为本发明一实施例中的分布式块设备驱动系统的架构示意图。FIG. 2 is a schematic diagram of the architecture of the distributed block device driver system in an embodiment of the present invention.
图3所示为本发明一实施例中的分布式块设备驱动方法的流程示意图。FIG. 3 is a schematic flowchart of a distributed block device driving method in an embodiment of the present invention.
具体实施方式detailed description
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置和数值不限制本发明的范围。Various exemplary embodiments of the present invention will now be described in detail with reference to the accompanying drawings. It should be noted that the relative arrangements and numerical values of components and steps set forth in these embodiments do not limit the scope of the present invention unless specifically stated otherwise.
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。At the same time, it should be understood that, for the convenience of description, the sizes of the various parts shown in the drawings are not drawn according to the actual proportional relationship.
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。The following description of at least one exemplary embodiment is merely illustrative in nature and in no way taken as limiting the invention, its application or uses.
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。Techniques, methods and devices known to those of ordinary skill in the relevant art may not be discussed in detail, but where appropriate, such techniques, methods and devices should be considered part of the Authorized Specification.
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。In all examples shown and discussed herein, any specific values should be construed as exemplary only, and not as limitations. Therefore, other examples of the exemplary embodiment may have different values.
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。It should be noted that like numerals and letters denote like items in the following figures, therefore, once an item is defined in one figure, it does not require further discussion in subsequent figures.
本发明为云计算环境下的存储设备驱动程序描述了一个开放的架构。该架构独立于特定的操作系统、硬件平台以及系统I/O总线,如图1所示为本发明云计算环境下的设备驱动方法与传统设备驱动方法的比较示意图。The invention describes an open architecture for the storage device driver in the cloud computing environment. The architecture is independent of a specific operating system, hardware platform, and system I/O bus. FIG. 1 is a schematic diagram comparing the device driving method under the cloud computing environment of the present invention with the traditional device driving method.
图1中箭头左侧是传统的设备驱动方法,传统的驱动方法不需要服务器,只驱动本地的磁盘。传统方法面向特定操作系统,且基于单机系统。存储设备驱动在执行操作系统内核初始化过程中被加载,此后,应用程序运行时产生的I/O请求都由该驱动去访问本地磁盘来完成。图1中箭头右侧是本发明的驱动方法。其中,左侧是终端,右侧是服务器。本发明独立于特定的操作系统、硬件平台以及系统总线,本发明将驱动扩展至网络环境。The left side of the arrow in Figure 1 is the traditional device driving method, which does not require a server and only drives a local disk. Traditional methods are OS-specific and based on stand-alone systems. The storage device driver is loaded during the initialization process of the operating system kernel. After that, the I/O requests generated when the application program is running are all completed by the driver to access the local disk. The right side of the arrow in Fig. 1 is the driving method of the present invention. Among them, the terminal is on the left and the server is on the right. The invention is independent of specific operating system, hardware platform and system bus, and the invention extends the drive to the network environment.
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。In order to make the object, technical solution and advantages of the present invention clearer, the present invention will be described in further detail below in conjunction with specific embodiments and with reference to the accompanying drawings.
图2所示为本发明一实施例中的分布式块设备驱动系统的架构示意图。该系统包括终端和服务器。其中,终端包括前端模块,服务器包括后端模块。FIG. 2 is a schematic diagram of the architecture of the distributed block device driver system in an embodiment of the present invention. The system includes terminals and servers. Wherein, the terminal includes a front-end module, and the server includes a back-end module.
前端模块和后端模块均以内核态的驱动程序分别加载入终端和服务器的操作系统中,两者具有不同的结构和功能。根据功能层次的不同,前端模块和后端模块分别建立了各自的驱动堆栈。下面将结合附图,对前端模块和后端模块分别进行说明。Both the front-end module and the back-end module are respectively loaded into the operating systems of the terminal and the server with kernel-state drivers, and the two have different structures and functions. According to different functional levels, the front-end module and the back-end module respectively establish their own driver stacks. The front-end module and the back-end module will be described respectively below with reference to the accompanying drawings.
1.前端模块驱动栈1. Front-end module driver stack
前端模块负责获取上层文件系统传来的I/O请求,将请求转换成虚拟块设备的访问报文,再调用网卡驱动将数据包发送至服务器端。前端模块驱动协议栈在终端的内核态运行,按功能结构分为3个部分。The front-end module is responsible for obtaining the I/O request from the upper file system, converting the request into a virtual block device access message, and then calling the network card driver to send the data packet to the server. The front-end module driver protocol stack runs in the kernel mode of the terminal, and is divided into three parts according to the functional structure.
(1)虚拟块设备驱动层(virtual block device,VBD)。(1) Virtual block device driver layer (virtual block device, VBD).
VBD的主要任务是获取来自操作系统I/O子系统外部的请求,并将其转换成可行的虚拟块设备访问请求,向下传送给中层驱动,即传送给VSP,以及将VSP返回的数据拷贝到指定的内存中,完成I/O请求。VBD驱动向上提供一个虚拟的块设备接口,具有块设备的一切属性,具体可表现为虚拟磁盘类设备、虚拟磁带类设备、虚拟光驱类设备等。为满足系统的开放性要求,VBD组件还为操作系统提供符合相关标准的PnP接口、设备电源管理接口和I/O数据访问接口。PnP接口提供虚拟存储设备实体的启动、配置、停止、删除等功能。设备电源管理接口将虚拟存储设备的电源信号传递至服务器,由服务器提供电源管理策略,终端再根据服务器返回的结果设置相应的电源状态。在I/O数据接口方面,VBD对通用的数据交互接口ATA和SCSI提供全面支持。The main task of VBD is to obtain requests from outside the I/O subsystem of the operating system, convert them into feasible virtual block device access requests, and send them down to the middle-level driver, that is, to the VSP, and copy the data returned by the VSP Go to the specified memory to complete the I/O request. The VBD driver provides a virtual block device interface, which has all the attributes of a block device, and can be specifically represented as a virtual disk device, a virtual tape device, a virtual CD-ROM device, and so on. In order to meet the open requirements of the system, the VBD component also provides the operating system with a PnP interface, a device power management interface and an I/O data access interface that comply with relevant standards. The PnP interface provides functions such as starting, configuring, stopping, and deleting virtual storage device entities. The device power management interface transmits the power signal of the virtual storage device to the server, and the server provides the power management strategy, and the terminal sets the corresponding power state according to the result returned by the server. In terms of I/O data interface, VBD provides comprehensive support for common data interaction interfaces ATA and SCSI.
(2)虚拟存储接口驱动层(virtual storage port,VSP)。(2) Virtual storage interface driver layer (virtual storage port, VSP).
VSP主要实现前端模块的各种功能,包括总线扫描、错误恢复、命令排队、与内核通信以及其他各种初始化功能。它从VBD接收I/O请求,提取I/O请求中的虚拟磁盘参数并传送给下层即VHBA。直到I/O请求处理完成,VSP再将处理结果返还至VBD。VSP还执行错误处理如超时或指令错误等。因此,VSP是虚拟设备接口的总线层驱动,为上下层驱动提供统一接口并进行总线扫描,完成设备枚举、数据传输和错误处理。VSP mainly implements various functions of the front-end module, including bus scanning, error recovery, command queuing, communication with the kernel, and various other initialization functions. It receives I/O requests from VBD, extracts the virtual disk parameters in the I/O requests and sends them to the lower layer, namely VHBA. Until the processing of the I/O request is completed, the VSP returns the processing result to the VBD. The VSP also performs error handling such as timeouts or command errors. Therefore, VSP is the bus layer driver of the virtual device interface, which provides a unified interface for the upper and lower layer drivers and performs bus scanning to complete device enumeration, data transmission and error handling.
(3)虚拟总线适配器驱动层(virtual host bus adaptor,VHBA)。(3) Virtual host bus adapter driver layer (virtual host bus adapter, VHBA).
VHBA采用适合的网络传输协议实现虚拟接口总线结构VBus,并通过与服务器交互,完成前端模块和后端模块间状态、数据、命令和消息的传送。VHBA是虚拟控制器的驱动,向下与具体的硬件适配器相关。例如,它能够调用网卡驱动向服务器端发送I/O请求报文。即,VHBA将虚拟磁盘参数封装为网络数据报文并发送给服务器,将服务器处理结果返回给对应的虚拟磁盘设备对象,激活VSP。VHBA uses a suitable network transmission protocol to realize the virtual interface bus structure VBus, and completes the transmission of status, data, commands and messages between the front-end module and the back-end module by interacting with the server. VHBA is the driver of the virtual controller, which is related to the specific hardware adapter. For example, it can call the network card driver to send an I/O request message to the server. That is, the VHBA encapsulates the virtual disk parameters into a network data message and sends it to the server, returns the processing result of the server to the corresponding virtual disk device object, and activates the VSP.
2.后端模块驱动栈2. Back-end module driver stack
后端模块主要负责处理来自多个终端的前端模块的虚拟I/O请求,解析其中的访问信息,依据请求类型分别进行排队、调度,构造真实块设备访问指令,并传递给物理设备进行处理,最后将组织好的数据发送回相应的前端模块。后端模块驱动位于服务端的内核态,按功能结构分为2个层次。The back-end module is mainly responsible for processing virtual I/O requests from the front-end modules of multiple terminals, parsing the access information, queuing and scheduling according to the request types, constructing real block device access instructions, and passing them to physical devices for processing. Finally, the organized data is sent back to the corresponding front-end module. The back-end module driver is located in the kernel state of the server, and is divided into two levels according to the functional structure.
(1)虚拟I/O处理驱动层(virtual I/O processor,VIOP)。(1) Virtual I/O processing driver layer (virtual I/O processor, VIOP).
VIOP对来自前端模块的虚拟I/O请求进行解析、分类、排队和调度,将其中的物理设备访问指令传送给PSP层进行处理。VIOP将来自PSP层的数据或响应等内容进行封装,并通过网络传送给对应的前端模块。服务器端传输协议的功能在VIOP内完成。VIOP analyzes, classifies, queues and schedules the virtual I/O requests from the front-end module, and transmits the physical device access instructions to the PSP layer for processing. VIOP encapsulates the data or response from the PSP layer and transmits it to the corresponding front-end module through the network. The function of the server-side transport protocol is completed in VIOP.
(2)物理存储接口驱动层(physical storage port,PSP)。(2) Physical storage interface driver layer (physical storage port, PSP).
PSP与网络传输无关,主要处理来自VIOP设备驱动层的物理设备访问指令。PSP根据虚拟磁盘与物理磁盘之间的映射关系,将该虚拟磁盘参数转换为物理磁盘参数,访问真实的存储设备。它可以将接收到的块接口访问指令根据接口类别进行分类、聚合后,调用与之接口类型相对应的物理存储设备驱动程序进行处理。PSP还负责错误指令处理和指令状态维护。PSP has nothing to do with network transmission, and mainly deals with physical device access instructions from the VIOP device driver layer. According to the mapping relationship between the virtual disk and the physical disk, the PSP converts the virtual disk parameters into physical disk parameters to access real storage devices. It can classify and aggregate the received block interface access instructions according to the interface type, and call the corresponding physical storage device driver for the interface type to process. PSP is also responsible for error command processing and command state maintenance.
本发明能够支持多种操作系统的远程加载和运行,支持多种存储设备的指令接口,并且能够高效地完成数据请求和处理。本发明中,虚拟块设备驱动与云计算服务器上的物理存储资源进行交互,从而为用户提供一个虚拟磁盘的视图。The invention can support remote loading and running of various operating systems, support instruction interfaces of various storage devices, and can efficiently complete data request and processing. In the present invention, the virtual block device driver interacts with the physical storage resources on the cloud computing server, thereby providing a view of a virtual disk for the user.
本发明采用基于块级的虚拟化技术,提供相应的虚拟块设备接口来处理I/O请求。驱动方法采用客户端/服务器结构,根据代码功能将驱动程序划分为前端模块和后端模块两部分。前端模块运行在云计算终端,为终端OS提供虚拟设备接口,而不需要具体硬件的代码。后端模块运行在云计算服务器,提供I/O适配器和其物理设备的接口,而不需要终端OS相关代码。两个模块间使用一个标准的通信传输协议如iSCSI或NBD,为物理上分离的2个模块间建立数据交互通道。下面将结合附图,对前端模块和后端模块的工作流程进行详细说明。The present invention adopts block-level virtualization technology and provides corresponding virtual block device interface to process I/O requests. The driving method adopts a client/server structure, and the driver program is divided into two parts, a front-end module and a back-end module, according to code functions. The front-end module runs on the cloud computing terminal and provides a virtual device interface for the terminal OS without specific hardware code. The back-end module runs on the cloud computing server and provides the interface between the I/O adapter and its physical device without requiring terminal OS-related codes. A standard communication transmission protocol such as iSCSI or NBD is used between the two modules to establish a data exchange channel between the two physically separated modules. The workflow of the front-end module and the back-end module will be described in detail below with reference to the accompanying drawings.
云计算终端本地不驻留操作系统,因此开机启动后需要BIOS调用PXE协议提供的服务进行操作系统内核的远程加载。OS内核被加载后,在执行内核初始化过程中加载前端模块协议栈。OS系统程序的装载和OS启动后应用程序的运行所产生的I/O请求,都由前端模块和工作在服务器中的后端模块协同工作进行处理。工作流程主要包括总线扫描、虚拟块设备创建和I/O请求处理3个过程。The cloud computing terminal does not have an operating system locally, so after booting, the BIOS needs to call the service provided by the PXE protocol to remotely load the operating system kernel. After the OS kernel is loaded, the front-end module protocol stack is loaded during the kernel initialization process. The loading of the OS system program and the I/O requests generated by the running of the application program after the OS starts are all handled by the front-end module and the back-end module working in the server. The workflow mainly includes three processes: bus scanning, virtual block device creation and I/O request processing.
总线扫描、虚拟块设备创建、I/O请求处理是顺序执行的流程,即,总线扫描为虚拟块创建做准备,虚拟块设备创建以建立虚拟磁盘和物理磁盘之间的映射,然后进行I/O请求处理时,需要基于建立的映射关系进行转换。下面将对上述三个过程分别进行详细说明。Bus scanning, virtual block device creation, and I/O request processing are sequential execution processes, that is, bus scanning prepares for virtual block creation, virtual block device creation establishes a mapping between virtual disks and physical disks, and then performs I/O O Request processing needs to be converted based on the established mapping relationship. The above three processes will be described in detail below.
(1)总线扫描(1) Bus scan
步骤一:在计算机系统启动过程中,操作系统扫描默认的PCI(PeripheralComponent Interconnect,外部设备互连总线)根节点,遍历PCI总线上存在的所有驱动程序,加载VSP驱动。Step 1: During the startup process of the computer system, the operating system scans the default PCI (Peripheral Component Interconnect, external device interconnection bus) root node, traverses all the drivers existing on the PCI bus, and loads the VSP driver.
步骤二:VSP初始化具体的虚拟块设备对象,注册中断处理程序。虚拟块设备对象作为一个PCI设备将调用VHBA驱动。Step 2: VSP initializes a specific virtual block device object and registers an interrupt handler. The virtual block device object will call the VHBA driver as a PCI device.
步骤三:VHBA初始化虚拟总线适配器控制器对象,通过PCI配置空间的信息分配硬件资源,注册中断服务,扩展出下一级虚拟接口总线结构VBus。VBus是VSP和PSP间的一种总线抽象,用以完成虚拟磁盘接口和物理存储接口之间的交互。Step 3: VHBA initializes the virtual bus adapter controller object, allocates hardware resources through information in the PCI configuration space, registers interrupt services, and expands the next-level virtual interface bus structure VBus. VBus is a bus abstraction between VSP and PSP, which is used to complete the interaction between the virtual disk interface and the physical storage interface.
步骤四:VHBA调用网络扫描接口,向后端模块端发送连接指令确认存储设备是否准备接收虚拟I/O请求。Step 4: The VHBA calls the network scanning interface, and sends a connection command to the back-end module to confirm whether the storage device is ready to receive the virtual I/O request.
步骤五:在获得一个确认成功回复后,VHBA发送虚拟磁盘扫描指令获取设备名称、设备号和虚拟磁盘的配置信息(包括虚拟磁盘的个数以及各磁盘的大小等信息)。Step 5: After getting a successful confirmation reply, the VHBA sends a virtual disk scanning command to obtain the device name, device number and configuration information of the virtual disk (including the number of virtual disks and the size of each disk, etc.).
步骤六:根据上述设备配置信息,VHBA向VBus注册新的虚拟磁盘设备对象。开始进入虚拟块设备的创建阶段。Step 6: According to the above device configuration information, the VHBA registers a new virtual disk device object with the VBus. Start the creation phase of the virtual block device.
(2)虚拟块设备创建(2) Virtual block device creation
VSP和PSP通过底层提供的VBus总线抽象进行通信和协商,两者协同工作创建虚拟块设备,流程如下:VSP and PSP communicate and negotiate through the VBus bus abstraction provided by the bottom layer. The two work together to create a virtual block device. The process is as follows:
步骤一:PSP首先设置对VBus的监听程序,当检测到VSP进入初始化状态后,PSP将探测物理磁盘,分配并初始化块设备接口等结构,使其中的相应字段指向物理设备的设备号,向VBus进行注册并写入物理磁盘信息,等待VBus写入虚拟磁盘信息。Step 1: PSP first sets up the monitor program for VBus. When it detects that VSP enters the initialization state, PSP will detect the physical disk, allocate and initialize the block device interface and other structures, make the corresponding fields point to the device number of the physical device, and send data to the VBus Register and write physical disk information, and wait for VBus to write virtual disk information.
步骤二:VSP进入初始化状态,向VBus进行注册,写入虚拟磁盘请求报告,分配并初始化接口结构,使其中的相应字段指向虚拟磁盘设备的设备号之后进入初始化完成状态。Step 2: VSP enters the initialization state, registers with VBus, writes the virtual disk request report, allocates and initializes the interface structure, makes the corresponding field point to the device number of the virtual disk device, and then enters the initialization completion state.
步骤三:PSP监听函数检测到VBus中注册了新的虚拟设备后,获取VBus中虚拟设备请求报告,根据报告中的虚拟磁盘配置信息开始创建虚拟磁盘。Step 3: After the PSP monitoring function detects that a new virtual device is registered in the VBus, it obtains a virtual device request report in the VBus, and starts creating a virtual disk according to the virtual disk configuration information in the report.
步骤四:创建完成后,当PSP监测到VSP进入初始化完成状态时,向VBus中更新设备的物理扇区数、扇区大小等信息,然后进入连接状态,准备处理从VSP传递过来的I/O请求。Step 4: After the creation is completed, when the PSP monitors that the VSP enters the initialization completion state, update the physical sector number and sector size of the device to the VBus, and then enter the connection state, ready to process the I/O passed from the VSP ask.
步骤五:VSP检测到PSP进入连接状态,立即建立与PSP的连接,并从VBus中读入物理扇区数、扇区大小等信息,进而完成虚拟磁盘与物理磁盘间的映射关系表。根据映射关系表,VBD开始注册、分配并配置通用的磁盘对象,通知OS有新的块设备被创建。此后,OS可以像使用本地磁盘一样使用虚拟磁盘。Step 5: VSP detects that the PSP is in the connection state, immediately establishes a connection with the PSP, and reads information such as the number of physical sectors and sector size from the VBus, and then completes the mapping relationship table between the virtual disk and the physical disk. According to the mapping relationship table, VBD starts to register, allocate and configure common disk objects, and notify the OS that a new block device has been created. Thereafter, the OS can use the virtual disk as if it were a local disk.
(3)I/O请求处理(3) I/O request processing
图3所示为本发明一实施例中的分布式块设备驱动方法的流程示意图。该流程示出了I/O请求处理流程。包括以下步骤:FIG. 3 is a schematic flowchart of a distributed block device driving method in an embodiment of the present invention. This flow shows the I/O request processing flow. Include the following steps:
步骤一:VSP从VBD接收来自OS的I/O请求后,先将该请求加入访问请求队列,并采用适当的队列管理的算法(如先入先出队列和加权公平队列等),从队列中选择合适的I/O请求进行进一步处理。Step 1: After the VSP receives the I/O request from the OS from the VBD, it first adds the request to the access request queue, and adopts an appropriate queue management algorithm (such as first-in-first-out queue and weighted fair queue, etc.), and selects from the queue Appropriate I/O requests for further processing.
步骤二:VSP每次从队列中取出一个I/O请求,也就是说当且仅当前一个I/O请求处理完成后,队列中的下一个I/O请求才会被处理。Step 2: VSP takes out one I/O request from the queue each time, that is to say, the next I/O request in the queue will be processed only after the processing of the current I/O request is completed.
步骤三:VSP提取I/O请求数据结构中的相关参数(包括被请求磁盘块的起始地址、块大小以及缓冲区指针),调用VHBA的读/写接口,将相关参数封装成为磁盘访问读/写指令,然后将封装为网络数据报文发送给服务端VIOP。Step 3: VSP extracts the relevant parameters in the I/O request data structure (including the start address of the requested disk block, block size and buffer pointer), calls the read/write interface of VHBA, and encapsulates the relevant parameters into a disk access read /write command, and then encapsulate it as a network data packet and send it to the server VIOP.
步骤四:VIOP解析接收到的请求报文,根据分类规则(按用户分类或I/O类型分类)对虚拟I/O请求进行分类。调度策略对于不同类别的I/O队列赋予不同的优先级,例如可为系统类的I/O请求赋予最高优先级。Step 4: VIOP parses the received request message, and classifies virtual I/O requests according to classification rules (by user classification or I/O type classification). The scheduling policy assigns different priorities to different types of I/O queues, for example, the highest priority may be assigned to system-type I/O requests.
步骤五:PSP将接收到的I/O请求进行聚合处理后,调用物理磁盘接口访问真实的存储设备。当服务器返回给处理结果后,VHBA将结果返回给对应的虚拟磁盘设备对象,激活VSP。Step 5: After the PSP aggregates the received I/O requests, it calls the physical disk interface to access the real storage device. After the server returns the processing result, the VHBA returns the result to the corresponding virtual disk device object and activates the VSP.
步骤六:VBD将返回的数据拷贝到指定的内存中,通知OS,完成一次I/O请求。Step 6: VBD copies the returned data to the specified memory, and notifies the OS to complete an I/O request.
本发明不仅局限于云计算环境下的计算终端,还可应用在各种计算设备上,如各种应用服务器。The present invention is not limited to computing terminals in the cloud computing environment, but can also be applied to various computing devices, such as various application servers.
至此,已经详细描述了本发明。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。So far, the present invention has been described in detail. Certain details well known in the art have not been described in order to avoid obscuring the inventive concept. Based on the above description, those skilled in the art can fully understand how to implement the technical solutions disclosed herein.
可能以许多方式来实现本发明的方法以及装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法以及装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。The method and apparatus of the invention may be implemented in many ways. For example, the method and device of the present invention can be realized by software, hardware, firmware or any combination of software, hardware, and firmware. The above sequence of steps used in the method is for illustration only, and the steps of the method of the present invention are not limited to the sequence specifically described above unless specifically stated otherwise. Furthermore, in some embodiments, the present invention can also be implemented as programs recorded in recording media, the programs including machine-readable instructions for realizing the method according to the present invention. Thus, the present invention also covers a recording medium storing a program for executing the method according to the present invention.
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。Although some specific embodiments of the present invention have been described in detail through examples, those skilled in the art should understand that the above examples are for illustration only, rather than limiting the scope of the present invention. Those skilled in the art will appreciate that modifications can be made to the above embodiments without departing from the scope and spirit of the invention. The scope of the invention is defined by the appended claims.
Claims (10)
- A kind of 1. distributed block device drives method for cloud storage, it is characterised in that:The Virtual Block Device driving layer VBD of terminal receives the I/O from operating system and asks and send the drive of virtual memory interface to Dynamic layer VSP;VSP extracts the virtual disk parameter in I/O requests and sends virtual bus adapter driving layer VHBA to;The virtual disk parameter is encapsulated as network data message and is sent to server by VHBA;The network data message that the virtual i/o processing driving layer VIOP parsings of server receive, sends physical store interface drive to Dynamic layer PSP;PSP joins the virtual disk Parameter Switch for physical disk according to the mapping relations between virtual disk and physical disk Number, accesses real storage device;VIOP returns to PSP to the result of network data message the VHBA of terminal;The result is returned to corresponding virtual disk device object by VHBA, activates VSP;The result is returned to VBD by VSP;The result that VBD returns to VSP is copied in the internal memory specified, and completes I/O requests;Wherein, methods described also includes:PSP sets the oracle listener to VBus, after detecting that VSP enters init state, PSP will detect physical disk, distribute simultaneously INIT block equipment interface, the equipment for making respective field therein point to physical equipment Number, registered to VBus and write physical disk information, wait VBus write-in virtual disk informations, VBus is between VSP and PSP A kind of bus abstract, to complete the interaction between virtual disk interface and physical store interface.
- 2. it is used for the distributed block device drives method of cloud storage according to claim 1, it is characterised in that also include:VSP enters init state, is registered to VBus, writes virtual disk request report, distributes simultaneously initialization interface knot Structure, respective field therein is set to enter initialization completion status after pointing to the device number of virtual disk equipment;PSP is detected new virtual unit is have registered in VBus after, obtain VBus in virtual unit request report, according in report Virtual disk information create virtual disk;After the completion of establishment, when PSP monitors that VSP enters initialization completion status, the physical disk of more new equipment into VBus Information, into connection status, prepare the I/O requests that processing passes over from VSP;VSP detects that PSP enters connection status, establishes the connection with PSP, and physical disk information is read in from VBus, completes Mapping between virtual disk and physical disk.
- 3. the distributed block device drives method according to claim 1 or claim 2 for cloud storage, it is characterised in that also include:All drivers present on operating system traversal pci bus, loading VSP drivings;VSP initializes specific Virtual Block Device object, registers interrupt handling routine, Virtual Block Device object is as a PCI Equipment will call VHBA drivings;VHBA initialization of virtual bus adapter controller objects, hardware resource, registration are distributed by the information of pci configuration space Service is interrupted, expands next stage virtual interface bus structures VBus;VHBA calls network sweep interface, and sending link order to server confirms whether storage device prepares to receive virtual i/o Request;Obtain one confirms successfully to reply after, VHBA sends the implementor name of virtual disk scan instruction acquisition virtual disk equipment Title, device number and virtual disk information;According to storage device title, storage device number and the virtual disk information of virtual disk equipment, VHBA registers new to VBus Virtual disk device object, into the establishing stage of Virtual Block Device.
- 4. a kind of distributed block device driver system for cloud storage, including terminal, the terminal include:Virtual Block Device drives Layer VBD, virtual memory interface driver layer VSP and virtual bus adapter driving layer VHBA, it is characterised in that:VBD, receive the I/O from operating system and ask and send VSP to, the place to network data message that server is returned Reason result is copied in the internal memory specified, and completes I/O requests;VSP, extract the virtual disk parameter in I/O requests and send VHBA to, by processing of the server to network data message As a result VBD is returned to;VHBA, the virtual disk parameter is encapsulated as network data message and is sent to server, by server to network data The result of message returns to corresponding virtual disk device object, activates VSP;Wherein, the network data message that server parsing receives, will according to the mapping relations between virtual disk and physical disk The virtual disk Parameter Switch is physical disk parameter, accesses real storage device;VSP enters init state, is registered to VBus, writes virtual disk request report, distributes simultaneously initialization interface knot Structure, respective field therein is set to enter initialization completion status after pointing to the device number of virtual disk equipment, wherein VBus is A kind of bus abstract between VSP and PSP.
- 5. it is used for the distributed block device driver system of cloud storage according to claim 4, it is characterised in that:VSP detects that physical store interface driving layer PSP enters connection status, establishes the connection with PSP, and read in from VBus Physical disk information, complete the mapping between virtual disk and physical disk.
- 6. it is used for the distributed block device driver system of cloud storage according to claim 5, it is characterised in that:VSP initializes specific Virtual Block Device object, registers interrupt handling routine, Virtual Block Device object is as a PCI Equipment will call VHBA drivings;VHBA initialization of virtual bus adapter controller objects, hardware resource, registration are distributed by the information of pci configuration space Service is interrupted, expands next stage virtual interface bus structures VBus;VHBA calls network sweep interface, sends and connects to server Connect whether confirmation command storage device prepares to receive virtual i/o request;Obtain one confirms successfully reply after, VHBA send void Intend device name, device number and virtual disk information that disk scanning instruction obtains virtual disk equipment;Set according to virtual disk Standby storage device title, storage device number and virtual disk information, VHBA register new virtual disk device object to VBus, Into the establishing stage of Virtual Block Device.
- 7. a kind of distributed block device driver system for cloud storage, including server, the server includes virtual i/o processing Drive layer VIOP and physical store interface driving layer PSP, it is characterised in that:VIOP, the network data message received from terminal is parsed, sends PSP to;PSP, according to the mapping relations between virtual disk and physical disk, the virtual disk carried in network data message is joined Number is converted to physical disk parameter, accesses real storage device;Wherein, terminal receives the I/O requests from operating system, the virtual disk parameter in extraction I/O requests, by the virtual magnetic Disk parameter is encapsulated as network data message and is sent to server, and server results are returned into corresponding virtual disk and set Standby object, complete I/O requests;PSP sets the oracle listener to VBus, and after detecting that VSP enters init state, PSP will detect physical disk, point With simultaneously INIT block equipment interface, respective field therein is pointed to the device number of physical equipment, registered and write to VBus Enter physical disk information, wait VBus write-in virtual disk informations, VBus is between virtual memory interface driver layer VSP and PSP A kind of bus abstract, to complete the interaction between virtual disk interface and physical store interface.
- 8. it is used for the distributed block device driver system of cloud storage according to claim 7, it is characterised in that:PSP is detected new virtual unit is have registered in VBus after, obtain VBus in virtual unit request report, according in report Virtual disk information create virtual disk;After the completion of establishment, when PSP monitors that VSP enters initialization completion status, to The physical disk information of more new equipment in VBus, into connection status, prepare the I/O requests that processing passes over from VSP.
- A kind of 9. distributed block device driver system for cloud storage, it is characterised in that:Including any drive of claim 4 to 6 The server that the terminal and any drive system of claim 7 or 8 that dynamic system includes include.
- 10. it is used for the distributed block device driver system of cloud storage according to claim 9, it is characterised in that:Terminal kimonos Between business device data exchange channels are established by the communication transport protocols of standard.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310574012.0A CN104636076B (en) | 2013-11-15 | 2013-11-15 | A kind of distributed block device drives method and system for cloud storage |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310574012.0A CN104636076B (en) | 2013-11-15 | 2013-11-15 | A kind of distributed block device drives method and system for cloud storage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104636076A CN104636076A (en) | 2015-05-20 |
CN104636076B true CN104636076B (en) | 2017-12-05 |
Family
ID=53214890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310574012.0A Active CN104636076B (en) | 2013-11-15 | 2013-11-15 | A kind of distributed block device drives method and system for cloud storage |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104636076B (en) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104881254B (en) * | 2015-05-27 | 2018-09-07 | 北京百度网讯科技有限公司 | Date storage method and device |
CN106610789B (en) * | 2015-10-26 | 2019-08-16 | 华为技术有限公司 | A kind of data processing method, apparatus and system |
CN105404471B (en) * | 2015-11-03 | 2018-06-12 | 国云科技股份有限公司 | Method for realizing distributed cloud storage cache layer |
CN107025146B (en) * | 2016-01-30 | 2019-10-18 | 华为技术有限公司 | A file generation method, device and system |
CN106557280B (en) * | 2016-10-31 | 2019-10-15 | 北京华为数字技术有限公司 | Data storage method, storage array and host server |
CN106534328B (en) * | 2016-11-28 | 2020-01-31 | 网宿科技股份有限公司 | Node connection method and distributed computing system |
CN107015889B (en) * | 2017-04-12 | 2019-11-22 | 广州市品高软件股份有限公司 | A kind of implementation method of the multi-user virtual tape library based on cloud computing |
CN109656675B (en) * | 2017-10-11 | 2023-03-21 | 阿里巴巴集团控股有限公司 | Bus equipment, computer equipment and method for realizing physical host cloud storage |
CN109933278A (en) * | 2017-12-19 | 2019-06-25 | 中国电信股份有限公司 | For realizing the method and apparatus of block device carry access |
CN110568996A (en) * | 2019-09-05 | 2019-12-13 | 蒋昊坤 | Local storage capacity expansion system based on device driver |
CN112860601A (en) * | 2019-11-12 | 2021-05-28 | 深圳怡化电脑股份有限公司 | Method and device for calling device driving function, computer device and system |
JP6779425B1 (en) * | 2020-02-14 | 2020-11-04 | 三菱電機株式会社 | Drive control device and drive control system |
CN113672411B (en) * | 2021-08-25 | 2023-08-11 | 烽火通信科技股份有限公司 | Method and device for realizing network equipment virtualization driving adaptation layer |
CN114356242A (en) * | 2022-01-05 | 2022-04-15 | 河北工业职业技术学院 | Data storage improvement method, data storage device and electronic device |
CN114356421A (en) * | 2022-01-07 | 2022-04-15 | 北京金山云网络技术有限公司 | Instruction splitting method, device and electronic device |
CN114860321B (en) * | 2022-04-06 | 2023-07-18 | 网易(杭州)网络有限公司 | External device control method, device, equipment and medium based on raspberry pie |
CN114844957B (en) * | 2022-04-27 | 2024-03-08 | 工银科技有限公司 | Link message conversion method, device, equipment, storage medium and program product |
CN115062340A (en) * | 2022-06-16 | 2022-09-16 | 北京字跳网络技术有限公司 | Device access method, interface processing method and device |
CN115190044B (en) * | 2022-06-28 | 2023-08-08 | 平安银行股份有限公司 | Device connection state checking method, device and storage medium |
CN119071310A (en) * | 2023-06-01 | 2024-12-03 | 阿里巴巴(中国)有限公司 | Cloud storage processing method, device, storage medium and system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1623136A (en) * | 2002-01-09 | 2005-06-01 | 思科技术公司 | Methods and apparatus for implementing virtualization of storage within a storage area network through a virtual enclosure |
CN1945537A (en) * | 2006-07-27 | 2007-04-11 | 清华大学 | Method for realizing high speed solid storage device based on storage region network |
CN101419535A (en) * | 2008-11-19 | 2009-04-29 | 北京航空航天大学 | Distributed virtual magnetic disc system of virtual machine |
CN102999400A (en) * | 2012-11-22 | 2013-03-27 | 中国电信股份有限公司云计算分公司 | Data backup method and device of cloud storage system |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5836042B2 (en) * | 2011-10-04 | 2015-12-24 | 株式会社日立製作所 | Management server program |
-
2013
- 2013-11-15 CN CN201310574012.0A patent/CN104636076B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1623136A (en) * | 2002-01-09 | 2005-06-01 | 思科技术公司 | Methods and apparatus for implementing virtualization of storage within a storage area network through a virtual enclosure |
CN1945537A (en) * | 2006-07-27 | 2007-04-11 | 清华大学 | Method for realizing high speed solid storage device based on storage region network |
CN101419535A (en) * | 2008-11-19 | 2009-04-29 | 北京航空航天大学 | Distributed virtual magnetic disc system of virtual machine |
CN102999400A (en) * | 2012-11-22 | 2013-03-27 | 中国电信股份有限公司云计算分公司 | Data backup method and device of cloud storage system |
Also Published As
Publication number | Publication date |
---|---|
CN104636076A (en) | 2015-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104636076B (en) | A kind of distributed block device drives method and system for cloud storage | |
US10862982B2 (en) | Cloud-scale heterogeneous datacenter management infrastructure | |
US8830228B2 (en) | Techniques for enabling remote management of servers configured with graphics processors | |
US10656877B2 (en) | Virtual storage controller | |
US7437738B2 (en) | Method, system, and program for interfacing with a network adaptor supporting a plurality of devices | |
TWI533213B (en) | Storing and resuming application runtime state | |
US20150052280A1 (en) | Method and system for communications-stack offload to a hardware controller | |
US7761578B2 (en) | Communicating in a virtual environment | |
US20120054740A1 (en) | Techniques For Selectively Enabling Or Disabling Virtual Devices In Virtual Environments | |
TW200846914A (en) | Facilitating input/output processing of one or more guest processing systems | |
TW200522583A (en) | IP-based method and apparatus for booting computers remotely in wide-area-network environment | |
WO2021018267A1 (en) | Live migration method for virtual machine and communication device | |
WO2022143714A1 (en) | Server system, and virtual machine creation method and apparatus | |
US9940148B1 (en) | In-place hypervisor updates | |
CN100399273C (en) | A virtual machine system and its hardware configuration method | |
US10782992B2 (en) | Hypervisor conversion | |
JP2013508833A (en) | Apparatus, method, and computer program for efficient communication between partitions in a logically partitioned system | |
CN105556473A (en) | I/O task processing method, device and system | |
CN102622245B (en) | Virtual machine automatic-starting control method under sun4v architecture | |
CN116303149B (en) | Method and system for expanding controller interface based on BMC chip | |
Yang | A research on usb device remote sharing methods in virtual desktop environment | |
CN113703913B (en) | Equipment testing method and device | |
CN108762891A (en) | A kind of cloud platform resource regulating method and device | |
CN108021375A (en) | The management method and computer-readable recording medium of data in cloud computing system | |
CN115079932A (en) | Data storage method and device, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220127 Address after: 100007 room 205-32, floor 2, building 2, No. 1 and No. 3, qinglonghutong a, Dongcheng District, Beijing Patentee after: Tianyiyun Technology Co.,Ltd. Address before: No.31, Financial Street, Xicheng District, Beijing, 100033 Patentee before: CHINA TELECOM Corp.,Ltd. |