CN102612686B - 作为团块管理虚拟硬盘驱动器 - Google Patents

作为团块管理虚拟硬盘驱动器 Download PDF

Info

Publication number
CN102612686B
CN102612686B CN201080051695.6A CN201080051695A CN102612686B CN 102612686 B CN102612686 B CN 102612686B CN 201080051695 A CN201080051695 A CN 201080051695A CN 102612686 B CN102612686 B CN 102612686B
Authority
CN
China
Prior art keywords
agglomerate
application
driver
virtual hard
write
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
CN201080051695.6A
Other languages
English (en)
Other versions
CN102612686A (zh
Inventor
B·G·卡尔德
A·J·爱德华兹
王炬
S·阿拉法
A·恩吉尼亚
左钥
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 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102612686A publication Critical patent/CN102612686A/zh
Application granted granted Critical
Publication of CN102612686B publication Critical patent/CN102612686B/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/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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/0626Reducing size or complexity of 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • 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/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
    • 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/0683Plurality of storage devices
    • G06F3/0686Libraries, e.g. tape libraries, jukebox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • 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

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)
  • Library & Information Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了具有计算机可读介质的云计算平台,所述计算机可读介质执行用于作为团块管理虚拟硬盘驱动器的方法。该云计算平台包括结构计算机和团块存储。结构计算机执行虚拟机,所述虚拟机实现访问虚拟硬盘驱动器的一个或多个应用。通过团块接口从团块存储中的团块访问虚拟硬盘驱动器中的数据。团块存储与驱动程序对接,所述驱动程序在访问虚拟硬盘驱动器中的数据时将针对虚拟硬盘驱动器的一些应用输入/输出(I/O)请求翻译成团块命令。

Description

作为团块管理虚拟硬盘驱动器
背景
常规而言,云计算平台在因特网可访问的虚拟环境中托管软件应用。云计算平台允许组织使用由第三方设计和维护的数据中心。常规的虚拟环境向小型或大型组织提供所请求的硬件资源、软件应用资源、网络资源和存储资源。虚拟环境还提供应用安全性、应用可靠性、应用伸缩性和可用性。
常规的数据中心提供物理计算资源、物理存储资源和物理网络资源。数据中心中的物理资源被虚拟化并且作为一组应用编程接口被展示给所述组织。组织不需要维护它们自己的硬件资源或软件资源、或者维护可靠和可缩放的数据中心。
组织可以通过虚拟环境有效地访问这些物理资源,而无需知道软件或底层物理硬件的细节。
发明内容
本发明的实施例在一方面涉及在云计算平台中管理虚拟硬盘驱动器的云计算平台、计算机可读介质、以及计算机实现的方法。云计算平台包括结构计算机和用于访问虚拟硬盘驱动器的团块存储。团块存储是持久的云存储系统,其使用复制来保存每个团块的若干副本以保证所存储的团块为可用和持久的。
结构计算机被配置为执行实现应用的虚拟机,所述应用访问虚拟硬盘驱动器以通过输入/输出(I/O)请求来读取和写入数据。结构计算机包括驱动器库、驱动程序、本地高速缓存以及到团块存储的接口。所述应用生成I/O请求。所述I/O请求进而被重定向到驱动程序,所述驱动程序将所述I/O请求翻译成团块命令。该驱动程序利用存储在本地高速缓存中的数据来完成所述I/O请求,或者该驱动程序可以访问团块存储以获得与I/O请求所访问的虚拟硬盘驱动器相关联的团块中所存储的数据。团块命令用于访问团块存储。团块存储被配置为存储作为虚拟硬盘驱动器展示给应用的团块。允许对团块的访问的应用编程接口和语义不同于应用执行以访问虚拟硬盘驱动器的应用编程接口和语义。
提供本发明内容以便以简化的形式介绍将在以下具体实施方式中进一步描述的一些概念。该发明内容不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在独立地用于帮助确定所要求保护的主题的范围。
附图简述
图1是示出根据本发明的各实施例的示例性云计算平台的网络图;
图2是示出了示例性云计算平台中的示例性结构计算机和示例性团块存储的框图;
图3是用于创建作为虚拟硬盘驱动器展示的团块的示例性方法的逻辑图;以及
图4是用于管理对虚拟硬盘驱动器的I/O请求的示例性方法的逻辑图。
详细描述
本专利用具体细节来描述申请专利的主题以满足法定要求。然而,该描述本身并非旨在限制本专利的范围。相反,发明人设想所要求保护的主题还可结合其他当前或未来技术按照其他方式来具体化,以包括不同的步骤或类似于本专利中所描述的步骤的步骤组合。此外,尽管术语“步骤”和“框”可在此处用于指示所采用的方法的不同元素,但除非而且仅当明确描述了各个步骤的顺序时,该术语不应被解释为意味着此处公开的各个步骤之中或之间的任何特定顺序。此外,以下参考附图详细描述了各实施例,各附图整体通过引用结合于此。
如在此所使用的那样,术语“团块(blob)”是指二进制大对象。
在一些实施例中,运行在云计算平台中的应用访问存储在持久且可用的虚拟硬盘驱动器中的文件系统中的数据。虚拟硬盘驱动器中的数据在软件或硬件故障(例如驱动器故障、节点故障、机架故障、位腐坏(bit rot)等等)的情况下保持为可用的。应用可以使用诸如NTFS API之类的应用编程接口(API)和语义来访问存储在虚拟硬盘驱动器中的数据。
在一个实施例中,虚拟硬盘驱动器可以可安装的块级虚拟设备。虚拟硬盘驱动器允许运行在云计算平台内的虚拟机上的应用使用与该应用的存储对接的任何文件系统API来访问虚拟硬盘驱动器中的数据。虚拟硬盘驱动器是持久的并且通过将写入提交给团块存储来对所有写入防止数据损失。虚拟硬盘驱动器是团块。虚拟硬盘驱动器的内容和与虚拟硬盘驱动器相关联的元数据存储在所述团块中。所述团块通过团块接口上传自、或下载到团块存储。附加地,团块接口可以允许应用安装与团块相关联的虚拟硬盘驱动器并且访问存储在该虚拟硬盘驱动器中的数据。
在一些实施例中,虚拟硬盘驱动器作为卷由应用来安装。应用I/O请求被重定向到存储在团块存储中的团块。在一个实施例中,对团块的写入是通过将所写入的数据存储在团块存储中而被持久化的,其中所述团块存储在使所述写入在所述团块存储中持久以后向应用确认成功的写入。当虚拟硬盘驱动器被卸载(unmounted)或者安装所述驱动器的虚拟机发生故障时,与所述虚拟硬盘驱动器相关联的团块保持在持久团块存储中。因此,另一虚拟机可以安装与该虚拟硬盘驱动器相关联的同一团块并且访问存储在该团块中的数据。
云计算平台允许迁移和执行可使用存储资源的传统应用,包括关系数据库;虚拟机上的数据在故障或关闭期间的存活;记忆数据以供其他虚拟机使用;以及在虚拟虚拟机间并发的数据共享等等。传统应用的迁移和执行允许虚拟机执行被配置为通过NTFS文件系统发起I/O请求的应用。虚拟机还执行使用结构化查询语言(SQL)的关系数据库(比如mySQL或Oracle),而不必执行附加的数据库镜像化。虚拟机将数据存储到虚拟硬盘驱动器,并且存储在该虚拟硬盘驱动器中的数据在当前虚拟机发生故障的情况下对附加的虚拟机可用。快照记忆与虚拟硬盘驱动器相关联的团块的当前状态。快照可用于创建可由虚拟机访问的只读虚拟硬盘驱动器。存储在虚拟硬盘驱动器中的数据可以并发地对许多虚拟机可用。在一个实施例中,云计算平台更新虚拟硬盘驱动器,创建快照并且然后将所述快照与其他虚拟机共享。
在一个实施例中,云计算平台可以将物理机展示作为虚拟机。物理机通过虚拟机所使用的命令来访问。
本领域技术人员能够理解,该云计算平台可以包括硬件、软件、或硬件和软件的组合。硬件包括配置成执行存储在存储器中的指令的处理器和存储器。在一个实施例中,存储器包括存储具有用于计算机实现的方法的计算机可使用的指令的计算机程序产品的计算机可读介质。计算机可读介质包括易失性和非易失性介质、可移动和不可移动介质、以及可由数据库、交换机和各种其它网络设备读取的介质。网络交换机、路由器以及相关组件本质上是常规的,与这些组件通信的手段也是如此。作为示例而非限制,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质,即机器可读介质,包括以用于存储信息的任何方法或技术来实现的介质。存储的信息的示例包括计算机可使用指令、数据结构、程序模块以及其他数据表示。计算机存储介质包括但不限于,随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、紧致盘只读存储器(CD-ROM)、数字多功能盘(DVD)、全息介质或其他光盘存储、磁带盒、磁带、磁盘存储、以及其他磁存储设备。这些存储器技术可瞬间、临时或永久地存储数据。
在一个实施例中,云计算平台包括对客户端设备可用的云应用。客户端设备访问云计算平台来执行云应用。云应用是使用在云计算平台中可用的存储和处理资源来实现的。
图1是示出根据本发明的各实施例的示例性计算系统100的网络图。图1所示的计算系统100仅仅是示例性的并且不旨在暗示对范围或功能的任何限制。本发明的实施例可以以大量其他配置来运行。参考图1,计算系统100包括云计算平台110、云应用120和客户端设备130。
云计算平台110被配置为执行由客户端设备130所请求的云应用120。云计算平台110维护团块存储。团块存储提供存储由云应用120访问的数据的团块。云计算平台110通过诸如无线网络、局域网、有线网络或因特网之类的通信网络连接到客户端设备130。
云应用120对客户端设备130可用。在云计算平台110上执行的软件实现云应用120。在一个实施例中,云计算平台110中的虚拟机执行云应用120。云应用120可以包括编辑应用、网络管理应用、财务应用、或由客户端设备130所请求或开发的任何应用。在某些实施例中,云应用130的一些功能可以在客户端设备130上执行。
客户端设备130被用户用于与云计算平台110所提供的云应用120交互。在一些实施例中,客户端设备130必须向云计算平台110注册以访问云应用120。具有来自云计算平台110的账户的任何客户端设备130都可以访问云应用120和云计算平台110中提供的其他资源。客户端设备130包括但不限于个人数字助理、智能电话、膝上型计算机、个人计算机、游戏系统、机顶盒、或任何其他合适的客户端计算设备。客户端设备130包括用户和系统信息存储以在客户端设备130上存储用户和系统信息。用户信息可包括搜索历史、cookie以及口令。系统信息可以包括因特网协议地址、经高速缓存的网页以及系统使用率。客户端设备130与云计算平台110通信以从云应用120接收结果。
因此,计算系统100是用云计算平台110来配置的,该云计算平台110向客户端设备130提供云应用120。云应用120去除了在客户端设备130上更新和管理多个本地客户端应用这一负担。
在某些实施例中,云计算平台提供结构(fabric)计算机和团块存储。结构计算机在一些或多个虚拟机中执行云应用。团块存储存储供云应用使用的数据。云应用进而通过将云应用I/O请求翻译成团块命令的驱动程序与作为虚拟硬盘驱动器的团块对接。
图2是示出了示例性云计算平台中的示例性结构计算机210和示例性团块存储230的框图。结构计算机210执行实现云应用221的虚拟机220。团块存储230可以由结构计算机210通过因特网协议(IP)地址来访问。在一个实施例中,云应用221可以由结构计算机210来执行,该结构计算机又访问团块存储以获得实现由云应用221使用的虚拟硬盘驱动器的团块。
虚拟机220包括驱动器库222、I/O重定向223、驱动程序224和本地高速缓存225。驱动器库222可以提供驱动器管理,并且I/O重定向223可以通过将驱动器命令重定向到驱动程序224来实现对存储在虚拟硬盘驱动器中的内容的访问,其中所述驱动程序将所述驱动器命令翻译成团块命令。在一个实施例中,虚拟机220可以使用存储在驱动器库222中的诸如下列驱动器命令来访问与虚拟硬盘驱动器(VHD)相对应的团块中的数据:CreateDrive、DeleteDrive、ListDrive、MountDrive、UnmountDrive、以及SnapshotDrive。在一个实施例中,驱动器库222可以向虚拟机220提供团块命名空间以定位驱动器命令。例如,虚拟机220可以通过访问驱动器库222中的统一资源定位符(例如http://<accountname>.blob.core.windows.net/<containername>/<blobname>)来定位团块命名空间,其中accountname是由云计算平台的用户所注册的账户的名称,containername是团块存储的名称,而blobname是团块的名称。
虚拟机220进而可以向VHD发出I/O请求。I/O请求可以被驱动程序224翻译成团块命令。团块存储230中的团块可以作为虚拟硬盘驱动器(VHD)展示给在虚拟机220上执行的云应用221。在一个实施例中,VHD可以是特殊类型的团块(例如页团块),其可以由云应用221以限时租赁来安装。VHD可以由任何应用221使用例如NTFS语义之类的文件系统语义或者包含在驱动器库222中的命令来访问。
向VHD发出的I/O请求被I/O重定向223接收。I/O重定向223是如下的组件:该组件被配置为将针对VHD的云应用I/O请求转发给驱动程序224。
在某些实施例中,驱动程序224提供和/或实现如下的接口:所述接口被云应用用于将从云应用接收到的驱动器命令翻译成团块命令,比如LeaseBlob、SnapShotBlob、PutPage、ClearPage、GetBlob等等。驱动程序224还将针对所安装的虚拟硬盘驱动器的云应用I/O请求翻译成的团块命令,所述团块命令被传送给团块存储230并由其处理。驱动程序224可以为虚拟硬盘驱动器管理本地高速缓存225以存储被存储在与该虚拟硬盘驱动器相对应的团块中的数据。驱动程序224可以使用本地高速缓存225来检索与来自云应用221的读取操作相对应的数据。来自云应用221的写入操作可以被传送给本地高速缓存225和团块存储230中的团块二者。在其他实施例中,驱动程序224可以管理与虚拟硬盘驱动器相对应的租赁以防止云应用在租赁期满时访问本地高速缓存225中或团块存储中的数据。
每个本地高速缓存225都与单个VHD相关联。用于所安装的VHD的本地高速缓存225可以位于相同的结构计算机210上,或者本地高速缓存225可以位于安装该VHD的结构计算机210的相同机架内的计算资源上。该配置可以节省网络带宽。在一些实施例中,虚拟机220可以请求多个VHD。虚拟机可以为每个VHD指定结构计算机上的供用作本地高速缓存225的盘驱动器空间量。存储在本地高速缓存225中的数据可以是经过循环冗余校验(CRC)的,以防止虚拟机220使用包含错误的数据。
在某些实施例中,本地高速缓存225与VHD的相应团块同步。驱动程序224可以管理本地高速缓存225。驱动程序224可以被配置为拖延对本地高速缓存225的写入,直到从团块存存储230中的团块接收到确认。可替代地,驱动程序224可以并行地向本地高速缓存225和团块存储230二者进行写入。如果虚拟机220在并行地向团块存储230写入时崩溃并复位,则虚拟机220可以尝试重新安装虚拟硬盘驱动器并且重新使用相应的本地高速缓存225。虚拟机220可以检查本地高速缓存225以确定哪些数据库曾在没有来自团块存储230的确认的情况下被投机性地写入到本地高速缓存225中。虚拟机220进而可以转储清除(flush)未经确认的数据块的本地高速缓存225。在其他实施例中,虚拟机220可以转储清除整个本地高速缓存225或者本地高速缓存225的选定部分。本地高速缓存225存储结构计算机210上的虚拟机220频繁使用的数据。本地高速缓存225减少向团块存储230请求的读取的数目,这节省了网络带宽并且减少了网络连接争用。附加地,虚拟机220可以经历由于通过从本地高速缓存225中检索数据读取而导致的等待时间减少的性能改善。  在一些实施例中,经历到团块存储230的高连通性(例如10Gbps)的虚拟机可以不使用本地高速缓存225。
团块存储230连接到结构计算机210。结构计算机210通过IP地址访问团块存储230。团块存储230包括团块服务器233。团块服务器233对结构计算机210对接,控制对团块的访问,并且实现团块上的团块命令。团块服务器233是所复制的团块存储系统的一部分,其中所存储的团块在多个服务器上被复制以创建团块的副本,所述副本被单独地维护以防出现驱动器、节点或机架故障。这保证了团块在面对故障时为可用和持久的。
在访问团块时从驱动程序224或云应用221接收的团块命令包括Lease Blob(租赁团块)、Snapshot Blob(快照团块)、Put Page(放置页)、Clear Page(清除页)、以及Get Blob(获得团块)。
LeaseBlob命令使团块存储230创建针对存储在团块存储230上的团块的租赁。在该实施例中,该租赁是独占写入租赁,这仅仅允许一个云应用221写入该团块。当获得独占写入租赁时,租赁标识符(ID)由团块服务器233来创建并返回给云应用221。驱动程序224存储租赁ID并且将租赁ID与传送给团块存储230的任何写入包括在一起。Lease Blob命令还支持独占读写租赁和其他类型的租赁。在一些实施例中,LeaseBlob命令允许驱动程序224指定租赁的时长。LeaseBlob命令可以被驱动程序224用于续订租赁或终止租赁。
SnapshotBlob命令致使团块存储创建团块中的数据的快照。该快照是只读的。驱动程序224可以使用该命令来实现对团块的内容的并发访问。相同团块的一个或多个快照可以并发地由两个或更多云应用来访问。这些快照可以提供团块的版本化(versioning)。团块的快照基于团块的名称和版本时间戳来访问,所述时间戳是由团块服务器233自动创建的(在多个版本的情况下)。换言之,当团块被更新时,在团块更新以前或之后创建的快照包含不同版本的时间戳。在某些实施例中,云应用可以使驱动程序224将元数据发送给团块存储以获得快照。该元数据可以用于描述快照或者快速地定位快照。
PutPage命令使团块服务器233将一定范围的页存储在团块存储230中的指定地址处。每个页都可以包括主存储设备中的一定范围的存储器块。PutPage命令可以被驱动程序224用于将数据写入团块存储。可以指定偏移量以允许进行团块存储230中任何有效地址以内的存储。这些页不必顺序地被写入,并且在团块的地址空间中可能存在间隙(例如空块)。例如,驱动程序224可以将4KB的页以偏移量0、并且将另一个页以偏移量4KB*1百万放置在团块存储230中。团块存储230可以将这两个页存储在所指定的地址处。这些页在成功的PutPage命令以后被提交给团块存储230。团块存储230进而向驱动程序224确认成功。PutPage命令使团块服务器233在更新团块以前检查租赁ID。当为团块指定了独占写入租赁时,PutPage命令在请求团块的更新时有效租赁ID被驱动程序指定的情况下成功。当租赁期满时,PutPage命令将不成功并且团块服务器233可以移除期满的租赁ID。
ClearPage命令使团块服务器233从团块存储230中清除所指定的页或一定范围的页。驱动程序224响应于从虚拟硬盘驱动器删除数据的云应用221请求而传送ClearPage命令以从团块移除页。ClearPage命令使团块服务器233保证:在移除具有服从删除请求的数据的页以前,为与VHD相关联的团块指定了有效租赁ID。当租赁期满时,ClearPage命令将不成功并且团块服务器233可以清除期满的租赁ID。
GetBlob命令使团块服务器233检索指定团块的整个团块或一定范围的页(例如字节)。驱动程序224响应于从虚拟硬盘驱动器获得数据的云应用221请求而传送GetBlob命令。GetBlob命令使团块服务器233保证:在获得页以前为与VHD相关联的团块指定了有效租赁ID。当租赁期满时,GetBlob命令将不成功并且团块服务器233可以清除期满的租赁ID。
驱动程序224从云应用22 1接收驱动器命令和I/O请求。驱动程序224进而将云命令和I/O请求翻译成团块命令。驱动器命令被云应用用于管理VHD并且I/O请求被用于访问存储在VHD中的数据。驱动器命令包括Create Drive(创建驱动器)、Mount Drive(安装驱动器)、UnMount Drive(卸载驱动器)、Delete Drive(删除驱动器)、List Drive(列出驱动器)、以及Snapshot Drive(快照驱动器)等等。
CreateDrive命令被云应用221用于创建虚拟硬盘驱动器。云应用221为虚拟硬盘驱动器指定大小和格式。例如,云应用221可以使用NTFS文件系统将虚拟硬盘驱动器格式化成单分区单卷。驱动程序224进而将驱动器命令翻译成在团块命名空间中可用的合适团块命令。然后,驱动程序可以向团块存储230传送例如PutPage、LeaseBlob等等之类的团块命令,所述团块命令为VHD创建团块。
MountDrive命令被云应用221用于安装VHD。当安装VHD时,云应用221可以指定本地盘空间量以用作所安装的VHD的本地高速缓存225。云应用221还可以请求独占写入VHD、写入VHD、共享只读VHD等等。独占写入VHD是指,仅仅云应用221可以更新VHD。写入VHD是指,云应用221可以更新VHD并且其他云应用可以轮流更新VHD。共享只读VHD是指,VHD是只读的,并且其他虚拟机220可以并发地从相同VHD读取。驱动程序224可以防止写入只读VHD,因为租赁ID可能未与VHD的相应团块相关联。驱动程序224进而将MountDrive命令翻译成合适的团块命令。例如,驱动程序224可以向团块存储230传送LeaseBlob命令以获取和维护对与VHD相对应的团块的租赁。附加地,驱动程序可以例行地续订对团块的租赁以继续向云应用221提供对VHD的访问。如果租赁未被续订,则云应用写入请求221可能不成功。UnmountDrive命令被云应用221用于卸载指定的VHD。UnmountDrive命令可以使驱动程序224终止对与指定VHD相关联的团块的租赁。当结构计算机210或虚拟机220发生故障时,驱动程序224可以自动地发出UnmountDrive命令以终止对结构计算机210或虚拟机220使用的团块的任何租赁。
DeleteDrive命令被云应用221用于删除指定的VHD。DeleteDrive命令可以使驱动程序224传送如下的团块命令:所述团块命令终止对与指定VHD相关联的团块的租赁。在一些实施例中,驱动程序224可以传送ClearPage命令以移除与指定VHD相关联的团块的所有页。在删除VHD以后,团块中的数据不对云计算平台或云应用221可用。
ListDrive命令被云应用221用于列出与云应用221相关联的所有VHD。ListDrive命令可以使驱动程序224定位与云应用221相关联的每个租赁ID。在一些实施例中,驱动程序224可以向云应用221传送与对云应用221可用的每个租赁ID相对应的字母或数字。驱动程序224还可以接收与快照或没有租赁ID的其他驱动器相关联的数字或字母。
SnapshotDrive命令被云应用221用于获得与云应用221相关联的每个VHD的快照。SnapshotDrive命令可以使驱动程序224定位与VHD相关联的团块并且向团块存储传送SnapshotBlob命令。驱动程序224进而可以向云应用221返回快照的字母、数字或时间戳,例如日期和时间。团块的快照可以作为VHD由云应用221来访问。
在某些实施例中,来自云应用221的I/O请求由驱动程序224来处理。由云应用221安装的VHD被访问以对所存储的数据执行I/O请求。该I/O请求尤其是可以包括读取和写入请求。
例如,VHD可以从云应用221接收读取请求。I/O重定向223可以将读取请求路由到驱动程序224。驱动程序221进而可以利用从云应用221接收的任何重叠在先写入请求来对读取请求进行排序。这保证了读取将仅在写入请求被存储在团块存储230以后才返回待决的更新。驱动程序224在最近写入数据的缓冲区中检查所请求的数据。如果该缓冲区不包含所请求的数据,则检查本地高速缓存225。当数据在本地高速缓存225中可用并且被从本地高速缓存225中读取时,检查块的CRC以保证数据的完整性。如果存在CRC不匹配,则从高速缓存中移除数据并且从团块存储230中检索数据。
如果该数据未在本地高速缓存225中找到,则驱动程序224从团块存储230中读取该数据。为了从团块存储230读取该数据,驱动程序224传送GetBlob命令以访问与所请求数据相对应的页。在某些实施例中,从团块存储230读取数据的条件是具有有效租赁ID。在该数据被读取和验证以后,将该数据返回给云应用221。当从团块存储230检索该数据时,驱动程序224基于本地高速缓存225的大小、高速缓存替换策略等等来确定是否高速缓存该数据。如果该数据将被存储在本地高速缓存225中,则存储该数据并且计算和存储CRC码。该CRC可以与该数据存储在一起,或者可以之后写入到结构计算机210上的不同位置。
云应用221将数据写入VHD。I/O重定向可以将写入请求路由到驱动程序224。驱动程序224进而可以对于待决的读取和写入请求来对传入的I/O请求进行排序。驱动程序224将写入请求传送给团块存储230。在一个实施例中,驱动程序224对到团块存储的所有重叠写入请求进行排序,并且并行地向团块存储230仅传送不重叠的写入请求。当存在待决的重叠读取或写入请求时,传入的写入请求将被排序并且必须等待直到重叠的I/O请求被传送给团块存储230并被确认。
在重叠的请求被排序以后,将传入的写入传送给团块存储230。基于与所安装的VHD相关联的团块的有效租赁ID,该写入是有条件的。如果租赁已经期满,则该写入请求失败。在这种情况下,驱动程序224可以尝试重新获取该租赁;在其不能重新获取时,写入仍然失败。当写入请求成功时,其通过如下方式被持久化:将写入请求存储在团块存储230中并且在向云应用221反过来确认成功以前复制该写入。
如果写入请求超时(例如未从团块存储230接收到确认),则驱动程序224重新尝试该写入请求。驱动程序224还可以在团块存储传送“超时”或“服务器忙”时重新尝试该写入请求。一旦重新尝试在团块存储230处成功,则驱动程序224就返回成功。在另一实施例中,驱动程序保证:陈旧的写入(例如被传送给团块存储230的未经确认的写入请求)不复制随后的重新尝试。可以通过等待获得团块服务器超时消息或等待团块服务器超时时间段来丢弃陈旧的写入。因此,在向写入重新尝试范围执行重叠的写入请求以前,驱动程序224保证:通过等待经过其团块服务器超时时间段来由系统转储清除陈旧的写入。团块服务器233在已经经过了给定时间量以后丢弃陈旧的写入。可替代地,驱动程序224可以复位与该团块相关联的租赁或序列号。租赁ID的改变可以防止具有已期满租赁ID的陈旧写入对团块存储230进行更新。任选地,与该团块相关联的序列号可以在每个成功的写入请求以后递增。当驱动程序224未从团块存储230获得确认时,驱动程序224增加序列号以向团块存储230通知:具有更早的序列号的任何更早写入都应当被丢弃。因此,团块存储230忽略所有陈旧的写入,并且来自驱动程序224的所有未来写入使用新的租赁ID或序列号。
团块服务器233将团块的序列号存储在团块存储230中。序列号被团块服务器233用于在团服务器接收到陈旧写入时拒绝对团块的访问。当使用序列号时,每个PagePut或PageClear命令传入序列号,并且包括在该命令中的序列号被检查以确定其是否大于或等于与该团块一起存储在团块存储中的序列号。该命令在包括在该命令中的序列号大于或等于与该团块一起存储在团块存储中的序列号时成功。否则,该命令失败。
在一个实施例中,当安装VHD时,相应团块的序列号被设置成0。对VHD及其相应团块的所有写入都传入序列号0。团块服务器233进而接受该写入,因为传入的序列号与为该团块存储的序列号匹配。如果所述写入之一超时,则驱动程序224不知道该写入是否仍然处于等待执行的队列中。在超时时间段(例如10秒)以后,驱动程序224向团块服务器233发送请求以递增与具有未完成的写入的团块相关联的序列号。团块服务器233将团块的序列号递增到1。然后,驱动程序224将针对VHD的写入与序列号1一起传送给团块服务器233,该团块服务器成功地在团块中实现所接收的写入。如果具有序列号0的陈旧写入在该序列号被更新以后到达团块服务器233,则团块服务器233丢弃该写入,因为所传入的序列号小于为该团块存储的序列号。
在一个实施例中,云计算平台执行创建VHD的云应用。VHD存储由云应用使用的数据。表示VHD的团块存储进而被驱动程序管理以将本机云应用命令和I/O请求解释成与VHD相对应的团块的团块命令。
图3是用于创建作为虚拟硬盘驱动器(VHD)的团块的示例性方法的逻辑图。该方法在步骤310初始化。在步骤320,云计算平台在团块存储中创建被展示为VHD的团块。在一个实施例中,该云计算平台可以将该VHD格式化为N-T-F-S文件系统或F-A-T文件系统。在步骤330,进而由在该云计算平台的虚拟机上执行的一个或多个应用来安装该VHD。在步骤340,驱动程序管理对该VHD的读取和写入请求。该驱动程序截取对该VHD的所有I/O,并且将所述I/O重新路由到该团块存储中的团块。在向该应用确认成功以前将所述I/O请求中的写入提交给该团块存储。可以通过在指定时间段以后期满的团块租赁来向云应用提供对团块的独占写入访问。该驱动程序可以执行连续续订租赁的线程,使得只要应用在运行并且想要使用该VHD,则VHD就可以保持为安装的。在另一实施例中,可以每当存在对团块的成功更新时就续订租赁。云应用进而有条件地基于租赁的有效性对团块进行写入,而其他云应用被允许从团块进行读取。
通过对驱动程序可用的团块接口来访问和操纵团块。可以通过团块接口来创建团块的快照以允许附加的应用并发地读取存储在团块中的数据。在某些实施例中,还可以通过对云计算平台执行的一些云应用可用的团块接口来上传、下载或调试团块。云应用可以执行调试器来检查数据存储的一致性。该方法在步骤350终止。
在一些实施例中,驱动程序管理针对云应用的I/O请求。驱动程序将针对VHD的I/O请求翻译成合适的团块命令,所述团块命令被传送给团块存储中的相应团块。团块存储进而访问团块以实现团块命令。
图4是用于管理对虚拟硬盘驱动器的I/O请求的示例性方法的逻辑图。该方法在步骤410初始化。在步骤420,从在该云计算平台中的虚拟机上执行的云应用接收针对VHD的I/O请求。在一个实施例中,该驱动程序将序列号与该I/O请求相关联以防止用对相同数据的最近写入请求重写在先写入请求。该序列号还防止陈旧写入重写最近的写入请求。在一些实施例中,该驱动程序可以增加团块的序列号以及随团块命令传入的序列号,以忽略具有更老序列号的在先写入请求,其中该在先写入请求未被团块存储确认。在步骤430,驱动程序管理对该VHD的I/O请求。该驱动程序对向团块存储中的团块的所有重叠的I/O请求进行排序,并且将不重叠的I/O请求并行地传送给该团块存储中的与该VHD相对应的团块。在另一实施例中,由驱动程序用写入请求对虚拟机上的本地高速缓存进行更新,其中对本地高速缓存的更新要么在从团块存储接收到确认以后、要么与对团块存储的更新并发地进行。但是本地高速缓存中的更新仅在从团块存储接收到确认以后才可用。在云应用故障或虚拟机故障以后,当高速缓存和团块在重启该云应用或虚拟机以后不一致时,可以由驱动程序转储清除本地高速缓存的全部或一部分。该方法在步骤440终止。
总言之,云计算平台使用团块存储中的团块来提供VHD。例如,数据库应用可以在云计算平台上执行。在数据库应用中,以顺序的方式写入日志。该日志用于较大数目的写入,例如重做/撤销记录、BTree改变记录、以及提交记录。专用“日志驱动器”防止日志访问与数据访问之间的争用。专用“数据库驱动器”用于访问(写和读)数据库中的数据。“日志驱动器”读取的比例是非常小的,并且数据库驱动器具有高比例的读取和写入二者。
执行云计算平台的数据库应用可以创建两个VHD:“日志驱动器”和“数据库驱动器”。团块存储进而创建两个团块,所述团块分别对应于“日志驱动器”和“数据库驱动器”。数据库应用安装“日志驱动器”并且未设置高速缓存,因为大多数日志通信量是日志写入。云应用进而安装“数据库驱动器”并且设置100%高速缓存,从而允许大多数读取请求由本地高速缓存来服务。
本发明的各实施例的上述描述是说明性的,且配置和实现中的各修改都处于当前描述的范围内。例如,尽管本发明的实施例是参照图1-4来概括性地描述的,但是那些描述是示例性的。尽管用对结构特征或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。因此,本发明的实施例的范围只在仅由所附权利要求书来限定。

Claims (14)

1.一种用于作为云计算平台中的团块来管理虚拟硬盘驱动器的计算机实现的方法,该方法包括:
在团块存储中创建作为虚拟硬盘驱动器被展示给一个或多个应用的团块;
安装所述虚拟硬盘驱动器;以及
管理对所述虚拟硬盘驱动器的读取和写入请求,通过所述团块接口来创建所述团块的快照,以允许附加的应用并发地读取存储在所述团块中的数据。
2.如权利要求1所述计算机实现的方法,其特征在于,所述一个或多个应用在虚拟机上执行,并且所述读取和写入请求由所述云计算平台中的驱动程序来管理,并且所述驱动程序截取对所述虚拟硬盘驱动器的所有I/O请求并且将所述I/O请求重新路由到所述团块存储中的团块。
3.如权利要求1所述的计算机实现的方法,其特征在于,还包括:将所述虚拟硬盘驱动器格式化为NTFS文件系统或FAT文件系统之一。
4.如权利要求2所述的计算机实现的方法,其特征在于,通过对所述驱动程序可用的团块接口来访问和操纵团块。
5.如权利要求2所述的计算机实现的方法,其特征在于,通过对所述一个或多个应用可用的团块接口来上传、下载和调试团块。
6.如权利要求2所述的计算机实现的方法,其特征在于,在反过来向所述应用确认成功以前,将所述I/O请求中的应用写入提交给所述团块存储。
7.如权利要求6所述的计算机实现的方法,其特征在于,通过在指定的时间段以后期满的团块租赁向应用提供对所述团块的独占写入访问,并且所述应用有条件地基于所述租赁的有效性对所述团块进行写入,而其他应用被允许从所述团块读取。
8.一种用于作为云计算平台中的团块来管理虚拟硬盘驱动器的方法,该方法包括:
从在所述云计算平台中的虚拟机上执行的应用接收对虚拟硬盘驱动器的I/O请求;以及
由驱动程序管理对所述虚拟硬盘驱动器的I/O请求,其中所述驱动程序对向所述团块存储中的团块的重叠I/O请求进行排序,并且将不重叠的I/O请求并行地传送给所述团块存储中的团块。
9.如权利要求8所述的方法,其特征在于,将序列号与所述I/O请求相关联以防止对仍然处于所述云计算平台内的相同数据的较老陈旧写入重写在先写入,并且所述驱动程序增加所述序列号以忽略未被所述团块存储确认的在先写入。
10.如权利要求8所述的方法,其特征在于,还包括:用写入请求更新所述虚拟机上的本地高速缓存,其中对所述本地高速缓存的更新要么在从所述团块存储接收到确认以后进行,要么与对所述团块存储的写入并行地进行,但是所述更新在从所述团块存储接收到确认以后可用。
11.如权利要求10所述的方法,其特征在于,在应用或虚拟机故障以后,在所述高速缓存和团块不一致时转储清除所述本地高速缓存的全部或一部分。
12.一种作为团块管理虚拟硬盘驱动器的云计算平台,所述云计算平台包括:
结构计算机,所述结构计算机被配置为执行实现应用的虚拟机,所述应用访问虚拟硬盘驱动器以读取和写入数据;以及
团块存储,所述团块存储被配置为存储作为虚拟硬盘驱动器被展示给所述应用的团块,通过不同的应用编程接口和语义实现对所述团块和虚拟硬盘驱动器的访问。
13.如权利要求12所述的云计算平台,其特征在于,所述结构计算机包括高速缓存团块数据的本地高速缓存、存储团块命令的团块库、以及将虚拟硬盘驱动器I/O指令翻译成团块命令的驱动程序,所述本地高速缓存为每个数据块存储循环冗余校验码以在使用所述数据块以前确定在所述数据块中是否存在错误,并且团块用于同步所述本地高速缓存以允许所述应用使用存储和在所述本地高速缓存中的数据来完成请求。
14.如权利要求12所述的云计算平台,其特征在于,由应用租赁所述团块一指定时间段,并且所述应用连续地续订所述租赁以保持访问与所述团块相对应的虚拟硬盘驱动器。
CN201080051695.6A 2009-11-16 2010-10-29 作为团块管理虚拟硬盘驱动器 Active CN102612686B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/619,307 US8516137B2 (en) 2009-11-16 2009-11-16 Managing virtual hard drives as blobs
US12/619,307 2009-11-16
PCT/US2010/054701 WO2011059811A2 (en) 2009-11-16 2010-10-29 Managing virtual hard drives as blobs

Publications (2)

Publication Number Publication Date
CN102612686A CN102612686A (zh) 2012-07-25
CN102612686B true CN102612686B (zh) 2015-04-01

Family

ID=43992327

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080051695.6A Active CN102612686B (zh) 2009-11-16 2010-10-29 作为团块管理虚拟硬盘驱动器

Country Status (7)

Country Link
US (3) US8516137B2 (zh)
EP (1) EP2502149B1 (zh)
JP (1) JP5632010B2 (zh)
KR (1) KR101795087B1 (zh)
CN (1) CN102612686B (zh)
HK (1) HK1173527A1 (zh)
WO (1) WO2011059811A2 (zh)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9842006B2 (en) * 2009-12-01 2017-12-12 International Business Machines Corporation Application processing allocation in a computing system
US8429651B2 (en) * 2010-01-20 2013-04-23 International Business Machines Corporation Enablement and acceleration of live and near-live migration of virtual machines and their associated storage across networks
US9009219B2 (en) 2010-01-27 2015-04-14 Vmware, Inc. Native viewer use for service results from a remote desktop
US8392838B2 (en) * 2010-01-27 2013-03-05 Vmware, Inc. Accessing virtual disk content of a virtual machine using a control virtual machine
US9274821B2 (en) 2010-01-27 2016-03-01 Vmware, Inc. Independent access to virtual machine desktop content
US9477531B2 (en) * 2010-01-27 2016-10-25 Vmware, Inc. Accessing virtual disk content of a virtual machine without running a virtual desktop
US8671265B2 (en) 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers
US8122282B2 (en) * 2010-03-12 2012-02-21 International Business Machines Corporation Starting virtual instances within a cloud computing environment
US8306948B2 (en) * 2010-05-03 2012-11-06 Panzura, Inc. Global deduplication file system
US8477610B2 (en) * 2010-05-31 2013-07-02 Microsoft Corporation Applying policies to schedule network bandwidth among virtual machines
US8863117B2 (en) * 2010-07-19 2014-10-14 International Business Machines Corporation Optimizing a file system interface in a virtualized computing environment
JP5883500B2 (ja) 2011-04-20 2016-03-15 エンパイア テクノロジー ディベロップメント エルエルシー モバイルコンテンツのユーザ体感品質のリアルタイムでのフルリファレンス計算
AU2012261986B2 (en) * 2011-06-03 2016-02-04 Apple Inc. Cloud storage
US10976981B2 (en) 2011-07-15 2021-04-13 Vmware, Inc. Remote desktop exporting
US10983747B2 (en) 2011-07-15 2021-04-20 Vmware, Inc. Remote desktop mirroring
US9002790B2 (en) 2011-09-14 2015-04-07 Google Inc. Hosted storage locking
US8468138B1 (en) * 2011-12-02 2013-06-18 International Business Machines Corporation Managing redundant immutable files using deduplication in storage clouds
WO2013089697A2 (en) 2011-12-14 2013-06-20 Empire Technology Development, Llc Semantic cache cloud services for connected devices
US8694986B2 (en) 2011-12-15 2014-04-08 Microsoft Corporation Providing update notifications on distributed application objects
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9158568B2 (en) 2012-01-30 2015-10-13 Hewlett-Packard Development Company, L.P. Input/output operations at a virtual block device of a storage server
US20130219069A1 (en) * 2012-02-22 2013-08-22 Computer Associates Think, Inc. System and method for managing virtual hard disks in cloud environments
US9098325B2 (en) 2012-02-28 2015-08-04 Hewlett-Packard Development Company, L.P. Persistent volume at an offset of a virtual block device of a storage server
US9112935B2 (en) 2012-03-05 2015-08-18 Microsoft Technology Licensing, Llc Manipulating binary large objects
US9471591B2 (en) 2012-05-02 2016-10-18 Microsoft Technology Licensing, Llc Iterative disk upload based on differencing disk format
US8924969B2 (en) * 2012-06-07 2014-12-30 Microsoft Corporation Virtual machine image write leasing
US9830271B2 (en) * 2012-07-25 2017-11-28 Vmware, Inc. Transparent virtualization of cloud storage
US10002001B1 (en) * 2013-02-19 2018-06-19 Amazon Technologies, Inc. Importing a virtual disk image into a compute service environment
US9436494B2 (en) * 2013-03-14 2016-09-06 Vmware, Inc. Preserving an independent virtual disk
US9032402B2 (en) 2013-03-14 2015-05-12 Vmware, Inc. Managing an independent virtual disk
US9250809B2 (en) * 2013-03-18 2016-02-02 Hitachi, Ltd. Compound storage system and storage control method to configure change associated with an owner right to set the configuration change
US9747314B2 (en) * 2013-07-25 2017-08-29 Rackspace Us, Inc. Normalized searchable cloud layer
US9619248B2 (en) * 2013-08-30 2017-04-11 Bluedata Software, Inc. Configuration manager and method for configuring a host system for processing a processing job in a virtual data-processing environment
US9542216B2 (en) 2013-10-15 2017-01-10 At&T Intellectual Property I, L.P. Richer model of cloud app markets
US20160273331A1 (en) * 2013-12-20 2016-09-22 Halliburton Energy Services Inc. Dynamic Determination of a Single Equivalent Circulating Density (ECD) Using Multiple ECDs Along a Wellbore
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US11094015B2 (en) 2014-07-11 2021-08-17 BMLL Technologies, Ltd. Data access and processing system
CN104219290B (zh) * 2014-08-19 2017-05-31 南京邮电大学 一种多模块云应用弹性配置方法
JP2016057876A (ja) * 2014-09-10 2016-04-21 富士通株式会社 情報処理装置、入出力制御プログラム、及び入出力制御方法
US9563638B2 (en) 2015-01-30 2017-02-07 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
US9361349B1 (en) 2015-01-30 2016-06-07 Dropbox, Inc. Storage constrained synchronization of shared content items
US9185164B1 (en) * 2015-01-30 2015-11-10 Dropbox, Inc. Idle state triggered constrained synchronization of shared content items
US9413824B1 (en) 2015-01-30 2016-08-09 Dropbox, Inc. Storage constrained synchronization of content items based on predicted user access to shared content items using retention scoring
US10248705B2 (en) 2015-01-30 2019-04-02 Dropbox, Inc. Storage constrained synchronization of shared content items
US10831715B2 (en) 2015-01-30 2020-11-10 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
US9891938B2 (en) 2015-06-26 2018-02-13 Vmware, Inc. Modifying an instance catalog to perform operations
CN105183382B (zh) * 2015-09-09 2018-06-12 浪潮(北京)电子信息产业有限公司 一种数据块保护方法及装置
US10282092B1 (en) * 2015-09-09 2019-05-07 Citigroup Technology, Inc. Methods and systems for creating and maintaining a library of virtual hard disks
US20170220592A1 (en) * 2016-02-01 2017-08-03 Microsoft Technology Licensing, Llc Modular data operations system
US10809998B2 (en) 2016-02-12 2020-10-20 Nutanix, Inc. Virtualized file server splitting and merging
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10719532B2 (en) 2016-04-25 2020-07-21 Dropbox, Inc. Storage constrained synchronization engine
US10049145B2 (en) 2016-04-25 2018-08-14 Dropbox, Inc. Storage constrained synchronization engine
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US10178173B2 (en) * 2016-08-02 2019-01-08 International Business Machines Corporation Cloud service utilization
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10360057B1 (en) * 2016-09-22 2019-07-23 Amazon Technologies, Inc. Network-accessible volume creation and leasing
US11562034B2 (en) * 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
US10366104B2 (en) 2017-06-21 2019-07-30 Microsoft Technology Licensing, Llc Providing instant and distributed access to a source blob via copy-on-read blobs and link blobs
US10372371B2 (en) * 2017-09-14 2019-08-06 International Business Machines Corporation Dynamic data relocation using cloud based ranks
US10789135B2 (en) * 2018-02-07 2020-09-29 Microsoft Technology Licensing, Llc Protection of infrastructure-as-a-service workloads in public cloud
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
US11221796B2 (en) * 2018-05-01 2022-01-11 Microsoft Technology Licensing, Llc Redirection of I/O requests from local to remote storage locations to improve network performance and data redundancy
US10802715B2 (en) * 2018-09-21 2020-10-13 Microsoft Technology Licensing, Llc Mounting a drive to multiple computing systems
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US10990315B2 (en) 2018-12-03 2021-04-27 International Business Machines Corporation Write transfer resource management in a data storage system
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
KR20220071493A (ko) 2020-11-24 2022-05-31 삼성에스디에스 주식회사 로컬 캐시를 이용한 네트워크 드라이브 관리 방법 및 장치
US11397545B1 (en) 2021-01-20 2022-07-26 Pure Storage, Inc. Emulating persistent reservations in a cloud-based storage system
CN113946286A (zh) * 2021-08-17 2022-01-18 丝路信息港云计算科技有限公司 一种云节点块级缓存方法,存储装置及服务器
US12117972B2 (en) 2021-08-19 2024-10-15 Nutanix, Inc. File server managers and systems for managing virtualized file servers
US12072770B2 (en) 2021-08-19 2024-08-27 Nutanix, Inc. Share-based file server replication for disaster recovery

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101272221A (zh) * 2008-05-04 2008-09-24 中兴通讯股份有限公司 一种文件数据的传输、接收方法及装置

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3269849B2 (ja) 1992-05-29 2002-04-02 株式会社日立製作所 並列データベース処理システムとその検索方法
US6181837B1 (en) 1994-11-18 2001-01-30 The Chase Manhattan Bank, N.A. Electronic check image storage and retrieval system
JP3703874B2 (ja) * 1995-03-17 2005-10-05 富士通株式会社 ファイル管理方法及びファイル管理装置
JPH10124437A (ja) * 1996-10-24 1998-05-15 Iiguruzu Kk インタフェース制御装置
US6061690A (en) 1997-10-31 2000-05-09 Oracle Corporation Apparatus and method for storage of object collections in a database system
US5999943A (en) 1997-10-31 1999-12-07 Oracle Corporation Lob locators
US6119123A (en) 1997-12-02 2000-09-12 U.S. Philips Corporation Apparatus and method for optimizing keyframe and blob retrieval and storage
US6275831B1 (en) 1997-12-16 2001-08-14 Starfish Software, Inc. Data processing environment with methods providing contemporaneous synchronization of two or more clients
US6415373B1 (en) 1997-12-24 2002-07-02 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
US6484161B1 (en) 1999-03-31 2002-11-19 Verizon Laboratories Inc. Method and system for performing online data queries in a distributed computer system
US6393415B1 (en) 1999-03-31 2002-05-21 Verizon Laboratories Inc. Adaptive partitioning techniques in performing query requests and request routing
JP5113967B2 (ja) * 1999-08-05 2013-01-09 オラクル・インターナショナル・コーポレイション インターネットファイルシステム
US6571282B1 (en) 1999-08-31 2003-05-27 Accenture Llp Block-based communication in a communication services patterns environment
US6615219B1 (en) 1999-12-29 2003-09-02 Unisys Corporation Database management system and method for databases having large objects
US6714968B1 (en) 2000-02-09 2004-03-30 Mitch Prust Method and system for seamless access to a remote storage server utilizing multiple access interfaces executing on the remote server
US6735623B1 (en) 2000-02-09 2004-05-11 Mitch Prust Method and system for accessing a remote storage area
JP2003527859A (ja) * 2000-03-20 2003-09-24 キュラジェン コーポレイション 新規ポリペプチドおよびそれをコードする核酸
US6523036B1 (en) 2000-08-01 2003-02-18 Dantz Development Corporation Internet database system
JP4087072B2 (ja) 2001-01-25 2008-05-14 株式会社日立製作所 ストレージシステム及び仮想プライベートボリューム制御方法
US7330717B2 (en) 2001-02-23 2008-02-12 Lucent Technologies Inc. Rule-based system and method for managing the provisioning of user applications on limited-resource and/or wireless devices
US7139280B2 (en) 2001-07-30 2006-11-21 Yishay Mansour Buffer management policy for shared memory switches
US20030028640A1 (en) 2001-07-30 2003-02-06 Vishal Malik Peer-to-peer distributed mechanism
US7127507B1 (en) 2001-09-27 2006-10-24 Sprint Communications Company L.P. Method and apparatus for network-level monitoring of queue-based messaging systems
US7158964B2 (en) 2001-12-12 2007-01-02 Intel Corporation Queue management
US7046687B1 (en) 2002-01-16 2006-05-16 Tau Networks Configurable virtual output queues in a scalable switching system
JP4036661B2 (ja) * 2002-03-01 2008-01-23 日本電信電話株式会社 複製データ管理方法、ノード、プログラム、記録媒体
US7082455B2 (en) 2002-04-23 2006-07-25 International Business Machines Corporation Method and apparatus of parameter passing of structured data for stored procedures in a content management system
US7386532B2 (en) * 2002-12-19 2008-06-10 Mathon Systems, Inc. System and method for managing versions
US20040215724A1 (en) 2003-04-28 2004-10-28 Microsoft Corporation Email service error recovery
US7673000B2 (en) 2003-04-28 2010-03-02 Microsoft Corporation Email service
US6973654B1 (en) 2003-05-27 2005-12-06 Microsoft Corporation Systems and methods for the repartitioning of data
JP2007526534A (ja) 2003-06-04 2007-09-13 ザ・トラスティーズ・オブ・ザ・ユニバーシティ・オブ・ペンシルベニア ロード・バランシング、独立処理及びレコード問合せのためのndmaスケーラブル・アーカイブのハードウェア/ソフトウェア・アーキテクチャ
JP2005070965A (ja) * 2003-08-21 2005-03-17 Fujitsu Ltd 情報処理方法、情報処理システム及び情報処理装置
US7199725B2 (en) 2003-11-06 2007-04-03 International Business Machines Corporation Radio frequency identification aiding the visually impaired with synchronous sound skins
US9075851B2 (en) 2003-12-09 2015-07-07 Emc Corporation Method and apparatus for data retention in a storage system
US7484210B2 (en) 2004-02-17 2009-01-27 Intel Corporation Apparatus and method for a generic, extensible and efficient data manager for virtual peripheral component interconnect devices (VPCIDs)
US7366735B2 (en) 2004-04-09 2008-04-29 Oracle International Corporation Efficient extraction of XML content stored in a LOB
US8185663B2 (en) * 2004-05-11 2012-05-22 Hewlett-Packard Development Company, L.P. Mirroring storage interface
JP2005346426A (ja) * 2004-06-03 2005-12-15 Hitachi Ltd データ共有ディスク装置
US20060155781A1 (en) 2005-01-10 2006-07-13 Microsoft Corporation Systems and methods for structuring distributed fault-tolerant systems
US7814129B2 (en) 2005-03-11 2010-10-12 Ross Neil Williams Method and apparatus for storing data with reduced redundancy using data clusters
US7730101B2 (en) 2005-06-10 2010-06-01 Microsoft Corporation Implementing a tree data storage structure in a distributed environment
US20070011147A1 (en) 2005-06-22 2007-01-11 Affiniti, Inc. Systems and methods for retrieving data
US8270410B2 (en) 2005-08-04 2012-09-18 Microsoft Corporation Sampling techniques
US7730099B2 (en) 2005-08-19 2010-06-01 Opnet Technologies, Inc. Storage and retrieval of richly typed hierarchical network models
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US7558859B2 (en) 2005-10-17 2009-07-07 Microsoft Corporation Peer-to-peer auction based data distribution
JP2007219609A (ja) 2006-02-14 2007-08-30 Hitachi Ltd スナップショット管理装置及び方法
JP4240062B2 (ja) 2006-05-31 2009-03-18 日本電気株式会社 計算機システムおよび性能計測方法ならびに管理サーバ装置
US7698258B2 (en) 2006-06-02 2010-04-13 Microsoft Corporation Searchable storage system
US7441113B2 (en) 2006-07-10 2008-10-21 Devicevm, Inc. Method and apparatus for virtualization of appliances
US20080021865A1 (en) 2006-07-20 2008-01-24 International Business Machines Corporation Method, system, and computer program product for dynamically determining data placement
US7552130B2 (en) * 2006-10-17 2009-06-23 International Business Machines Corporation Optimal data storage and access for clustered data in a relational database
US7945786B2 (en) 2007-03-30 2011-05-17 Intel Corporation Method and apparatus to re-create trust model after sleep state
US7730044B2 (en) 2007-04-02 2010-06-01 Bmc Software, Inc. Log data store and assembler for large objects in database system
US8706914B2 (en) * 2007-04-23 2014-04-22 David D. Duchesneau Computing infrastructure
US7849354B2 (en) 2007-06-12 2010-12-07 Microsoft Corporation Gracefully degradable versioned storage systems
US8239479B2 (en) * 2007-06-22 2012-08-07 Microsoft Corporation Server-assisted and peer-to-peer synchronization
JP2009134601A (ja) 2007-11-30 2009-06-18 Fujitsu Ltd ディスクアクセス方式切替装置
US7991740B2 (en) * 2008-03-04 2011-08-02 Apple Inc. Synchronization server process
CN101983379B (zh) 2008-04-02 2014-04-02 惠普开发有限公司 盘驱动器数据加密
US20100142445A1 (en) 2008-09-04 2010-06-10 Ludger Schlicht Environments for a mobile, broadband, routable internet
US8307177B2 (en) * 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
US8620884B2 (en) 2008-10-24 2013-12-31 Microsoft Corporation Scalable blob storage integrated with scalable structured storage
US8495036B2 (en) 2008-10-24 2013-07-23 Microsoft Corporation Blob manipulation in an integrated structured storage system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101272221A (zh) * 2008-05-04 2008-09-24 中兴通讯股份有限公司 一种文件数据的传输、接收方法及装置

Also Published As

Publication number Publication date
EP2502149B1 (en) 2021-02-17
EP2502149A2 (en) 2012-09-26
HK1173527A1 (zh) 2013-05-16
WO2011059811A2 (en) 2011-05-19
JP2013511104A (ja) 2013-03-28
CN102612686A (zh) 2012-07-25
US20110119668A1 (en) 2011-05-19
WO2011059811A3 (en) 2011-08-18
US20170235525A1 (en) 2017-08-17
EP2502149A4 (en) 2014-06-11
KR20120104209A (ko) 2012-09-20
KR101795087B1 (ko) 2017-11-07
JP5632010B2 (ja) 2014-11-26
US20130305005A1 (en) 2013-11-14
US9639299B2 (en) 2017-05-02
US10628086B2 (en) 2020-04-21
US8516137B2 (en) 2013-08-20

Similar Documents

Publication Publication Date Title
CN102612686B (zh) 作为团块管理虚拟硬盘驱动器
CN114341792B (zh) 存储集群之间的数据分区切换
US10296494B2 (en) Managing a global namespace for a distributed filesystem
US10303499B2 (en) Application aware graph driver
US8788628B1 (en) Pre-fetching data for a distributed filesystem
CN111356996B (zh) 用于版本验证的系统和计算机实现的方法
US8671256B2 (en) Migrating contents of a memory on a virtual machine
US9274949B2 (en) Tracking data updates during memory migration
US8661211B2 (en) Method for migrating contents of a memory on a virtual machine
US20100241807A1 (en) Virtualized data storage system cache management
US10956593B2 (en) Sharing of data among containers running on virtualized operating systems
US20090064136A1 (en) Utilizing system configuration information to determine a data migration order
US9354907B1 (en) Optimized restore of virtual machine and virtual disk data
US11509716B2 (en) Method and apparatus for performing simple storage service seamless migration using index objects
CN101836192A (zh) 本地闪存和远程服务器混合连续数据保护
US11516287B2 (en) Method and apparatus for performing simple storage service seamless migration using index objects
US20090063752A1 (en) Utilizing data access patterns to determine a data migration order
US20090063753A1 (en) Method for utilizing data access patterns to determine a data migration order
CN109947704B (zh) 一种锁类型切换方法、装置及集群文件系统
US20210103598A1 (en) Managing persistent handle information for a file
US20240104114A1 (en) Techniques for upgrading and accessing metadata
CN113568567A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1173527

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150728

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150728

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1173527

Country of ref document: HK