CN104598170A - 确定读写路径的方法和装置 - Google Patents

确定读写路径的方法和装置 Download PDF

Info

Publication number
CN104598170A
CN104598170A CN201510050407.XA CN201510050407A CN104598170A CN 104598170 A CN104598170 A CN 104598170A CN 201510050407 A CN201510050407 A CN 201510050407A CN 104598170 A CN104598170 A CN 104598170A
Authority
CN
China
Prior art keywords
read
address
virtual
write
virtual address
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.)
Granted
Application number
CN201510050407.XA
Other languages
English (en)
Other versions
CN104598170B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510050407.XA priority Critical patent/CN104598170B/zh
Priority to EP15879529.4A priority patent/EP3249515B1/en
Priority to PCT/CN2015/077479 priority patent/WO2016119322A1/zh
Publication of CN104598170A publication Critical patent/CN104598170A/zh
Priority to US15/663,570 priority patent/US10642539B2/en
Application granted granted Critical
Publication of CN104598170B publication Critical patent/CN104598170B/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0671In-line storage system
    • G06F3/0673Single storage device
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种确定读写路径的方法和装置,该方法用于物理主机,该物理主机包括硬件层、运行在该硬件层之上的宿主机Host、以及运行在该Host之上的虚拟机,该Host包括块设备以及虚拟块设备,该方法包括:Host获取虚拟机的第一读写请求,第一读写请求包括第一虚拟地址;在地址转换信息集合中查找第一虚拟地址,其中,地址转换信息集合包括虚拟地址与物理块设备的信息的对应关系,物理块设备的信息包括读写标识;根据地址转换信息集合和第一虚拟地址确定通过块设备或者虚拟块设备处理第一读写请求。本发明实施例的确定读写路径的方法和装置,根据读写请求和地址转换信息集合确定合适的读写路径,能够兼顾存储性能和存储功能。

Description

确定读写路径的方法和装置
技术领域
本发明涉及计算机领域,尤其涉及确定读写路径的方法和装置。
背景技术
虚拟化包括计算虚拟化,网络虚拟化和存储虚拟化,存储虚拟化为虚拟机提供存储及存储服务,例如对虚拟机存储做快照、存储热迁移。通过存储前后端方式给虚拟机提供存储是当前存储虚拟化的主流使用方式。
在通过存储前后端方式给虚拟机提供存储的情况下,客机操作系统(guest os)读写磁盘数据时,先把数据的读写请求发给存储前端驱动,存储前端驱动把该读写请求放到存储前端(Storage fronted)和存储后端(Storagebackend)共享的输入输出(Input Output,IO)环,然后发送中断给存储后端,存储后端收到中断通知后,从该IO环里取出该读写请求,然后根据虚拟机配置发给图1的路径1或者路径2,具体的,可以是在虚拟机启动时,按照虚拟机配置文件决定走哪一条路径。
路径1没有存储高级服务,或者存储高级服务依赖存储区域网络(StorageArea Network,SAN)或者虚拟SAN,但是路径短、存储时延小,使得存储性能较高。路径2有存储高级服务,具有多种存储功能,例如对虚拟机做快照、虚拟机存储热迁移、虚拟机存储精简配置(Thin provision)等,但是路径2的路径较长,存储时延较大,使得存储性能较差。
当前虚拟机按照虚拟机配置文件决定读写请求走哪一条路径,无法灵活地根据读写请求的需求,采用恰当的路径处理读写请求,无法兼顾存储性能和存储功能。
发明内容
本发明提供一种确定读写路径的方法和装置,能根据读写请求的需求,采用恰当的路径处理读写请求,从而兼顾存储性能和存储功能。
第一方面,提供了一种确定读写路径的方法,该方法用于物理主机,该物理主机包括硬件层、运行在硬件层之上的宿主机Host、以及运行在Host之上的虚拟机,Host包括块设备以及虚拟块设备,该方法包括:Host获取虚拟机的第一读写请求,第一读写请求包括第一虚拟地址;在地址转换信息集合中查找第一虚拟地址,其中,地址转换信息集合包括虚拟地址与物理块设备的信息的对应关系,物理块设备的信息包括读写标识;在地址转换信息集合中包括第一虚拟地址,且第一读写请求为读请求的情况下,通过第一虚拟地址对应的块设备处理第一读写请求;或者,在地址转信息集合中包括第一虚拟地址,第一读写请求为写请求,且第一虚拟地址对应的第一读写标识指示可读可写的情况下,通过第一虚拟地址对应的块设备处理第一读写请求;或者,在地址转换信息集合中包括第一虚拟地址,第一读写请求为写请求,且第一虚拟地址对应的第一读写标识指示只读的情况下,通过第一虚拟地址对应的虚拟块设备处理第一读写请求;或者,在地址转换信息集合中不包括第一虚拟地址的情况下,通过第一虚拟地址对应的虚拟块设备处理第一读写请求。
结合第一方面,在第一种可能的实现方式中,物理块设备的信息还包括物理块设备标识和物理地址,通过第一虚拟地址对应的块设备处理第一读写请求包括:将第一读写请求转换为块设备读写请求,块设备读写请求包括第一虚拟地址对应的第一物理地址和第一物理块设备标识;通过第一虚拟地址对应的块设备处理块设备读写请求。
结合第一方面,在第二种可能的实现方式中,当地址转换信息集合中包括第一虚拟地址,第一读写请求为写请求,且第一虚拟地址对应的第一读写标识指示只读时,该方法还包括:在地址转换信息集合中删除第一虚拟地址对应的初始记录。
结合第一方面,在第三种可能的实现方式中,在所述地址转换信息集合中不包括所述第一虚拟地址的情况下,该方法还包括:根据第一读写请求获取第一虚拟地址对应的第一物理地址、第一物理块设备标识和第一读写标识;将获取的第一虚拟地址、第一物理地址、第一物理块设备标识和第一读写标识的对应关系添加到地址转换信息集合中。
结合第二种可能的实现方式,在第四种可能的实现方式中,该方法还包括:根据第一读写请求获取第一虚拟地址对应的第一物理地址、第一物理块设备标识和第一读写标识;将获取的第一虚拟地址、第一物理地址、第一物理块设备标识和第一读写标识的对应关系添加到地址转换信息集合中。
结合第一方面或第一种至第四种可能的实现方式中的任一种可能的实现方式,在第五种可能的实现方式中,该方法还包括:确定是否开启存储高级服务;在地址转换信息集合中查找第一虚拟地址包括:在未开启存储高级服务的情况下,在地址转换信息集合中查找第一虚拟地址。
结合第五种可能的实现方式,在第六种可能的实现方式中,确定是否开启存储高级服务包括:获取路径切换指示,路径切换指示用于指示是否开启存储高级服务;根据路径切换指示确定是否开启存储高级服务。
结合第一方面或第一种至第六种可能的实现方式中的任一种可能的实现方式,在第七种可能的实现方式中,物理块设备的信息还包括物理地址和物理块设备标识,当地址转换信息集合中包括第一虚拟地址时,在获取第一读写请求之前,该方法还包括:获取第一虚拟地址对应的第一物理地址和第一物理块设备标识;根据第一虚拟地址对应的虚拟磁盘的格式,确定第一虚拟地址对应的第一读写标识;创建地址转换信息集合,地址转换信息集合包括第一虚拟地址、第一物理地址、第一物理块设备标识和第一读写标识的对应关系。
结合第七种可能的实现方式,在第八种可能的实现方式中,根据第一虚拟地址对应的虚拟磁盘的格式,确定第一虚拟地址对应的第一读写标识,包括:在第一虚拟地址对应厚置备虚拟磁盘或精简置备磁盘的情况下,确定第一读写标识指示可读可写;在第一虚拟地址对应差分镜像虚拟磁盘,且第一虚拟地址对应子镜像文件的情况下,确定第一读写标识指示可读可写;在第一虚拟地址对应差分镜像虚拟磁盘,且第一虚拟地址对应父镜像文件的情况下,确定第一读写标识指示只读。
结合第一方面或第一种至第八种可能的实现方式中的任一种可能的实现方式,在第九种可能的实现方式中,获取第一读写请求包括:从存储前端和存储后端共享的输入输出IO环中获取虚拟机的第二读写请求,第二读写请求包括第二虚拟地址;从第二读写请求中拆分出第一读写请求,第一虚拟地址为第二虚拟地址中的部分虚拟地址。
第二方面,提供了一种确定读写路径的装置,该装置应用于物理主机,物理主机运行有虚拟机,该装置包括:存储后端模块,用于:获取虚拟机的第一读写请求,第一读写请求包括第一虚拟地址;在地址转换信息集合中查找第一虚拟地址,其中,地址转换信息集合包括虚拟地址与物理块设备的信息的对应关系,物理块设备的信息包括读写标识;块设备,用于在地址转换信息集合中包括第一虚拟地址,且第一读写请求为读请求的情况下,或者在地址转信息集合中包括第一虚拟地址,第一读写请求为写请求,且第一虚拟地址对应的第一读写标识指示可读可写的情况下,处理第一读写请求;虚拟块设备,用于在地址转换信息集合中包括第一虚拟地址,第一读写请求为写请求,且第一虚拟地址对应的第一读写标识指示只读的情况下,或者在地址转换信息集合中不包括第一虚拟地址的情况下,通过第一虚拟地址对应的虚拟块设备处理第一读写请求。
结合第二方面,在第二方面的第一种可能的实现方式中,物理块设备的信息还包括物理块设备标识和物理地址,存储后端模块还用于:将第一读写请求转换为块设备读写请求,块设备读写请求包括第一虚拟地址对应的第一物理地址和第一物理块设备标识;块设备具体用于处理块设备读写请求。
结合第二方面,在第二方面的第二种可能的实现方式中,存储后端模块还用于,在地址转换信息集合中包括第一虚拟地址,第一读写请求为写请求,且第一虚拟地址对应的第一读写标识指示只读的情况下,在地址转换信息集合中删除第一虚拟地址对应的初始记录。
结合第二方面,在第二方面的第三种可能的实现方式中,该装置还包括:第一获取模块,用于在地址转换信息集合中不包括述第一虚拟地址的情况下,根据第一读写请求获取第一虚拟地址对应的第一物理地址、第一物理块设备标识和第一读写标识;存储后端模块将所述第一获取模块获取的第一虚拟地址、第一物理地址、第一物理块设备标识和第一读写标识的对应关系添加到地址转换信息集合中。
结合第二方面的第二种可能的实现方式,在第二方面的第四种可能的实现方式中,该装置还包括:第一获取模块,用于根据第一读写请求获取第一虚拟地址对应的第一物理地址、第一物理块设备标识和第一读写标识;存储后端模块还用于将第一获取模块获取的第一虚拟地址、第一物理地址、第一物理块设备标识和第一读写标识的对应关系添加到地址转换信息集合中。
结合第二方面或第二方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第二方面的第五种可能的实现方式中,存储后端模块具体用于:确定是否开启存储高级服务;在未开启存储高级服务的情况下,在地址转换信息集合中查找第一虚拟地址。
结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,该装置还包括:第二获取模块,用于获取路径切换指示,路径切换指示用于指示是否开启存储高级服务;存储后端模块具体用于根据路径切换指示确定是否开启存储高级服务。
结合第二方面或第二方面的第一种至第六种可能的实现方式中的任一种可能的实现方式,在第二方面的第七种可能的实现方式中,物理块设备的信息还包括物理地址和物理块设备标识,该装置还包括:第三获取模块,用于:在地址转换信息集合中包括第一虚拟地址的情况下,在存储后端模块获取第一读写请求之前,获取第一虚拟地址对应的第一物理地址和第一物理块设备标识;根据第一虚拟地址对应的虚拟磁盘的格式,确定第一虚拟地址对应的第一读写标识;存储后端模块还用于,创建地址转换信息集合,地址转换信息集合包括第一虚拟地址、第一物理地址、第一物理块设备标识和第一读写标识的对应关系。
结合第二方面的第七种可能的实现方式,在第二方面的第八种可能的实现方式中,第三获取模块具体用于:在第一虚拟地址对应厚置备虚拟磁盘或精简置备磁盘的情况下,确定第一读写标识指示可读可写;在第一虚拟地址对应差分镜像虚拟磁盘的情况下,且第一虚拟地址对应子镜像文件的情况下,确定第一读写标识指示可读可写;在第一虚拟地址对应差分镜像虚拟磁盘的情况下,且第一虚拟地址对应父镜像文件的情况下,确定第一读写标识指示只读。
结合第二方面或第二方面的第一种至第八种可能的实现方式中的任一种可能的实现方式,在第二方面的第九种可能的实现方式中,存储后端具体用于:从存储前端和存储后端共享的输入输出IO环中获取虚拟机的第二读写请求,第二读写请求包括第二虚拟地址;从第二读写请求中拆分出第一读写请求,第一虚拟地址为第二虚拟地址中的部分虚拟地址。
第三方面,提供了一种物理主机,物理主机包括硬件层、运行在硬件层之上的宿主机Host、以及运行在Host之上的虚拟机,Host包括块设备以及虚拟块设备,Host包括如第二方面或第二方面的第一种至第九种可能的实现方式中的任一种可能的实现方式所述的确定读写路径的装置。
与现有的技术相比,本发明实施例具有如下有益效果:
基于上述技术方案,本发明实施例的确定读写路径的方法和装置,根据读写请求的虚拟地址和地址转换信息集合来确定合适的读写路径,能够兼顾存储性能和存储功能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是虚拟存储设备的示意性框图;
图2是本发明实施例所适用的系统的示意性框图;
图3是根据本发明实施例的确定读写路径的方法的示意性流程图;
图4是根据本发明另一实施例的确定读写路径的方法的示意性流程图;
图5是根据本发明实施例的初始化地址转换信息集合的示意性流程图;
图6是根据本发明实施例的确定读写路径的装置的示意性框图;
图7是根据本发明另一实施例的确定读写路径的方法的示意性流程图;
图8是根据本发明实施例的确定读写路径的装置的示意性框图图;
图9是根据本发明另一实施例的确定读写路径的装置的示意性框图;
图10是根据本发明另一实施例的确定读写路径的装置的示意性框图;
图11是根据本发明实施例的物理主机的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
应理解,本发明实施例中各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图2所示的是本发明实施例的确定读写路径的方法所适用的系统架构的示意图。需要理解的是,图2仅为方便理解的示意性说明图,并不限定该系统架构的组成模式。如图2所示,该系统架构可以包括:
物理主机210和/或物理主机220,物理主机210和/或物理主机220可以是物理主机、终端计算机等,本发明不做限定,
FC(Fiber Channel,光纤通道)交换机230和/或IP(Internet Protocol,因特网协议)交换机240,
FCSAN(Fiber Channel Storage Area Network,光纤通道存储区域网络)240,和IPSAN(Internet Protocol Storage Area Network,因特网协议存储区域网络)250。
其中,物理主机210采用XEN虚拟化技术,物理主机220采用KVM(Kernel-based Virtual Machine,基于内核的虚拟机)虚拟化技术。
物理主机210中可以包括:宿主机操作系统(Host Operating System,Host OS)211、一个或多个虚拟机(Virtual Machine,VM)212、虚拟监控器(hypervisor)213、本地磁盘(local disk)214、HBA(Host Bus Adapter,主机总线适配器)卡215和网卡22。
宿主机操作系统211包括存储虚拟化(storage virtualization),该存储虚拟化可以包括:存储后端驱动、虚拟磁盘、文件系统和块设备等,例如图1所示。
虚拟机212上可以运行数据库、办公桌面等。虚拟机212中可以包括存储前端,该存储前端是虚拟机内的磁盘驱动,可以与宿主机操作系统中的存储虚拟化交互,把虚拟机内的数据传送到宿主机操作系统中。
虚拟监控器(hypervisor),用于模拟物理主机。
HBA卡215类似于网卡214,物理主机210通过HBA卡或网卡214连接交换机或存储设备。
如图2所示物理主机220与物理主机210类似,物理主机220中的各个模块分别与物理主机210中的各个模块相对应,在此不再赘述。
FC交换机230和IP交换机240,用于将物理主机210和220输出的数据转发至对应的SAN侧。
FCSAN 240,通过光纤网络连接HBA卡/网卡、交换机和/或存储阵列。IPSAN 250,通过IP网络连接HBA卡/网卡、交换机和/或存储阵列。
需要理解的是,图2为本发明实施例确定读写路径的方法所适用的系统的一个示例性说明,以图示中的物理主机210和物理主机220为例说明系统中可能支持的物理主机的虚拟化技术类型,且该系统中可能支持的物理主机类型不限于此,以图示中的FC交换机230和IP交换机240表示该系统可能支持的交换机类型,且该系统中可能支持的交换机类型不限于此,实际系统中,可能包括一台或多台技术类型相同或不同的物理主机,以及可能包括一台或多台类型相同或不同的交换机,本发明实施例不做限定。
图2所示的系统中的任意一台物理主机支持本发明实施例所述的确定读写路径的方法,以及现有技术路径1和路径2对读写请求的处理流程。图1可以理解为图2所示的系统中的任意一台物理主机采用现有技术路径1和路径2对读写请求的处理流程的示意图。
下面结合图1和图2简要描述现有技术中路径1和路径2对读写请求的处理流程。
读写请求走路径2时,存储后端将读写请求发送给tapdev块设备,tapdev块设备在虚拟机启动时创建,tapdev块设备收到读写命令后,放入用户态tapdisk和tapdev共享内存的IO环,然后唤醒tapdisk进程。Tapdisk被唤醒后,取出该IO环中的读写数据命令,然后将该数据读写请求交给对应的磁盘镜像文件驱动。磁盘镜像文件驱动按照磁盘格式处理读写命令后,转换成对文件的读写操作。然后调用文件系统的读写接口读写数据。文件系统收到读写命令后,经过文件系统元数据,转换成块设备的读写,然后到SCSI驱动。如果读写请求对应的物理地址不位于本地磁盘,则通过HBA卡或网卡到达SAN侧,由IPSAN或FCSAN中对应的目标存储阵列进行读写操作。或者,如果读写请求对应的物理地址位于本地磁盘,则直接调用本地磁盘进行读写请求对应的读写操作。
读写请求走路径1时,存储后端直接把读写数据的命令发送给预设的SCSI块设备,读写请求后续走SCSI驱动层。如果读写请求对应的物理地址不位于本地磁盘,则通过HBA卡或网卡到达SAN侧,由IPSAN或FCSAN中对应的目标存储阵列进行读写操作。或者,如果读写请求对应的物理地址位于本地磁盘,则直接调用本地磁盘进行读写请求对应的读写操作。
图3是根据本发明实施例的确定读写路径的方法300的示意性流程图。图3的方法可以用于物理主机,该物理主机包括硬件层、运行在该硬件层之上的宿主机(Host)、以及运行在该Host之上的虚拟机,该Host包括块设备以及虚拟块设备。如图3所示,方法300可以包括如下内容。
301、Host获取虚拟机的第一读写请求,第一读写请求包括第一虚拟地址。
例如,Host中的存储后端从存储后端和存储前端(Storage frontend)共享的IO环中获取第一读写请求。第一读写请求还可以包括读写类型和读写内容。第一读写请求为虚拟机的任一读写请求。
该第一虚拟地址可以为逻辑区块地址(Logical Block Address,LBA),也可以为其他寻址方式表示的地址,本发明实施例对此不做限定。
该第一虚拟地址可以为一个地址或多个地址。本发明实施例中的地址可以由起始地址和地址长度表示。
302、在地址转换信息集合中查找第一虚拟地址,其中,地址转换信息集合包括虚拟地址与物理块设备的信息的对应关系,物理块设备的信息包括读写标识。
其中,物理块设备的信息还可以包括物理块设备标识和物理地址。地址转换信息集合可以采用表、树等形式进行存储,本发明实施例对地址转换信息集合的存储形式不做限定。
具体地,地址转换信息集合可以存储在Host的存储后端中,步骤302可以由存储后端执行。
303、在地址转换信息集合中包括第一虚拟地址,且第一读写请求为读请求的情况下,通过第一虚拟地址对应的块设备处理第一读写请求;或者,
在地址转信息集合中包括第一虚拟地址,第一读写请求为写请求,且第一虚拟地址对应的第一读写标识指示可读可写的情况下,通过第一虚拟地址对应的块设备处理第一读写请求;或者,
在地址转换信息集合中包括第一虚拟地址,第一读写请求为写请求,且第一虚拟地址对应的第一读写标识指示只读的情况下,通过第一虚拟地址对应的虚拟块设备处理第一读写请求;或者,
在地址转换信息集合中不包括第一虚拟地址的情况下,通过第一虚拟地址对应的虚拟块设备处理第一读写请求。
Host中可以包括多个块设备和多个虚拟块设备,块设备与硬件层中为虚拟磁盘分配的物理块设备具有对应关系,虚拟块设备与虚拟机中的虚拟磁盘具有对应关系。
应理解,通过查找地址转换信息集合,可以确定读写请求的虚拟地址对应的物理块设备标识,Host中记录了硬件层的物理块设备与Host中的块设备的对应关系,从而能够确定读写请求的虚拟地址对应的块设备。
块设备可对应于图1所示的SCSI块设备,当通过该块设备处理读写请求时,这意味着该读写请求的读写路径为图1中的路径1,即短路径。还应理解,该块设备仅以图1所示SCSI块设备为例,该SCSI块设备还可以替换为其他块设备,本发明实施例对此不做限定,例如:还可以为ATA/IDE(Advanced Technology Attachment/Integrated Drive Electronics,高级技术附件/集成驱动电子设备)块设备、FC(Fiber Channel,光纤通道)块设备、SATA(Serial ATA,串行高级技术附件)块设备和SAS(Serial Attached SCSI,串行连接SCSI)块设备等。
应理解,虚拟机中的虚拟磁盘与Host中的虚拟块设备具有对应关系,根据读写请求的虚拟地址能够确定对应的虚拟块设备。
虚拟块设备可对应于图1所示的XEN虚拟化中的tapdev块设备,当通过该虚拟块设备处理读写请求时,这意味着该读写请求的读写路径为图1所示的路径2,即长路径。本发明实施例中的虚拟块设备还可以对应于KVM虚拟化中的QEMU(Quick Emulator)。应理解,虚拟机中的虚拟磁盘与Host中的虚拟块设备具有对应关系,根据读写请求的虚拟地址能够确定对应的虚拟块设备。应注意,该虚拟块设备是一个虚拟机的块设备,没有实际的物理块设备或物理磁盘和它对应。例如在XEN虚拟化中,tapdev虚拟块设备用来把数据(如读写请求)转发给用户态的tapdisk进程。
因此,本发明实施例的确定读写路径的方法,根据读写请求的虚拟地址和地址转换信息集合确定合适的读写路径,从而能够兼顾存储性能和存储功能。
当第一读写请求对应的物理地址位于本地磁盘时,通过块设备或虚拟块设备处理第一读写请求,可以在物理主机的硬件层中的目标物理磁盘的上完成第一读写请求对应的读写操作。当第一读写请求对应的物理地址位于SAN侧时,通过块设备或虚拟块设备处理第一读写请求,可以在SAN中的目标物理磁盘的上完成第一读写请求对应的读写操作。
第一读写请求可以是直接从IO环中获取到的,还可以是通过拆分从IO环中获取到的读写请求得到的。
可选地,在301中可以包括:从存储前端和存储后端共享的输入输出IO环中获取虚拟机的第二读写请求,该第二读写请求包括第二虚拟地址;从该第二读写请求中拆分出第一读写请求,第一虚拟地址为第二虚拟地址中的部分虚拟地址。
举例说明,当存储后端获取到的读写请求的虚拟地址中仅有部分虚拟地址记录在该地址转换信息集合中时,可以将存储后端获取到的该读写请求拆分为两个读写请求分别处理,其中一个读写请求的虚拟地址记录在该地址转换信息集合中,另一读写请求的虚拟地址没有记录在该地址转换信息集合中。例如存储后端从IO环中获取的读写请求的虚拟地址为1~100,而地址转换信息集合中仅记录了1~70的虚拟地址,则可以将该读写请求拆分为两个读写请求,其中一个读写请求的虚拟地址为1~70,另一读写请求的虚拟地址为71~100,然后分别处理拆分而成的这两个读写请求。应理解,在拆分读写请求的过程中,还应根据虚拟地址的拆分情况将读写内容做相应拆分。
具体地,物理块设备的信息还包括物理块设备标识和物理地址,在303中,通过块设备处理第一读写请求包括:将第一读写请求转换为块设备读写请求,块设备读写请求包括第一虚拟地址对应的第一物理地址和第一物理块设备标识;通过第一虚拟地址对应的块设备处理块设备读写请求。
可选地,当所述地址转换信息集合中包括第一虚拟地址,第一读写请求为写请求,且第一虚拟地址对应的第一读写标识指示只读时,方法300还可以包括:在地址转换信息集合中删除第一虚拟地址对应的初始记录。需要说明的是,第一虚拟地址对应的初始记录,指的是Host初始化设置或者初始化加载的地址转换信息集合中第一虚拟地址对应的初始记录。
进一步的,由于地址转换信息集合中第一虚拟地址对应的读写标识指示只读,无法进行写操作,因此需要将地址转换信息集合中第一虚拟地址对应的记录删除。Host中的tapdisk进程或QEMU和文件系统会根据第一读写请求为第一虚拟地址重新分配块。
例如,当虚拟机的虚拟磁盘为差分镜像虚拟磁盘时,子镜像文件对应的物理块为可读可写,父镜像文件对应的物理块为只读。当读写请求的虚拟地址对应的物理地址的读写标识为只读时,这意味着该读写请求的虚拟地址对应的是父镜像文件,需要在地址转换表中删除父镜像文件对应的记录,然后在地址转换表中重新设置子镜像文件对应的记录。
可选地,在地址转换信息集合中不包括第一虚拟地址的情况下,或者在地址转换信息集合中包括第一虚拟地址,第一读写请求为写请求,第一虚拟地址对应的第一读写标识指示只读的情况下,方法300还可以包括:
根据第一读写请求获取所述第一虚拟地址对应的第一物理地址、第一物理块设备标识和第一读写标识;
将获取的第一虚拟地址、第一物理地址、第一物理块设备标识和第一读写标识的对应关系添加到所述地址转换信息集合中。
例如,XEN虚拟化中的tapdisk进程或KVM虚拟化中的QEMU还可以在处理第一读写请求的过程中,在为第一读写请求的第一虚拟地址重新分配物理块之后,将第一虚拟地址、第一物理地址、第一物理块设备和第一读写标识的对应关系发送到存储后端,由存储后端及时更新地址转换信息集合。
XEN虚拟化的tapdisk进程或KVM虚拟化的QEMU可以获取虚拟地址对应的物理块设备的信息。
在虚拟磁盘为厚置备虚拟磁盘的情况下,由于厚置备虚拟磁盘在创建镜像文件时,磁盘空间已经全部分配和占有,此时该地址转换信息集合内包含该虚拟磁盘的所有虚拟地址与物理地址和物理块设备的对应关系,后续不需要重新设置地址转换信息集合。
在虚拟机的虚拟磁盘为精简置备虚拟磁盘和差分镜像虚拟磁盘的情况下,该地址转换信息集合中包含了部分虚拟地址与物理地址和物理块设备的对应关系。在该地址转换信息集合中不包括读写请求的虚拟地址的情况下,将该读写请求发送至对应长路径的虚拟块设备,在长路径中可能会为该虚拟地址分配物理块,然后会将该虚拟地址与物理地址、物理块设备、读写标识的对应关系设置到存储后端的地址转换信息集合中,随着时间的推移,慢慢的该地址转换信息集合中包含的记录越来越多,直到包含所有虚拟地址的对应关系。
可选地,方法300还可以包括:确定是否开启存储高级服务,相应的,步骤302中,在地址转换信息集合中查找所述第一虚拟地址包括:
在未开启存储高级服务的情况下,在地址转换信息集合中查找所述第一虚拟地址。
在本发明实施例中,在确定未开启存储高级服务之前,方法300还可以包括:获取路径切换指示,路径切换指示用于指示是否开启存储高级服务;根据路径切换指示确定是否开启存储高级服务。
可以由XEN虚拟化的tapdisk进程获取该路径切换指示,或者,也可以由KVM虚拟化的QEMU获取该路径切换指示。
例如,当开启存储高级服务时,存储后端可以直接将获取到的读写请求发送至对应的虚拟块设备,走具有存储高级特性的长路径(如图1所示路径2),而无需查找地址转换信息集合来确定该读写请求的读写路径。此时可以对虚拟机做快照、虚拟机存储热迁移、虚拟机存储精简配置等。
应理解,在存储高级服务结束之后,存储后端会获取新的路径切换指示,该新的路径切换指示会指示未开启存储高级服务,此时存储后端会根据地址转换信息集合确定读写请求的读写路径。
本发明实施例的确定读写路径的方法,当开启存储高级服务时,读写请求走具有存储高级特性的读写路径,当未开启存储高级服务时,根据地址转换信息集合和读写请求的虚拟地址确定读写请求的读写路径,这样根据不同的需求处理读写请求,能够兼顾存储性能和存储功能。
可选地,物理块设备的信息还包括物理地址和物理块设备标识,当地址转换信息集合中包括第一虚拟地址时,如图4所示,在301之前,方法300还可以包括:
304、获取第一虚拟地址对应的第一物理地址和第一物理块设备标识;
305、根据第一虚拟地址对应的虚拟磁盘的格式,确定第一虚拟地址对应的第一读写标识;
306、创建地址转换信息集合,地址转换信息集合包括第一虚拟地址、第一物理地址、第一物理块设备标识和第一读写标识的对应关系。
也就是说,在301之前,Host可以初始化设置地址转换信息集合。
304和305可以由XEN虚拟化中的tapdisk进程或KVM虚拟化中的QEMU执行,306可以由存储后端执行。
例如,XEN虚拟化中的tapdisk进程或KVM虚拟化中的QEMU可以在虚拟机启动过程中获取虚拟机中已经分配物理块的虚拟磁盘的虚拟地址对应的物理地址、物理块设备标识和读写标识,然后由存储后端初始化创建地址转换信息集合。初始化后的地址转换信息集合中可以包括:虚拟地址、物理地址、物理块设备标识和读写标识的对应关系。
具体地,地址转换信息集合中记录的内容可以如下表1所示,例如,虚拟地址用虚拟起始地址和地址长度表示,flag为读写标识。由于虚拟地址的长度和物理地址的长度是相同的,因此在地址转换信息集合中可以只记录虚拟地址长度。
表1地址转换信息集合
虚拟起始地址 地址长度 物理起始地址 物理块设备标识 flag
1 100 200 /dev/sda 只读
具体地,在305中可以包括:
在第一虚拟地址对应厚置备虚拟磁盘或精简置备磁盘的情况下,确定第一读写标识指示可读可写;
在第一虚拟地址对应差分镜像虚拟磁盘,且第一虚拟地址对应子镜像文件的情况下,确定第一读写标识指示可读可写;
在第一虚拟地址对应差分镜像虚拟磁盘,且第一虚拟地址对应父镜像文件的情况下,确定第一读写标识指示只读。
因此,本发明实施例的确定虚拟机的读写请求的读写路径的方法,根据读写请求的虚拟地址和地址转换信息集合确定合适的读写路径,能够兼顾存储性能和存储功能。
下面结合图5详细描述根据本发明实施例的确定读写路径的方法中初始化地址转换信息集合的方法。图5是初始化地址转换信息集合的示意性流程图。
501、根据虚拟机的配置文件判断虚拟机的虚拟磁盘的格式。
502、当虚拟机的虚拟磁盘为厚置备虚拟磁盘时,获取该厚置备虚拟磁盘的虚拟地址对应的物理块设备标识和物理地址,将读写标识flag设置为可读可写,调用存储后端对应的接口将该虚拟地址、物理地址、物理块设备标识、读写标识的对应关系发送到存储后端。
503、当虚拟机的虚拟磁盘为精简置备虚拟磁盘时,获取该精简置备虚拟磁盘的虚拟地址对应的物理块设备标识和物理地址,将读写标识flag设置为可读可写,调用存储后端对应的接口将该虚拟地址、物理地址、物理块设备标识、读写标识的对应关系发送到存储后端。
504、当该虚拟机的磁盘为差分镜像虚拟磁盘时,获取该差分镜像虚拟磁盘的子镜像文件的虚拟地址对应的物理地址和物理块设备标识,将子镜像文件对应的读写标识设置为可读可写;获取父镜像文件的虚拟地址对应的物理地址和物理块设备标识,将父镜像文件对应的读写标识设置为只读。然后调用存储后端对应的接口将子镜像文件和父镜像文件的虚拟地址与物理地址、物理块设备标识、读写标识的对应关系发送至存储后端。
需要说明的是,步骤501至504可以由XEN虚拟化中Host内的tapdisk进程执行,或者也可以由KVM虚拟化中Host内的QEMU执行。
505、存储后端获取上述对应关系,创建地址转换信息集合中。
在本发明实施例中,在虚拟机启动过程中,存储后端能够初始化设置地址转换信息集合,使得能够根据地址转换信息集合确定读写请求的读写路径,从而能够兼顾存储性能和存储功能。
下面以XEN虚拟化为例,描述根据本发明实施例的确定读写路径的方法300。KVM虚拟化中确定读写路径的方法与XEN虚拟化中确定读写路径的方法类似,在此不再赘述。应理解,XEN虚拟化中的tapdev块设备和tapdisk进程可对应于KVM虚拟化中的QEMU。
下面结合图6和图7详细描述根据本发明实施例的确定读写路径的方法。图6为根据本发明实施例的确定读写路径的设备的示意性框图。如图7所示是根据本发明实施例的确定读写路径的方法的示意性流程图。
应理解,图6中所示tapdisk进程也可以为tapdisk2进程,本发明对此不做限定。
应理解,在虚拟机启动过程中,宿主机操作系统会创建tapdisk进程并创建tapdev块设备,在tapdisk进程启动过程中,会打开镜像文件。在打开镜像文件的过程中,tapdisk进程中调用文件系统接口获取虚拟机的已经分配物理块的虚拟磁盘的虚拟地址对应的物理块设备标识、物理地址和读写标识,然后调用存储后端对应的接口,由存储后端设置到地址转换信息集合中,完成初始化设置地址转换信息集合。初始化后地址转换信息集合中可以包括虚拟地址、物理地址、物理块设备标识和读写标识的对应关系。具体地,可以在tapdisk进程中设置地址获取模块,由该地址获取模块获取虚拟机的已经分配物理块的虚拟磁盘的虚拟地址对应的物理块设备标识、物理地址和读写标识。
701、存储后端获取读写请求。具体地,虚拟机内的应用程序发出读写请求时,通过虚拟机内的文件系统到达存储前端驱动,存储前端驱动把读写请求放入存储前端和存储后端共享的IO环后。该IO环通过中断通知存储后端,然后存储后端从IO环里读取该读写请求。
702、存储后端确定是否开启存储高级服务。在开启存储高级服务的情况下,执行703;否则,执行706。
具体地,tapdisk进程中指示获取模块获取路径切换指示,存储后端根据该路径切换指示确定是否开启存储高级服务。
在开启存储高级服务的情况下,例如存储热迁移启动时,tapdisk进程调用路径切换模块通知存储后端,后续的读写请求不管是否在地址转换信息集合中已经存在都要走存储高级服务的长路径2。存储高级服务结束后,tapdisk进程调用路径切换模块通知存储后端恢复正常状态。
703、存储后端将该读写请求发送至tapdev块设备。
tapdev块设备将该读写请求放入用户态tapdisk进程和tapdev共享内存的IO环,然后唤醒tapdisk进程。
704、Tapdisk进程被唤醒后,取出IO环中的该读写请求,根据虚拟机磁盘镜像文件的格式调用相应的驱动程序。对应的磁盘镜像文件驱动按照磁盘格式处理该读写请求后,转换成对镜像文件的读写请求。然后执行705。
705、文件系统收到该对文件的读写请求后,将该读写请求转换成对块设备的块设备读写请求,此时该块设备读写请求中包括:物理地址、物理设备块标识、读写内容和读写类型。然后执行708。
另外,tapdisk进程和文件系统处理该读写请求完后,还可以重新设置地址转换信息集合。
举例说明,读写请求如果需要新分配块,则tapdisk进程会获取新分配的物理块对应的物理地址、物理块设备标识,并根据虚拟磁盘格式确定读写标识,然后由存储后端更新地址转换信息集合中。
或者,如果是差分镜像虚拟磁盘,例如对应diff格式的磁盘镜像文件,并且该读写请求为写请求,则首先需要在存储后端的地址转换信息集合里删除父镜像文件对应的记录,然后重新设置子镜像文件对应的地址转换信息集合记录。
另外,在存储高级服务进行的过程中,有可能更改虚拟机的虚拟地址。例如存储热迁移,目标存储或源存储的虚拟机的虚拟地址和对应的物理块已经改变了,则需要调用存储后端的接口删除原来的地址转换信息集合,新建新的地址转换信息集合。
706、存储后端根据该读写请求的虚拟地址查找地址转换信息集合。如果在地址转换信息集合中没有该虚拟地址,执行703;如果在地址转换信息集合中有该虚拟地址,执行707。
如果该地址转换信息集合中仅记录了该读写请求的虚拟地址中的部分地址,则可以将该读写请求拆分为两个子读写请求,对于地址转换信息集合中记录的部分虚拟地址对应的子读写请求,执行707;对于地址转换信息集合中没有记录的虚拟地址对应的子读写请求,执行703。
707、存储后端判断该读写请求是读请求还是写请求。如果是读请求,将该请求转换为块设备读请求,继续执行708;如果是写请求,则继续执行709。
708、将读写请求发送至SCSI块设备。
应理解,图7中仅以SCSI块设备为例描述,如图3所示实施例中所述该SCSI块设备还可以替换为其他块设备,在此不再赘述。
具体地,可以向该SCSI块设备发送块设备读写请求,在该块设备读写请求中携带读写类型、读写内容、物理地址和物理块设备标识,该物理块设备与图6中的SCSI块设备具有对应关系。
709、存储后端进一步判断地址转换信息集合中该写请求的虚拟地址对应的读写标识flag的读写类型。如果flag指示可写可读,继续执行708;如果flag指示只读,继续执行710。
应理解,如果flag指示只读,这意味着虚拟磁盘为差分镜像虚拟磁盘,且该写命令的虚拟地址对应的是差分镜像虚拟磁盘中的父镜像文件。
710、删除该虚拟地址在地址转换信息集合中的记录,然后继续执行703。
具体地,可以直接删除该源LBA在地址转换信息集合中对应的记录,或者,也可以通过分裂地址转换信息集合中的记录来删除对应的记录。例如,存储后端接收到的写请求的虚拟起始地址50、地址长度20,但是地址转换信息集合中记录虚拟起始地址1、地址长度100、flag指示只读(如表1所示)。此时存储后端需要将写请求的虚拟起始地址对应的记录删除掉,则可以将表1所示的记录分裂为下表2所示的记录。
表2地址转换信息集合
虚拟起始地址 地址长度 物理起始地址 物理块设备标识 flag
1 49 200 /dev/sda 只读
71 30 271 /dev/sda 只读
经过步骤704之后,存储后端可以从tapdisk进程获取到写请求的虚拟地址与物理地址、物理块设备、读写标识的对应关系,并更新地址转换信息集合,更新后的地址转换信息集合可以如下表3所示。
表3地址转换信息集合
虚拟起始地址 地址长度 物理起始地址 物理块设备标识 flag
1 49 200 /dev/sda 只读
71 30 271 /dev/sda 只读
50 20 250 /dev/sda 可读可写
具体地,如图9中所示,可以在存储后端中设置路径选择模块,步骤702、705、706和709可以由该路径选择模块具体执行。
因此,本发明实施例的确定读写路径的方法,根据读写请求的虚拟地址和地址转换信息集合确定合适的读写路径,能够兼顾存储性能和存储功能。
上文结合图3至图7详细描述了根据本发明实施例的确定读写路径的方法,下面将结合图8至图10详细描述根据本发明实施例的确定读写路径的设备。
图8是根据本发明实施例的确定读写路径的装置800的示意性框图。装置800应用于物理主机,该物理主机运行有虚拟机如图8所示,装置800包括:存储后端模块810、块设备820和虚拟块设备830。
存储后端模块810,用于:获取虚拟机的第一读写请求,第一读写请求包括第一虚拟地址;在地址转换信息集合中查找第一虚拟地址,其中,地址转换信息集合包括虚拟地址与物理块设备的信息的对应关系,物理块设备的信息包括读写标识。
物理块设备的信息还可以包括物理地址和物理块设备的标识。
块设备820用于:在地址转换信息集合中包括第一虚拟地址,且第一读写请求为读请求的情况下,处理第一读写请求;或者,在地址转信息集合中包括第一虚拟地址,第一读写请求为写请求,且第一虚拟地址对应的第一读写标识指示可读可写的情况下,处理第一读写请求。
虚拟块设备830用于:在地址转换信息集合中包括第一虚拟地址,第一读写请求为写请求,且第一虚拟地址对应的第一读写标识指示只读的情况下,处理第一读写请求;或者,在地址转换信息集合中不包括第一虚拟地址的情况下,处理第一读写请求。
装置800中可以包括多个块设备和虚拟块设备。
当地址转换信息集合中包括第一虚拟地址时,能够确定第一虚拟地址在硬件层中对应的物理块设备。块设备820是与第一虚拟地址对应的物理块设备对应的块设备。
虚拟块设备830是与第一虚拟地址所在的虚拟磁盘对应的虚拟块设备。
因此,根据本发明实施例的确定读写路径的设备,根据读写请求的虚拟地址和地址转换信息集合确定合适的读写路径,能够兼顾存储性能和存储功能。
可选地,存储后端模块810可以具体用于:从存储前端和存储后端共享的输入输出IO环中获取虚拟机的第二读写请求,第二读写请求包括第二虚拟地址;从第二读写请求中拆分出第一读写请求,第一虚拟地址为第二虚拟地址中的部分虚拟地址。
物理块设备的信息还可以包括物理块设备标识和物理地址,存储后端模块810可以具体用于:将第一读写请求转换为块设备读写请求,块设备读写请求包括第一虚拟地址对应的第一物理地址和第一物理块设备标识;块设备820具体用于处理块设备读写请求。
存储后端模块810还可以用于,当地址转换信息集合中包括第一虚拟地址,第一读写请求为写请求,且地址转换信息集合中第一虚拟地址对应的读写标识指示只读时,在地址转换信息集合中删除第一虚拟地址对应的初始记录。
可选地,如图9所示,装置800还可以包括:第一获取模块840,用于在地址转换信息集合中不包括第一虚拟地址的情况下,或者在地址转换信息集合中包括第一虚拟地址,第一读写请求为写请求,第一虚拟地址对应的第一读写标识指示只读的情况下,根据第一读写请求获取第一虚拟地址对应的第一物理地址、第一物理块设备标识和第一读写标识。存储后端模块810还用于,将第一虚拟地址、第一物理地址、第一物理块设备标识和第一读写标识对应关系添加到地址转换信息集合中。
可选地,存储后端模块810可以具体用于:确定是否开启存储高级服务;在未开启存储高级服务的情况下,在地址转换信息集合中查找第一虚拟地址。
具体地,装置800还可以包括:第二获取模块850,用于获取路径切换指示,路径切换指示用于指示是否开启存储高级服务;存储后端模块810具体用于根据路径切换指示确定是否开启存储高级服务。
可选地,物理块设备的信息还可以包括物理地址和物理块设备标识,装置800还包括:第三获取模块860,用于:当地址转换信息集合中包括第一虚拟地址时,在存储后端模块810获取第一读写请求之前,获取第一虚拟地址对应的第一物理地址和第一物理块设备标识;根据第一虚拟地址对应的虚拟磁盘的格式,确定第一虚拟地址对应的第一读写标识。存储后端模块810还用于,创建地址转换信息集合,地址转换信息集合包括第一虚拟地址、第一物理地址、第一物理块设备标识和第一读写标识的对应关系。
其中,第三获取模块860可以具体用于:
在第一虚拟地址对应厚置备虚拟磁盘或精简置备磁盘的情况下,确定第一读写标识指示可读可写;
在第一虚拟地址对应差分镜像虚拟磁盘的情况下,且第一虚拟地址对应子镜像文件的情况下,确定第一读写标识指示可读可写;
在第一虚拟地址对应差分镜像虚拟磁盘的情况下,且第一虚拟地址对应父镜像文件的情况下,确定第一读写标识指示只读。
需要说明的是,第三获取模块860与第一获取模块840可以为同一模块,也可以为不同模块,本发明实施例对此不做限定。第一获取模块840、第二获取模块850和第三获取模块860可以用于实现XEN虚拟化中的tapdisk进程或者KVM虚拟化中的QEMU的相应功能。例如,第一获取模块840和第三获取模块860可对应于图6所示tapdisk进程中的地址获取模块,第二获取模块850可对应于图6所示tapdisk进程中的指示获取模块。
应理解,根据本发明实施例的确定读写路径的装置800可对应于根据本发明实施例的确定读写路径的方法300,并且装置800中的各个模块的述和其它操作和/或功能分别为了实现图3至图7所示各个方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例的确定读写路径的设备,根据读写请求的虚拟地址和地址转换信息集合确定合适的读写路径,能够兼顾存储性能和存储功能。
下面结合附图就存储后端模块、第一获取模块、第二获取模块和第三获取模块可以由处理器执行存储器中的程序或指令来实现的技术方案来做详细的介绍:
图10是根据本发明另一实施例的确定读写路径的装置设备1000的示意性框图。具体的,装置1000可以应用于物理主机,物理主机运行有虚拟机。如图10所示,装置1000包括:处理器1010、存储器1020和总线系统1030。其中,处理器1010和存储器1020通过总线系统1030相连,该存储器1020可以包括只读存储器和随机存取存储器,并向处理器1010提供指令和数据。存储器1020的一部分还可以包括非易失性随机存取存储器(NVRAM)。在一些实施方式中,存储器1020存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
宿主机1021:作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离。其中,Host可能是虚拟机监控器(VMM);此外,有时VMM和1个特权虚拟机配合,两者结合组成Host。其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟处理器、内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应Host的一个文件或者一个逻辑块设备。虚拟机则运行在Host为其准备的虚拟硬件平台上,Host上运行一个或多个虚拟机。
虚拟机1022:通过虚拟机软件可以在一台物理计算机上模拟出一台或者多台虚拟的计算机,而这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。
在本发明实施例中,通过调用存储器1020存储的操作指令(该操作指令可存储在操作系统中),处理器1010用于:
获取虚拟机的第一读写请求,第一读写请求包括第一虚拟地址;
在地址转换信息集合中查找第一虚拟地址,其中,地址转换信息集合包括虚拟地址与物理块设备的信息的对应关系,物理块设备的信息包括读写标识;
在地址转换信息集合中包括第一虚拟地址,且第一读写请求为读请求的情况下,通过第一虚拟地址对应的块设备处理第一读写请求;或者,
在地址转信息集合中包括第一虚拟地址,第一读写请求为写请求,且第一虚拟地址对应的第一读写标识指示可读可写的情况下,通过第一虚拟地址对应的块设备处理第一读写请求;或者,
在地址转换信息集合中包括第一虚拟地址,第一读写请求为写请求,且第一虚拟地址对应的第一读写标识指示只读的情况下,通过第一虚拟地址对应的虚拟块设备处理第一读写请求;或者,
在地址转换信息集合中不包括第一虚拟地址的情况下,通过第一虚拟地址对应的虚拟块设备处理第一读写请求。
因此,本发明实施例的确定读写路径的设备,根据读写请求的虚拟地址和地址转换信息集合确定合适的读写路径,能够兼顾存储性能和存储功能。
处理器1010控制确定读写路径的装置1000的操作,处理器1010还可以称为CPU(Central Processing Unit,中央处理单元)。存储器1020可以包括只读存储器和随机存取存储器,并向处理器1010提供指令和数据。存储器1020的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,装置1000的各个组件通过总线系统1030耦合在一起,其中总线系统1030除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统1030。
上述本发明实施例揭示的方法可以应用于处理器1010中,或者由处理器1010实现。处理器1010可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1010中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1010可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1020,处理器1010读取存储器1020中的信息,结合其硬件完成上述方法的步骤。
可选地,作为另一实施例,处理器1010具体用于:从存储前端和存储后端共享的输入输出IO环中获取虚拟机的第二读写请求,第二读写请求包括第二虚拟地址;从第二读写请求中拆分出第一读写请求,第一虚拟地址为第二虚拟地址中的部分虚拟地址。
物理块设备的信息还可以包括物理块设备标识和物理地址,处理器1010可具体用于:将第一读写请求转换为块设备读写请求,块设备读写请求包括第一虚拟地址对应的第一物理地址和第一物理块设备标识;通过第一虚拟地址对应的块设备处理块设备读写请求。
可选地,处理器1010还用于,当地址转换信息集合中包括第一虚拟地址,第一读写请求为写请求,且第一虚拟地址对应的第一读写标识指示只读时,在地址转换信息集合中删除第一虚拟地址对应的初始记录。
可选地,处理器1010还用于:在地址转换信息集合中不包括第一虚拟地址的情况下,或者在地址转换信息集合中包括第一虚拟地址,第一读写请求为写请求,且第一虚拟地址对应的第一读写标识指示只读的情况下,获取第一虚拟地址对应的第一物理地址、第一物理块设备标识和第一读写标识;将第一虚拟地址、第一物理地址、第一物理块设备标识和第一读写标识的对应关系记录在地址转换信息集合中。
可选地,处理器1010还用于:在地址转换信息集合中查找第一虚拟地址之前,确定是否开启存储高级服务。
处理器1010可具体用于,获取路径切换指示,路径切换指示用于指示是否开启存储高级服务;根据路径切换指示确定是否开启存储高级服务。
可选地,物理块设备的信息还包括物理地址和物理块设备标识,处理器1010还用于:在地址转换信息集合中包括第一虚拟地址的情况下,在获取第一读写请求之前,获取第一虚拟地址对应的第一物理地址和第一物理块设备标识;根据第一虚拟地址对应的虚拟磁盘的格式,确定第一虚拟地址对应的第一读写标识;创建地址转换信息集合,地址转换信息集合包括第一虚拟地址、第一物理地址、第一物理块设备标识和第一读写标识的对应关系。
处理器1010可具体用于:在第一虚拟地址对应厚置备虚拟磁盘或精简置备磁盘的情况下,确定第一读写标识指示可读可写;在第一虚拟地址对应差分镜像虚拟磁盘的情况下,且第一虚拟地址对应子镜像文件的情况下,确定第一读写标识指示可读可写;在第一虚拟地址对应差分镜像虚拟磁盘的情况下,且第一虚拟地址对应父镜像文件的情况下,确定第一读写标识指示只读。
应理解,根据本发明实施例的确定读写路径的装置1000可对应于根据本发明实施例的确定读写路径的方法300以及根据本发明实施例的确定读写路径的装置800,并且装置1000中的各个模块的述和其它操作和/或功能分别为了实现图3至图7所示各个方法的相应流程,为了简洁,在此不再赘述。
在上述确定读写路径的装置的多个实施例中,应当理解的是,在一种实现方式下,后端存储模块、第一获取模块、第二获取模块和第三获取模块可以是可以由处理器执行存储器中的程序或指令来实现的(换言之,即由处理器以及与所述处理器耦合的存储器中的特殊指令相互配合来实现);在另一种实现方式下,后端存储模块、第一获取模块、第二获取模块和第三获取模块也可以分别通过专有电路来实现,具体实现方式参见现有技术,这里不再赘述;在再一种实现方式下,后端存储模块、第一获取模块、第二获取模块和第三获取模块也可以通过现场可编程门阵列(FPGA,Field-ProgrammableGate Array)来实现,具体实现方式参见现有技术,这里不再赘述,本发明包括但不限于前述实现方式,应当理解的是,只要按照本发明的思想实现的方案,都落入本发明实施例所保护的范围。
本实施例还提供了一种物理主机。如图11所示,物理主机1100可以包括:硬件器件以及软件器件两部分。其中,硬件器件包括硬件层,软件器件包括运行在硬件层上的宿主机Host,以及运行在Host上的虚拟机,Host还包括上述实施例中的确定读写路径的装置800。
硬件器件也可称“硬件处理模块”,或者更简单的,也可简称为“硬件”,硬件器件主要包括基于FPGA、ASIC之类专用硬件电路(也会配合其他配套器件,如存储器)来实现某些特定功能的硬件电路,其处理速度相比通用处理器往往要快很多,但功能一经定制,便很难更改,因此,实现起来并不灵活,通常用来处理一些固定的功能。需要说明的是,硬件器件在实际应用中,也可以包括MCU(微处理器,如单片机)、或者CPU等处理器,但这些处理器的主要功能并不是完成大数据的处理,而主要用于进行一些控制,在这种应用场景下,由这些器件搭配的系统为硬件器件。
软件器件(或者也简单“软件”)主要包括通用的处理器(例如CPU)及其一些配套的器件(如内存、硬盘等存储设备),可以通过编程来让处理器具备相应的处理功能,用软件来实现时,可以根据业务需求灵活配置,但往往速度相比硬件器件来说要慢。
本实施例中,软件器件用于根据读写请求确定合适的读写路径,硬件器件完成读写请求对应的读写操作。硬件器件及软件器件的其他功能在前述实施例中已经详细论述,这里不再赘述。
因此,根据本发明实施例的确定读写路径的装置,根据读写请求和地址转换信息集合确定合适的读写路径,能够兼顾存储性能和存储功能。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (21)

