CN108628548A - 从耦合于计算装置的单个存储装置模拟多个存储装置 - Google Patents
从耦合于计算装置的单个存储装置模拟多个存储装置 Download PDFInfo
- Publication number
- CN108628548A CN108628548A CN201810240516.1A CN201810240516A CN108628548A CN 108628548 A CN108628548 A CN 108628548A CN 201810240516 A CN201810240516 A CN 201810240516A CN 108628548 A CN108628548 A CN 108628548A
- Authority
- CN
- China
- Prior art keywords
- storage device
- physical storage
- single physical
- logical
- storage devices
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
计算装置从耦合于计算装置的单个物理存储装置生成多个逻辑存储装置。多个物理存储装置经由所述多个逻辑存储装置来被模拟。所述多个物理存储装置和单个物理存储装置属于相同类型。
Description
背景技术
计算装置可被耦合于一个或更多物理存储装置,在所述一个或更多物理存储装置中数据可被存储。存储装置驱动是可控制被耦合于计算装置的具体类型的物理存储装置的计算机程序。计算装置的操作系统可将一个或更多存储装置驱动用于满足从在计算装置中执行的应用接收的输入/输出(I/O)请求。
块是被用于存储数据的比特或字节的序列。逻辑块寻址(LBA)是用于指定物理存储装置(诸如硬盘驱动器)中存储的数据的块的定位的方案。LBA是线性寻址方案,在此方案中块可经由整数索引被定位,其中第一块被引用成LBA 0、第二被称为LBA 1,依此类推。
非易失性存储器高速(NVMe)是用于往来NAND闪速和其它类型的固态技术的数据的传输的协议。从计算装置经由NVMe协议可访问的存储装置可被称为NVMe装置。NVMe的进一步的细节可在www.nvmexpress.org中被找到。
独立盘冗余阵列(RAID)是为了数据冗余度、性能改进、或两者的目的而将多个物理盘驱动器组合进单个逻辑单元内的数据存储虚拟化技术。数据经由盘驱动器的若干配置之一来跨盘驱动器被分布。盘驱动器的配置被称为RAID等级,其中不同RAID等级具有不同等级的冗余度和性能。
附图说明
现在参考附图,在其中相似参考数字代表各处对应部分:
图1示出框图,其示出依照某些实施例的耦合于多个物理存储装置的计算装置;
图2示出框图,其示出依照某些实施例的耦合于单个物理存储装置的计算装置,其中多个物理存储装置经由从单个物理存储装置生成的多个逻辑存储装置在计算装置中被模拟;
图3示出框图,其示出依照某些实施例的基于将单个物理存储装置划分成多个逻辑块地址范围的多个物理存储装置的模拟,其中每个逻辑块地址范围被映射到逻辑存储装置;
图4示出框图,其示出依照某些实施例的基于从单个NVMe装置生成多个命名空间的多个物理存储装置的模拟,其中每个命名空间被映射到逻辑NVMe装置;
图5示出流程图,其示出依照某些实施例的从耦合于计算装置的单个物理存储装置对多个物理存储装置的模拟;以及
图6示出依照某些实施例的包含计算装置的系统的框图。
具体实施方式
在以下描述中,对形成本文的部分并且示出若干实施例的附图做出参考。被理解的是,其它实施例可被利用并且结构和操作上的改变可被做出。
在某些实施例中,计算装置通过使用由被耦合于计算装置的单个物理存储装置提供的功能来模拟多个物理存储装置。
在某些实施例中,计算装置从耦合于计算装置的单个物理存储装置生成多个逻辑存储装置。所述多个物理存储装置经由所述多个逻辑存储装置被模拟。
因此,在其中物理存储装置是昂贵的或是不容易地可用的情形中,单个物理存储装置可被用于需要多个物理装置的软件的测试和开发。例如,需要多个物理存储装置的RAID软件的开发和测试可通过将单个物理存储装置耦合于计算装置并从单个物理存储装置来模拟所述多个物理存储装置来完成。
图1示出框图100,其示出依照某些实施例的耦合于多个物理存储装置104、106、108的计算装置102。
计算装置102可包括任何适合的计算装置(包含本领域中目前已知的那些),诸如,个人计算机、工作站、服务器、大型机、手持计算机、掌上计算机、电话装置、网络设备、刀片计算机、处理装置、等等。物理存储装置104、106、108可包括任何适合的物理存储装置,诸如硬盘驱动器、固态驱动器、等等。在某些实施例中,计算装置102可在总线(诸如外设组件互连高速(PCIe)总线、串行高级技术附件(SATA)总线、串行附连小型计算机系统接口(SAS)总线)、或网络(诸如因特网、存储区域网(SAN)、局域网(LAN)、等等)、或逻辑装置接口(诸如NVM高速(NVMe))上与物理存储装置104、106、108通信。NVMe的进一步的细节可在由NVMExpress,Inc在2016年6月5日发布的公布“NVM Express”修订版1.2.1.中被找到。计算装置102和物理存储装置104、106、108可以是任何适合的网络中的元件,所述网络诸如存储区域网、广域网、因特网、内联网、等等。在某些实施例中,计算装置102和物理存储装置104、106、108可以是云计算环境中的元件。
一个或更多存储控制器接口110可被用于将计算装置102耦合于所述多个物理存储装置104、106、108。存储控制器驱动112(还被称为下级存储驱动)可提供允许上级存储驱动114与所述多个物理存储装置104、106、108通信的功能。在某些实施例中,上级存储驱动114可为了开发和测试而需要多于一个物理存储装置。例如,如果上级存储驱动114是RAID驱动,则除非所述多个物理存储装置104、106、108多于对于RAID配置所要求的数量,否则RAID驱动可以不是被开发或测试的性质。在图1中示出的实施例中,存在对于上级存储驱动114的开发和测试足够多的多个物理存储装置104、106、108。可包括用户空间软件(即,在被分配到用户应用的存储器空间中执行的软件)的其它应用116可还在计算装置102中执行并使用上级存储驱动114。
可存在这样的情形:在其中物理存储装置104、106、108是昂贵的或是不容易可用的,并且可合乎期望的是最小化要用于上级存储驱动114和应用116的开发和测试的物理存储装置的数量。
图2-6中示出的某些实施例提供配置,其中单个物理存储装置(例如,物理存储装置104)足够上级存储驱动114和应用116的开发和测试之用。
图2示出框图200,其示出依照某些实施例的耦合于单个物理存储装置202的计算装置102,其中多个物理存储装置经由从单个物理存储装置202生成的多个逻辑存储装置204、206、208来在计算装置102中被模拟。
在某些实施例中,计算装置102中的仿真层210执行所述多个逻辑存储装置204、206、208的生成,以及从所述多个逻辑存储装置204、206、208的所述多个物理存储装置的模拟。仿真层210在单个物理存储装置202的存储控制器驱动112和上级存储驱动114之间进行接口。在某些实施例中,仿真层210可采用软件、硬件、固件或其任何组合来实现。
上级存储驱动114的测试和开发通过对所述多个物理存储装置的模拟来被执行。单个物理存储装置202足够用于模拟所述多个物理存储装置,并且通过上级存储驱动114或应用116被指向所述多个物理存储装置中的任何物理存储装置的任何命令经由仿真层210、存储控制器驱动112、和存储控制器接口110被指向单个物理存储装置202。
在图2中示出的某些实施例中,如果上级存储驱动114是RAID驱动,则RAID驱动将所述多个物理存储装置配置成RAID同时使用仅单个物理盘驱动器202。没有附加的物理盘驱动器必须被耦合于计算装置102。
图3示出框图300,其示出依照某些实施例的基于将单个物理存储装置302划分成多个逻辑块地址范围304、306、308的多个物理存储装置的模拟,其中每个逻辑块地址范围被映射到逻辑存储装置310、312、314。
在某些实施例中,仿真层210将物理存储装置302的逻辑块地址空间划分成所述多个逻辑块地址范围(如经由参考数字316示出的)。
因此,图3示出其中仿真层210将单个物理存储装置302划分成多个逻辑块地址范围304、306、308并将每个逻辑块地址范围映射到所述多个逻辑存储装置310、312、314中的逻辑存储装置的某些实施例。例如,逻辑块地址范围#1 304被映射到逻辑存储装置#1 310,逻辑块地址范围#2 306被映射到逻辑存储装置#3 312,以及逻辑块地址范围#N 308被映射到逻辑存储装置#N 314。在某些实施例中,逻辑块地址范围是有序逻辑块地址的集合。
在图3中,在某些实施例中,单个物理驱动器通过仿真层210被划分成多个LBA范围。因此,单个物理驱动器作为多个驱动器被报告到上级软件层114、116。被指向驱动器的所有命令在没有改变的情况下被重新指向单个物理驱动器,其中含有以下例外:
1. 基于物理驱动器的序列号,生成用于模拟的驱动器的序列号;
2. 每个模拟的驱动器的容量少于单个物理驱动器;以及
3. 对于读和写命令的目标LBA被移位。
图4示出框图400,其示出依照某些实施例的基于从单个NVMe装置408生成多个命名空间402、404、406的多个物理存储装置的模拟,其中每个命名空间被映射到逻辑NVMe装置410、412、414。
图4示出其中计算装置102经由NVMe协议与单个物理存储装置408通信的某些实施例。仿真层210通过将命令经由存储控制器驱动112和存储控制器接口110发送到物理NVMe装置408来从单个物理存储装置408(其是物理NVMe装置)生成多个命名空间402、404、406。仿真层210将所述多个命名空间402、404、406中的每个命名空间映射到所述多个逻辑存储装置410、412、414中的逻辑存储装置,其中逻辑存储装置是逻辑NVMe装置。例如,命名空间#1 402被映射到逻辑NVMe装置#1 410,命名空间#2 404被映射到逻辑NVMe装置#2 412,命名空间#N 406被映射到逻辑NVMe装置#N 414。
图5示出流程图500,其示出依照某些实施例的从耦合于计算装置102的单个物理存储装置202对多个物理存储装置的模拟。
控制在框502开始,其中计算装置102从耦合于计算装置102的单个物理存储装置202生成多个逻辑存储装置204、206、208。多个物理存储装置经由所述多个逻辑存储装置204、206、208被模拟(在框504),其中所述多个物理存储装置和单个物理存储装置202属于相同类型。例如,在某些实施例中,其中单个物理存储装置是硬驱动器,多个硬驱动器可通过仿真层210来被模拟。
在某些实施例中,框502中示出的操作可通过框506、508中示出的操作来被执行,并且在其它实施例中,框502中示出的操作可通过框510、512、514中示出的操作来被执行。
在框506中,仿真层210将单个物理存储装置划分成多个逻辑块地址范围304、306、308,并且然后将每个逻辑块地址范围映射(在框508)到所述多个逻辑存储装置310、312、314中的逻辑存储装置。
在框510中,计算装置102经由NVMe协议与单个物理存储装置通信。仿真层210从单个物理存储装置(其是物理NVMe装置)生成(在框512)多个命名空间402、404、406。仿真层210将所述多个命名空间402、404、406中的每个命名空间映射(在框514)到所述多个逻辑存储装置410、412、414中的逻辑存储装置,其中逻辑存储装置是逻辑NVMe装置。
因此,图1-5中示出的某些实施例提供用于操作系统环境中的存储软件开发的机制。单个驱动器可被划分成逻辑块地址(LBA)范围(或命名空间),并且对应于LBA范围的每个部分可作为单独的驱动器被报告到操作系统和到其它软件组件。划分在仿真层中被执行,带有对驱动代码的其余部分的最小的或没有影响。因此,仅单个驱动器必须被连接到计算装置,并且单个驱动器可充当多个驱动器。此单个驱动器处置所有协议特定的命令(例如,NVMe),所以复杂软件仿真被避免。
不存在对于驱动器的复杂软件仿真的需要,正如可以是在其中没有物理驱动器被使用的情形中的情况那样。实施例在被耦合于物理驱动器的计算装置中执行。此配置相比于其中硬件组件在软件中被仿真的配置提供对于开发和测试的更高信心等级。因为所有I/O和管理命令通过物理驱动器来被处置,所以仿真层的单个版本可模拟符合由任何供应商提供的任何版本的存储协议的驱动器。被安置在存储控制器驱动112之上的软件具有用于访问模拟的驱动器的能力并且采用与具有附连到系统的多个物理驱动器相同的方式来操作。
尽管各种实施例相对于包括硬盘驱动器或固态驱动器(SSD)的物理存储装置被描述,但实施例可被应用于包括非易失性存储器的任何物理存储装置。在一个实施例中,物理存储装置是块可寻址存储器装置(诸如基于NAND或NOR技术的那些)。物理存储装置可还包含未来代的非易失性装置,诸如三维交叉点存储器装置、或其它字节可寻址位置写入(write-in-place)非易失性存储器装置。在一个实施例中,物理存储装置可以是或可包含使用硫属化物玻璃的存储器装置、多阈值等级NAND闪速存储器、NOR闪速存储器、单或多级相变存储器(PCM)、电阻存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、结合忆阻器技术的磁阻随机存取存储器(MRAM)存储器、或自旋转移矩(STT)-MRAM、基于自旋电子磁结存储器的装置、或任何的以上或其它存储器的组合。物理存储装置可指的是管芯自身和/或封装的存储器产品。
所描述的组件和/或操作可被实现为方法、设备、或计算机程序产品,所述方法、设备、或计算机程序产品使用标准编程和/或工程技术来生产软件、固件、硬件、或其任何组合。所描述的操作可被实现为用于某些实施例中的实现或用于为了设计目的对存储器芯片的软件模拟的“计算机可读存储介质”中维持的代码,其中处理器可从计算机存储可读介质读和执行代码。计算机可读存储介质包含以下中的至少一项:电子电路、存储材料、无机材料、有机材料、生物材料、包装、壳、外层、和硬件。计算机可读存储介质可包括但不限于磁存储介质(例如,硬驱动器驱动器、软盘、磁带、等等)、光存储(CD-ROM、DVD、光盘、等等)、易失性和非易失性存储器装置(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪速存储器、固件、可编程逻辑、等等)、固态装置(SSD)、等等。实现所描述的操作的代码可进一步被实现在硬件逻辑中,所述硬件逻辑被实现在硬件装置(例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)、等等)中。更进一步,实现所描述的操作的代码可被实现在“传送信号”中,其中传送信号可通过空间或通过传送介质(诸如光纤、铜线、等等)传播。传送信号(在其中代码或逻辑被编码)可进一步包括无线信号、卫星传送、无线电波、红外信号、蓝牙、等等。嵌入在计算机可读存储介质上的程序代码可作为传送信号从传送站或计算机被传送到接收站或计算机。计算机可读存储介质不完全由传送信号组成。本领域技术人员将认识到,可对此配置做出许多修改,而且制品可包括本领域中已知的适合的信息承载介质。
用于实行对于某些实施例的方面的操作的计算机程序代码可采用一个或更多编程语言的任何组合来写。流程图和/或框图的框可通过计算机程序指令来实现。
图6示出可包含计算装置102的系统600的框图,其中物理存储装置202、302、408被包含或耦合于计算装置102。例如,在某些实施例中,系统600可以是在计算机中具有存储或存储器装置的计算机(例如,膝上型计算机、桌上型计算机、平板、蜂窝电话或任何其它适合的计算装置)。系统600可包含电路602,其可在某些实施例中包含至少处理器604。系统600可还包含存储器606、和存储装置608。存储装置608可包含固态驱动器、盘驱动器、或包含非易失性存储器装置(例如,EEPROM、ROM、PROM、闪存、固件、可编程逻辑、等等)的其它驱动器或装置。存储装置608可还包含磁盘驱动器、光盘驱动器、磁带驱动器、等等。存储装置608可包括内部存储装置、附连的存储装置和/或网络可访问的存储装置。系统600可包含程序逻辑610,其包含可被加载到存储器606内并由处理器604或电路602来执行的代码612。在某些实施例中,包含代码612的程序逻辑610可被存储在存储装置608中。在某些其它实施例中,程序逻辑610可被实现在电路602中。因此,虽然图6与其余元件分开地示出程序逻辑610,但程序逻辑610可被实现在存储器606和/或电路602中。系统600可还包含显示器614(例如,液晶显示器(LCD)、光发射二极管(LED)显示器、阴极射线管(CRT)显示器、触摸屏显示器、或任何其它适合的显示器)。系统600可还包含一个或更多输入装置616,诸如键盘、鼠标、操纵杆、轨迹板、或任何其它适合的输入装置。在某些实施例中,显示器614可被耦合于包括存储装置608和/或存储器606的存储器或存储装置;网络接口618可以通信地被耦合于处理器604;并且电池620可以通信地被耦合于处理器604。除了图6中示出的那些组件或装置之外的其它组件或装置也可在系统600中被找到。
某些实施例可被指向用于将通过人的计算指令或自动的处理集成计算机可读代码部署到计算系统中的方法,其中与计算系统结合的代码被使得能够执行所描述的实施例的操作。
术语“一实施例”、“实施例(embodiment/embodiments)”、“所述实施例(theembodiment/embodiments)”、“一个或更多实施例”、“一些实施例”、和“一个实施例”意味着“一个或更多(但不是所有)实施例”,除非以别的方式清楚地指定。
术语“包含”、“包括”、“具有”和其变体意味着“包含但不限于”,除非以别的方式清楚地指定。
所枚举的项的列表不暗示任何或所有项是互斥的,除非以别的方式清楚地指定。
术语“一(a/an)”和“所述”意味着“一个或更多”,除非以别的方式清楚地指定。
与彼此通信的装置不需要与彼此处于持续的通信,除非以别的方式清楚地指定。另外,与彼此通信的装置可通过一个或更多媒介直接地或间接地通信。
带有与彼此通信的若干组件的一实施例的描述不暗示所有此类组件是被要求的。相反,多种可选组件被描述以示出广泛多种的可能实施例。
进一步地,尽管过程步骤、方法步骤、算法或诸如此类可在相继的顺序中被描述,但此类过程、方法和算法可配置成在备选的顺序中工作。换句话说,可被描述的步骤的任何序列或顺序不一定指示步骤在那个顺序中被执行的要求。本文所描述的过程的步骤可在任何实际的顺序中被执行。进一步地,一些步骤可同时地被执行。
当单个装置或物品在本文中被描述时,将容易显而易见的是,多于一个装置/物品(无论它们是否协作)可代替单个装置/物品被使用。类似地,在多于一个装置或物品在本文中被描述的情况(无论它们是否协作),将容易显而易见的是,单个装置/物品可代替所述多于一个装置或物品被使用或者不同数量的装置/物品可替代所示出的数量的装置或程序被使用。装置的功能性和/或特征可备选地通过未被明确地描述为具有此类功能性/特征的一个或更多其它装置所实施。因此,其它实施例不需要包含装置自身。
可已经在图中被示出的至少某些操作示出以某一顺序发生的某些事件。在备选的实施例中,某些操作可被执行(按照不同的顺序)、被修改或移除。另外,步骤可被添加到以上所描述的逻辑并仍遵照所描述的实施例。进一步地,本文所描述的操作可相继地发生或者某些操作可并行地被处理。还进一步地,操作可通过单个处理单元或通过分布的处理单元被执行。
各种实施例的前述描述已经为了说明和描述的目的被呈现。这不旨在是详尽的或被限制于所公开的确切形式。许多修改和变化按照以上的教导是可能的。
示例
以下示例属于进一步的示例。
示例1是一种用于装置模拟的方法,其中计算装置从耦合于所述计算装置的单个物理存储装置生成多个逻辑存储装置。经由所述多个逻辑存储装置来模拟多个物理存储装置,其中所述多个物理存储装置和所述单个物理存储装置属于相同类型。
在示例2中,示例1的主题可包括:将所述单个物理存储装置划分成多个逻辑块地址范围;以及将每个逻辑块地址范围映射到所述多个逻辑存储装置中的逻辑存储装置。
在示例3中,示例1的主题可包括,所述计算装置经由非易失性存储器高速(NVMe)协议与所述单个物理存储装置通信,其中所述方法进一步包括:从所述单个物理存储装置生成多个命名空间;以及将所述多个命名空间中的每个命名空间映射到所述多个逻辑存储装置中的逻辑存储装置。
在示例4中,示例1的主题可包括,所述计算装置中的仿真层执行所述多个逻辑存储装置的所述生成和所述多个物理存储装置的所述模拟。
在示例5中,示例4的主题可包括,所述仿真层执行所述单个物理存储装置的存储控制器驱动和上级存储驱动之间的接口,并且其中所述方法进一步包括:通过所述多个物理存储装置的所述模拟来测试所述上级存储驱动的功能和所述多个物理存储装置的功能。
在示例6中,示例5的主题可包括,所述上级存储驱动将所述多个物理存储装置配置为独立盘冗余阵列(RAID)。
在示例7中,示例6的主题可包括,所述上级存储驱动的所述功能的测试和所述多个物理存储装置的所述功能的测试在除了被耦合于所述计算装置的所述单个物理存储装置之外没有耦合任何附加物理存储装置的情况下被执行。
在示例8中,示例1的主题可包括,所述单个物理存储装置足够用来模拟所述多个物理存储装置,并且其中被指向所述多个物理存储装置中的任何物理存储装置的命令被指向所述单个物理存储装置。
示例9是一种用于装置模拟的系统。所述系统耦合于单个物理存储装置,其中所述系统包括:存储器;以及耦合于所述存储器的处理器,其中所述处理器可操作以:从所述单个物理存储装置生成多个逻辑存储装置;以及经由所述多个逻辑存储装置来模拟多个物理存储装置,其中所述多个物理存储装置和所述单个物理存储装置属于相同类型。
在示例10中,示例9的主题可包括,所述处理器进一步可操作以:将所述单个物理存储装置划分成多个逻辑块地址范围;以及将每个逻辑块地址范围映射到所述多个逻辑存储装置中的逻辑存储装置。
在示例11中,示例9的主题可包括,所述系统经由非易失性存储器高速(NVMe)协议与所述单个物理存储装置通信,其中所述处理器进一步可操作以:从所述单个物理存储装置生成多个命名空间;以及将所述多个命名空间中的每个命名空间映射到所述多个逻辑存储装置中的逻辑存储装置。
在示例12中,示例9的主题可包括,仿真层执行所述多个逻辑存储装置的生成和所述多个物理存储装置的模拟。
在示例13中,示例12的主题可包括,所述仿真层执行所述单个物理存储装置的存储控制器驱动和上级存储驱动之间的接口,并且其中所述处理器进一步可操作以:经由所述多个物理存储装置的模拟来测试所述上级存储驱动的功能和所述多个物理存储装置的功能。
在示例14中,示例13的主题可包括,所述上级存储驱动将所述多个物理存储装置配置为独立盘冗余阵列(RAID)。
在示例15中,示例14的主题可包括,所述上级存储驱动的所述功能的测试和所述多个物理存储装置的所述功能的测试在除了所述单个物理存储装置之外没有耦合任何附加物理存储装置的情况下被执行。
在示例16中,示例9的主题可包括,所述单个物理存储装置足够用来模拟所述多个物理存储装置,并且其中被指向所述多个物理存储装置中的任何物理存储装置的命令被指向所述单个物理存储装置。
示例17是一种用于装置模拟的计算机可读存储介质。具有随其被实施的计算机可读程序代码,所述计算机可读程序代码配置成执行计算装置上的操作,所述操作包括:从耦合于所述计算装置的单个物理存储装置生成多个逻辑存储装置;以及经由所述多个逻辑存储装置来模拟多个物理存储装置,其中所述多个物理存储装置和所述单个物理存储装置属于相同类型。
在示例18中,示例17的主题可包括:将所述单个物理存储装置划分成多个逻辑块地址范围;以及将每个逻辑块地址范围映射到所述多个逻辑存储装置中的逻辑存储装置。
在示例19中,示例17的主题可包括,所述计算装置经由非易失性存储器高速(NVMe)协议与所述单个物理存储装置通信,所述操作进一步包括:从所述单个物理存储装置生成多个命名空间;以及将所述多个命名空间中的每个命名空间映射到所述多个逻辑存储装置中的逻辑存储装置。
在示例20中,示例17的主题可包括,所述计算装置中的仿真层执行所述多个逻辑存储装置的所述生成和所述多个物理存储装置的所述模拟。
在示例21中,示例20的主题可包括,所述仿真层执行所述单个物理存储装置的存储控制器驱动和上级存储驱动之间的接口,并且其中所述操作进一步包括:通过所述多个物理存储装置的所述模拟来测试所述上级存储驱动的功能和所述多个物理存储装置的功能。
在示例22中,示例21的主题可包括,所述上级存储驱动将所述多个物理存储装置配置为独立盘冗余阵列(RAID)。
在示例23中,示例22的主题可包括,所述上级存储驱动的所述功能的测试和所述多个物理存储装置的所述功能的测试在除了被耦合于所述计算装置的所述单个物理存储装置之外没有耦合任何附加物理存储装置的情况下被执行。
在示例24中,示例17的主题可包括,所述单个物理存储装置足够用来模拟所述多个物理存储装置,并且其中被指向所述多个物理存储装置中的任何物理存储装置的命令被指向所述单个物理存储装置。
示例25是一种用于装置模拟的系统,其中所述系统包括用于在计算装置中从耦合于所述计算装置的单个物理存储装置生成多个逻辑存储装置的部件;以及用于经由所述多个逻辑存储装置来模拟多个物理存储装置的部件,其中所述多个物理存储装置和所述单个物理存储装置属于相同类型。
以上所描述的任何系统和/或设备和/或装置的所有可选特征也可相对于以上所描述的方法或过程被实现,并且示例中的细节可在一个或更多实施例中的任何位置被使用。另外,以上所描述的方法或过程的所有可选特征也可相对于以上所描述的任何系统和/或设备和/或装置被实现,并且示例中的细节可在一个或更多实施例中的任何位置被使用。
Claims (17)
1. 一种用于装置模拟的方法,所述方法包括:
在计算装置中,从耦合于所述计算装置的单个物理存储装置生成多个逻辑存储装置;以及
经由所述多个逻辑存储装置来模拟多个物理存储装置,其中所述多个物理存储装置和所述单个物理存储装置属于相同类型。
2. 如权利要求1所述的方法,所述方法进一步包括:
将所述单个物理存储装置划分成多个逻辑块地址范围;以及
将每个逻辑块地址范围映射到所述多个逻辑存储装置中的逻辑存储装置。
3. 如权利要求1所述的方法,其中所述计算装置经由非易失性存储器高速(NVMe)协议与所述单个物理存储装置通信,所述方法进一步包括:
从所述单个物理存储装置生成多个命名空间;以及
将所述多个命名空间中的每个命名空间映射到所述多个逻辑存储装置中的逻辑存储装置。
4.如权利要求1所述的方法,其中所述计算装置中的仿真层执行所述多个逻辑存储装置的所述生成和所述多个物理存储装置的所述模拟。
5.如权利要求4所述的方法,其中所述仿真层执行所述单个物理存储装置的存储控制器驱动和上级存储驱动之间的接口,并且其中所述方法进一步包括:
通过所述多个物理存储装置的所述模拟来测试所述上级存储驱动的功能和所述多个物理存储装置的功能。
6.如权利要求5所述的方法,其中:
所述上级存储驱动将所述多个物理存储装置配置为独立盘冗余阵列(RAID)。
7.如权利要求6所述的方法,其中所述上级存储驱动的所述功能的测试和所述多个物理存储装置的所述功能的测试在除了被耦合于所述计算装置的所述单个物理存储装置之外没有耦合任何附加物理存储装置的情况下被执行。
8.如权利要求1所述的方法,其中所述单个物理存储装置足够用来模拟所述多个物理存储装置,并且其中被指向所述多个物理存储装置中的任何物理存储装置的命令被指向所述单个物理存储装置。
9. 一种用于装置模拟的系统,其中所述系统耦合于单个物理存储装置,所述系统包括:
存储器;以及
耦合于所述存储器的处理器,其中所述处理器可操作以:
从所述单个物理存储装置生成多个逻辑存储装置;以及
经由所述多个逻辑存储装置来模拟多个物理存储装置,其中所述多个物理存储装置和所述单个物理存储装置属于相同类型。
10. 如权利要求9所述的系统,其中所述处理器进一步可操作以:
将所述单个物理存储装置划分成多个逻辑块地址范围;以及
将每个逻辑块地址范围映射到所述多个逻辑存储装置中的逻辑存储装置。
11. 如权利要求9所述的系统,其中所述系统经由非易失性存储器高速(NVMe)协议与所述单个物理存储装置通信,其中所述处理器进一步可操作以:
从所述单个物理存储装置生成多个命名空间;以及
将所述多个命名空间中的每个命名空间映射到所述多个逻辑存储装置中的逻辑存储装置。
12.如权利要求9所述的系统,其中仿真层执行所述多个逻辑存储装置的生成和所述多个物理存储装置的模拟。
13.如权利要求12所述的系统,其中所述仿真层执行所述单个物理存储装置的存储控制器驱动和上级存储驱动之间的接口,并且其中所述处理器进一步可操作以:
经由所述多个物理存储装置的模拟来测试所述上级存储驱动的功能和所述多个物理存储装置的功能。
14.如权利要求13所述的系统,其中:
所述上级存储驱动将所述多个物理存储装置配置为独立盘冗余阵列(RAID)。
15.如权利要求14所述的系统,其中所述上级存储驱动的所述功能的测试和所述多个物理存储装置的所述功能的测试在除了所述单个物理存储装置之外没有耦合任何附加物理存储装置的情况下被执行。
16.如权利要求9所述的系统,其中所述单个物理存储装置足够用来模拟所述多个物理存储装置,并且其中被指向所述多个物理存储装置中的任何物理存储装置的命令被指向所述单个物理存储装置。
17. 一种用于装置模拟的系统,所述系统包括:
用于在计算装置中,从耦合于所述计算装置的单个物理存储装置生成多个逻辑存储装置的部件;以及
用于经由所述多个逻辑存储装置来模拟多个物理存储装置的部件,其中所述多个物理存储装置和所述单个物理存储装置属于相同类型。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/466,648 US20180275871A1 (en) | 2017-03-22 | 2017-03-22 | Simulation of a plurality of storage devices from a single storage device coupled to a computational device |
US15/466648 | 2017-03-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108628548A true CN108628548A (zh) | 2018-10-09 |
Family
ID=63450487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810240516.1A Pending CN108628548A (zh) | 2017-03-22 | 2018-03-22 | 从耦合于计算装置的单个存储装置模拟多个存储装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20180275871A1 (zh) |
CN (1) | CN108628548A (zh) |
DE (1) | DE102018204427A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10642488B2 (en) | 2017-10-23 | 2020-05-05 | Micron Technology, Inc. | Namespace size adjustment in non-volatile memory devices |
US10503404B2 (en) | 2017-10-23 | 2019-12-10 | Micron Technology, Inc. | Namespace management in non-volatile memory devices |
US10437476B2 (en) | 2017-10-23 | 2019-10-08 | Micron Technology, Inc. | Namespaces allocation in non-volatile memory devices |
US10223254B1 (en) | 2017-11-16 | 2019-03-05 | Micron Technology, Inc. | Namespace change propagation in non-volatile memory devices |
US10915440B2 (en) | 2017-11-16 | 2021-02-09 | Micron Technology, Inc. | Namespace mapping optimization in non-volatile memory devices |
US11580034B2 (en) | 2017-11-16 | 2023-02-14 | Micron Technology, Inc. | Namespace encryption in non-volatile memory devices |
US10678703B2 (en) | 2017-11-16 | 2020-06-09 | Micron Technology, Inc. | Namespace mapping structual adjustment in non-volatile memory devices |
US11748038B1 (en) * | 2022-02-21 | 2023-09-05 | Dell Products L.P. | Physical hardware controller for provisioning remote storage services on processing devices |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7743389B2 (en) * | 2007-11-06 | 2010-06-22 | Vmware, Inc. | Selecting between pass-through and emulation in a virtual machine environment |
US8677355B2 (en) * | 2010-12-17 | 2014-03-18 | Microsoft Corporation | Virtual machine branching and parallel execution |
US9003104B2 (en) * | 2011-02-15 | 2015-04-07 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a file-level cache |
US20150347057A1 (en) * | 2014-05-30 | 2015-12-03 | Netapp, Inc. | Storage area network emulator |
WO2016118125A1 (en) * | 2015-01-21 | 2016-07-28 | Hewlett Packard Enterprise Development Lp | Virtual storage |
US20180032249A1 (en) * | 2016-07-26 | 2018-02-01 | Microsoft Technology Licensing, Llc | Hardware to make remote storage access appear as local in a virtualized environment |
-
2017
- 2017-03-22 US US15/466,648 patent/US20180275871A1/en not_active Abandoned
-
2018
- 2018-03-22 CN CN201810240516.1A patent/CN108628548A/zh active Pending
- 2018-03-22 DE DE102018204427.9A patent/DE102018204427A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102018204427A1 (de) | 2018-09-27 |
US20180275871A1 (en) | 2018-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108628548A (zh) | 从耦合于计算装置的单个存储装置模拟多个存储装置 | |
CN103946811B (zh) | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 | |
CN103366801B (zh) | 存储器装置及其操作方法 | |
CN103946826B (zh) | 用于在公共存储器通道上实现多级存储器层级的设备和方法 | |
EP3436953B1 (en) | Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device | |
CN104115129B (zh) | 用于从处理器到存储器子系统智能刷新数据的系统和方法 | |
CN103946816B (zh) | 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram) | |
TW201841118A (zh) | 採用映射記憶體提供多重命名空間的方法及設備 | |
CN110008177A (zh) | 使能hadoop分布式文件系统的扩展的可扩展基于树的索引框架 | |
CN107015845A (zh) | Gpu虚拟化 | |
US10114556B2 (en) | Method and apparatus for improving read performance of a solid state drive | |
CN108572927A (zh) | 存储器系统及其操作方法 | |
CN107229417A (zh) | 数据存储设备及其操作方法 | |
CN107957958A (zh) | 存储器系统及其操作方法 | |
CN107368433A (zh) | 2级存储器分级结构中的存储器侧高速缓存的动态部分断电 | |
CN107391397A (zh) | 支持近存储器和远存储器访问的存储器通道 | |
US10296250B2 (en) | Method and apparatus for improving performance of sequential logging in a storage device | |
CN104011689B (zh) | 非易失性存储器损耗管理 | |
CN107257953A (zh) | 测量并向主机报告固态驱动器的输入和输出操作的等待时间 | |
CN104115230B (zh) | 基于高效pcms刷新机制的计算装置、方法和系统 | |
CN107818808A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN109213438A (zh) | 预先管理待分配给写入数据的物理地址的存储装置 | |
CN108614668A (zh) | 基于kv模型的数据访问方法与固态存储设备 | |
US20220075717A1 (en) | Wear Leveling in Non-Volatile Memory | |
CN109783405A (zh) | 存储设备和存储设备的操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20181009 |
|
WD01 | Invention patent application deemed withdrawn after publication |