CN107003811B - 减少在固态驱动器中输入和输出操作的混杂 - Google Patents

减少在固态驱动器中输入和输出操作的混杂 Download PDF

Info

Publication number
CN107003811B
CN107003811B CN201580062498.7A CN201580062498A CN107003811B CN 107003811 B CN107003811 B CN 107003811B CN 201580062498 A CN201580062498 A CN 201580062498A CN 107003811 B CN107003811 B CN 107003811B
Authority
CN
China
Prior art keywords
solid state
state drive
priority
writes
virtual machines
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201580062498.7A
Other languages
English (en)
Other versions
CN107003811A (zh
Inventor
G·F·佩斯
S·N·特丽卡
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN107003811A publication Critical patent/CN107003811A/zh
Application granted granted Critical
Publication of CN107003811B publication Critical patent/CN107003811B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

计算设备的操作系统管理多个应用对固态驱动器的访问。在固态驱动器中维持单独的带,以存储多个应用中的至少两个不同的应用的写入。另外地,在其他实施例中,计算设备的虚拟机管理器管理多个虚拟机对固态驱动器的访问。在固态驱动器中维持单独的带,以存储多个虚拟机中至少两个不同的虚拟机的写入。

Description

减少在固态驱动器中输入和输出操作的混杂
背景技术
在计算中,虚拟机(VM)是特定计算机系统的仿真。虚拟机基于实际的或假设的计算机的计算机架构和功能操作,且实现虚拟机的机制可以包括专门的硬件、软件、或固件。
管理程序或虚拟机管理器(VMM)是创建和运行多个虚拟机的一段计算机软件、固件或硬件。管理程序在其上运行一个或多个虚拟机的计算机可以被称为主机。每一虚拟机可以被称为客户机。管理程序向客户操作系统呈现虚拟操作平台并管理客户操作系统的执行。各种操作系统的多个实例可以共享虚拟化的硬件资源。
由各种操作系统的多个实例共享的虚拟化的硬件资源可以包括一个或多个固态驱动器。固态驱动器(SSD)是使用集成电路组合作为用于持久性存储数据的存储器的数据存储设备。SSD没有移动的机械组件,且这将SSD与诸如硬盘驱动器(HDD)或软盘之类的包含旋转的盘片和可移动的可读/写头部的传统的电机性磁盘区分开。与电机性磁盘相比,典型地,SSD更能抵抗物理撞击、运行安静、具有更少的存取时间和更少的延迟。许多类型的SSD使用基于NAND的闪存,其无需电源而存数据且是一种非易失性的存储技术。
SSD在存储器的整个块上操作。在向存储器单元写入之前,需要擦除闪存,这需要向存储器单元应用大电压,这只能一次发生在整个存储器单元块上。例如,如果向具有128KB擦除块大小的SSD写1KB的数据,则SSD需要从目标块读127KB,擦除该块并将旧数据加上新数据写回到该块。SSD固件可以预先擦除块并尝试将新数据写入到这些预先擦除的块中。
附图说明
现在参考附图,在全部附图中相似的附图标记表示相应的部分:
图1根据某些实施例示出了计算环境的框图,其中虚拟机管理器控制多个虚拟机将数据写入SSD的访问;
图2根据某些实施例示出了计算环境的框图,其中操作系统控制多个应用将数据写入SSD的访问;
图3根据某些实施例示出了一流程图,该流程图示出了在虚拟机管理器控制多个虚拟机将数据写入SSD的访问的计算环境中、用于将数据写入SSD的操作;
图4根据某些实施例示出了一流程图,该流程图示出了在操作系统控制多个应用将数据写入SSD的访问的计算环境中、用于将数据写入SSD的操作;
图5根据某些实施例示出了一流程图,该流程图示出了在虚拟机管理器控制多个虚拟机将数据写入SSD的访问的计算环境中、用于将数据写入SSD的进一步操作;
图6根据某些实施例示出了一流程图,该流程图示出了在操作系统控制多个应用将数据写入SSD的访问的计算环境中、用于将数据写入SSD的进一步操作;
图7根据某些实施例示出了一流程图,该流程图示出了在虚拟机管理器控制多个虚拟机将数据写入SSD的访问的计算环境中、用于将数据写入SSD的进一步操作,其中SSD可以支持或不支持用于生成带的优先级和逻辑块地址范围;以及
图8根据某些实施例示出了计算设备的框图,其可以包括SSD或可以耦合到SSD。
具体实施方式
在随后的具体实施方式中,参考附图,附图构成了具体方式的一部且其示出了若干实施例。可以理解的是,可以使用其他的实施例且可以做出结构性和操作性的改变。
与针对非顺序性(例如,随机或混杂的)I/O相比,固态驱动器针对顺序输入/输出(I/O)的性能可以非常优越。在非顺序I/O中,可以以任何顺序访问文件的一部分。在顺序I/O中,在访问第二部分之前,访问文件的第一部分,且在访问第三部分之前,访问第二部分,以此类推。对于写,由于较低的内部写放大,所以顺序I/O在性能上优于非顺序I/O,且由于执行对数据的预先获取的能力,所以对于读,顺序I/O在性能上优于非顺序I/O。写放大是与SSD关联的不受欢迎的现象,因为作为写放大的结果,实际写入的物理信息量是想要写入的逻辑量的倍数。写放大可以通过提交至SSD的写与来自主机系统的写的比率来测量。在SSD中重写一些数字需要对SSD的已经使用的部分进行读取、更新并写入新的位置,如果新位置先前在某个时间点已经被使用,则同时还要首先擦除新位置;由于SSD工作的方式,可能擦除和重写了比新数据的量实际所需的大得多的SSD的部分。该倍增效果增加了所需的写入量并导致了写放大。在顺序I/O中,写放大比在非顺序I/O中少得多。因此,当通过顺序I/O在SSD写入时,获得了优越的性能。
但是,在执行关于SSD的I/O的虚拟化系统中,在向基础的(underlying)SSD发出之前,即使来自各种虚拟机(VM)或应用的顺序I/O请求也可能在管理程序级别变得混杂(intermingled),这导致了较低的存储和系统性能。在管理程序级别的混杂导致了数据以混杂的或非顺序的方式存储在SSD中,且因此,在虚拟化的系统中可能无法获得顺序I/O关于SSD的优点。
某些实施例提供了减小或消除由来自各种虚拟机的I/O混杂所导致的SSD中性能降低的机制。具体地,通过减小不同虚拟机的写的混杂而大大地增强了处理写请求的性能。
在某些实施例中,特定的虚拟机的写请求是针对固态磁盘的所选择的带的,其中,所选择的带独立于固态磁盘中的其他带,且其中SSD中的每一带是SSD中一系列邻接的预先擦除的擦除块(即,一带可以是非易失性存储器中一些顺序的物理存储位置的范围;例如,一带可以包括NAND存储器的顺序块)。这通过向在每一虚拟机的逻辑块地址(LBA)范围上的固态磁盘提供允许固态磁盘确定针对每一输入的写请求使用哪一带的信息来完成。这减少了给定带内来自不同虚拟机的I/O的混杂,产生了较低的写放大(尤其是当若干虚拟机在发出顺序I/O时)并提高了写性能。
图1根据某些实施例示出了计算环境100的框图,其中虚拟机管理器102控制对多个虚拟机104a、104b、104c、…104n的访问以向固态驱动器106写数据。虚拟机104a、104b、104c、…104n和虚拟机管理器102在计算设备108中以硬件、软件、或固件、或其任何组合实现。固态驱动器106可以位于计算设备108之内(如在图1中所示出的)或可以位于计算设备108之外且耦合到计算设备108。
固态驱动器106可以由非易失性存储器120组成,例如NAND存储器、NOR存储器或某一其他适当的非易失性存储器。在某些实施例中,固态驱动器106可以能够存储若干太字节或更多的数据。某些实施例可以应用于其他类型的非易失性存储器、相变存储器(PCM)、三维交叉点存储器、电阻性存储器、纳米线存储器、铁电晶体随机存取存储器(FeTRAM)、包含忆阻器技术的磁阻随机存取存储器(MRAM)存储器、自旋转移力矩(STT)-MRAM、字节可寻址随机存取非易失性存储器等。
在某些实施例中,计算设备108可以由任何合适的计算设备组成,例如,个人计算机、大型机、电话设备、智能电话、存储控制器、刀锋计算机、具有存储器的处理器等。在某些可供替换的实施例中,计算设备108可以通过总线(例如外围组件互连(PCIe)、串行先进技术附件(SATA)、串行附接的小型计算机系统接口(ASA)之类的)或诸如互联网、存储区域网络(SAN)、局域网(LAN)等之类的网络与SSD 106通信。SATA规范的进一步细节可以在由俄勒冈比佛顿SATA国际组织(SATA-IO)在2013年8月发布的名称为“串行ATA规范,修订3.2”中找到。在另一示例中,接口和/或互连协议可以遵守和/或兼容NVMe(非易失性存储器主机控制器快速接口)。NVMe的进一步细节可以在由NVM ExpressTM于2014年11月3日发布的名称为“NVM ExpressTM,修订1.2”的出版物和/或该规范的先前的和/或以后的版本中找到(NVMExpress是NVM Exepress有限公司的商标)。
虚拟机104a…104n中的每一个可以具有与其关联的优先级。例如,如在图1中所示出的,虚拟机104a、104b可以具有较高的优先级且虚拟机104c、104n可以具有较低的优先级。在某些示例性实施例中,可以将优先级定性地指示为高或低,或定量地指示为与优先级对应的数值。虚拟机的较高优先级指的是应该向来自该虚拟机的I/O提供高于来自具有较低优先级的虚拟机的I/O的优先化的执行。
虚拟机管理器102(也称为管理程序)可以包括以硬件、软件、固件、或其任何组合实现的虚拟机优先级和逻辑块地址(LBA)范围指示模块110。虚拟机优先级和LBA范围指示模块110可以向在固态驱动器106中执行、且以硬件、软件、固件、或其任何组合实现的虚拟机优先级和LBA范围接收模块112发送虚拟机的优先级和LBA范围。应用程序接口(API)可以被定义成用于在虚拟机优先级和LBA范围指示模块110与虚拟机优先级和LBA范围接收模块112之间通信。LBA是映射到SSD上特定地址的值。
在虚拟化的环境中,多个虚拟机104a…104n共享对单个固态驱动器106的访问。向每一虚拟机分配由固态驱动器106支持的一定范围的LBA,其中虚拟机可以访问固态驱动器106中所分配的LBA。对SSD 106的访问可以由虚拟机管理器102和SSD 106监管,以确保虚拟机仅访问其所分配的LBA范围。
虚拟机优先级和LBA范围指示模块110与虚拟机优先级和LBA范围接收模块112在虚拟机管理器102与固态驱动器106之间接合以向固态驱动器106通知不同虚拟机的LBA范围,且可选地,通知虚拟机的优先级。每次启动计算设备、或摧毁、创建或修改虚拟机时,向固态驱动器106发送该信息。
固态驱动器106在被称为带的非易失性存储器的邻接的预先擦除的擦除块(EB)之内将数据写入内部页中。基于虚拟机的LBA范围的信息,固态驱动器106可以针对每一虚拟机使用专用带,以确保对一个虚拟机的写入不与来自其他虚拟机的写入相混杂。
然而,如果系统支持比可用带的数目更多的虚拟机,则固态驱动器106可以将一些虚拟机的写入混杂到每一开放带中,或使用较高优先级的虚拟机获得其自身的开放的带而较低优先级虚拟机的写入被混杂的机制。例如,在图1中,带114存储从虚拟机#1 104a接收的写请求中接收的数据(称为“写入”),带116存储来自虚拟机#2 104b的写入,且带118存储来自虚拟机#3 104c和虚拟机#4 104n的写入。从而,低优先级虚拟机104c、104d的写入在带118中混杂,而较高优先级虚拟机104a、104b的写入存储在单独的带中。虚拟机104a、104b的性能将可以优于虚拟机104c、104n的性能,至少关于写操作。
从而,图1示出了某些实施例,其中向每一虚拟机分配由虚拟机管理器102向固态驱动器106传送的LBA范围和可选地优先级。如果在固态驱动器106中可以获得充足数量的带,则在不同的带中存储不同虚拟机的写入。但是,如果不能获得充足数量的带,则较低优先级虚拟机的写入被混杂到相同的带中。
在某些实施例中,固态驱动器106以非易失性的方式存储与多个虚拟机104a…104n相关的数据、逻辑块地址范围、以及多个虚拟机中每一个虚拟机的跨多次启动的优先级。
图2根据某些实施例示出了计算环境200的框图,其中操作系统202控制多个应用204a、204b、204c、…、204n将数据写入固态驱动器206的访问。应用204a…204n和操作系统202在计算设备208中以硬件、软件、或固件、或其任何组合实现。固态驱动器206可以位于计算设备208之内(如在图2中所示出的)或可以位于计算设备208之外。
固态驱动器206可以由非易失性存储器组成,例如NAND存储器、NOR存储器或某一其他合适的非易失性存储器。在某些实施例中,固态驱动器206可以能够存储若干太字节或更多。某些实施例可以应用于其他类型的非易失性存储器、相变存储器(PCM)、三维交叉点存储器、电阻性存储器、纳米线存储器、铁电晶体随机存取存储器(FeTRAM)、包含忆阻器技术的磁阻随机存取存储器(MRAM)存储器、自旋转移力矩(STT)-MRAM等。
应用204a…204n中的每一个可以具有与其关联的优先级。例如,如在图2中所示出的,应用204a、204b可以具有较高的优先级而应用204c、204n可以具有较低的优先级。在某些示例性实施例中,可以将优先级定性地指示为高或低,或定量地指示为与优先级对应的数值。应用的较高优先级指的是应该向其提供高于具有较低优先级的应用的优先化的执行。
操作系统202可以包括以硬件、软件、和固件其任何组合实现的应用优先级和逻辑块地址(LBA)范围指示模块210。应用优先级和LBA范围指示模块210可以向在固态驱动器206中执行的应用优先级和LBA范围接收模块212发送应用的优先级和LBA范围。应用程序接口可以被定义成用于在应用优先级和逻辑块地址(LBA)范围指示模块110与应用优先级和LBA范围接收模块112之间通信。
在虚拟化的环境中,多个应用204a…204n共享对单个固态驱动器206的访问。向每一应用分配由固态驱动器206支持的一定范围的LBA,其中该应用可以访问固态驱动器206中所分配的LBA。固态驱动器206访问可以由操作系统202监管,以确保应用仅访问其所分配的LBA范围。
应用优先级和LBA范围指示模块210与应用优先级和LBA范围接收模块212在操作系统202与固态驱动器206之间接合以向固态驱动器206通知不同应用的LBA范围,且可选地,通知应用优先级。每次启动计算设备、或摧毁、创建或修改应用时,向固态驱动器206发送该信息。
固态驱动器206在带内将数据写入内部页中。利用应用的LBA范围的信息,固态驱动器206可以针对每一应用使用专用带,以确保对一个应用的写入不与来自其他应用的写入相混杂。
然而,如果系统支持比可用带的数目更多的应用,则固态驱动器206可以将一些应用的写入混杂到每一开放带中,或使用较高优先级的应用获得其自身的开放的带而较低优先级应用的写入被混杂的机制。例如,在图2中,带214存储来自应用#1 204a的写入,带216存储来自应用#2 204b的写入,且带218存储来自应用#3 204c和应用#4 204n的写入。从而,低优先级应用204c、204d的写入在带218中混杂,而高优先级应用204a、204b的写入存储在单独的带中。
从而,图2示出了某些实施例,其中向每一应用分配由操作系统202向固态驱动器206传送的LBA范围和可选地优先级。如果在固态驱动器206中可以获得充足数量的带,则在不同的带中存储不同应用的写入。然而,如果不能获得充足数量的带,则较低优先级应用的写入被混杂到相同的带218中。其写入不与其他应用的写入相混杂的应用的性能比其写入被混杂的应用的性能优越。
在某些实施例中,固态驱动器206以非易失性的方式存储与多个应用相关的数据、逻辑块地址范围、以及多个应用中每一个应用的跨多次启动的优先级。
图3根据某些实施例示出了示出用于在计算环境100中向SSD 106写入数据的操作,在计算环境100中虚拟机管理器102控制多个虚拟机104a…104n向SSD 106写入数据的访问。
控制在框302开始,其中,虚拟机管理器102控制多个虚拟机104a…104n对一个或多个固态驱动器106的访问。虚拟机管理器的虚拟机管理器优先级和LBA范围指示模块110向固态驱动器106发送(在框304)每一个虚拟机的LBA范围以及可选地每一虚拟机的优先级的指示。
控制继续进行至框306,其中固态驱动器106的虚拟机管理器优先级和范围接收模块112接收每一虚拟机的LBA范围以及可选地每一虚拟机的优先级的指示,并确定(在框308)固态驱动器106中的带的数目是否足够向每一个虚拟机分配不同的带。
如果固态驱动器106中的带的数目足够向每一虚拟机分配不同的带,则针对每一虚拟机的写入分配单独的带(在框310)。如果固态驱动器106中的带的数目不够向每一虚拟机分配不同的带,则针对较高优先级的虚拟机的写入分配单独的带,且较低优先级的虚拟机的写入被混杂在相同的带中(参考标记312)。如果所有的虚拟机都具有较高的优先级,则可以将所有虚拟机的写入都混杂到带中。
从而,图3示出了某些实施例,其中试图将不同虚拟机的写入放入不同的带中。如果这不可能,则将较高优先级虚拟机的写入放入其自己的带中,而较低优先级虚拟机的写入混杂到相同的带中。从而,即使在虚拟化的环境中,顺序I/O也被保留至可能的程度。
图4根据某些实施例示出了用于在计算环境200中向SSD 206写入数据的操作,在计算环境200中操作系统202控制多个应用204a…204n向SSD106写入数据的访问。
控制在框402开始,其中,操作系统202控制多个应用204a…204n对一个或多个固态驱动器206的访问。操作系统的操作系统优先级和LBA范围指示模块210向固态驱动器206发送(在框404)每一个应用的LBA范围以及可选地每一应用的优先级的指示。
控制继续进行至框406,其中固态驱动器206的操作系统优先级和范围接收模块212接收每一应用的LBA范围的以及可选地每一应用的优先级的指示,并确定(在框408)固态驱动器206中的带的数目是否足够向每一个应用分配不同的带。
如果固态驱动器206中的带的数目足够向每一应用分配不同的带,则针对每一应用的写入分配单独的带(在框410)。如果固态驱动器206中的带的数目不够向每一虚拟机分配不同的带,则针对较高优先级的应用的写入分配单独的带,且较低优先级应用的写入被混杂在相同的带中(参考标记412)。
从而,图4示出了某些实施例,其中试图将不同应用的写入放入不同的带中。如果这不可能,则将较高优先级应用的写入放入其自己的带中,而较低优先级应用的写入被混杂到相同的带中。
图5根据某些实施例示出了用于在计算环境100中向SSD 106写入数据的进一步操作,在计算环境100中虚拟机管理器102控制多个虚拟机104a…104n向SSD 106写入数据的访问。
控制在框502开始,其中,计算设备108的虚拟机管理器102管理多个虚拟机104a…104n对固态驱动器106的访问。
虚拟机管理器102向固态驱动器106发送(在框504)多个虚拟机104a…104n中的每一个虚拟机的逻辑块地址范围,以供映射到固态驱动器106中的带内。然后,虚拟机管理器102可选地向固态驱动器106发送(在框506)多个虚拟机中的每一个虚拟机的优先级。
从框506,控制可以继续进行到框508或框510。在框508,在固态驱动器中维持单独的带以存储多个虚拟机中至少两个不同虚拟机的写入。在框510,响应于确定出在固态驱动器106中不存在足够数目的带以提供用于存储多个虚拟机104a…104n中每一个虚拟机的写入的单独的带,将较高优先级虚拟机的写入存储在不同的带中而将较低优先级虚拟机的写入混杂到相同的带中。
图6根据某些实施例示出了用于在计算环境200中向SSD 206写入数据的进一步操作,在计算环境200中操作系统202控制多个应用204a…204n向SSD 206写入数据的访问。
控制在框602开始,其中,计算设备208的操作系统202管理多个应用204a…204n对固态驱动器206的访问。操作系统202向固态驱动器206发送(在框604)多个应用204a…204n中的每一个应用的逻辑块地址范围,以被映射到固态驱动器206中的带内。然后,操作系统202可选地向固态驱动器206发送(在框606)多个应用中每一个应用的优先级。
从框606,控制可以继续进行到框608或框610。在框608,在固态驱动器206中维持单独的带以存储多个应用204a…204n中至少两个不同应用的写入。在框610,响应于确定在固态驱动器206中不存在足够数目的带以提供用于存储多个应用204a…204n中每一个应用的写入的单独的带,将较高优先级应用的写入存储在不同的带中且将较低优先级应用的写入混杂到相同的带中。
图7根据某些实施例示出了示出用于在计算环境100中向SSD 106写入数据的进一步操作,其中虚拟机管理器102控制多个虚拟机104a…104b向SSD 106写入数据的访问,其中SSD 106可以支持或不支持用于生成带的优先级和逻辑块地址范围。
在框702,控制开始,其中,虚拟机管理器102关于SSD 106是否支持使用虚拟机优先级和LBA范围来请求SSD 106。如果SSD 106支持(分支704)用于生成带的优先级和LBA范围,则在固态磁盘上可能的程度上在不同的带中存储不同虚拟机的写入。如果SSD 106不支持(分支708)用于生成带的优先级和LBA范围,则在固态驱动器106中存储虚拟机的混杂写入。在可供选择的实施例中,可以使用操作系统和应用而不是使用如图7中所示出的虚拟机管理器和虚拟机。
因此,图1-7示出了某些实施例,其中通过在可能的程度上将不同虚拟机的写入放入不同的带中,即使在虚拟化的环境中也保持了顺序I/O的性能优点。此外,当操作系统控制多个应用时,通过在可能的程度上将不同应用的写入维持在不同的带中,保留了顺序I/O对于性能的优点。在固态驱动器中,最小化了不同虚拟机或应用的数据的混杂以改进性能。
所描述的操作可以被实现为使用标准编程和/或工程技术来生产软件、固件、硬件、或其任何组合的方法、装置或计算机程序产品。所描述的操作可以被实现为在“计算机可读存储介质”中保持的代码,其中处理器可以从计算机存储可读介质读取和执行该代码。计算机可读存储介质包括电子电路、存储材料、无机材料、有机材料、生物材料、包装、壳体、涂层和硬件。计算机可读存储介质可以包括但不限于磁存储介质(例如,硬盘驱动、软盘、磁带等)、光存储器(CD-ROM、DVD、光盘等)、易失性和非易失性存储设备(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪存、固件、可编程逻辑等)、固态设备(SSD)等。实现所描述操作的代码可以进一步以在硬件设备(例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等)中实现的硬件逻辑来实现。进一步地,实现所描述操作的代码可以以“传输信号”来实现,其中传输信号可以通过空间或通过诸如光纤、铜线等之类的传输介质来传播。代码或逻辑被编码在其中的传输信号可以进一步包括无线信号、卫星传输、无线电波、红外信号、蓝牙等。在计算机可读存储介质上嵌入的程序代码可以被传输为从发送站或计算机到接收站或计算机的传输信号。计算机可读存储介质不仅仅由传输信号组成。本领域的熟练技术人员将认识到可以对该配置做许多修改,且制品可以包括本领域公知的合适的信息承载介质。
用于针对某些实施例的方面执行操作的计算机程序代码可以以一种或多种编程语言中的任何组合来写。流程图的框和框图可以通过计算机程序指令来实现。
图8根据某些实施例示出了系统800的框图,系统800包括一个或多个计算设备108、208(计算设备108、208包括至少一处理器)以及一个或多个固态驱动器106、206。例如,在某些实施例中,系统800可以具有在系统800内包含的计算设备108和固态驱动器106,且在某些实施例中,系统800可以具有在系统800内包含的计算设备208和固态驱动器206。在某些实施例中,系统800可以是包含固态驱动器106、206的膝上型计算机。
系统800可以包含电路802,在某些实施例中电路802包含至少一处理器804。系统800还可以包含存储器806(例如,易失性存储器设备)以及存储设备808。存储设备808可以包含固态驱动器106、206或包含非易失性存储设备(例如,EEPROM、ROM、PROM、闪存、固件、可编程逻辑等)的其他驱动器或设备。存储设备808还可以包括磁盘驱动器、光盘驱动器、磁带驱动器等。存储设备808可以包含内部存储设备、附接存储设备和/或网络可访问存储设备。系统800可以包含程序逻辑810,程序逻辑810包含可以被加载到存储器806中并由处理器804或电路802执行的代码812。在某些实施例中,程序逻辑810包含可以被存储到存储设备808中的代码812。在某些其他实施例中,程序逻辑810可以在电路802中实现。从而,虽然图8示出了程序逻辑810与其他元件相分离,但是,程序逻辑810可以在存储器806和/或电路802中实现。系统800也可以包括显示器814(例如,液晶显示器(LCD)、发光二极管(LED)显示器、阴极射线管(CRT)显示器、触摸屏显示器、或任何其他合适的显示器)。系统800还可以包括一个或多个输入设备816,例如键盘、鼠标、操纵杆、触控板、或任何其他合适的输入设备)。在系统800中还可以找到在图8中示出的那些之外的其他组件或设备。
某些实施例可以针对用于由人将计算指令部署或自动化处理集成计算机可读代码到计算系统中的方法,其中使得与计算系统结合的代码能够执行所描述的实施例的操作。
除非明确指明,否则术语“一实施例”、“实施例”、“多个实施例”、“该实施例”、“这些实施例”、“一个或多个实施例”、“一些实施例”、以及“一个实施例”指的是“一个或多个(但不是全部)实施例”。
除非明确指明,否则术语“包含”、“包括”、“具有”及其各种变化指的是“包括但不限于”。
除非明确指明,否则术语“一”、“一个”以及“该”指的是“一个或多个”。
除非明确指明,否则彼此通信的设备无需彼此连续通信。此外,彼此通信的设备可以直接或通过一个或多个中间介质间接通信。
对具有彼此通信的若干组件的实施例的描述并不隐含着需要所有这样的组件。相反,描述了各种可选的组件易示出各种各样可能的实施例。
进一步地,虽然可能按顺序描述了过程步骤、方法步骤、算法等,但是可以将这样的过程、方法和算法配置成以可供替换的顺序工作。换句话说,可能以任何序列或步骤顺序描述未必指示需要以这样的顺序执行这些步骤。可以以任何实际的顺序执行本申请中描述的过程步骤。进一步地,可以同时执行一些步骤。
当在本申请中描述单个设备或制品时,容易明白的是,可以代替单个设备/制品使用超过一个设备/制品(无论其是否合作)。类似地,在于本申请中描述超过一个设备或制品(无论其是否合作)的情况下,容易明白的是,代替超过一个设备或制品可以使用单个设备/制品,或代替所示出的设备或程序的数目,可以使用不同数目的设备/制品。设备的功能和/或特征可以可供替换地由未明确描述为具有这样的功能/特征的一个或多个其他的设备来实现。从而,其他的实施例无需包括设备本身。
至少在附图中可能已经示出的某些操作示出了某些事件按照一定的顺序发生。在可供选择的实施例中,某些操作可以以不同的顺序执行,可以修改或移除。此外,可以将步骤添加到上文描述的逻辑且仍然符合所描述的实施例。进一步地,在本申请中描述的操作可以顺序地发生或某些操作可以并行地处理。又进一步地,通过单个处理单元或通过分布式处理单元可以处理操作。
为了示出和描述的目的已经呈现了前述对各种实施例的描述。其并不意在是全面详尽的或被限制为所公开的准确的形式。根据上文的教导,许多修改和变化是可能的。
示例
以下示例涉及进一步的实施例。
示例1是一种方法,在该方法中,计算设备的操作系统管理多个应用对固态驱动器的访问。在固态驱动器的非易失性存储器中的单独的带被维持用于存储由多个应用中的至少两个不同的应用写入固态驱动器的数据。
在示例2中,示例1的主题可以包括从操作系统向固态驱动器发送多个应用中每一个应用的逻辑块地址范围,以映射到固态驱动器中的带中。
在示例3中,示例2的主题可以包括从操作系统向固态驱动器发送多个应用中每一个应用的优先级。
在示例4中,示例3的主题可以包括响应于确定在固态驱动器中不存在足够的带数目以提供用于存储多个应用中每一个应用的写入的单独的带,将较高优先级应用的写入存储在不同的带且将较低优先级应用的写入混杂到相同的带中,其中写入包括要被写入固态驱动器的数据。
在示例5中,示例3的主题可以包括固态驱动器以非易失性的方式存储与多个应用相关的数据、逻辑块地址范围、以及多个应用中每一个应用的跨多次启动的优先级。
示例6是一种方法,其中计算设备的虚拟机器管理器管理多个虚拟机对固态驱动器的访问。在固态驱动器的非易失性存储器中的单独的带被维持用于存储由多个虚拟机中的至少两个不同的虚拟机写入固态驱动器的数据。
在示例7中,示例6的主题可以包括从虚拟机管理器向固态驱动器发送多个虚拟机中每一个虚拟机的逻辑块地址范围,以映射到固态驱动器中的带中。
在示例8中,示例7的主题可以包括从虚拟机管理器向固态驱动器发送多个虚拟机中每一个虚拟机的优先级。
在示例9中,示例8的主题可以包括响应于确定在固态驱动器中不存在足够的带数目以提供用于存储多个虚拟机中每一个虚拟机的写入的单独的带,将较高优先级虚拟机的写入存储在不同的带中且将较低优先级虚拟机的写入混杂到相同的带中,其中写入包括要被写入固态驱动器的数据。
在示例10中,示例8的主题可以包括固态驱动器以非易失性的方式存储与多个虚拟机相关的数据、逻辑块地址范围、以及多个虚拟机中每一个虚拟机的跨多次启动的优先级。
示例11是一种包括存储器和处理器的系统,其中处理器被配置成执行操作,所述操作包括:由操作系统管理多个应用多固态驱动器的访问;以及在固态驱动器的非易失性存储器中维持单独的带,以存储由多个应用中的至少两个不同的应用写入固态驱动器的数据。
在示例12中,示例11的主题可以包括从操作系统向固态驱动器发送多个应用中每一个应用的逻辑块地址范围,以映射到固态驱动器中的带中。
在示例13中,示例12的主题可以包括从操作系统向固态驱动器发送多个应用中每一个应用的优先级。
在示例14中,示例13的主题可以包括响应于确定在固态驱动器中不存在足够的带数目以提供用于存储多个应用中每一个应用的写入的单独的带,将较高优先级应用的写入存储在不同的带且将较低优先级应用的写入混杂到相同的带中,其中写入包括要被写入固态驱动器的数据。
在示例15中,示例13的主题可以包括固态驱动器以非易失性的方式存储与多个应用相关的数据、逻辑块地址范围、以及多个应用中每一个应用的跨多次启动的优先级。
示例16是一种包括存储器和处理器的系统,其中处理器可配置成执行操作,其中计算设备的虚拟机器管理器管理多个虚拟机对固态驱动器的访问。在固态驱动器的非易失性存储器中的单独的带被维持用于存储由多个虚拟机中的至少两个不同的虚拟机写入固态驱动器的数据。
在示例17中,示例16的主题可以包括从虚拟机管理器向固态驱动器发送多个虚拟机中每一个虚拟机的逻辑块地址范围,以映射到固态驱动器中的带中。
在示例18中,示例17的主题可以包括从虚拟机管理器向固态驱动器发送多个虚拟机中每一个虚拟机的优先级。
在示例19中,示例18的主题可以包括响应于确定在固态驱动器中不存在足够的带数目以提供用于存储多个虚拟机中每一个虚拟机的写入的单独的带,将较高优先级虚拟机的写入存储在不同的带中且将较低优先级虚拟机的写入混杂到相同的带中,其中写入包括要被写入固态驱动器的数据。
在示例20中,示例18的主题可以包括固态驱动器以非易失性的方式存储与多个虚拟机相关的数据、逻辑块地址范围、以及多个虚拟机中每一个虚拟机的跨多次启动的优先级。
示例21是一种固态驱动器,其中固态驱动器可配置成执行操作,所述操作包括:从计算设备的虚拟管理器接收来自多个虚拟机的输入和输出操作;以及在固态驱动器的非易失性存储器中维持单独的带,以用于存储由多个虚拟机中的至少两个不同的虚拟机写入固态驱动器的数据。
在示例22中,示例21的主题进一步包括从虚拟机管理器接收多个虚拟机中每一个虚拟机的逻辑块地址范围,以映射到固态驱动器中的带中。
在示例23中,示例22的主题进一步包括从虚拟机管理器接收多个虚拟机中每一个虚拟机的优先级。
在示例24中,示例23的主题进一步包括响应于确定在固态驱动器中不存在足够的带数目以提供用于存储多个虚拟机中每一个虚拟机的写入的单独的带,将较高优先级虚拟机的写入存储在不同的带中且将较低优先级虚拟机的写入混杂到相同的带中,其中写入包括要被写入固态驱动器的数据。
在示例25中,示例23的主题进一步包括固态驱动器以非易失性的方式存储与多个虚拟机相关的数据、逻辑块地址范围、以及多个虚拟机中每一个虚拟机的跨多次启动的优先级。
示例26是一种包括存储器和处理器的系统,其中处理器可配置成执行操作,其中计算设备的虚拟机管理器管理多个虚拟机对固态驱动器的访问。在固态驱动器的非易失性存储器中的单独的带被维持用于存储由多个应用中的至少两个不同的应用写入固态驱动器的数据。
在示例27中,示例26的主题可以包括从虚拟机管理器向固态驱动器发送多个虚拟机中每一个虚拟机的逻辑块地址范围,以映射到固态驱动器中的带中。
在示例28中,示例27的主题可以包括从虚拟机管理器向固态驱动器发送多个虚拟机中每一个虚拟机的优先级。
在示例29中,示例28的主题可以包括响应于确定在固态驱动器中不存在足够的带数目以提供用于存储多个虚拟机中每一个虚拟机的写入的单独的带,将较高优先级虚拟机的写入存储在不同的带中且将较低优先级虚拟机的写入混杂到相同的带中,其中写入包括要被写入固态驱动器的数据。
在示例30中,示例28的主题可以包括固态驱动器以非易失性的方式存储与多个虚拟机相关的数据、逻辑块地址范围、以及多个应用中每一个应用的跨多次启动的优先级。
在示例31中,示例26的主题可以包括固态驱动器可配置成执行操作,由固态驱动器执行的操作包括:从计算设备的虚拟管理器接收来自多个虚拟机的输入和输出操作;以及在固态驱动器的非易失性存储器中维持单独的带,以用于存储由多个虚拟机中的至少两个不同的虚拟机写入固态驱动器的数据。
在示例32中,示例31的主题进一步包括从虚拟机管理器接收多个虚拟机中每一个虚拟机的逻辑块地址范围,以映射到固态驱动器中的带中。
在示例33中,示例32的主题进一步包括从虚拟机管理器接收多个虚拟机中每一个虚拟机的优先级。
在示例34中,示例33的主题进一步包括响应于确定在固态驱动器中不存在足够的带数目以提供用于存储多个虚拟机中每一个虚拟机的写入的单独的带,将较高优先级虚拟机的写入存储在不同的带中且将较低优先级虚拟机的写入混杂到相同的带中,其中写入包括要被写入固态驱动器的数据。
在示例35中,示例33的主题进一步包括固态驱动器以非易失性的方式存储与多个虚拟机相关的数据、逻辑块地址范围、以及多个虚拟机中每一个虚拟机的跨多次启动的优先级。

