CN107077447A - 共享的虚拟化本地存储装置 - Google Patents
共享的虚拟化本地存储装置 Download PDFInfo
- Publication number
- CN107077447A CN107077447A CN201580052234.3A CN201580052234A CN107077447A CN 107077447 A CN107077447 A CN 107077447A CN 201580052234 A CN201580052234 A CN 201580052234A CN 107077447 A CN107077447 A CN 107077447A
- Authority
- CN
- China
- Prior art keywords
- host
- storage device
- requests
- protocol
- host protocol
- 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
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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- 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
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/0626—Reducing size or complexity of storage systems
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- 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/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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/387—Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
Abstract
嵌入式处理单元(eCPU)使用虚拟存储装置控制器处理来自主机的输入/输出(I/O)请求。eCPU将虚拟网络接口与主机相关联。虚拟存储装置控制器使用第一传输协议。eCPU从虚拟存储装置控制器接收去往存储设备的I/O请求。eCPU确定存储设备所使用的第二传输协议,并且将I/O请求从根据第一传输协议的格式转换成根据第二传输协议的格式。eCPU使用第二传输协议将I/O请求传送至存储设备。
Description
技术领域
本公开涉及向计算设备提供虚拟化本地存储装置。
背景技术
服务器(例如,机架安装的刀片式服务器)通常具有处理器、存储器、本地存储装置、以及板上网络接口。本地存储磁盘可以是服务器的物理足迹的重要部分,特别是在独立磁盘冗余阵列(RAID)设备需要多个磁盘的情况下。网络连接存储装置很昂贵,这增大了每个服务器的成本并且复杂化了服务器管理员进行的配置。
附图说明
图1是根据示例实施例的被配置为向多个主机提供对于数据存储装置的虚拟化本地访问的系统的框图。
图2是根据示例实施例的被配置为向多个服务器提供对于数据存储装置的本地访问的适配器的框图。
图3是根据示例实施例的共享的虚拟化本地存储系统的简化框图。
图4是根据示例实施例的共享的虚拟化本地存储系统中的各种数据队列的简化框图。
图5是根据示例实施例的输入/输出(I/O)请求通过适配器从主机传递至存储装置控制器的框图。
图6是根据示例实施例的描绘适配器向主机提供虚拟化本地存储装置的操作的流程图。
具体实施方式
综述
本文提出了用于嵌入式处理器的使用虚拟存储装置控制器处理来自主机的I/O请求的装置和方法。嵌入式处理器将第一虚拟存储装置控制器与第一主机相关联。第一虚拟存储装置控制器使用第一传输协议。嵌入式处理器使用第一网络传输协议从第一虚拟存储装置控制器接收去往存储设备的第一I/O请求。嵌入式处理器确定存储设备所使用的第二传输协议,并且将第一I/O请求从根据第一传输协议的格式转换成根据第二传输协议的格式。嵌入式处理器使用第二传输协议将第一I/O请求传送至存储设备。
示例实施例
本文提出的示例提出在服务器和共享的虚拟化存储系统之间设置接口。在具体示例中,虚拟接口卡(VIC)被用于在PCIe总线上将虚拟的外围组件快速互连(PCIe)小型计算机系统接口(SCSI)存储装置控制器提供给服务器。VIC固件使用针对SCSI设备的标准输入/输出(I/O)机制与服务器操作系统进行交互。发布至虚拟SCSI控制器的I/O请求被引导至共享驱动的为服务器保留的部分。
虚拟PCIe存储装置控制器可以同时存在于多个服务器的PCIe总线上。每个服务器将一个或多个共享驱动的为该服务器保留的部分视作它自己的专用本地驱动,并且相应地发布I/O请求。I/O请求由VIC固件管理,并且当物理I/O完成时I/O完成被递送至发布服务器。在下文中,术语“服务器”和“主机”可以被可交换地用于描述匿名计算节点,该匿名计算节点具有可能不维持持续状态的处理器和存储器。缺乏持续状态允许针对故障进行简单替换或者随着处理器技术的改进进行升级。
参考图1,系统100被示出为包括通过VIC 110与多个存储设备通信的多个主机。VIC 110包括一个或多个嵌入式中央处理单元(eCPU),以通过发送和接收来自主机120、130、140、和150的I/O请求来处理eCPU固件112。一个eCPU可以被指定作为管理CPU(mCPU)来处理mCPU固件114,mCPU固件114包括使得VIC 110能够与一个或多个不同类型的存储设备通信的一个或多个存储装置驱动器116。主机120上的操作系统包括文件系统122、SCSI层124、和SCSI虚拟网络接口卡(vNIC)126。主机120与具有逻辑单元号(LUN)的存储设备128通信,该存储设备128作为通过SCSI vNIC 126访问的本地存储装置。类似地,主机130、140、和150包括文件系统132、142、和152、SCSI层134、144、和154、以及SCSI vNIC 136、146、和156,以分别与存储设备138、148、和158通信。在下文中,术语SCSI vNIC和sNIC被可交换地用于指代主机用来将I/O请求定向到一个或多个存储设备的接口。
存储装置控制器160控制存储装置驱动162和164,并且通过存储装置驱动器116来向VIC 110提供对于存储装置的访问。类似地,存储装置控制器170控制驱动172和174。在一个示例中,驱动162、164、172、和/或174中的一个或多个可以是由存储装置控制器160和/或存储装置控制器170定义的虚拟驱动。在另一示例中,存储装置驱动可以包括独立磁盘冗余阵列(RAID)设备。在又一示例中,存储装置控制器160以及驱动162和164可以形成以下系统中的一个系统:网络连接存储(NAS)系统、直接连接存储(DAS)系统、光纤通道(FC)存储区域网(SAN)、互联网SCSI(iSCSI)SAN、或串行连接SCSI(SAS)系统。
图1示出了具有一定数量的组件(例如,4个主机、2个存储装置控制器等)的系统100,但其他示例可以包括更多或更少的主机、存储装置控制器、存储装置驱动或逻辑驱动。此外,eCPU固件112可以在多个eCPU单元上同时运行。在一个示例中,每个主机被分配给运行eCPU固件112的特定eCPU单元,以使得该主机能够访问其相应的存储装置驱动。
现在参考图2,简化框图示出了根据一个示例实施例的用于实现系统100的组件。主机120、130、140、和150被耦合至VIC 110,VIC 110除了其他可能的组件以外包括用于处理与使得服务器能够访问共享的虚拟化本地存储装置相关的指令的一个或多个处理器220、以及用于存储各种数据和软件指令(例如,eCPU固件112、mCPU固件114等)的存储器230。PCIe根端口桥(Root Port Bridge)240将流量从处理器总线桥接至PCIe总线。在一个示例中,PCIe根端口桥240包括使得VIC 110能够与存储装置控制器160通信以访问一个或多个磁盘驱动250的根复合体(RC)240。VIC 110还包括网络接口单元260,以使能针对所有主机120、130、140、和150的网络通信。
存储器230可以包括只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质设备、光存储介质设备、闪速存储设备、电的、光的、或其他物理的或有形的(例如,非暂态)存储器存储设备。处理器220例如是执行用于实现本文所描述的处理的指令的微处理器或微控制器。因此,存储器230通常可以包括利用软件编码的一个或多个有形(非暂态)计算机可读存储介质(例如,存储器设备),该软件包括计算机可执行指令并且当软件(由处理器220)执行时,可操作来执行本文所描述的操作。
现在参考图3,示出了通过特定的eCPU单元连接主机和存储装置控制器的简化框图。VIC 110包括mCPU 310、和eCPU 312、314、316、和318,这些eCPU分别被配置为处理来自主机320、330、340、和350的I/O请求。在一个示例中,主机和eCPU单元之间存在一对一的对应关系,但在其他示例中,可以将不止一个主机分配给eCPU单元。每个主机通过sNIC与VIC通信,sNIC允许主机使用共同的SCSI驱动器来发布I/O请求。每个eCPU和mCPU可以将消息帧地址提交至存储装置控制器160的请求队列,以向前传递来自主机的I/O请求。
在一个示例中,所有sNIC被绑定至运行存储装置驱动器的mCPU。这种选择可以被用于改善(bring up)sNIC主机驱动器和/或了解性能问题。在这个示例中,主机通过请求来自mCPU的解析来请求I/O操作,mCPU准备针对内核异步I/O的SCSI请求。mCPU设置直接存储器访问(DMA)至主机I/O缓冲器(例如,分散收集元件(scatter gather element)(SGE))的映射,并且执行异步I/O接口。I/O操作完成路径包括完成解析、解析主机响应、对主机DMA缓冲器进行去映射(unmapping)、以及将该完成提交至主机。
在另一示例中,sNIC跨所有eCPU分布,并且每个eCPU可以将请求提交至存储装置控制器队列。在这个示例中,针对存储装置控制器队列的消息帧空间可以在提交I/O请求的eCPU之间等分。存储装置控制器160可以支持多个响应队列,并且响应队列可以基于逐个I/O被指定。针对每个eCPU的I/O请求路径包括接收来自请求解析的主机sNIC的请求、准备存储装置控制器消息帧、以及将消息帧地址提交至存储装置控制器请求队列。在另一示例中,eCPU可能不能直接向存储装置控制器队列提交,并且要求mCPU将消息帧地址提交至针对eCPU的存储装置控制器队列。存储装置控制器在完成I/O请求时向mCPU发送中断,该中断根据消息信号中断(MSI)矢量被转发至适当的eCPU。这可以避免mCPU被迫调用中断服务例程(ISR)来处理针对I/O完成的所有中断。针对每个eCPU的I/O完成路径包括处理针对I/O完成的中断、完成解析、准备主机响应、以及将I/O完成提交至主机。
现在参考图4,示出了I/O请求中所涉及的队列的框图。16个主机(H0-H15)中的每个主机具有写队列(WQ)410-425中的一个写队列,用在来自该主机/sNIC的I/O请求中。存在与每个sNIC相关联的一个WQ,并且针对每个主机有一个sNIC。来自WQ 410、414、418、和422的I/O请求被发送至eCPU 312,在eCPU 312处这些I/O请求被分别存储在请求队列(RQ)430、431、432、和433中。来自WQ 411、415、419、和423的I/O请求被发送至eCPU 314,在eCPU 314处这些I/O请求被分别存储在请求队列(RQ)434、435、436、和437中。来自WQ 412、416、420、和424的I/O请求被发送至eCPU 316,在eCPU 316处这些I/O请求被分别存储在请求队列(RQ)438、439、440、和441中。来自WQ413、417、421、和425的I/O请求被发送至eCPU 318,在eCPU 318处这些I/O请求被分别存储在请求队列(RQ)442、443、444、和445中。在另一示例中,每个eCPU只维护用于处理来自多个sNIC的I/O请求的单个RQ。在这种情况下,eCPU将使用针对每个sNIC的唯一标识符,从而使得在I/O操作完成时,eCPU能够识别I/O完成应该被提交至的主机CQ。
每个eCPU能够将I/O请求提交至组合存储装置控制器RQ450。在一个示例中,存储装置RQ450的地址空间在四个eCPU 312、314、316、和318之间等分。在存储装置控制器完成了I/O请求后,它将已完成的I/O结果输入到属于输入I/O请求的eCPU的完成队列(CQ)460、462、464、或466中。然后,eCPU将已完成的I/O请求返回至主机CQ(未示出)中的适当的主机。
在一个示例中,存储装置控制器支持最多1024个请求消息帧(MF)。1024个MF将在4个eCPU之间等分。MF可以被无序提交,然而存储装置控制器可以要求针对所有1024个MF的存储器在物理上是连续的。当初始化eCPU时,mCPU可以分配连续的存储器块,并且将区块(chunk)分发至所有四个eCPU。这使得eCPU能够在没有mCPU介入的情况下提交I/O请求。存储装置控制器完成I/O请求之后的完成中断还被分发给提交I/O请求的相应eCPU。eCPU可以使用原子多字写入事务(atomic multi-word write transaction)直接将I/O请求提交至存储装置RQ 450。因为这些操作是原子操作,所以eCPU之间不需要同步。
现在参考图5,示出了单个I/O请求的框图。WQ 410中的I/O请求510包括头部512、任何需要的标记514、指令描述块(CDB)516、以及分散收集列表(SGL)518。在进入eCPURQ430时,I/O请求510由分类器/重写引擎/网络块520进行处理,以变成I/O请求530。I/O请求530包括头部532、任何需要的标记534、CDB 536、和具有嵌入在分散收集元素(SGE)中的主机标识符的SGL 538。在将I/O请求提交至存储装置RQ 450时,eCPU按照针对适当sNIC/主机的LUN掩码信息来添加LUN标识符540。当I/O请求完成时,存储装置控制器160将结果返回至eCPU中的CQ 460,并且eCPU将I/O完成引导向适当的主机。
在一个示例中,由重写引擎520执行的I/O请求转换步骤修改SGL中的主机地址的最后四位以具有主机标识符。这允许去往/来自主机存储器的直接存储器访问(DMA)。此外,I/O请求转换步骤还可以缓冲针对感测数据的地址,从而使得存储装置控制器可以在没有eCPU介入的情况下针对感测数据对主机存储器执行DMA操作。另外,I/O请求转换步骤可以按照针对给定sNIC的LUN掩码信息来修改LUN标识符。在一个示例中,I/O请求转换步骤由eCPU上的软件模块执行。在另一示例中,定制硬件块可以被用于执行I/O请求转换步骤。
在另一示例中,eCPU可以包括嵌入在SGL 538中的预定数目的SGE,并且任何另外的SGE进入与存储装置RQ 450分离的扩展SGL缓冲阵列。
现在参考图6,示出了eCPU在处理I/O请求时所执行的操作的示例过程600。在步骤610中,eCPU将sNIC与主机相关联,该主机将使用第一传输协议。在步骤620中,eCPU使用sNIC从主机接收去往存储设备的I/O请求。在步骤630中,eCPU确定存储设备所使用的第二传输协议。eCPU在步骤640中将I/O请求转换至第二传输协议,并且在步骤650中使用第二传输协议将I/O请求传送至存储设备。
概括来说,本文提出的技术提供了通过虚拟SCSI控制器将共享的本地存储装置提供给多个服务器中的每个服务器。共享存储装置的部分对于每个服务器来说可以看作直接连接至该服务器的专用本地驱动。服务器使用已知的SCSI直接连接存储方法来管理存储装置。各服务器的成本与传统的本地存储装置控制器选择相比大幅降低,同时还保留了本地存储装置驱动的许多优点。此外,这允许服务器使用复杂和/或昂贵的存储系统(例如,固态驱动、RAID设备),从而减少了各服务器的存储需求。服务器管理员使用常用模型来管理虚拟化本地存储装置并且不要求配置或管理网络存储装置。这允许在不牵涉服务器的情况下在虚拟化本地存储装置上插入通常与高端网络存储装置(例如,RAID、只读、写时拷贝、重复删除、快照、备份等等)相关联的存储设备。
在一个示例中,本文提出的技术提供了用于eCPU的使用虚拟存储装置控制器处理来自主机的I/O请求的方法。eCPU将第一虚拟存储装置控制器与第一主机相关联。第一虚拟存储装置控制器使用第一传输协议。eCPU使用第一网络传输协议从第一虚拟存储装置控制器接收去往存储设备的第一I/O请求。eCPU确定存储设备所使用的第二传输协议,并且将第一I/O请求从根据第一传输协议的格式转换成根据第二传输协议的格式。eCPU使用第二传输协议将第一I/O请求传送至存储设备。
在另一示例中,提供了一种装置,该装置包括与一个或多个主机相关联的一个或多个虚拟存储装置控制器。虚拟存储装置控制器使用第一传输协议。该装置还包括与一个或多个存储设备通信的一个或多个存储装置驱动器以及一个或多个处理器。处理器从第一虚拟存储装置控制器接收去往第一存储设备的第一I/O请求。处理器确定存储装置驱动器用来与第一存储设备通信的第二传输协议。处理器将第一I/O请求从根据第一传输协议的格式转换成根据第二传输协议的格式,并且经由存储装置驱动器使用第二传输协议将第一I/O请求传送至第一存储设备。
在又一示例中,提供了一种系统,该系统包括一个或多个主机设备、一个或多个存储设备、以及虚拟接口卡。虚拟接口卡将第一虚拟存储装置控制器与第一主机相关联。第一虚拟存储装置控制器使用第一传输协议。虚拟接口卡使用第一传输协议从第一虚拟存储装置控制器接收去往第一存储设备的第一I/O请求。虚拟接口卡确定第一存储设备所使用的第二传输协议,并且将第一I/O请求从根据第一传输协议的格式转换成根据第二传输协议的格式。虚拟接口卡使用第二传输协议将第一I/O请求传送至第一存储设备。
上文的描述只用作举例的目的。在不背离本文提出的概念的范围和权利要求的等同物的范围的情况下,可以对其进行各种修改和结构改变。
Claims (27)
1.一种方法,包括:
将第一虚拟存储装置控制器与第一主机相关联,其中,所述第一虚拟存储装置控制器使用第一传输协议;
使用所述第一传输协议从所述第一虚拟存储装置控制器接收第一输入/输出(I/O)请求,所述第一I/O请求去往存储设备;
确定所述存储设备所使用的第二传输协议;
将所述第一I/O请求从根据所述第一传输协议的格式转换成根据所述第二传输协议的格式;以及
使用所述第二传输协议将所述第一I/O请求传送至所述存储设备。
2.根据权利要求1所述的方法,还包括:
根据所述第二传输协议从所述存储设备接收第一I/O结果;
将所述第一I/O结果从根据所述第二传输协议的格式转换成根据所述第一传输协议的格式;以及
使用所述第一传输协议,经由所述第一虚拟存储装置控制器将所述第一I/O结果传送至所述第一主机。
3.根据权利要求1所述的方法,其中,所述第一传输协议是小型计算机系统接口(SCSI)协议。
4.根据权利要求3所述的方法,其中,所述存储设备通过作为光纤通道协议或互联网SCSI(iSCSI)协议中一种的所述第二传输协议被访问。
5.根据权利要求3所述的方法,其中,所述存储设备是直接连接存储(DAS)设备或网络连接存储(NAS)设备中的一种。
6.根据权利要求3所述的方法,其中,所述存储设备包括独立设备冗余阵列(RAID)。
7.根据权利要求1所述的方法,还包括:
从与第二主机相关联的第二虚拟存储装置控制器接收第二I/O请求;
将来自所述第一虚拟存储装置控制器的所述第一I/O请求和来自所述第二I/O请求的所述第二I/O请求存储在请求队列中;以及
将所述请求队列中的每个I/O请求传送至所述存储设备。
8.根据权利要求6所述的方法,还包括:
接收针对所述第二I/O请求的第二I/O结果;
将所述第二I/O结果存储在结果队列中;
将所述第二I/O结果从根据所述第二传输协议的格式转换成根据所述第一传输协议的格式;以及
使用所述第一传输协议,经由所述第二虚拟存储装置控制器将所述第二I/O结果传送至所述第二主机。
9.根据权利要求1所述的方法,还包括:
从所述第一虚拟存储装置控制器接收第三I/O请求,所述第三I/O请求去往第二存储设备;
确定所述第二存储设备所使用的第三传输协议;
将所述第三I/O请求转换成根据所述第三传输协议的格式;以及
使用所述第三传输协议将所述第三I/O请求传送至所述第二存储设备。
10.一种装置,包括:
与一个或多个主机相关联的一个或多个虚拟存储装置控制器,所述一个或多个虚拟存储装置控制器使用第一传输协议;
与一个或多个存储设备通信的一个或多个存储装置驱动器;
一个或多个处理器,所述一个或多个处理器:
从所述一个或多个虚拟存储装置控制器中的第一虚拟存储装置控制器接收第一输入/输出(I/O)请求,所述第一I/O请求去往所述一个或多个存储设备中的第一存储设备;
确定所述一个或多个存储装置驱动器用来与所述第一存储设备通信的第二传输协议;
将所述第一I/O请求从根据所述第一传输协议的格式转换成根据所述第二传输协议的格式;以及
经由所述一个或多个存储装置驱动器,使用所述第二传输协议将所述第一I/O请求传送至所述第一存储设备。
11.根据权利要求10所述的装置,其中,所述处理器还:
经由所述一个或多个存储装置驱动器,根据所述第二传输协议从所述第一存储设备接收第一I/O结果;
将所述第一I/O结果从根据所述第二传输协议的格式转换成根据所述第一传输协议的格式;以及
使用所述第一传输协议,经由所述第一虚拟存储装置控制器将所述第一I/O结果传送至所述第一主机。
12.根据权利要求10所述的装置,其中,所述第一传输协议是小型计算机接口(SCSI)协议。
13.根据权利要求12所述的装置,其中,所述第一存储设备通过作为光纤通道协议或互联网SCSI(iSCSI)协议中一种的所述第二传输协议被访问。
14.根据权利要求12所述的装置,其中,所述第一存储设备是直接连接存储(DAS)设备或网络连接存储(NAS)设备中的一种。
15.根据权利要求12所述的装置,其中,所述第一存储设备包括独立设备冗余阵列(RAID)。
16.根据权利要求10所述的装置,其中,所述处理器还:
从与第二主机相关联的第二虚拟存储装置控制器接收第二I/O请求;
将来自所述第一虚拟存储装置控制器的所述第一I/O请求和来自所述第二I/O请求的所述第二I/O请求存储在请求队列中;以及
将所述请求队列中的每个I/O请求传送至所述第一存储设备。
17.根据权利要求16所述的装置,其中,所述处理器还:
接收针对所述第二I/O请求的第二I/O结果;
将所述第二I/O结果存储在结果队列中;
将所述第二I/O结果从根据所述第二传输协议的格式转换成根据所述第一传输协议的格式;以及
使用所述第一传输协议,经由所述第二虚拟存储装置控制器将所述第二I/O结果传送至所述第二主机。
18.根据权利要求10所述的装置,其中,所述处理器还:
从所述第一虚拟存储装置控制器接收第三I/O请求,所述第三I/O请求去往第二存储设备;
确定所述第二存储设备所使用的第三传输协议;
将所述第三I/O请求转换成根据所述第三传输协议的格式;以及
使用所述第三传输协议将所述第三I/O请求传送至所述第二存储设备。
19.一种系统,包括:
一个或多个主机设备;
一个或多个存储设备;以及
虚拟接口卡,所述虚拟接口卡:
将第一虚拟存储装置控制器与所述一个或多个主机中的第一主机相关联,其中,所述第一虚拟存储装置控制器使用第一传输协议;
使用所述第一传输协议从所述第一虚拟存储装置控制器接收第一输入/输出(I/O)请求,所述第一I/O请求去往所述一个或多个存储设备中的第一存储设备;
确定所述第一存储设备所使用的第二传输协议;
将所述第一I/O请求从根据所述第一传输协议的格式转换成根据所述第二传输协议的格式;以及
使用所述第二传输协议将所述第一I/O请求传送至所述第一存储设备。
20.根据权利要求19所述的系统,其中,所述虚拟接口卡还:
根据所述第二传输协议从所述第一存储设备接收第一I/O结果;
将所述第一I/O结果从根据所述第二传输协议的格式转换成根据所述第一传输协议的格式;以及
使用所述第一传输协议,经由所述第一虚拟存储装置控制器将所述第一I/O结果传送至所述第一主机。
21.根据权利要求19所述的系统,其中,所述第一传输协议是小型计算机系统接口(SCSI)协议。
22.根据权利要求21所述的系统,其中,所述第一存储设备通过作为光纤通道协议或互联网SCSI(iSCSI)协议中一种的所述第二传输协议被访问。
23.根据权利要求21所述的系统,其中,所述第一存储设备是直接连接存储(DAS)设备或网络连接存储(NAS)设备中的一种。
24.根据权利要求21所述的系统,其中,所述第一存储设备包括独立设备冗余阵列(RAID)。
25.根据权利要求21所述的系统,其中,所述虚拟接口卡还:
从与第二主机相关联的第二虚拟存储装置控制器接收第二I/O请求;
将来自所述第一虚拟存储装置控制器的所述第一I/O请求和来自所述第二I/O请求的所述第二I/O请求存储在请求队列中;以及
将所述请求队列中的每个I/O请求传送至所述第一存储设备。
26.根据权利要求25所述的系统,其中,所述虚拟接口卡进一步:
接收针对所述第二I/O请求的第二I/O结果;
将所述第二I/O结果存储在结果队列中;
将所述第二I/O结果从根据所述第二传输协议的格式转换成根据所述第一传输协议的格式;以及
使用所述第一传输协议,经由所述第二虚拟存储装置控制器将所述第二I/O结果传送至所述第二主机。
27.根据权利要求21所述的系统,其中,所述虚拟接口卡还:
从所述第一虚拟存储装置控制器接收第三I/O请求,所述第三I/O请求去往第二存储设备;
确定所述第二存储设备所使用的第三传输协议;
将所述第三I/O请求转换成根据所述第三传输协议的格式;以及
使用所述第三传输协议将所述第三I/O请求传送至所述第二存储设备。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/499,514 US9733845B2 (en) | 2014-09-29 | 2014-09-29 | Shared virtualized local storage |
US14/499,514 | 2014-09-29 | ||
PCT/US2015/051352 WO2016053671A1 (en) | 2014-09-29 | 2015-09-22 | Shared virtualized local storage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107077447A true CN107077447A (zh) | 2017-08-18 |
CN107077447B CN107077447B (zh) | 2020-07-07 |
Family
ID=54289084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580052234.3A Active CN107077447B (zh) | 2014-09-29 | 2015-09-22 | 共享的虚拟化本地存储装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9733845B2 (zh) |
EP (1) | EP3201753B1 (zh) |
CN (1) | CN107077447B (zh) |
WO (1) | WO2016053671A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107688441A (zh) * | 2017-08-31 | 2018-02-13 | 郑州云海信息技术有限公司 | 一种存储虚拟化的实现方法及装置 |
CN109582247A (zh) * | 2018-12-10 | 2019-04-05 | 浪潮(北京)电子信息产业有限公司 | 一种主机到存储系统io的传输方法及存储系统 |
WO2019119419A1 (zh) * | 2017-12-22 | 2019-06-27 | 李庆远 | 共享存储的操作系统 |
WO2019119418A1 (zh) * | 2017-12-22 | 2019-06-27 | 李庆远 | 共享存储系统 |
CN112153129A (zh) * | 2020-09-11 | 2020-12-29 | 苏州浪潮智能科技有限公司 | 一种改进的双协议路径方法及装置 |
CN113810467A (zh) * | 2021-08-13 | 2021-12-17 | 控福(上海)智能科技有限公司 | 基于实时共享存储的物联传输通讯方法及微型装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9058120B2 (en) * | 2011-11-09 | 2015-06-16 | International Business Machines Corporation | Setting optimal space allocation policy for creating dependent snapshots to enhance application write performance and reduce resource usage |
US10437747B2 (en) | 2015-04-10 | 2019-10-08 | Rambus Inc. | Memory appliance couplings and operations |
CN109101186A (zh) * | 2017-06-20 | 2018-12-28 | 上海宝存信息科技有限公司 | 数据储存装置与数据储存方法 |
US11082494B2 (en) * | 2019-12-05 | 2021-08-03 | Western Digital Technologies, Inc. | Cross storage protocol access response for object data stores |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999034297A1 (en) * | 1997-12-31 | 1999-07-08 | Crossroads Systems, Inc. | Storage router and method for providing virtual local storage |
CN1323422A (zh) * | 1998-10-09 | 2001-11-21 | 奥本维夫系统公司 | 用于群集系统的安全的完全共享文件存储 |
EP1324181A2 (en) * | 2001-12-28 | 2003-07-02 | Hewlett-Packard Company | System and method for managing access to multiple devices in a partitioned data library |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6785744B2 (en) * | 2001-08-08 | 2004-08-31 | International Business Machines Corporation | Mapping SCSI medium changer commands to mainframe-compatible perform library function commands |
US6925533B2 (en) | 2003-05-07 | 2005-08-02 | International Business Machines Corporation | Virtual disk image system with local cache disk for iSCSI communications |
US20060206666A1 (en) | 2005-03-11 | 2006-09-14 | Dell Products L.P. | System and method for remotely accessible local virtual storage |
CN103262034B (zh) | 2010-10-28 | 2016-08-17 | 惠普发展公司,有限责任合伙企业 | 将数据分区至虚拟机 |
US8819230B2 (en) | 2011-11-05 | 2014-08-26 | Zadara Storage, Ltd. | Virtual private storage array service for cloud servers |
US9207882B2 (en) | 2012-12-18 | 2015-12-08 | Cisco Technology, Inc. | System and method for in-band LUN provisioning in a data center network environment |
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 |
-
2014
- 2014-09-29 US US14/499,514 patent/US9733845B2/en active Active
-
2015
- 2015-09-22 EP EP15778107.1A patent/EP3201753B1/en active Active
- 2015-09-22 WO PCT/US2015/051352 patent/WO2016053671A1/en active Application Filing
- 2015-09-22 CN CN201580052234.3A patent/CN107077447B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999034297A1 (en) * | 1997-12-31 | 1999-07-08 | Crossroads Systems, Inc. | Storage router and method for providing virtual local storage |
CN1323422A (zh) * | 1998-10-09 | 2001-11-21 | 奥本维夫系统公司 | 用于群集系统的安全的完全共享文件存储 |
EP1324181A2 (en) * | 2001-12-28 | 2003-07-02 | Hewlett-Packard Company | System and method for managing access to multiple devices in a partitioned data library |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107688441A (zh) * | 2017-08-31 | 2018-02-13 | 郑州云海信息技术有限公司 | 一种存储虚拟化的实现方法及装置 |
WO2019119419A1 (zh) * | 2017-12-22 | 2019-06-27 | 李庆远 | 共享存储的操作系统 |
WO2019119418A1 (zh) * | 2017-12-22 | 2019-06-27 | 李庆远 | 共享存储系统 |
CN109582247A (zh) * | 2018-12-10 | 2019-04-05 | 浪潮(北京)电子信息产业有限公司 | 一种主机到存储系统io的传输方法及存储系统 |
CN112153129A (zh) * | 2020-09-11 | 2020-12-29 | 苏州浪潮智能科技有限公司 | 一种改进的双协议路径方法及装置 |
CN112153129B (zh) * | 2020-09-11 | 2023-02-24 | 苏州浪潮智能科技有限公司 | 一种改进的双协议路径方法及装置 |
CN113810467A (zh) * | 2021-08-13 | 2021-12-17 | 控福(上海)智能科技有限公司 | 基于实时共享存储的物联传输通讯方法及微型装置 |
Also Published As
Publication number | Publication date |
---|---|
US20160092126A1 (en) | 2016-03-31 |
EP3201753B1 (en) | 2020-11-25 |
EP3201753A1 (en) | 2017-08-09 |
US9733845B2 (en) | 2017-08-15 |
WO2016053671A1 (en) | 2016-04-07 |
CN107077447B (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107077447A (zh) | 共享的虚拟化本地存储装置 | |
JP6273353B2 (ja) | 計算機システム | |
JP6074056B2 (ja) | 計算機システムおよびデータ制御方法 | |
US10257273B2 (en) | Systems, methods and devices for RDMA read/write operations | |
CN107667341B (zh) | 用于向计算节点动态地分配存储资源的方法和装置 | |
US8966172B2 (en) | Processor agnostic data storage in a PCIE based shared storage enviroment | |
US9330003B1 (en) | Intelligent adapter for maintaining cache coherency | |
WO2017019901A1 (en) | Multiprocessing within a storage array system executing controller firmware designed for a uniprocessor environment | |
TW201543366A (zh) | 用於支援在主機上運行的多個虛擬機器的nvme控制器虛擬化的系統和方法 | |
US11561915B2 (en) | Remote sharing of directly connected storage | |
US11606429B2 (en) | Direct response to IO request in storage system having an intermediary target apparatus | |
US9189166B2 (en) | Multi-host SATA controller | |
JP6703600B2 (ja) | 計算機システム及びサーバ | |
JP5288875B2 (ja) | ストレージシステム | |
US11487432B2 (en) | Direct response to IO request in storage system with remote replication | |
US11003357B2 (en) | Managing single path communication between a host and a storage system | |
US20230342059A1 (en) | Managing host connectivity during non-disruptive migration in a storage system | |
US9477414B1 (en) | Methods and systems for improved caching with data recovery | |
US11940938B2 (en) | Hypervisor bridging of different versions of an IO protocol | |
US11947805B2 (en) | Load balancing using storage system driven host connectivity management | |
US11922073B2 (en) | Non-disruptive updating of virtual tape emulation applications | |
US11908494B2 (en) | Controlling status indicators for drive bays of a drive bay enclosure of a storage system | |
US11366756B2 (en) | Local cached data coherency in host devices using remote direct memory access | |
JP2018032061A (ja) | ストレージ制御装置、およびストレージシステム | |
TW201821969A (zh) | 根複合體管理方法及根複合體管理系統 |
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 |