CN102422277A - 实时地将lun转换为文件或将文件转换为lun - Google Patents

实时地将lun转换为文件或将文件转换为lun Download PDF

Info

Publication number
CN102422277A
CN102422277A CN2010800214852A CN201080021485A CN102422277A CN 102422277 A CN102422277 A CN 102422277A CN 2010800214852 A CN2010800214852 A CN 2010800214852A CN 201080021485 A CN201080021485 A CN 201080021485A CN 102422277 A CN102422277 A CN 102422277A
Authority
CN
China
Prior art keywords
lun
subregion
host computer
storage
size
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010800214852A
Other languages
English (en)
Other versions
CN102422277B (zh
Inventor
C·廖内蒂
R·派克
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 CN102422277A publication Critical patent/CN102422277A/zh
Application granted granted Critical
Publication of CN102422277B publication Critical patent/CN102422277B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/0689Disk arrays, e.g. RAID, JBOD
    • 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
    • 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/45558Hypervisor-specific management and integration aspects
    • 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/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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

Abstract

提供了可以存储多个数据集(例如,诸如作为虚拟硬驱动器来存储的虚拟机之类的数据和/或应用程序)的LUN。LUN被划分为多个分区。一个或多个数据集可以被存储在每一个分区中。结果,可以通过单个LUN,而并非通过与数据集的数量成比例的数量的LUN来访问多个数据集。此外,还可以旋转存储在LUN中的数据集。可以生成专用于存储被存储在第一LUN中的多个数据集中的一数据集的第二LUN。该数据集被复制到第二LUN,而第二LUN被展示给主机计算机以使得主机计算机能够与该数据集进行交互。更进一步,数据集可以被从第二LUN旋转回到第一LUN的分区。

Description

实时地将LUN转换为文件或将文件转换为LUN
背景技术
计算机数据存储是指用于将数字数据保留一些时间的组件、设备和/或记录介质。存在各种类型的物理存储设备,包括诸如随机存取存储器(RAM)设备和只读存储器(ROM)设备之类的存储器设备(例如,半导体存储),以及诸如光盘和磁存储器(硬盘、磁带等等)之类的大容量存储设备,以及其他类型的存储。可以以各种方式汇合这样的存储设备以提供较高级别的存储,以及较高级别的存储可靠性。例如,可以组合许多存储设备以构成RAID(独立磁盘冗余阵列)阵列、存储区域网络(SAN),及其他存储的集合。
存储器虚拟化是从物理存储中抽象虚拟或逻辑存储的一种方式。被配置成提供虚拟存储的存储系统可以向计算机提供计算机可以访问的逻辑存储位置。存储系统被配置成将逻辑存储位置映射到物理存储中的物理存储位置。在一种类型的虚拟存储中,逻辑存储设备可以被称为LUN(逻辑单元号)。一个计算机可以具有由该计算机可以访问的存储系统向它展示的一个或多个LUN。可在LUN中通过该LUN内的偏移或位置来对数据块进行寻址,其可以被称为逻辑块地址(LBA)。
各种类型的数据可以被存储在虚拟存储中,包括虚拟机。虚拟机是物理计算机的软件实现,其类似于物理计算机执行程序。“系统虚拟机”可以提供完整的计算机平台,包括操作系统。这样的系统虚拟机可以执行一个或多个程序。“进程虚拟机”被设计成运行单个程序。代表虚拟机的一个或多个文件可以被称为“虚拟硬驱动器”。
当前,对应于虚拟机的虚拟映象通常被部署在虚拟存储系统的孤立的LUN中。存储系统向主机计算机展示,以使得主机计算机能够执行虚拟机。当由主机计算机实现了大量的虚拟机(例如,数百、数千,或更多虚拟机)时,主机计算机花费大量的资源来管理和索引虚拟机。例如,一个当前计算机文件系统不能够支持超过255个分配的LUN。此外,在给计算机文件系统分配了50个LUN之后,该计算机文件系统的性能还可能会变差。如此,根据传统技术利用在LUN中实现的虚拟机来管理大量的虚拟机现实上是不可能的。
发明内容
提供本发明内容以便以简化的形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
提供了用于将多个数据集存储在逻辑单元号(LUN)中以提高性能的方法、系统,以及计算机程序产品。提供了可以存储多个数据集(例如,作为虚拟硬驱动器来存储的虚拟机)的LUN。可以将LUN划分为多个分区。一个或多个数据集可以被存储在每一个分区中。结果,可以通过单一LUN,而并非通过与数据集的数量成比例的数量的LUN来访问多个数据集。
此外,还可以旋转存储在LUN中的数据集。在一种实现中,提供了存储阵列控制器中的系统和方法。从存储阵列向第一主机计算机展示第一LUN。从第一主机计算机接收关于第一LUN的多个分区中的一个分区的旋转请求(该分区可以是多个分区中的任何一个)。该分区存储被存储在多个分区中的多个数据集中的一个数据集。确定第一LUN中的分区的大小。生成指示第二分区的位置和大小的分区表。生成存储阵列的第二LUN以具有被配置成容纳第二LUN的签名、分区表,以及第二分区的大小。签名和分区表被存储在第二LUN中。第一LUN的分区被从第一LUN复制到第二LUN中的由第二分区的分区表中所指示的位置处。第二LUN被映射到第二主机计算机。
随后,可以从第二主机计算机接收使第二LUN引退的请求。确定第二分区的大小。第二分区的副本被存储在第一LUN中。第一LUN的分区表被更新以指出对应于第一LUN的存储了第二分区的副本的存储区域的分区。
如果第二分区的大小不超过第一LUN中的最初旋转的分区的大小,则第二分区的副本可以被存储在第一LUN的该分区中。如果第二分区的大小超过第一LUN中的最初旋转的分区的大小,则可以通过一个存储区域追加到第一LUN来扩展第一LUN的大小,而第二分区的副本可以被存储在第一LUN的所追加的存储区域中。
在另一种实现中,提供了第一主机计算机中的系统和方法。接收由存储阵列向第一主机计算机展示的第一逻辑单元号(LUN)的指示。签名和分区表被存储在第一LUN中。将第一LUN分区划分为多个分区。多个数据集被存储在多个分区中。对多个分区中的存储了多个数据集中的一数据集的一分区的访问被关闭。将关于关闭的分区的旋转请求传送到存储阵列。存储阵列被配置成响应于旋转请求,将该分区复制到第二LUN,并将第二LUN映射到第二主机计算机。
此处还描述了能够执行和/或实现上文以及此处别处所描述的方法的,并用于实现如此处所描述的更进一步的实施例的计算机系统和计算机程序产品(存储在计算机可读介质中)。
下面将参考各个附图,详细描述本发明的进一步特点和优点,以及本发明的各实施例的结构和操作。值得注意的是,本发明不仅限于此处所描述的特定实施例。这样的实施例只是出于例示的目的。基于此处所包含的原理,另外的实施例对那些相关领域技术人员是显而易见的。
附图简述
结合到本说明书并构成本说明书的一部分的附图示出了本发明,且与描述一起,进一步用于说明本发明的原理,并允许那些精通相关的技术人员实施和使用本发明。
图1示出了其中多个计算设备访问共享存储的计算和数据存储系统。
图2示出了图1的计算和数据存储系统的框图,其中存储阵列被以虚拟存储的形式呈现给主机计算机。
图3示出了以逻辑单元号(LUN)的形式提供虚拟存储的存储设备的框图。
图4示出了执行多个虚拟机的主机计算机的框图。
图5示出了根据示例实施例的具有多个分区的LUN的框图。
图6示出了根据示例实施例的主机计算机的框图。
图7示出了根据示例实施例的提供用于划分LUN的过程的流程图。
图8示出了根据示例实施例的存储阵列控制器的框图。
图9示出了根据示例实施例的用于将对数据集的访问从第一主机计算机旋转(pivot)到第二主机计算机的过程。
图10示出了根据示例实施例的提供了用于将数据集从第一主机计算机旋转到第二主机计算机的过程的流程图。
图11示出了根据示例实施例的阵列控制器的框图。
图12示出了根据示例实施例的计算和数据存储系统的框图。
图13示出了根据示例实施例的提供用于允许分区被旋转的过程的流程图。
图14示出了根据示例实施例的提供在接收对旋转的LUN的访问的第二主机计算机上实现的过程的流程图。
图15示出了根据示例实施例的用于将对数据集的访问从第二主机计算机旋转到第一主机计算机的过程。
图16示出了根据示例实施例的提供了用于将数据集从第二主机计算机旋转到第一主机计算机的过程的流程图。
图17示出了根据示例实施例的图12的计算和数据存储系统的框图。
图18示出了根据示例实施例的提供用于允许分区被旋转的过程的流程图。
图19示出了可以被用来实现本发明的各实施例的示例计算机的框图。
通过下面的结合附图对本发明进行的详细说明,本发明的特点和优点将变得更加显而易见,在附图形中,类似的附图标记在整个说明书中标识对应的元素。在附图中,相同的附图标记一般指示相同的、功能上类似的和/或在结构上类似的元素。元素首先在其中出现的附图由对应的附图标记中最左边的数字来指示。
具体实施方式
I.引言
本说明书公开了包括本发明的特征的一个或多个实施例。所公开的实施例只例示了本发明。本发明的范围不仅限于所公开的实施例。本发明由所附的权利要求进行定义。
说明书中对“一个实施例”、“实施例”、“示例实施例”等等的引用表示所描述的实施例可包括特定特征、结构或特性,但是,每一个实施例可以不一定包括该特定特征、结构,或特征。此外,这样的短语不一定是指同一个实施例。此外,当参考一个实施例描述特定特征、结构或特性时,假定在本领域技术人员学识范围内,可以与其他实施例一起实施这样的特征、结构或特性。
此外,还应该理解,此处所使用的空间描述(例如,“上方”、“下面”、“向上”、“向左”、“向右”、“向下”、“顶部”、“底部”、“垂直”、“水平”等等)只用于说明目的,此处所描述的结构的实际实施方式可以以任何定向或方式排列。
II.存储系统实施例
本发明的各实施例涉及用于存储数据和访问存储在计算机数据存储器中的数据的技术。例如,图1示出了其中多个计算设备访问共享存储的计算和数据存储系统100。如图1所示,系统100包括第一-第三主机计算机102a-102c,通信网络104,以及存储阵列106。存储阵列106包括多个存储器单元/存储设备114a-114n和存储器通信网络108。在图1的示例中,第一-第三主机计算机102a-102c共享对存储阵列106的访问,包括被允许将数据存储在存储阵列106的存储设备114a-114n中,并检索存储在其中的数据。
虽然在图1中示出了三个主机计算机102a-102c,但是,可以有任意数量的主机计算机102耦合到网络100以共享存储阵列106,包括数百、数千或者甚至更多数量的计算设备。主机计算机102的示例包括固定的和移动计算设备。例如,主机计算机102a-102c中的每一个都可以是服务器、台式计算机(例如,个人计算机)、移动计算机(例如,个人数字助理(PDA)、膝上型计算机、笔记本计算机、智能电话等等),或其他类型的计算设备。
主机计算机102a-102c中的每一个在图1中都被示为通过网络104和相对应的通信链路与存储阵列106进行通信。例如,如图1所示,主机计算机102a可通过第一通信链路110a与网络104通信地耦合,主机计算机102b可通过第二通信链路110b与网络104通信地耦合,而主机计算机102c可通过第三通信链路110c与网络104通信地耦合。存储阵列106被示为通过第四通信链路110d与网络104通信地耦合。网络104可以是LAN、WAN(广域网),或诸如因特网之类的网络的组合。第一-第四通信链路110a-110d可包括任何类型的通信链路或其组合,包括有线和/或无线链路,如IEEE802.11无线局域网(WLAN)无线链路、全球微波互联接入(Wi-MAX)链路、蜂窝网络链路、无线个域网(PAN)链路(例如,BluetoothTM链路)、以太网链路、USB链路等等。
虽然在图1中示出了存储设备114a-114n,但是,在存储阵列106中可以包括任意数量的用于存储数据的存储设备114,包括数百、数千,或者甚至更多数量的存储设备。在图1中阵列控制器112和存储设备114a-114n被示为通过存储器通信网络108通信地耦合在一起。存储设备114a-114n和存储器通信网络108可以以任何配置在存储阵列106中排列或相关联,包括以存储区域网络(SAN)、光纤通道阵列、网络附连存储(NAS)等等。存储设备114可以是任何类型的存储设备,易失性和/或非易失性,包括存储器设备和/或大容量存储设备。存储设备114的示例包括存储器设备(例如,半导体存储器),如随机存取存储器(RAM)设备(易失性或非易失性),以及只读存储器(ROM)设备,以及诸如光盘和磁存储器(硬盘、磁带等等)之类的大容量存储设备,以及其他类型的存储器。
存储虚拟化是从物理存储中抽象逻辑存储的一种方式。被配置成提供虚拟存储的存储系统可以向计算机提供计算机可以访问的逻辑存储位置。存储系统被配置成将逻辑存储位置映射到物理存储中的物理存储位置。
例如,如图1所示,存储阵列106可包括阵列控制器112。阵列控制器112可以被配置成基于存储设备114a-114n的物理存储来向主机计算机102a-102c分配逻辑存储。例如,阵列控制器112可以被配置成组合存储阵列106的物理存储设备集来创建RAID(独立磁盘冗余阵列)阵列或集。RAID集是存储设备114a-114n的逻辑构造。可以在用于存储阵列106的各种类型的RAID集中配置存储阵列106。RAID集的一个示例是“RAID 1”,其中,存储设备114a-114n包括镜像存储设备。更多类型的RAID集可以可另选地被包括在存储阵列106中,包括RAID 0、RAID 5、RAID 6,以及RAID 10配置,这些对相关领域技术人员是已知的。阵列控制器112可以使用RAID集中的可使用存储空间的某些部分来生成硬驱动器的叫做LUN(逻辑单元号)的虚拟表示。计算机102a-102c中的每一个都可以具有通过阵列控制器112向它展示的一个或多个LUN,以便进行存储访问。
例如,图2示出了图1的计算和数据存储系统100的框图,其中,存储阵列106通过阵列控制器106以虚拟存储202的形式被呈现给主机计算机102a-102c。如图2所示,虚拟存储202包括多个LUN 204a-204m。LUN204a-204m各自由阵列控制器112作为存储设备114a-114n(在图1中所示出的)的存储的一部分来生成的,该部分可以作为虚拟存储呈现给计算机102a-102c中的一个。例如,图3示出了存储设备300的框图,这是图1所示的存储设备114a-114n中的一个的示例。如图3所示,存储设备300在逻辑上被分成多个LUN 302a-302o。每一个LUN 302都可以是存储设备300的任何部分,包括完整的硬盘、硬盘的一部分(例如,块的范围)、主轴、存储器设备的存储器区域,等等。每一个LUN 302都可以被展示给主机计算机。主机计算机的操作系统与LUN 302进行交互,好像它是物理存储。
回顾图2,虽然示出了LUN 204a-204m,但是,在存储阵列106中可以包括任何数量的LUN 204,包括数百、数千,或者甚至更多数量的LUN204。此外,还可以向计算机102a-102c中的每一个呈现任何数量的LUN204。每一个LUN 204都包括多个可寻址的数据块。LUN 204a-204中的特定数据块可以由计算机102通过标识特定LUN,并通过以一个或多个逻辑块地址(LBA)的形式提供该特定LUN内的偏移或位置来寻址。
各种类型的数据和/或应用程序都可以被存储在虚拟存储202中。这样的数据和应用程序此处被称为“数据集”。数据集的一个示例是虚拟机。虚拟机是物理计算机的软件实现,其类似于物理计算机执行程序。“系统虚拟机”可以提供完整的计算机平台,包括操作系统。这样的系统虚拟机可以执行一个或多个程序。“进程虚拟机”被设计成运行单个程序。虚拟机的示例包括SQL服务器、web服务器等等。表示虚拟机的一个或多个文件可以被称为“虚拟映象”。
当前,对应于虚拟机的虚拟映象被部署在虚拟存储系统的孤立的LUN(例如,图2所示出的LUN 204中的一个)中。在这样的虚拟存储系统中,LUN被展示给主机计算机,以使得主机计算机能够执行虚拟机。当由主机计算机实现大量的虚拟机(例如,数百、数千,或更多虚拟机)时,向主机计算机展示相等数量的包含虚拟机映像的LUN。
例如,图4示出了执行多个虚拟机402a-402p的主机计算机102a的框图。此外,图4还示出了包括作为虚拟机402a-402p的存储被分配给计算机102a的多个LUN 204a-204p的虚拟存储202。如图4所示,LUN 204a-204p中的每一个都包括虚拟硬驱动器404a-404p中的相对应的虚拟硬驱动器。虚拟硬驱动器404a-404p是用于对应于虚拟机402a-402p的数据的虚拟存储位置。例如,虚拟硬驱动器404a-404p可各自存储由计算机102a作为虚拟机402a-402p中的相对应的一个虚拟机来执行的一个或多个文件。此外,虚拟硬驱动器404a-404p中每一个还可以为虚拟机402a-402p中的相对应的虚拟机提供虚拟存储。
虚拟机通过若干抽象级别来访问存储,从虚拟存储到物理存储器。某些虚拟机也可以被称为“虚拟服务器”。在操作期间,虚拟机402a可能试图向其虚拟硬驱动器404a中写入一数据块。计算机102a的操作系统(OS)可以拦截该数据块写操作,并可以执行转换以确定应该相对于LUN 204a在哪里写入该数据块。例如,虚拟机402a可能试图向虚拟硬驱动器404a中写入具有394的LBA的数据块。OS可以确定虚拟硬驱动器404a中的数据块偏移394相当于LUN 204a中的9942的LBA。如此,OS可能试图向LUN 204a的LBA 9942写入数据块。阵列控制器112(在图1中)可以从主机计算机102a的OS接收对于LBA 9942的写入请求,并可以将数据块写入到存储阵列106中对应于LBA 9924的实际物理位置(例如,在存储设备114a的主轴47和主轴48上的实际主轴块12345)。
主机计算机102a花费大量的资源来管理和索引LUN 204a-204p以及虚拟机402a-402p,其数量可以达数百、数千,或者甚至更大的数量。将LUN204a-204p当作好像它们是物理存储的主机计算机102a监视LUN204a-204p以确保它们正常操作,从而实质上管理LUN 204a-204p。此外,还可能存在许多到存储阵列106中的每一个存储设备的路径,而主机计算机102也可能试图管理管理每一个路径。这导致主机计算机102a要维持需要大量开销。带有单个附接的LUN的服务器管理8个相关的设备是常见的。如果向服务器展示大量的LUN(以及相对应的多个路径),则服务器可能要花费大量时间发现路径和存储设备集。在带有足够数量的展示的LUN的情况下,服务器可能变得没有响应和/或可能崩溃。如此,利用在孤立的LUN中实现的虚拟机来管理极大量的虚拟机在现实上是不可能的。
在一个实施例中,提供了可以存储多个数据集的LUN,包括多个虚拟机(作为虚拟硬驱动器来存储)。可以将LUN划分为多个分区。一个或多个数据集可以被存储在每一个分区中。结果,需要访问多个数据集的主机计算机可以通过单个LUN,而并非通过与数据集的数量成比例的数量的LUN来访问多个数据集。以此方式,由主机计算机跟踪的硬件量(例如,被主机计算机视为硬件的LUN)被减少。
例如,图5示出了根据示例实施例的LUN 500的框图。如图5所示,LUN 500包括多个分区506a-606p。此外,每一个分区存储数据集508a-508p中的相对应的数据集。替换地,可以有一个以上的数据集508被存储在每一个分区506中。通过允许多个数据集被存储在一个LUN中,可以向主机计算机分配较少数量的LUN,以使得该主机计算机能够访问相同数量或更大数量的数据集(例如,每LUN分区数量的倍数)。
在各实施例中,阵列控制器或主机计算机可以划分一LUN,如图5所示。例如,图6示出了根据示例实施例的主机计算机602的框图。主机计算机602是计算机102a-102c中的一个的示例。如图6所示,主机计算机602包括LUN分区器(partitioner)604。LUN分区器604被配置成允许主机计算机602将诸如图5的LUN 500之类的LUN划分为多个分区506。
LUN分区器604可以被配置成以各种方式来划分LUN。例如,图7示出了根据示例实施例的提供用于划分LUN的过程的流程图700。在一个实施例中,流程图700可以由图6所示出的主机计算机602来执行。基于关于流程图700的讨论,其他结构和操作实施例对相关领域技术人员是显而易见的。下面描述了流程图700。
如图7所示,流程图700从步骤702开始。在步骤702中,接收由存储阵列向第一主机计算机展示的逻辑单元号(LUN)的指示。例如,在一个实施例中,主机计算机602可以从诸如图2所示出的阵列控制器112之类的阵列控制器接收向主机计算机602展示诸如图5所示出的LUN 500之类的LUN的指示。LUN 500被展示给主机计算机602,以便主机计算机602可以访问作为虚拟存储的LUN 500。可以通过LUN标识符(例如,标识号码)和由LUN 500所提供的存储量来向主机计算机602指示LUN 500。例如,可以向主机计算机602提供逻辑块地址(LBA)的范围以指示LUN 500的存储量。
在步骤704中,签名和分区表被存储在LUN中。例如,如图5所示,LUN分区器604可以将签名502和分区表504存储在LUN 500中。签名502是LUN 500的数字和/或盘签名,并可包括各种信息,包括LUN 500的标识信息。分区表504是被配置成指示由LUN分区器604在LUN 500中形成的分区的位置和大小的数据结构。
在步骤706中,将LUN分区划分为多个分区。在一实施例中,LUN分区器604被配置成将LUN 500划分为多个分区506a-506p。根据主机计算机602的需要,LUN 500可以具有任何数量的分区506,并可以符合LUN500的存储量。LUN分区器604生成分区506,并在分区表504中指示分区506。例如,LUN分区器604可以以与基LBA(例如,LBA 0)的LBA偏移的形式在分区表504中指示分区506a-506p。例如,分区表504可以指示签名502在LUN 500中的LBA范围(例如,LBA 0到LBA 600),分区表504的LBA范围(例如,LBA 601到LBA 10000),分区506a的LBA范围(例如,LBA 10001到LBA 123456),分区506b的LBA范围(例如,LBA 123457到LBA 654321),分区506c的LBA范围(例如,LBA 654322LBA 999999)等等。
在步骤708中,多个数据集被存储在多个分区中。例如,如图5所示,主机计算机602可以将数据集508a-508p中的一个(或多个)存储在分区506a-506p中的每一个中。如上文所描述的,数据集508可以是形成诸如虚拟机(虚拟机硬驱动器)之类的数据和/或应用程序等等的一个或多个文件。例如,类似于图4所示出的主机计算机102a,主机计算机602可以操作多个虚拟机402a-402p,每一个虚拟机都具有被作为图5所示出的数据集508a-508p中的一个数据集存储的相对应的虚拟硬驱动器。由于多个虚拟硬驱动器可以被存储在LUN 500中(作为数据集508),因此,对于相同或者甚至较大数量的虚拟机,主机计算机602具有较少的LUN来管理,从而允许主机计算机602以较高级别的存储性能支持较大数量的虚拟机。
此外,实现从存储多个数据集的LUN“旋转”数据集和/或分区的能力。例如,LUN 500可以将数据集508a-508p作为数据存储的形式存储在多个分区中,数据集508a-508p中的个体数据集可以被从LUN 500复制到与进一步的主机计算机相关联的相应的LUN。进一步的主机计算机可以访问相应的LUN中的数据集。如此,数据集的所有权可以被从第一主机计算机旋转到第二主机计算机,给该主机计算机提供了对专用LUN的形式的数据集的访问。此外,当第二主机计算机不再需要访问数据集时,通过将数据集从专用LUN复制回多分区LUN,第二主机计算机可以将数据集的所有权旋转回第一主机计算机。
将多个数据集存储在LUN中,以及将对数据集的访问旋转到其他LUN的能力,使得主机计算机的虚拟机管理器能将从管理相对少数量的虚拟机扩展到管理数万,成千上万,或者甚至更大数量的虚拟机。此外,存储阵列还被允许将当前没有被使用的LUN放回多分区LUN中。当前,市场上销售的存储阵列可以存储固定数量的LUN。例如,由位于麻省霍普金顿(Hopkinton)市的EMC公司生产的EMC CLARiiONTM系列只能支持4096个LUN。根据此处所描述的允许数据集在被需要之前暂停的各实施例,存储阵列可以比按常规方式存储多10倍的LUN。例如,在特定时间,可以由存储阵列展示4096个LUN,但是,允许对于40,000个数据集的长期存储。
值得注意的是,标准文件服务器可以将许多数据集存储在可以被用来分发数据集的网络共享上。然而,如上文所描述的,当与对文件系统的粗(例如,块级别)访问相比时,网络附加的文件系统缺乏速度和功能。许多高级功能对块级别访问系统可用而在网络附连的文件系统上不可用。例如,网络附连的文件系统可以将一组虚拟硬驱动器分散到一组驱动器中,以使得虚拟硬驱动器不再是连续的。相比之下,在块级别访问系统中,可以将不同的虚拟硬驱动器置于LUN的每一个分区中。由于每一个分区的起始块和末端块是已知的,因此,实现了完整的块级别局部性。结果,向主机计算机展示的LUN的数量被减少,并实现了性能的连续性和局部性。
在下一节描述了将多分区LUN的数据集/分区旋转到进一步的LUN的示例,并在随后的一节描述了将LUN的数据集旋转到多分区LUN的分区的示例。
III.用于将数据集/LUN分区旋转到LUN的示例实施例
在一个实施例中,对数据集的访问可以从第一主机计算机旋转到第二主机计算机。例如,可以执行对数据集的旋转以提供对第二主机计算机处数据集的访问,因为第二主机计算机不比第一主机计算机繁忙,或由于其他理由。可以以各种方式执行这样的旋转,包括配置存储阵列的阵列控制器来执行旋转。例如,图8示出了根据示例实施例的阵列控制器802的框图。阵列控制器802类似于上文所描述的阵列控制器112(图1和2),带有如下文所描述的区别。如图8所示,阵列控制器802包括数据集旋转模块804。数据集旋转模块804使阵列控制器802能旋转对数据集的访问。例如,数据集旋转模块804可以被配置成执行图9所示出的步骤902。在步骤902中,通过将包含数据集的LUN分区映射到第二LUN,将对数据集的访问从第一主机计算机旋转到第二主机计算机。
可以以各种方式来配置阵列控制器802以执行步骤902,并可以以各种方式来执行步骤902。例如,图10示出了根据示例实施例的提供用于将数据集从第一主机计算机旋转到第二主机计算机的过程的流程图1000。流程图1000是图9所示出的步骤902的示例,在一个实施例中,可以由图8所示出的阵列控制器802来执行。例如,图11示出了根据示例实施例的阵列控制器802的框图。为了说明,参考图11所示出的阵列控制器802的示例描述了流程图1000。如图11所示,阵列控制器802包括LUN分配器1102和数据集旋转模块804。数据集旋转模块804包括旋转请求接收器1104、LUN生成器1106,以及分区复制器1108。基于关于流程图1000的讨论,其他结构和操作实施例对相关领域技术人员是显而易见的。
出于例示的目的,下面参考图12描述了流程图1000,该图示出了根据示例实施例的计算和数据存储系统1200的框图。如图12所示,系统1200包括第一和第二主机计算机102a和102b,以及存储阵列1202。存储阵列1202包括虚拟存储1204和阵列控制器802。虚拟存储1204包括第一LUN500和第二LUN 1206(为了简洁起见,可以存在在图12中未示出的额外的LUN)。图12示出了从第一主机计算机102a旋转到第二主机计算机102b的数据集508a。
如图10所示,流程图1000从步骤1002开始。在步骤1002中,第一逻辑单元号(LUN)从存储阵列向第一主机计算机展示。例如,在一个实施例中,可以由LUN分配器1102来执行步骤1002。参考图12,LUN分配器1102可以将展示的LUN指示信号1218传输到计算机102a(例如,通过诸如图1和2所示出的通信介质),该指示信号指示第一LUN 500被分配给计算机102a。例如,展示的LUN指示信号1218可包括第一LUN 500的标识符(例如,标识号码、地址等等)和第一LUN 500中所包括的存储量。
在步骤1002之后,第一主机计算机102a可以访问第一LUN 500的存储器,包括将数据存储在LUN 500中,以及从LUN 500检索数据。例如,第一主机计算机102a可以执行上文所描述的流程图700(图7),包括接收LUN 500的指示(步骤702),将签名502和分区表504存储在LUN 500中(步骤704),划分LUN 500以创建分区506a、506b等等(步骤706),以及将数据集508a、508b等等分别存储在分区506a、506b等等中(步骤708)。
在特定时间,第一主机计算机102a可以确定LUN 500的数据集将被旋转到另一主机计算机。例如,可能希望将数据集旋转到不太繁忙的主机计算机。如此,第一主机计算机102a可以执行图13所示出的流程图1300。下面描述了流程图1300。在流程图1300的步骤1302中,对多个分区中的存储了多个数据集中的一个数据集的分区的访问被关闭。例如,第一主机计算机102a可以关闭对存储数据集508a的第一分区506a的访问,以准备要被旋转的数据集508a。在一个实施例中,第一主机计算机102a可以关闭其到数据集508a的打开的句柄,一旦数据集508a不再被访问,第一主机计算机102a的逻辑盘管理器就可以移除驱动器号以及到分区506a的映射。这确保了第一主机计算机102a停止读取和/或向第一分区506a的写入。在步骤1304中,将关于存储数据集的分区的旋转请求传送到存储阵列。例如,如图12所示,第一主机计算机102a可以将旋转请求信号1702传送到存储阵列1202(例如,通过诸如图1和2所示出的通信介质)以请求将数据集508a旋转到另一主机计算机。
回顾流程图1000(图10),在步骤1004中,从第一主机计算机接收关于存储第一LUN的多个分区中的数据集的第一分区的旋转请求。例如,在一个实施例中,步骤1004可以由旋转请求接收器1104来执行。如图12所示,旋转请求接收器1104可以从第一主机计算机102a接收指示第一分区506a的数据集508a将被旋转的旋转请求信号1220。结果,旋转请求接收器1104可以向LUN生成器1106指示,LUN被生成以容纳数据集508a。
在步骤1006中,确定第一LUN中的第一分区的大小。例如,在一个实施例中,可以由LUN生成器1106来执行步骤1006。LUN生成器1106可以以任何方式来确定第一分区506a的大小。例如,参考图12,LUN生成器1106可以访问分区表504来确定分配给第一分区506a的LBA的偏移和/或范围。在另一实施例中,第一主机计算机102a可包括由旋转请求接收器1104接收到的旋转请求信号1220中的第一分区506a的指示,而旋转请求接收器1104可以向LUN生成器1106提供大小指示。
在步骤1008中,生成指示第二分区的位置和大小的分区表。例如,在一个实施例中,可以由LUN生成器1106执行步骤1008。LUN生成器1106可以被配置成生成指示被配置成将数据集508a存储在新LUN中的第二分区的分区表。生成分区表以指示新LUN中的第二分区的位置(例如,LBA偏移)和大小(例如,起始LBA和结束LBA)。在一个实施例中,分区表包括对第二分区的引用,但没有对其他分区的引用,而所生成的分区表中的第二分区的指示紧随在为新LUN所生成的签名之后。
在步骤1010中,生成存储阵列的第二LUN以具有被配置成容纳第二LUN的签名、分区表,以及第二分区的大小。例如,在一个实施例中,可以由LUN生成器1106执行步骤1010。LUN生成器1106被配置成分配要被包括在虚拟存储1204中的第二LUN中的存储阵列1202的物理存储量。例如,如图12所示,LUN生成器1106可以生成第二LUN 1206。生成第二LUN 1206以具有被配置成容纳签名、在步骤1008中所生成的分区表,以及第二分区的大小。
在步骤1012中,签名和分区表被存储在第二LUN中。例如,在一个实施例中,可以由LUN生成器1106执行步骤1012。例如,如图12所示,LUN生成器1106将签名1208和分区表1210存储在第二LUN 1206中。签名1208包括第二LUN 1206的标识信息,而分区表1210是在步骤1008中所生成的。
在步骤1014中,第一分区被从第一LUN复制到第二LUN中的由第二分区的分区表中指示的位置处。例如,在一个实施例中,步骤1014可以由分区复制器1108来执行。分区复制器1108被配置成将分区从源LUN复制到目的地LUN。为启动复制,LUN生成器1106可以向分区复制器1108指示目的地LUN已经被生成。例如,参考图12,分区复制器1108将第一LUN500的第一分区506a(包括数据集508a)复制到第二LUN 1206中的第二分区1212。如图12所示,数据集508a被复制到第二LUN 1206的分区1212中(如由虚线所指示的)。分区复制器1108可以以任何方式执行分区复制,包括通过那些本领域技术人员已知的技术。例如,分区复制器1108可以对第一分区506a执行快照拍摄(例如,使用写时复制(copy-on-write)快照技术)或克隆以生成分区1212。例如,可以以“snapshot LUN 500:Partition506a(快照拍摄LUN 500:分区506a)”或“LUN 500:LBA start-LBA end(LUN 500:LBA起始-LBA结束)”的形式发出复制命令,其中,“LBA start(LBA起始)”和“LBA end(LBA结束)”是第一LUN 500中的第一分区506a的相应的起始和结束LBA。这样的复制操作可以相对快速地执行,诸如在约为几秒内执行。在一个实施例中,LUN 1206完全由签名1208,分区表1210(可以在签名1208之后),以及分区1212(可以在分区表1210之后)来填充,虽然在其他实施例中,LUN 1206可包括另外的存储空间。
在步骤1016中,第二LUN被映射到第二主机计算机。例如,在一实施例中,可以由LUN分配器1102来执行步骤1016。例如,类似于步骤1002,LUN分配器1102可以将展示的LUN的指示信号传送到第二主机计算机102b(例如,通过诸如图1和2所示出的通信介质),该指示信号指示第二LUN 1206被分配给第二主机计算机102b。例如,展示的LUN的指示信号1222可包括第二LUN 1206的标识符(例如,标识号码、地址等等)和第二LUN 1206中所包括的存储量。在一个实施例中,第二主机计算机102b可以发出重复扫描命令以检测第二LUN 1206,并可以通过展示的LUN的指示信号1222请求其导入第二LUN 1206。
在导入第二LUN 1206之后,第二LUN 1206是可以安装,并可由第二主机计算机102b按与直接访问设备类似的方式使用。例如,在一个实施例中,第二主机计算机102b可以执行图14所示出的流程图1400。流程图1400提供在第二主机计算机102b上实现的示例过程。在流程图1400的步骤1402中,第二主机计算机被允许安装第二LUN。例如,LUN分配器1102使第二主机计算机102b能安装第二LUN 1206。如此,第二主机计算机102b可以访问存储在第二LUN 1206的分区1212中的数据集508a。例如,如果数据集508a是虚拟机硬驱动器,则第二主机计算机102b可以执行数据集508a的虚拟机文件以操作相对应的虚拟机。如此,在流程图1400的步骤1404中,第二主机计算机被允许执行虚拟机并访问作为虚拟机的存储的虚拟硬驱动器。
IV.用于将LUN旋转到数据集/LUN分区的示例实施例
在一个实施例中,对数据集的访问可以从第二主机计算机旋转回第一主机计算机(或另一主机计算机)。对数据集的这样的旋转可以被执行,因为第二主机计算机不需要进一步地与数据集进行交互,且如此,数据集引退(retire)(例如,临时或最后),或由于其他理由。可以以各种方式执行这样的旋转,包括使用存储阵列的阵列控制器来执行旋转。例如,图8所示出的阵列控制器802可以被配置成在一个实施例中执行旋转。数据集旋转模块804可以使阵列控制器802能将对数据集的访问旋转回第一主机计算机(或另一主机计算机)。例如,数据集旋转模块804可以被配置成执行图15所示出的步骤1502。在步骤1502中,通过将包含数据集的LUN映射到LUN分区,对数据集的访问被从第二主机计算机旋转到第一主机计算机。
可以以各种方式来配置数据集旋转模块804以执行步骤1502,并可以以各种方式执行步骤1502。例如,图16示出了根据示例实施例的提供用于将数据集从第二主机计算机旋转到第一主机计算机(或另一主机计算机)的过程的流程图1600。流程图1600是图15所示出的步骤1502的示例,且在一个实施例中,可以由图11所示出的阵列控制器802来执行。基于关于流程图1600的讨论,其他结构和操作实施例对相关领域技术人员是显而易见的。
出于例示的目的,下面参考图17描述了流程图1600,该图示出了根据示例实施例的图12的计算和数据存储系统1200的框图。图17示出了从第二主机计算机102b旋转到第一主机计算机102a的数据集508a。
如图16所示,流程图1600从步骤1602开始。在步骤1602中,存储阵列的第一LUN被展示给第一主机计算机,而存储阵列的第二LUN被展示给第二主机计算机。例如,参考图17,第一LUN 500可以被展示给第一主机计算机102a,而第二LUN 1206可以被展示给第二主机计算机102b。在一个实施例中,如上文所描述的第一LUN 500可能已经根据流程图1000的步骤1002(图10)被展示给第一主机计算机102a,而第二LUN 1206可能已经根据流程图1000的步骤1016被展示给第二主机计算机102b。
在特定时间,第二主机计算机102b可以确定数据集508a将被旋转回第一主机计算机102a(或另一主机计算机)。如此,第二主机计算机102b可以执行图18所示出的流程图1800。下面描述了流程图1800。在流程图1800的步骤1802中,关闭对将数据集存储在向第二主机展示的逻辑单元号(LUN)中的分区的访问。例如,第二主机计算机102b可以关闭对第二LUN 1206的存储数据集508a的分区1212的访问,以准备要被旋转的数据集508a。在一个实施例中,第二主机计算机102b可以关闭到数据集508a的任何打开的句柄,并且一旦数据集508a不再被访问,第二主机计算机102b的逻辑盘管理器就可以删除驱动器号以及到分区1212的映射。这确保了第二主机计算机102b停止读取和/或向分区1212的写入。在步骤1804中,可以将使LUN引退的请求传送到存储阵列。例如,如图18所示,第二主机计算机102b可以将引退或旋转请求信号1702传送到存储阵列1202(例如,通过诸如图1和2所示出的通信介质)以请求使数据集508a引退和/或旋转到另一主机计算机。
回顾流程图1600(图16),在步骤1604中,从第二主机计算机接收使第二LUN引退的请求。例如,在一个实施例中,步骤1604可以由旋转请求接收器1104来执行。如图17所示,旋转请求接收器1104可以从第二主机计算机102b接收引退请求信号1702。引退请求信号1702可以展示被存储在分区1212中的数据集508a将被旋转回作为存储库来操作的多分区LUN。
在步骤1606中,确定第二LUN中的分区的大小。例如,在一个实施例中,可以由LUN生成器1106执行步骤1606。LUN生成器1106可以以任何方式确定分区(例如,分区1212)的大小。例如,参考图17,LUN生成器1106可以访问LUN 1206的分区表1210来确定分配给分区1212的LBA的偏移和/或范围。在另一实施例中,第二主机计算机102b可包括由旋转请求接收器1104接收到的引退请求信号1702中的分区1212的大小的指示,而旋转请求接收器1104可以向LUN生成器1106提供大小指示。
在步骤1608中,数据集的副本被存储在第一LUN中。例如,在一个实施例中,步骤1608可以由分区复制器1108来执行。如上文所描述的,分区复制器1108可以被配置成将分区从源LUN复制到目的地LUN。例如,参考图17,如果分区1212具有不超过(例如,等于或小于)分区506a的大小的大小(在步骤1606中确定的),则分区复制器1108可以将第二LUN1206的分区1212(包括数据集508a)复制到第一LUN 500中的第一分区506a,或者也可以将分区1212复制到第一LUN 500的另一个分区。在一个实施例中,如果第二LUN 1206中的分区1212的大小超过第一LUN 500中的第一分区506a的大小,则可以由阵列控制器802通过将存储阵列1202的存储区域追加到第一LUN 500来增大第一LUN 500的大小(例如,可以使第一LUN的大小扩大)。在这样的情况下,数据集508a的副本可以被存储在追加到第一LUN 500的存储区域中。第一主机计算机102a可以卸载和重新安装第一LUN 500以便能够访问追加的存储区域。
在图17的示例中,数据集508a被复制到第一LUN 500的第一分区506a中(如由虚线所指示的)。分区复制器1108可以执行以任何方式执行分区复制,如那些本领域技术人员所知的,包括上文参考流程图1000(图10)的步骤1014所描述的技术。这样的复制操作可以相对快速地执行,包括在约为几秒内执行。
在步骤1610中,第一LUN的分区表被更新以包括对应于第一LUN的存储了数据集的副本的存储区域的分区。例如,在一个实施例中,可以由LUN生成器1106执行步骤1610。在图17的示例中,LUN生成器1106可以被配置成根据数据集508a被复制到第一LUN 500的第一分区506a或其他分区来更新第一LUN 500的分区表504。如果第一LUN 500被扩展以创建用于存储数据集508a的新分区,则由LUN生成器1106在分区表504中展示新分区的位置和/或大小。然后,第一主机计算机102a可以取消安装和重新安装第一LUN 500,以更新第一主机计算机102a的存储器/缓存中的分区表——如果需要的话。
此处所描述的实施例使诸如虚拟机文件之类的数据集能被存储在多分区LUN中,并实时地作为一个或多个文件被存储在专用LUN中,该专用LUN可以向主机计算机展示。多分区LUN可以作为虚拟硬驱动器的合并库来操作。当希望部署数据集时,数据集被转换为LUN并被分配给目的地主机。多分区LUN的包含所希望的数据集的分区可以被相对快速地复制(例如,每T字节数秒)到专用LUN(例如,使用硬件写时复制快照技术)。然后,被复制到专用LUN中的数据集可以被展示给新服务器,并作为直接附连的LUN被访问。此技术可以被用来迅速部署虚拟机,可以被用来在较大的数据库上进行数据挖掘,和/或可以被用来允许存储阵列扩展到其常规LUN映射限制的10倍或100倍,使存储阵列能用作长期储存库。这样的存储阵列可以被允许模拟虚拟磁带库,因为可以在存储阵列内重新映射自动加载器命令,以允许分区被重新填充回离散的LUN中。
V.其他示例实施例
可以以硬件、软件、固件,或其任何组合来实现阵列控制器(图1,2)、LUN分区器604(图6)、阵列控制器802(图8、11、12、17)、数据集旋转模块804(图8、11、12、17)、LUN分配器1102(图11、12、17)、旋转请求接收器1104(图11、12、17)、LUN生成器1106(图11、12、17),以及分区复制器1108(图11、12、17)。例如,阵列控制器112、LUN分区器604、阵列控制器802、数据集旋转模块804、LUN分配器1102、旋转请求接收器1104、LUN生成器1106和/或分区复制器1108可以被实现为被配置成在一个或多个处理器中执行的计算机程序代码。可另选地,阵列控制器112、LUN分区器604、阵列控制器802、数据集旋转模块804、LUN分配器1102、旋转请求接收器1104、LUN生成器1106和/或分区复制器1108可以被实现为硬件逻辑/电路。
图19描绘了其中可以实现本发明的各实施例的计算机1900的示例性实现。例如,可以类似于计算机1900实现计算机102a-102c(图1、12、17)和/或计算机602(图6),并可包括计算机1900的一个或多个特征和/或替换性特征。计算机1900可以是例如常规个人计算机、移动计算机或工作站形式的通用计算设备,或者,计算机1900可以是特殊用途的计算设备。此处所提供的对计算机1900的描述只是为了说明,并不是限制性的。如相关领域的技术人员所知道的,本发明的各实施例可以在其他类型的计算机系统中实现。
如图19所示,计算机1900包括处理单元1902、系统存储器1904,以及将包括系统存储器1904的各种系统组件耦合到处理单元1902的总线1906。系统总线1906表示若干类型的总线结构中的任何一种总线结构的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口,以及使用各种总线体系结构中的任何一种的处理器或局部总线。系统存储器1904包括只读存储器(ROM)1908和随机存取存储器(RAM)1910。基本输入/输出系统1912(BIOS)存储在ROM 1908中。
计算机1900还具有一个或多个以下驱动器:用于读写硬盘的硬盘驱动器1914、用于读或写可移动磁盘1918的磁盘驱动器1916、以及用于读或写诸如CD ROM、DVD ROM或其他光介质之类的可移动光盘1922的光盘驱动器1920。硬盘驱动器1914、磁盘驱动器1916,以及光驱动器1920分别通过硬盘驱动器接口1924、磁盘驱动器接口1926,以及光学驱动器接口1928连接到系统总线1906。驱动器以及它们相关联的计算机可读介质为计算机提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失存储器。虽然描述了硬盘、可移动磁盘和可移动光盘,但是,也可以使用诸如闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等等之类的其他类型的计算机可读介质来存储数据。
多个程序模块可被存储在硬盘、磁盘、光盘、ROM,或RAM上。这些程序包括操作系统1930、一个或多个应用程序1932、其他程序模块1934,以及程序数据1936。应用程序1932或程序模块1934可包括,例如,用于实现/启用阵列控制器112、LUN分区器604、阵列控制器802、数据集旋转模块804、LUN分配器1102、旋转请求接收器1104、LUN生成器1106和/或分区复制器1108、流程图700、步骤902、流程图1000、流程图1300、流程图1400、步骤1502、流程图1600、流程图1800(包括流程图700、1000、1300、1400、1600、以及1800的任一步骤),和/或如上文所描述的任何进一步的实施例的计算机程序逻辑。
用户可以通过诸如键盘1938和定点设备1940之类的输入设备向计算机1900中输入命令和信息。其他输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些及其他输入设备常常通过耦合到总线1906的串行端口接口1942连接到处理单元1902,但是,也可以通过其他接口,诸如并行端口、游戏端口、通用串行总线(USB)端口,来进行连接。
监视器1944或其他类型的显示设备也可以经由诸如视频适配器1946之类的接口来连接到系统总线1906。除了监视器之外,计算机1900还可包括其他外围输出设备(未示出),如扬声器和打印机。
计算机1900通过网络适配器或接口1950、调制解调器1952、或用于通过网络建立通信的其他装置连接到网络1948(例如,因特网)。调制解调器1952(可以是内置的或外置的),通过串行端口接口1942连接到系统总线1906。
如此处所用的,术语“计算机程序介质”以及“计算机可读介质”被用于泛指介质,诸如与硬盘驱动器1914相关联的硬盘、可移动磁盘1918、可移动光盘1922,以及其他介质,诸如闪存卡、数字视频盘、随机读取存储器(RAM)、只读存储器(ROM)等。
如上文所指示的,计算机程序和模块(包括应用程序1932及其他程序模块1934)可以存储在硬盘、磁盘、光盘、ROM或RAM上。这样的计算机程序也可以通过网络接口1950或串行端口接口1942来接收。这样的计算机程序,当由应用程序执行或加载时,使得计算机1900能实现此处所讨论的本发明的特征。相应地,这样的计算机程序表示计算机1900的控制器。
本发明还涉及包括存储在任何计算机可使用介质上的软件的计算机程序产品。这样的软件,当在一个或多个数据处理设备中执行时,使数据处理设备如此处所描述的那样操作。本发明的各实施例使用现在已知的或将来已知的任何计算机可使用或计算机可读介质。计算机可读介质的示例包括,但不仅限于,诸如RAM、硬盘驱动器、软盘、CD ROM、DVD ROM、zip磁盘、磁带、磁存储设备、光存储设备、MEM(存储器)、基于纳米技术的存储设备等等之类的存储设备。
VI.结论
尽管上文描述了本发明的各实施例,但是,应该理解,它们只是作为示例来呈现的,而不作为限制。那些精通有关技术的人员将理解,在不偏离如所附权利要求书所定义的本发明的精神和范围的情况下,可以在形式和细节方面进行各种修改。因此,本发明的范围不应该受到上述示例性实施例的任一个的限制,而只应根据下面的权利要求和它们的等效内容进行定义。

Claims (15)

1.一种存储阵列控制器中的方法(1000),包括:
将来自存储阵列的第一逻辑单元号(LUN)展示(1002)给第一主机计算机;
接收(1004)来自所述第一主机计算机的关于所述第一LUN的多个分区中的第一分区的旋转请求,所述第一分区存储被存储在所述多个分区中的多个数据集的一数据集;
确定(1006)所述第一LUN中的所述第一分区的大小;
生成(1008)指示第二分区的位置和大小的分区表,所述第二分区的所述大小大于或等于(≥)所确定的第一分区大小;
生成(1010)所述存储阵列的第二LUN以具有被配置成容纳所述第二LUN的签名、所述分区表,以及所述第二分区的大小;
将所述签名和所述分区表存储(1012)在所述第二LUN上;
将所述第一分区从所述第一LUN复制(1014)到所述第二LUN中的由所述第二分区表的所述分区表中所指示的位置处;并且
将所述第二LUN映射(1016)到第二主机计算机。
2.如权利要求1所述的方法,其特征在于,所述数据集是虚拟机的虚拟硬驱动器。
3.如权利要求2所述的方法,其特征在于,所述映射包括:
允许所述第二主机计算机安装所述第二LUN;并且
允许所述第二主机计算机执行所述虚拟机,并访问作为所述虚拟机的存储的所述虚拟硬驱动器。
4.如权利要求1所述的方法,其特征在于,所述确定所述第一LUN中的所述第一分区的大小包括:
确定所述分区的所述第一LUN中的起始逻辑块地址(LBA)和结束LBA。
5.如权利要求1所述的方法,其特征在于,所述复制包括:
对所述第一分区执行写时复制快照拍摄或克隆,以将所述第一分区从所述第一LUN复制到所述第二LUN。
6.如权利要求1所述的方法,其特征在于,还包括:
接收来自所述第二主机计算机的使所述第二LUN引退的请求;
确定所述第二分区的大小;
将所述第二分区的副本存储在所述第一LUN中;并且
更新所述第一LUN的分区表以包括对应于所述第一LUN的存储了所述第二分区的所述副本的存储区域的分区。
7.如权利要求6所述的方法,其特征在于,所述将第二分区的副本存储在第一LUN中包括:
如果所述第二分区的所确定的大小不超过所述第一LUN中的所述第一分区的大小,则将所述第二分区的所述副本存储在所述第一LUN的所述第一分区中。
8.如权利要求7所述的方法,其特征在于,所述将第二分区的副本存储在第一LUN中还包括:
如果所述第二分区的所确定的大小超过所述第一LUN中的所述第一分区的所述大小,
则通过将存储区域追加到所述第一LUN,来扩展所述第一LUN的大小,并且
将所述第二分区的所述副本存储在所述第一LUN的所述追加的存储区域中。
9.一种包括其上记录有计算机程序逻辑的计算机可读介质的计算机程序产品,包括:
用于允许处理器执行权利要求1-8中的任一项权利要求的计算机程序逻辑装置(1934)。
10.一种存储阵列控制器(802),包括:
用于向第一主机计算机(102a)展示(1102)来自存储阵列(1202)的第一逻辑单元号(LUN)(500)的装置;
用于从所述第一主机计算机(102a)接收(1104)关于所述第一LUN(500)的多个分区(506a-506p)中的第一分区(506a)的旋转请求(1220)的装置,所述第一分区(506a)存储被存储在所述多个分区(506a-506p)中的多个数据集(508a-508p)中的数据集(508a);
用于确定(1106)所述第一LUN(500)中的所述第一分区(506a)的大小的装置;
用于生成(1106)指示第二分区(1212)的位置和大小的分区表(1210)的装置,所述第二分区(1212)的所述大小大于或等于(≥)所确定的第一分区大小;
用于生成(1106)所述存储阵列(1202)的第二LUN(1206)以具有被配置成容纳所述第二LUN(1206)的签名(1208)、所述分区表(1210),以及所述第二分区(1212)的大小的装置;
用于将所述签名(1208)和所述分区表(1210)存储(1106)在所述第二LUN(1206)上的装置;
用于将所述第一分区(506a)从所述第一LUN(500)复制(1108)到所述第二LUN(1206)中的由所述第二分区表(1212)的所述分区表(1210)中所指示的位置处的装置;以及
用于将所述第二LUN(1206)映射到第二主机计算机(102b)的装置。
11.如权利要求10所述的存储阵列控制器,其特征在于,所述数据集是虚拟机的虚拟硬驱动器。
12.如权利要求11所述的存储阵列控制器,其特征在于,所述用于映射的装置包括:
用于允许所述第二主机计算机安装所述第二LUN的装置;以及
用于允许所述第二主机计算机执行所述虚拟机,并访问作为所述虚拟机的存储的所述虚拟硬驱动器的装置。
13.如权利要求10所述的存储阵列控制器,其特征在于,所述用于确定的装置包括:
用于确定所述分区的所述第一LUN中的起始逻辑块地址(LBA)和结束LBA的装置。
14.如权利要求10所述的存储阵列控制器,其特征在于,所述用于复制的装置包括:
用于对所述第一分区执行写时复制快照拍摄或克隆,以将所述第一分区从所述第一LUN复制到所述第二LUN的装置。
15.如权利要求10所述的存储阵列控制器,其特征在于,进一步包括:
用于接收来自所述第二主机计算机的使所述第二LUN引退的请求的装置;
用于确定所述第二分区的大小的装置;
用于将所述第二分区的副本存储在所述第一LUN中的装置;以及
用于更新所述第一LUN的分区表以包括对应于所述第一LUN的存储了所述第二分区的所述副本的存储区域的分区的装置。
CN2010800214852A 2009-05-12 2010-05-10 实时地将lun转换为文件或将文件转换为lun Expired - Fee Related CN102422277B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/464,329 2009-05-12
US12/464,329 US8074038B2 (en) 2009-05-12 2009-05-12 Converting luns into files or files into luns in real time
PCT/US2010/034276 WO2010132375A2 (en) 2009-05-12 2010-05-10 Converting luns into files or files into luns in real time

Publications (2)

Publication Number Publication Date
CN102422277A true CN102422277A (zh) 2012-04-18
CN102422277B CN102422277B (zh) 2013-09-18

Family

ID=43069444

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010800214852A Expired - Fee Related CN102422277B (zh) 2009-05-12 2010-05-10 实时地将lun转换为文件或将文件转换为lun

Country Status (7)

Country Link
US (3) US8074038B2 (zh)
EP (1) EP2430560A4 (zh)
JP (1) JP5276218B2 (zh)
KR (1) KR101624376B1 (zh)
CN (1) CN102422277B (zh)
CA (2) CA2953608A1 (zh)
WO (1) WO2010132375A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103618627A (zh) * 2013-11-27 2014-03-05 华为技术有限公司 一种管理虚拟机的方法、装置及系统
CN104144327A (zh) * 2014-07-28 2014-11-12 华为数字技术(成都)有限公司 一种监控视频存储方法及装置
CN109254724A (zh) * 2018-07-17 2019-01-22 中国航空无线电电子研究所 可配置多分区的嵌入式虚拟化机载存储系统
CN113986128A (zh) * 2021-10-26 2022-01-28 杭州宏杉科技股份有限公司 Lun数据复制方法及装置

Families Citing this family (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2008201035A1 (en) * 2007-04-13 2008-10-30 Acei Ab A partition management system
US8074038B2 (en) * 2009-05-12 2011-12-06 Microsoft Corporation Converting luns into files or files into luns in real time
US8943203B1 (en) * 2009-07-10 2015-01-27 Netapp, Inc. System and method for storage and deployment of virtual machines in a virtual server environment
US8473777B1 (en) * 2010-02-25 2013-06-25 Netapp, Inc. Method and system for performing recovery in a storage system
US8671308B2 (en) 2011-05-02 2014-03-11 International Business Machines Corporation Optimizing disaster recovery systems during takeover operations
US8522068B2 (en) 2011-05-02 2013-08-27 International Business Machines Corporation Coordinated disaster recovery production takeover operations
US8850139B2 (en) 2011-05-11 2014-09-30 International Business Machines Corporation Changing ownership of cartridges
US8402177B2 (en) 2011-06-29 2013-03-19 Hewlett-Packard Development Company, L.P. Inferring host storage topology
US9952807B1 (en) * 2011-06-30 2018-04-24 EMC IP Holding Company LLC Virtual machine back-up
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US9027019B2 (en) * 2011-09-22 2015-05-05 Cisco Technology, Inc. Storage drive virtualization
US9417821B2 (en) * 2011-09-30 2016-08-16 Intel Corporation Presentation of direct accessed storage under a logical drive model
US9104330B1 (en) * 2012-06-30 2015-08-11 Emc Corporation System and method for interleaving storage
US9582218B2 (en) * 2013-01-09 2017-02-28 Cisco Technology, Inc. Serial attached storage drive virtualization
US9582219B2 (en) * 2013-03-12 2017-02-28 Netapp, Inc. Technique for rapidly converting between storage representations in a virtualized computing environment
US10216531B2 (en) 2014-05-12 2019-02-26 Netapp, Inc. Techniques for virtual machine shifting
US9841991B2 (en) 2014-05-12 2017-12-12 Netapp, Inc. Techniques for virtual machine migration
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9841904B2 (en) * 2015-03-02 2017-12-12 Samsung Electronics Co., Ltd. Scalable and configurable non-volatile memory module array
US20160259573A1 (en) * 2015-03-03 2016-09-08 International Business Machines Corporation Virtual tape storage using inter-partition logical volume copies
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US9817592B1 (en) 2016-04-27 2017-11-14 Netapp, Inc. Using an intermediate virtual disk format for virtual disk conversion
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US10370800B2 (en) 2016-08-15 2019-08-06 Sno-Way International, Inc. Hopper spreader with back EMF control and hopper system speed control
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US11288003B2 (en) * 2017-04-28 2022-03-29 Netapp, Inc. Cross-platform replication of logical units
US10587685B2 (en) * 2017-04-28 2020-03-10 Netapp Inc. Cross-platform replication of logical units
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10802983B2 (en) * 2018-05-31 2020-10-13 Vmware, Inc. Programmable block storage addressing using embedded virtual machines
CN110704237B (zh) * 2018-07-10 2023-07-07 Emc Ip控股有限公司 用于无代理程序的分区备份的方法、设备和数据处理系统
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11573962B2 (en) * 2018-10-19 2023-02-07 Oracle International Corporation Dynamic performance tuning based on implied data characteristics
US11568179B2 (en) 2018-10-19 2023-01-31 Oracle International Corporation Selecting an algorithm for analyzing a data set based on the distribution of the data set
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6526478B1 (en) * 2000-02-02 2003-02-25 Lsi Logic Corporation Raid LUN creation using proportional disk mapping
US20050021591A1 (en) * 2003-07-11 2005-01-27 International Business Machines Corporation Autonomic predictive load balancing of output transfers for two peer computers for data storage applications
CN1821979A (zh) * 2005-02-15 2006-08-23 株式会社日立制作所 存储系统
CN101046726A (zh) * 2003-09-29 2007-10-03 株式会社日立制作所 虚拟系统
CN101669106A (zh) * 2007-04-25 2010-03-10 微软公司 虚拟机迁移

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7107385B2 (en) * 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US7460672B2 (en) * 2003-07-18 2008-12-02 Sanrad, Ltd. Method for securing data storage in a storage area network
US20050114595A1 (en) * 2003-11-26 2005-05-26 Veritas Operating Corporation System and method for emulating operating system metadata to provide cross-platform access to storage volumes
JP2005165852A (ja) * 2003-12-04 2005-06-23 Hitachi Ltd ストレージシステム、ストレージ制御装置、ストレージシステムの制御方法
JP4227035B2 (ja) 2004-02-03 2009-02-18 株式会社日立製作所 計算機システム、管理装置、ストレージ装置及びコンピュータ装置
US7409495B1 (en) * 2004-12-22 2008-08-05 Symantec Operating Corporation Method and apparatus for providing a temporal storage appliance with block virtualization in storage networks
CA2954888C (en) * 2005-06-24 2019-06-04 Catalogic Software, Inc. System and method for high performance enterprise data protection
US7937545B1 (en) * 2006-03-29 2011-05-03 Symantec Operating Corporation Method and apparatus for file-level restore from raw partition backups
JP2007310772A (ja) * 2006-05-22 2007-11-29 Hitachi Ltd ストレージシステム及び通信制御方法
US20070288535A1 (en) * 2006-06-13 2007-12-13 Hitachi, Ltd. Long-term data archiving system and method
US7484056B2 (en) * 2006-06-29 2009-01-27 Emc Corporation Partitioning of a storage array into N-storage arrays using full array non-disruptive data migration
JP4963892B2 (ja) 2006-08-02 2012-06-27 株式会社日立製作所 仮想ストレージシステムの構成要素となることが可能なストレージシステムの制御装置
US8554981B2 (en) * 2007-02-02 2013-10-08 Vmware, Inc. High availability virtual machine cluster
US8095753B1 (en) * 2008-06-18 2012-01-10 Netapp, Inc. System and method for adding a disk to a cluster as a shared resource
US8074038B2 (en) * 2009-05-12 2011-12-06 Microsoft Corporation Converting luns into files or files into luns in real time

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6526478B1 (en) * 2000-02-02 2003-02-25 Lsi Logic Corporation Raid LUN creation using proportional disk mapping
US20050021591A1 (en) * 2003-07-11 2005-01-27 International Business Machines Corporation Autonomic predictive load balancing of output transfers for two peer computers for data storage applications
CN101046726A (zh) * 2003-09-29 2007-10-03 株式会社日立制作所 虚拟系统
CN1821979A (zh) * 2005-02-15 2006-08-23 株式会社日立制作所 存储系统
CN101669106A (zh) * 2007-04-25 2010-03-10 微软公司 虚拟机迁移

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103618627A (zh) * 2013-11-27 2014-03-05 华为技术有限公司 一种管理虚拟机的方法、装置及系统
CN103618627B (zh) * 2013-11-27 2017-01-04 华为技术有限公司 一种管理虚拟机的方法、装置及系统
CN104144327A (zh) * 2014-07-28 2014-11-12 华为数字技术(成都)有限公司 一种监控视频存储方法及装置
CN109254724A (zh) * 2018-07-17 2019-01-22 中国航空无线电电子研究所 可配置多分区的嵌入式虚拟化机载存储系统
CN109254724B (zh) * 2018-07-17 2022-03-08 中国航空无线电电子研究所 可配置多分区的嵌入式虚拟化机载存储系统
CN113986128A (zh) * 2021-10-26 2022-01-28 杭州宏杉科技股份有限公司 Lun数据复制方法及装置

Also Published As

Publication number Publication date
WO2010132375A2 (en) 2010-11-18
US20100293349A1 (en) 2010-11-18
KR101624376B1 (ko) 2016-05-25
CA2758304C (en) 2017-07-04
EP2430560A2 (en) 2012-03-21
US8074038B2 (en) 2011-12-06
KR20120018314A (ko) 2012-03-02
CA2953608A1 (en) 2010-11-18
WO2010132375A3 (en) 2011-02-17
US20130290631A1 (en) 2013-10-31
US20120066452A1 (en) 2012-03-15
US8473698B2 (en) 2013-06-25
CN102422277B (zh) 2013-09-18
CA2758304A1 (en) 2010-11-18
JP5276218B2 (ja) 2013-08-28
JP2012527046A (ja) 2012-11-01
EP2430560A4 (en) 2016-10-26
US8880825B2 (en) 2014-11-04

Similar Documents

Publication Publication Date Title
CN102422277B (zh) 实时地将lun转换为文件或将文件转换为lun
EP2306320B1 (en) Server image migration
US8122212B2 (en) Method and apparatus for logical volume management for virtual machine environment
JP5728087B2 (ja) ストレージ管理システム及びストレージ管理方法
US20060155944A1 (en) System and method for data migration and shredding
CN102200921A (zh) 智能引导设备选择和恢复
JP6604115B2 (ja) ストレージ装置およびストレージ制御プログラム
US8732427B2 (en) Systems and methods for collapsing a derivative version of a primary storage volume
US20230325221A1 (en) Hot Growing A Cloud Hosted Block Device
US8078798B2 (en) Managing first level storage in a multi-host environment
JP6241178B2 (ja) ストレージ制御装置,ストレージ制御方法及びストレージ制御プログラム
US11797338B2 (en) Information processing device for reading object from primary device specified by identification, information processing system for reading object from primary device specified by identification, and access control method for reading object from primary device specified by identification
US10534751B1 (en) Metadata space efficient snapshot operation in page storage
Both BtrFS
KR20220169895A (ko) 인메모리 기반 컨테이너 스토리지 관리 장치 및 방법
WO2018055750A1 (ja) 情報システム及び記憶制御方法
Koutoupis Archiving data with snapshots in LVM2

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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: 20150429

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

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

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

Granted publication date: 20130918

Termination date: 20210510

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