Claims (15)

1.一种用于固态驱动器的访问的方法,包括:
响应于创建或修改多个应用中的每一个应用,从操作系统向固态驱动器发送所述多个应用中每一个应用的逻辑块地址范围与优先级;以及
响应于确定在所述固态驱动器中不存在足够的带数目以提供用于存储所述多个应用中每一个应用的写入的单独的带,将较高优先级应用的写入存储在不同的带中且将较低优先级应用的写入混杂到相同的带中。
2.根据权利要求1所述的方法,所述方法进一步包括:
由所述操作系统向所述固态驱动器请求是否所述固态驱动器支持生成带的逻辑块地址范围和优先级;
响应于所述固态驱动器支持用于生成带的优先级和逻辑块地址范围,则在所述固态驱动器上可能的程度上在不同的带中存储不同应用的写入;
响应于所述固态驱动器不支持用于生成带的优先级和逻辑块地址范围,则在所述固态驱动器中存储应用的混杂写入。
3.根据权利要求1所述的方法,其中,写入包括要被写入到所述固态驱动器的数据,
其中,所述固态驱动器以非易失性的方式存储与所述多个应用相关的数据、所述逻辑块地址范围、以及所述多个应用中每一个应用跨多次启动的优先级。
4.一种用于固态驱动器的访问的方法,包括:
响应于创建或修改多个虚拟机中的每一个虚拟机,从虚拟机器管理器向固态驱动器发送所述多个虚拟机中每一个虚拟机的逻辑块地址范围与优先级;以及
响应于确定在所述固态驱动器中不存在足够的带数目以提供用于存储所述多个虚拟机中每一个虚拟机的写入的单独的带,将较高优先级虚拟机的写入存储在不同的带中且将较低优先级虚拟机的写入混杂到相同的带中。
5.根据权利要求4所述的方法,所述方法进一步包括:
由所述虚拟机管理器向所述固态驱动器请求是否所述固态驱动器支持生成带的逻辑块地址范围和优先级;
响应于所述固态驱动器支持用于生成带的优先级和逻辑块地址范围,则在所述固态驱动器上可能的程度上在不同的带中存储不同虚拟机的写入;
响应于所述固态驱动器不支持用于生成带的优先级和逻辑块地址范围,则在所述固态驱动器中存储虚拟机的混杂写入。
6.根据权利要求4所述的方法,其中,写入包括要被写入到所述固态驱动器的数据,其中,所述固态驱动器以非易失性的方式存储与所述多个虚拟机相关的数据、所述逻辑块地址范围、以及所述多个虚拟机中每一个虚拟机跨多次启动的优先级。
7.一种计算系统,包括:
存储器;以及
处理器,其中,所述处理器能够配置成执行操作,所述操作包括:
响应于创建或修改多个应用中的每一个应用,从操作系统向固态驱动器发送所述多个应用中每一个应用的逻辑块地址范围与优先级;以及
响应于确定在所述固态驱动器中不存在足够的带数目以提供用于存储所述多个应用中每一个应用的写入的单独的带,将较高优先级应用的写入存储在不同的带中且将较低优先级应用的写入混杂到相同的带中。
8.根据权利要求7所述的计算系统,所述操作进一步包括:
由所述操作系统向所述固态驱动器请求是否所述固态驱动器支持生成带的逻辑块地址范围和优先级;
响应于所述固态驱动器支持用于生成带的优先级和逻辑块地址范围,则在所述固态驱动器上可能的程度上在不同的带中存储不同应用的写入;
响应于所述固态驱动器不支持用于生成带的优先级和逻辑块地址范围,则在所述固态驱动器中存储应用的混杂写入。
9.根据权利要求7所述的计算系统,其中,写入包括要被写入到所述固态驱动器的数据,其中,所述固态驱动器以非易失性的方式存储与所述多个应用相关的数据、所述逻辑块地址范围、以及所述多个应用中每一个应用跨多次启动的优先级。
10.一种计算系统,包括:
存储器;以及
处理器,其中,所述处理器能够配置成执行操作,所述操作包括:
响应于创建或修改多个虚拟机中的每一个虚拟机,从虚拟机器管理器向固态驱动器发送所述多个虚拟机中每一个虚拟机的逻辑块地址范围与优先级;以及
响应于确定在所述固态驱动器中不存在足够的带数目以提供用于存储所述多个虚拟机中每一个虚拟机的写入的单独的带,将较高优先级虚拟机的写入存储在不同的带中且将较低优先级虚拟机的写入混杂到相同的带中。
11.根据权利要求10所述的计算系统,所述操作进一步包括:
由所述虚拟机管理器向所述固态驱动器请求是否所述固态驱动器支持生成带的逻辑块地址范围和优先级;
响应于所述固态驱动器支持用于生成带的优先级和逻辑块地址范围,则在所述固态驱动器上可能的程度上在不同的带中存储不同虚拟机的写入;
响应于所述固态驱动器不支持用于生成带的优先级和逻辑块地址范围,则在所述固态驱动器中存储虚拟机的混杂写入。
12.根据权利要求10所述的计算系统,其中,写入包括要被写入到所述固态驱动器的数据,其中,所述固态驱动器以非易失性的方式存储与所述多个虚拟机相关的数据、所述逻辑块地址范围、以及所述多个虚拟机中每一个虚拟机跨多次启动的优先级。
13.一种固态驱动器,其中,所述固态驱动器可操作以:
响应于创建或修改多个虚拟机中的每一个虚拟机,从虚拟管理器接收来自所述多个虚拟机中每一个虚拟机的逻辑块地址范围和优先级;以及
响应于确定不存在足够的带数目以提供用于存储所述多个虚拟机中每一个虚拟机的写入的单独的带,将较高优先级虚拟机的写入存储在不同的带中且将较低优先级虚拟机的写入混杂到相同的带。
14.根据权利要求13所述的固态驱动器,其中,
所述固态驱动器被所述虚拟机管理器请求是否所述固态驱动器支持生成带的逻辑块地址范围和优先级;
响应于所述固态驱动器支持用于生成带的优先级和逻辑块地址范围,则在所述固态驱动器上可能的程度上在不同的带中存储不同虚拟机的写入;
响应于所述固态驱动器不支持用于生成带的优先级和逻辑块地址范围,则在所述固态驱动器中存储虚拟机的混杂写入。
15.根据权利要求13所述的固态驱动器,其中,写入包括要被写入到所述固态驱动器的数据,其中,所述固态驱动器以非易失性的方式存储与所述多个虚拟机相关的数据、所述逻辑块地址范围、以及所述多个虚拟机中每一个虚拟机跨多次启动的优先级。
CN201580062498.7A 2014-12-17 2015-11-17 减少在固态驱动器中输入和输出操作的混杂 Active CN107003811B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/573,517 US10108339B2 (en) 2014-12-17 2014-12-17 Reduction of intermingling of input and output operations in solid state drives
US14/573,517 2014-12-17
PCT/US2015/061184 WO2016099761A1 (en) 2014-12-17 2015-11-17 Reduction of intermingling of input and output operations in solid state drives

