CN104636077B - 用于虚拟机的网络块设备存储系统与方法 - Google Patents

用于虚拟机的网络块设备存储系统与方法 Download PDF

Info

Publication number
CN104636077B
CN104636077B CN201310574013.5A CN201310574013A CN104636077B CN 104636077 B CN104636077 B CN 104636077B CN 201310574013 A CN201310574013 A CN 201310574013A CN 104636077 B CN104636077 B CN 104636077B
Authority
CN
China
Prior art keywords
virtual
read
user
virtual machine
server
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
Application number
CN201310574013.5A
Other languages
English (en)
Other versions
CN104636077A (zh
Inventor
高原
谢朝阳
田翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianyi Cloud Technology Co Ltd
Original Assignee
China Telecom Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN201310574013.5A priority Critical patent/CN104636077B/zh
Publication of CN104636077A publication Critical patent/CN104636077A/zh
Application granted granted Critical
Publication of CN104636077B publication Critical patent/CN104636077B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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请求类型对读写请求进行调度;根据调度顺序将读写请求封装为网络报文并通过存储通信协议发送至服务器;服务器接收多个用户发送的网络报文,网络报文中携带为用户分配的IP地址;抽取网络报文中的参数,并根据抽取出的参数查找对应的VSI编号;通过文件系统和对应的VSI编号找到服务器物理磁盘上的对应区域进行读或写操作。本公开为用户提供了虚拟机核内服务的封装并同时支持多用户的网络块设备存储。

Description

用于虚拟机的网络块设备存储系统与方法
技术领域
本公开涉及云计算领域,特别地,涉及一种用于虚拟机的网络块设备存储系统与方法。
背景技术
虚拟化技术是目前计算机领域最为活跃、最有发展潜力的研究方向之一,已受到学术界和工业界的广泛关注。但是,存储虚拟化却限制了虚拟机应用的灵活性和自身的独立性。例如,虚拟机的动态迁移能够使一个计算系统从一台物理计算机迁移到另一台物理计算机上。但是由于缺乏存储设备数据访问的虚拟化,这些互相迁移的虚拟机必须在一个宿主机内。
网络存储方式是虚拟机通过网络传输协议进行数据存储,相较于传统的宿主机方式,采用网络存储方式具有如下的优点:
(1)应用软件免安装:软件发布者将软件发布到虚拟存储映像文件上,用户在下载该映像文件后无需进行繁琐的安装过程即可运行包含在其中的应用程序;
(2)容量可扩充:物理存储设备一经选定,其容量即被固定;由于VSD(VirtualStorage Device,虚拟存储设备)并不直接和物理存储设备相对应,它在理论上可支持近乎无限的容量。
网络存储可以在文件系统和块设备两个层次实现数据存储的虚拟化,前者如NFS(Network File System,网络文件系统)和CIFS(Common Internet File System,通用internet文件系统),后者如NBD(Network Block Disk,网络块设备)和iSCSI(InternetSmall Computer System Interface,是一种基于因特网及SCSI-3协议下的存储技术)。虚拟文件系统则直接向操作系统提供文件系统接口,而虚拟块设备对操作系统暴露一个原始块设备,操作系统可以根据需要自己管理此虚拟块设备。与虚拟文件系统方式相比较,虚拟块设备方式为用户提供了更大的灵活性:由于操作系统可自行设定虚拟块设备上的文件系统格式,虚拟块设备的用户可利用操作系统的支持,使用诸如日志、快照、审计等虚拟文件系统当前不支持的功能。
当前已经出现了若干个网络存储协议以及相关工具,包括NBD、iSCSI等,但它们的功能单一,无法满足虚拟机对网络块设备的功能要求:
(1)由于虚拟块设备服务软件一般由核内模块和核外服务两部分组成,新型虚拟块设备服务的开发者必须自行设计虚拟块设备的核内及核外两部分,这提高了虚拟块设备服务的开发难度。
(2)标准的网络存储协议关注于数据包的网络通信,因为不具备用户管理、多用户并发I/O(Input/Output,输入输出)请求处理、虚拟映像管理方面的功能。
发明内容
本公开鉴于以上问题中的至少一个提出了新的技术方案。
本公开在其一个方面提供了一种用于虚拟机的网络块设备存储系统,其为用户提供了虚拟机核内服务的封装并同时支持多用户的网络块设备存储。
本公开在其另一方面提供了一种用于虚拟机的网络块设备存储方法,其为用户提供了虚拟机核内服务的封装并同时支持多用户的网络块设备存储。
根据本公开,提供一种用于虚拟机的网络块设备存储系统,包括客户端和服务器,其中,
客户端,用于为虚拟机操作系统及其上的应用程序提供虚拟磁盘接口,虚拟机磁盘接口将接收的读写请求转发至虚拟块设备驱动单元,虚拟块设备驱动单元通过存储通信协议将对虚拟磁盘的读写请求转发至服务器;
服务器,用于处理一个或多个客户端中不同用户发送的读写请求,并通过服务器内的虚拟存储映像VSI访问服务器内的物理磁盘来实现对虚拟磁盘中数据的读写。
在本公开的一些实施例中,客户端包括虚拟机和虚拟机监控器。
在本公开的一些实施例中,虚拟磁盘接口工作在虚拟机中的虚拟机操作系统内部,接收虚拟机操作系统对虚拟磁盘的各种操作指令。
在本公开的一些实施例中,虚拟块设备驱动单元位于虚拟机监控器中,处理虚拟磁盘接口传递的读写请求并调度处理读写请求所需的资源。
根据本公开,还提供了一种用于虚拟机的网络块设备存储方法,包括:
响应于用户对应用程序的执行,虚拟机操作系统调用虚拟磁盘接口发起对虚拟磁盘的读写请求;
虚拟磁盘接口将读写请求传递给虚拟机监控器中的虚拟块设备驱动单元;
虚拟块设备驱动单元按照I/O请求类型对读写请求进行调度;
根据调度顺序将读写请求封装为网络报文,并通过存储通信协议发送至服务器;
服务器接收多个用户发送的网络报文,网络报文中携带为用户分配的IP地址;
抽取网络报文中的参数,并根据抽取出的参数查找对应的VSI编号;
通过文件系统和对应的VSI编号找到服务器物理磁盘上的对应区域进行读或写操作。
在本公开的一些实施例中,读写请求中包括操作码、被访问的虚拟磁盘编号、存储块的地址与大小。
在本公开的一些实施例中,该方法还包括:
在服务器侧建立用户账户、虚拟机磁盘编号与VSI编号之间的映射关系。
在本公开的一些实施例中,该方法还包括:
响应于用户登录服务器,在服务器侧建立用户账户与为用户分配的IP地址的对应关系。
在本公开的技术方案中,由于将虚拟机操作系统以及其上应用程序对虚拟磁盘的访问请求转发给虚拟磁盘接口,由虚拟磁盘接口将访问请求转发至虚拟块设备驱动单元,再由虚拟块设备驱动单元将访问请求转发至服务器,并通过对服务器上物理磁盘的访问实现对虚拟磁盘的访问请求,进而实现了对虚拟磁盘的访问请求的封装,因此,使用者在开发时可以仅专注于虚拟块设备服务的核外服务部分,而直接使用本公开提供的虚拟磁盘接口即可实现对网络存储设备的访问。此外,本公开中的服务器可以同时处理来自多个用户的读写请求。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分。在附图中:
图1是本公开一个实施例的用于虚拟机的网络块设备存储系统的结构示意图。
图2是本公开另一实施例的用于虚拟机的网络块设备存储系统的结构示意图。
图3示出了I/O服务工作流程示意图。
图4示出了不同种类的Vdisk与VSI的映射关系示意图。
图5是本公开一个实施例的用于虚拟机的网络块设备存储方法的流程示意图。
具体实施方式
下面将参照附图描述本公开。要注意的是,以下的描述在本质上仅是解释性和示例性的,决不作为对本公开及其应用或使用的任何限制。除非另外特别说明,否则,在实施例中阐述的部件和步骤的相对布置以及数字表达式和数值并不限制本公开的范围。另外,本领域技术人员已知的技术、方法和装置可能不被详细讨论,但在适当的情况下意在成为说明书的一部分。
针对上述问题,本公开提出一种用于虚拟机的网络块设备存储方案,为虚拟机提供一套完整的网络块设备系统,并使开发者针对自己使用的特定操作系统仅专注于虚拟块设备服务的核外部分的实现。
本公开下述实施例提出的用于虚拟机的网络块设备存储技术方案包括了位于虚拟客户端的虚拟磁盘接口、虚拟块设备驱动单元(即,虚拟块设备驱动内核)以及位于存储服务器的虚拟磁盘管理、虚拟I/O管理和用户管理等五大功能单元。该技术方案将虚拟机和存储服务器通过网络通信协议相连接,存储服务器为虚拟机实例模拟一个或者多个虚拟磁盘,使得虚拟机操作系统和应用程序只需小量改动就可以访问网络服务器上的程序和数据,实现日常使用过程中操作系统及其上应用程序的远程加载和运行。
图1是本公开一个实施例的用于虚拟机的网络块设备存储系统的结构示意图。
如图1所示,该实施例中的系统10可以包括客户端102和服务器104,其中,
客户端102,用于为虚拟机操作系统及其上的应用程序提供虚拟磁盘接口,虚拟机磁盘接口将接收的读写请求转发至虚拟块设备驱动单元,虚拟块设备驱动单元通过存储通信协议将对虚拟磁盘的读写请求转发至服务器;
服务器104,用于处理一个或多个客户端中不同用户发送的读写请求,并通过服务器内的虚拟存储映像VSI(Virtual Storage Image,虚拟存储映像)访问服务器内的物理磁盘来实现对虚拟磁盘中数据的读写。
在该实施例中,由于将虚拟机操作系统以及其上应用程序对虚拟磁盘的访问请求转发给虚拟磁盘接口,由虚拟磁盘接口将访问请求转发至虚拟块设备驱动单元,再由虚拟块设备驱动单元将访问请求转发至服务器,并通过对服务器上物理磁盘的访问实现对虚拟磁盘的访问请求,进而实现了对虚拟磁盘的访问请求的封装,因此,使用者在开发时可以仅专注于虚拟块设备服务的核外服务部分,而直接使用本公开提供的虚拟磁盘接口即可实现对网络存储设备的访问。此外,本公开中的服务器可以同时处理来自多个用户的读写请求。
其中,客户端可以包括虚拟机和虚拟机监控器。
进一步地,虚拟磁盘接口工作在虚拟机中的虚拟机操作系统内部,接收虚拟机操作系统对虚拟磁盘的各种操作指令,例如,对虚拟磁盘的读指令或写指令。
进一步地,虚拟块设备驱动单元位于虚拟机监控器中,处理虚拟磁盘接口传递的读写请求并调度处理读写请求所需的资源。
图2是本公开另一实施例的用于虚拟机的网络块设备存储系统的结构示意图。
如图2所示,该实施例中的系统包括客户端和服务器端两部分。客户端部分的功能是负责向虚拟机操作系统及其上的应用程序提供虚拟磁盘接口,再将经由访问接口传递来的读写请求转发给服务器端,从而实现存储设备的网络扩展。客户端可以由虚拟磁盘接口和虚拟块设备驱动单元组成。虚拟磁盘接口工作在虚拟机操作系统内部,以设备驱动形式出现。它负责接收虚拟机操作系统对虚拟磁盘的各种指令。虚拟块设备驱动单元位于虚拟机操作系统下层的虚拟机监控器中,负责处理虚拟磁盘接口传递来的读写请求,管理和调度读写请求处理所需要的各种资源。
服务器端的组件可以包括I/O服务、虚拟存储空间管理以及用户管理。I/O服务负责处理一个或多个客户端发来的读写请求,通过访问VSI完成对虚拟磁盘的数据读写。VSI是虚拟磁盘内容的物理载体,通过设定规则映射到虚拟磁盘的虚拟存储空间中。该映射规则是由虚拟存储管理器负责保存、管理与维护。用户管理依据用户账号对用户的存储空间分别进行管理。
接下来,对客户端与服务器进行详细的说明。
(1)虚拟磁盘接口
虚拟机操作系统接管所有的设备,包括物理设备和虚拟设备,访问虚拟磁盘是通过工作在虚拟机操作系统内部的驱动程序完成的。通过调用虚拟磁盘接口完成对虚拟磁盘的管理、配置以及读写请求的传递。虚拟磁盘接口与虚拟机操作系统有关,它能够模拟虚拟机操作系统访问虚拟磁盘的接口,使虚拟机操作系统能够按照访问磁盘的方式访问虚拟存储空间。虚拟磁盘接口在收到虚拟机操作系统的读写请求后,并不是自己处理读写请求,而是将其转发给下层的虚拟块设备驱动单元。
(2)虚拟块设备驱动单元
虚拟块设备驱动单元工作在虚拟机操作系统之下的虚拟机监控器中,它通过陷入和虚拟中断与虚拟机操作系统内的虚拟磁盘驱动程序进行通信,并负责处理读写请求及与服务器端交互。
虚拟块设备驱动单元负责读写请求的排队、调度与转发,包括读写处理和网络处理。
(2a)读写处理是对读写请求进行管理,按照设定的优先策略依次发送读写请求,根据请求I/O的类型将多个连续I/O进行聚合后发送。
(2b)网络处理是由网卡驱动和网络存储协议组成的网络协议栈,负责与服务器端进行通信、传递读写请求和执行结果。
(3)虚拟I/O服务
虚拟I/O指的是由虚拟机上的实例操作系统发送至虚拟设备的I/O操作。不同于传统单机系统的I/O管理,其主要的任务是处理来自多个不同用户的数据读写请求,处理的主要工作包括根据虚拟I/O请求的不同类型(例如,不同的客户端、不同的数据类型、不同的虚拟磁盘编号)进行分类、排队、缓存、调度、处理并返回请求结果,其中,数据类型包括读数据和写数据,基本流程如图3所示。
其中,分类的方法和优先级设置方法可以由系统管理员根据实际需求进行具体的配置和指定。分类后的请求放置在不同的队列中进行排队,每种队列均可以定义各自的排队算法(例如,LRU(Least Recently Used,近期最少使用))完成请求处理。用户管理负责区分访问数据是用户独占数据还是共享数据并执行相应的处理策略,独占数据可以直接进行读写,而共享数据则需要在一致性保护策略的保证下完成读写。由于内存的处理速度远高于磁盘,适当的服务器缓存机制能够极大的提高虚拟磁盘映像的访问速度。
(4)虚拟存储映像管理
虚拟机不预置本地物理存储设备,而是由网络存储系统向虚拟机操作系统提供虚拟存储设备,这些虚拟存储设备能够像常规设备一样被访问。虚拟存储设备拥有其对应的位于服务器上的物理设备。因此,虚拟存储设备上执行的具体操作最终是由其对应的物理设备完成的。以虚拟磁盘为例,它对应的物理设备是服务器上具有存储能力的物理磁盘,发送至虚拟磁盘的I/O操作实际是由服务器上的物理磁盘执行的。
服务器上对应于虚拟存储设备并执行相关I/O操作和状态保存的物理存储介质被称为虚拟存储映像、即,VSI。尽管VSI是一个实体并且执行真实的I/O操作,但它也可以是一个逻辑设备,也就是说,VSI可以是一个完整的物理设备或者是其中的一部分,也可以是由多个物理设备组成的逻辑设备。虚拟存储设备在使用前必须与某个物理设备上的VSI进行绑定,虚拟存储设备和VSI之间的动态绑定关系被称为映射关系。
同样,虚拟存储设备与每个用户相关联,也就是说,用户能够在任意的虚拟机上登录,并能够获取到内容完全相同的虚拟存储设备。通过虚拟机,用户能够随时随地访问和使用自己专属的虚拟存储设备。因此,用户使用虚拟存储设备前,首先将用户的虚拟存储设备映射至对应的VSI。用户的虚拟存储设备和VSI之间的映射关系是一个数学映射,它可以表示为f:VSD→VSI。在该公式中,虚拟存储设备代表了虚拟存储设备集合,VSI代表了VSI集合。虚拟存储设备到VSI存在多种映射关系:一对一、多对一以及一对多。保存私有用户信息的VSI采用一对一映射关系,而多个用户共享数据的VSI采用多对一的映射关系,对共享数据的VSI进行写操作时采用一对多的映射关系。虚拟存储设备的类型由其所模拟的真实物理设备的类型决定。以虚拟磁盘Vdisk为例,根据应用类型定义了以下六种Vdisk,即,VSI存在六种映射类型。
(4a)系统Vdisk(用S表示)用于存储实例操作系统映像。系统Vdisk采用多对一的映射关系,是一种只读的共享机制。只有系统管理员有权限对其进行创建、更新和删除。
(4b)影子Vdisk(用H表示)是每个用户对应于系统Vdisk的COW(Copy-On-Write,写时拷贝)磁盘。系统Vdisk和影子Vdisk的文件系统可以根据映射表合并成为新的文件系统(即,上述提到的一对多的映射),用户能够对该合成文件系统执行任意的读写操作。当用户需要改变系统Vdisk上的文件或者数据时,这些数据和文件的COW拷贝在影子Vdisk上被按需创建,且所有的后续的读写操作都将在影子Vdisk上执行。对于每个系统Vdisk,每个用户都拥有一个具体的影子Vdisk与之对应,影子Vdisk及其VSI是一对一的映射关系,且用户不能单独的访问影子Vdisk,只能与系统Vdisk一起访问。
(4c)配置Vdisk(用P表示)用于保存用户具体的配置信息。例如,用户对操作系统执行个性化的设置。配置Vdisk采用一对一的映射关系。
(4d)用户Vdisk(用U表示)用于存储每个用户的私有数据。用户Vdisk与其VSI是一对一的映射关系。
(4e)共享Vdisk(用A表示)用于存储不同用户之间的共享数据。不同用户的共享Vdisk只能被映射至同一个VSI。
(4f)容器Vdisk(用C表示)是包含实例操作系统及其上应用程序的Vdisk,其中包括所有的配置信息和用户数据。容器Vdisk可被视为与传统硬盘极为相似的Vdisk,用户可以对容器Vdisk执行各种读写操作。为了避免不同用户的读写操作性引起读写不一致的冲突,它以一对一的方式被映射至VSI。图4示出了不同种类的Vdisk与VSI的映射关系。
(5)用户管理
为每个用户建立账号,依据用户账号对用户的存储空间分别进行管理。用户管理单元的功能主要包括:
(5a)用户注册
当新的用户进行申请时,要能为其分配一个全局统一且通用的用户账户。无论该用户选择加载何种操作系统,都必须使用统一的用户账户,并为其设置权限和分配用户VSI,即,在服务器侧建立用户账户与用户权限、VSI编号之间的对应关系。
(5b)用户信息修改
允许用户修改密码或者设置新的全局唯一的用户名,并且在用户修改个人信息完成后,将属于该用户的VSI与修改后的用户帐户建立关联。
(5c)用户权限管理
根据用户的重要程度,可以为用户赋予不同的权限,使其只能进行与其权限相符的操作。如可供选择的服务内容、读写权限、分配不同数目的用户VSI等。
(5d)用户信息的验证
当用户登录时,要对用户账户、密码等是否与用户信息数据库中的信息相符进行验证,如果不符,则拒绝该用户的登录;如果相符,则通知I/O管理服务将该用户纳入服务范围,准备响应该用户的请求,同时,在服务器侧建立用户账户与为用户分配的IP地址之间的对应关系,以便于在服务器接收到来自不同用户的网络报文时可以根据其中的IP地址识别出用户。
(5e)用户VSI的分配与管理
在服务器的存储器上除了存放被多个用户共享的各种操作系统和应用程序及公用数据等之外,还要为了保证每个用户的个性化使用,为每个用户分配相应的一个或者多个用户私有VSI来存放用户私人的程序和数据,并在用户被删除时能够回收分配给该用户的VSI空间。
本领域普通技术人员可以理解,实现上述方法实施例的全部和部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算设备可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤,而前述的存储介质可以包括ROM、RAM、磁碟和光盘等各种可以存储程序代码的介质。
需要指出的是,下述实施例可以基于上述用于虚拟机的网络块设备存储系统来实现。
图5是本公开一个实施例的用于虚拟机的网络块设备存储方法的流程示意图。
如图5所示,该实施例可以包括以下步骤:
S502,响应于用户对应用程序的执行,虚拟机操作系统调用虚拟磁盘接口发起对虚拟磁盘的读写请求,其中,读写请求中可以包括操作码、被访问的虚拟磁盘编号、存储块的地址与大小;
具体地,在用户通过客户端中的虚拟机执行虚拟机操作系统之上的应用程序时,必然会涉及应用程序对虚拟存储的读写操作。此时,应用程序通过虚拟机操作系统将读写请求发送至虚拟磁盘接口。
S504,虚拟磁盘接口将读写请求传递给虚拟机监控器中的虚拟块设备驱动单元。
S506,虚拟块设备驱动单元按照I/O请求类型对读写请求进行调度;
其中,I/O请求类型可以包括但不限于不同的用户、不同的数据类型与不同的虚拟磁盘编号,不同的数据类型包括读数据或写数据,即,可以根据用户优先级按用户来调度,也可以根据读写类型来调度或者按照虚拟磁盘编号来调度。
S508,根据调度顺序将读写请求封装为网络报文,并通过存储通信协议发送至服务器;
需要指出的是,在封装的网络报文中携带服务器侧为用户分配的IP地址,以使服务器在接收到该网络报文后能够识别出是哪个用户发送的网络报文。
S510,服务器接收多个用户发送的网络报文,网络报文中携带为用户分配的IP地址,这些用户可以来自同一客户端的不同虚拟机,也可以来自不同的客户端。
S512,抽取网络报文中的参数,并根据抽取出的参数查找对应的VSI编号;
其中,自网络报文中抽取的参数可以包括但不限于用户IP地址、被访问的虚拟磁盘编号、存储块地址与大小。例如,可以根据被访问的虚拟磁盘编号与用户IP地址找到对应的VSI编号,再根据存储块地址找到VSI中对应的偏移地址,根据存储块大小确定执行读写操作的具体存储地址范围。
S514,通过文件系统和对应的VSI编号找到服务器物理磁盘上的对应区域进行读或写操作,具体地,可以利用现有技术通过文件系统与VSI编号找到真正的物理磁盘访问地址。
在该实施例中,由于将虚拟机操作系统以及其上应用程序对虚拟磁盘的访问请求转发给虚拟磁盘接口,由虚拟磁盘接口将访问请求转发至虚拟块设备驱动单元,再由虚拟块设备驱动单元将访问请求转发至服务器,并通过对服务器上物理磁盘的访问实现对虚拟磁盘的访问请求,进而实现了对虚拟磁盘的访问请求的封装,因此,使用者在开发时可以仅专注于虚拟块设备服务的核外服务部分,而直接使用本公开提供的虚拟磁盘接口即可实现对网络存储设备的访问。此外,本公开中的服务器可以同时处理来自多个用户的读写请求。
进一步地,在用户申请此业务时,可以预先在服务器侧建立用户账户、虚拟机磁盘编号与VSI编号之间的映射关系。
进一步地,在步骤S502之前,响应于用户登录服务器,在服务器侧建立用户账户与为用户分配的IP地址的对应关系,以便于在服务器侧接收到包换用户IP地址的网络报文后能够识别出用户。
在一个具体实例中,首先由虚拟机操作系统调用虚拟磁盘接口发起读写请求,请求中可以包括操作码(即,读操作或写操作)和被访问的虚拟磁盘编号、存储块的地址与大小等信息。接着,虚拟磁盘接口将请求信息传递给虚拟机监控器中的虚拟块设备驱动单元,虚拟机监控器中的虚拟块设备驱动单元会按照设定的策略(例如,FIFO(First-In First-Out,先进先出))对读写请求进行排队、调度与管理,根据调度选取队中的读写请求根据请求信息内容转换成生成校验码后封装为网络报文,通过存储通信协议(例如,NBD或iSCSI等)发送给服务器端。在服务器端上的I/O服务收到多个用户发来的读写请求,首先根据校验码检验每个报文的合法性,其次抽取出其中的参数信息进行I/O分类、排队处理,根据VSI映射表查找到每个用户所对应的VSI并计算出文件内偏移地址,再通过文件系统找到服务器磁盘上的对应区域进行读写。操作完成后,I/O服务会再通过存储通信协议将结果返回给客户端。客户端上的虚拟机监控器中的虚拟块设备驱动单元收到结果后会把再将结果依次向上传递,逐层返回给虚拟机操作系统。
需要指出的是,本公开上述实施例可以应用于多种虚拟化平台,例如,XEN、KVM等,并能够为其上的虚拟机提供网络块设备的存储服务。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同和相似的部分可以相互参见。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处可以参见方法实施例部分的说明。
虽然已参照示例性实施例描述了本公开,但应理解,本公开不限于上述的示例性实施例。对于本领域技术人员显然的是,可以在不背离本公开的范围和精神的条件下修改上述的示例性实施例。所附的权利要求的范围应被赋予最宽的解释,以包含所有这样的修改以及等同的结构和功能。

Claims (8)

1.一种用于虚拟机的网络块设备存储系统,其特征在于,包括客户端和服务器,其中,
所述客户端,用于为虚拟机操作系统及其上的应用程序提供虚拟磁盘接口,虚拟机磁盘接口将接收的读写请求转发至虚拟块设备驱动单元,虚拟块设备驱动单元通过存储通信协议将对虚拟磁盘的读写请求转发至所述服务器;
所述服务器,用于处理一个或多个客户端中不同用户发送的读写请求,并通过所述服务器内的虚拟存储映像VSI访问所述服务器内的物理磁盘来实现对虚拟磁盘中数据的读写。
2.根据权利要求1所述的用于虚拟机的网络块设备存储系统,其特征在于,所述客户端包括虚拟机和虚拟机监控器。
3.根据权利要求2所述的用于虚拟机的网络块设备存储系统,其特征在于,所述虚拟磁盘接口工作在虚拟机中的虚拟机操作系统内部,接收虚拟机操作系统对虚拟磁盘的各种操作指令。
4.根据权利要求2所述的用于虚拟机的网络块设备存储系统,其特征在于,所述虚拟块设备驱动单元位于虚拟机监控器中,处理虚拟磁盘接口传递的读写请求并调度处理读写请求所需的资源。
5.一种用于虚拟机的网络块设备存储方法,其特征在于,包括:
响应于用户对应用程序的执行,虚拟机操作系统调用虚拟磁盘接口发起对虚拟磁盘的读写请求;
所述虚拟磁盘接口将读写请求传递给虚拟机监控器中的虚拟块设备驱动单元;
所述虚拟块设备驱动单元按照I/O请求类型对读写请求进行调度;
根据调度顺序将读写请求封装为网络报文,并通过存储通信协议发送至服务器;
所述服务器接收多个用户发送的网络报文,所述网络报文中携带为用户分配的IP地址;
抽取所述网络报文中的参数,并根据抽取出的参数查找对应的虚拟存储映像VSI编号;
通过文件系统和对应的VSI编号找到服务器物理磁盘上的对应区域进行读或写操作。
6.根据权利要求5所述的用于虚拟机的网络块设备存储方法,其特征在于,所述读写请求中包括操作码、被访问的虚拟磁盘编号、存储块的地址与大小。
7.根据权利要求5所述的用于虚拟机的网络块设备存储方法,其特征在于,所述方法还包括:
在所述服务器侧建立用户账户、虚拟机磁盘编号与VSI编号之间的映射关系。
8.根据权利要求5所述的用于虚拟机的网络块设备存储方法,其特征在于,所述方法还包括:
响应于用户登录所述服务器,在所述服务器侧建立用户账户与为用户分配的IP地址的对应关系。
CN201310574013.5A 2013-11-15 2013-11-15 用于虚拟机的网络块设备存储系统与方法 Active CN104636077B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310574013.5A CN104636077B (zh) 2013-11-15 2013-11-15 用于虚拟机的网络块设备存储系统与方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310574013.5A CN104636077B (zh) 2013-11-15 2013-11-15 用于虚拟机的网络块设备存储系统与方法

Publications (2)

Publication Number Publication Date
CN104636077A CN104636077A (zh) 2015-05-20
CN104636077B true CN104636077B (zh) 2017-10-10

Family

ID=53214891

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310574013.5A Active CN104636077B (zh) 2013-11-15 2013-11-15 用于虚拟机的网络块设备存储系统与方法

Country Status (1)

Country Link
CN (1) CN104636077B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106681650B (zh) * 2015-11-10 2021-04-30 中国电信股份有限公司 虚拟卷访问方法和虚拟化系统
CN105700826A (zh) 2015-12-31 2016-06-22 华为技术有限公司 虚拟化方法和装置
CN105872045A (zh) * 2016-03-30 2016-08-17 乐视控股(北京)有限公司 一种虚拟用户配置方法及服务器
CN107544864B (zh) * 2016-06-24 2021-08-13 深信服科技股份有限公司 一种虚拟机数据拷贝方法及虚拟机数据拷贝系统
CN106341488A (zh) * 2016-10-08 2017-01-18 深圳市云舒网络技术有限公司 一种基于tcmu虚拟块设备的网络存储后端超时处理方法
CN106961475B (zh) * 2017-03-14 2020-07-14 云宏信息科技股份有限公司 一种基于nbd的远程磁盘共享方法和共享系统
CN107145304B (zh) * 2017-03-23 2020-07-07 华为技术有限公司 服务器、存储系统及相关方法
CN107506145B (zh) * 2017-08-28 2020-06-16 浪潮云信息技术有限公司 一种物理存储调度方法及云主机创建方法
CN109471671B (zh) * 2017-09-06 2023-03-24 武汉斗鱼网络科技有限公司 一种程序冷启动方法和系统
CN109656675B (zh) * 2017-10-11 2023-03-21 阿里巴巴集团控股有限公司 总线设备、计算机设备及实现物理主机云存储的方法
CN108089912A (zh) * 2017-12-19 2018-05-29 深信服科技股份有限公司 一种虚拟机与容器超融合系统构建方法及装置
CN109933278A (zh) * 2017-12-19 2019-06-25 中国电信股份有限公司 用于实现块设备挂载访问的方法和装置
CN110198329B (zh) * 2018-03-26 2022-05-13 腾讯科技(深圳)有限公司 数据库部署方法、装置、系统、电子设备及可读介质
CN108733383B (zh) * 2018-03-30 2022-04-08 广东睿江云计算股份有限公司 一种XenServer虚拟机载入光盘ISO文件的方法、系统
CN108733402A (zh) * 2018-05-17 2018-11-02 云宏信息科技股份有限公司 快速制作vdisk文件的方法及装置
CN109656679B (zh) * 2018-11-06 2020-12-08 新华三云计算技术有限公司 一种虚拟机的存储访问方法及装置
CN110266665B (zh) * 2019-05-31 2022-08-19 平安科技(深圳)有限公司 网络块设备的连接方法、装置、设备及可读存储介质
CN110336693B (zh) * 2019-06-03 2022-08-19 平安科技(深圳)有限公司 网络块设备的管理方法、装置、设备和存储介质
CN116097682A (zh) * 2020-09-29 2023-05-09 华为技术有限公司 一种响应用户访问请求的方法、装置和存储设备
CN112486414A (zh) * 2020-11-27 2021-03-12 惠州Tcl移动通信有限公司 数据处理方法及装置、存储介质和移动终端
CN113961910A (zh) * 2021-09-09 2022-01-21 北京鸿腾智能科技有限公司 虚拟机安全加固方法、装置及存储介质
CN113986146B (zh) * 2021-12-23 2022-04-08 湖南源科创新科技有限公司 轻量级的fc-san共享存储系统及共享存储方法
CN114691034A (zh) * 2022-03-07 2022-07-01 阿里巴巴(中国)有限公司 一种数据存储方法及数据处理设备
CN114691298A (zh) * 2022-03-16 2022-07-01 阿里云计算有限公司 数据处理方法、装置、设备和存储介质
CN114710366B (zh) * 2022-05-31 2022-11-04 阿里巴巴(中国)有限公司 云计算系统中的跨安全区域的资源访问方法及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1664793A (zh) * 2005-03-11 2005-09-07 清华大学 基于元数据服务器的存储虚拟化管理方法
CN101419535A (zh) * 2008-11-19 2009-04-29 北京航空航天大学 虚拟机的分布式虚拟磁盘系统
US7606868B1 (en) * 2006-03-30 2009-10-20 Wmware, Inc. Universal file access architecture for a heterogeneous computing environment
CN101996051A (zh) * 2009-08-25 2011-03-30 联想(北京)有限公司 一种虚拟磁盘系统、虚拟磁盘实现方法及终端设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5072692B2 (ja) * 2008-04-07 2012-11-14 株式会社日立製作所 複数のストレージシステムモジュールを備えたストレージシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1664793A (zh) * 2005-03-11 2005-09-07 清华大学 基于元数据服务器的存储虚拟化管理方法
US7606868B1 (en) * 2006-03-30 2009-10-20 Wmware, Inc. Universal file access architecture for a heterogeneous computing environment
CN101419535A (zh) * 2008-11-19 2009-04-29 北京航空航天大学 虚拟机的分布式虚拟磁盘系统
CN101996051A (zh) * 2009-08-25 2011-03-30 联想(北京)有限公司 一种虚拟磁盘系统、虚拟磁盘实现方法及终端设备

Also Published As

Publication number Publication date
CN104636077A (zh) 2015-05-20

Similar Documents

Publication Publication Date Title
CN104636077B (zh) 用于虚拟机的网络块设备存储系统与方法
JP6607901B2 (ja) スケーラブル分散ストレージアーキテクチャ
US10326769B2 (en) Extensible multi-tenant cloud-management system and methods for extending functionalities and services provided by multi-tenant cloud-management system
CN107567696B (zh) 计算集群内的资源实例群组的自动扩展
US9672071B2 (en) Method and system for distributed processing of HTTP requests
US9639459B2 (en) I/O latency and IOPs performance in thin provisioned volumes
CN103957270B (zh) 一种云原子单元投递与部署的方法及装置
US20060041885A1 (en) Method for managing virtual machines
CN107111519A (zh) 用于管理和调度容器的系统
US11573946B2 (en) Management of memory usage using usage analytics
CN110138855A (zh) 研发资源云平台及资源共享方法
US11605033B2 (en) Quantum computing task translation supporting multiple quantum computing technologies
CN106681800A (zh) 基于Docker的资源监控的实现方法
CN102306370A (zh) 一种基于云计算的数字图像处理系统
CN108074210B (zh) 一种用于云渲染的对象获取系统和方法
US10171370B1 (en) Distribution operating system
CN108089924A (zh) 一种任务运行方法及装置
US10944814B1 (en) Independent resource scheduling for distributed data processing programs
US9229659B2 (en) Identifying and accessing reference data in an in-memory data grid
US11704715B2 (en) Quantum computing service supporting multiple quantum computing technologies
US20230266997A1 (en) Distributed scheduling in container orchestration engines
US20130332609A1 (en) Network computing over multiple resource centers
Singhal et al. OpenFAM: Programming disaggregated memory
Seilfaldet Performance analysis of job-scheduling in multi-user hadoop clusters
CN116569135A (zh) 基于每一命令过滤指示符的命令类型过滤

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: 20220126

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.