1.一种确定读写路径的方法,所述方法用于物理主机,所述物理主机包括硬件层、运行在所述硬件层之上的宿主机Host、以及运行在所述Host之上的虚拟机,所述Host包括块设备以及虚拟块设备,其特征在于,包括:
所述Host获取所述虚拟机的第一读写请求,所述第一读写请求包括第一虚拟地址;
在地址转换信息集合中查找所述第一虚拟地址,其中,所述地址转换信息集合包括虚拟地址与物理块设备的信息的对应关系,所述物理块设备的信息包括读写标识;
在所述地址转换信息集合中包括所述第一虚拟地址,且所述第一读写请求为读请求的情况下,通过所述第一虚拟地址对应的块设备处理所述第一读写请求;或者,
在所述地址转信息集合中包括所述第一虚拟地址,所述第一读写请求为写请求,且所述第一虚拟地址对应的第一读写标识指示可读可写的情况下,通过所述块设备处理所述第一读写请求;或者,
在所述地址转换信息集合中包括所述第一虚拟地址,所述第一读写请求为写请求,且所述第一虚拟地址对应的第一读写标识指示只读的情况下,通过所述虚拟块设备处理所述第一读写请求;或者,
在所述地址转换信息集合中不包括所述第一虚拟地址的情况下,通过所述虚拟块设备处理所述第一读写请求。
2.根据权利要求1所述的方法,其特征在于,所述物理块设备的信息还包括物理块设备标识和物理地址,所述通过所述第一虚拟地址对应的块设备处理所述第一读写请求包括:
将所述第一读写请求转换为块设备读写请求,所述块设备读写请求包括所述第一虚拟地址对应的第一物理地址和第一物理块设备标识;
通过所述第一虚拟地址对应的块设备处理所述块设备读写请求。
3.根据权利要求1所述的方法,其特征在于,在所述地址转换信息集合中包括所述第一虚拟地址,所述第一读写请求为写请求,且所述第一虚拟地址对应的第一读写标识指示只读的情况下,所述方法还包括:
在所述地址转换信息集合中删除所述第一虚拟地址对应的初始记录。
4.根据权利要求1所述的方法,其特征在于,在所述地址转换信息集合中不包括所述第一虚拟地址的情况下,所述方法还包括:
根据所述第一读写请求获取所述第一虚拟地址对应的第一物理地址、第一物理块设备标识和第一读写标识;
将获取的所述第一虚拟地址、所述第一物理地址、所述第一物理块设备标识和所述第一读写标识的对应关系添加到所述地址转换信息集合中。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据所述第一读写请求获取所述第一虚拟地址对应的第一物理地址、第一物理块设备标识和第一读写标识;
将获取的所述第一虚拟地址、所述第一物理地址、所述第一物理块设备标识和所述第一读写标识的对应关系添加到所述地址转换信息集合中。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:确定是否开启存储高级服务;
所述在地址转换信息集合中查找所述第一虚拟地址包括:
在未开启存储高级服务的情况下,在地址转换信息集合中查找所述第一虚拟地址。
7.根据权利要求6所述的方法,其特征在于,所述确定是否开启存储高级服务包括:
获取路径切换指示,所述路径切换指示用于指示是否开启所述存储高级服务;
根据所述路径切换指示确定是否开启存储高级服务。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述物理块设备的信息还包括物理地址和物理块设备标识,在所述地址转换信息集合中包括所述第一虚拟地址的情况下,所述方法还包括:
获取所述第一虚拟地址对应的第一物理地址和第一物理块设备标识;
根据所述第一虚拟地址对应的虚拟磁盘的格式,确定所述第一虚拟地址对应的所述第一读写标识;
创建所述地址转换信息集合,所述地址转换信息集合包括所述第一虚拟地址、所述第一物理地址、所述第一物理块设备标识和所述第一读写标识的对应关系。
9.根据权利要求8所述的方法,其特征在于,所述根据所述第一虚拟地址对应的虚拟磁盘的格式,确定所述第一虚拟地址对应的所述第一读写标识,包括:
在所述第一虚拟地址对应厚置备虚拟磁盘或精简置备磁盘的情况下,确定所述第一读写标识指示可读可写;
在所述第一虚拟地址对应差分镜像虚拟磁盘,且所述第一虚拟地址对应子镜像文件的情况下,确定所述第一读写标识指示可读可写;
在所述第一虚拟地址对应差分镜像虚拟磁盘,且所述第一虚拟地址对应父镜像文件的情况下,确定所述第一读写标识指示只读。
10.根据权利要求1至9所述的方法,其特征在于,所述获取第一读写请求包括:
从存储前端和存储后端共享的输入输出IO环中获取所述虚拟机的第二读写请求,所述第二读写请求包括第二虚拟地址;
从所述第二读写请求中拆分出所述第一读写请求,所述第一虚拟地址为所述第二虚拟地址中的部分虚拟地址。
11.一种确定读写路径的装置,其特征在于,所述装置应用于物理主机,所述物理主机运行有虚拟机,其特征在于,所述装置包括:
存储后端模块,用于:
获取所述虚拟机的第一读写请求,所述第一读写请求包括第一虚拟地址;
在地址转换信息集合中查找所述第一虚拟地址,其中,所述地址转换信息集合包括虚拟地址与物理块设备的信息的对应关系,所述物理块设备的信息包括读写标识;
块设备,用于在所述地址转换信息集合中包括所述第一虚拟地址,且所述第一读写请求为读请求的情况下,或者在所述地址转信息集合中包括所述第一虚拟地址,所述第一读写请求为写请求,且所述第一虚拟地址对应的第一读写标识指示可读可写的情况下,处理所述第一读写请求;
虚拟块设备,用于在所述地址转换信息集合中包括所述第一虚拟地址,所述第一读写请求为写请求,且所述第一虚拟地址对应的第一读写标识指示只读的情况下,或者在所述地址转换信息集合中不包括所述第一虚拟地址的情况下,处理所述第一读写请求。
12.根据权利要求11所述的装置,其特征在于,所述物理块设备的信息还包括物理块设备标识和物理地址,所述存储后端模块还用于:
将所述第一读写请求转换为块设备读写请求,所述块设备读写请求包括所述第一虚拟地址对应的第一物理地址和第一物理块设备标识;
所述块设备具体用于处理所述块设备读写请求。
13.根据权利要求11所述的装置,其特征在于,所述存储后端模块还用于,在所述地址转换信息集合中包括所述第一虚拟地址,所述第一读写请求为写请求,且所述第一虚拟地址对应的第一读写标识指示只读的情况下,在所述地址转换信息集合中删除所述第一虚拟地址对应的初始记录。
14.根据权利要求11所述的装置,其特征在于,还包括:第一获取模块,用于在所述地址转换信息集合中不包括所述第一虚拟地址的情况下,根据所述第一读写请求获取所述第一虚拟地址对应的第一物理地址、第一物理块设备标识和第一读写标识;
所述存储后端模块将所述第一获取模块获取的所述第一虚拟地址、所述第一物理地址、所述第一物理块设备标识和所述第一读写标识的对应关系添加到所述地址转换信息集合中。
15.根据权利要求13所述的装置,其特征在于,还包括:第一获取模块,用于根据所述第一读写请求获取所述第一虚拟地址对应的第一物理地址、第一物理块设备标识和第一读写标识;
所述存储后端模块还用于,将所述第一获取模块获取的所述第一虚拟地址、所述第一物理地址、所述第一物理块设备标识和所述第一读写标识的对应关系添加到所述地址转换信息集合中。
16.根据权利要求11至15中任一项所述的装置,其特征在于,所述存储后端模块具体用于:
确定是否开启存储高级服务;
在未开启存储高级服务的情况下,在所述地址转换信息集合中查找所述第一虚拟地址。
17.根据权利要求16所述的装置,其特征在于,还包括:第二获取模块,用于获取路径切换指示,所述路径切换指示用于指示是否开启所述存储高级服务;
所述存储后端模块具体用于根据所述路径切换指示确定是否开启存储高级服务。
18.根据权利要求11至17中任一项所述的装置,其特征在于,还包括:第三获取模块,用于:
在所述地址转换信息集合中包括所述第一虚拟地址的情况下,获取所述第一虚拟地址对应的第一物理地址和第一物理块设备标识;
根据所述第一虚拟地址对应的虚拟磁盘的格式,确定所述第一虚拟地址对应的所述第一读写标识;
所述存储后端模块还用于,创建所述地址转换信息集合,所述地址转换信息集合包括所述第一虚拟地址、所述第一物理地址、所述第一物理块设备标识和所述第一读写标识的对应关系。
19.根据权利要求18所述的装置,其特征在于,所述第三获取模块具体用于:
在所述第一虚拟地址对应厚置备虚拟磁盘或精简置备磁盘的情况下,确定所述第一读写标识指示可读可写;
在所述第一虚拟地址对应差分镜像虚拟磁盘,且所述第一虚拟地址对应子镜像文件的情况下,确定所述第一读写标识指示可读可写;
在所述第一虚拟地址对应差分镜像虚拟磁盘,且所述第一虚拟地址对应父镜像文件的情况下,确定所述第一读写标识指示只读。
20.根据权利要求11至19中任一项所述的装置,其特征在于,所述存储后端模块具体用于:
从存储前端和存储后端共享的输入输出IO环中获取所述虚拟机的第二读写请求,所述第二读写请求包括第二虚拟地址;
从所述第二读写请求中拆分出所述第一读写请求,所述第一虚拟地址为所述第二虚拟地址中的部分虚拟地址。
21.一种物理主机,其特征在于,所述物理主机包括硬件层、运行在所述硬件层之上的宿主机Host、以及运行在所述Host之上的虚拟机,所述Host包括块设备以及虚拟块设备,
所述Host包括如权利要求11到20中任一所述的确定读写路径的装置。
CN201510050407.XA 2015-01-30 2015-01-30 确定读写路径的方法和装置 Active CN104598170B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201510050407.XA CN104598170B (zh) 2015-01-30 2015-01-30 确定读写路径的方法和装置
EP15879529.4A EP3249515B1 (en) 2015-01-30 2015-04-27 Method and apparatus for determining read/write path
PCT/CN2015/077479 WO2016119322A1 (zh) 2015-01-30 2015-04-27 确定读写路径的方法和装置
US15/663,570 US10642539B2 (en) 2015-01-30 2017-07-28 Read/write path determining method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510050407.XA CN104598170B (zh) 2015-01-30 2015-01-30 确定读写路径的方法和装置

Publications (2)

Publication Number Publication Date
CN104598170A true CN104598170A (zh) 2015-05-06
CN104598170B CN104598170B (zh) 2017-12-05

Family

ID=53123997

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510050407.XA Active CN104598170B (zh) 2015-01-30 2015-01-30 确定读写路径的方法和装置

Country Status (4)

Country Link
US (1) US10642539B2 (zh)
EP (1) EP3249515B1 (zh)
CN (1) CN104598170B (zh)
WO (1) WO2016119322A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201349A (zh) * 2015-12-31 2016-12-07 华为技术有限公司 一种在物理主机中处理读/写请求的方法和装置
CN106201652A (zh) * 2016-06-29 2016-12-07 联想(北京)有限公司 一种数据处理方法及虚拟机
CN107463369A (zh) * 2017-06-30 2017-12-12 北京北信源软件股份有限公司 一种虚拟桌面的接入设备控制方法与装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106961475B (zh) * 2017-03-14 2020-07-14 云宏信息科技股份有限公司 一种基于nbd的远程磁盘共享方法和共享系统
US11003372B2 (en) 2018-05-31 2021-05-11 Portworx, Inc. Protecting volume namespaces from corruption in a distributed container orchestrator
US10942670B2 (en) * 2018-12-06 2021-03-09 Vmware, Inc. Direct access flash transition layer
US11409619B2 (en) 2020-04-29 2022-08-09 The Research Foundation For The State University Of New York Recovering a virtual machine after failure of post-copy live migration

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101288054A (zh) * 2004-07-30 2008-10-15 M-系统快闪盘开拓者公司 快闪文件系统中的虚拟至物理地址翻译
CN101419535A (zh) * 2008-11-19 2009-04-29 北京航空航天大学 虚拟机的分布式虚拟磁盘系统
US20110191540A1 (en) * 2010-02-03 2011-08-04 International Business Machines Corporation Processing read and write requests in a storage controller
CN102375695A (zh) * 2010-08-23 2012-03-14 联想(北京)有限公司 一种磁盘的访问方法及计算机系统
CN103098043A (zh) * 2010-09-10 2013-05-08 国际商业机器公司 随需虚拟机映像流式传输

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7669032B2 (en) * 2003-11-26 2010-02-23 Symantec Operating Corporation Host-based virtualization optimizations in storage environments employing off-host storage virtualization
JP5261661B2 (ja) * 2005-05-24 2013-08-14 ストラタス・テクノロジーズ・バミューダ・リミテッド 対称型マルチプロセッサ・フォルトトレラントコンピュータシステム
US8683466B2 (en) * 2011-05-24 2014-03-25 Vmware, Inc. System and method for generating a virtual desktop
CA2867302A1 (en) * 2012-03-14 2013-09-19 Convergent .Io Technologies Inc. Systems, methods and devices for management of virtual memory systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101288054A (zh) * 2004-07-30 2008-10-15 M-系统快闪盘开拓者公司 快闪文件系统中的虚拟至物理地址翻译
CN101419535A (zh) * 2008-11-19 2009-04-29 北京航空航天大学 虚拟机的分布式虚拟磁盘系统
US20110191540A1 (en) * 2010-02-03 2011-08-04 International Business Machines Corporation Processing read and write requests in a storage controller
CN102375695A (zh) * 2010-08-23 2012-03-14 联想(北京)有限公司 一种磁盘的访问方法及计算机系统
CN103098043A (zh) * 2010-09-10 2013-05-08 国际商业机器公司 随需虚拟机映像流式传输

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201349A (zh) * 2015-12-31 2016-12-07 华为技术有限公司 一种在物理主机中处理读/写请求的方法和装置
CN106201349B (zh) * 2015-12-31 2019-06-28 华为技术有限公司 一种在物理主机中处理读/写请求的方法和装置
US10579305B2 (en) 2015-12-31 2020-03-03 Huawei Technologies Co., Ltd. Method and apparatus for processing read/write request in physical machine
CN106201652A (zh) * 2016-06-29 2016-12-07 联想(北京)有限公司 一种数据处理方法及虚拟机
CN106201652B (zh) * 2016-06-29 2020-05-26 联想(北京)有限公司 一种数据处理方法及虚拟机
CN107463369A (zh) * 2017-06-30 2017-12-12 北京北信源软件股份有限公司 一种虚拟桌面的接入设备控制方法与装置

Also Published As

Publication number Publication date
WO2016119322A1 (zh) 2016-08-04
EP3249515B1 (en) 2022-04-06
US20180018135A1 (en) 2018-01-18
EP3249515A4 (en) 2018-03-07
US10642539B2 (en) 2020-05-05
WO2016119322A8 (zh) 2016-11-10
CN104598170B (zh) 2017-12-05
EP3249515A1 (en) 2017-11-29

Similar Documents

Publication Publication Date Title
US10067777B2 (en) Supporting multiple operating system environments in computing device without contents conversion
CN107209681B (zh) 一种存储设备访问方法、装置和系统
CN104598170A (zh) 确定读写路径的方法和装置
US8370835B2 (en) Method for dynamically generating a configuration for a virtual machine with a virtual hard disk in an external storage device
KR101574403B1 (ko) 결합된 가상 그래픽 장치
US7272831B2 (en) Method and apparatus for constructing host processor soft devices independent of the host processor operating system
US7669020B1 (en) Host-based backup for virtual machines
US8856781B2 (en) Method and apparatus for supporting assignment of devices of virtual machines
US20090265708A1 (en) Information Processing Apparatus and Method of Controlling Information Processing Apparatus
US20100275205A1 (en) Computer machine and access control method
US20110113426A1 (en) Apparatuses for switching the running of a virtual machine between multiple computer devices belonging to the same computer platform and the associated switching methods
CN112306624A (zh) 一种信息处理方法、物理机和pcie设备
US10282190B2 (en) System and method for updating a UEFI image in an information handling system
CN114417373A (zh) 一种NVMe-oF用户态客户端的数据访问方法和装置
US8880582B2 (en) User access to a partitionable server
US9552211B1 (en) Method for performing hot-swap of a storage device in a virtualization environment
CN114691300A (zh) 一种虚拟机实例的热迁移方法
US10261821B2 (en) System and method to expose remote virtual media partitions to virtual machines
CN110968392A (zh) 一种升级虚拟化模拟器的方法和装置
US20130139157A1 (en) Apparatus and method for automatic para-virtualization of os kernel
US20180336085A1 (en) Crash dump extraction of guest failure
KR20180023784A (ko) 사전 부팅 환경에서 raid 볼륨에 접근하는 데이터 저장 시스템 및 방법
US20200110666A1 (en) Data recovery of guest virtual machines
CN114765051A (zh) 内存测试方法及装置、可读存储介质、电子设备
CN102622245B (zh) 一种sun4v架构下的虚拟机自动启动控制方法

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