CN103853501B - 为磁盘映像流式传输标识冗余数据的计算机实现方法和计算机系统 - Google Patents

为磁盘映像流式传输标识冗余数据的计算机实现方法和计算机系统 Download PDF

Info

Publication number
CN103853501B
CN103853501B CN201310560131.0A CN201310560131A CN103853501B CN 103853501 B CN103853501 B CN 103853501B CN 201310560131 A CN201310560131 A CN 201310560131A CN 103853501 B CN103853501 B CN 103853501B
Authority
CN
China
Prior art keywords
trim
unmap
client
server
unappropriated
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.)
Expired - Fee Related
Application number
CN201310560131.0A
Other languages
English (en)
Other versions
CN103853501A (zh
Inventor
T·克施温德
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
Publication of CN103853501A publication Critical patent/CN103853501A/zh
Application granted granted Critical
Publication of CN103853501B publication Critical patent/CN103853501B/zh
Expired - Fee Related 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/0614Improving the reliability 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/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/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/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0677Optical disk device, e.g. CD-ROM, DVD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling

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)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施例公开了一种为磁盘映像流式传输标识冗余数据的计算机实现的方法和计算机系统。使用指示了未使用的磁盘块的命令,诸如TRIM/UNMAP命令,从而标识出在流式传输的磁盘映像中的冗余数据。在操作系统与磁盘驱动器之间添加TRIM/UNMAP层,以便支持使用TRIM/UNMAP命令。使用所述TRIM/UNMAP层,标识出所述操作系统未分配的被流式传输的磁盘映像块。将所标识出的未分配的块流式传输到服务器用于分析和存储。

Description

为磁盘映像流式传输标识冗余数据的计算机实现方法和计算 机系统
技术领域
本发明涉及磁盘映像流式传输,更具体地,涉及提供指示了未使用的磁盘块的命令(诸如TRIM和UNMAP命令)来针对磁盘映射流式传输效率标识出冗余数据。
背景技术
随着计算机虚拟化的增加,用户通常希望可从世界各地访问他们的数据。除了简单地存储用户的数据之外,当前技术还可以在服务器中存储整个台式计算机磁盘映像,包括操作系统、应用和应用数据,并且根据需要将该映像与本地可用的存储装置进行同步。在当前技术中,通常将完整的磁盘映像从一台计算机复制或流式传输到另一台计算机。虽然当前的磁盘映像具有整个硬盘的大小,但是整个磁盘映像中仅有小部分被操作系统积极使用。大部分的磁盘映像通常是未分配或未使用的磁盘空间。
发明内容
根据实施例,提供了一种计算机实现的方法,用于在具有处理设备的情况下使用指示了未使用的磁盘块的命令(诸如TRIM/UNMAP命令)来标识出在流式传输的磁盘映像中的冗余数据。在操作系统与磁盘驱动器之间添加TRIM/UNMAP层,以便支持使用TRIM/UNMAP命令。使用所述TRIM/UNMAP层,标识出所述操作系统未分配的被流式传输的磁盘映像块。将所标识出的未分配的块流式传输到服务器用于分析和存储。
根据另一实施例,提供了一种计算机系统,用于在具有处理设备的情况下使用指示了未使用的磁盘块的命令(诸如TRIM/UNMAP命令)来标识出在流式传输的磁盘映像中的冗余数据。在操作系统与磁盘驱动器之间添加TRIM/UNMAP层,以便支持使用TRIM/UNMAP命令。使用所述TRIM/UNMAP层,标识出所述操作系统未分配的被流式传输的磁盘映像块。将所标识出的未分配的块流式传输到服务器用于分析和存储。
通过本发明的技术来实现其它特征和优点。在此详细描述了本发明的其它实施例和方面,其被认为是所要求保护的本发明的一部分。为了更好地理解本发明的优点和特点,参照说明书和附图。
附图说明
特别指出了被看作是本发明的主题并在说明书结论处的权利要求中清楚地要求进行保护。根据以下结合附图的详细描述,本发明的前述和其它特征和优点是显而易见的,在附图中:
图1示出了根据本公开的实施例的云计算节点;
图2示出了根据本公开的实施例的云计算环境;
图3示出了根据本公开的实施例的抽象模型层;
图4示出了根据实施例的方法的流程图,该方法用于通过获得指示了未使用的磁盘块的命令(TRIM/UNMAP命令信息)来从流式传输的磁盘映像中标识出冗余数据;
图5示出了根据实施例的磁盘映像准备方法的流程图;
图6示出了根据实施例用于单向流式传输磁盘映像的可能的流程图的摘录;
图7示出了根据实施例的磁盘映像的单向流式传输的图解表示;
图8示出了根据实施例用于双向流式传输磁盘映像的可能的流程图的摘录;以及
图9示出了根据实施例的磁盘映像的双向流式传输的图解表示。
具体实施方式
在此公开的实施例使用指示了未使用的磁盘块的命令(诸如TRIM/UNMAP命令)来标识出在流式传输的磁盘映像中的冗余数据。在操作系统与磁盘驱动器之间添加TRIM/UNMAP层,以便支持使用TRIM/UNMAP命令。使用所述TRIM/UNMAP层,标识出所述操作系统未分配的被流式传输的磁盘映像块。将所标识出的未分配的块流式传输到服务器用于分析和存储。
高级技术附件(ATA)TRIM和小型计算机系统接口(SCSI)UNMAP命令允许操作系统通知固态驱动(SSD)哪些数据块不再被认为是在使用中。对于SSD,重要的是标识出硬盘的哪些部分没有被操作系统使用,以便实施碎片收集算法以及重构SSD,从而可以更快速地实施将来对SSD的写入。
当流式传输磁盘映像时,通常按照在目标计算机上运行的操作系统对磁盘块进行请求的顺序,将磁盘块从源计算机传送到目标计算机。除了传送操作系统所请求的块之外,通常也在后台传送磁盘映像的所有其它的块。当前的这种方案下载了甚至是存储在磁盘上的文件或者文件系统没有使用的那些磁盘映像块。
本公开的实施例提供了TRIM和UNMAP命令来标识未使用的块以便更高效地对磁盘映像进行流式传输。实施例将TRIM/UNMAP层添加在操作系统的磁盘驱动器(其增加了对TRIM/UNMAP的支持)之上。操作系统然后可以发布TRIM/UNMAP命令,以便标识出操作系统没有使用的磁盘部分。其它实施例将TRIM/UNMAP层添加在操作系统与虚拟化基础架构之间或者以磁盘驱动器的形式作为操作系统的一部分。
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图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数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层66提供了可对其利用云计算环境的功能的示例。可从该层提供的工作负载和功能的示例包括:映射和导航;软件开发和生命周期管理;虚拟课堂教育递送;数据分析处理;事务处理;以及磁盘映像流式传输处理。
现在参考图4,示出了方法400的实施例,方法400用于通过获得指示了未使用的磁盘块的命令来从流式传输的磁盘映像标识出冗余数据。根据实施例,从源计算机向目标计算机流式传输磁盘映像。实施例的源计算机可以是云中的服务器。流式传输的磁盘映像被呈现给操作系统410作为模拟的SSD,从而在操作系统的磁盘驱动器430之上引入获得有关未使用的块420的信息的层。也就是说,TRIM/UNMAP层420向操作系统410表明底层磁盘是SSD并提供TRIM/UNMAP支持。根据实施例,TRIM/UNMAP层420可与虚拟化基础架构进行集成,或者被添加到操作系统410与虚拟化基础架构之间。实施例的TRIM/UNMAP层420增加了对TRIM/UNMAP命令的支持,而与磁盘驱动器430是否已支持所述命令无关。在实施例中,操作系统410可以发布TRIM/UNMAP命令,而与底层磁盘设备驱动器430是否支持这样的命令无关。然而,在提供TRIM/UNMAP层420作为较低级别的磁盘驱动器430的一部分的情形中,实施例并不要求修改操作系统410。
因为TRIM/UNMAP层420被呈现为模拟的SSD,所以操作系统将TRIM/UNMAP层420识别为SSD,并且可以发布TRIM/UNMAP命令,以便标识出哪些流式传输的磁盘映像块没有被操作系统410使用。换句话说,操作系统410发布TRIM/UNMAP命令来标识出SSD通常会用于进行碎片收集的块。这些块是空闲的磁盘空间,并且绝不会再次被操作系统410读取。
根据实施例,关于未使用或未分配的块的TRIM/UNMAP命令信息被分析和记录在日志或元数据文件中。该日志或元数据文件可被保存在磁盘映像之外或者作为磁盘映像的一部分。关于未分配的块的该信息被发送到服务器用于维护和分析,以便将来更高效地对磁盘映像进行流式传输。由TRIM/UNMAP层420接收的TRIM/UNMAP命令也可被传递到磁盘驱动器430。
通过在操作系统410与磁盘驱动器430之间添加TRIM/UNMAP层420,实施例可以标识出哪些流式传输的磁盘映像块没有被操作系统410使用。这些未分配的块被记录在日志或元数据文件中以供将来进行参考。因此,当随后将磁盘映像从一台计算机(诸如云服务器)流式传输到另一计算机时,只有在元数据文件中未列出的那些块需要被流式传输。
图5示出了根据实施例的磁盘映像准备方法500的流程图。在方框510中,服务器或客户端计算机在模拟的SSD上安装操作系统410。因为TRIM/UNMAP层420已经存在于新安装的操作系统410上,所以未分配或未使用的块被标识和修整。在方框520中,将被修整的块记录在日志或元数据文件中。在方框530中,根据实施例,伴随该日志或元数据文件来记录磁盘映像。
TRIM/UNMAP层420也可以实施其它的任务,包括但不限于流式传输功能本身。这在图4中由虚线箭头示出。例如,根据实施例,TRIM/UNMAP层420可经由因特网小型计算机系统接口(iSCSI)组网标准与来自云服务器的磁盘映像进行交互。根据实施例,可以按照两种方式进行流式传输。可单向进行流式传输,其中仅将映像从服务器传送到客户端(例如,在供应期间),或者双向进行流式传输,其中应用到客户端侧的磁盘映像的所有改变也被应用到在服务器中的磁盘映像的副本。
参考图6和图7,示出了根据实施例的磁盘映像的单向流式传输的工作流600和图解表示700。一旦如图5所示完成磁盘映像之后,便可将磁盘映像从服务器720流式传输到客户端710。在方框610中,客户端710请求来自服务器720的磁盘映像。如方框620中所示,服务器720启动对磁盘映像的流式传输。在方框630中,服务器720将未分配的块通知给客户端710。例如,服务器720可将未分配的块号的列表发送给客户端710。在方框640中,客户端710接收未分配的块的列表。一旦客户端710知道了没在使用的那些块时,客户端710将开始仅请求已分配的块,如方框650中所示。服务器720在方框660中接收客户端对已分配的块的请求,并在方框670中将已分配的块发送到客户端710。然后,客户端710接收从服务器720发送的已分配的块,如方框680中所示。
参考图8和图9,示出了根据实施例的磁盘映像的双向流式传输的工作流800和图解表示900。在方框810,客户端910请求来自服务器920的磁盘映像。如方框815所示,服务器920启动对磁盘映像的流式传输。在方框820中,服务器920将未分配的块通知给客户端910。例如,服务器920可以将未分配的块号的列表发送给客户端910。在方框825中,客户端910接收未分配的块的列表。一旦客户端910知道没在使用的那些块时,客户端910将开始仅请求已分配的块,如方框830中所示。服务器920在方框835中接收客户端对已分配的块的请求,并在方框840中将已分配的块发送到客户端910。然后,客户端910接收从服务器920发送的已分配的块,如方框845中所示。
在方框850中,客户端910还要向操作系统410模拟SSD,以便引入TRIM/UNMAP层420并且向服务器920传递回被标识和记录为未使用或未分配的块。举例来说,这种情况可能会发生在文件被删除时。服务器920然后在所存储的磁盘映像上将这些块标记为未分配的,如方框855所示。在收到时,服务器920能够更新磁盘映像的元数据,并且因此正确地维护有关未分配的块的信息,以及将该信息传递到可能希望对相同的磁盘映像进行流式传输的另一客户端。在方框860中,当客户端910改变或修改了已分配的块时,所述已分配的块被发送到服务器920。服务器920接收修改过的块并将修改过的块记录在所存储的磁盘映像上,如方框865所示。在图6-9中所示的顺序是示例性的,并且仅是客户端与服务器之间的整个交互的摘录。通常,客户端会按照任意顺序来发送关于未使用的块和修改过的块的多个请求。另外,关于未使用的块的信息不一定要在开始处被发送,而是可被分割于通信过程期间。
根据实施例,如果磁盘映像的冗余块被标识而不是被流式传输到客户端设备,则可以更高效地对磁盘映像进行流式传输。因此,实施例可用于对映像进行流式传输的云环境(即当在供应操作系统时启动操作系统)以及首先复制映像随后启动操作系统的云环境。
本领域技术人员将会理解,本发明的各个方面可体现为系统、方法或计算机程序产品。因此,本发明的各个方面可以采取全硬件实施例、全软件实施例(包括固件、常驻软件、微代码等)或者组合了软件和硬件方面的实施例(一般在文中统称为“电路”、“模块”或“系统”)的形式。此外,本发明的各个方面可以采取体现在一个或多个计算机可读介质(其具有体现在其上的计算机可读程序代码)的计算机程序产品的形式。
可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以例如但不限于是电子、磁性、光学、电磁、红外或半导体系统、装置或设备,或者前述任意适当的组合。计算机可读存储介质的较为具体的示例(非穷举性列表)可以包括以下:具有一条或多条线路的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦写可编程只读存储器(EPROM或闪存)、光纤、便携式只读光盘存储器(CD-ROM)、光存储设备、磁存储设备,或者前述任意适当的组合。在本文档的上下文中,计算机可读存储介质可以是能够容纳或存储由指令执行系统、装置或设备使用的或者与指令执行系统、装置或设备结合使用的程序的任何有形介质。
计算机可读信号介质可以包括随其所含的计算机可读程序代码传播的数据信号,例如,在基带内或者作为载波的一部分。这种传播的信号可采取各种形式中的任何一种,包括但不限于电磁、光学或其任何合适的组合。计算机可读信号介质可以是任何不是计算机可读存储介质的并且能够通信、传播或传输由指令执行系统、装置或设备使用的或者与指令执行系统、装置或设备结合使用的程序的计算机可读介质。
可以使用任何适当的介质(包括但不限于无线、有线线路、光纤、电缆、RF等或者前述任意适当的组合)来传输体现在计算机可读介质上的程序代码。
可以用一种或多种编程语言(包括诸如Java、Smalltalk、C++等的面向对象的编程语言,以及诸如“C”编程语言或类似的编程语言这样的常规的过程编程语言)的任意组合来书写用于实现本发明各方面的操作的计算机程序代码。程序代码可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为独立的软件包执行、部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后者的情形中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户的计算机,或者可以将连接安排至外部计算机(例如,通过使用因特网服务提供商的因特网)。
以上参照根据实施例的方法、装置(系统)和计算机程序产品的流程图说明和/或框图来描述了本发明的各个方面。可以理解,可通过计算机程序指令来实现流程图说明和/或框图的每个方框,以及流程图说明和/或框图中方框的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器来产生机器,从而使得通过计算机或其它可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图方框中所指定的功能/动作的装置。
还可以将这些计算机程序指令存储在可指导计算机、其它可编程数据处理装置或其它设备以特定方式运行的计算机可读介质中,从而使得存储在计算机可读介质中的指令产生包括实现流程图和/或框图方框中所指定的功能/动作的指令在内的制品。
还可以将计算机程序指令加载到计算机、其它可编程数据处理装置或其它设备,从而使一系列操作步骤在计算机、其它可编程装置或其它设备上执行以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或框图方框中所指定的功能/动作的过程。
本公开中的流程图和框图说明了根据各种实施例的系统、方法和计算机程序产品的可能实施方式的体系结构、功能性和操作。就此而言,流程图或框图中的每个方框可以表示模块、区段,或者代码的一部分,其包括用于实现指定逻辑功能的一个或多个可执行指令。还应当注意,在某些可选的实施方式中,方框中所指出的功能可以不按照附图中所指出的顺序发生。例如,实际上,取决于所涉及的功能性,可以大体上并行地执行连续示出的两个方框,或者有时可以以相反的顺序执行所述方框。还应当注意,通过实现特定功能或动作的、基于专用硬件的系统,或者专用硬件和计算机指令的组合,可以实现框图和/或流程图说明中的每个方框,以及框图和/或流程图说明中方框的组合。
文中所使用的术语仅是为了描述特定的实施例,而并非意在限制本发明。如文中所使用的,单数形式“一”、“一种”以及“该”还旨在包括复数形式,除非上下文另有明确说明。还应该进一步理解到,当在本说明书中使用术语“包括”和/或“包含”时,特指存在所陈述的部件、整体、步骤、操作、元件和/或组件,但是并不排除存在或者附加有一个或多个其它的部件、整体、步骤、操作、元件、组件和/或其组群。
以下权利要求中的所有装置或步骤加上功能元件的相应结构、材料、动作和等同物旨在包括用于实现与明确要求保护的其它受保护元件相结合的功能的任何结构、材料或动作。已经出于说明和描述的目的给出了对本发明的描述,而并不旨在穷举或将本发明限制于所公开的形式。对本领域的普通技术人员来说,在不背离本发明的范围和精神的情况下,很多修改和变形将是显而易见的。选择和描述实施例是为了最好地解释本发明的原理和实际应用,以及使本领域的其他普通技术人员能够针对具有适于预期特定用途的各种修改的各种实施例来理解本发明。
文中所描绘的流程图仅是一种示例。在不背离本发明的精神的情况下,该示图或文中所描述的步骤(或操作)可以存在变化。例如,可以按照不同的顺序实现这些步骤,或者可以添加、删除或修改这些步骤。所有这些变化都被认为是所要求保护的本发明的一部分。
虽然已经描述了本发明的优选实施例,但应理解,本领域的技术人员,无论是现在还是将来,均可做出落入随后权利要求的范围内的各种改进和增强。这些权利要求应被解释来维持对最初描述的本发明的正确保护。

Claims (14)

1.一种用于为磁盘映像流式传输标识冗余数据的计算机实现的方法,其包括:
在具有处理设备的情况下,由客户端在操作系统与磁盘驱动器之间添加TRIM/UNMAP层,以便支持TRIM/UNMAP命令;
使用所述TRIM/UNMAP层,由客户端标识出所述操作系统未分配的被流式传输的磁盘映像块;
由客户端将所标识出的未分配的块流式传输到服务器用于分析和存储;
响应于客户端请求被流式传输的磁盘映像,客户端从服务器接收未分配的块号的列表;
响应于客户端请求已分配的块,客户端从服务器接收已分配的块;以及
客户端向操作系统模拟固态驱动以便引入TRIM/UNMAP层,并且向服务器发送被标识为未分配的块,其中所述未分配的块由服务器在磁盘映像上标记为未分配的。
2.根据权利要求1所述的计算机实现的方法,其中,所述TRIM/UNMAP层被作为模拟的固态驱动而呈现给所述操作系统。
3.根据权利要求1所述的计算机实现的方法,其中,所述客户端使用所述TRIM/UNMAP层来标识出由于被所述客户端删除而未分配的被流式传输的磁盘映像块,并且将未分配的块传送回给所述服务器用于分析和存储。
4.根据权利要求1所述的计算机实现的方法,其中,所述客户端标识和传送修改过的经分配的块给所述服务器用于分析和存储。
5.根据权利要求1所述的计算机实现的方法,其中,所标识出的未分配的块被记录在与所述磁盘映像相关联的元数据文件或日志中。
6.根据权利要求1所述的计算机实现的方法,其中,所述TRIM/UNMAP层在所述服务器与客户端之间单向或双向地流式传输映像数据。
7.根据权利要求1所述的计算机实现的方法,其中,所述TRIM/UNMAP命令独立于所述磁盘驱动器被集成到所述操作系统中。
8.一种用于为磁盘映像流式传输标识冗余数据的计算机系统,其包括:
被配置为在具有处理设备的情况下,在操作系统与磁盘驱动器之间添加TRIM/UNMAP层以便支持TRIM/UNMAP命令的模块;
被配置为使用所述TRIM/UNMAP层来标识出所述操作系统未分配的被流式传输的磁盘映像块的模块;
被配置为将所标识出的未分配的块流式传输到服务器用于分析和存储的模块;
被配置为响应于客户端请求被流式传输的磁盘映像客户端从服务器接收未分配的块号的列表的模块;
被配置为响应于客户端请求已分配的块客户端从服务器接收已分配的块的模块;以及
被配置为客户端向操作系统模拟固态驱动以便引入TRIM/UNMAP层并且向服务器发送被标识为未分配的块的模块,其中所述未分配的块由服务器在磁盘映像上标记为未分配的。
9.根据权利要求8所述的计算机系统,其中,所述TRIM/UNMAP层被作为模拟的固态驱动而呈现给所述操作系统。
10.根据权利要求8所述的计算机系统,其中,所述客户端使用所述TRIM/UNMAP层来标识出由于被所述客户端删除而未分配的被流式传输的磁盘映像块,并且将未分配的块传送回给所述服务器用于分析和存储。
11.根据权利要求8所述的计算机系统,其中,所述客户端标识和传送修改过的经分配的块给所述服务器用于分析和存储。
12.根据权利要求8所述的计算机系统,其中,所标识出的未分配的块被记录在与所述磁盘映像相关联的元数据文件或日志中。
13.根据权利要求8所述的计算机系统,其中,所述TRIM/UNMAP层在所述服务器与客户端之间单向或双向地流式传输映像数据。
14.根据权利要求8所述的计算机系统,其中,所述TRIM/UNMAP命令独立于所述磁盘驱动器被集成到所述操作系统中。
CN201310560131.0A 2012-11-28 2013-11-12 为磁盘映像流式传输标识冗余数据的计算机实现方法和计算机系统 Expired - Fee Related CN103853501B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/687,827 US9235344B2 (en) 2012-11-28 2012-11-28 Identifying redundant data for disk image streaming
US13/687,827 2012-11-28

Publications (2)

Publication Number Publication Date
CN103853501A CN103853501A (zh) 2014-06-11
CN103853501B true CN103853501B (zh) 2017-04-12

Family

ID=50774338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310560131.0A Expired - Fee Related CN103853501B (zh) 2012-11-28 2013-11-12 为磁盘映像流式传输标识冗余数据的计算机实现方法和计算机系统

Country Status (2)

Country Link
US (2) US9235344B2 (zh)
CN (1) CN103853501B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111108488B (zh) 2017-11-07 2022-05-10 华为技术有限公司 内存块回收方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467455A (zh) * 2010-10-29 2012-05-23 三星电子株式会社 存储系统、数据存储设备、用户设备及其数据管理方法
CN102662606A (zh) * 2012-03-12 2012-09-12 记忆科技(深圳)有限公司 Raid配置信息的处理方法和raid控制器

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108697A (en) * 1997-10-06 2000-08-22 Powerquest Corporation One-to-many disk imaging transfer over a network
US8307187B2 (en) * 2008-09-12 2012-11-06 Vmware, Inc. VDI Storage overcommit and rebalancing
JP5342014B2 (ja) * 2009-08-31 2013-11-13 株式会社日立製作所 複数のフラッシュパッケージを有するストレージシステム
JP4703753B2 (ja) * 2009-09-30 2011-06-15 株式会社東芝 情報処理装置、半導体記憶装置、及びプログラム
US8375194B2 (en) * 2010-05-27 2013-02-12 Hewlett-Packard Development Company, L.P. System and method for freeing memory
US9411517B2 (en) * 2010-08-30 2016-08-09 Vmware, Inc. System software interfaces for space-optimized block devices
US20120059976A1 (en) * 2010-09-07 2012-03-08 Daniel L. Rosenband Storage array controller for solid-state storage devices
US10339056B2 (en) * 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9778860B2 (en) * 2012-09-12 2017-10-03 Microsoft Technology Licensing, Llc Re-TRIM of free space within VHDX

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467455A (zh) * 2010-10-29 2012-05-23 三星电子株式会社 存储系统、数据存储设备、用户设备及其数据管理方法
CN102662606A (zh) * 2012-03-12 2012-09-12 记忆科技(深圳)有限公司 Raid配置信息的处理方法和raid控制器

Also Published As

Publication number Publication date
US9229641B2 (en) 2016-01-05
CN103853501A (zh) 2014-06-11
US20140149659A1 (en) 2014-05-29
US20140149660A1 (en) 2014-05-29
US9235344B2 (en) 2016-01-12

Similar Documents

Publication Publication Date Title
CN106020940B (zh) 用于确定数据集的放置的存储层级的方法和系统
CN103365725B (zh) 在多个云之间动态分配工作负荷部署单元的方法和系统
CN103299274B (zh) 确定运行图像的最佳计算环境的系统和方法
CN104205056B (zh) 跨多个云的工作负荷的动态分配的方法和系统
CN103853596B (zh) 用于在工作组之间迁移虚拟机的方法和系统
CN104424013B (zh) 在计算环境中部署虚拟机的方法和设备
CN103368767B (zh) 用于在容许故障的因特网云上部署软件应用的方法和系统
CN103814358B (zh) 服务器群内的虚拟机放置
CN105359088B (zh) 使用动态生成的虚拟磁盘内容优化供应时间的方法
CN103297492B (zh) 用于在联网计算环境之间迁移数据的方法和系统
CN103856480B (zh) 虚拟机迁移中的用户数据报协议分组迁移方法和装置
CN104216662B (zh) 用于跨远程复制关系的卷布置的方法和系统
CN105893139A (zh) 在云存储环境中用于向租户提供存储服务的方法和装置
CN104937544B (zh) 用于计算任务结果的方法、计算机可读介质和计算机系统
CN104067265A (zh) 用于支持在云中的安全应用部署的系统和方法
CN105843703A (zh) 将系统管理员动作提取到提供系统问题解决方案的工作流
CN104253831A (zh) 一种用于在云计算环境中部署应用的方法和系统
CN103455486B (zh) 安置数据库的方法和系统
CN104866513A (zh) 用于跨租户数据访问的系统和方法
CN104657411B (zh) 用于信息技术资源管理的方法和系统
CN104660669A (zh) 针对应用模式组件从多个主机选择一个主机的方法和系统
CN105897805A (zh) 对多层架构的数据中心的资源进行跨层调度的方法和装置
CN104603762A (zh) 利用并行文件访问协议的自动校准以及元数据管理支持对文件系统的共享存储的协调访问
US10936208B2 (en) Point-in-time backups via a storage controller to an object storage cloud
CN106066812A (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170412

CF01 Termination of patent right due to non-payment of annual fee