Publications (2)

Publication Number Publication Date
CN107003811A CN107003811A (zh) 2017-08-01
CN107003811B true CN107003811B (zh) 2020-07-03

Family

ID=56127273

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580062498.7A Active CN107003811B (zh) 2014-12-17 2015-11-17 减少在固态驱动器中输入和输出操作的混杂

Country Status (5)

Country Link
US (1) US10108339B2 (zh)
KR (1) KR102460345B1 (zh)
CN (1) CN107003811B (zh)
TW (1) TWI601058B (zh)
WO (1) WO2016099761A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102371916B1 (ko) * 2015-07-22 2022-03-07 삼성전자주식회사 가상 머신을 지원하는 스토리지 장치, 그것을 포함하는 스토리지 시스템 및 그것의 동작 방법
US10831382B2 (en) * 2017-11-29 2020-11-10 International Business Machines Corporation Prevent disk hardware failure for cloud applications

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102713825A (zh) * 2009-12-16 2012-10-03 赛门铁克公司 在虚拟环境中的存储可视化
CN103348314A (zh) * 2010-09-15 2013-10-09 净睿存储股份有限公司 Ssd环境中的i/o的调度
US8799554B1 (en) * 2010-10-27 2014-08-05 Amazon Technologies, Inc. Methods and system for swapping memory in a virtual machine environment
CN104049906A (zh) * 2013-03-11 2014-09-17 Lsi公司 用于动态高速缓存共享的系统、方法和计算机可读介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089392B2 (en) * 2003-05-09 2006-08-08 International Business Machines Corporation Method, system, and program for allocating storage units to a data set
US7702843B1 (en) 2006-04-27 2010-04-20 Vmware, Inc. Determining memory conditions in a virtual machine
US20100083247A1 (en) 2008-09-26 2010-04-01 Netapp, Inc. System And Method Of Providing Multiple Virtual Machines With Shared Access To Non-Volatile Solid-State Memory Using RDMA
US8769535B2 (en) 2009-09-24 2014-07-01 Avaya Inc. Providing virtual machine high-availability and fault tolerance via solid-state backup drives
EP2584491A1 (en) * 2011-10-18 2013-04-24 Accenture Global Services Limited Biometric matching system
KR20140049254A (ko) * 2012-10-17 2014-04-25 삼성전자주식회사 단말기의 데이터표시 장치 및 방법
US9025527B2 (en) * 2012-12-13 2015-05-05 Qualcomm Incorporated Adaptive channel reuse mechanism in communication networks
WO2014108933A1 (en) 2013-01-10 2014-07-17 Hitachi, Ltd. Resource management system and resource management method of a computer system
US9720717B2 (en) 2013-03-14 2017-08-01 Sandisk Technologies Llc Virtualization support for storage devices
US10162748B2 (en) * 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US9411627B2 (en) * 2014-07-18 2016-08-09 International Business Machines Corporation Allocating storage for virtual machine instances based on input/output (I/O) usage rate of the disk extents stored in an I/O profile of a previous incarnation of the virtual machine
US9632927B2 (en) * 2014-09-25 2017-04-25 International Business Machines Corporation Reducing write amplification in solid-state drives by separating allocation of relocate writes from user writes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102713825A (zh) * 2009-12-16 2012-10-03 赛门铁克公司 在虚拟环境中的存储可视化
CN103348314A (zh) * 2010-09-15 2013-10-09 净睿存储股份有限公司 Ssd环境中的i/o的调度
US8799554B1 (en) * 2010-10-27 2014-08-05 Amazon Technologies, Inc. Methods and system for swapping memory in a virtual machine environment
CN104049906A (zh) * 2013-03-11 2014-09-17 Lsi公司 用于动态高速缓存共享的系统、方法和计算机可读介质

