CN105308553B - 动态提供存储 - Google Patents

动态提供存储 Download PDF

Info

Publication number
CN105308553B
CN105308553B CN201480029506.3A CN201480029506A CN105308553B CN 105308553 B CN105308553 B CN 105308553B CN 201480029506 A CN201480029506 A CN 201480029506A CN 105308553 B CN105308553 B CN 105308553B
Authority
CN
China
Prior art keywords
storage
main frame
virtual memory
virtual machine
alarm
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
CN201480029506.3A
Other languages
English (en)
Other versions
CN105308553A (zh
Inventor
K·Y·斯里尼瓦杉
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105308553A publication Critical patent/CN105308553A/zh
Application granted granted Critical
Publication of CN105308553B publication Critical patent/CN105308553B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/0608Saving storage space on storage systems
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Abstract

描述了用于在云计算环境中提供存储的“正好”反馈驱动策略。在访客虚拟机中运行的代理可以监控访客虚拟机的存储需求。当达到访客虚拟机的指定阈值时,主机可以被通知改变存储的需求。主机可以通过重新改变存储设备的大小并且向访客虚拟机通知改变了的存储容量来进行响应。

Description

动态提供存储
技术领域
本申请涉及数据存储,具体而言涉及利用云计算环境动态提供存储的技术。
背景技术
云计算是用来指使用网络来访问由用户以外的其他人所提供的远程计算资源的术语。所提供的计算资源包括硬件、软件、或两者的组合。一般而言,会使用按使用付费模型对所访问的服务向用户收费。最经常用来访问远程计算资源的网络是互联网。基于云的服务可以使用web浏览器或轻量桌面或移动应用来访问。云计算与不止一个用户共享单个物理计算机的资源。例如,“在云中”的服务器可以将几个或许多客户的数据存储于同一物理计算机上。
云一般包括对用户来说像单个计算机的多个物理计算机。云的计算机一般被虚拟化(使其成为虚拟机)以便使资源使用率最大化。单个虚拟化计算机可以对用户来说像多个物理计算机。虚拟机在多个不同的虚拟计算环境之间共享单个物理计算机的资源。
发明内容
描述了用于在虚拟机上提供虚拟存储的“正好”或按需反馈驱动策略。策略可以被实现于云计算环境中。访客虚拟机(VM)上运行的代理可以监控访客VM对存储的使用。当达到存储利用的指定阈值时,可以通知主机。主机可以在访客VM的进程正在执行的同时,通过改变虚拟存储设备的大小(改变其大小或容量)进行响应,而不中断访客VM上的执行。主机可以向访客VM通知:虚拟存储设备的存储容量已改变。
根据本发明的一个实施例,提供了一种动态提供存储的系统,包括:
计算设备的至少一个处理器;
所述计算设备的存储器;
被分配给主机上运行的至少一个访客虚拟机的存储容量,所述至少一个访客虚拟机执行至少一个进程;
被加载到所述存储器中的至少一个模块,所述至少一个模块使所述至少一个处理器执行下述操作:
由所述主机经由私有信道从所述主机上运行的至少一个访客虚拟机接收到存储警报,
在至少一个访客进程正在执行的同时而不中断该至少一个访客进程的执行的情况下,响应于确定所述存储警报中指定的虚拟存储设备的当前大小与所述主机分配给所述至少一个访客虚拟机的虚拟存储设备的大小匹配,重新改变被分配给所述至少一个访客虚拟机的所述虚拟存储设备的大小;
其中,响应于接收到对同一虚拟存储设备的一个或多个存储警报,所述主机顺序地处理对于所述同一虚拟存储设备的所述存储警报;
其中如果响应于所述存储警报之一对所述虚拟存储设备的重新改变大小满足所述一个或多个存储警报的至少一个另外的存储警报,所述主机就丢弃所述一个或多个存储警报中的所述至少一个另外的存储警报。
根据本发明的另一个实施例,提供了6.一种动态提供存储的方法,包括:
监控被分配给在主机上执行至少一个进程的访客虚拟机的虚拟存储设备的使用;
响应于检测到所述虚拟存储设备的阈值利用,经由所述访客虚拟机和所述主机之间的私有信道向所述主机发送存储警报;
在至少一个访客进程正在执行的同时而不中断该至少一个访客进程的执行的情况下,响应于所述访客虚拟机从所述主机接收到重新改变大小通知,由所述访客虚拟机重新检测所述虚拟存储设备的存储容量;
其中,响应于接收到对同一虚拟存储设备的一个或多个存储警报,所述主机顺序地处理对于所述同一虚拟存储设备的所述存储警报;
其中,如果响应于所述存储警报之一对所述虚拟存储设备的重新改变大小满足所述一个或多个存储警报的至少一个另外的存储警报,所述主机就丢弃所述一个或多个存储警报中的所述至少一个另外的存储警报。
根据本发明的又一个实施例,提供了一种动态提供存储的方法,包括:
监控被分配给在主机计算机上执行至少一个进程的访客虚拟机的虚拟存储设备的使用;
响应于检测到所述虚拟存储设备的阈值利用,经由所述访客虚拟机和所述主机之间的私有信道向所述主机计算机上执行的主机发送存储警报;
由所述主机经由私有信道从所述主机上运行的至少一个访客虚拟机接收存储警报,
在至少一个进程正在执行的同时而不中断该至少一个进程的执行的情况下,响应于确定所述存储警报中指定的虚拟存储设备的当前大小与所述主机分配给所述至少一个访客虚拟机的虚拟存储设备的大小匹配,重新改变被分配给所述至少一个访客虚拟机的虚拟存储设备的大小;以及
将通知从所述主机发送至所述访客虚拟机,所述通知指示重新改变大小的操作;
其中,响应于接收到对同一虚拟存储设备的一个或多个存储警报,所述主机顺序地处理对于所述同一虚拟存储设备的所述存储警报;
其中如果响应于所述存储警报之一对所述虚拟存储设备的重新改变大小满足所述一个或多个存储警报的至少一个另外的存储警报,所述主机就丢弃所述一个或多个存储警报中的所述至少一个另外的存储警报。
根据本发明的又一个实施例,提供了一种动态提供存储的系统,包括:
用于监控被分配给在主机计算机上执行至少一个进程的访客虚拟机的虚拟存储设备的使用的装置;
用于响应于检测到所述虚拟存储设备的阈值利用,经由所述访客虚拟机和所述主机之间的私有信道向所述主机计算机上执行的主机发送存储警报的装置;
用于由所述主机经由私有信道从所述主机上运行的至少一个访客虚拟机接收存储警报的装置,
用于在至少一个进程正在执行的同时而不中断该至少一个进程的执行的情况下,响应于确定所述存储警报中指定的虚拟存储设备的当前大小与所述主机分配给所述至少一个访客虚拟机的虚拟存储设备的大小匹配,重新改变被分配给所述至少一个访客虚拟机的虚拟存储设备的大小的装置;以及
用于将通知从所述主机发送至所述访客虚拟机的装置,所述通知指示重新改变大小的操作;
其中,响应于接收到对同一虚拟存储设备的一个或多个存储警报,所述主机顺序地处理对于所述同一虚拟存储设备的所述存储警报;
其中如果响应于所述存储警报之一对所述虚拟存储设备的重新改变大小满足所述一个或多个存储警报的至少一个另外的存储警报,所述主机就丢弃所述一个或多个存储警报中的所述至少一个另外的存储警报。
根据本发明的又一个实施例,提供了一种具有指令的计算机可读存储介质,当所述指令被执行时使得机器执行如上所述的方法。
根据本发明的一个实施例,提供了一种计算机系统,包括用于执行如上所述的方法的装置。
提供该概述以便以简化形式介绍概念的选集,所述概念在以下详细描述中被进一步描述。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
附图说明
附图中:
图1a解说了虚拟机100的示例;
图1b解说了云计算环境109的示例;
图1c解说了按照此处公开的主题的各方面的系统118的示例,系统118动态地提供存储;
图2解说了按照此处公开的主题的各方面的方法200的示例,方法200动态地提供存储;
图3是按照此处公开的主题的各方面的计算环境的示例的框图。
具体实施方式
概览
动态存储管理是指在不中断用户程序的执行的情况下、在用户的程序正在执行时、基于用户的需求自动地(即,无人工干预而编程地)增加或减少对用户可用的存储量的能力。描述了用于提供虚拟存储的“正好”反馈驱动策略,其中当访客进程在主机上运行时,被提供给访客VM的虚拟存储的量适合于该访客VM的需求。按照此处描述的主题的各方面,访客VM上运行的代理可以监控一个或多个正在执行的访客进程的存储需求。当达到访客VM的指定的存储利用阈值时,可以通知主机。主机可以通过改变虚拟存储设备的大小并且向访客VM通知对该访客VM的存储分配已改变,来进行响应。
访客VM上的存储监控代理可以定期地监控访客VM的存储利用。存储监控代理可以在例如虚拟存储设备上的自由空间落到特定阈值以下时生成警报。类似地,代理可以在例如自由空间超过指定虚拟存储设备上的特定阈值时生成警报。当生成警报时,代理可以向主机发送警报信息。警报信息可以至少包括:唯一地标识虚拟存储设备的诸如GUID(全局唯一标识符)这样的标识符;由访客VM所检测到的虚拟存储设备的当前大小;以及(由访客VM所检测到的)虚拟存储设备的当前利用。其他信息也可被包括于警报中。
主机和访客VM之间的通信信道可以是私有通信信道。例如,存储警报可以使用私有通信信道被发送至主机VM。在一些平台中,主机和访客VM之间的私有通信信道可以基于键值对(KVP)。KVP也称为名称-值对、键-值对、字段-值对或属性-值对,KVP是指包括一组键标识符和一组相关联的值的机制。键值对被表示为多个元组的集合,其中每个元组是一个键及其值。在包括、但不限于微软公司平台在内的一些平台中,用于在主机以及在主机计算机上运行的访客VM之间交换数据的私有信道可以通过交换键值元组来实现。
访客VM所使用的虚拟存储设备可以是在托管于同一物理节点上的多个协同操作的虚拟机之间共享的设备。在网络中,物理节点是附接于所述网络的有源电子设备,所述有源电子设备能够通过通信信道发送、接收或转发信息。节点可以是包括、但不限于桥、交换机或主机计算机的计算节点,主机计算机包括、但不限于路由器、工作站或服务器。如果共享虚拟存储设备的多个访客VM托管于网络中的同一节点上,则主机可以接收到对于同一虚拟存储设备的多个存储警报。
响应于接收到对于同一虚拟存储设备的不止一个的存储警报,主机可以顺序地处理这些警报(一次一个)。顺序地处理多个警报可以使主机能丢弃关于同一虚拟存储设备的多个访客VM的警报,因为例如解决这些警报之一就可以满足共享该存储设备的所有VM的需求。如果多个访客VM发送对同一虚拟存储设备的警报,则通过例如扩展用于发送第一警报的访客VM的存储设备来重新改变存储设备的大小也扩展了用于发送对该设备的警报的其他访客VM的存储设备。响应于确定主机所确定的存储设备的当前大小与存储警报中指定的虚拟存储设备的当前大小不匹配,主机能够由于虚拟存储设备已被扩展而丢弃该警报。响应于虚拟存储设备的当前大小与存储警报中指定的当前大小匹配,虚拟存储设备可以基于存储提供策略来改变大小。发送存储警报的访客VM可以被通知重新改变大小操作的结果。共享重新改变大小的虚拟存储设备的其他访客VM也可以被通知重新改变大小操作的结果。
在一些平台中,当诸如虚拟存储设备这样的设备的特性变化时,可以通知当前对该虚拟存储设备有访问的所有访客VM。响应于来自主机的通知,一个或多个访客VM可以重新扫描将访客VM连至存储设备的总线,以重新发现或重新检测虚拟存储设备以接收该虚拟存储设备的新特性。访客VM可能需要向访客VM上运行的文件系统通知所述新存储特性,因为文件系统可能必须重构数据结构等以便能正确地利用重新改变大小的存储空间。
类似地,如果所分配的存储空间利用不足,则一个或多个访客VM可以发送对虚拟存储设备的利用不足存储警报。响应于此,可以通过减小用于访客VM的虚拟存储设备的大小来重新改变存储设备的大小。
动态地提供存储
图1a解说了虚拟机100的示例。诸如虚拟机100这样的虚拟机(VM)是计算环境的软件实现,在所述计算环境中,可以安装和运行一个或多个访客操作系统(OS)以创建访客VM,所述访客VM诸如访客VM 102、访客VM 103和/或访客VM 104等。虚拟机用于创建虚拟环境,所述虚拟环境一般在称为“虚拟化”的进程中模拟物理计算环境。来自访客VM的对诸如CPU(中央处理单元)时间、存储器、存储、网络等硬件资源及其他资源(总称为主机硬件107)的请求由虚拟化软件来管理,所述虚拟化软件在图1a中被描述为虚拟化层106。虚拟化层将访客请求转换为底层主机硬件。虚拟化层106可以包括管理程序或虚拟化平台。
用于访客进程的虚拟机一般在客户机或服务器OS的顶部运行的虚拟化层内创建。主机OS在图1a中由主机操作系统108示出。虚拟化层可以创建一个或多个个别的、隔离的VM环境(诸如例如,访客VM 102、访客VM 103、访客VM 104等)。一些类型的虚拟化允许用户同时在同一计算机上运行多个操作系统。VM也可用于单个程序,允许一个应用以隔离方式运行。可以通过虚拟化设置多个计算机用作一个计算机,允许虚拟化的系统利用比以其他方式可用的资源可能更多的资源。
图1b解说了云计算环境的示例。云计算环境是其中多个计算服务不被请求者拥有但却使用网络按需提供的计算环境。在图1b中,诸如系统109这样的云计算系统可以包括一个或多个主机计算机,诸如主机1 110、主机2 111、主机3 112等。主机1 110、主机2 111、主机3 112等可以是虚拟机。系统109也可以包括其他非虚拟化的计算机(未示出)。诸如请求方计算机1 114、请求方计算机2 115等计算机可以经由网络116请求来自一个或多个主机计算机的服务。请求方计算机1 114、请求方计算机2 115等可以是虚拟机或者非虚拟化的机器。网络116可以是互联网或任何种类的网络。
图1c解说了按照此处公开的主题的各方面的系统118,系统118动态地提供存储。如此处使用的,“动态提供存储”意指向用户提供或配备诸如但不限于虚拟存储这样的存储,而没有为了提供附加存储而终止或停止(诸)用户进程。系统118的全部或多个部分可以包括诸如如下参照图3所述的计算机这样的一个或多个计算机。系统118的全部或多个部分可以包括诸如如上参照图1a所述的虚拟机这样的一个或多个虚拟机。
系统118可以包括诸如计算设备120这样的一个或多个计算机或计算设备。计算设备120可以是任何类型的静止或移动计算设备,包括:台式计算机(例如,个人计算机等)、移动计算机或计算设备(例如,设备、RIM设备、个人数字助理(PDA)、膝上型计算机、笔记本计算机、平板电脑(例如,苹果公司IPADTM)、上网本等等)、移动电话(例如,蜂窝电话、诸如苹果公司iPhone这样的智能电话、GoogleANDROIDTM电话、微软公司电话等)、或者其他类型的移动设备。系统118或其多个部分可以包括自服务(例如,在云中)获得的信息以及/或者可以在云计算环境中操作。云计算环境可以是其中计算服务不被拥有但被按需提供的环境。例如,信息可以驻留在联网云中的多个设备上,以及/或者数据可以被存储于云内的多个设备上。
诸如计算设备120这样的计算机可以包括:诸如处理器142等一个或多个处理器、诸如存储器144这样的存储器、以及用于动态提供存储的一个或多个程序模块。可以理解,可以将一个或多个程序模块加载到存储器144中以使诸如处理器142等一个或多个处理器执行属于动态提供存储的一个或多个模块的动作,所述一个或多个程序模块例如但不限于:诸如如此处所述动态提供存储的(诸)程序模块129这样的程序模块。
计算设备120可以是如上参照图1a所述的虚拟化计算机或虚拟机。计算设备120可以是非虚拟化的计算机。计算设备120可以包括主机。其上驻留有主机的计算机可以是主机计算机。服务可以包括存储的使用(例如,盘存储)。为服务提供的存储容量可以是在盘上提供的存储空间。为服务提供的存储容量可以是在物理盘上,或者可以是在诸如虚拟存储设备123这样的虚拟存储设备上提供的存储空间。对服务的请求可由计算机130发送,并且可由计算设备120经由网络(未示出)接收到。响应于此,计算设备120(主机计算机)可以设置执行环境,所述执行环境被实现为用于访客操作系统(诸如访客VM 126)对主机计算机上所请求的服务的虚拟机。访客计算机的执行环境可以被分配虚拟存储设备上的指定的或以其他方式已知的存储空间量,所述虚拟存储设备诸如虚拟存储设备123。
诸如访客进程140这样的一个或多个访客进程可以开始在访客VM 126中的主机计算机上执行。访客进程140可由存储监控代理定期监控,所述存储监控代理诸如与访客VM126这样的访客VM相关联的存储监视器128。当存储监视器128检测到访客VM 126已达到虚拟存储设备123上的指定的可用存储空间阈值时,存储监视器128可以通知主机132。例如,当自由空间落到虚拟存储设备123上的特定阈值以下时,存储监视器128可以生成警报。当生成警报时,存储监视器128可以向主机132发送警报信息。警报信息可以至少包括:唯一地标识诸如虚拟存储设备123这样的存储设备的诸如GUID(全局唯一标识符)这样的标识符;由访客VM所检测到的存储设备的当前大小;以及(由访客VM所检测到的)虚拟存储设备的当前利用。其他信息也可被包括于存储警报中,诸如但不限于发送消息的访客VM的标识符。
存储警报可以使用诸如通信信道146这样的私有通信信道被发送至主机132。在一些平台中,主机132和访客VM 126之间的私有通信信道146可以基于键值对(KVP)。KVP也称为名称-值对、键-值对、字段-值对或属性-值对,KVP是指包括一组键标识符和一组相关值的机制。键-值对被表示为多个元组的集合,其中每个元组是一个键及其值。在诸如但不限于微软公司平台的一些平台中,用于在主机以及在主机上运行的访客VM之间交换数据的私有信道可以通过交换键-值元组来实现。
访客VM 126所使用的虚拟存储设备123可以是诸如在托管于同一物理节点上的多个协同操作的虚拟机之间共享的盘或虚拟盘之类的设备。例如,虚拟存储设备123可由访客VM 126和访客VM 127等共享。在网络中,物理节点是附接于所述网络的有源电子设备,所述有源电子设备能够通过通信信道发送、接收或转发信息。节点可以是包括但不限于桥、交换机或主机计算机的计算节点,主机计算机包括但不限于路由器、工作站或服务器。如果共享存储设备的多个虚拟机托管于网络中的同一节点上,则主机可以接收到对于同一存储设备的多个存储相关警报。
响应于接收到对于同一存储设备的一个或多个存储警报,主机可以顺序地处理这些警报,即一次一个。顺序地处理多个警报可以使主机能丢弃关于同一虚拟存储设备的一个或多个访客VM的警报,因为例如解决这些警报之一就可以满足共享该虚拟存储设备的其他访客VM的需求。例如,通过扩展用于发送第一警报的VM的虚拟存储设备来重新改变虚拟存储设备的大小也扩展了用于发送对该虚拟存储设备的警报的其他VM的虚拟存储设备。为了确定警报是否已被解决,存储设备的当前大小可以与警报中所报告的虚拟存储设备的大小相比较。响应于确定存储设备的当前大小与警报消息中指定的当前大小不匹配,主机VM可以丢弃该警报。响应于确定存储设备的当前大小与存储警报中指定的当前大小匹配,虚拟存储设备可以基于存储提供策略在访客VM进程正在执行的同时被重新改变大小。访客VM可以被通知重新改变大小操作的结果。
响应于接收到来自主机的通知,访客可以重新扫描将访客VM连至虚拟存储设备123的总线以发现或检测虚拟存储设备的新特性。在一些平台中,当设备的特性变化时,访客VM可以重新发现或重新检测该设备并且接收存储设备的新特性。访客VM可能需要使其文件系统用新存储空间分配来重构数据结构以便能够利用经重新改变大小的存储空间。
图2解说了用于动态提供存储的方法200。图2中所述的方法可由一系统实现,所述系统诸如但不限于参照图1c描述的系统。尽管方法200描述了按序执行的一系列操作,但是应当理解,方法200不限于按照所述顺序。例如,一些操作可以以不同于所述次序的次序发生。此外,一个操作可以与另一个操作同时发生。在一些实例中,并非所有描述的操作都被执行。
主机可以从另一计算机接收到对服务的请求。发送该请求的计算机可以是VM,但不必须是VM。请求可以经由网络被发送,所述网络诸如但不限于:LAN、WAN或互联网。主机可以设置访客VM来提供所请求的服务(例如,为请求方计算机运行所请求的应用)。所请求的服务可以与存储需求相关联。主机可以为访客VM设置虚拟存储设备。虚拟存储设备可以是用于访客VM进程的物理存储设备(例如,盘、等等)的全部或一部分。虚拟存储设备可以与在同一网络节点上运行的其他访客VM共享。访客VM中的一个或多个访客进程可以开始执行。
在操作202,访客VM上运行的或者与访客VM相关联的代理可以监控访客VM的存储需求。存储监控代理可以设有一个或多个阈值。一个或多个阈值可以指定利用上限阈值,在达到所述利用上限阈值时,触发警报以发送至主机,所述警报可以导致重新改变虚拟存储设备的大小以增加被提供给访客VM的存储量。一个或多个阈值可以指定利用下限阈值,在达到所述利用下限阈值时,触发存储警报以发送至主机,所述警报可以导致重新改变虚拟存储设备的大小以减少被提供给访客VM的存储量。在操作204,存储监控代理可以定期地确定访客VM对虚拟存储设备的利用。
在操作206,响应于确定指定的阈值已经达到或超过利用上限阈值,可以触发自代理被发送至主机的消息。类似地,在操作206,代理可以在自由空间达到或落在指定虚拟存储设备上的下限阈值以下时生成存储警报。警报信息可以至少包括:唯一地标识存储设备的诸如GUID(全局唯一标识符)这样的标识符;由访客所检测到的存储设备的当前大小;(由访客所检测到的)该存储设备的当前利用。其他信息也可被包括于警报中。警报可以使用私有通信信道被发送至主机。在一些平台中,主机和访客之间的私有通信信道可以基于键值对(KVP)。在208,由达到存储阈值所触发的消息可被主机接收。
在操作210,可以验证消息的有效性。例如,如上所述,可以丢弃接收到的针对同一虚拟存储设备的多个警报中的一个或多个警报。在操作212,存储设备可以被重新改变大小。在操作214,可以向访客VM通知:虚拟存储设备已被重新改变大小。在操作216,访客VM可以接收该消息。在操作218,访客VM可以重新检测存储可用性并且可以向其文件系统通知其存储空间已改变。文件系统可以重构数据结构。方法200是自动化的,不需要人工干预。方法200不终止或中断访客VM上执行的进程。
合适计算环境的示例
为了提供用于此处公开的主题的各种方面的上下文,图3及以下讨论意图提供其中可实现此处公开的主题的各种实施例的合适计算环境510的简要的一般描述。尽管此处公开的主题在由一个或多个计算机或其他计算设备执行的计算机可执行指令(诸如程序模块)的一般上下文中描述,本领域的技术人员将认识到,此处公开的主题的多个部分也可以结合其他程序模块以及/或者硬件和软件的组合来实现。一般而言,程序模块包括执行特定任务或实现特定数据类型的例程、程序、对象、物理人工产物、数据结构等。一般而言,程序模块的功能在各个实施例中可以按需被组合或分布。计算环境510仅仅是合适操作环境的一个示例,且不意图限制此处公开的主题的用途或功能的范围。
参照图3,描述了以计算机512为形式的计算设备。计算机512可以包括至少一个处理单元514、系统存储器516和系统总线518。至少一个处理单元514可以执行被存储于存储器中的指令,所述存储器诸如但不限于系统存储器516。处理单元514可以是各种可用处理器中的任一个。例如,处理单元514可以是图形处理单元(GPU)。指令可以是用于实现由以上讨论的一个或多个组件或模块执行的功能的指令、或者是用于实现上述方法中的一个或多个方法的指令。双微处理器及其他多处理器体系结构也可被用作处理单元514。计算机512可用于支持在显示屏上呈现图形的系统中。在另一示例中,计算设备的至少一部分可被用于包括图形处理单元的系统中。系统存储器516可以包括易失性存储器520和非易失性存储器522。非易失性存储器522可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)或闪存。易失性存储器520可以包括可用作外部高速缓存存储器的随机存取存储器(RAM)。系统总线518将包括系统存储器516在内的系统物理人工产物耦合至处理单元514。系统总线518可以是几种类型中的任一种,包括存储器总线、存储器控制器、外设总线、外部总线或本地总线,并且可以使用各种可用总线体系结构中的任一种。计算机512可以包括可由处理单元514通过系统总线518访问的数据存储。数据存储可以包括用于图形呈现的可执行指令、3D模型、材料、纹理等
计算机512一般包括各种计算机可读介质,诸如易失性和非易失性介质、可移动和不可移动介质。计算机可读介质可以用用于存储信息的任何方法或技术来实现,所述信息诸如计算机可读指令、数据结构、程序模块或其他数据。计算机可读介质包括计算机可读存储介质(也称为计算机存储介质)和通信介质。计算机存储介质包括物理(有形)介质,诸如但不限于:RAM、ROM、EEPROM、闪存或其他存储器技术、CDROM、数字化视频盘(DVD)或其他光盘存储、磁性盒带、磁带、磁盘存储或可存储期望数据并且可由计算机512访问的其他磁性存储设备。通信介质包括诸如但不限于下列的介质:通信信号、已调载波或者任何其他可用于传送期望信息并且可由计算机512访问的无形介质。
将会理解,图3描述了可用作用户和计算机资源之间的中介的软件。该软件可以包括操作系统528,操作系统528可以被存储于盘存储524上并且可以分配计算机512的资源。盘存储524可以是通过诸如接口526等不可移动存储接口连至系统总线518的硬盘驱动器。系统应用530利用操作系统528通过程序模块532和程序数据534对资源的管理,所述程序模块532和程序数据534被或存储于系统存储器516中或存储于盘存储524上。将会理解,计算机可用各种操作系统或多个操作系统的组合来实现。
用户可以通过(诸)输入设备536将命令或信息输入至计算机512中。输入设备536包括但不限于:诸如鼠标这样的指示设备、轨迹球、触笔、触摸垫、键盘、麦克风、语音识别和手势识别系统等等。这些及其他输入设备经由(诸)接口端口538通过系统总线518连接至处理单元514。(诸)接口端口538可以表现为串行端口、并行端口、通用串行总线(USB)等等。(诸)输出设备540可以使用与输入设备相同类型的端口。输出适配器542被设置以说明有一些需要特定适配器的输出设备540,如监视器、扬声器和打印机。输出适配器542包括但不限于在输出设备540和系统总线518之间提供连接的视频卡和声卡。诸如(诸)远程计算机544这样的其他设备和/或系统或设备可以既提供输入能力又提供输出能力。
计算机512可使用至一个或多个远程计算机(诸如(诸)远程计算机544)的逻辑连接在联网环境中操作。远程计算机544可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并且一般包括上面关于计算机512所述的许多或全部元件,尽管图3中仅有存储器存储设备546已经图示。(诸)远程计算机544可经由(诸)通信连接550在逻辑上连接。网络接口548包含诸如局域网(LAN)和广域网(WAN)这样的通信网络,但也可以包括其他网络。(诸)通信连接550是指用于将网络接口548连接至总线518的硬件/软件。(诸)通信连接550可以在计算机512内部或外部并且包括内部和外部技术,诸如调制解调器(电话、电缆、DSL和无线)和ISDN适配器、以太网卡等等。
将会理解,所示的网络连接仅仅是示例,也可以使用在计算机之间建立通信链路的其他手段。本领域的普通技术人员可以理解,计算机512或其他客户机设备可被部署为计算机网络的一部分。据此,此处公开的主题可以关于具有任何数量的存储器或存储单元的任何计算机系统、以及跨任何数量的存储单元或卷的任何数量的应用和进程。此处公开的主题的各方面可应用于具有远程或本地存储的环境,所述环境使服务器计算机和客户机计算机被部署于网络环境中。此处公开的主题的各方面也可应用于具有编程语言功能、解译和执行能力的单机计算设备。
此处描述的各种技术可以结合硬件或软件来实现,或者在合适时用硬件和软件的组合来实现。因此,此处描述的方法和装置或者它们的特定方面或部分可以采取体现于有形介质中的程序代码(即,指令)的形式,所述有形介质诸如软盘、CD-ROM、硬驱、或者任何其他机器可读存储介质,其中在程序代码被加载到机器(诸如计算机)中并由机器执行时,机器成为用于实现此处公开的主题的各方面的装置。如此处使用的,应当采用术语“机器可读存储介质”来排除提供(即,存储和/或发送)任何形式的传播信号的任何机制。在可编程计算机上的程序代码执行的情况下,计算设备将一般包括处理器、可由处理器读取的存储介质(包括易失性和非易失性存储器和/或存储设备)、至少一个输入设备以及至少一个输出设备。一个或多个程序可以例如通过使用数据处理API等来创建和/或实现域专用的编程模型方面,所述一个或多个程序可以用高级的面向过程的或面向对象的编程语言实现以便与计算机系统通信。然而,若需要,(诸)程序可以用汇编语言或机器语言实现。在任一情况下,语言可以是编译的或解译的语言,并且与硬件实现方式组合。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。

Claims (13)

1.一种动态提供存储的系统,包括:
计算设备的至少一个处理器;
所述计算设备的存储器;
被分配给主机上运行的至少一个访客虚拟机的存储容量,所述至少一个访客虚拟机执行至少一个进程;
被加载到所述存储器中的至少一个模块,所述至少一个模块使所述至少一个处理器执行下述操作:
由所述主机经由私有信道从所述主机上运行的至少一个访客虚拟机接收到存储警报,
在至少一个访客进程正在执行的同时而不中断该至少一个访客进程的执行的情况下,响应于确定所述存储警报中指定的虚拟存储设备的当前大小与所述主机分配给所述至少一个访客虚拟机的虚拟存储设备的大小匹配,重新改变被分配给所述至少一个访客虚拟机的所述虚拟存储设备的大小;
其中,响应于接收到对同一虚拟存储设备的一个或多个存储警报,所述主机顺序地处理对于所述同一虚拟存储设备的所述存储警报;
其中如果响应于所述存储警报之一对所述虚拟存储设备的重新改变大小满足所述一个或多个存储警报的至少一个另外的存储警报,所述主机就丢弃所述一个或多个存储警报中的所述至少一个另外的存储警报。
2.如权利要求1所述的系统,其特征在于,所述存储警报包括:
标识被分配给所述至少一个访客虚拟机的所述虚拟存储设备的标识符;
由所述至少一个访客虚拟机所检测的虚拟存储设备的当前大小;以及
被分配给所述至少一个访客虚拟机的所述虚拟存储设备的当前利用。
3.如权利要求1所述的系统,其特征在于,进一步包括:
被加载到所述存储器中的至少一个模块,所述至少一个模块使所述至少一个处理器:
经由所述私有信道将通知从所述主机发送至所述至少一个访客虚拟机,所述通知向所述至少一个访客虚拟机通知所述虚拟存储设备重新改变大小。
4.如权利要求3所述的系统,其特征在于,进一步包括:
被加载到所述存储器中的至少一个模块,所述至少一个模块使所述至少一个处理器执行下述操作:
响应于在所述至少一个访客虚拟机处从所述主机接收到所述通知,重新检测所述虚拟存储设备;以及
重构与所述至少一个访客虚拟机相关联的文件系统。
5.如权利要求1所述的系统,其特征在于,进一步包括:
被加载到所述存储器中的至少一个模块,所述至少一个模块使所述至少一个处理器执行下述操作:
响应于接收到多个存储警报,丢弃其中所述主机所确定的所述虚拟存储设备的当前大小与所述存储警报中指定的所述虚拟存储设备的当前大小不匹配的存储警报。
6.一种动态提供存储的方法,包括:
监控被分配给在主机上执行至少一个进程的访客虚拟机的虚拟存储设备的使用;
响应于检测到所述虚拟存储设备的阈值利用,经由所述访客虚拟机和所述主机之间的私有信道向所述主机发送存储警报;
在至少一个访客进程正在执行的同时而不中断该至少一个访客进程的执行的情况下,响应于所述访客虚拟机从所述主机接收到重新改变大小通知,由所述访客虚拟机重新检测所述虚拟存储设备的存储容量;
其中,响应于接收到对同一虚拟存储设备的一个或多个存储警报,所述主机顺序地处理对于所述同一虚拟存储设备的所述存储警报;
其中,如果响应于所述存储警报之一对所述虚拟存储设备的重新改变大小满足所述一个或多个存储警报的至少一个另外的存储警报,所述主机就丢弃所述一个或多个存储警报中的所述至少一个另外的存储警报。
7.如权利要求6所述的方法,其特征在于,所述私有信道经由键-值对机制实现。
8.如权利要求6所述的方法,其特征在于,进一步包括:
响应于在所述主机处接收到所述存储警报,在所述访客虚拟机的访客进程正在执行的同时而不中断所述访客进程的执行的情况下,重新改变所述虚拟存储设备的大小。
9.如权利要求6所述的方法,其特征在于,进一步包括:
将对重新改变大小的虚拟存储设备的重新改变大小通知发送至多个访客虚拟机,所述重新改变大小的虚拟存储设备被分配给所述多个访客虚拟机。
10.一种动态提供存储的方法,包括:
监控被分配给在主机计算机上执行至少一个进程的访客虚拟机的虚拟存储设备的使用;
响应于检测到所述虚拟存储设备的阈值利用,经由所述访客虚拟机和所述主机之间的私有信道向所述主机计算机上执行的主机发送存储警报;
由所述主机经由私有信道从所述主机上运行的至少一个访客虚拟机接收存储警报,
在至少一个进程正在执行的同时而不中断该至少一个进程的执行的情况下,响应于确定所述存储警报中指定的虚拟存储设备的当前大小与所述主机分配给所述至少一个访客虚拟机的虚拟存储设备的大小匹配,重新改变被分配给所述至少一个访客虚拟机的虚拟存储设备的大小;以及
将通知从所述主机发送至所述访客虚拟机,所述通知指示重新改变大小的操作;
其中,响应于接收到对同一虚拟存储设备的一个或多个存储警报,所述主机顺序地处理对于所述同一虚拟存储设备的所述存储警报;
其中如果响应于所述存储警报之一对所述虚拟存储设备的重新改变大小满足所述一个或多个存储警报的至少一个另外的存储警报,所述主机就丢弃所述一个或多个存储警报中的所述至少一个另外的存储警报。
11.一种动态提供存储的系统,包括:
用于监控被分配给在主机计算机上执行至少一个进程的访客虚拟机的虚拟存储设备的使用的装置;
用于响应于检测到所述虚拟存储设备的阈值利用,经由所述访客虚拟机和所述主机之间的私有信道向所述主机计算机上执行的主机发送存储警报的装置;
用于由所述主机经由私有信道从所述主机上运行的至少一个访客虚拟机接收存储警报的装置,
用于在至少一个进程正在执行的同时而不中断该至少一个进程的执行的情况下,响应于确定所述存储警报中指定的虚拟存储设备的当前大小与所述主机分配给所述至少一个访客虚拟机的虚拟存储设备的大小匹配,重新改变被分配给所述至少一个访客虚拟机的虚拟存储设备的大小的装置;以及
用于将通知从所述主机发送至所述访客虚拟机的装置,所述通知指示重新改变大小的操作;
其中,响应于接收到对同一虚拟存储设备的一个或多个存储警报,所述主机顺序地处理对于所述同一虚拟存储设备的所述存储警报;
其中如果响应于所述存储警报之一对所述虚拟存储设备的重新改变大小满足所述一个或多个存储警报的至少一个另外的存储警报,所述主机就丢弃所述一个或多个存储警报中的所述至少一个另外的存储警报。
12.一种具有指令的计算机可读存储介质,当所述指令被执行时使得机器执行如权利要求6-10中任一权利要求所述的方法。
13.一种计算机系统,包括用于执行如权利要求6-9中任一权利要求所述的方法的装置。
CN201480029506.3A 2013-05-22 2014-05-22 动态提供存储 Active CN105308553B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/899,568 2013-05-22
US13/899,568 US9317313B2 (en) 2013-05-22 2013-05-22 Dynamically provisioning storage while identifying and discarding redundant storage alerts
PCT/US2014/039045 WO2014190101A1 (en) 2013-05-22 2014-05-22 Dynamically provisioning storage

Publications (2)

Publication Number Publication Date
CN105308553A CN105308553A (zh) 2016-02-03
CN105308553B true CN105308553B (zh) 2018-03-13

Family

ID=51134255

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480029506.3A Active CN105308553B (zh) 2013-05-22 2014-05-22 动态提供存储

Country Status (4)

Country Link
US (1) US9317313B2 (zh)
EP (1) EP3000024B1 (zh)
CN (1) CN105308553B (zh)
WO (1) WO2014190101A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9823814B2 (en) * 2015-01-15 2017-11-21 International Business Machines Corporation Disk utilization analysis
US9971525B2 (en) * 2015-02-26 2018-05-15 Red Hat, Inc. Peer to peer volume extension in a shared storage environment
US10432722B2 (en) * 2016-05-06 2019-10-01 Microsoft Technology Licensing, Llc Cloud storage platform providing performance-based service level agreements
US10606625B1 (en) 2016-09-16 2020-03-31 Google Llc Hot growing a cloud hosted block device
CN109033007A (zh) * 2017-02-28 2018-12-18 惠安县云点网络科技有限公司 一种动态计算装置
US10853185B1 (en) * 2017-09-27 2020-12-01 EMC IP Holding Company LLC Virtual machine image backup to exclude system page file
CN111158966A (zh) * 2019-12-31 2020-05-15 山东英信计算机技术有限公司 一种主机自检系统、方法和装置
US11614900B2 (en) * 2021-07-21 2023-03-28 EMC IP Holding Company LLC Autonomous storage provisioning

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102414674A (zh) * 2009-04-30 2012-04-11 微软公司 应用效率引擎
US8171201B1 (en) * 2008-10-07 2012-05-01 Vizioncore, Inc. Systems and methods for improving virtual machine performance

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356655B2 (en) 2003-05-15 2008-04-08 International Business Machines Corporation Methods, systems, and media for managing dynamic storage
US20070150690A1 (en) * 2005-12-23 2007-06-28 International Business Machines Corporation Method and apparatus for increasing virtual storage capacity in on-demand storage systems
CN102362258B (zh) * 2009-01-23 2015-08-05 惠普开发有限公司 验证虚拟机
US9344401B2 (en) 2009-02-04 2016-05-17 Citrix Systems, Inc. Methods and systems for providing translations of data retrieved from a storage system in a cloud computing environment
US8261018B2 (en) * 2009-05-25 2012-09-04 Hewlett-Packard Development Company, L.P. Managing data storage systems
US9372712B2 (en) 2009-12-17 2016-06-21 International Business Machines Corporation Optimizing virtual storage size in a virtual computer system based on information related to virtual machines, user inputs and/or configuration parameters
US9058107B2 (en) 2011-03-29 2015-06-16 Os Nexus, Inc. Dynamic provisioning of a virtual storage appliance
US10255089B2 (en) * 2012-07-31 2019-04-09 Ca, Inc. Self-deleting virtual machines
US9128745B2 (en) * 2012-12-27 2015-09-08 International Business Machines Corporation Automatically managing the storage of a virtual machine

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171201B1 (en) * 2008-10-07 2012-05-01 Vizioncore, Inc. Systems and methods for improving virtual machine performance
CN102414674A (zh) * 2009-04-30 2012-04-11 微软公司 应用效率引擎

Also Published As

Publication number Publication date
EP3000024B1 (en) 2019-05-15
WO2014190101A1 (en) 2014-11-27
EP3000024A1 (en) 2016-03-30
US9317313B2 (en) 2016-04-19
US20140351808A1 (en) 2014-11-27
CN105308553A (zh) 2016-02-03

Similar Documents

Publication Publication Date Title
CN105308553B (zh) 动态提供存储
Rosado et al. An overview of openstack architecture
US20190115264A1 (en) Client-initiated leader election in distributed client-server systems
CN110580197B (zh) 大型模型深度学习的分布式计算架构
US9015708B2 (en) System for improving the performance of high performance computing applications on cloud using integrated load balancing
US10419437B2 (en) Quasi-agentless cloud resource management
US9959188B1 (en) Managing processor usage of a physical host configured for hosting computing instances
CN105637481B (zh) 计算会话的管理
CN109313564A (zh) 用于支持多个不同租户的高度可用虚拟桌面的服务器计算机管理系统
US8949430B2 (en) Clustered computer environment partition resolution
CN107548549A (zh) 分布式计算环境中的资源平衡
CN105703940A (zh) 一种面向多级调度分布式并行计算的监控系统及监控方法
WO2019091387A1 (en) Method and system for provisioning resources in cloud computing
US20130254360A1 (en) Policy implementation in a networked computing environment
US10346263B2 (en) Host swap hypervisor that provides high availability for a host of virtual machines
KR20170057558A (ko) 가상 데스크탑 서비스 방법 및 장치
CN109783151B (zh) 规则变更的方法和装置
US10110456B2 (en) Scalable software monitoring infrastructure, using parallel task queuing, to operate in elastic cloud environments
CN103458055A (zh) 一种云计算平台
CN112104723A (zh) 一种多集群的数据处理系统及方法
CN108075917A (zh) 一种数据中心的管理方法及系统
CN104580194A (zh) 面向视频应用的虚拟化资源管理方法及装置
Han et al. Refining microservices placement employing workload profiling over multiple kubernetes clusters
WO2016201161A1 (en) Computing resource management system
CN106412094A (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