CN103823786B - 外部高速缓存设备上的管理程序i/o分级 - Google Patents
外部高速缓存设备上的管理程序i/o分级 Download PDFInfo
- Publication number
- CN103823786B CN103823786B CN201310576297.1A CN201310576297A CN103823786B CN 103823786 B CN103823786 B CN 103823786B CN 201310576297 A CN201310576297 A CN 201310576297A CN 103823786 B CN103823786 B CN 103823786B
- Authority
- CN
- China
- Prior art keywords
- storage device
- host computer
- write
- data
- shared storage
- 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
Links
- 238000003860 storage Methods 0.000 claims abstract description 174
- 238000000034 method Methods 0.000 claims abstract description 36
- 230000004044 response Effects 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 14
- 238000005096 rolling process Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000006872 improvement Effects 0.000 abstract description 3
- 238000013500 data storage Methods 0.000 description 26
- 238000003491 array Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000000151 deposition Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 206010051602 Laziness Diseases 0.000 description 1
- 241001046594 Macruronus novaezelandiae Species 0.000 description 1
- 206010027476 Metastases Diseases 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000009401 metastasis Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 210000000653 nervous system Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/203—Failover techniques using migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
Abstract
本申请公开了外部高速缓存设备上的管理程序I/O分级。公开了一种用于输入/输出操作(IO)的管理技术,该技术将管理程序的位置用作在虚拟机(VM)和服务该VM的存储设备之间的中介,以支持针对VM而改进整体I/O性能。根据这一新的I/O管理技术,管理程序向I/O分级设备发送从VM去往存储设备的写入请求,该I/O分级设备提供比存储设备更高的I/O性能,用于以写回模式来在I/O分级设备中进行高速缓存。一旦I/O分级设备已经接收并且应答了写入请求,管理程序立刻向发出请求的VM提供应答。之后并且相对于来自VM的写入请求异步地,管理程序读取来自I/O分级设备的写入数据,并且将其发送至存储设备用于在其中存储。
Description
相关申请的交叉引用
本申请要求于2012年11月19日提交的美国临时专利申请序列号No.61/728,207的优先权、并且要求于2012年12月17日提交的美国专利申请序列号No.US13/717,584的优先权。
技术领域
本申请涉及I/O管理,更具体地,涉及外部高速缓存设备上的管理程序I/O分级。
背景技术
在虚拟化计算机系统中管理输入/输出操作是一种困难的挑战,尤其是,在配置有主机计算机的集群的系统中更是如此,其中主机计算机的每个集群具有运行于其上的一个或者多个虚拟机(VM)、以及用于该VM的系统软件(通常被称作“管理程序(hypervisor)”)。传统存储设备通常努力跟上由运行在主机计算机的集群中的数百甚至数千VM所生成的存储I/O请求的流。
解决此问题的传统技术包括,使用具有特别设计的高速缓存机制的存储设备、以及具有在靠近于主机计算机设置的一个或者多个较高速度的存储设备的多层级(multi-tierred)存储设备。这些系统可以足够处理存储I/O请求的流,但是它们可能是昂贵的并且需要复杂的实现。出于这些原因,传统系统没有随着运行在主机计算机集群中的VM的数量而良好地伸缩。另外通常的情况是,这些系统被设计以处理峰值工作负载以满足专为其指定的服务水平协议(SLA),作为结果,这些系统长时间地处于欠载(under-utilized)。
发明内容
根据本发明,提供了如权利要求书中所述的计算机系统和方法。本发明的其他特征在从属权利要求书阐明,并且说明如下所示。
在一个方面中,提供了一种具有多个主机计算机的计算机系统,每个所述主机计算机具有运行于其中的一个或者多个虚拟机(VM)、以及支持所述VM的系统软件,所述计算机系统包括:第一共享存储设备,连接至所述主机计算机中的每个主机计算机;以及第二共享存储设备,具有比所述第一共享存储设备更大的容量以及更高的输入/输出等待时间,其中所述系统软件配置用于以写回模式来将将被写入到所述第二共享存储设备中的数据高速缓存在所述第一共享存储设备中。
在一个示例中,由所述系统软件以相对于当所述数据在所述第一共享存储设备中被高速缓存时,异步地将所述第一共享存储设备中所高速缓存的所述数据拷贝到所述第二共享存储设备之中。
在一个示例中,支持VM的系统软件被配置以:通过向所述第一共享存储设备发出写入请求,和在接收到来自所述第一共享存储设备的写入应答时向所述VM转发所述写入应答,来处理所述VM的写入输入/输出操作。
在一个示例中,支持VM的系统软件被配置以:通过基于读取数据是否在所述第一共享存储设备中被高速缓存而向所述第一共享存储设备和所述第二共享存储设备中的一个发出读取请求,来处理所述VM的读取输入/输出操作。
在一个示例中,所述主机计算机中的每一个主机计算机中的所述系统软件被配置以:拷贝被高速缓存的所述数据、从而以第一速率进入所述第二共享存储设备,所述第一速率基本上匹配于第二速率,所述第二速率是基于所述系统软件已经将所述数据高速缓存到所述第一共享存储设备之中的速率。
在一个示例中,所述第二速率是所述系统软件已经将所述数据高速缓存到所述第一共享存储设备之中的速率的移动平均。
在一个示例中,所述第一共享存储设备是固态驱动阵列,而所述第二共享存储设备是基于旋转盘的存储阵列。
在一个方面,提供了一种具有包括第一主机计算机和第二主机计算机的多个主机计算机的计算机系统,所述主机计算机中的每个主机计算机具有运行于其中的一个或者多个虚拟机(VM)、以及支持所述VM的系统软件,所述计算机系统包括:第一共享存储设备,连接至所述主机计算机中的每个主机计算机;以及第二共享存储设备,具有比所述第一共享存储设备更大的容量以及更高的输入/输出等待时间,并且配置有用于运行在所述主机计算机中的所述VM的数据存储,其中每个主机计算机中的所述系统软件被配置以:将将被写入到所述数据存储之中的数据高速缓存到所述第一共享存储设备之中,以及拷贝在所述第一共享存储设备中被高速缓存的所述数据由此以第一速率进入所述第二共享存储设备,所述第一速率基本上匹配于第二速率,所述第二速率是基于所述系统软件已经将所述数据高速缓存到所述第一共享存储设备之中的速率。
在一个示例中,所述第一主机计算机的所述系统软件配置以:基于由全部所述主机计算机的所述系统软件向其报告的速率的平均,来计算针对全部所述主机计算机的所述第二速率。
在一个示例中,由系统软件报告的每个速率是所述系统软件已经将将被写入所述数据存储的数据高速缓存到所述第一共享存储设备之中的速率的移动平均。
在一个示例中,每个主机计算机中的所述系统软件进一步配置以:如果另一系统软件已经失败,则将由所述另一系统软件在所述第一共享存储设备中高速缓存的所述数据拷贝到所述第二共享存储设备之中。
在一个示例中,在所述第一共享存储设备中所高速缓存的所述数据根据最近最少使用策略或者最少频繁使用策略而被去除。
在一个示例中,所述数据基于优先级而在所述第一共享存储设备中被高速缓存,并且根据所述优先级而从所述第一共享存储设备被去除。
在一个示例中,来自第一VM的所述数据以高于来自第二VM的所述数据的优先级被高速缓存,来自所述第二VM的所述数据以相对于所述第一VM较低的优先级而被提供。
在一个方面中,在具有多个主机计算机的计算机系统中提供了一种对来自虚拟机VM的输入/输出操作IO的写入数据进行高速缓存的方法,每个主机计算机具有运行于其中的一个或者多个所述虚拟机VM以及支持所述VM的系统软件,所述方法包括:在接收到来自VM的包含所述写入数据的写入IO时,发出向第一存储设备写入所述写入数据的请求;在接收到来自所述第一存储设备的、所述第一存储设备已经向其中成功地写入了所述写入数据的应答时,向所述VM转发写入应答;以及在所述转发之后,发出针对向所述第一存储设备的所述写入数据的读取请求,以及继而发出向第二存储设备写入所述写入数据的写入请求,其中所述第一存储设备和所述第二存储设备由所述主机计算机共享,并且所述第二存储设备具有比所述第一存储设备更高的容量和更高的输入/输出等待时间。
在一个示例中,所述第一存储设备是固态驱动阵列,而所述第二共享存储设备是基于旋转盘的存储阵列。
在一个示例中,所述方法进一步包括:跟踪向所述第一存储设备成功写入的速率;以及基于跟踪的所述速率来控制向所述第二存储设备发出的写入请求。
在一个示例中,向所述第二存储设备发出的所述写入请求的写入速率是基本上匹配于跟踪的所述速率。
在一个示例中,所述方法进一步包括:跟踪向所述第一存储设备成功写入的速率;向协调主机计算机报告跟踪的所述速率;接收目标速率,所述目标速率是基于由全部所述主机计算机报告的跟踪的速率;以及基于所述目标速率来控制向所述第二存储设备发出的写入请求。
在一个示例中,所述方法进一步包括:由出现故障的系统软件发出针对被写入到所述第一存储设备之中的写入数据的读取请求,以及继而发出向所述第二存储设备写入此类写入数据的写入请求。
在此公开的一个或者多个实施方式概括地提供了一种新的I/O管理技术,该技术将管理程序的位置用作在VM和服务该VM的存储设备之间的中介,以支持针对VM而改进整体I/O性能。根据这一新的I/O管理技术,管理程序向I/O分级设备发送从VM去往存储设备的写入请求,该I/O分级设备提供比存储设备更高的I/O性能。一旦I/O分级设备已经接收并且应答了写入请求,管理程序立刻向发出请求的VM提供应答。之后,管理程序在本文中被称作解分级的过程中,读取来自I/O分级设备的写入数据,并且将其发送至存储设备用于在其中存储。
附图说明
图1是根据一个实施方式的、配置有I/O分级设备以支持I/O管理技术的虚拟化计算机系统的框图;
图2是由图1的虚拟化计算机系统中的管理程序执行的、用以响应于来自VM的写入请求来将数据写入到I/O分级设备中的方法步骤的流程图;
图3是由图1的虚拟化计算机系统中的管理程序执行的用以响应于来自VM的读取请求而从I/O分级设备或者后端存储设备读取数据的方法步骤的流程图;
图4是示出将被写入到I/O分级设备的数据解分级以释放I/O分级设备中的空间的过程的示意性图示;以及
图5是示出在将数据分级到I/O分级设备的管理程序中出现故障时、将被写入到I/O分级设备中的数据解分级的过程的示意性图示。
具体实施方式
图1是根据一个实施方式的、配置有I/O分级设备以支持I/O管理技术的虚拟化计算机系统的框图。图1的虚拟化计算机系统包括主机计算机的第一集群11和第二集群12。第一集群11包括多个主机计算机(其中的一个标记为100),每个具有运行于其上的一个或者多个VM(例如,VM120)和用于支持VM执行的管理程序(例如,管理程序110)。用于第一集群11的主机计算机的持久性存储由一个或者多个数据存储来提供,该数据存储在存储阵列141、142中提供,例如作为存储域网络设备中的逻辑单元(LUN)。第二集群12还可以包括多个主机计算机,并且以与第一集群11类似的方式配置,并且用于第二集群12的主机计算机的持久性存储由一个或者多个数据存储来提供,该数据存储可以提供在与第一集群11相同的存储阵列中。在此实施方式中I/O分级设备130示出为固态驱动(SSD)阵列,该阵列由第一集群11的主机计算机100和第二集群12的主机计算机来共享。应当认识到,多个主机可以简单地是一个或者多于两个,并且数据存储可以被提供在一个或者多个存储阵列(典型地,基于旋转盘的存储阵列)中,其比I/O分级设备130的每容量成本较为低廉。
在传统虚拟化计算机系统中,VM请求来自由管理器创建的虚拟设备(诸如虚拟盘)的I/O操作。管理程序转而将I/O请求的流引导至底层的物理存储设备。在可以向VM提供应答之前,管理程序必须等待来自底层物理存储设备的写入应答。当此应答可以被更加快速地递送至VM时,则由操作系统和VM的应用所经历的等待时间(latency)将降低。
在根据一个或者多个实施方式的虚拟环境神经系统中,响应于由VM(例如,VM120)请求的I/O操作,管理程序(例如,管理程序110),具体地为管理程序的分级模块(例如,管理程序110)的分级模块111)首先向I/O分级设备130引导I/O请求的流,在一个实施方式中,该I/O分级设备130是SSD阵列,其相对于存储阵列141、142而言具有高的I/O性能和低的I/O递送等待时间。因为SSD阵列是基于固态介质,这可以避免与旋转盘介质相关联的查找时间惩罚,并且提供强的随机写入性能。作为结果,当从基于每IOPS成本(I/O操作每秒)的角度看来,SSD阵列比基于旋转盘的存储阵列在成本上是较为低廉的。然而,SSD阵列尚未替换基于旋转盘的存储阵列,这是因为SSD阵列在容量基础(每吉比特容量的成本)上而言是昂贵的。因而,在本文讨论的实施方式中,SSD阵列被用作I/O分级设备。
针对写入I/O请求,一旦I/O分级设备130已经接收并且应答了写入请求,则管理程序立即向请求虚拟机提供应答。之后,基于由管理程序的解分级模块(例如,管理程序110的解分级模块112)执行的优化的解分级算法,管理程序请求从I/O分级设备130返回数据,并且将其发送至写入I/O请求中目标的数据存储。应当认识到,管理程序以如下方式将数据解分级到数据存储中:保留写入排序以确保数据以它们离开做出写入I/O请求的VM的相同顺序而被写入到数据存储。例如,数据可以根据先进先出(FIFO)方法来被解分级。
将向存储设备进行的同步写入转换到异步“懒惰解分级”,这根本地改变了对于存储设备的性能需求,动态地降低了对此类设备的I/O请求流的波动性。I/O分级设备130能够处理全部突发I/O,不需要通用目的存储设备来经历昂贵的改造以适合于与突发I/O相关联的IOPS的高标准偏差。以在此描述的方式提供I/O分级还可以解决成本问题。如所述,专业SSD阵列的每吉比特成本是昂贵的。通过将SSD阵列用作I/O分级设备而不是长期的存储设备,可以购买最小量的容量,允许适中(modestly)大小的SSD阵列来加速用作长期存储的现有存储设备的I/O性能。总之,管理程序的I/O分级能力创建了一个元存储系统,其包括三个组件:(1)现有存储设备;(2)I/O分级设备;以及(3)管理程序。这些一起操作的组件创建具有改进处理突发随机写入I/O的改进能力的新的高性能存储系统。
应当认识到,在针对管理程序在主机计算机上提供的SSD资源上进行高速缓存(在此也称为“本地SSD”),这不能实现在此描述的功能目的,这是因为用于管理程序的主机计算机具有多个单一的故障点,并且管理程序时常不能依赖于将在本地SSD中被高速缓存的数据解分级到存储设备中。对于此原因,在本地SSD上高速缓存必须以被已知为“透写(write through)模式”的方式执行,其要求在管理程序可以向发出请求的虚拟机提供应答之前、在本地SSD和存储设备两者上可以对写入进行应答。“透写”高速缓存不能提供在此描述的I/O分级的益处,这是因为存储设备仍然必须处理突发I/O的全部波动性。
图2是由图1的虚拟化计算机系统中的管理程序执行的、用以响应于来自VM的写入请求来将数据写入到I/O分级设备中的方法步骤的流程图。实际上,I/O分级设备130执行用于“写回模式”中的存储设备的高速缓存。在本文描述的实施方式中,利用具有适当的弹性属性的外部SSD实现“写回”高速缓存。在一个实施方式中,从EMC公司可获得的XtremIO快闪阵列(具有内部故障转移机制)被实现为I/O分级设备130。其他可能性包括Whiptail和Violin存储器。作为使用此类I/O分级设备的结果,VM在I/O等待时间中实现显著改进,并且去往存储设备的数据流率被控制到最小的流率和波动性,这意味着可以部署较小成本的存储设备以针对VM提供持久性支持。
图2所示的方法开始于步骤210,其中管理程序接收来自VM的写入I/O请求。在步骤212处,管理程序向I/O分级设备130发出写入I/O。如果管理程序接收来自I/O分级设备130的写入应答,如在步骤214确定,则管理程序在步骤216处向VM转发该写入应答。如果管理程序在预定时间量内没有接收到来自I/O分级设备130的写入应答,则管理程序在步骤217返回错误消息。
图3是由图1的虚拟化计算机系统中的管理程序执行、用以响应于来自VM的读取请求而从I/O分级设备或者后备存储设备读取数据的方法步骤的流程图。通常,读取I/O请求被引导至用于先前已经被写入至的任何数据块的I/O分级设备。有时,这些数据块可以已经被从I/O分级设备130去除(evict),然而也可以存在I/O分级设备130中。在I/O分级设备130中存在的数据块可以以比从后备存储设备中获取数据更低的等待延迟来获取。
图3所示的方法开始于步骤310,其中管理程序接收来自VM的读I/O请求。在步骤312,管理程序通过使用现有技术中已知的多种可行的高速缓存查找方法中的任一项,来检查I/O分级设备130以便确定在I/O分级设备130中是否存在所请求的读取数据。如果没有,则在步骤313向后备存储设备发出读取请求。如果在I/O分级设备130中存在所请求的读取数据,则在步骤314向I/O分级设备130发出读取I/O。在步骤316(在步骤313和314之后执行),管理程序等待接收所请求的读取数据。如果管理程序从后备存储设备或者I/O分级设备130接收所请求的读取数据,如在步骤316确定,管理程序在步骤318向VM转发读取数据。如果管理程序在预定的时间量内没有接收到所请求的读取数据,则管理程序在步骤319向VM返回错误消息。
管理程序执行解分级过程以确保I/O分级设备130没有出现空间耗尽。重要的是,确保从I/O分级设备130到提供在后备存储设备中提供的每个数据存储的数据的流率在最低可能的速率进行,并确保数据流率中的最小波动性。作为结果,可以降低后备存储设备的性能要求以允许使用较低成本和较旧年代的存储阵列。
由集群中每个管理程序执行的解分级的目标在于,将从I/O分级设备130到在用于管理程序的后备存储设中提供的一个或者多个数据存储的数据流率最小化,同时确保I/O分级设备130不会耗尽空间。为了实现理想的解分级数据率,向给定数据存储写入数据的每个管理程序应当尝试在这样的数据速率进行写入,当该数据速率被添加到正在向相同数据存储进行写入的相同集群中的其他管理程序的解分级数据率时,应当导致对于数据存储的共同的平均数据速率。此类数据率是通过在相同集群中的管理程序之间进行协调而实现的。
在一个实施方式中,每个管理程序可以基于在特定分钟数期间的每分钟写入速率的移动平均,来建立每数据存储的解分级数据速率。例如,如果在15分钟期间的MB/min平均等于20MB,则针对管理程序的简化方案是在20MB/min的速率向数据存储解分级数据。随着时间流逝,可以防止对I/O分级设备130的进入数据进行分级所需的空间量中的任何显著增长。以此方式,可以针对每个数据存储的基础而针对每个管理程序单独地计算适当的解分级速率。
为了实现尽可能地降低来自数据存储的波动性的目的,用于整个管理程序集群的解分级速率作为整体被操持在尽可能地靠近于具有低标准偏差的公共平均。如果每个管理程序在支持每数据存储的稳定集群水平平均的速率而不是简单的公共管理程序平均的速率写入数据,则这可以最好地实现。用于实现的一个方式是,针对集群上的单一主机计算机执行协调功能。集群中的随机主机计算机可以被选举为协调主机计算机。集群中的每个主机计算机以如上所述方式将其单独移动平均数据率传输至协调主机计算机。协调主机计算机跟踪集群的移动平均,该移动平均可以是单独主机计算机的移动平均的总和除以集群中的主机计算机的数量。结果生成的数据速率是平均的平均,这避免了在单独管理程序中可能存在的波动,并且被用于针对集群中的每个管理程序的目标解分级速率。
使得每个管理程序在针对每个数据存储的共同的目标速率进行解分级,被解分级的数据可以变得针对给定管理程序完全地解分级。当出现这一情况时,重要的是,受影响的管理程序将其传输返回协调主机计算机。一旦接收到表明给定管理程序没有更多数据用于给定数据存储上的解分级的通知,协调主机计算机重新计算目标解分级速率,用于保持集群中的主机计算机能够解分级数据。
例如,如果针对数据存储X的十节点集群的目标解分级速率是200MB每分钟,则每个管理程序将具有20MB每分钟的单独解分级速率。如果十个主机计算机中的一个主机计算机耗尽用以解分级的数据,则协调主机计算机简单地通知能够解分级数据的其余九个主机计算机,来将他们的有效目标解分级速率提高到200/9或者22MB每分钟。如果三个其他的主机计算机耗尽解用以分级的数据,则用于其余主机计算机的速率将提高至200/6或者33MB每分钟。一旦其他主机计算机具有用以解分级的定义的最小数据,它们通知协调主机计算机并且重写进入解分级群组,降低每个主机计算机的有效目标速率。以此方式,协调函数确保针对每个数据存储的数据的流率保持随着时间流逝而相对恒定,并且单独管理程序的数据的变化的流率得以屏蔽。
图4是示出将被写入到I/O分级设备的数据解分级、以释放I/O分级设备中的空间的过程的示意性图示。协调主机计算机101可以是主机计算机100-1至100-N中的任一项。箭头401、402、402表示每个主机计算机向协调主机计算机101传输其在特定分钟数期间的每分钟写入速率的移动平均。箭头411、412、413表示协调主机计算机101向主机计算机中的每一个传输:由主机计算机向协调主机计算机101传输的移动平均的平均。箭头421、422和423表示来自I/O分级设备130的相应区域131、132、133的、正在由主机计算机读取的I/O分级设备130中的先前分级的数据,而箭头431、432、433表示由主机计算机读取的先前分级的数据的写入。先前分级的数据的写入通过主机计算机中的每个在由协调主机计算机101向其传输的目标解分级速率执行。如果给定主机计算机耗尽其用于给定数据存储的已分级数据,则向协调主机计算机101传输基于集群中剩余的主机计算机的数据而重新计算的针对给定数据存储的目标速率,以便继续使得数据就绪用于向给定数据存储进行解分级。
在管理程序故障时,可以使得来自故障管理程序的主机计算机的被分级数据对于集群中的全部其余主机计算机可见,以便另一主机计算机的管理程序可以从故障管理程序接管解分级。被分级数据的可见性是通过使用跨越集群的共享文件系统(诸如VMware的VMFS(虚拟机文件系统)来实现的。另外,当管理程序故障时,运行在故障管理程序的主机计算机中的VM被迁移至另一主机计算机,并且该新的主机计算机的管理程序从故障管理程序接管解分级。管理程序的故障可以以任何数量的方式来检测,包括:在美国专利申请序列号12/017,255中描述的技术,该申请在2008年1月21日提交,并且名称为“High AvailabilityVirtual Machine Cluster”,通过引用而将其全部内容引入于此。
图5是示出在将数据分级到I/O分级设备的管理程序中出现故障时、将被写入到I/O分级设备中的数据解分级的过程的示意性图示。在图5中给出的示例中,主机计算机100-2示出为具有故障,并且运行在主机计算机100-2中的VM被迁移至主机计算机100-1,如箭头510所示。另外,主机计算机100-1的管理程序读取故障主机计算机的管理程序的I/O分级在设备130的区域132中的数据,如箭头520指示。由此,如箭头530所指示,主机计算机100-1的管理程序在由协调主机计算机101传输的目标解分级速率,写入在I/O分级设备130的区域132中分级的数据。
图5提供了运行在每个主机计算机中的单一VM的简化示例。更一般地,一个或者多个VM可以运行在每个主机计算机中。因而,在每个VM的基础上跟踪用于VM的被分级的数据。在一个实施方式中,用于每个VM的被分级的数据被存储在共享文件系统(诸如VMFS)上与该VM相关联的一个或者多个高速缓存文件中,从而运行在故障主机计算机中的VM可以被迁移至能够在每个VM基础上访问I/O分级设备130的活的(live)主机计算机。每个此类活的主机计算机继而将接管负责用于解分级来自与作为迁移结果而正在运行的VM相关联的高速缓存文件的数据。
在进一步的实施方式中,针对每个VM的所分级数据被存储在共享文件系统(诸如VMFS)上的与VM相关联的一个或者多个高速缓存文件中,以便可以在高速缓存文件到达设置的大小时来由任何主机计算机的管理程序来执行在每个此类高速缓存文件中的数据的解分级。例如,一旦用于VM的高速缓存文件到达设置的大小,则新的高速缓存文件从该VM开始,并且在访问I/O分级设备130的主机计算机的集群中的随机主机计算机被选择用于对较旧的高速缓存文件进行解分级。当对较旧的高速缓存文件的解分级完成时,将其删除。当下一高速缓存文件就绪时(即,到达设定的大小),选择新的随机主机计算机以对高速缓存文件中的数据进行解分级。可以根据负载平衡算法(诸如VMware的DRS(分布式资源调度器)),来进行用于执行解分级的主机计算机的选择。应当认识到,针对任何给定VM,一次仅允许与VM相关联的一个高速缓存文件来解分级,从而保持写入顺序。在解分级期间主机计算机故障时,选择新的主机计算机来继续在每个VM的基础上进行解分级。
应当认识到,数据将以分离于任何接分级的方式从I/O分级设备130被去除。基于多个可能的去除策略中的一个策略,数据将从I/O分级设备130被去除。此类策略的示例包括LRU(最近最少使用)或者LFU(最近最不频繁使用)或者两者的某种组合。另外,来自各种VM的被分级数据可以具有不同的优先级,从而来自某些VM的数据相比于其他VM的数据而言可以被延长在I/O分级设备130中的驻留。
在实施方式中,管理程序提供仲裁功能,从而可以由任何后备存储设备使用任何分级设备。当然,为了保持在此描述的益处,分级设备应当比后备存储设备更好的I/O性能。作为仲裁器,管理程序能够在如上所述的每个数据的基础上实施优化的解分级流控制系统,这使得降低在后备数据存储上的突发I/O,并且最终降低部署处理突发I/O的存储系统的成本。另外,作为仲裁器的管理程序的位置可以用于针对写入和针对高速缓存去除两者的排队、在每个VM的基础上,实施I/O请求的优先级化。
在此描述的各种实施方式可以使用涉及存储在计算机系统中的数据的各种计算机实现的操作。例如,通常这些操作可以请求物理量的物理操纵,尽管不是必须的,这些量可以采取电子信号或者磁信号的形式,由此他们或者他们的表示能够被存储、传输、组合、比较或者另外被操纵。此外,此类操纵通常以术语来称呼,诸如,产生、标识、确定或者比较。形成本发明的一个或者多个实施方式的部分的、在此描述的任何操作可以是可用的机器操作。另外,本发明的一个或者多个实施方式还涉及用于执行这些操作的设备或者装置。该装置可以专门地构造用于专用目的,或者该装置可以是由存储在计算机中的计算机程序选择性地激活或者配置的通用目的的计算机。特别是,各种通用目的的机器可以由根据在此的教示而编写的计算机程序一起使用,或者可以更便于构造更为专用的装置以执行在此所需的操作。
在此描述的各种实施方式可以由其他计算机系统配置来实践,包括手持设备、微处理器系统、基于微处理器的或者可编程的消费者电子设备、迷你计算机、大型计算机等。
本发明的一个或者多个实施方式可以实现为一个或者多个计算机程序,或者作为在一个或者多个计算机可读介质中体现的一个或者多个计算机程序模块。术语计算机可读介质是指可以存储之后被输入到计算机系统的数据的任何数据存储设备。计算机可读介质可以基于任何现有的或者后续开发的技术,用于以支持由计算机读取的方式来体现计算机程序。计算机可读介质的示例包括硬驱动、网络附接的存储(NAS)、只读存储器、随机访问存储器(例如,闪存设备)、CD(压缩盘)、CD-ROM、CD-R或者CD-RW、DVD(数字通用盘)、磁带、以及其他的光学或者非光学存储设备。计算机可读介质还可以被分布在耦合到计算机系统的网络,以便计算机可读代码以分布式方式存储和执行。
尽管出于清晰理解的目的而以某些细节描述了本发明的一个或者多个实施方式,应当理解,可以在权利要求书的范围内做出特定的改变和修改。由此,描述的实施方式被认为是示意性而并非限制性的,并且权利要求书的范围并不被限制于在此给出的细节,而是可以在权利要求书及其等同物的范围内进行修改。除非在权利要求书中明确阐明,权利要求书中的元件和/或步骤不暗示操作的任何特定顺序。
另外,尽管所描述的虚拟化方法已经概括地假定虚拟机呈现于与特定硬件系统相一致的接口,本领域普通技术人员将认识到,所描述的方法可以与不直接对应于任何特定硬件系统的虚拟化相结合地使用。根据各种实施方式的虚拟化系统实现为主管的实施方式、非主管的实施方式或者作为在两者之间的模糊差异,这些都是可以预期的。此外,各种虚拟化操作可以全部或者部分地实现为硬件。例如,硬件实现可以使用查找表来用于修改对于安全非盘数据的存储访问请求。
无关于虚拟化的程度,多种变形、修改、增加和改进都是可能的。虚拟化软件由此可以包括如下组件:主机、控制台、或者执行虚拟化功能的访客操作系统。多个实例可以提供用于在此描述为单一实例的组件、操作或者结构。最终,在各个组件、操作和数据存储之间的边界在某些程度上是任意的,并且在具体的示意性配置的上下文中示出了特定的操作。可以设想功能的其他分配,并且该其他分配可以落在本发明的范围内。通常,在示例性配置中呈现为单独组件的结构和功能性可以实现为相结合的结构或者组件。类似地,呈现为单一组件的结构和功能性可以实现为分离的组件。这些以及其他变形、修改、增加和改进可以落在所附权利要求书的范围内。
Claims (9)
1.一种计算机系统,包括:
多个主机计算机,每个所述主机计算机具有运行于其中的一个或者多个虚拟机VM(120)、以及支持所述VM(120)的系统软件(110);
第一共享存储设备(130),连接至所述多个主机计算机中的每个主机计算机;以及
第二共享存储设备(141,142),具有比所述第一共享存储设备(130)更大的容量以及更高的输入/输出等待时间,
其中所述系统软件(110)配置用于以写回模式来将将被写入到所述第二共享存储设备(141,142)中的数据高速缓存在所述第一共享存储设备(130)中;以及
其中由所述系统软件(110)以相对于当所述数据在所述第一共享存储设备(130)中被高速缓存时,异步地将所述第一共享存储设备(130)中所高速缓存的所述数据拷贝到所述第二共享存储设备(141,142)之中;
其中所述多个主机计算机中的每个主机计算机中的所述系统软件(110)被配置以在第一速率将数据高速缓存到所述第一共享存储设备(130)之中;以及
其中所述多个主机计算机中的每个主机计算机中的所述系统软件(110)被配置以在第二速率将所述第一共享存储设备(130)中所高速缓存的所述数据拷贝到所述第二共享存储设备(141,142)之中;
特征在于:
协调主机计算机(101)被提供在所述多个主机计算机之中;
所述多个主机计算机中的每一个主机计算机被配置以向所述协调主机计算机(101)报告所述第一速率;
所述协调主机计算机(101)的系统软件(110)被配置以基于全部主机计算机的系统软件(110)向其报告的所述第一速率的平均,计算针对全部所述主机计算机的目标速率,以及向所述多个主机计算机中的每个主机计算机传输计算的所述目标速率;以及
所述多个主机计算机中的每个主机计算机被配置以基于所述目标速率,设置将所述第一共享存储设备(130)中所高速缓存的所述数据拷贝到所述第二共享存储设备(141,142)之中的所述第二速率。
2.根据权利要求1所述的计算机系统,其中所述系统软件(110)被配置以:通过向所述第一共享存储设备(130)发出写入请求,和在接收到来自所述第一共享存储设备(130)的写入应答时向所述VM(120)转发所述写入应答,来处理所述VM(120)的写入输入/输出操作。
3.根据权利要求1所述的计算机系统,其中所述系统软件(110)被配置以:通过基于读取数据是否在所述第一共享存储设备(130)中被高速缓存而向所述第一共享存储设备(130)和所述第二共享存储设备(141,142)中的一个发出读取请求,来处理所述VM(120)的读取输入/输出操作。
4.根据前述权利要求中的任一项所述的计算机系统,其中由所述系统软件(110)报告的每个速率是所述系统软件(110)已经将将被写入到所述第一共享存储设备(141,142)中的数据高速缓存到所述第一共享存储设备(130)之中的速率的移动平均。
5.根据权利要求1-3中的任一项所述的计算机系统,其中所述每个主机计算机中的所述系统软件(110)进一步被配置以:如果另一系统软件(110)已经失败,则由所述另一系统软件(110)将在所述第一共享存储设备(130)中高速缓存的所述数据拷贝至所述第二共享存储设备(141,142)之中。
6.根据权利要求1-3中的任一项所述的计算机系统,其中所述第一共享存储设备(130)是固态驱动阵列,而所述第二共享存储设备(141,142)是基于旋转盘的存储阵列。
7.一种对来自虚拟机VM(120)的输入/输出操作的写入数据进行高速缓存的方法,所述方法被用于在具有多个主机计算机的计算机系统中使用,每个主机计算机具有运行于其中的一个或者多个所述虚拟机VM(120)以及支持所述VM(120)的系统软件(110),所述方法包括:
在接收到来自VM(120)的包含所述写入数据的写入输入/输出操作时,发出向第一存储设备(130)写入所述写入数据的请求;
在接收到来自所述第一存储设备(130)的、所述第一存储设备(130)已经向其中成功地写入了所述写入数据的应答时,向所述VM(120)转发写入应答;以及
在所述转发之后,发出针对向所述第一存储设备(130)的所述写入数据的读取请求,以及继而发出向第二存储设备(141,142)写入所述写入数据的写入请求,
其中所述第一存储设备和所述第二存储设备(130;141,142)由所述多个主机计算机共享,并且
所述第二存储设备(141,142)具有比所述第一存储设备(130)更高的容量和更高的输入/输出等待时间;
特征在于:
由所述多个主机计算机中的每个主机计算机跟踪向所述第一存储设备(130)的成功写入的第一速率;
向所述多个主机计算机之中的协调主机计算机(101)报告跟踪的所述第一速率;
基于由全部所述主机计算机报告的所跟踪的所述第一速率,由所述协调主机计算机(101)计算目标速率;
由所述多个主机计算机中的每个主机计算机从所述协调主机计算机(101)接收所述目标速率;以及
由所述多个主机计算机中的每个主机计算机来控制向所述第二存储设备(141,142)发出的写入请求,以基于所述目标速率将在所述第一存储设备(130)中被高速缓存的所述数据拷贝至所述第二存储设备(141,142)之中。
8.根据权利要求7所述的方法,进一步包括:
发出针对由已经失败的系统软件向所述第一存储设备(130)中写入的数据的读取请求,继而发出由所述主机计算机中的另一主机计算机的系统软件(110)向所述第二存储设备(141,142)写入此类数据的写入请求。
9.一种对来自虚拟机VM(120)的输入/输出操作的写入数据进行高速缓存的设备,所述设备被用于在具有多个主机计算机的计算机系统中使用,每个主机计算机具有运行于其中的一个或者多个所述虚拟机VM(120)以及支持所述VM(120)的系统软件(110),所述设备包括:
用于在接收到来自VM(120)的包含所述写入数据的写入输入/输出操作时,发出向第一存储设备(130)写入所述写入数据的请求的装置;
用于在接收到来自所述第一存储设备(130)的、所述第一存储设备(130)已经向其中成功地写入了所述写入数据的应答时,向所述VM(120)转发写入应答的装置;以及
用于在所述转发之后,发出针对向所述第一存储设备(130)的所述写入数据的读取请求,以及继而发出向第二存储设备(141,142)写入所述写入数据的写入请求的装置,
其中所述第一存储设备和所述第二存储设备(130;141,142)由所述多个主机计算机共享,并且
所述第二存储设备(141,142)具有比所述第一存储设备(130)更高的容量和更高的输入/输出等待时间;
特征在于:
由所述多个主机计算机中的每个主机计算机跟踪向所述第一存储设备(130)的成功写入的第一速率;
所述设备进一步包括用于向所述多个主机计算机之中的协调主机计算机(101)报告跟踪的所述第一速率的装置;
基于由全部所述主机计算机报告的所跟踪的所述第一速率,由所述协调主机计算机(101)计算目标速率;
由所述多个主机计算机中的每个主机计算机从所述协调主机计算机(101)接收所述目标速率;以及
由所述多个主机计算机中的每个主机计算机来控制向所述第二存储设备(141,142)发出的写入请求,以基于所述目标速率将在所述第一存储设备(130)中被高速缓存的所述数据拷贝至所述第二存储设备(141,142)之中。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261728207P | 2012-11-19 | 2012-11-19 | |
US61/728,207 | 2012-11-19 | ||
US13/717,584 | 2012-12-17 | ||
US13/717,584 US9081686B2 (en) | 2012-11-19 | 2012-12-17 | Coordinated hypervisor staging of I/O data for storage devices on external cache devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103823786A CN103823786A (zh) | 2014-05-28 |
CN103823786B true CN103823786B (zh) | 2017-04-12 |
Family
ID=49382279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310576297.1A Active CN103823786B (zh) | 2012-11-19 | 2013-11-18 | 外部高速缓存设备上的管理程序i/o分级 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9081686B2 (zh) |
EP (1) | EP2733618B1 (zh) |
JP (1) | JP5951582B2 (zh) |
CN (1) | CN103823786B (zh) |
AU (1) | AU2013252402B2 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140164323A1 (en) * | 2012-12-10 | 2014-06-12 | Transparent Io, Inc. | Synchronous/Asynchronous Storage System |
US9069701B2 (en) * | 2012-12-11 | 2015-06-30 | International Business Machines Corporation | Virtual machine failover |
US9250827B2 (en) | 2012-12-14 | 2016-02-02 | Vmware, Inc. | Storing checkpoint file in high performance storage device for rapid virtual machine suspend and resume |
US9448941B1 (en) | 2012-12-31 | 2016-09-20 | Emc Corporation | System and method for cache management |
JP6119533B2 (ja) * | 2013-09-27 | 2017-04-26 | 富士通株式会社 | ストレージ装置,ステージング制御方法及びステージング制御プログラム |
US9477507B2 (en) | 2013-12-20 | 2016-10-25 | Vmware, Inc. | State customization of forked virtual machines |
US9323565B2 (en) | 2013-12-20 | 2016-04-26 | Vmware, Inc. | Provisioning customized virtual machines without rebooting |
US10977063B2 (en) | 2013-12-20 | 2021-04-13 | Vmware, Inc. | Elastic compute fabric using virtual machine templates |
US9294567B2 (en) | 2014-05-02 | 2016-03-22 | Cavium, Inc. | Systems and methods for enabling access to extensible storage devices over a network as local storage via NVME controller |
US20170228173A9 (en) * | 2014-05-02 | 2017-08-10 | Cavium, Inc. | Systems and methods for enabling local caching for remote storage devices over a network via nvme controller |
US9367414B2 (en) * | 2014-06-27 | 2016-06-14 | Vmware, Inc. | Persisting high availability protection state for virtual machines stored on distributed object-based storage |
US9619268B2 (en) | 2014-08-23 | 2017-04-11 | Vmware, Inc. | Rapid suspend/resume for virtual machines via resource sharing |
CN104298474A (zh) * | 2014-10-13 | 2015-01-21 | 张维加 | 一种基于服务端与外部缓存系统的外接式计算设备加速方法与实现该方法的设备 |
US20160219120A1 (en) * | 2015-01-23 | 2016-07-28 | Netapp, Inc. | Methods for providing a staging area for objects prior to erasure coding and devices thereof |
US9798497B1 (en) * | 2015-06-08 | 2017-10-24 | Skytap | Storage area network emulation |
US9838277B2 (en) | 2015-06-25 | 2017-12-05 | Keysight Technologies Singapore (Holdings) Pte Ltd | Packet copy management for service chain processing within virtual processing systems |
US10678750B2 (en) * | 2015-08-28 | 2020-06-09 | AirWatcha, LLC | On demand file sync |
US11892981B2 (en) | 2015-08-28 | 2024-02-06 | Airwatch Llc | On demand file sync |
US10241913B2 (en) * | 2016-01-20 | 2019-03-26 | International Business Machines Corporation | Operating local caches for a shared storage device |
KR101975058B1 (ko) * | 2016-02-05 | 2019-05-03 | 한국전자통신연구원 | 데이터 가용성 지원 시스템 및 방법 |
KR102610846B1 (ko) * | 2016-05-13 | 2023-12-07 | 한국전자통신연구원 | 고속 분산 저장 장치 및 방법 |
US20180129440A1 (en) * | 2016-11-09 | 2018-05-10 | Western Digital Technologies, Inc. | Self-virtualizing flash memory for solid state drive |
CN106610793B (zh) * | 2016-11-11 | 2019-09-17 | 深信服科技股份有限公司 | 超融合系统的缓存数据管理方法及装置 |
KR102474582B1 (ko) | 2017-08-28 | 2022-12-05 | 삼성전자주식회사 | 가상화 클러스터 환경의 비바람직한 호스트 서버 상에서 더티 가상 머신의 실행을 방지하는 방법 및 시스템 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0392184A2 (en) * | 1989-04-12 | 1990-10-17 | International Business Machines Corporation | Hierarchical memory organization |
US6189080B1 (en) * | 1996-09-20 | 2001-02-13 | Emc Corporation | Minimum read rate throughput in a disk cache system |
CN1526100A (zh) * | 2001-07-12 | 2004-09-01 | IP�����ɷ�����˾ | 集成电路装置 |
CN101859234A (zh) * | 2009-04-02 | 2010-10-13 | Lsi公司 | 存储阵列中使用镜像高速缓存卷来减小驱动开销的系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US1725508A (en) | 1927-05-21 | 1929-08-20 | Bell-Clifford Sidney | Strap support for chair, davenport, and such like arms |
JPH08147218A (ja) * | 1994-11-24 | 1996-06-07 | Fujitsu Ltd | キャッシュ制御装置 |
US20030187898A1 (en) * | 2002-03-29 | 2003-10-02 | Fujitsu Limited | Parallel processing method of an eigenvalue problem for a shared-memory type scalar parallel computer |
US8234457B2 (en) * | 2006-06-30 | 2012-07-31 | Seagate Technology Llc | Dynamic adaptive flushing of cached data |
US8554981B2 (en) | 2007-02-02 | 2013-10-08 | Vmware, Inc. | High availability virtual machine cluster |
US9519540B2 (en) * | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US8332586B2 (en) * | 2009-03-30 | 2012-12-11 | Hitachi, Ltd. | Information processing system for measuring the cache effect in a virtual capacity |
US8301840B2 (en) * | 2009-12-15 | 2012-10-30 | International Business Machines Corporation | Assigning cache priorities to virtual/logical processors and partitioning a cache according to such priorities |
JP4865075B1 (ja) * | 2010-09-30 | 2012-02-01 | 株式会社東芝 | 計算機および計算機システム |
JP2012123556A (ja) * | 2010-12-07 | 2012-06-28 | Hitachi Solutions Ltd | 仮想サーバーシステム、及びその制御方法 |
WO2012116117A2 (en) * | 2011-02-22 | 2012-08-30 | Sandisk Enterprise Ip Llc | Storage management and acceleration of storage media in clusters |
-
2012
- 2012-12-17 US US13/717,584 patent/US9081686B2/en active Active
-
2013
- 2013-10-15 EP EP13188646.7A patent/EP2733618B1/en active Active
- 2013-10-30 JP JP2013225495A patent/JP5951582B2/ja active Active
- 2013-11-05 AU AU2013252402A patent/AU2013252402B2/en active Active
- 2013-11-18 CN CN201310576297.1A patent/CN103823786B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0392184A2 (en) * | 1989-04-12 | 1990-10-17 | International Business Machines Corporation | Hierarchical memory organization |
US6189080B1 (en) * | 1996-09-20 | 2001-02-13 | Emc Corporation | Minimum read rate throughput in a disk cache system |
CN1526100A (zh) * | 2001-07-12 | 2004-09-01 | IP�����ɷ�����˾ | 集成电路装置 |
CN101859234A (zh) * | 2009-04-02 | 2010-10-13 | Lsi公司 | 存储阵列中使用镜像高速缓存卷来减小驱动开销的系统 |
Also Published As
Publication number | Publication date |
---|---|
JP2014102823A (ja) | 2014-06-05 |
JP5951582B2 (ja) | 2016-07-13 |
EP2733618A1 (en) | 2014-05-21 |
AU2013252402B2 (en) | 2015-04-02 |
US20140143504A1 (en) | 2014-05-22 |
CN103823786A (zh) | 2014-05-28 |
AU2013252402A1 (en) | 2014-06-05 |
EP2733618B1 (en) | 2016-11-23 |
US9081686B2 (en) | 2015-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103823786B (zh) | 外部高速缓存设备上的管理程序i/o分级 | |
US10042869B1 (en) | Method for data transfer between compute clusters and file system | |
US11243708B2 (en) | Providing track format information when mirroring updated tracks from a primary storage system to a secondary storage system | |
JP5695660B2 (ja) | クラスタ選択及び協調的レプリケーションのためのクラスタ・ファミリー | |
US11157376B2 (en) | Transfer track format information for tracks in cache at a primary storage system to a secondary storage system to which tracks are mirrored to use after a failover or failback | |
JP5813375B2 (ja) | ストレージシステムにおける要求に対する応答に関連した待ち時間削減 | |
US8365169B1 (en) | Migrating a virtual machine across processing cells connected to an interconnect that provides data communication without cache coherency support | |
US20180059988A1 (en) | STREAM IDENTIFIER BASED STORAGE SYSTEM FOR MANAGING AN ARRAY OF SSDs | |
CN111722786A (zh) | 基于NVMe设备的存储系统 | |
JP2007122477A (ja) | Raidシステム、raidコントローラ及びそのリビルド/コピーバック処理方法 | |
TWI793654B (zh) | 雲端遊戲系統及操作雲端遊戲系統之方法 | |
US11281509B2 (en) | Shared memory management | |
US9606873B2 (en) | Apparatus, system and method for temporary copy policy | |
Xu et al. | Rethink the storage of virtual machine images in clouds | |
JP2009015844A (ja) | 要求優先順位シーク・マネージャ | |
CN112052291A (zh) | 一种用户态访问分布式块存储系统的方法及系统 | |
US7725654B2 (en) | Affecting a caching algorithm used by a cache of storage system | |
US20210064272A1 (en) | Multi-tier storage | |
US8447925B2 (en) | Home storage device and software including management and monitoring modules | |
JP2011070464A (ja) | 計算機システム及び計算機システムの性能管理方法 | |
US11126371B2 (en) | Caching file data within a clustered computing system | |
Liu et al. | masfs: File system based on memory and ssd in compute nodes for high performance computers | |
Li | Scalability of RAID systems |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: California, USA Patentee after: Weirui LLC Country or region after: U.S.A. Address before: California, USA Patentee before: VMWARE, Inc. Country or region before: U.S.A. |