Also Published As

Publication number Publication date
KR102460345B1 (ko) 2022-10-28
US10108339B2 (en) 2018-10-23
CN107003811A (zh) 2017-08-01
TW201636819A (zh) 2016-10-16
US20160179381A1 (en) 2016-06-23
WO2016099761A1 (en) 2016-06-23
KR20170095822A (ko) 2017-08-23
TWI601058B (zh) 2017-10-01

Similar Documents

Publication Publication Date Title
CN111344683B (zh) 非易失性存储器装置中的命名空间分配
US10489085B2 (en) Latency-based scheduling of command processing in data storage devices
US10114556B2 (en) Method and apparatus for improving read performance of a solid state drive
US10965751B2 (en) Just a bunch of flash (JBOF) appliance with physical access application program interface (API)
KR102434170B1 (ko) 하이브리드 메모리 시스템
KR102495910B1 (ko) 스토리지 장치 및 그 동작 방법
US10705747B2 (en) Latency-based storage in a hybrid memory system
KR102656172B1 (ko) 가상 스트림들과 물리 스트림들을 맵핑하기 위한 스토리지 장치 및 그것의 동작 방법
CN110888597A (zh) 存储设备、存储系统以及操作存储设备的方法
KR102443593B1 (ko) 하이브리드 메모리 시스템
US10146440B2 (en) Apparatus, system and method for offloading collision check operations in a storage device
CN107003811B (zh) 减少在固态驱动器中输入和输出操作的混杂
US11182289B1 (en) Memory system and operating method thereof
KR20220066688A (ko) 스토리지 장치 및 그 동작 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant