CN104951238A - 用于在分布式虚拟环境中管理数据存储的方法和装置 - Google Patents

用于在分布式虚拟环境中管理数据存储的方法和装置 Download PDF

Info

Publication number
CN104951238A
CN104951238A CN201410112080.XA CN201410112080A CN104951238A CN 104951238 A CN104951238 A CN 104951238A CN 201410112080 A CN201410112080 A CN 201410112080A CN 104951238 A CN104951238 A CN 104951238A
Authority
CN
China
Prior art keywords
data
memory node
virtual environment
node
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.)
Pending
Application number
CN201410112080.XA
Other languages
English (en)
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201410112080.XA priority Critical patent/CN104951238A/zh
Publication of CN104951238A publication Critical patent/CN104951238A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的各实施方式提供了用于在分布式虚拟环境中管理数据存储的方法和装置。在本发明的一个实施方式中,提供了一种用于在分布式虚拟环境中管理数据存储的方法,包括:接收来自用户的对分布式虚拟环境中的虚拟机的写访问请求,虚拟机运行于分布式虚拟环境中的管理程序节点处;在管理程序节点处缓存与写访问请求相关联的数据;向用户通知写访问请求完成;以及向分布式虚拟环境中的存储节点传输缓存的数据,存储节点向虚拟机提供物理存储。在本发明的一个实施方式中,提供了相应的装置。采用本发明的方法和装置,可以在分布式虚拟环境中提供更大容量的数据存储、并确保用户能够以高效方式访问这些数据存储。

Description

用于在分布式虚拟环境中管理数据存储的方法和装置
技术领域
本发明的各实施方式涉及数据存储,更具体地,涉及用于在分布式虚拟环境中管理数据存储的方法和装置。
背景技术
随着计算机硬件和软件技术的发展,虚拟机(Virtual Machine,VM)已经能够向用户提供越来越多的支持。例如,当用户需要使用数据计算资源和数据存储资源时,用户不必自己购买高性能的物理机并在该物理机上安装所需的应用程序;而是,用户可以例如向云服务提供商来申请计算资源和数据存储资源,并经由该用户本地的桌面系统来访问这些资源。
现有的分布式虚拟环境已经能够向用户提供各种计算资源和存储资源,然而由于分布式虚拟环境中管理程序节点(HypervisorNode)自身物理配置的限制,并不能无限制地向用户提供资源(例如,存储资源)。另外,分布式虚拟环境借助于网络来实现,当用户对于分布式虚拟环境中的虚拟机中进行访问时,虚拟机并不能提供令人满意的响应效率,而是通常在用户访问和虚拟机响应之间会存在一定的延迟。
因而,如何在分布式虚拟环境中提供更大容量的数据存储、以及如何确保用户能够以高效方式访问这些数据存储,成为在分布式虚拟环境中管理数据存储的一个研究热点。
发明内容
因而,期望能够开发一种能够以高效方式管理分布式虚拟环境中的数据存储的技术方案,并且期望该技术方案可以和现有的数据存储架构相兼容,以便在尽量不改变现有分布式虚拟环境的架构的硬件配置的情况下,提供更大容量的数据存储并且确保用户能够以高效的方式访问这些数据存储。
在本发明的一个实施方式中,提供了一种用于在分布式虚拟环境中管理数据存储的方法,包括:接收来自用户的对分布式虚拟环境中的虚拟机的写访问请求,虚拟机运行于分布式虚拟环境中的管理程序节点处;在管理程序节点处缓存(cache)与写访问请求相关联的数据;向用户通知写访问请求完成;以及向分布式虚拟环境中的存储节点传输缓存的数据,存储节点向虚拟机提供物理存储。
在本发明的一个实施方式中,向分布式虚拟环境中的存储节点传输缓存的数据包括:在批处理操作中,向存储节点传输在管理程序节点处缓存的、与多个写访问请求相关联的数据。
在本发明的一个实施方式中,向分布式虚拟环境中的存储节点传输缓存的数据包括:记录缓存的数据与执行写访问请求之前的相应数据之间的差异;以及向存储节点传输差异。
在本发明的一个实施方式中,提供了一种用于在分布式虚拟环境中管理数据存储的装置,包括:接收模块,配置用于接收来自用户的对分布式虚拟环境中的虚拟机的写访问请求,虚拟机运行于分布式虚拟环境中的管理程序节点处;缓存模块,配置用于在管理程序节点处缓存与写访问请求相关联的数据;通知模块,配置用于向用户通知写访问请求完成;以及传输模块,配置用于向分布式虚拟环境中的存储节点传输缓存的数据,存储节点向虚拟机提供物理存储。
在本发明的一个实施方式中,传输模块包括:批处理模块,配置用于在批处理操作中,向存储节点传输在管理程序节点处缓存的、与多个写访问请求相关联的数据。
在本发明的一个实施方式中,传输模块包括:记录模块,配置用于记录缓存的数据与执行写访问请求之前的相应数据之间的差异;以及差异传输模块,配置用于向存储节点传输差异。
采用本发明所述的方法和装置,可以在尽可能少地改动现有分布式虚拟环境中数据存储的硬件配置的情况下,提供更大容量的数据存储并且确保用户能够以高效方式访问这些数据存储。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示意性示出了根据本发明一个实施方式的云计算节点;
图2示意性示出了根据本发明一个实施方式的云计算环境;
图3示意性示出了根据本发明一个实施方式的抽象模型层;
图4示意性示出了根据本发明一个实施方式的用于在分布式虚拟环境中管理数据存储的技术方案的架构图;
图5示意性示出了根据本发明一个实施方式的用于在分布式虚拟环境中管理数据存储的方法的流程图;
图6示意性示出了根据本发明一个实施方式的在存储节点中的数据的物理地址的示例;
图7示意性示出了根据本发明一个实施方式的存储节点的示意图;以及
图8示意性示出了根据本发明一个实施方式的用于在分布式虚拟环境中管理数据存储的装置的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其他类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施方式的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
云计算节点10具有计算机系统/服务器12,其可与众多其他通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其他可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其他光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施方式的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其他程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施方式中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其他计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其他模块通信。应当明白,尽管图中未示出,其他硬件和/或软件模块可以与计算机系统/服务器12一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施方式不限于此。如图3所示,提供下列层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机,例如系统;基于RISC(精简指令集计算机)体系结构的服务器,例如IBM系统;IBM系统;系统;存储设备;网络和网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM应用服务器软件;数据库软件,例如IBM数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其他资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其他资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及存储设备管理。
由于分布式虚拟环境中的管理程序节点的物理配置的限制、以及分布式虚拟环境中由于网络等原因造成的延迟,目前并不能向虚拟机提供大容量的、具有较高响应效率的数据存储。为了解决现有技术中的上述不足,本发明的各个实施方式提出了一种在分布式虚拟环境中管理数据存储的技术方案。
在本发明的一个实施方式中,一方面,可以在管理程序节点处提供多个虚拟机。管理程序节点通常是具备较强计算能力以及较大容量存储的计算设备。以此方式,当用户访问虚拟机的存储设备时,即直接地访问管理程序节点,此时可以快速地访问管理程序节点本机处的存储设备。另一方面,为了向虚拟机提供扩展的数据存储能力,还可以向管理程序节点附接存储节点。以此方式,可以在分离于管理程序节点的专用存储节点处向虚拟机提供存储大容量的存储设备。
具体地,图4示意性示出了根据本发明一个实施方式的用于在分布式虚拟环境中管理数据存储的技术方案的架构图400。如图4中所示,在本发明的一个实施方式中,在管理程序节点层410和存储节点层420两个层次向虚拟机提供存储设备。具体地,在管理程序节点层410中,在管理程序节点412处运行多个虚拟机,例如虚拟机1414、虚拟机2416、...、虚拟机N418,在此层级处可以提供高性能的IO操作。当在此层次中实现数据访问时,可以直接在管理层的节点412本机处的存储设备(例如,硬盘)处操作,因而可以高效地响应于接收到的各种IO操作。
在存储节点层420中,可以提供第二级数据存储设备,该层可以包括多个存储节点,例如,存储节点1422、存储节点2424、...、以及存储节点M426。由于管理程序节点层410中的存储设备可以提供更为高效的数据访问,因而,当用户对虚拟机进行访问时,可以首先在管理程序节点412处缓存与写访问相关联的数据,并且在用户与管理程序节点412之间的写访问操作结束时,向用户返回操作完成的消息。继而,在分布式虚拟环境内部,可以从管理程序节点412向存储节点(例如,存储节点1422)传输数据。以此方式,尽管在分布式虚拟环境内部会涉及到传输效率较低的网络操作,然而对于外部用户而言,分布式虚拟环境中的虚拟机可以向外部提供较大的存储容量和较高的访问速度。
具体地,在本发明的一个实施方式中,提供了一种用于在分布式虚拟环境中管理数据存储的方法,包括:接收来自用户的对分布式虚拟环境中的虚拟机的写访问请求,虚拟机运行于分布式虚拟环境中的管理程序节点处;在管理程序节点处缓存与写访问请求相关联的数据;向用户通知写访问请求完成;以及向分布式虚拟环境中的存储节点传输缓存的数据,存储节点向虚拟机提供物理存储。
图5示意性示出了根据本发明一个实施方式的用于在分布式虚拟环境中管理数据存储的方法的流程图500。具体地,在步骤S502中,接收来自用户的对分布式虚拟环境中的虚拟机的写访问请求,虚拟机运行于分布式虚拟环境中的管理程序节点处。在虚拟机启动时,与虚拟机相关联的数据已经被加载到管理程序节点中,因而用户可以与管理程序节点本机直接进行通信即可进行读数据访问。在本发明的上下文中,提高数据访问效率主要指提高对于虚拟机中的数据的写访问的效率。
在步骤S504中,在管理程序节点处缓存与写访问请求相关联的数据。尽管对于虚拟机中的数据的写访问请求的目的在于向虚拟机的存储设备(例如,物理地位于存储节点中的硬盘等)中写入数据,然而,为了向用户提供更高的存取效率,可以首先在管理程序节点本机处缓存与该写访问请求相关联的数据,并在后续操作中,在分布式虚拟环境内部传输数据进而实现最终的写访问。
在步骤S506中,向用户通知写访问请求完成。采用本发明的技术方案,可以在管理程序节点处缓存与写访问请求相关联的数据之后,即向用户通知已经完成了写访问请求。这样,对于外部用户而言,由管理程序节点来直接响应于用户的写访问请求,用户无需在分布式虚拟环境执行内部处理的时段期间继续等待,而是可以在接收到写访问请求完成的消息之后即认为写操作完成。
具体地,假设用户正在编辑虚拟机中的一个大小为1GB的视频文件,在编辑完成之后希望通过写操作来将编辑结果写入虚拟机,按照本发明所述的技术方案,可以将用户的编辑结果(即,1GB的视频文件)首先在管理程序节点处进行缓存。在缓存之后立刻向用户发送写操作完成的消息,进而可以大大降低用户等待的时间。虚拟机对于外部的用户而言在逻辑上呈现为一台独立的计算设备,尽管此时编辑结果并未被写入最终的存储位置,然而后续的操作属于分布式虚拟环境内部的操作,用户不必关心其中的细节。
在步骤S508中,向分布式虚拟环境中的存储节点传输缓存的数据,存储节点向虚拟机提供物理存储。在此实施方式中,在分布式虚拟系统内部,实际上由存储节点来向虚拟机提供物理存储,因而在步骤S508中所进行的数据传输操作,属于分布式虚拟环境内部的操作,用户不必知晓其中的细节。
本发明的技术方案的优势在于,对于外部用户屏蔽分布式虚拟系统内部的操作细节,可以管理程序节点完成用户的写访问请求时,即向用户指示写访问请求的完成。这使得用户不必花费时间等待在分布式虚拟系统内部实现数据处理所占用的时间。
在本发明的一个实施方式中,向分布式虚拟环境中的存储节点传输缓存的数据包括:在批处理操作中,向存储节点传输在管理程序节点处缓存的、与多个写访问请求相关联的数据。
尽管在上述实施方式中仅以如何处理针对一个虚拟机的一个写访问请求为示例,介绍了如何实现本发明的技术方案。在本发明的上下文中,还可以涉及针对一个或者多个虚拟机的多个写访问请求。按照本实施方式,不必在发送了指示每个写访问请求完成的通知之后立刻从管理程序节点向存储节点传输与每个写访问请求相关联的被缓存的数据,而是可以在批处理操作中,一次性地将与多个写访问请求相关联的缓存的数据传输至相同的存储节点。
具体地,返回图4所示的示例,存储节点1422分别为虚拟机1414和虚拟机2416提供物理存储。此时,虚拟机1414和虚拟机2416两者的相关联数据均存储在存储节点1422上。假设写访问请求1对虚拟机1414中的文件1执行了写操作,并形成了修改后的文件1;访问请求2对虚拟机2426中的文件2执行了写操作,并形成了修改后的文件2。按照本发明的实施方式,可以在一个批处理操作中,从管理程序节点412向存储节点422传输修改后的文件1和修改后的文件2。
在本发明的实施方式中,并不限定存储节点与虚拟机之间的对应关系,而是一个存储节点可以向一个或者多个虚拟机提供物理存储,并且一个虚拟机可以由一个或者多个存储节点来提供物理存储。在此情况下,一个写请求可能会涉及到一个或者多个存储节点,本领域技术人员可以按照上文所述的原理来实现具体的批处理操作,例如,可以定期地从管理程序节点向相应的存储节点传输数据,可以在管理程序节点中所缓存的数据达到一定数量时执行传输,等等。
在本发明的一个实施方式中,向分布式虚拟环境中的存储节点传输缓存的数据包括:记录缓存的数据与执行写访问请求之前的相应数据之间的差异;以及向存储节点传输差异。
采用本发明所述的技术方案,上文步骤S508中所述的操作属于分布式虚拟环境的内部操作,为了进一步降低在管理程序节点和存储节点之间的数据传输量,还可以仅传输缓存的数据与执行写访问请求之前的相应数据之间的差异,即,仅传输被改变的数据。
继续上文的示例,假设用户向1GB的视频文件的结尾处添加了视频(例如,15MB),在此示例中,差异可以包括新增的15MB数据以及插入新增数据的位置(例如,原始文件的结尾处)。在此示例中,在管理程序节点和存储节点之间仅需要传输新增的15MB的数据,而不必传输编辑后的全部1GB+15MB的数据。在本发明的一个实施方式中,可以以现有技术中已知和/或将在未来开发的任何方式,来记录缓存的数据与执行写访问请求之前的相应数据之间的差异。
应当注意,尽管上文在不同的实施方式中描述了本发明的不同方面,本领域技术人员可以理解,还可以将上述方面进行组合。具体地,例如,如批处理操作中所述,在所述管理程序节点处缓存的、与多个写访问请求相关联的数据还可以是差异数据(即,记录缓存的所述数据与执行所述写访问请求之前的相应数据之间的差异的数据)。因而,在此组合后的实施方式中,在批处理操作中,可以向所述存储节点传输在所述管理程序节点处缓存的、与多个写访问请求相关联的“差异数据”。
在本发明的一个实施方式中,向分布式虚拟环境中的存储节点传输缓存的数据包括:获取与缓存的数据相对应的存储数据在存储节点中的物理地址;以及向存储节点中的物理地址处写入缓存的数据。
由于由存储节点来向虚拟机提供物理存储,在向存储节点传输缓存的数据时,需要向存储节点中存储与写入请求相关联的数据相对应的位置处写入数据,才能确保存储节点中的数据与管理程序节点中的被缓存数据的一致性。具体地,假设写操作修改了管理程序节点中运行的虚拟机VM-1中的数据块1中的数据,修改细节涉及将数据块1中的偏移地址为0x1000处的字符从“a”修改至“b”,则此时需要获取管理程序节点中的数据块1在存储节点中的相应数据块地址,计算数据块1中的字符“a”在存储节点中的物理地址,继而将该地址处的字符设置为“b”,即可完成在分布式虚拟系统内部的数据传输操作。
虚拟机中的数据的地址是对于外部用户而言可见的地址,然而经由该地址并不能直接访问与虚拟机相关联的物理存储,因而需要将虚拟机中的数据的地址映射至真实的物理地址,才能实现从管理程序节点向存储节点的数据传输。具体地,可以经由第一地址和第二地址,来将虚拟机中的地址映射至存储节点中的物理地址。
图6示意性示出了根据本发明一个实施方式的在存储节点中的数据的物理地址的示例。第一地址可以表示存储节点的地址(即,由哪个存储节点向虚拟机提供物理存储),第二地址可以表示具体的数据块的地址(即,数据块在存储节点中的地址偏移),偏移地址则表示被修改的内容在数据块中的偏移。
在本发明的实施方式中,可以采用多种方式来记录虚拟机与存储节点之间的对应关系。例如,可以设置第一地址表来记录由哪个存储节点来向哪个虚拟机提供物理存储。假设分布式虚拟环境中包括虚拟机VM-1、虚拟机VM-2和虚拟机VM-N,由存储节点SN-1来分别为虚拟机VM-1和VM-2提供物理存储,由存储节点SN-M来为虚拟机VM-N提供物理存储,则可以以如下文表1所示的数据结构来存储第一地址表:
表1第一地址表
序号 虚拟机 存储节点
1 VM-1 SN-1
2 VM-2 SN-1
3 VM-N SN-M
在本发明的一个实施方式中,还可以采用第二地址表来存储各个数据块的地址。例如,假设虚拟机VM-1中包括10个数据块,则可以以如下文表2所示的数据结构来存储与虚拟机VM-1相关联的第二地址表。
表2第二地址表
序号 数据块 地址
1 数据块1 0x0001...0
2 数据块2 0x0002...0
... ... ...
10 数据决10 0x000A...0
在本发明的一个实施方式中,获取与缓存的数据相对应的存储数据在存储节点中的物理地址包括:查询第一地址表以获取向虚拟机提供物理存储的存储节点的第一地址,查询第二地址表以获取存储节点中的数据块的第二地址,获取缓存的数据在管理程序节点中的偏移地址;以及组合第一地址、第二地址和偏移地址以形成物理地址。
继续上文的示例,假设将虚拟机VM-1中的数据块1中的偏移地址为0x1000处的字符从“a”修改至“b”,则该字符“a”的在存储节点中的物理地址可以表示为“SN-1:0x0001...01000”。
在本发明的实施方式中,并不限制将第一地址表存储于何处,例如,可以将第一地址表存储在管理程序节点、存储在存储节点或者存储在可以经由网络可访问的任意存储位置。为方便起见,可以将第一地址表存储在存储节点中;出于安全性考虑,还可以在多个存储节点中保存第一地址表。为了便于管理,可以将存储节点划分为管理员节点(Manager Node)和成员节点(Member Node),管理员节点负责管理和更新虚拟机中的数据与存储节点中的数据之间对应关系(例如,第一地址表和第二地址表),而成员节点用于存储与该节点相关联的虚拟机相关的数据。
在本发明的一个实施方式中,进一步包括:从虚拟环境中的多个存储节点中选举管理员节点,以用于在管理员节点存储第一地址表。可以从多个存储节点中选择硬件配置较高、并且运行较为稳定的节点作为存储节点。或者,还可以设置多个管理员节点,并且保证同一时刻只有一个管理员节点处于激活状态。在当前的管理员节点出现故障时,可以从备选的管理员节点中选取一个节点作为新的管理员。以此方式,可以确保分布式虚拟环境的安全性。
在本发明的上下文中,可以在管理员节点处存储如上文表1所示的第一地址表,并且在存储节点SN-1处存储如上文表2所示的第二地址表。当存储节点SN-1是管理员节点时,第一地址表和第二地址表均存储在存储节点SN-1上。此时,可以认为管理员节点是具有管理和更新虚拟机中的数据与存储节点中的数据之间对应关系的成员节点。
在本发明的一个实施方式中,进一步包括:在向分布式虚拟环境中的存储节点传输缓存的数据之后,向分布式虚拟环境中的另一存储节点同步缓存的数据。为了进一步提高分布式虚拟环境的安全性,还可以由多个存储节点来为同一虚拟机中的相同数据提供物理存储。例如,可以在存储节点SN-1和SN-2中同时存储关联于虚拟机VM-1的数据。因而,在已经完成向一个存储节点传输被缓存的数据之后,还可以向另一存储节点同步所缓存的数据。以此方式,当存储节点SN-1出现故障时,可以由存储节点SN-2来继续为虚拟机VM-1服务。
具体地,假设已经从管理程序节点向存储节点SN-1传输了与对虚拟机VM-1的写操作相关联的数据,从存储节点SN-1向存储节点SN-2同步相关联的数据,以便提供更高的可靠性。
应当注意,本发明的实施方式并不限定是否将一个存储节点中的与一个虚拟机相关联的全部数据同步至另一存储节点,而是可以选择性地仅将一部分数据同步至另一存储节点;或者还可以将一部分数据同步至一个存储节点,而将另一部分数据同步至其他的存储节点。在上文的具体示例中,假设虚拟机VM-1具有5GB的存储空间,并且存储节点SN-1为虚拟机VM-1提供5GB的物理存储。在同步操作期间,可以选择将虚拟机VM-1的2GB数据同步至存储节点SN-2,而将虚拟机VM-1的另外3GB数据同步至存储节点SN-M。
图7示意性示出了根据本发明一个实施方式的存储节点的示意图700。如图7所示的存储节点可以提供两级安全机制。首先,可以设置多个管理员节点(例如存储节点1710和存储节点2720),并且在任何时刻仅保证一个存储节点为激活的管理员节点(存储节点1710)。以此方式,可以确保在当前管理员节点出现故障时,可以从其他未激活的管理员节点中选择合适的节点,充当管理员节点的功能。另一方面,通过在存储节点之间进行同步,可以在多个存储节点处保存关于相同虚拟机的数据,以便提供更加可靠的数据存储。
在本发明的一个实施方式中,进一步包括:在向分布式虚拟环境中的另一存储节点同步缓存的数据之后,基于另一存储节点的配置来更新第一地址表和第二地址表。
应当注意,由于上文所述的同步过程将会改变虚拟机与存储节点之间的映射关系,因而在同步过程之后还需要相应地调整第一地址表和第二地址表。对于第一地址表而言,需要向第一地址表中加入在同步后向虚拟机提供物理存储的存储节点,例如,向如上文表1所示的第一地址表中插入“4,VM-1,SN-2”的条目,表示存储节点SN-2也向虚拟机VM-1提供物理存储。另外,还需要按照数据块的地址变化,相应地调整第二地址表。
前面已经参考附图描述了实现本发明的方法的各个实施方式。本领域技术人员可以理解的是,上述方法既可以以软件方式实现,也可以以硬件方式实现,或者通过软件与硬件相结合的方式实现。并且,本领域技术人员可以理解,通过以软件、硬件或者软硬件相结合的方式实现上述方法中的各个步骤,可以提供一种基于相同发明构思的一种设备。即使该设备在硬件结构上与通用处理设备相同,由于其中所包含的软件的作用,使得该设备表现出区别于通用处理设备的特性,从而形成本发明的各个实施方式的设备。本发明中所述设备包括若干装置或模块,所述装置或模块被配置为执行相应步骤。本领域的所述技术人员通过阅读本说明书可以理解如何编写程序实现所述装置或模块执行的动作。由于所述设备与方法基于相同的发明构思,因此其中相同或相应的实现细节同样适用于与上述方法对应的装置或模块,由于其在上文中已经进行了详细和完整的描述,因此在下文中可能不再进行赘述。
图8示意性示出了根据本发明一个实施方式的用于在分布式虚拟环境中管理数据存储的装置的框图800。具体地,提供了一种用于在分布式虚拟环境中管理数据存储的装置,包括:接收模块810,配置用于接收来自用户的对分布式虚拟环境中的虚拟机的写访问请求,虚拟机运行于分布式虚拟环境中的管理程序节点处;缓存模块820,配置用于在管理程序节点处缓存与写访问请求相关联的数据;通知模块830,配置用于向用户通知写访问请求完成;以及传输模块840,配置用于向分布式虚拟环境中的存储节点传输缓存的数据,存储节点向虚拟机提供物理存储。
在本发明的一个实施方式中,传输模840块包括:批处理模块,配置用于在批处理操作中,向存储节点传输在管理程序节点处缓存的、与多个写访问请求相关联的数据。
在本发明的一个实施方式中,传输模块840包括:记录模块,配置用于记录缓存的数据与执行写访问请求之前的相应数据之间的差异;以及差异传输模块,配置用于向存储节点传输差异。
在本发明的一个实施方式中,传输模块840包括:获取模块,配置用于获取与缓存的数据相对应的存储数据在存储节点中的物理地址;以及写入模块,配置用于向存储节点中的物理地址处写入缓存的数据。
在本发明的一个实施方式中,获取模块包括:查询模块,配置用于查询第一地址表以获取向虚拟机提供物理存储的存储节点的第一地址,查询第二地址表以获取存储节点中的数据块的第二地址,以及获取缓存的数据在管理程序节点中的偏移地址;以及组合模块,配置用于组合第一地址、第二地址和偏移地址以形成物理地址。
在本发明的一个实施方式中,进一步包括:同步模块,配置用于在向分布式虚拟环境中的存储节点传输缓存的数据之后,向分布式虚拟环境中的另一存储节点同步缓存的数据。
在本发明的一个实施方式中,进一步包括:更新模块,配置用于在向分布式虚拟环境中的另一存储节点同步缓存的数据之后,基于另一存储节点的配置来更新第一地址表和第二地址表。
在本发明的一个实施方式中,进一步包括:选举模块,配置用于从虚拟环境中的多个存储节点中选举管理员节点,以用于在管理员节点存储第一地址表。
采用本发明所述的方法和装置,可以在尽可能少地改动现有分布式虚拟环境中数据存储的硬件配置的情况下,提供更大容量的数据存储并且确保用户能够以高效方式访问这些数据存储。
附图中的流程图和框图显示了根据本发明的多个实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。

Claims (16)

1.一种用于在分布式虚拟环境中管理数据存储的方法,包括:
接收来自用户的对所述分布式虚拟环境中的虚拟机的写访问请求,所述虚拟机运行于所述分布式虚拟环境中的管理程序节点处;
在所述管理程序节点处缓存与所述写访问请求相关联的数据;
向所述用户通知所述写访问请求完成;以及
向所述分布式虚拟环境中的存储节点传输缓存的所述数据,所述存储节点向所述虚拟机提供物理存储。
2.根据权利要求1所述的方法,其中所述向所述分布式虚拟环境中的所述存储节点传输缓存的所述数据包括:
在批处理操作中,向所述存储节点传输在所述管理程序节点处缓存的、与多个写访问请求相关联的数据。
3.根据权利要求1所述的方法,其中所述向所述分布式虚拟环境中的所述存储节点传输缓存的所述数据包括:
记录缓存的所述数据与执行所述写访问请求之前的相应数据之间的差异;以及
向所述存储节点传输所述差异。
4.根据权利要求1-3中任一项所述的方法,其中所述向所述分布式虚拟环境中的所述存储节点传输缓存的所述数据包括:
获取与缓存的所述数据相对应的存储数据在所述存储节点中的物理地址;以及
向所述存储节点中的所述物理地址处写入缓存的所述数据。
5.根据权利要求4所述的方法,其中所述获取与缓存的所述数据相对应的存储数据在所述存储节点中的所述物理地址包括:
查询第一地址表以获取向所述虚拟机提供物理存储的所述存储节点的第一地址,查询第二地址表以获取所述存储节点中的数据块的第二地址,获取缓存的所述数据在所述管理程序节点中的偏移地址;以及
组合所述第一地址、所述第二地址和所述偏移地址以形成所述物理地址。
6.根据权利要求1-3中任一项所述的方法,进一步包括:
在向所述分布式虚拟环境中的存储节点传输缓存的所述数据之后,向所述分布式虚拟环境中的另一存储节点同步缓存的所述数据。
7.根据权利要求6所述的方法,进一步包括:
在向所述分布式虚拟环境中的另一存储节点同步缓存的所述数据之后,基于所述另一存储节点的配置来更新所述第一地址表和所述第二地址表。
8.根据权利要求5所述的方法,进一步包括:
从所述虚拟环境中的多个存储节点中选举管理员节点,以用于在所述管理员节点存储所述第一地址表。
9.一种用于在分布式虚拟环境中管理数据存储的装置,包括:
接收模块,配置用于接收来自用户的对所述分布式虚拟环境中的虚拟机的写访问请求,所述虚拟机运行于所述分布式虚拟环境中的管理程序节点处;
缓存模块,配置用于在所述管理程序节点处缓存与所述写访问请求相关联的数据;
通知模块,配置用于向所述用户通知所述写访问请求完成;以及
传输模块,配置用于向所述分布式虚拟环境中的存储节点传输缓存的所述数据,所述存储节点向所述虚拟机提供物理存储。
10.根据权利要求9所述的装置,其中所述传输模块包括:
批处理模块,配置用于在批处理操作中,向所述存储节点传输在所述管理程序节点处缓存的、与多个写访问请求相关联的数据。
11.根据权利要求9所述的装置,其中所述传输模块包括:
记录模块,配置用于记录缓存的所述数据与执行所述写访问请求之前的相应数据之间的差异;以及
差异传输模块,配置用于向所述存储节点传输所述差异。
12.根据权利要求9-11中任一项所述的装置,其中所述传输模块包括:
获取模块,配置用于获取与缓存的所述数据相对应的存储数据在所述存储节点中的物理地址;以及
写入模块,配置用于向所述存储节点中的所述物理地址处写入缓存的所述数据。
13.根据权利要求12所述的装置,其中所述获取模块包括:
查询模块,配置用于查询第一地址表以获取向所述虚拟机提供物理存储的所述存储节点的第一地址,查询第二地址表以获取所述存储节点中的数据块的第二地址,以及获取缓存的所述数据在所述管理程序节点中的偏移地址;以及
组合模块,配置用于组合所述第一地址、所述第二地址和所述偏移地址以形成所述物理地址。
14.根据权利要求9-11中任一项所述的装置,进一步包括:
同步模块,配置用于在向所述分布式虚拟环境中的存储节点传输缓存的所述数据之后,向所述分布式虚拟环境中的另一存储节点同步缓存的所述数据。
15.根据权利要求14所述的装置,进一步包括:
更新模块,配置用于在向所述分布式虚拟环境中的另一存储节点同步缓存的所述数据之后,基于所述另一存储节点的配置来更新所述第一地址表和所述第二地址表。
16.根据权利要求13所述的装置,进一步包括:
选举模块,配置用于从所述虚拟环境中的多个存储节点中选举管理员节点,以用于在所述管理员节点存储所述第一地址表。
CN201410112080.XA 2014-03-24 2014-03-24 用于在分布式虚拟环境中管理数据存储的方法和装置 Pending CN104951238A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410112080.XA CN104951238A (zh) 2014-03-24 2014-03-24 用于在分布式虚拟环境中管理数据存储的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410112080.XA CN104951238A (zh) 2014-03-24 2014-03-24 用于在分布式虚拟环境中管理数据存储的方法和装置

Publications (1)

Publication Number Publication Date
CN104951238A true CN104951238A (zh) 2015-09-30

Family

ID=54165920

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410112080.XA Pending CN104951238A (zh) 2014-03-24 2014-03-24 用于在分布式虚拟环境中管理数据存储的方法和装置

Country Status (1)

Country Link
CN (1) CN104951238A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108126A (zh) * 2017-12-15 2018-06-01 北京奇艺世纪科技有限公司 一种数据处理方法、装置及设备
CN108984558A (zh) * 2017-06-01 2018-12-11 华为技术有限公司 一种用户设备数据通信方法及设备
CN109656467A (zh) * 2017-10-11 2019-04-19 阿里巴巴集团控股有限公司 云网络的数据传输系统、数据交互方法、装置及电子设备
CN109753226A (zh) * 2017-11-07 2019-05-14 阿里巴巴集团控股有限公司 数据处理系统、方法及电子设备
WO2023030256A1 (zh) * 2021-08-31 2023-03-09 华为技术有限公司 处理i/o请求的方法、装置、系统、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101385017A (zh) * 2005-08-15 2009-03-11 微软公司 部分项改变跟踪和同步
CN101419535A (zh) * 2008-11-19 2009-04-29 北京航空航天大学 虚拟机的分布式虚拟磁盘系统
US8479211B1 (en) * 2010-06-29 2013-07-02 Amazon Technologies, Inc. Dynamic resource commitment management
CN103605630A (zh) * 2013-11-28 2014-02-26 中标软件有限公司 一种虚拟服务器系统及其数据读写方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101385017A (zh) * 2005-08-15 2009-03-11 微软公司 部分项改变跟踪和同步
CN101419535A (zh) * 2008-11-19 2009-04-29 北京航空航天大学 虚拟机的分布式虚拟磁盘系统
US8479211B1 (en) * 2010-06-29 2013-07-02 Amazon Technologies, Inc. Dynamic resource commitment management
CN103605630A (zh) * 2013-11-28 2014-02-26 中标软件有限公司 一种虚拟服务器系统及其数据读写方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984558A (zh) * 2017-06-01 2018-12-11 华为技术有限公司 一种用户设备数据通信方法及设备
CN109656467A (zh) * 2017-10-11 2019-04-19 阿里巴巴集团控股有限公司 云网络的数据传输系统、数据交互方法、装置及电子设备
CN109656467B (zh) * 2017-10-11 2021-12-03 阿里巴巴集团控股有限公司 云网络的数据传输系统、数据交互方法、装置及电子设备
CN109753226A (zh) * 2017-11-07 2019-05-14 阿里巴巴集团控股有限公司 数据处理系统、方法及电子设备
CN108108126A (zh) * 2017-12-15 2018-06-01 北京奇艺世纪科技有限公司 一种数据处理方法、装置及设备
CN108108126B (zh) * 2017-12-15 2021-05-28 北京奇艺世纪科技有限公司 一种数据处理方法、装置及设备
WO2023030256A1 (zh) * 2021-08-31 2023-03-09 华为技术有限公司 处理i/o请求的方法、装置、系统、设备及存储介质

Similar Documents

Publication Publication Date Title
CN103916455B (zh) 用于数据复制的方法和系统
CN104052789B (zh) 用于虚拟联网系统的负载平衡的方法和系统
CN103118053B (zh) 在网络计算环境中构建数据安全性的方法和系统
CN103226518B (zh) 一种在存储管理系统中进行卷扩展的方法和装置
CN105530273A (zh) 用于数据迁移的方法和装置
CN103365725B (zh) 在多个云之间动态分配工作负荷部署单元的方法和系统
US8914469B2 (en) Negotiating agreements within a cloud computing environment
CN104424013A (zh) 在计算环境中部署虚拟机的方法和设备
CN103299274B (zh) 确定运行图像的最佳计算环境的系统和方法
CN101657804B (zh) 可扩展和可编程多承租人服务体系结构
CN104660669A (zh) 针对应用模式组件从多个主机选择一个主机的方法和系统
CN103366135B (zh) 在存储云中由租户驱动的安全系统与方法
CN103973741A (zh) 用于在云系统中进行远程调试的方法和装置
CN104603762B (zh) 利用并行文件访问协议的自动校准以及元数据管理支持对文件系统的共享存储的协调访问的方法及系统
CN104067265A (zh) 用于支持在云中的安全应用部署的系统和方法
CN104765620A (zh) 一种程序模块部署的方法和系统
US10129357B2 (en) Managing data storage in distributed virtual environment
CN105446793A (zh) 迁移虚拟资产的方法和设备
CN104601622A (zh) 一种部署集群的方法和系统
CN103718164A (zh) 虚拟计算机和服务
CN103853596A (zh) 公共相邻存储区域优化长距离虚拟机迁移方法和系统
CN103856480A (zh) 虚拟机迁移中的用户数据报协议分组迁移
CN103368767A (zh) 用于具有故障的云中的高效应用管理的方法和系统
CN104731658A (zh) 供应和合并共享资源以最大化资源可用性的方法和系统
CN104516730A (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150930

WD01 Invention patent application deemed withdrawn after publication