CN104903874A - 大规模数据储存和递送系统 - Google Patents
大规模数据储存和递送系统 Download PDFInfo
- Publication number
- CN104903874A CN104903874A CN201380058166.2A CN201380058166A CN104903874A CN 104903874 A CN104903874 A CN 104903874A CN 201380058166 A CN201380058166 A CN 201380058166A CN 104903874 A CN104903874 A CN 104903874A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- request
- array
- clm
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0658—Controller construction 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/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/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/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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- 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
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/314—In storage network, e.g. network attached cache
-
- 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/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
所描述的这项技术总地涉及被配置来除了其他功能之外还实现Web规模的计算服务、数据储存和数据呈现的数据管理系统。Web规模的计算服务是计算技术和服务行业的增长最快的部分。一般来说,web规模是指可靠的、透明的、可扩展的、安全的而且成本有效的计算平台。示例性的web规模的平台包括效用计算、按需基础设施、云计算、软件即服务(SaaS)以及平台即服务(PaaS)。消费者越来越依赖这样的web规模的服务,特别是云计算服务,并且企业逐步地迁移应用程序以通过web规模的平台进行操作。
Description
相关申请的交叉引用:本申请要求2012年9月6日提交的美国临时申请No.61/697,711和2013年3月15日提交的美国临时申请No.61/799,487的权益,这些申请的内容整个地通过引用被并入,就如同在本文中进行了充分阐述一样。
背景技术
Web规模的计算服务是计算技术和服务行业的增长最快的部分。一般来说,web规模是指可靠的、透明的、可扩展的(scalable)、安全的而且成本有效的计算平台。示例性的web规模的平台包括效用计算、按需基础设施、云计算、软件即服务(SaaS)以及平台即服务(PaaS)。消费者越来越依赖这样的web规模的服务,特别是云计算服务,并且企业逐步地迁移应用程序以通过web规模的平台进行操作。
这一需求的增加暴露出了由扩展计算装置和网络处理web规模的应用程序和数据请求而造成的挑战。例如,web规模的数据中心通常具有高速缓存一致性问题,并且不具有保持一致、可靠而且同时进行划分的能力。以成本有效的方式在这样的大规模上管理这些问题的尝试已经证明是无效的。例如,目前的解决方案通常使用现有的消费者或企业设备和装置,导致资本成本与运营成本之间的权衡。例如,企业设备通常导致资本成本较高、运营成本较低的系统,而消费者设备通常导致资本成本较低、运营成本较高的系统。在目前的技术环境下,微小的成本差异对于基于web的服务而言可能是成功与失败之间的差异。因此,存在这样的需要,即提供使得可以成本有效地扩展能够满足web规模的服务的需求的应用程序和数据管理的自定义设备和装置。
发明内容
本公开不限于所描述的特定系统、装置和方法,因为这些可能有所改变。本说明书中所使用的术语仅仅是出于描述特定版本或实施方案的目的,并非意图限制范围。
如本文件中所使用的,单数形式“一(a、an)”和“所述(the)”包括复数指代,除非上下文另有明确指示。除非另有定义,否则本文中所使用的所有的技术术语和科学术语都具有与本领域的普通技术人员通常理解的意义相同的意义。本公开中的任何内容都不应被解释为承认本公开中所描述的实施方案由于在先发明而无权先于这样的公开内容。如本文件中所使用的,术语“包括”意指“包括,但不限于”。
在实施方案中,数据储存阵列可以包括可操作地耦合到多个计算装置的至少一个阵列存取模块,所述至少一个阵列存取模块被配置来:从所述多个计算装置接收数据请求,所述数据请求包括读请求和写请求;格式化所述数据请求以供发送到数据储存系统,所述数据储存系统包括高速缓存组件和持久储存组件;并且响应于数据请求格式化输出数据以供呈现给所述多个计算装置;以及可操作地耦合到所述至少一个阵列存取模块和所述持久储存组件的至少一个高速缓存查找模块,所述至少一个高速缓存查找模块使所述高速缓存组件的至少一部分布置在其中,其中所述至少一个高速缓存查找模块被配置来:从所述至少一个阵列存取模块接收所述数据请求;在所述数据储存系统中查找与所述数据请求相关联的元数据;从所述数据储存系统读取与读数据请求相关联的输出数据以供发送到所述至少一个阵列存取模块;并且将与写数据请求相关联的输入数据储存在所述数据储存系统中。
在实施方案中,一种对于多个计算装置管理对储存在数据储存阵列中的数据的存取的方法,所述方法包括:将至少一个阵列存取模块可操作地耦合到多个计算装置;在所述至少一个阵列存取模块从所述多个计算装置接收数据请求,所述数据请求包括读请求和写请求;所述至少一个阵列存取模块格式化所述数据请求以供发送到数据储存系统,所述数据储存系统包括高速缓存组件和持久储存组件;所述至少一个阵列存取模块响应于数据请求格式化输出数据以供呈现给所述多个计算装置;将至少一个高速缓存查找模块可操作地耦合到所述至少一个阵列存取模块和所述持久存储组件,所述至少一个高速缓存查找模块使所述高速缓存组件的至少一部分布置在其中;在所述至少一个高速缓存查找模块从所述至少一个阵列存取模块接收所述数据请求;所述至少一个高速缓存查找模块在所述数据储存系统中查找与所述数据请求相关联的元数据;所述至少一个高速缓存查找模块从所述数据储存系统读取与读数据请求相关联的输出数据以供发送到所述至少一个阵列存取模块;并且所述至少一个高速缓存查找模块将与写数据请求相关联的输入数据储存在所述数据储存系统中。
附图说明
图1A和1B描绘根据某些实施方案的示例性数据管理系统。
图2A-G描绘根据多个实施方案的示例性阵列存取模块(AAM)。
图3A-D描绘根据多个实施方案的示例性高速缓存查找模块(CLM)。
图4A描绘根据第一实施方案的示例性数据储存阵列的一部分的顶视图。
图4B描绘根据第一实施方案的示例性数据储存阵列的一部分的介质端视图。
图4C描绘根据第一实施方案的示例性数据储存阵列的一部分的电缆端视图。
图4D描绘根据第一实施方案的示例性数据储存阵列的一部分的侧视图。
图4E描绘根据第二实施方案的示例性数据储存阵列的一部分的顶视图。
图4F描绘根据第三实施方案的示例性数据储存阵列的一部分的顶视图。
图4G描绘根据第四实施方案的示例性数据储存阵列的一部分的顶视图。
图4H描绘根据某些实施方案的示例性系统控制模块。
图5A描绘根据第一实施方案的示例性持久储存元件。
图5B描绘根据第二实施方案的示例性持久储存元件。
图5C描绘根据第三实施方案的示例性持久储存元件。
图6A描绘根据第一实施方案的示例性闪存卡。
图6B描绘根据第二实施方案的示例性闪存卡。
图6C描绘根据第三实施方案的示例性闪存卡。
图7A描绘根据实施方案的AAM与CLM之间的连接。
图7B描绘根据实施方案的示例性CLM。
图7C描绘根据实施方案的示例性AAM。
图7D描绘根据实施方案的示例性CLM。
图7E描绘CLM与多个持久储存装置之间的示例性连接。
图7F描绘根据实施方案的CLM、AAM和持久储存器之间的示例性连接。
图7G描绘根据实施方案的CLM与持久储存器之间的示例性连接。
图8A和8B描绘根据实施方案的执行读输入/输出(IO)请求的示例性方法的流程图。
图9A-9C描绘根据实施方案的执行写IO请求的示例性方法的流程图。
图10描绘根据实施方案的执行比较和交换(CAS)IO请求的示例性方法的流程图。
图11描绘根据第二实施方案的从持久储存器检索数据的示例性方法的流程图。
图12描绘根据某些实施方案的示例性正交RAID(独立磁盘随机阵列)配置。
图13A描绘根据实施方案的正交RAID配置中的示例性无故障写入。
图13B描绘根据实施方案的使用奇偶校验模块的示例性数据写入。
图13C描绘根据实施方案的示例性蜂窝页面到高速缓存数据写入。
图14A和14B描绘根据某些实施方案的使用逻辑块寻址(LBA)的示例性数据储存配置。
图14C描绘根据实施方案的示例性LBA映射配置1410。
图15描绘根据实施方案的从AAM到持久储存器的数据的流程图。
图16描绘根据某些实施方案的地址映射。
图17描绘根据某些实施方案的示例性持久储存元件的至少一部分。
图18描绘从CLM到持久储存装置(PSM)以及从PSM到CLM的RAID的示例性配置。
图19描绘根据实施方案的示例性电源分配和保持单元(PDHU)。
图20描绘根据实施方案的示例性系统堆栈。
图21A描绘根据实施方案的示例性数据连接层面(plane)。
图21B描绘根据第二实施方案的示例性控制连接层面。
图22A描绘根据实施方案的持久储存装置上的示例性数据飞行(data-in-flight)数据流。
图22B描绘根据第二实施方案的持久储存装置上的示例性数据飞行数据流。
图23描绘根据实施方案的示例性数据可靠性编码框架。
图24A-25B描绘根据某些实施方案的示例性读数据操作和写数据操作。
图25描绘根据某些实施方案的用于重新映射到邮箱/门铃区域的寻址的非透明桥接的图示说明。
图26描绘根据某些实施方案的从CLM写到PSM的示例性寻址方法。
图27A和图27B分别描绘读事务的第一部分和第二部分的示例性流程图。
图27C描绘根据某些实施方案的写事务的示例性流程图。
图28A和28B描绘根据某些实施方案的示例性数据管理系统单元。
图29描绘根据实施方案的例示性的web规模的数据管理系统。
图30描绘根据特定实施方案的数据管理系统内的数据存取的示例性流程图。
图31描绘根据实施方案的示例性再分配层。
图32A描绘根据实施方案的对于大规模数据管理系统的示例性写事务。
图32B描绘根据实施方案的对于大规模数据管理系统的示例性读事务。
图32C和32D分别描绘根据实施方案的对于大规模数据管理系统的示例性比较和交换(CAS)事务的第一部分和第二部分。
图33A描绘根据第一实施方案的示例性仓库(storage magazine)。
图33B描绘根据第一实施方案的示例性仓库室(storage magazine chamber)。
图34描绘用于将辅助储存器连接到高速缓存的示例性系统。
图35A描绘根据实施方案的示例性仓库的顶视图。
图35B描绘根据实施方案的示例性仓库的介质端视图。
图35C描绘根据实施方案的示例性仓库的电缆端视图。
图36A描绘根据实施方案的示例性数据服务核心的顶视图。
图36B描绘根据实施方案的示例性数据服务核心的介质端。
图36C描绘根据实施方案的示例性数据服务核心的电缆端顶视图。
图37描绘根据实施方案的示例性室控制板。
图38描绘根据实施方案的示例性RX刀片(RX-blade)。
具体实施方式
在下面的详细描述中,参照形成详细描述的一部分的附图。在附图中,类似的符号通常标识类似的组件,除非上下文另有指示。具体实施方式、附图和权利要求书中所描述的示例性实施方案并非意在于限制。在不脱离本文中所呈现的主题的精神或范围的情况下,可以利用其他实施方案,并且可以进行其他改变。将容易理解,如本文中概括性地描述的并且在附图中图示说明的本公开的各方面可以按多种不同的配置布置、替换、组合、分离和设计,所有这些都在本文中有明确的设想。
本文中所描述的系统使得能够实现:
A.单一的物理储存机架(chassis),其使得能够在权衡利用结构中的商业成品组件的同时通过使用自定义构架和软件解决方案来构造任何现有解决方案10倍大的DRAM高速缓存层。该系统可以权衡利用非常大的高速缓存(内部开销之后的100DIMM+有效DRAM高速缓存)来使得能够实现可以包含数十秒到数十分钟的预期的外部客户端(用户)存取的高速缓存大小,从而使得能够大幅度地减少对于任何后端储存系统的IO操作。因为高速缓存大小可以极其大,所以外部存取的空间局部性将被在其期间内容将在DRAM高速缓存中的时间段捕捉的可能性大得多。被频繁覆写的数据,诸如相对小的日志或同步结构,非常有可能仅存在于DRAM高速缓存层中。
B.高速缓存中可以利用的大量存储器模块可以使得能够实现大容量的DRAM模块,或者使得能够只是实现大量主流密度DRAM模块——这依所期望的高速缓存容量而定。
C.如此提供的DRAM高速缓存的规模和时间覆盖使得能够实现效率高得多的查找表系统,其中数据可以用更大的元素表示,因为粒度更精细的组件可以完全在高速缓存中被操作,而完全不需要对后端储存器进行本机(natively)操作。查找表的大小的缩小补偿了DRAM高速缓存的大小,因为查找表中的元素的数量与利用1KB至4KB的粒度(与之相对比,在该系统中,粒度为16KB+)的传统的闪存系统相比大幅度减少。元素的减少建设性地使得能够通过缩小表大小来使得高速缓存保持在空间中被重新得回。结果是使用DRAM的效率高得多、同时通过并行性提供更高性能的系统。
D.所启用的DRAM高速缓存的大小可以用于使得系统(诸如利用基于机械盘的储存器的这个系统)能够建设性地胜过使用闪存SSD的储存阵列架构,因此结合闪存解决方案应用这样的DRAM高速缓存系统使得能够实现对于海量共享DRAM高速缓存的异常低的等待时间和高带宽,同时保持对于在DRAM高速缓存中未找到的数据的亚毫秒存取。
E.一种系统,其中4K的外部读操作在高速缓存遗漏时通常可以通过对后端闪存的存取来得到服务,而不失去对于数据的RAID保护。
F.鉴于现有的DRAM高速缓存解决方案的大小的限制是众所周知的,由于仅几个DRAM DIMM可以被使用,并且因为这些现有的解决方案一般权衡利用“本地电源支持”装置和介质来储存内容,所以它们比可供计算服务器使用的高容量DRAM DIMM小得多。该系统使得存储器模块的数量能够多达5倍以上(通过更多服务器作为单个高速缓存层的一部分进行操作),并且使得这些模块的密度能够提高4倍以上(通过将电源备份移至单独的可服务单元)。
G.一种用于通过使用商业成品组件构造大型高速缓存系统的系统,所述大型高速缓存系统用作不仅便利高速缓存层的容量增大、而且还便利高速缓存层的性能也提高的RAID阵列,所述高速缓存层跨全都可以对系统中的数据或DRAM高速缓存中的任何一个进行对称存取的若干个双活控制器(active-active controller)被共享。
H.一种用于通过使用独立装置冗余阵列方法提高一组服务器的可靠性的系统,其中跨该组服务器储存的数据可以按来自于描述该数据的元数据的不同的RAID布置进行储存。运行这些处理的服务器这样进行操作,即,每个服务器对于选定任务充当主导者(主要服务器),对于其他任务充当跟从者(备份副本)。当任何服务器发生故障时,任务可以由阵列的其余成员拾起——从而防止一个服务器中的软件发生故障致使系统崩溃。
I.因为服务器上的软件对于所有操作都是通过API进行通信的,所以每个服务器上的软件版本可能是不同的——从而使得能够在服务中升级能力……而不管是升级服务器内的软件,还是用系统中的更新的服务器更换一个服务器。
J.一种用于跨若干个并行控制器分配关于储存复合体的元数据以使得若干个所有的前端控制器都可以对跨系统储存的任何数据进行对称存取、同时可以对…进行完全存取的方法。
K.虽然被设计为与闪存一起使用的储存阵列最小化控制器中的DRAM并且主要依赖于底层闪存介质的后端性能,但是该系统可以权衡利用非常大的高速缓存(100DIMM+有效高速缓存)来使得DRAM能够以比闪存介质的可能的等待时间低得多的等待时间对于高速缓存中的数据递送高得多的吞吐量。
所描述的这项技术总地涉及被配置来除了其他功能之外还实现web规模的计算服务、数据储存和数据呈现的数据管理系统。具体地讲,实施方案提供一种数据管理系统,在该数据管理系统中,数据可以储存在数据储存阵列中。储存在数据储存阵列内的数据可以通过一个或多个用作阵列存取模块(AAM)的逻辑或计算元件来进行存取。AAM可以接收客户端数据输入/输出(I/O或IO)请求,包括读数据、写数据和/或比较和交换数据的请求(例如,值被发送以供与当前储存的值进行比较,如果这些值匹配,则用所提供的值更换当前储存的值)。除了其他内容之外,请求还可以包括与该请求相关联的数据的地址。AAM可以使用用作查找模块(LM)的多个计算机来格式化请求以供呈现给数据储存阵列的储存组件,所述LM可以被配置来对于数据储存阵列提供查找服务。
数据可以储存在高速缓存储存器或持久储存器中的数据储存阵列内。高速缓存储存器可以通过使用被配置为高速缓存模块(CM)的一个或更多个计算元件而实现为高速缓存层,持久储存器可以通过使用被配置为持久储存模块(PSM或“芯片”)的一个或更多个计算元件来实现。根据某些实施方案,LM和CM可以被配置为共享的或同位的模块,该模块被配置为既执行查找功能,又执行高速缓存功能(高速缓存查找模块(CLM))。就这点而论,术语LM和/或CM在本说明书中的使用可以是指LM、CM和/或CLM。例如,LM可以是指CLM的查找功能,和/或CM可以是指CLM的高速缓存功能。在实施方案中,内部表(例如,地址表、逻辑地址表、物理地址表等)可以跨LM和/或CLM被镜像,并且CM和/或CLM可以是受到保护的RAID(独立磁盘随机阵列)以保护数据储存阵列及其表不受单个的LM、CM和/或CLM的故障的影响。
每个CLM可以根据标准服务器板针对软件被配置,但是如本文中的某些实施方案所描述的,可以用作高速缓存和查找引擎两者。高速缓存条目与查找表条目相比可以很大。就这点而论,某些实施方案可以跨若干个CM和/或CLM利用RAID奇偶校验。例如,4+1奇偶校验可以允许CM和/或CLM在不失去来自高速缓存的数据的情况下得到服务。查找表条目可以跨LM和/或CLM被镜像。查找表数据可以被布置为使得每个LM、CM和/或CLM使其镜像数据大致均匀地分配在系统中的其他的LM、CM和/或CLM之间,以使得在LM、CM和/或CLM发生故障的情况下,所有其余的LM、CM和/或CLM仅可以体验到适度的载荷增大(例如,与载荷翻倍完全不同)。
根据某些实施方案,储存阵列系统控制器(“阵列控制器”或者“阵列系统控制器”)中的内部系统元数据可以对于系统元数据的每个分量与“主”CLM和“从”CLM成1+1(镜像)配置进行储存。在一个实施方案中,系统元数据的至少一部分最初包括逻辑到物理表(LPT)。例如,LPT数据可以被分配为使得所有的或者基本上所有的CLM对于LPT事件都遇到相等的载荷,包括主CLM和从CLM两者。
根据某些实施方案,LPT表可以用于同步存取,例如,当写提交并且用于写到持久储存器(闪存)的数据被提交时。例如,每个LPT可以与单个主导者(CLM和/或PSM)和单个跟从者(CLM和/或PSM)相关联。在实施方案中,用于同步主导者(CLM和/或PSM)与跟从者(CLM和/或PSM)之间的更新的命令可以使用PCIe交换机经由邮箱/门铃机制来进行。
根据某些实施方案,潜在的“热点”可通过分配“主导者/跟从者”来避免。非限制性实施例提供获取逻辑地址空间的一部分并且使用它来定义主导者和跟从者两者的映射。例如,通过使用六(6)个低位(low-order)LBA地址位来引用映射表。使用六(6)个位(64个条目)来跨6个iCLM分割映射表,平均来说,可以在每次分割时提供102/3个条目。就这点而论,四(4)个CLM可以具有十一(11)个条目,两(2)个CLM可以具有10个条目,导致在CLM之间有约10%的差异。因为每个LPT被镜像,所以可以生成两(2)个具有集合中的二十二(22)个“条目”的CLM以及四(4)个具有二十一(21)个“条目”的CLM的产出。就这点而论,可以实现CLM的总有效载荷之间的约5%的差异。
根据某些实施方案,CLM可以针对“闪存RAID”进行配置。非限制性实施例提供模块化的“奇偶校验”(例如,单奇偶校验、双奇偶校验、三重奇偶校验等)。在另一个非限制性实施例中,单奇偶校验可以是XOR奇偶校验。更高阶次可以类似于无线通信中的FEC那样进行配置。在进一步的非限制性实施例中,复杂的奇偶校验可以一开始被绕过,以使得单奇偶校验可以用于使得系统变为操作的。
在实施方案中,具有相应的查找表的逻辑地址到LM、CM和/或CLM的映射可以是固定的,并且被数据管理系统中央控制器所知,例如以缩短用于服务请求的等待时间。在实施方案中,LM、CM和/或CLM可以被热服务,例如,随时间提供一个或更多个整卡的更换和/或存储器容量的增大。另外,CLM上的软件可以被配置来促使适当地升级。
当服务于数据存取请求时,AAM可以获得用于从LM存取的高速缓存储存器的位置,该位置可以作为数据存取请求中所存取的地址的主位置进行操作。数据存取请求然后可以经由CM高速缓冲层得到服务。因此,AAM可以经由LM接收服务请求中所请求的数据的位置,并且可以经由CM服务于该请求。如果该数据不位于CM中,则数据储存阵列可以在沿着读路径将该数据发送到请求客户端之前将该数据从PSM读到CM中。
在实施方案中,AAM、LM、CM、CLM和/或PSM(“储存阵列模块”或“储存阵列卡”)可以实现为单独的逻辑或计算元件,包括单独的板(例如,印刷电路板(PCB)、卡、刀片或其他类似的形式)、单独的组装件(例如,服务器刀片)或者它们的任何组合。在其他实施方案中,储存阵列模块中的一个或更多个可以在单个板、服务器、组装件等上实现。每个储存阵列模块可以执行单独的操作系统(OS)映像(image)。例如,每个AAM、CLM和PSM可以在单独的板上被配置,其中每个板在单独的OS映像下进行操作。
在实施方案中,每个储存阵列模块可以包括位于服务器计算装置内的单独的板。在另一个实施方案中,储存阵列模块可以包括布置在多个服务器计算装置内的单独的板。服务器计算装置可以包括至少一个被配置来执行操作系统和软件(诸如数据管理系统控制软件)的处理器。根据某些实施方案所描述的,数据管理系统控制软件可以被配置来执行、管理或者以其他方式控制数据管理系统和/或其组件(诸如LM、CLM、AAM和/或PSM)的各种功能(“数据管理系统功能”)。根据某些实施方案,数据管理系统功能可以通过软件(例如,数据管理系统控制软件、固件或者它们的组合)、硬件或者它们的任何组合来执行。
储存阵列模块可以使用各种通信元件和/或协议来连接,包括,但不限于,通过以太网构架的互联网小型计算机系统接口(iSCSI)、通过无限带宽构架的互联网小型计算机系统接口(iSCSI)、外设组件互连(PCI)、PCI高速(PCIe)、通过PCI高速构架的非易失性存储器高速(NVMe)、通过以太网构架的非易失性存储器高速(NVMe)以及通过无限带宽构架的非易失性存储器高速(NVMe)。
储存阵列模块可以使用各种方法来保护数据。根据某些实施方案,数据管理系统可以包括数据保护系统,这些数据保护系统被配置来使得储存组件(例如,数据储存卡,诸如CM)能够被热服务,例如,以便进行升级或修复。在实施方案中,数据管理系统可以包括一个或更多个被配置来在外部电源故障之后保持电源一段时间的电源保持单元(PHU)。在实施方案中,PHU可以被配置来保持用于CLM和/或PSM的电源。以这种方式,数据管理系统的操作可以由通过PHU提供的内部电源供应器供电,以使得数据操作和数据完整性在失去外部电源期间得以维持。在实施方案中,CSM中所维护的“脏的(dirty)”或修改的数据的量可以小于可以被储存在PSM中的量,例如,在电源故障或其他系统故障的情况下。
在实施方案中,高速缓存层可以被配置来使用各种形式的RAID(独立磁盘随机阵列)保护。RAID的非限制性实施例包括镜像、单奇偶校验、双奇偶校验(P/Q)以及抹除码。例如,当跨多个CM和/或PSM镜像时,镜像的数量可以被配置为比系统可以同时容忍的故障的数量多一个。例如,数据可以用两(2)个镜像来维护,这些镜像中的任何一个在故障的情况下发生覆盖。如果使用三(3)个镜像(“副本”),则任何两(2)个可能发生故障,但没有丢失数据。根据某些实施方案,CM和PSM可以被配置为使用不同形式的RAID。
在实施方案中,可以使用RAID数据编码,其中该数据编码可以是相当均匀的,并且任何最小的读响应集合都可以可靠地以大致均匀的计算载荷产生传输数据。例如,电源载荷可以对于数据存取更加均匀,并且操作者可以具有确定储存冗余度的期望水平(例如,单、双、三重等)的能力。
数据储存阵列可以被配置来使用各种类型的基于奇偶校验的RAID配置。例如,保存数据的N个模块可以用维护储存在这些数据模块中的数据的奇偶性的单个模块保护。在另一个实施例中,第二个模块可以用于差错恢复,并且可以被配置为根据使得能够从丢失任何两个其他的模块中恢复的“Q”编码来储存数据。在进一步的实施例中,可以使用包括一类算法的抹除码,在该类算法中,可以增加纠错模块的数量M以处理更多的故障。在实施方案中,抹除码算法可以被配置为使得纠错模块的数量M多于两个并且少于保存数据的模块的数量N。
根据一些实施方案,数据可以在存储器类内移动。例如,数据可以被“重新编码”,其中将被“重新编码”的数据可以从“高速缓存端”迁移到“闪存端”。“有待闪存写入”的数据可以被放置在存储器中的等待实际的提交到闪存的单独的地方。
根据一些实施方案,数据储存阵列可以被配置来使用关于内部系统操作的各方面的元数据。该元数据可以使用与用于储存在数据储存阵列本身中的数据的任何数据保护方法不同的各种纠错机制来进行保护,或者可以除了用于储存在数据储存阵列本身中的数据的任何数据保护方法之外还使用各种纠错机制来进行保护。例如,元数据可以在数据用4+1奇偶校验RAID进行保护的同时被镜像。
根据某些实施方案,本文中所描述的储存阵列系统可以在底层介质中以整页数据为单位进行操作。例如,闪存装置可以上移至约16千字节的页面(例如,其中装置本机执行任何读或写的内部大小),以使得系统可以以该粒度或者其倍数存取数据。在实施方案中,系统元数据可以储存在由储存介质中的“用户”可寻址空间呈现的储存空间的内部,例如,以免要求产生低级控制器。在实施方案中,高速缓存可以用于使得能够对小于整页的任何存取大小进行存取(例如,读、写、比较和交换等)。读取可以在来自永久储存器的数据可以提供给客户端之前将该数据拉到高速缓存中,除非它在之前从来没有被写过,此刻,可以返回一些默认值(例如,零)。可以将保存在永久储存器中的数据储存单元的片段写入到高速缓存中。如果在用户写入(重写)数据块中的所有扇区之前,数据将被降级到永久储存器,则系统可以从永久储存器读取先前的内容,并且整合它以使得该数据可以发布(post)回到永久储存器。
根据某些实施方案,AAM可以将IO请求聚集成特定的逻辑字节寻址(LBA)单元粒度(例如,256LBA(约128千字节)),和/或可以将IO请求格式化为一个或更多个特定数据大小单元(例如,16千字节)。具体地讲,特定实施方案提供数据储存阵列,在该数据储存阵列中,不存在额外的储存层,或者特定“逻辑卷/驱动器”不使它们的数据储存在另一个储存层中。对于“逻辑卷/驱动器”实施方案,可能不存在另一个储存层。要求数据必须以高速缓存的速度被服务的应用程序和/或在系统关机的情况下不要求数据储存在另一个(通常更慢的)储存层中的应用程序可以例如使用“逻辑卷/驱动器”储存构造。
如上所述,除了高速缓存储存器之外,根据某些实施方案配置的数据储存阵列可以包括通过一个或更多个PSM实现的“持久”储存层。在这样的实施方案中,数据写入可以发布到高速缓存储存器(例如,CM),并且如果必要的话,降级到持久存储器(例如,PSM)。在另一个实施例中,数据可以直接从高速缓存储存器读取,或者如果数据不在高速缓存储存器中,则数据储存阵列可以在沿着读路径将该数据发送到请求客户端之前将该数据从持久储存器读到高速缓存中。“持久储存元件”、“持久储存组件”、PSM或者其类似的变化形式可以是指任何数据源或目的地元件、装置或组件,包括能够持久储存数据的电子、磁和光学数据储存和处理元件、装置和组件。
持久储存层可以跨多个PSM使用各种形式的RAID保护。储存在PSM中的数据可以用与用于储存在CM中的数据的RAID保护不同的RAID保护来进行储存。在实施方案中,PSM可以将数据储存在一个或更多个RAID盘串中。在另一个实施方案中,当数据在高速缓存中(例如,储存在CM中)时,与当数据储存在永久储存器中(例如,在PSM中)时相比,数据可以以正交的方式被保护。根据某些实施方案,数据可以储存在以与储存在PSM中的数据正交的方式保护的CM RAID中。以这种方式,可以在每个储存层实现成本和性能权衡,同时例如在任一层或两个层中的组件处于故障状态的时间段期间,在CM与PSM之间的链路上具有类似的带宽。
根据某些实施方案,数据管理系统可以被配置来实现用于储存(写入)和检索(读取)数据(包括从被配置来从LM获得数据的位置的AAM接收存取数据的请求)的方法。在读操作期间,LM可以从AAM接收数据请求,并且操作来在由一组CM形成的受到保护的高速缓存中找出(locate)数据。在实施方案中,受到保护的高速缓存可以是RAID保护的高速缓存。在另一个实施方案中,受到保护的高速缓存可以是动态随机存取存储器(DRAM)高速缓存。如果LM在受到保护的高速缓存中找出数据,则AAM可以从存储该数据的一个CM或多个CM读取该数据。如果LM在高速缓存中没有找到数据,则在服务于该事务之前,LM可以操作来将来自通过一组PSM实现的持久储存器的数据加载到一个CM或多个CM中。AAM然后可以从这个或这些CM读取数据。对于写事务,AAM可以将写入发布到CM中的受到保护的高速缓存中。
根据某些实施方案,CM中的数据可以与PSM正交地储存。就这点而论,多个CM可以用于每个请求,并且单个PSM可以用于更小的读存取。
在实施方案中,数据管理系统组件之间的全部的或一些数据传送可以以“发布式”写入的形式来执行。例如,使用“邮箱”或“门铃”递送传入的消息以及它们已经例如作为读取而到达的带有标记的消息是一个综合的操作,该操作还可以包括响应。读操作固有的寻址要求对于发布式写入是不需要的。以这种方式,当跨数据管理系统通信综合体(例如,PCIe综合体)不利用读取时,数据传送更加简单,并且效率更高。在实施方案中,可以通过发送请求可以稍后履行的响应的消息来执行读取。
图1A和1B描绘根据某些实施方案的示例性数据管理系统。如图1A中所示,数据管理系统可以包括一个或更多个客户端110,客户端110可以与数据储存阵列105可操作地通信。客户端110可以包括各种计算装置、网络以及其他数据消费者。例如,客户端110可以包括,但不限于,服务器、个人计算机(PC)、膝上型计算机、移动计算装置(例如,平板计算装置、智能电话等)、储存区域网络(SAN)以及其他数据储存阵列105。客户端110可以使用各种连接协议、拓扑和通信设备与数据储存阵列105进行可操作的通信。例如,如图1A中所示,客户端110可以通过交换机构架102a连接到数据储存阵列105。在实施方案中,交换机构架102a可以包括布置在网络中的一个或更多个物理交换机和/或可以直接连接到储存阵列105的连接中的一个或更多个。
值得注意的是,如本文中所使用的“a”和“b”和“c”以及类似的命名的意图是表示任何正整数的变量。因此,例如,如果实现对于n=6CLM 130设置值,则整个集合的CLM 130可以包括CLM 130-1、130-2、130-3、130-4、130-5和130-6。实施方案在这个背景下不受限制。
在一个实施方案中,客户端110可以包括具有将数据请求(包括写请求、读请求、比较和交换请求等)发到数据储存阵列105的功能的任何系统和/或装置。在实施方案中,客户端110可以被配置来使用下列通信协议和/或拓扑中的一个或更多个与数据储存阵列105进行通信:通过以太网构架的互联网小型计算机系统接口(iSCSI)、通过无限带宽构架的互联网小型计算机系统接口(iSCSI)、外设组件互连(PCI)、PCI高速(PCIe)、通过PCI高速构架的非易失性存储器高速(NVMe)、通过以太网构架的非易失性存储器高速(NVMe)以及通过无限带宽构架的非易失性存储器高速(NVMe)。本领域的技术人员将意识到,本发明不限于前述协议和/或构架。
数据储存阵列105可以包括一个或更多个AAM 125a-125n。AAM 125a-125n可以被配置来使用前述协议和/或拓扑中的一个或更多个与各种客户端110进行接口连接。AAM125a-125n可以可操作地耦合到布置在高速缓存层140中的一个或更多个CLM 130a-130n。CLM 130a-130n可以包括单独的CM、LM、CLM以及它们的任何组合。
CLM 130a-130n可以被配置来除了其他功能之外将数据和/或元数据储存在高速缓存层140中并且提供数据查找服务,诸如元数据查找服务。元数据可以包括,但不限于,块元数据、文件元数据、结构元数据和/或对象元数据。CLM 130a-130n可以包括各种存储器和数据储存元件,包括,但不限于,双列直插存储器模块(DIMM),DIMM包含动态随机存取存储器(DRAM)和/或其他存储器类型、基于闪存的存储器元件、硬盘驱动器(HDD)以及可操作来对IO请求和数据储存过程进行处理的处理器核心。CLM 130a-130n可以被配置成板(例如,印刷电路板(PCB)、卡、刀片或其他类似的形式)、单独的组装件(例如,服务器刀片)或者它们的任何组合。根据某些实施方案,CLM 130a-130n上的一个或更多个存储器元件可以操作来在数据储存阵列105内提供高速缓存。在实施方案中,高速缓存层140内的高速缓存条目可以跨多个CLM 130a-130n分散。在这样的实施方案中,表条目可以跨多个CLM 130a-130n被划分,诸如跨六(6)个CLM被划分,以使得高速缓存条目的1/6不在特定的CLM中,因为高速缓存条目在其他的五(5)个CLM中。在另一个实施方案中,表(例如,地址表、LPT表等)可以在“主”和“从”CLM 130a-130n中进行维护。
如图1B中所示,每个AAM 125a-125n可以可操作地耦合到一些或全部的CLM130a-130n,并且每个CLM可以可操作地耦合到一些或全部的PSM 120a-120n。因此,CLM130a-130n可以充当AAM 125a-125n与储存在持久储存层150内的数据之间的接口。根据某些实施方案,数据储存阵列105可以被配置为使得储存在储存器PSM 120a-120n内的持久储存层150中的任何数据可以通过高速缓存层140存取。
在实施方案中,数据写入可以发布到高速缓存层140,并且基于一种或更多种因素降级到持久储存层150,所述因素包括,但不限于,数据的年龄、数据的使用频率、与数据相关联的客户端计算装置、数据的类型(例如,文件类型、数据的典型用途等)、数据的大小和/或它们的任何组合。在另一个实施方案中,针对储存在持久储存层150中的不在高速缓存层140中的数据的读请求可以从PSM 120a-120n中的持久储存器获得,并且在该数据提供给客户端110之前被写到CLM 130a-130n。就这点而论,某些实施方案提供,在数据未被(至少临时)储存在高速缓存层140中的情况下,数据可以不直接写到持久储存层150或者从持久储存层150被读取。数据储存阵列组件,诸如AAM 125a-125n,可以与CLM 130a-130n交互,CLM 130a-130n对与PSM 120a-120n的交互进行处理。以这种方式使用高速缓存,除了其他方面之外,还提供对于高速缓存层140中的数据的存取的缩短的等待时间,同时提供统一的控制,因为系统数据储存阵列105内部的更高级别的组件(诸如AAM 125a-125n)以及数据储存阵列外部的客户端110能够在不知道高速缓存和/或其特定操作的情况下进行操作。
AAM 125a-125n可以被配置来通过一个或更多个数据端口与客户端计算装置110进行通信。例如,AAM 125a-125n可以可操作地耦合到一个或更多个以太网交换机(未示出),诸如架顶(TOR)交换机。AAM 125a-125n可以操作来从客户端计算装置110接收IO请求并且用数据储存阵列105的其他的硬件组件对低级数据操作进行处理以完成IO事务。例如,AAM 125a-125n可以响应于读请求格式化从CLM 130a-130n接收的数据以供呈现给客户端计算装置110。在另一个实施例中,AAM 125a-125n可以操作来将客户端IO请求聚集成具有特定大小的单元操作,诸如256个逻辑块地址(LBA)(约128千字节)单元操作。如下面更详细地描述的,AAM 125a-125n可以包括基于处理器的组件和基于集成电路的组件,所述基于处理器的组件被配置来管理对于客户端计算装置110的数据呈现,所述基于集成电路的组件被配置来与数据储存阵列105的其他组件(诸如PSM 120a-120n)进行接口连接。
根据某些实施方案,具有处理器(“处理器模块”)(诸如AAM 125a-125n、CLM130a-130n和/或PSM 120a-120n)的每个数据储存阵列105模块可以包括用于在每对处理器模块之间进行通信的至少一个PCIe通信端口。在实施方案中,这些处理器模块PCIe通信端口可以被配置成本领域的普通技术人员已知的非透明(NT)模式。例如,NT端口可以提供两个处理器模块之间的NT通信桥(NTB),该桥的两侧都具有它们自己的独立的地址域。该桥的一侧的处理器模块可以不具有对于该桥的另一侧的处理器模块的存储器或IO空间的存取权限或者不具有可见性。为了实现跨NTB的通信,每个端点(处理器模块)可以具有暴露于它们的本地系统(例如,寄存器、存储器位置等)的部分的开口。在实施方案中,地址映射可以被配置为使得每个发送处理器可以写到每个接收处理器中的专用存储器空间中。
各种形式的数据保护可以用于数据储存阵列105内。例如,储存在CLM 130a-130n内的元数据可以内部地被镜像。在实施方案中,持久储存器可以使用N+M RAID保护,该保护可以使得数据储存阵列105除了其他方面之外还能够容忍持久储存组件(例如,PSM和/或其组件)的多次故障。例如,N+M保护可以被配置成9+2RAID保护。在实施方案中,高速缓存储存器可以由于包括配置的简单性、速度和成本在内的原因而使用N+1RAID保护。N+1RAID配置可以允许数据储存阵列105容忍一(1)个CLM 130a-130n的丢失。
图2A描绘根据第一实施方案的示例性AAM。AAM 205可以被配置成可以集成到数据储存阵列中的板(例如,印刷电路板(PCB)、卡、刀片或其他类似的形式)。如图2A中所示,AAM可以包括通信端口220a-220n,这些通信端口220a-220n被配置来提供AAM、各种外部装置和网络层(诸如外部计算装置或网络装置(例如,可操作地耦合到外部计算装置的网络交换机))之间的通信。通信端口220a-220n可以包括本领域的普通技术人员已知的各种通信端口,诸如主机总线适配器(HBA)端口或网络接口卡(NIC)端口。示例性HBA端口包括QLogic公司、Emulex公司和Brocade通信系统股份有限公司制造的HBA端口。通信端口220a-220n的非限制性实施例可以包括以太网、光纤信道、通过以太网的光纤信道(FCoE)、超文本传输协议(HTTP)、通过以太网的HTTP、外设组件互连高速(PCIe)(包括非透明PCIe端口)、无限带宽、集成驱动器电子器件(IDE)、串口AT连接(SATA)、高速SATA(eSATA)、小型计算机系统接口(SCSI)以及互联网SCSI(iSCSI)。
在实施方案中,通信端口220a-220n的数量可以基于所需的外部带宽来确定。根据某些实施方案,PCIe可以用于数据路径连接,并且以太网可以用于数据储存阵列内的控制路径指令。在非限制性实施例中,以太网可以用于引导、诊断、统计收集、更新和/或其他控制功能。以太网装置可以跨各代自动协商链路速度,并且PCIe连接可以自动协商链路速度和装置通路(lane)宽。尽管PCIe和以太网在本文中被描述为提供数据通信,但是它们仅仅是出于示例说明的目的,因为本文中设想现在存在的和/或在未来开发的能够根据实施方案进行操作的任何数据通信标准和/或装置。
以太网装置(诸如以太网交换机、总线和其他通信元件)可以被隔离为使得内部流量(例如,用于内部数据储存阵列、AAM、LM、CM、CLM、PSM等的内部流量)不延伸出特定系统。因此,内部互联网协议(IP)地址在每个组件的外部可能是不可见的,除非被专门配置为可见的。在实施方案中,通信端口220a-220n可以被配置来将通信流量分段(segment)。
AAM 205可以包括至少一个处理器210,所述至少一个处理器210被配置来除了其他功能之外还便利从通信端口220a、220n接收的IO请求的通信和/或对储存区域网络(SAN)呈现层进行处理。处理器210可以包括各种类型的处理器,诸如公司、AMD等制造的自定义配置的一个处理器或多个处理器。在实施方案中,处理器210可以被配置成E5-2600串口服务器处理器,其有时被称为用于“Intel架构64位”的IA-64。
处理器210可以例如通过用于内部系统通信的以太网可操作地耦合到一个或更多个数据储存阵列控制层面元件216a、216b。处理器210可以在数据储存阵列操作期间针对各种存储器要求对存储器元件230a-230d进行存取。在实施方案中,存储器元件230a-230d可以包括动态随机存取存储器(DRAM)存储器元件。根据某些实施方案,处理器210可以包括DRAM,该DRAM被配置为包括64字节的数据和8字节的差错检查码(ECC)或单纠错、双差错检测(SECDED)差错检查。
基于集成电路215的核心可以布置在AAM 205内以便利与处理器210和内部储存系统(诸如CLM(例如,图1中的130a、130n))的通信。根据某些实施方案,集成电路215可以包括被配置来根据本文中所描述的实施方案进行操作的现场可编程门阵列(FPGA)。集成电路215可以通过各种通信总线212可操作地耦合到处理器210,所述通信总线212诸如外设组件互连高速(PCIe)或非易失性存储器高速(NVM高速或NVMe)。在实施方案中,通信总线212可以包括能够支持例如至少100千兆字节/秒的数据传输速度的八(8)个或十六个通路(16)宽PCIe连接。
集成电路215可以被配置来从处理器210接收数据,诸如与IO请求相关联的数据,包括数据和/或元数据读和写请求。在实施方案中,集成电路215可以操作来格式化来自处理器210的数据。由集成电路215执行的数据格式化功能的非限制性实施例包括对齐从处理器210接收的数据以供呈现给储存组件、填充(例如,T10数据完整性特征(T10-DIF)功能)和/或差错检查特征(诸如产生和/或检查循环冗余检查(CRC))。集成电路215可以使用本领域的普通技术人员已知的各种可编程系统(诸如股份有限公司提供的族FPGA)来实现。
一个或更多个收发器214a-214g可以可操作地耦合到集成电路215以提供AAM 205与数据储存阵列的储存组件(诸如CLM)之间的链路。在实施方案中,AAM 205可以通过所述一个或更多个收发器214a-214g与每个储存组件(例如,每个CLM(例如,图1中的130a、130n))进行通信。收发器214a-214g可以被布置成组,诸如具有约一(1)个至约四(4)个到每个储存组件的链路的八(8)个组。
图2B描绘根据第二实施方案的示例性AAM。如图2B中所示,AAM 205可以包括与存储器元件230a-230d(例如,DRAM存储器元件)可操作地通信的处理器。根据实施方案,存储器元件230a-230d中的每个均可以被配置成数据通道,例如,存储器元件230a-230d可以分别被配置成数据通道A-D。处理器210可以诸如通过布置在通信端口220(例如,HBA槽)内的十六(16)通路PCIe总线与数据通信总线连接器225可操作地耦合。处理器210还可以通过以太网通信元件240可操作地耦合到以太网端口260,以太网端口260被配置来提供与外部装置、网络层等的通信。
AAM 205可以包括通过通信交换机235可操作地耦合到处理器的集成电路215,通信交换机235诸如经由双八(8)通路PCIe通信总线的PCIe通信交换机或卡(例如,三十二(32)通路PCIe通信交换机)。处理器210可以通过通信总线(诸如十六(16)通路PCIe通信)可操作地耦合到通信交换机235。集成电路215还可以通过一个或更多个数据通信路径250a-250n可操作地耦合到外部元件,诸如数据储存元件。
AAM 205及其组件的尺寸可以根据系统要求和/或约束(诸如空间、热、成本和/或能量约束)来进行配置。例如,卡的类型(诸如PCIe卡)和所用的处理器210可以对AAM205的分布(profile)产生影响。在另一个实施例中,某些实施方案提供,AAM 205可以包括一个或更多个风扇245a-245n和/或诸如双列直插反转(DICR)风扇的类型的风扇来冷却AAM。风扇的数量和类型可以对AAM 205的分布产生影响。
在实施方案中,AAM 205可以具有约350毫米、约375毫米、约400毫米、约425毫米、约450毫米、约500毫米以及在这些值中的任何两个之间(包括端点)的范围内的长度217。在实施方案中,AAM 205可以具有约250毫米、约275毫米、约300毫米、约310毫米、约325毫米、约350毫米、约400毫米以及在这些值中的任何两个之间(包括端点)的范围内的高度219。在实施方案中,通信端口220可以具有约100毫米、约125毫米、约150毫米以及在这些值中的任何两个之间(包括端点)的范围内的高度221。
图2C描绘根据第三实施方案的示例性AAM。如图2C中所示,AAM 205可以使用通信交换机295来与数据通信总线连接器225进行通信。在实施方案中,通信交换机295可以包括三十二(32)通路PCIe交换机,其中十六(16)通路通信总线在处理器210与通信交换机295之间。通信交换机285可以通过一个或更多个通信总线(诸如双八(8)通路通信总线)可操作地耦合到数据通信总线连接器225。
图2D描绘根据第四实施方案的示例性AAM。如图2D中所示,AAM 205可以包括用于各种通信卡的多个转接卡(riser)285a、285b。在实施方案中,转接卡285a、285b可以包括用于PCIe槽的至少一个转接卡。转接卡285a、285b的非限制性实施例包括用于双低轮廓(low profile)、短长度PCIe槽的转接卡。AAM 205还可以包括多个数据通信总线连接器225a、225b。在实施方案中,数据通信总线连接器225a、225b可以被配置来使用PCIe第二代(Gen 2)标准。
图2E描绘根据第五实施方案的示例性AAM。如图2E中所示,AAM 205可以包括提供与储存组件(诸如一个或更多个CLM)的通信的一组PCIe交换机295a-295d。在实施方案中,该组PCIe交换机295a-295d可以包括PCIe第三代(Gen 3)交换机,该交换机通过例如用PCIe交换机295a作为四十八(48)通路PCIe交换机、用PCIe交换机295b作为三十二(32)通路PCIe交换机并且用PCIe交换机295c作为二十四(24)通路PCIe交换机来配置。如图2D中所示,PCIe交换机295b可以被配置来便利处理器210与集成电路215之间的通信。
根据某些实施方案,PCIe交换机295a和295c可以通过连接器275与储存组件进行通信,并且可以被配置来除了其他功能之外还便利复用器/解复用器(mux/demux)功能。在实施方案中,处理器210可以被配置来通过八(8)通路PCIe第三代标准总线与以太网通信元件240进行通信。对于数据储存阵列包括多个AAM 205的实施方案,每个AAM的集成电路215可以至少部分通过一个或更多个专用控制/信令通道201可操作地耦合到其他AAM。
图2F描绘根据第六实施方案的示例性AAM。如图2F中所示,AAM 205可以包括多个处理器210a、210b。处理器间通信通道209可以互连处理器210a、210b。在处理器210a、210b是处理器(诸如美国加利福尼亚圣克拉拉的公司制造的IA-64架构处理器)的实施方案中,处理器间通信通道209可以包括快速路径互连(QPI)通信通道。
处理器210a、210b中的每个可以与一组存储器元件230a-230h可操作地连接。存储器元件230a-230h可以被配置为用于处理器210a、210b的存储器通道。例如,存储器元件230a-230d可以形成用于处理器210b的存储器通道A-D,而存储器元件230e-230h可以形成用于处理器210a的存储器通道E-H,其中每个通道一个DIMM。
根据某些实施方案,AAM 205可以被配置为软件控制的AAM。例如,处理器210b可以执行被配置来控制根据本文中所描述的实施方案的AAM 205的各种可操作功能(包括通过传输传送给处理器210a的信息和/或命令)的软件。
如图2F中所示,某些实施方案提供,AAM 205可以包括在AAM板正上方的电源电路213。多个通信连接203、207a、207b可以被提供来将AAM连接到各种数据储存阵列组件、外部装置和/或网络层。例如,通信连接207a和207b可以提供以太网连接,并且通信连接203可以提供例如与每个CLM的PCIe通信。
图2G描绘根据第七实施方案的示例性AAM。图2G的AAM 205可以被配置为软件控制的、在没有集成电路(诸如图2A-2F中的集成电路215)的情况下进行操作的AAM。处理器210a可以通过通信连接器207a、207b可操作地耦合到便利与储存组件(例如,LM、CM和/或CLM)的通信的一个或更多个通信交换机295c、295d。在实施方案中,通信交换机295c、295d可以包括通过十六(16)通路PCIe总线(例如,使用PCIe第三代标准)连接到处理器210a的三十二(32)通路PCIe交换机。
图3A描绘根据第一实施方案的示例性CLM。CLM 305可以包括可操作地耦合到存储器元件320a-320l的处理器310。根据某些实施方案,存储器元件320a-320l可以包括被布置在用于处理器310的一个或更多个存储器通道中的DIMM和/或闪存元件。例如,存储器元件320a-320c可以形成存储器通道A,存储器元件320d-320f可以形成存储器通道B,存储器元件320g-320i可以形成存储器通道C,并且存储器元件320j-320l可以形成存储器通道D。存储器元件320a-320l可以被配置为用于CLM 305的高速缓存储存器,因此,为数据储存阵列提供高速缓存储存器的至少一部分,这依数据储存阵列中的CLM的数量而定。尽管CLM 305的组件可以被描绘为硬件组件,但是实施方案不限于此。事实上,CLM305的组件,诸如处理器310,可以用软件、硬件或者它们的组合来实现。
在实施方案中,存储器元件320a-320c中的储存条目可以被配置为大小为16千字节。在实施方案中,CLM 305可以储存逻辑到物理表(LPT),该LPT储存高速缓存物理地址、闪存物理地址以及被配置为指示生命状态的标签。每个LPT条目可以具有各种大小,诸如64位。
处理器310可以包括被配置为与以太网通信元件315可操作地耦合的各种处理器,诸如IA-64架构处理器。以太网通信元件315可以被CLM 305用于提供例如用于引导、系统控制等的内部通信。处理器310还可以通过通信总线325、330可操作地耦合到其他储存组件。在图3A中所描绘的实施方案中,通信总线325可以被配置为到持久储存器(例如,图1A和1B的持久储存层150;参见关于根据某些实施方案的示例性持久储存器的图5A-5D)的十六(16)通路PCIe通信连接;而通信总线330可以被配置为与储存组件的八(8)通路PCIe通信连接。在实施方案中,通信总线325、330可以使用PCIe第三代标准。连接元件335可以被包括来提供CLM 305的各种通信路径(诸如325、330和以太网)与外部装置、网络层之间的连接。
AAM,诸如图2A-2F中所描绘的AAM 205,可以可操作地耦合到CLM 305以便利客户端IO请求(参见关于根据实施方案的AAM与CLM之间的连接的图7A;参见关于AAM与CLM之间的诸如读操作和写操作的操作的图9-11)。例如,AAM可以通过以太网通信元件315所支持的以太网与CLM 305进行通信。
与AAM一样,CLM 305可以具有基于一种或更多种因素(诸如所需组件的间隔要求和大小)的特定尺寸。在实施方案中,CLM 305的长度317可以为约328毫米。在另一个实施方案中,CLM 305的长度317可以为约275毫米、约300毫米、约325毫米、约350毫米、约375毫米、约400毫米、约425毫米、约450毫米、约500毫米、约550毫米、约600毫米,并且在这些值中的任何两个之间(包括端点)的范围内。在实施方案中,CLM305的高度319可以为约150毫米、约175毫米、约200毫米、约225毫米、约250毫米,并且在这些值中的任何两个之间(包括端点)的范围内。
CLM 305的组件可以具有除了其他方面之外还取决于大小和操作要求的各种尺寸和间隔。在实施方案中,存储器元件330a-330b中的每个可以被布置在槽或连接器中,这些槽或连接器具有约165毫米的开口长度(例如,用于在这些槽中夹持存储器元件的夹具在扩大的开口位置上)以及约148毫米的闭合长度。存储器元件330a-330b本身可以具有约133毫米的长度。槽可以沿着其纵长相隔约6.4毫米。在实施方案中,槽321的通道边缘之间的距离可以约为92毫米来为处理器310提供冷却和通信路线。
图3B描绘根据第二实施方案的示例性CLM。如图3B中所示,CLM 305可以包括被配置来执行特定操作功能的集成电路340。CLM 305还可以包括被配置来提供操作CLM所需的电源的至少一部分的电源电路345。
在实施方案中,集成电路340可以包括被配置来除了其他功能之外还提供数据冗余和/或差错检查功能的FPGA。例如,集成电路340可以对于与CLM 305相关联的数据(诸如储存在持久储存器和/或存储器元件330a-330b中的数据)提供RAID和/或前向差错检查(FEC)功能。数据冗余和/或差错检查功能可以根据各种数据保护技术来进行配置。例如,在存在九(9)个逻辑数据“列”的实施方案中,集成电路340可以操作来产生X个额外的列,以使得如果9+X个列中的X个列中的任何一个列丢失、延迟或者以其他方式不可用,则储存在原始九(9)个列上的数据可以被重构。在CLM 305的初始引导(其中,仅利用单奇偶校验(例如,列数X=1))期间,数据可以使用处理器310执行的软件来产生。在实施方案中,软件还可以被提供来通过处理器310,例如,对于与CLM 305相关联的持久储存器实现P/Q奇偶校验。
通信交换机350a和350b可以被包括来便利CLM 305的组件之间的通信,并且可以被配置来使用各种通信协议并且支持各种大小(例如,通信通路、带宽、吞吐量等)。例如,通信交换机350a和350b可以包括PCIe交换机,诸如二十四(24)、三十二(32)和/或四十八(48)通路PCIe交换机。通信交换机350a和350b的大小和配置可以取决于各种因素,包括,但不限于,所需的数据吞吐量速度、耗电量、空间约束、能量约束和/或可用资源。
连接元件335a可以提供CLM 305与AAM之间的通信连接。在实施方案中,连接元件335a可以包括被配置来使用PCIe第三代标准的八(8)通路PCIe连接。连接元件335b和335c可以提供CLM 305与持久储存元件之间的通信连接。在实施方案中,连接元件335b和335c每个可以包括具有两(2)个通路的八(8)个PCIe连接。某些实施方案提供,这些连接中的特定连接可以不用于与持久储存器进行通信,而是可以用于例如控制信号。
图3C描绘根据第三实施方案的示例性CLM。CLM 305可以包括通过处理器间通信通道355彼此可操作地耦合的多个处理器310a、310b。在处理器310a、310b是处理器(诸如IA-64架构处理器)的实施方案中,处理器间通信通道355可以包括QPI通信通道。在实施方案中,处理器310a、310b可以被配置来以类似的方式进行操作以提供更多的处理和存储器资源。在另一个实施方案中,处理器310a、310b之一可以被配置来对于另一个处理器和/或CLM 305的其他组件提供至少部分软件控制。
图3D描绘根据第四实施方案的示例性CLM。如图3D中所示,CLM 305可以包括两个处理器310a、310b。处理器310a可以可操作地耦合到集成电路340,并且通过通信连接335a可操作地耦合到数据储存阵列内的AAM。处理器310b可以通过通信连接335b和335c可操作地耦合到持久储存器。图3D中所图示说明的CLM 305可以操作来为持久储存器提供增大的带宽(例如,使带宽翻倍),因为数据储存阵列的AAM具有高速缓存子系统。除了其他方面之外,该配置可以操作来最小化涉及持久储存器的操作的等待时间,该等待时间例如由于数据传输而导致,因为主要活动可以包括对于高速缓存子系统的数据读取和写入。
图4A描绘根据第一实施方案的示例性数据储存阵列的一部分的顶视图。如图4A中所示,数据储存阵列400的一部分的顶视图405可以包括持久储存元件415a-415j。根据某些实施方案,持久储存元件415a-415j可以包括,但不限于,PSM、闪存装置、硬盘驱动储存装置以及其他形式的持久储存器(参见关于根据某些实施方案的示例性的形式的持久储存器的图5A-5D)。数据储存阵列400可以包括以各种布置配置的多个持久储存元件415a-415j。在实施方案中,数据储存阵列400可以包括至少二十(20)个持久储存元件415a-415j。
数据可以根据各种方法储存在持久储存元件415a-415j中。在实施方案中,数据可以使用“精简配置”来进行储存,在所述精简配置中,未使用的储存器改进系统(例如,闪存)性能,并且如果原始储存器导致数据管理的高效,则它可能被“超额订购”。精简配置可以部分通过拍摄数据快照并且删减最旧数据的至少一部分来实现。
数据储存阵列400可以包括可操作地耦合到持久储存元件415a-415j的多个CLM410a-410f(参见关于根据某些实施方案的CLM与持久储存元件之间的示例性连接的图6、7B和7C)。持久储存元件415a-415j可以协调CLM 410a-410f的存取,CLM 410a-410f中的每个可以请求数据被写到持久储存元件415a-415j和/或从持久储存元件415a-415j读数据。根据某些实施方案,数据储存阵列400可以不包括持久储存元件415a-415j,并且可以使用通过CLM 410a-410f实现的高速缓存储存器来进行数据储存。
如图4A-4D中所描绘的,每个CLM 410a-410f可以包括被配置来将数据储存在数据储存阵列400内的存储器元件。这些存储器元件可以被配置为用于数据储存阵列400的高速缓存储存器。在实施方案中,数据可以跨CLM 410a-410f被镜像。例如,数据和/或元数据可以跨至少两个CLM 410a-410f被镜像。在实施方案中,镜像的CLM 410a-410f之一可以是“被动的”,而另一个则是“主动的”。在实施方案中,元数据可以储存在被配置为数据(诸如64字节的数据)的高速缓存线(cache-line)的一个或更多个元数据表中。
根据一些实施方案,数据可以根据各种RAID配置储存在CLM 410a-410f内。例如,储存在高速缓存中的数据可以跨所有的CLM 410a-410f以单奇偶校验RAID被储存。在存在六(6)个CLM 410a-410f的实施方案中,可以跨这六(6)个CLM中的五(5)个CLM使用4+1RAID。该奇偶校验配置可以针对简单性、速度和成本开销进行优化,因为每个CLM 410a-410f可以能够容忍至少一个丢失的CLM 410a-410f。
多个AAM 420a-420d可以布置在数据储存阵列内、在CLM 410a-410f的任一侧。在实施方案中,AAM 420a-420d可以被配置为联合集群。一组风扇425a-425j可以位于数据储存阵列400内以冷却数据储存阵列。根据某些实施方案,风扇425a-425j可以位于数据储存阵列的“活动区”(例如,高热区)的至少一部分内。在实施方案中,风扇控制和监视可以经由低速度信号来进行以控制非常小的板,最小化系统内的迹线长度的影响。实施方案不限于图4A-4D中的组件的布置,因为这些仅仅是出于示例说明的目的。例如,AAM420a-420d中的一个或更多个可以位于CLM 410a-410f中的一个或更多个之间,CLM可以位于AAM的外部,诸如此类。
持久储存元件415a-415j、CLM 410a-410f和AAM 420a-420d的数量和/或类型可以取决于各种因素,诸如数据存取要求、成本、效率、热输出限制、可用资源、空间约束和/或能量约束。如图4A中所示,数据储存阵列400可以包括位于四(4)个AAM 420a-420d之间的六(6)个CLM 410a-410f,其中两(2)个AAM在这六(6)个CLM的每一侧。在实施方案中,数据储存阵列可以包括位于四(4)个AAM 420a-420d之间的六(6)个CLM 410a-410f,但是不包括持久储存元件415a-415j。持久储存元件415a-415j可以位于与CLM 410a-410f和AAM 420a-420d相对的一侧,风扇425a-425j位于其之间。中间层面,诸如中间层面477,可以用于便利各种组件之间(诸如AAM 420a-420j(在图4D中仅420a可见)与CLM 410a-410f(未示出)和/或CLM与持久储存元件415a-415t之间)的数据流。根据某些实施方案,多个中间层面可以被配置来有效地作为单个中间层面进行操作。
根据某些实施方案,每个CLM 410a-410f可以具有地址空间,在该地址空间中,其一部分包括“主要的”CLM。当“主”CLM 410a-410f活动时,它是“主要的”;否则,地址的“跟从者“是主要的。CLM 410a-410f可以在特定的地址空间上是“主要的”CLM,其可以是静态的或者基于数据储存阵列400的操作条件而动态地改变。
在实施方案中,当高速缓存储存器中的数据使底层持久储存器中的整个页面无效时,可以将数据和/或页面“无效”消息发送到持久储存元件415a-415j。数据“无效消息”可以通过客户端装置整个地覆写条目或者由客户端进行的部分写入以及从持久储存器读取的以前的数据来驱动,并且可以根据各种排序方案(包括随机排序方案)进入持久储存元件415a-415j。
数据和/或页面读取请求可以通过客户端活动来驱动,并且可以根据各种排序方案(包括随机排序方案)进入CLM 410a-410f和/或持久储存元件415a-415j。到持久储存元件415a-415j的数据和/或页面写入可以在“主要的”CLM 410a-410f的地址空间上由每个CLM410a-410f独立地驱动。被写到持久储存元件415a-415j的闪存卡(或“子弹式(bullet)”)中的数据可以在闪存卡和/或持久储存元件中缓冲。
根据某些实施方案,可以对每个持久储存元件415a-415j的“逻辑块”执行写入。例如,每个逻辑块可以被顺序地写入。若干个逻辑块可以同时地、并行地在每个持久储存元件415a-415j上开放从每个CLM 410a-410f写入。写请求可以被配置来既指定地址的CLM410a-410f视图、又指定逻辑块和该逻辑块内的数据将被写入其中的预期页面。“逻辑页面”不应要求持久储存元件415a-415j对于初始写入重新进行映射。持久储存元件415a-415j可以将有待写入的数据从任何“主要的”CLM 410a-410f直接转发给它将(最后)被写到其中的闪存卡。因此,在写到闪存卡之前,不要求在持久储存元件415a-415j中缓冲。
每个CLM 410a-410f可以对持久储存元件415a-415j呈现给它的逻辑块,例如,对所有逻辑块或者仅对其有限部分进行写入。CLM 410a-410f可以被配置来识别它可以在它正在处理的每个逻辑块中写入多少页面。在实施方案中,CLM 410a-410f可以开始对所有的CLM写入一次,将并行地发送到持久储存器(例如,持久储存元件415a-415j的闪存卡)的数据保存在它们各自的高速缓存储存器中。对于持久储存元件415a-415j(或者,持久储存元件的闪存卡)的实际写入的时序可以由持久储存元件415a-415j和/或闪存卡和/或与其相关联的硬盘驱动器管理。闪存卡可以被配置为在不同块中有不同数量的页面。以这种方式,当持久储存元件415a-415j分配将被写入的逻辑块时,持久储存元件可以提供这样的逻辑块,所述逻辑块被持久储存元件415a-415j映射到用于各自的闪存卡的逻辑块。持久储存元件415a-415j或闪存卡可以确定何时提交写入。对于块尚未完全写入的数据(例如,对于3b/c闪存,每一闪存管芯(flash die)写入每一块6页)可以由持久储存元件415a-415j或闪存卡上的高速缓存服务。
根据某些实施方案,CLM 410a-410f与闪存卡之间的表的重新映射可以在逻辑或物理块级别上发生。在这样的实施方案中,重新映射的表可以保留在闪存卡上,并且页面级别的重新映射在闪存卡上的实际闪存芯片上可能是不需要的(参见关于根据某些实施方案的包括闪存芯片的闪存卡的示例性实施方案的图5D-5F)。
在实施方案中,除了其他功能之外,“CLM页面”可以被提供来便利存储器管理功能,诸如垃圾收集。当持久储存元件415a-415j对物理存储器(例如,物理闪存)中的关于页面的垃圾收集事件进行处理时,它可以简单地通知CLM 410a-410f,例如,以前在位置Y处的逻辑页面X现在处于位置Z处。另外,持久储存元件415a-415j可以通知CLM410a-410f哪些数据将被垃圾收集事件管理(例如,删除或移动),所以CLM 410a-410f可以通知任何持久储存元件415a-415j它可能想要读取“脏的”或修改的数据(因为该数据可能被重写)。在实施方案中,持久储存元件415a-415j仅需要更新主CLM 410a-410f,所述主CLM 410a-410f是与跟从者同步的CLM。
持久储存元件415a-415j可以接收可以被配置来驱动垃圾收集决策的数据和/或页面“无效”消息。例如,持久储存元件415a-415j可以权衡利用闪存卡来跟踪“页面有效”数据以支持垃圾收集。在另一个实施例中,无效消息可以从持久储存元件415a-415j直通到闪存卡,调整可能需要的任何块重新映射。
在实施方案中,持久储存元件415a-415j可以协调“页面级别垃圾收集”,在所述页面级别垃圾收集中,可以对不被CLM 410a-410f驱动的闪存卡执行读写。在页面级别垃圾收集中,当空块的数量低于给定阈值时,可以发起垃圾收集事件。可以根据各种处理选择用于垃圾收集的块,所述各种处理包括对块执行垃圾收集的成本(例如,数据的有效性越低,释放空间的成本越低)、对块执行垃圾收集的益处(例如,益处可以根据各种方法度量,包括基于数据的年龄缩放益处,以使得对于较旧的数据的益处更大)以及它们的组合。
在实施方案中,可以对新块执行垃圾收集写入。多个块可以在任何时间点在经历垃圾收集读写的处理中。当垃圾收集“移动”完成时,持久储存元件415a-415j应通知CLM410a-410f以前在位置Y处的逻辑页面X现在处于位置Z处。在移动完成之前,CLM410a-410f可以将随后的读请求发送到“旧的”位置,因为数据在那是有效的。发送到垃圾收集项目的“页面无效”消息可以被管理以移除“新”位置(例如,如果数据实际上已经被写入)。
数据储存阵列400可以被配置为按各种顺序启动。根据某些实施方案,数据储存阵列可以按下列顺序启动:(1)每个AAM 420a-420d、(2)每个CLM 410a-410f以及(3)每个持久储存元件415a-415j。在实施方案中,每个AAM 420a-420d可以从其自己的本地储存器启动,或者,如果本地储存器不存在或者不工作,则每个AAM 420a-420d可以通过以太网从另一个AAM启动。在实施方案中,每个CLM 410a-410f可以通过以太网从AAM420a-420d启动。在实施方案中,每个持久储存元件415a-415可以通过以太网从AAM420a-420经由CLM 410a-410f中的交换机启动。
在实施方案中,在系统关机期间,任何“脏的”或修改的数据以及全系统元数据可以被写到持久储存元件415a-415j,例如,闪存卡或硬盘驱动器。将数据写到持久储存元件415a-415j可以对作为“单级(single-level)”页面进行维护的逻辑块执行,例如,以使写带宽更高。在系统重启时,“关机”块可以从持久储存元件415a-415j重读。在实施方案中,系统级断电将会将持久储存元件415a-415j中的数据发送到在更高性能级别操作的“SLC块”。当持久储存元件415a-415j在物理上被移除(例如,由于失去电源)时,任何未写的数据及其自己的任一元数据必须被写到闪存卡。与系统关机一样,该数据可以被写到SLC块,这些SLC块可以用于系统恢复。
实施方案不限于持久储存元件415a-415j、CLM 410a-410f、AAM 420a-420d和/或风扇425a-425j的数量和定位,因为这些仅仅是出于示例说明的目的而提供。被配置来根据本文中所描述的实施方案进行操作的更多的或更少的这些组件可以布置在一个或更多个不同的位置上。
图4B描绘根据第一实施方案的示例性数据储存阵列的一部分的介质端视图。如图4B中所示,数据储存阵列400的一部分的介质端视图435可以包括持久储存元件415a-415t。该视图可以被称为“介质端”,因为它是数据储存阵列400的持久储存介质可以被存取(例如以供维护或交换故障组件)的一侧。在实施方案中,持久储存元件415a-415t可以被配置为现场可更换单元(FRU),这些FRU能够在数据储存阵列400的操作期间被移除和更换,而不必关机或者以其他方式限制数据储存阵列的操作。根据某些实施方案,现场可更换单元(FRU)可以是前面、后面和/或侧面可供使用的。
电源单元430a-430h可以定位在持久储存元件415a-415t的任一侧。电源单元430a-430h可以被配置为电源分配和保持单元(PDHU),这些PDHU能够储存电源,例如,以供分配给持久储存元件415a-415t。电源单元430a-430h可以被配置来将来自一个或更多个主电源供应器的电源分配给持久储存元件415a-415t(以及其他FRU)和/或提供在电源故障或其他中断的情况下安全地关闭储存组件的特定量的备用电源。
图4C描绘根据第一实施方案的示例性数据储存阵列的一部分的电缆端视图。电缆端视图435呈现从数据储存阵列400的与该数据储存阵列及其组件相关联的电缆可以被接入的一侧的视图。示例性电缆包括通信电缆(例如,以太网电缆)和电源电缆。例如,操作者可以从电缆端接入AAM 420a-420d,因为它们被安装电缆以连接到外部装置。如图4C中所示,电缆端视图435呈现对于用于数据储存阵列400及其组件的电源供应器445a-445h的接入。另外,通信端口450a-450p可以是从电缆端视图435可接入的。示例性通信端口450a-450p包括,但不限于,网络接口卡(NIC)和/或HBA。
图4D描绘根据第一实施方案的示例性数据储存阵列的一部分的侧视图。如图4D中所示,数据储存阵列400的侧视图460提供持久储存元件415a、415k、风扇425a-425h、AAM(例如,来自一个侧视图的AAM 420a以及来自相对侧视图的AAM 420e)、电源单元430a-430e以及电源供应器445a-445e中的某些的侧视图。中间层面477a-477c可以用于便利各个组件之间(诸如AAM 420a-420j(在图4D中仅420a可见)与CLM 410a-410f(未示出)和/或CLM与持久储存元件415a-415t之间)的数据流。在实施方案中,CLM 410a-410f中的一个或更多个可以定位在外部,以使得CLM位于图4D中所描绘的AAM 420a的位置上。
尽管数据储存阵列400被描绘为具有四(4)行风扇425a-425h,但是实施方案不限于此,因为数据储存阵列可以具有更多或更少行风扇,诸如两(2)行风扇或六(6)行风扇。数据储存阵列400可以包括各种尺寸的风扇425a-425h。例如,风扇425a-425h可以包括7个直径约为60毫米的风扇或者约10个直径约为40毫米的风扇。在实施方案中,较大的风扇425a-425h的直径可以约为92毫米。
如图4D中所示,数据储存阵列400可以包括电源层面447,电源层面447可以在电源单元430a-430e、电源供应器445a-445e、PDHU(未示出)和下行持久储存装置415a-415j之间是共用的。在实施方案中,电源可以连接到数据储存阵列400的顶部以给顶行持久储存装置415a-415j供电。在实施方案中,电源子系统或者其组件(例如,电源层面447、电源单元430a-430e、电源供应器445a-445e和/或PDHU)在系统的顶部可以例如以倒置的方式复制。在实施方案中,物理电缆连接可以用于电源子系统。
图4E描绘根据第二实施方案的示例性数据储存阵列的一部分的顶视图。如图4E中所示,数据储存阵列400可以包括布置在CLM 410a-410f与AAM 420a、420b之间的系统控制模块455。系统控制模块455a和455b可以被配置来控制数据储存阵列400的某些操作方面,包括,但不限于,储存系统映像、系统配置、系统监视、联合测试行动组(JTAG)(例如,IEEE 1149.1标准测试接入端口和边界扫描架构)处理、电源子系统监视、冷却系统监视以及本领域的普通技术人员已知的其他监视。
图4F描绘根据第三实施方案的示例性数据储存阵列的一部分的顶视图。如图4F中所示,数据储存阵列400的顶视图473可以包括状态显示器471,状态显示器471被配置来提供各种状态显示元素,诸如灯光(例如,发光二极管(LED)灯光)、文本元素等。状态显示元素可以被配置来提供关于系统的操作的信息,诸如是否存在系统故障,例如,通过如果持久储存元件415a-415j发生故障,将用某一种颜色发亮的LED来提供该信息。顶视图473还可以包括通信端口450a、450b或者其部分。例如,通信端口450a、450b可以包括HBA的部分(例如,“垂悬端(overhangs)”)。
图4G描绘根据第四实施方案的示例性数据储存阵列的一部分的顶视图。如图4G中所示,数据储存阵列400可以包括多个持久储存元件415a-415j和PDHU 449a-449e(在图4G中可见,例如,因为风扇425a-425h未示出)。例如,在图4G中所描绘的视图中,风扇425a-425h可以位于持久储存元件415a-415j和PDHU 449a-449e的后面。持久储存元件415a-415j和PDHU 449a-449e可以布置在面板(未示出)的后面,并且可以被片状金属包围。
图4A-4G中所描绘的数据储存阵列400可以提供数据储存器,该数据储存器不具有数据丢失的单点故障,并且包括可以被“现场”升级的组件,诸如持久和高速缓存储存容量、系统控制模块、通信端口(例如,PCIe、NIC/HBA)以及电源组件。
根据某些实施方案,电源可以被隔离到完全分离的中间层面中。在第一中间层面配置中,“电缆通道端”卡与电源的连接可以经由“底部持久储存元件中间层面”。在第二中间层面配置中,顶行上的持久储存元件415a-415j可以从“顶部电源中间层面”接收电源,所述顶部电源中间层面不同于连接电缆通道端的卡的“信号中间层面”。在第三中间层面配置中,底行上的持久储存元件415a-415j可以从“底部电源中间层面”接收电源。根据某些实施方案,电源中间层面可以由单个连续板形成。在某些其他的实施方案中,电源中间层面可以由单独的板形成,例如,这些板连接前面的每个持久储存元件415a-415j和背面的“电缆通道端”卡(例如,CLM、AAM、系统控制器卡等)。单独的电源中间层面的使用可以允许介质通道端的模块(例如,持久储存元件415a-415j)在一个角边具有高速信号并且在另一个角边具有电源,可以允许增加用于传载信号的物理中间层面的数量,可以提供完全使具有最高密度的高速连接的板与传载高电源的板隔离,可以允许传载高电源的板与传载高速信号的卡相比由不同板材料、厚度或其他特性形成。
图4H描绘根据某些实施方案的示例性系统控制模块。系统控制模块455可以包括处理器485和存储器元件475a-475d。处理器485可以包括本领域的普通技术人员已知的处理器,诸如IA-64架构处理器。根据实施方案,存储器元件475a-475d中的每个可以被配置为数据通道,例如,存储器元件可以分别被配置为数据通道A-D。系统控制模块455可以包括其自己的给其各种组件供电的电源电路480。以太网通信元件490a和490b可以单独地或者与以太网交换机495组合地被处理器485用于通过通信连接497a-497c与各种外部装置和/或模块进行通信。外部装置和/或模块可以包括,但不限于,AAM、LM、CM、CLM和/或外部计算装置。
图5A和5B分别描绘根据第一实施方案和第二实施方案的示例性持久储存元件。持久储存元件505(例如,PSM)可以用于储存不能储存在高速缓存储存器中(例如,因为在CLM的存储器元件中没有足够的储存空间)的和/或除了高速缓存储存器之外还冗余地储存在持久储存器中的数据。根据某些实施方案,持久储存元件505可以被配置为FRU“储存芯片”或者包括各种存储器元件520、530a-530f的PSM。例如,存储器元件520可以包括被配置来除了其他内容之外还储存数据管理表的DIMM存储器元件。实际数据可以储存在闪存中,诸如布置在互补槽525a-525f(诸如PCIe插座)内的一组闪存卡530a-530f(参见关于根据某些实施方案的示例的闪存卡的图5D-5F)中。在实施方案中,持久储存元件505可以被配置来包括四十(40)个闪存卡530a-530f。
在实施方案中,每个持久储存元件505可以包括约六(6)个闪存卡530a-530f。在实施方案中,数据可以使用奇偶校验法(诸如双奇偶校验RAID(P/Q 9+2)、抹除码奇偶校验(9+3)等)储存在持久储存元件505中。这种类型的奇偶校验可以使得系统能够容忍持久储存器的多次硬故障。
处理器540可以被包括来对于持久储存元件505执行特定功能,诸如基本表管理功能。在实施方案中,处理器540可以包括片上系统(SoC)集成电路。示例性SoC是Marvell制造的ArmadaTM XP SoC,另一个是E5-2600系列服务器处理器。通信交换机550也可以被包括来便利对于持久储存元件505的通信。在实施方案中,通信交换机550可以包括PCIe交换机(例如,诸如三十二(32)通路PCIe第三代交换机)。通信交换机550可以使用四(4)通路PCIe连接来与夹持闪存卡530a-530f和处理器540之一的每个芯片进行通信。
持久储存元件505可以包括被配置来可操作地耦合数据储存阵列内的持久储存元件505的连接器555。超级电容器和/或电池575a-575b可以被包括来便利对于持久储存元件505的电源管理功能。根据某些实施方案,超级电容器575a-575b可以提供例如在电源故障的情况下足以使得能够从易失性存储器降级“脏”数据的电源。
根据使用闪存(例如,闪存卡530a-530f)的某些实施方案,可能需要各种状态来维护表示哪些页面对于垃圾收集是有效的表。这些功能可以经由处理器540和/或其SoC,例如通过标准商品DIMM上的专用DRAM来进行处理。储存在DIMM上的数据的持久性可以通过将超级电容器和/或电池575a-575b放置在持久储存元件505上来确保。在持久储存元件505上使用持久存储器元件的实施方案中,超级电容器和/或电池575a-575b对于存储器持久性可能是不需要的。示例性持久存储器可以包括磁阻随机存取存储器(MRAM)和/或参数随机存取存储器(PRAM)。根据某些实施方案,超级电容器和/或电池575a-575b和/或持久存储器元件的使用可以允许持久储存元件505例如在不损伤闪存卡530a-530f的闪存介质的情况下被服务。
图5C描绘根据第三实施方案的示例性持久储存元件。处理器540可以利用多个通信交换机5501-d来既连接到两个储存卡530,又诸如通过单向连接器555(发送)和556(接收)与其他卡连接。根据某些实施方案,特定交换机,诸如交换机550a,可以仅连接到储存装置,而其他交换机,诸如交换机550c,可以仅连接到连接器555。旋转介质585a-d可以在这样的系统中通过装置控制器580b直接受到支撑,装置控制器580b可以要么直接连接580a到处理器540(作为实施例,可以是处理器的芯片集的功能),要么经由通信交换机550d间接连接到处理器540。
图6A描绘根据第一实施方案的示例性闪存卡。如图6A中所示,闪存卡630可以包括被配置来具有一个或更多个不同的存储器容量(诸如程序存储器的8K×14个字)的多个闪存芯片或管芯660a-660g。在实施方案中,闪存卡630可以按照具有纠错码(ECC)引擎的“明确与非(NAND)”技术(例如,三阶储存单元(triple-level cell)(TLC)、3b/c等)进行配置。例如,闪存卡630可以包括被配置来对特定闪存卡功能(诸如ECC功能)进行处理的集成电路690。根据某些实施方案,闪存卡630可以布置为持久储存元件的扩展器装置,这些扩展器装置本质上将若干个ECC引擎连接到PCIe总线接口(例如,通过图6A-6C中的通信交换机650)以对数据储存阵列内的特定命令进行处理。这样的命令的非限制性实施例包括来自持久储存元件605的IO请求和垃圾收集命令。在实施方案中,闪存卡630可以被配置来以约四(4)个千字节条目将数据提供给例如CLM。
根据某些实施方案,闪存卡630可以用作并行“受管理与非”驱动器。在这样的实施方案中,每个接口可以至少部分独立地工作。例如,闪存卡630可以执行各种坏块检测和管理功能,诸如将数据从“坏”块迁移到“好”块,以消除(offload)外部系统要求,提供外部信令以使得更高级别的组件知道由坏块检测和管理功能而导致的延迟。在另一个实施例中,闪存卡可以执行块级别的逻辑到物理重新映射以及块级别的耗损均衡。根据某些实施方案,为了支持块级别的耗损均衡,每个闪存卡中的每个物理块可以保留在闪存卡630上维护的、等于对于物理块的写入的次数的计数值。根据某些实施方案,闪存卡可以执行读取处理,管理对于闪存芯片660a-660g的写入处理,闪存芯片上的ECC保护(例如,提供关于在读取事件期间所见的差错位的数据),读取中断计数监视或者它们的任何组合。
如果任何数据(诸如表和/或管理数据)保持在闪存卡630的外部,则集成电路690可以被配置为聚合器集成电路(“聚合器”)。在实施方案中,用于闪存卡630的纠错逻辑可以驻留在聚合器中、闪存封装件上、板(例如,PSM板、持久储存元件505等)上的其他地方或者它们的某种组合。
闪存可以具有在芯片或封装件发生故障之前发生故障的内容块。物理块到逻辑寻址的那些块的重新映射可以在多个可能的级别执行。实施方案提供各种重新映射技术。第一重新映射技术可以在持久储存子系统的外部(例如通过CLM)发生。实施方案还提供在持久储存子系统内发生的重新映射技术。例如,重新映射可以在持久储存元件505的级别发生,诸如通过可以在处理器540(和/或其SoC)与闪存卡530a-530f之间发生的通信。在另一个实施例中,重新映射可以在闪存卡530a-530f内发生,诸如通过将较少的可寻址块呈现给聚合器的闪存卡。在进一步的实施例中,闪存卡530a-530f可以本身呈现为一个块装置,该块装置提取坏块,并且从外部系统映射到它们(诸如映射到持久储存元件505、CLM等)。根据某些实施方案,聚合器690可以维护自己的在其外部寻址的块映射,诸如通过持久储存元件505、CLM。数据的重新映射可以允许持久储存元件505仅仅是维护其自己的用于存储器的指针所需的,并且还允许存储器在也不需要维护额外的既用于提取“坏块”、又用于执行底层介质的耗损均衡的地址空间的情况下是可被数据储存阵列系统使用的。
根据某些实施方案,闪存卡630可以维护关于每个逻辑页面的位,以表示数据是否有效或者它是否已经被数据管理系统整个地覆写或释放。例如,高速缓存中的部分被覆写的页面在该级别不应被释放,因为它可能具有余留在持久储存器中的某些有效数据。持久储存元件505可以被配置来很大程度上自主地从数据管理系统进行操作以确定何时以及如何执行垃圾收集任务。垃圾收集可以预先执行。根据某些实施方案,可以维护足够的备用块,以使得在电源故障事件期间不需要垃圾收集。
处理器540可以被配置来执行用于监视块以选择用于收集剩余的有效页面的块并且确定写入位置的软件。传输可以在闪存卡530a-530f内或者跨公共的持久储存元件505上的卡进行维护。因此,提供持久储存元件505与CLM之间的存取的分布式PCIe网络对于直接将夹具彼此连接可能是不需要的。
在实施方案中,当持久储存元件505移动页面时,持久储存元件505可以在通知CLM保存数据移动的逻辑地址到物理地址映射、直接地或间接地其镜像之前完成页面的拷贝。如果在数据移动期间,初始页面被释放,则两个页面可以被标记无效(例如,因为数据可能由CLM单独提供)。从持久储存元件505读到CLM高速缓存的数据可以在数据和奇偶校验中提供,奇偶校验产生可以在持久储存元件505本地(例如,在处理器540中)进行,或者它们的某一组合。
图6B和6C分别描绘根据第二实施方案和第三实施方案的示例性闪存卡。例如,图6C描绘包括外部连接元件695a、695b的闪存卡630,外部连接元件695a、695b被配置来将闪存卡连接到一个或更多个外部装置,包括外部储存装置。根据某些实施方案,闪存卡630可以包括大约八(8)个至大约十六(16)个闪存芯片660a-660f。
根据某些实施方案,数据管理系统可以被配置来在性能与一个或更多个较低储存层(例如,较低成本、较低性能等或者它们的任何组合)之间映射数据。就这点而论,其单个的储存模块和/或组件可以是不同容量的,具有不同的存取等待时间,使用不同的底层介质,和/或可以影响储存模块和/或组件的性能和/或成本的任何其他的性质和/或元素。根据某些实施方案,不同介质类型可以用于数据管理系统中,并且页面、块、数据等可以被指定为仅储存在具有特定些属性的存储器中。在这样的实施方案中,页面、块、数据等可以具有例如通过将可被持久储存元件505和/或闪存卡630访问的元数据指定的储存要求/属性。例如,如图6C中所示,外部连接元件695a、695b中的至少一个可以包括串行SCSI(SAS)和/或SATA连接元件。以这种方式,数据储存阵列可以将数据,特别是不常用的数据,从闪存卡630降级到更低储存层。数据的降级可以由持久储存元件505和/或一个或更多个CLM支持。
图7A描绘根据实施方案的AAM与CLM之间的连接。如图7A中所示,数据储存阵列700可以包括与AAM 715a-715d可操作地耦合的CLM 710a-710f。根据某些实施方案,AAM 715a-715d中的每个可以彼此连接并且连接到CLM 710a-710f中的每个。AAM715a-715d可以包括如本文中所描述的各种组件,诸如处理器740a、740b、通信交换机735a-735e(例如,PCIe交换机)以及通信端口1130a、1130b(例如,NIC/HBA)。CLM710a-710f中的每个可以包括如本文中所描述的各种组件,例如,处理器725a、725b以及通信交换机720a-720e(例如,PCIe交换机)。AAM 715a-715d和CLM 710a-710f可以通过布置在数据储存阵列700的中间层面705(例如,被动中间层面)内的通信总线连接。
通信交换机720a-720e、735a-735e可以使用各种通信路径连接到处理器725a、725b、740a、740b(例如,通过处理器插座)。在实施方案中,通信路径可以包括八(8)和/或十六(16)通路宽PCIe连接。例如,连接到卡上的多个(例如,两(2)个)处理器插座的通信交换机720a-720e、735a-735e可以使用八(8)通路宽PCIe连接,并且连接到卡上的一个处理器插座的通信交换机可以使用十六(16)通路宽PCIe连接。
根据某些实施方案,AAM 715a-715d和CLM 710a-710f上的互连可以包括处理器插座之间的QPI连接、每个处理器插座与连接到该插座的PCIe交换机之间的十六(16)通路PCIe以及两个处理器插座与连接到这两个处理器插座的PCIe交换机之间的八(8)通路PCIe。AAM 715a-715d和CLM 710a-710f上的多插座处理刀片的使用可以操作来提供更高的吞吐量和更大的存储器配置。图7A中所描绘的配置提供对于任何连接具有均匀带宽的高带宽互连。根据某些实施方案,八(8)通路PCIe第三代互连可以用于每个AAM 715a-715d与每一个CLM 710a-710f之间,并且四(4)通路PCIe第三代互连可以用于每个CLM710a-710f与每一个持久储存装置之间。然而,实施方案不限于这些类型的连接,因为这些仅仅是出于示例说明的目的而提供。
在实施方案中,AAM 715a-715d与CLM 710a-710f之间的中间层面705互连可以包括至少两(2)种不同类型的通信交换机。例如,通信交换机735a-735e和通信交换机720a-720e可以包括单十六(16)通路通信交换机和双八(8)通路通信交换机。在实施方案中,用于将AAM 715a-715d连接到CLM 710a-710f的连接类型交替,以使得一个卡上的每种交换机类型连接到在其他卡上的两种交换机类型。
在实施方案中,AAM 715a和715b可以连接到“顶部”插座上的CLM 710a-710f,而AAM 715c和751d可以连接到“底部”插座上的CLM 710a-710f。以这种方式,高速缓存可以被逻辑划分,以使得其数据被指定由特定AAM 715a-715d存取(例如,通过无故障处理中的读/写请求)的地址可以具有高速缓存在它最直接连接的插座中的数据。这可以避免对于CLM 710a-710f的高速缓存区中的数据跨过处理器插座之间的QPI链路的需要。除了其他方面之外,这样的配置可以操作来在故障的情况下在不损失可存取性的情况下在被动中间层面中经由简单的拓扑缓解无故障处理期间(例如,当所有的AAM 715a-715d都可操作时)插座之间的拥塞。
如图7A中所示,CLM 710a-710f、AAM 715a-715d和/或其组件之间的连接中的某些连接可以包括NT端口连接770。尽管图7A描绘了多个NT端口连接770,但是仅一个被标记以简化示图。根据某些实施方案,NT端口连接770可以允许每个AAM 715a-715d中的任何PCIe经由PCIe直接连接到全部的可用的CLM 710a-710f中的任何特定数量的CLM(例如,图7A中所示的六(6)个CLM中的四(4)个CLM),并且可以允许每个CLM中的任何PCIe插座直接连接到全部的可用的AAM中的任何特定数量的AAM(例如,图7A中所示的四(4)个AAM中的三(3)个AAM)。直接连接可以包括不要求AAM 715a-715d和/或CLM 710a-710f卡上的处理器间通信通道(例如,QPI通信通道)跳跃的连接。以这种方式,数据传输从处理器间通信通道的卸载(offload)可以显著地提高系统数据吞吐量。
图7B描绘根据实施方案的示例性CLM。图7B中所示的CLM 710表示图7A的CLM710a-710f的详细描绘。CLM 710可以包括被配置来将CLM可操作地耦合到持久储存装置(未示出,参见图7E)的通信总线745a-745d。例如,通信总线745a和745c可以将CLM710连接到三(3)个持久储存装置,而通信总线745b和745d可以将CLM 710连接到七(7)个持久储存装置。
图7C描绘根据实施方案的示例性AAM。图7C中所描绘的CLM 715可以包括与通信元件780进行通信的一个或更多个处理器740a、740b,通信元件780用于便利AAM与一个或更多个CLM 710a-710f之间的通信。根据某些实施方案,通信元件780可以包括PCIe通信元件。在实施方案中,该通信元件可以包括例如具有九十七(97)个通路和十一(11)个通信端口的PCIe构架元件。在实施方案中,通信交换机735a、735b可以包括三十二(32)通路PCIe交换机。通信交换机735a、735b可以使用十六(16)个通路进行处理器通信。处理器间通信通道785可以布置在处理器740a、740b之间,诸如QPI通信通道。通信元件780可以对于每个处理器740a、740b使用一个十六(16)通路PCIe通道,和/或使用双八(8)通路PCIE通道与处理器进行通信。另外,通信元件780可以使用一个八(8)通路PCIe通道与每个CLM 710a-710f进行通信。在实施方案中,十六(16)通路PCIe通道之一可以用于配置和/或处理共享组件之间的PCIe差错。例如,插座“0”,用于AAM 715的最低插座,可以用于配置和/或处理PCIe差错。
图7D描绘根据实施方案的示例性CLM。如图7C中所示,CLM 710可以包括与一个或更多个通信元件790进行通信的一个或更多个处理器725a、725b。根据某些实施方案,通信元件790可以包括PCIe构架通信元件。例如,通信元件790a可以包括具有五(5)个通信端口的三十三(33)通路PCIe构架。在另一种情况下,通信元件790b、790c可以包括具有五(14)个通信端口的八十一(81)通路PCIe构架。通信元件790a可以使用八(8)通路PCIe通道与连接的AAM 715b、715c以及处理器725a、725b进行通信。通信元件790b、790c可以使用四(4)通路PCIe通道与连接的PSM 750a-750t进行通信,使用十六(16)通路PCIe通道与每个处理器725a、725b进行通信,使用八(8)通路PCIe通道与每个连接的AAM 715a、715d进行通信。
图7E描绘CLM与多个持久储存装置之间的示例性连接。如图7E中所示,CLM 710可以连接到多个持久储存装置750a-750t。根据某些实施方案,每个持久储存装置750a-750t可以包括到每个CLM(例如,图7A中所描绘的CLM 710a-710f)的四(4)通路PCIe端口。在实施方案中,虚拟局域网(VLAN)可以在不使用任何AAM到AAM链路的每个CLM 710处启动,例如,以避免以太网构架中的循环。在该实施方案中,每个持久储存装置750a-750t看见三(3)个VLAN,它连接的每一个CLM 710一个VLAN。
图7F描绘根据实施方案的CLM、AAM和持久储存器(例如,PSM)之间的示例性连接。如图7F中所示,AAM 715a-715n可以包括各种通信端口716a-716n,诸如HBA通信端口。每个AAM 715a-715n可以与每个CLM 710a-710f可操作地耦合。CLM 710a-710f可以包括用于与持久储存器750进行通信的各种通信元件702a-702f。因此,CLM 710a-710f可以直接连接到持久储存器750(及其组件,诸如PSM)。例如,通信元件702a-702f可以包括PCIe交换机,诸如四十八(48)通路第三代交换机。数据储存阵列可以包括系统控制模块704a-704b,这些系统控制模块可以是卡、板等的形式。系统控制模块704a-704b可以包括通信元件708a-708b和通信元件706a-706b,通信元件708a-708b用于与CLM710a-710f进行通信,通信元件706a-706b用于直接与CLM的通信元件702a-702f进行通信。通信元件708a-708b可以包括以太网交换机,通信元件706a-706b可以包括PCIe交换机。系统控制模块704a-704b可以与外部通信元件714a-714b(诸如例如与内部以太网通信隔离的以太网连接)进行通信。如图7F中所示,外部通信元件714a-714b可以与控制层面712a-712b进行通信。
图7G描绘根据实施方案的CLM与持久储存器(例如,PSM)之间的示例性连接。如图7中所示,CLM 715a-715n可以包括用于与PSM 750a-750n进行通信的多个通信元件702a-702n。在实施方案中,CLM 715a-715n可以通过中间层面连接器722a-722n连接到PSM 750a-750n。尽管每个CLM 715a-715n可以连接到每个PSM 750a-750n,但是仅描绘对于CLM 715a的连接以简化图7G,因为所有的CLM都可以类似地连接到每个PSM。如图7G中所示,每个CLM 715a-715n可以具有第一通信元件702a和第二通信元件702b,第一通信元件702a将CLM连接到第一组PSM 750a-750n(例如,底行PSM),第二通信元件702b将CLM连接到第二组PSM(例如,顶行PSM)。以这种方式,可以简化CLM715a-715n上的板路由(board routing)。
在实施方案中,通信元件702a-702n可以包括PCIe通信交换机(例如,四十八(48)通路第三代交换机)。PSM 750a-750n可以包括在它与CLM 715a-715n中的每个之间的相同的二(2)的幂的数量的PCIe通路。在实施方案中,通信元件702a-702n可以使用不同的通信中间层面。根据某些实施方案,所有的或者基本上所有的CLM 715a-715n可以连接到所有的或者基本上所有的PSM 750a-750n。
根据某些实施方案,如果从PSM 750a-750n起的以太网(控制层面)连接分布在CLM715a-715n上,则每个CLM可以被配置来具有相同数量的或者基本上相同数量的连接,以使得流量可以得到均衡。在涉及六(6)个CLM以及顶部和底部中间层面上的均衡连接的非限制性实施例中,可以建立从CLM板到每个中间层面的四个连接。在另一个非限制性实施例中,接线(wiring)可以被配置为使得最外侧的CLM 715a-715n(例如,最外侧的两个CLM)具有特定数量的连接(例如,约六个连接),而最内侧的CLM(例如,最内侧的四个CLM)具有另一特定数量的连接(例如,约七个连接)。
在实施方案中,连接器722a-722n上的每个PSM 750a-750n可以具有与一个或更多个CLM 715a-715n(诸如两(2)个CLM)的以太网连接。CLM 715a-715n可以包括用于控制层面通信的以太网交换机(例如,图7F中的通信元件708a-708b)。
如通过图7A-7G所示的,AAM 715a-715d可以连接到CLM 710a-710f,并且通过CLM间接地连接到持久储存装置750a-750t。在实施方案中,PCIe可以用于数据层面流量。在实施方案中,以太网可以用于控制层面流量。
根据某些实施方案,AAM 715a-715d可以直接与CLM 710a-710f进行通信。在实施方案中,CLM 710-710f可以被配置为有效地受到RAID保护的RAM。对于高速缓存存取的单奇偶校验可以用AAM上的软件进行处理。系统控制模块704a-704b可以被配置来使系统控制与数据层面分离,数据层面可以合并到AAM 715a-715d中。在实施方案中,持久储存器750组件(例如,PSM 750a-750t)可以具有连接到系统控制模块704a-704b和/或一对CLM 710a-710f的以太网端口。持久储存器750组件可以通过系统控制模块704a-704b上的通信连接而连接到这些系统控制模块。持久储存器750组件可以通过CLM 710-710f连接到系统控制模块704a-704b。例如,每个持久储存器750组件可以连接到两个CLM710-710f,这两个CLM710-710f可以包括将这两者连接到本地CLM 710-710f的以太网交换机以及两个系统控制模块704a-704b。
图8描绘根据实施方案的示例性系统堆栈。如本文中所描述的数据储存阵列865包括阵列存取核心845和至少一个数据储存核心850a-850n。数据储存阵列865可以与主机接口堆栈870进行交互,主机接口堆栈870被配置来提供数据储存阵列与外部客户端计算装置之间的接口。主机接口堆栈870可以包括应用程序,诸如对象储存和/或关键值储存(例如,超文本传输协议(HTTP))应用程序805、映射化简应用程序(例如,ApacheTM的HadoopTM MapReduce)等。优化和虚拟化应用程序可以包括文件系统应用程序825a-825n。示例性文件系统应用程序可以包括POSIX文件系统以及ApacheTM的HadoopTM分布式文件系统(HDFS)。
]主机接口堆栈870可以包括各种通信驱动器835a-835n以及其他通信组件,通信驱动器835a-835n被配置来便利数据储存阵列之间的通信(例如,通过AAM 845),诸如用于NIC、HBA的驱动器。物理服务器835a-835n可以被布置来对主机接口堆栈870内的客户端IO进行处理和/或路由。客户端IO可以通过物理网络装置840(诸如网络交换机)发送到数据储存阵列860。网络交换机的示例性且非限制性的实施例包括TOR、融合式网络适配器(CNA)、FCoE、InfiniBand等。
数据储存阵列可以被配置来对数据执行各种操作,诸如对客户端读、写和/或比较以及交换(CAS)IO请求做出响应。图8A和8B描绘根据第一实施方案的执行读IO请求的示例性方法的流程图。如图8A中所示,数据储存阵列可以从客户端接收从地址读数据的请求。数据的物理位置可以被确定801,例如,在高速缓存储存器或持久储存器中。如果数据在高速缓存储存器802中,则可以调用803用于从高速缓存条目获得数据的处理,并且可以将该数据发送804到AAM所呈现的客户端。
如果数据不在高速缓存储存器802中,则确定805在高速缓存储存器中是否存在分配给该数据的条目。如果确定805不存在条目,则分配806高速缓存储存器中的条目。可以从持久储存器标记807读挂起(read pending),并且可以发起808从持久储存器读数据的请求。
如果确定805存在条目,则确定810来自持久储存器的读挂起请求是否是活动的。如果确定810来自持久储存器的读挂起请求是活动的,则当持久储存器响应时,将读请求添加809到服务队列。如果确定810来自持久储存器的读挂起请求不是活动的,则可以从持久储存器标记807读挂起,可以发起808从持久储存器读数据的请求,并且当持久储存器响应时,将读请求添加809到服务队列。
图8B描绘用于从高速缓存条目获得数据的示例性方法的流程图。如图8B中所示,可以从高速缓存储存器在所指定的条目读812数据815,并且可以用当前的系统时钟时间更新815高速缓存条目“参考时间”。
图9A描绘根据实施方案的将数据从客户端写到数据储存阵列的示例性方法的流程图。如图9A中所示,数据储存阵列可以从客户端接收900将数据写到地址的写请求。该数据的物理位置可以被确定901在持久储存器和/或高速缓存储存器中。可以确定902条目是否是在高速缓存储存器中分配给该数据的。如果确定902不存在条目,则可以在高速缓存储存器中分配903一个条目给该数据。可以调用904用于将数据储存到高速缓存阵列的处理,并且可以将发送写应答发送905到客户端。如果确定902存在条目,则可以确定906数据是否在高速缓存储存器中。如果确定906数据在高速缓存储存器中,则可以调用904用于将数据写到高速缓存条目的处理,并且可以将发送写应答发送905到客户端。
如果确定906数据不在高速缓存储存器中,则可以调用907用于将数据储存到高速缓存条目的处理,并且可以将写应答发送908到客户端。可以确定909持久储存器是否有效。如果持久储存器被确定909为有效,则可以确定910高速缓存条目中的所有组件是否有效。如果确定910高速缓存储存器中的所有组件都有效,则数据条目可以在持久储存器中被标记911为过时和/或无效。
图9B描绘将数据储存到高速缓存条目的示例性方法的流程图。如图9B中所示,数据储存阵列的组件可以指定912在所指定的条目将数据写到高速缓存储存器。写到高速缓存条目的内容可以被标记913为有效。可以确定914高速缓存条目是否被标记为脏。如果高速缓存条目被确定914为被标记为脏,则用当前的系统时间更新915高速缓存条目“参考时间”。如果高速缓存条目被确定914为未被标记为脏,则高速缓存条目被标记916为脏,并且可以将被标记为脏的高速缓存条目的数量增加917一(1)。
图9C描绘从支持比较和交换(CAS)的客户端写数据的示例性方法的流程图。如图9C中所示,数据储存阵列可以从客户端接收900将数据写到地址的写请求。该数据的物理位置可以被确定901在持久储存器和/或高速缓存储存器中。可以确定902条目是否在高速缓存储存器中分配给该数据。如果确定902不存在条目,则可以在高速缓存储存器中分配903条目给该数据。可以调用904用于将数据储存到高速缓存条目的处理,并且可以将发送写应答发送905到客户端。如果确定902存在条目,则可以确定906该数据是否在高速缓存储存器中。如果确定906数据在高速缓存储存器中,则可以调用904用于将数据储存到高速缓存条目的处理,并且可以将发送写应答发送905到客户端。
如果确定906数据不在高速缓存储存器中,则可以确定918CAS请求是否需要按写到公共地址的次序被处理。如果确定918CAS请求不需要按写到公共地址的次序被处理,则可以调用907用于将数据储存到高速缓存条目的处理,并且可以将写应答发送908到客户端。可以确定909持久储存器是否有效。如果持久储存器被确定909为有效,则可以确定910高速缓存条目中的所有组件是否有效。如果确定910高速缓存储存器中的所有组件都是有效的,则数据条目可以在持久储存器中被标记911为过时和/或无效。
如果确定918CAS请求不需要按写到公共地址的次序被处理,则可以确定919CAS请求对于被请求写入的高速缓存线的组件是否是挂起的。如果确定919CAS请求对于被请求写入的高速缓存线的组件是挂起的,则当持久储存器响应时,可以将写请求添加1020到服务队列。
如果确定919CAS请求对于被请求写入的高速缓存线的组件不是挂起的,则可以调用907用于将数据储存到高速缓存条目的处理,并且可以将写应答发送908到客户端。可以确定909持久储存器是否有效。如果持久储存器被确定909为有效,则可以确定910高速缓存条目中的所有组件是否有效。如果确定910高速缓存储存器中的所有组件都是有效的,则数据条目可以在持久储存器中被标记911为过时和/或无效。
图10描绘根据实施方案的比较和交换IO请求的示例性方法的流程图。如图10中所示,数据储存阵列可以从客户端接收1000在一地址处的CAS数据。该数据的物理位置可以被确定1001在持久储存器和/或高速缓存储存器中。可以确定1002条目是否在高速缓存储存器中被分配给该数据。如果确定1002不存在条目,则可以调用1003用于将数据写到高速缓存条目的处理。
可以确定1004来自CAS请求的比较数据是否与来自高速缓存储存器的数据匹配。如果确定1004来自CAS请求的比较数据与来自高速缓存储存器的数据匹配,则可以调用1005用于将数据储存到高速缓存条目的处理,并且可以将CAS应答发送1106到客户端。如果确定1004来自CAS请求的比较数据与来自高速缓存储存器的数据不匹配,则可以将“不匹配”响应发送1006到客户端。
如果确定1002存在条目,则可以确定1008条目是否在高速缓存储存器中被分配给该数据。如果确定1008不存在条目,则分配1009高速缓存储存器中的条目。可以从持久储存器标记1010读挂起,并且可以发起1011从持久储存器读数据的请求。
如果确定1008存在条目,则可以确定1013来自持久储存器的读挂起请求是否是活动的。如果确定1013来自持久储存器的读挂起请求是活动的,则当持久储存器响应时,将CAS请求添加809到服务队列。
如果确定1013来自持久储存器的读挂起请求不是活动的,则可以从持久储存器标记1010读挂起,可以发起1011从持久储存器读数据的请求,并且当持久储存器响应时,将CAS请求添加809到服务队列。
图11描绘从持久储存器检索数据的示例性方法的流程图。如图11中所示,可以从持久储存器检索1201数据,并且可以确定1202高速缓存条目是否是脏的。如果确定1202高速缓存条目是脏的,则对于未被标记为有效的高速缓存条目中的所有组件,将从持久储存器检索的数据写1203到高速缓存条目的内部,将所有组件标记为有效1204,并且将持久储存器中的数据条目标记为过时/无效。
如果确定1202高速缓存条目不是脏的,则在高速缓存条目的内部,将所有组件标记1206为有效。如果请求队列被确定1207为对于所检索的数据是空的,则对来自队列的最长的挂起请求进行处理。
如上所述,数据可以按各种配置、根据特定数据保护处理储存在数据储存阵列内。高速缓存储存器可以以与持久储存器正交的方式受到RAID保护,以便除了其他方面之外,还便利高速缓存储存器的来自持久储存器的独立可服务性。
图12描绘根据某些实施方案的示例性正交RAID配置。图12示出了数据可以根据正交保护方案跨储存层(例如,高速缓存层和持久储存器)维护。根据某些实施方案,高速缓存储存器和持久储存器可以跨多个储存装置、元件、组装件、CLM、CM、PSM、闪存元件、硬盘驱动器等实现。在实施方案中,储存装置可以被配置为单独的故障域的一部分,例如,在所述故障域中,将数据行/列条目的一部分储存在储存层中的数据组件不储存另一个储存层中的任何数据行/列条目。
根据某些实施方案,每个储存层可以实现独立的保护方案。例如,当数据从高速缓存储存器移至持久储存器时,“写到持久储存器”指令、命令、例程等可以仅使用数据模块(例如,CM、CLM和PSM)例如来避免执行数据重构的需要。数据管理系统可以使用各种类型和/或级别的RAID。例如,可以利用奇偶校验(如果使用单奇偶校验)或P/Q(使用2个额外的用于故障恢复的单元)。奇偶校验和/或P/Q奇偶校验数据在写到持久储存器时可以从高速缓存储存器读到持久储存器,所以该数据还可以针对RAID一致性进行验证。在使用抹除码的实施方案中,如果抹除码启用多于两(2)个的保护字段,或者如果利用多于四(4)个的储存组件,则奇偶校验和/或P/Q奇偶校验数据在写到持久储存器时也可以从高速缓存储存器读到持久储存器,所以该数据也可以针对RAID一致性进行验证。
因为数据跨储存层正交编码,所以每层中的数据储存组件的大小可以是不同的。在实施方案中,持久储存器的数据储存容器端可以至少部分基于装置的本机储存大小。例如,在NAND闪存的情况下,可以每一持久储存元件使用16千字节的数据储存容器。
根据某些实施方案,高速缓存条目的大小可以是可变的。在实施方案中,较大的高速缓存条目可以用于高速缓存条目。为了确保额外的空间可供用于保存内部和外部元数据,某些实施方案可以跨由NAND闪存构成的持久储存器利用9+2的数据保护布置,例如,利用约16千字节的页面来保存约128千字节的外部数据和约16千字节的全系统和外部元数据。在这样的情况下,高速缓存条目可以每一条目约为36千字节,所述条目可以不包括引用高速缓存条目的CLM本地元数据。
跨CLM的每个逻辑高速缓存地址可以具有特定的一组CLM,该组CLM保存数据列以及可选的奇偶校验和双奇偶校验列。CLM还可以使数据按镜像的或其他的数据保护方案储存。
根据某些实施方案,可以用协调的操作从CLM中的高速缓存储存器对PSM进行写入以将数据发送到所有的接收者/PSM。每个持久储存模块可以在不协调任何更高级别的组件(例如,CLM或AAM)的情况下自行确定何时将数据写到其每个组件。每个CLM可以使用等同的或者基本上等同的量的数据和保护列作为系统中的任何其他的数据模块。
PSM可以利用等同的或者基本上等同的量的数据和保护行和/或列作为系统中的任何其他的数据模块。因此,某些实施方案提供,整个系统上的计算负荷可以在数据管理系统的操作期间保持在相对恒定的或者基本上恒定的水平上。
根据某些实施方案,数据存取可以包括下列中的一些或全部:(a)AAM可以确定主LM(一个或多个)和从LM(一个或多个);(b)AAM可以从CLM获得高速缓存储存器中的数据的地址;(d)数据如果可在高速缓存中获得,则可以被AAM存取;(e)如果数据在高速缓存中不是立即可获得的,则对于该数据的存取可以被推迟,直到该数据位于持久储存器中并且被写到高速缓存为止。
根据某些实施方案,可以使主CLM和从CLM中的地址同步。在实施方案中,该同步可以经由由对于其的存取被请求的AAM提供的CLM之间的数据路径连接来执行。持久储存器中的数据的地址可以在CLM中维护。永久储存地址可以在数据被写时改变。高速缓存地址可以在条目被分配给逻辑地址时改变。
保存特定地址的数据的CLM的主导者(和从副本)可以维护关于保存数据的高速缓存条目的附加数据。这样的附加数据可以包括,但不限于,高速缓存条目脏或修改状态以及指示条目中的哪些LBA为有效的结构。例如,指示条目中的哪些LBA为有效的结构可以是位矢量,和/或为了该结构的目的,LBA可以聚集成更大的条目。
数据存取控制的正交性可以涉及系统中的每个AAM存取或者负责逻辑地址空间的特定部分。逻辑地址空间可以划分为特定粒度(例如,小于与高速缓存条目的大小相应的数据元素的大小)的单元。在实施方案中,数据元素的大小可以约为128千字节的标称用户数据(每个为约512字节至约520字节的256个LBA)。可以利用采取这个部分之上的特定数量的地址位的映射函数。用于选择这些地址位的部分可以是这些地址位的低位。随后对大小“高速缓存条目”的存取可以具有存取这个地址的不同的“主”AAM。客户端可以知道哪个AAM的映射是用于任何地址的主导者以及哪个AAM可以在用于该地址的“主”AAM发生故障的情况下覆盖。
根据某些实施方案,AAM和主AAM的协调可以被使用多路径IO(MPIO)驱动器的客户端利用。数据管理系统不要求客户端具有知道的MPIO驱动器。在没有MPIO驱动器的实施方案中,AAM可以识别任何储存请求,如果该请求是该AAM是主导者时的一个请求的话,在这种情况下,主AAM可以直接对客户端请求进行处理。如果AAM不是用于被请求的地址的主AAM,则AAM可以通过储存系统内部的(或者在逻辑上在内部的)连接将请求发送到作为用于被请求的地址的主AAM的这个AAM。主AAM然后可以执行数据存取操作。
根据某些实施方案,请求的结果可以要么(a)直接返回给发出该请求的客户端,要么(b)返回给对于其的请求已经从客户端发出的AAM,所以该AAM可以直接对客户端做出响应。哪个AAM是用于给定地址的主导者的配置仅当一组工作的AAM改变(例如,由于故障、新模块被插入/重启等)时才改变。因此,若干个并行AAM可以在对于每个数据层面操作不需要解决冲突的情况下对同一储存池进行存取。
在实施方案中,可以利用特定数量的AAM(例如,四(4)个),其中,所有数量的AAM都可以类似地连接到所有的CLM和控制处理器板。MPIO驱动器可以操作来支持其LBA在无故障情况下经由每个AAM存取的一致映射。当一个AAM发生故障时,在这个实施例中,其余的AAM可以用于所有的数据存取。在实施方案中,连接到储存阵列系统的MPIO驱动器可以存取任一AAM上的128KB(256个扇区),例如,以使得AAM0用于偶数,AAM1用于奇数。更大的步幅大小可以用于例如LBA的二(2)的幂的边界上。
图13A描绘根据实施方案的正交RAID配置的示例性无故障写入。如图13中所示,CLM 1305a-1305d可以将数据写到它们各自的蜂窝页面1315a-1315d。在无故障实施方案中,当将数据写到永久储存器中时,可以不利用奇偶校验模块1310。
在数据模块已发生故障的情况下,奇偶校验模块1310可以用于重构关于蜂窝页面的数据。图13B描绘根据实施方案的使用奇偶校验模块的示例性数据写入。如图13B中所示,当数据传载模块(诸如奇偶校验蜂窝1320a-1320d之一(例如,1320c))在部分蜂窝页面1340中已发生故障时,读取传载奇偶校验的奇偶校验模块310。数据通过逻辑元件1335,诸如XOR逻辑门,并且被写到与发生故障的部分蜂窝(1320c)相应的蜂窝1315c中。图13C描绘根据实施方案的示例性蜂窝页面到高速缓存数据写入。如图13C中所示,奇偶校验是通过逻辑元件1335产生的,然后被组织并且发送到高速缓存模块1315a-1315d。
]根据某些实施方案,用于写到持久储存器的方法可以至少部分基于各种储存装置约束来进行配置。例如,闪存可以按具有特定大小(诸如每一闪存页面16千字节)的页面布置。如图13中所示,当四(4)个CLM 1305a-1305d储存数据时,这些CLM中的每个可以被配置来对持久储存器中的底层蜂窝页面1320a-1320d贡献储存器的四分之一。
在实施方案中,从CLM到持久储存组件的数据传输可以通过64位处理器来进行处理。就这点而论,蜂窝页面之间的高效率的交织形式是从准备好写到永久储存器的每个CLM“蜂窝页面”起交替位字。
图14A和14B描绘根据某些实施方案的使用LBA的示例性数据储存配置。例如,图14A描绘将数据写到包括其中520个字节被配置用于P/Q奇偶校验的外部LBA的LBA1405,而图14B描绘将数据写到包括其中528个字节被配置用于P/Q奇偶校验的外部LBA的LBA 1405。较小的LBA大小(例如,520个字节)可以操作来对于内部元数据启用更多空间。在实施方案中,两种编码格式可以被支持,以使得如果利用较少量的内部元数据,则可能不需要编码差异。如果使用不同量的内部元数据,则逻辑储存单元或池可以被配置来包括指示哪种编码被利用的模式。图14C描绘根据实施方案的示例性LBA映射配置1410。
图15描绘根据实施方案的从AAM到持久储存器的数据流的流程图。如图15中所示,数据可以从AAM 1505a-1505n发送到数据管理系统内的任何可用CLM 1510a-1510n。在实施方案中,CLM 1510a-1510n可以是“主”CLM。数据可以被指定为储存在储存地址1515a-1515n处。储存地址1515a-1515n可以被分析1520,并且数据可以被储存在持久储存器1530中所指定的储存地址处。
图16描绘根据某些实施方案的地址映射。逻辑地址1610可以包括逻辑块号1615段(被标记为例如LOGIC_BLOCK_NUM[N-1.0],其中N是逻辑块号)以及页码1620段(被标记为例如PAGE_NUM[M-1.0],其中M是页码)。逻辑块号1615段可以用于其索引被编进具有物理块号1625(被标记为例如PHYSICAL_BLOCK_NUM[P-1.0],其中P是物理块号)的块映射表1630中的逻辑块号。物理地址1635可以由基于来自逻辑地址1610的逻辑块号1615段和页码1620段从块映射表1630检索的物理块号1625形成。
图17描绘根据某些实施方案的示例性持久储存元件的至少一部分。页面有效1710指针可以被配置来指向持久储存器1715中的有效页面。持久储存器1715可以包括逻辑地址1720,除了其他功能之外,逻辑地址1720块还用于指定储存在持久储存器内的数据块的位置。
图18描绘根据某些实施方案的示例性CLM和持久储存接口。如图18中所示,数据管理系统可以包括持久储存域1805,该持久储存域1805具有与至少一个处理器1850a-1850n相关联的一个或更多个PSM 1810a-1810n。PSM 1810a-1810n可以包括数据储存元件1825a-1825n,诸如闪存装置和/或硬盘驱动器,并且可以通过一个或更多个数据端口1815a-1815n(包括PCIe端口和/或交换机)进行通信。
数据管理系统还可以包括具有CLM 1830a-1830e的CLM域1810,CLM 1830a-1830e被配置来储存数据1840,诸如用户数据和/或元数据。每个CLM 1830a-1830e可以包括一个或更多个处理器1820a-1820c,和/或与一个或更多个处理器1820a-1820c相关联。CLM域1810可以是被配置为(诸如图18中所描绘的4+1RAID配置)具有四(4)个数据储存结构(D00-D38)和奇偶校验结构(P0-P8)的RAID。根据某些实施方案,数据可以从RAID配置的CLM域1810流到持久储存域1805,反之亦然。
在实施方案中,所述至少一个处理器1850a-1850n可以与存储器(未示出),诸如DRAM存储器可操作地耦合。在另一个实施方案中,所述至少一个处理器1850a-1850n可以包括美国加利福利亚圣克拉拉的公司制造的 处理器。
图19描绘根据实施方案的示例性电源分配和保持单元(PDHU)。如图19中所示,PDHU 1905可以与一个或更多个电源供应器1910电通信。数据管理系统可以包括多个PDHU 1905。电源供应器1910可以包括冗余的电源供应器,诸如两(2)个、四(4)个、六(6)个、八(8)个或十(10)个冗余的电源供应器。在实施方案中,电源供应器1910可以被配置来便利载荷共享,并且可以被配置为12伏供应器输出/PDHU输入载荷。PDHU1905可以包括充电/均衡元件1920(“SuperCap”)。充电/均衡元件1920电路可以包括多个电平,诸如两(2)个电平,在每个电平充电/放电均衡。电源分配元件1915可以被配置来将电源分配给各种数据管理系统组件1940a-1940n,包括,但不限于,LM、CM、CLM、PSM、AAM、风扇、计算装置等。PDHU 1905的电源输出可以馈送给转换器或者被配置来为接收电源的组件准备好电源供应的其他装置。在实施方案中,PDHU 1905的电源输出可以为约3.3伏至约12伏。
在实施方案中,PDHU 1905可以协调对组件1940a-1940n的“负荷均衡”电源供应,以使得PDHU以相等的或者基本上相等的比例利用。例如,在电源故障下,“负荷均衡”配置可以使得PDHU保持系统电源的操作时间能够最大化,所以可能易失的存储器可以被安全地处理。在实施方案中,一旦数据管理系统已将其状态变为持久储存状态,PDHU 1905中的其余的电源就可以用于给数据管理系统的部分供电,因为它保持处于低电源状态,直到电源恢复为止。当电源恢复时,PDHU 1905中的电荷的水平可以被监视以确定在什么时刻足够的电荷可用于使得能够随后在恢复操作之前有序地关机。
图20描绘根据实施方案的示例性系统堆栈。如本文中所描述的,数据储存阵列2065可以包括阵列存取核心2045以及至少一个数据储存核心2050a-2050n。数据储存阵列2065可以与主机接口堆栈2070进行交互,主机接口堆栈2070被配置来提供数据储存阵列与外部客户端计算装置之间的接口。主机接口堆栈2070可以包括应用程序,诸如对象储存和/或关键值储存(例如,超文本传输协议(HTTP))应用程序2005、映射化简应用程序(例如,ApacheTM的HadoopTM MapReduce)等。优化和虚拟化应用程序可以包括文件系统应用程序2025a-2025n。示例性文件系统应用程序可以包括POSIX文件系统以及ApacheTM的HadoopTM分布式文件系统(HDFS)、MPIO驱动器、逻辑装置层(例如,被配置来呈现块储存接口)、用于阵列整合的VMWare API(VAAI)兼容接口(例如,在MPIO驱动器中)等。
主机接口堆栈2070可以包括各种通信驱动器2035a-2035n,这些通信驱动器2035a-2035n被配置来便利数据储存阵列之间的通信(例如,通过阵列存取模块2045),诸如用于NIC、HBA和其他通信组件的驱动器。物理服务器2035a-2035n可以被布置来对主机接口堆栈2070内的客户端IO进行处理和/或路由。客户端IO可以通过物理网络装置2040(诸如网络交换机(例如,TOR、融合式网络适配器(CNA)、FCoE、InfiniBand等))发送到数据储存阵列2060。
在实施方案中,控制器可以被配置来将数据管理系统的单个的一致的映像提供给所有客户端。在实施方案中,数据管理系统控制软件可以包括和/或使用系统堆栈的某些方面,诸如对象储存、映射化简应用程序、文件系统(例如,POSIX文件系统)。
图21A描绘根据实施方案的示例性数据连接层面。如图21A中所示,连接层面2125可以通过连接器2145a-2145d和2150a-2150f与储存阵列模块2115a-2115d和2120a-2120f可操作地连接。在实施方案中,储存阵列模块2115a-2115d可以包括AAM,储存阵列模块2120a-2120f可以包括CM和/或CLM。因此,连接层面2125可以被配置为用于便利AAM 2115a-2115d与CLM 2120a-2120f之间的通过图21A中所描绘的通信通道2130的通信的中间层面。连接层面2125可以具有各种分布特性,这依空间要求、材料、储存阵列模块2115a-2115d和2120a-2120f的数量、通信通道2130等而定。在实施方案中,连接层面2125可以具有约440毫米的宽度2140以及约75毫米的高度2135。
连接层面2125可以被布置为内部中间层面,其中每一单元(例如,每一数据储存阵列机架)2(两)个连接层面。例如,一(1)个连接层面2125可以作为发送连接层面进行操作,另一个连接层面可以作为接收连接层面进行操作。在实施方案中,所有的连接器2145a-2145d和2150a-2150f可以是被配置为PCIe第三代3×8(8个差分对)的发送(TX)连接。CLM 2120a-2120f可以包括连接到连接器2145a-2145d的两个PCIe交换机。连接器2145a-2145d和2150a-2150f可以包括各种类型的能够根据本文中所描述的实施方案进行操作的连接。在非限制性实施例中,连接可以被配置为PCIe交换机,诸如美国加利福利亚森尼韦尔的PLX技术股份有限公司制造的ExpressLaneTM PLX PCIe交换机。连接器2145a-2145d的另一个非限制性实施例包括正交直接连接器,诸如Impact零件号76290-3022连接器,连接器2150a-2150f的非限制性实施例包括Impact零件号76990-3020连接器,这两个连接器都是由美国伊利诺斯州莱尔的制造的。所述对中间层面2125可以连接两组卡、刀片等,以使得连接到中间层面的卡可以相对于中间层面成90度或者基本上成90度就位。
图21B是根据第二实施方案的示例性控制连接层面。连接层面2125可以被配置为用于便利AAM 2115a-2115d与CLM 2120a-2120f之间的通过通信通道2130的通信的中间层面。连接2145a-2145d和2150a-2150f可以包括系列千兆字节(Gb)以太网。
根据某些实施方案,从CLM 2120a-2120f到AAM 2115a-2115d的PCIe连接可以经由“顶部”连接器发送,因为这使得中心的大部分连接器能够用于PSM-CLM连接。该配置可以操作来简化板路由,因为本质上存在三个用于传载信号的中间层面。用于两个AAM2115a-2115d的数据路径可以在单独的卡上进行配置,以使得从每个AAM到CLM2120a-2120f的信号可以以这样的方式布局,即其自己的连接无需彼此交叉,它们仅需要通过从另一个AAM起的连接。因此,可以启用具有最少层的板,就好像从每个AAM2115a-2115d起的连接可以在单个信号层(在顶部中间层面上将仅需要两个这样的层(每个AAM一个))中路由到所有的CLM 2120a-2120f一样。在实施方案中,可以利用几个层,因为它可能占用几个层“离开(escape)”高密度高速度连接器。在另一个实施方案中,连接和迹线可以以最大化可以在这些卡之间传载的已知吞吐量的方式进行,例如,增加所需层的数量。
图22A描绘根据实施方案的持久储存装置(例如,PSM)上的示例性数据飞行(data-in-flight)数据流。如图22A中所示,PSM 2205可以包括第一PCIe交换机2215、处理器2220以及第二PCIe交换机2225。第一PCIe交换机2215可以与闪存2230装置和处理器2220进行通信。在实施方案中,处理器2220可以包括SoC。第二PCIe交换机2225可以与处理器2220和CLM 2210a-2210n进行通信。处理器2220还可以被配置来与元数据和/或临时储存元件2235进行通信。PSM 2205上的数据流可以通过使用从处理器22202SoC分离的DRAM进行数据飞行来进行操作。在实施方案中,数据飞行的量可以通过使用SoC外部的、用于例如缓冲移动通过SoC的数据的存储器来增大或最大化。
图22B描绘根据第二实施方案的持久储存装置(例如,PSM)上的示例性数据飞行数据流。如图22B中所示,处理器2220SoC内部的存储器可以用于数据飞行。除了其他方面之外,使用SoC内部的存储器进行数据飞行还可以操作来减小服务请求所需的外部存储器带宽量,例如,如果数据飞行可以在SoC的内部存储器内保持的话。
图23描绘根据实施方案的示例性数据可靠性编码框架。图23中所描绘的编码框架2305可以被例如阵列控制器用于对数据进行编码。阵列控制器可以根据特定实施方案被配置来为了跨CLM(高速缓存储存器)和持久(闪存)储存器的可靠性使数据正交地编码。在非限制性实施例中,可以对于储存块中的每个LBA,按4+1奇偶校验RAID3配置对CLM编码数据(例如,以使得可以同时对CLM读或写数据)。用于阵列控制器的永久储存块可以例如根据下列特性中的一个或更多个以与大型阵列基本上类似的方式进行配置:用于256个LBA的数据(例如,具有512字节LBA的128KB)可以作为集合组储存,或者系统元数据可以使用大约九(9)个16千字节的储存条目并排放置(placed in line),每个储存条目在永久储存器中具有额外的用于可靠性(例如,用作FEC/RAID)的储存条目。
在实施方案中,写到闪存的数据可以包括约九(9)组16千字节加上用于每个级别的容忍差错/不可用性的一(1)组。FEC/RAID可以操作来支持从一(1)个(其可以是直接的奇偶校验)到至少两(2)个并发故障,甚至多达三(3)个或四(4)个。某些实施方案提供被配置用于一个闪存子系统(多个闪存子系统)上的双故障覆盖的账户。
如图23中所描绘的编码框架2305中所示的,因为闪存中的数据“行”每个为16千字节,所以DRAM“列”每个的长度为36千字节,而“正常数据”中为32千字节,“元数据”中为4千字节。每个CLM的高速缓存列中的每个逻辑“行”可以包括4千字节的数据,多条32个LBA每一LBA具有128个字节。在实施方案中,DRAM高速缓存奇偶校验可以被写入(除非所指定的用作用于高速缓存条目的奇偶校验的CLM丢失),但是从不被读取(除非其他的CLM之一丢失)。
图24A-25B描绘根据某些实施方案的示例性读数据操作和写数据操作。如图24A中所示,数据2405的用户写到用户读可以被降级到闪存2415。图24C图示说明用户写到随后读可以不被降级到闪存2415。
如图24B中所示,某些实施方案提供,部分被写入在高速缓存2410中的数据2405无需被系统读取来整合旧数据,例如,因为许多情况具有没有被读而是被写的数据(例如,循环日志)。根据数据2405(诸如日志或系统元数据)的大小和性质,某些块可以在无需从永久储存器读取数据的剩余部分的情况下被频繁地写入介质中,直到数据准备好被降级为止。在实施方案中,数据整合可以被配置为使得被用户/客户端写入的数据2405是最近的副本,并且可以完全覆写中间高速缓存数据2415。
在实施方案中,如果数据2405从未被用户写入,则不存在“在永久储存器中的数据”。就这点而论,系统可以容忍被用户写入的数据2405中的间隙/孔洞,因为以前不存在数据。在非限制性实施例中,系统可以用默认值(例如,仅仅是一个或更多个零,或者是一个或更多个零与其他默认值组合)替换其中没有数据2405被写入的空间。这可以进行许多次,例如,当第一扇区被写到高速缓存2410中时,当数据2405将被降级时,之间的时刻,或者它们的某种组合。非限制性的示例性的实施例提供,替换可以在空的决策点发生。非限制性实施例提供,如果当高速缓存条目被分配时数据2405被清除,则系统可能不再需要跟踪该数据不具有先前的状态。在另一个非限制性实施例中,如果当数据2405被提交时它将被设置,则高速缓存2410中的有效扇区的映射以及块在持久储存器中无效的事实可以操作来表示该数据使用默认值,例如,高速缓存中的数据无需被清除。
在实施方案中,系统可以使用“整合收割者(integration reaper)”处理,该处理扫描被视为接近它可能被降级到永久储存器的点的数据2405,并且读取任何丢失的组件,以使得系统不会由于缺乏数据而冒着陷入推迟进行实际写入的能力的风险。在非限制性实施例中,写线程可以绕开等待整合的降级项。就这点而论,实施方案提供,系统可以维护最后一次客户端的操作触及高速缓存地址的“实时时钟”。例如,最近最少使用的LRU可以用于确定高速缓存条目去除(eviction)的适合时间。当部分在高速缓存2410中的储存单元请求数据时,当高速缓存不具有被请求的组件时,系统可以从永久储存器读数据,避免不必要的延迟。
图25描绘根据某些实施方案的用于重新将寻址映射到邮箱/门铃区域的非透明桥接的图示说明。如图25的非限制性图示说明中所描绘的,储存片段2505a-2505i中的每个可以具有关于例如编号为0至5的高速缓存查找模块2510a-2510f中的每个的“邮箱”和“门铃”。当通过PCIe交换机将消息发送到用于每个高速缓存查找模块2510a-2510f的存储器区域时,地址将被重新映射,以使得每个高速缓存查找模块2510a-2510f从对于储存片段2505a-2505i 0至19而言是唯一的存储器区域中的每个源储存片段2505a-2505i接收消息。图18示出10个储存片段2505a-2505i,因为示图中所示的每个PCIe交换机连接到10个储存片段2505a-2505i,例如,可以在每个独立的交换机中分开进行(例如,在它们自己的源存储器空间中工作)的相同类型的映射。每个储存片段2505a-2505i可以具有对于所有的高速缓存查找模块2510a-2510f都相同的寻址,反之亦然。PCIe交换机可以进一步操作来重新映射地址,以使得当所有片段写到“CLM 0”时,CLM0可以在其邮箱中从每个储存片段2505a-2505i唯一地接收消息。
图26描绘根据某些实施方案的从CLM写到PSM的示例性寻址方法。如图26中所示,基本地址2605可以被配置用于到任何PSM的数据,基本地址2610可以被配置用于到任何CLM的数据。寻址方法可以包括用于在CLM的PCIe交换机的入站端口重新映射的非透明模式2615。对于PSM和CLM的PCIe端口,目的地可以被指定为2620a、2620b。寻址方法可以包括用于在PSM上的PCIe交换机的出站端口重新映射的非透明模式2625。
反向路径可以通过用“CLM”替换“PSM”来从图19确定,反之亦然。用于出站发送的数据的基本地址可以在处理器的外部。在实施方案中,用于接收数据发送的存储器可以被配置来装入每个端点的片上存储器以避免对于数据飞行的外部存储器参考的需要。接收器可以对将数据移出接收区进行处理以给额外的与其他端点的通信腾出空位。某些实施方案提供类似的或者基本上类似的应用于与阵列存取模块进行通信以及彼此进行通信(例如,经由阵列存取模块PCIe交换机)的CLM的非透明桥接重新映射。系统可以根据某些实施方案被配置来例如通过限定从源或类似技术可到达的接受地址范围来阻止类似装置之间(例如,CLM到CLM或者PSM到PSM)的通信。
根据某些实施方案,写事务可以至少包括下列两个组件:写到高速缓存以及降级到永久储存器的组件。写事务可以包括未被新近写入的数据覆写的旧数据的整合。在实施方案中,“活动的”CLM可以对每个LPT条目控制对高速缓存数据的存取,以使得所有的或者基本上所有的CLM都可以保存高速缓存的照样行事的组件,包括主导者和跟从者两者。图27A描绘读事务的第一部分的示例性流程图,图27B描绘根据某些实施方案的读事务的第二部分。图27C描绘根据某些实施方案的写事务的示例性流程图。图27A-27C是非限制性的,并且仅仅是出于示例说明的目的而示出的,因为数据读/写事务可以根据实施方案使用比本文中所描绘的步骤多或少的步骤来进行操作。例如,可以添加额外的步骤和/或块来对诸如故障(包括接收不足的应答)的事件进行处理,其中可以重新产生使处理继续向前进行或者退回到先前的状态的命令。
大规模数据管理系统
本文中所描述的某些实施方案提供用于使得能够实现有效的且高效率的web规模的、云规模的或者大规模的(“大规模”)数据管理系统的技术,这些数据管理系统除了其他部件之外还包括上述组件和系统。在实施方案中,分层存取方式可以用于储存单元的分布式系统。在另一个实施方案中,来自主机的逻辑地址可以用于高级别地将存取请求分配给一组核心节点,对于后端储存器提供数据完整性。这样的实施方案可以至少部分通过MPIO驱动器来实现。映射可以基于例如某些更高位的地址位上的寻址确定,并且所有客户端都可以被配置为具有相同的映射。响应于核心节点的故障事件,MPIO驱动器可以使用确定如何在更少的核心节点上提供储存存取的替代表。
在大规模系统中,客户端可以直接地或者经由中间交换机层间接地连接。在每个核心节点内,AAM可以例如通过通信装置、服务器、组装件、板等(“RX刀片”)将可靠性规模传送给客户端和若干个组件。类似于跨正常或故障情况下若干个核心节点之间的MPIO驱动器均衡,AAM可以使用更精细粒度的存取跨RX刀片如何分布的确定性映射。对于大多数存取,数据并行地跨RX刀片发送,对储存单元进行写或读。AAM和RX刀片可以不具有可以用于服务于随后的对于相同数据的请求的高速缓存,例如,所有数据都可以本机(natively)从储存单元存取。
大规模系统内的储存单元可以在内部提供分层储存系统,例如,包括可以服务于请求的高性能层以及更经济地储存数据的低性能层中的一个或更多个。当两个层都被填充时,高性能层可以被认为是“高速缓存”。当高性能层和低性能层都存在时,高性能层与低性能层之间的数据存取可以以最大化每一各自的层的益处的方式来执行。
图28A和28B描绘根据某些实施方案的示例性数据管理系统单元。根据某些些实施方案,数据管理系统可以包括由数据服务核心2805a、2805b形成的单元(或“机架”),数据服务核心2805a、2805b可操作地耦合到仓库2810a-2810x。数据服务核心2805a、2805b可以包括AAM以及能够服务于客户端IO请求并且存取储存在仓库2810a-2810x中的数据的其他组件。如图2A中所示,数据管理单元2815可以包括一个数据服务核心2805a和八(8)个仓库2810a-2810h。数据管理系统可以包括多个数据管理单元2815,诸如从一(1)个到四(4)个单元。图28B描绘例如用于更大的全规模数据管理系统的单元2820,该单元2820包括数据服务核心2805b和十六(16)个仓库2810i-2810x。在实施方案中,数据管理系统可以包括五(5)个到八(8)个单元2820。实施方案不限于单元2815、2820、数据服务核心2805a、2805b、仓库2810a-2810x和/或任何其他组件的数量和/或布置,因为这些仅仅是出于示例说明的目的而提供的。事实上,可以根据某些实施方案进行操作的单元和/或组件的任何数量和/或组合都设想在本文中。
图29描绘根据实施方案的示例性web规模的数据管理系统。如图29中所示,web规模的数据管理系统可以包括服务器机架2905a-2905n,这些服务器机架2905a-2905n包括服务器2910和交换机2915,诸如便利数据管理系统与数据客户端之间的通信的架顶(TOR)交换机。通信构架2920可以被配置来将服务器机架2905a-2905n与数据管理系统的组件(诸如数据服务核心2925a-2925d)连接。在实施方案中,通信构架2920可以包括,但不限于,SAN连接、FibreChannel、以太网(例如,FCoE)、Infiniband或者它们的组合。数据服务核心2925a-2925d(“核心”)可以包括RX刀片2940、阵列存取模块2945以及再分配层2950。核心-仓库互连2930可以被配置来提供数据服务核心2925a-2925d与仓库2935之间的连接。
为了使得能够通过数据服务核心2925a-2925d实现高吞吐量的最大并行性,特定实施方案提供,数据可以跨RX刀片2940通过LBA划分。例如,每个LBA的一小部分储存在后端的每个组件仓库中。这可以操作来提供多个仓库2935和多个RX刀片2940来参与对基本操作进行处理所需的吞吐量。在仓库2935的内部,单个指针组可以用于每个仓库中的每个逻辑映射的数据储存块。非限制性实施例提供,指针组可以由低性能储存指针、高性能储存指针和/或可选的标志位中的一个或更多个构成。
在实施方案中,每个数据服务核心2925a-2925d中的每个RX刀片2940可以在逻辑上或者在物理上连接到系统中的每个仓库2935。这可以根据各种方法进行配置,包括,但不限于,从每个仓库2935直接通过电缆连接到所有的RX刀片2940,经由例如可以是无源的插线板间接地连接,和/或经由有源交换机间接地连接。
图30描绘根据特定实施方案的数据管理系统内的数据存取的示例性流程图。数据传输可以建立在AAM 3005与仓库3015之间,其中RX刀片3010本质上在提供RAID功能的同时便利数据传输。因为RAID引擎(例如,RX刀片3010)不维护高速缓存,所以装置可以利用它们的基本上所有的IO管脚来可靠地将数据和内部系统控制消息从AAM3005(朝向客户端)发送到仓库3015(数据被储存在其中)。
图31描绘根据实施方案的示例性再分配层。根据特定实施方案,再分配层3100可以被配置来提供RX刀片与仓库之间的连接(例如,逻辑连接)。如图31中所示,再分配层3100可以包括对于储存室3110的再分配集合3105a-3105n以及对于RX刀片3135的再分配集合3120a-3120b。控制/管理再分配集3125可以被配置用于控制卡3115、3130。
根据特定实施方案,再分配层3100可以被配置来经由从仓库3110到RX刀片3135的单个的光纤的固定交叉来提供这样的连接。在实施方案中,该交叉可以为无源的(例如,被配置为无源光学交叉),需要很少的电源或者基本上不需要电源。在实施方案中,再分配层3100可以包括在后面从仓库3110接纳电缆并且在前面具有到RX刀片3135的一组长卡。
RX刀片可以被配置来存取数据跨单个的仓库如何布局的一致映射。在实施方案中,数据可以被布局来便利查找表以确定储存位置,或者在已知时间量内是在计算上是可确定的。在使用表的特定实施方案中,可以直接使用查找表或者经由映射函数使用若干个位来找到储存值的表条目。例如,根据映射,一些条目可以被配置为使得没有数据曾被储存在那里,如果如此,则映射函数应能够识别内部差错。在实施方案中,表可以具有指出哪个仓库储存每个RAID列的指示符。高效率的包装可以具有表示这个偏移处的存取是使用、还是不使用特定仓库的单个位。列可以按固定次序被利用,或者偏移可以被储存以说明哪个列具有起始列。所有位都可以按列被利用的次序进行标记,或者标识符可以用于表示每个位对应于哪个列。例如,字段可以引用对于N个被标记的位中的每个说明每个连续的位表示哪个列的表。数据可以被布置为使得所有的保存内容的仓库在其中每隔一个仓库保存内容的RAID组中可以是相等的或基本上相等的量的内容。这可以操作来区分保存内容的仓库与由管理员指定用作“现场/热”后备的那些仓库。就仓库到列的固定映射而言,在仓库发生故障的情况下,其RAID组中仅那些其他的仓库可以参与RAID重构。就相当均匀的数据分配而言,任何仓库故障都可能具有重构跨综合体中的所有的其他的活动仓库分配的数据所需的工作负荷。
图32A描绘根据实施方案的大规模数据管理系统的示例性写事务。图32B描绘根据实施方案的大规模数据管理系统的示例性读事务。图32C和32D分别描述根据实施方案的大规模数据管理系统的示例性比较和交换(CAS)事务的第一部分和第二部分。
图33A和33B分别描绘根据第一实施方案和第二实施方案的示例性仓库室。如图33A中所示,仓库室3305可以包括与存储器元件3320a-3320b和用于控制存取的各种通信元件(诸如以太网通信元件3335a、3335b和PCIe交换机3340g(例如,四十八(48)通路第三代PCIe交换机))进行可操作的通信的处理器3310。核心控制器3315可以被配置来经由上行链路3325a-3325d与数据服务核心进行通信。一组连接器3315a-3315f可以被配置来将室3305连接到高速缓存查找模块,而连接器3345a-V45e可以被配置来将室连接到储存片段(例如,通过转接卡)。在实施方案中,控制器3315可以被配置来通过连接器3315a-3315f与用于高速缓存和查找的高速缓存查找模块进行通信。各种通信交换机3340a-3340g(例如,PCIe交换机)可以被配置来在室内提供通信。
在实施方案中,所有数据在例如经由数据服务核心被数据客户端读或写时都可以明确地通过高速缓存传输。并非所有的数据都需要实际上曾被写到辅助储存器。例如,如果某些数据被核心临时创建、写入、然后“释放”(例如,被标记为不再使用,诸如TRIM),则该数据事实上可以如此短暂,以至于它从未被写到下一级储存器。在这样的情况下,“写入”可以被认为已经被“捕捉”或者消除了对后端储存器有任何影响。日志文件通常相对较小,并且可能整个地装入在根据本文中所提供的特定实施方案配置的系统的高速缓存的内部。在某些实施方案中,日志被写的数据可能多于对于其他储存器的改变量,所以呈现给后端储存器的可能的写负荷可以显著地减小,例如,减小一半。
在实施方案中,以不具有局部性的随机的次序存取非常少的位置的工作负荷可以看到对于后端储存器的写负荷增大,因为例如,很小的写入可以产生从持久储存器读较大页面,然后稍后当高速缓存条目被去除(evict)时回写。更近期的应用趋向于内容更加丰富、存取更多和/或对趋向于具有更大局部性的数据执行分析。对于真正随机的工作负荷,某些实施方案可以被配置来以最短等待时间使用如实际储存器那么大的高速缓存。
另外,所述系统可以被配置来在不存在任何二级储存器时进行操作。在示例性的非限制性实施例中,为了持久性,高速缓存查找模块可以用一种形式的持久存储器填充,包括,但不限于,磁阻随机存取存储器(MRAM)、相变存储器(PRAM)、电容器/闪存支持的DRAM或者它们的组合。在实施方案中,不需要从室控制器3315到辅助储存器的直接数据传输路径,因为高速缓存层可以直接通过接口连接到辅助储存层。
图34描绘用于将辅助储存器连接到高速缓存的示例性系统。在仓库内,若干个CLM(诸如图34中的CLM0-CLM5)可以具有与若干个持久储存节点(例如,PSM)的连接性。高速缓存的RAID储存器使得大量处理器能够共享用于可以从外部存取的任何数据的数据储存器。这还提供了用于结构化与辅助储存解决方案的连接性的机制。在实施方案中,PCIe交换机可以直接连接到每个CLM,这些中的大多数也连接到后端储存节点(或中央控制器),并且它们全都连接到一个或更多个“中转交换机”。
虽然永久储存器中的数据可以唯一地储存在仓库内,但是非限制性实施例提供,CLM可以使数据按RAID布置储存,包括,但不限于,4+1RAID或8+1RAID。在实施方案中,对于系统中的每次传输,系统中的数据传输可以跨多个“中转交换机”被均衡。在实施方案中,可以利用XOR函数,其中辅助储存节点ID和CLM ID的XOR可以用于确定中间交换机。按RAID布置储存的数据可以操作来均衡中间交换机之间的数据传输。根据某些实施方案,部署RAID保护的、可能易失的高速缓存可以使用从高速缓存到可能来自CLM的持久储存器的写入。例如,写入可能来自具有无故障情况下的实际数据的部分的CLM,因为这节省了目的地处的奇偶校验计算。从持久储存器到高速缓存的读取可以将数据发送到所有五个CLM,在这些CLM中储存了数据组件和奇偶校验。在实施方案中,CLM可以被配置为不具有关于每个高速缓存条目的内容。在该实施方案中,指向高速缓存条目的LPT可以在这些CLM(诸如图34的镜像到其余五个中的任何一个的CLM0-CLM5)中的任何一个上。
大型高速缓存可以根据本文中所提供的特定实施方案来形成。非限制性实施例提供,具有使用64GB DIMM的6个CLM的每个仓库可以使得能够实现大规模高速缓存大小。在实施方案中,每个LPT条目可以是例如64位,以使得它可以装入DRAM存储器中的单个字线(64位+8位ECC,由处理器处理)中。
在闪存装置用作持久储存器的实施方案中,大规模高速缓存可以提高这些装置的寿命。存取闪存进行读取的动作对于底层装置可能引起微小的“干扰”。可能引起干扰的读取的次数通常在数千次存取中进行测量,但是可能取决于互访(inter-access)频率。平均高速缓存周转时间可以确定对于闪存页面的有效的最小的互访时间。就这点而论,通过具有大规模高速缓存,对于任何给定页面的连续存取之间的时间可以用多少秒测量,使得装置可以稳定。
图35A描绘根据实施方案的示例性仓库的顶视图。如图35A中所示,仓库3505可以包括与高速缓存查找模块3530a-3530f可操作地通信的持久储存元件515a-515e(PSM或储存片段)。冗余电源供应器3535a、3535b和超级电容器和/或电池3520a-3520j可以被包括来给仓库3505供电和/或便利对于仓库3505的电源管理功能。一组风扇3525a-3525l可以布置在仓库1405内以冷却其组件。图35B描绘仓库1405的示例性介质端视图,该视图描绘用于该仓库的电源分配和保持单元3555a-3555e的布置。图35C描绘仓库3505的电缆端视图。
图36A描绘根据实施方案的示例性数据服务核心的顶视图。如图36A中所示,数据服务核心3605可以包括通过中间层面连接器3620g连接的RX刀片3615a-3615h、控制卡3610a、3610b以及AAM 3620h。再分配层3625d可以提供RX刀片3615a-3615h与仓库之间的连接。数据服务核心3605可以包括各种电源供应元件,诸如电源分配单元3635和电源供应器3640a、3640b。图36B和36C分别描绘图36A中所示的示例性数据服务核心的介质端视图和电缆端视图。在实施方案中,一个或更多个RX刀片3615a-3615h可以实现可靠性层的一些或全部,例如,在一侧经由RDL到中间层面连接到仓库,并且连接到AAM。
图37描绘根据实施方案的示例性室控制板。如图37中所示,室控制板3705可以包括与存储器元件3750a-3750h可操作地通信的处理器3755a、3755b。处理器间通信通道3755可以互连处理器3755a、3755。室控制板3705可以被配置来除了其他方面之外还对数据服务核心与室的接口进行处理,例如,通过上行链路模块3715进行处理。在实施方案中,上行链路模块375可以被配置为光学上行链路模块,该光学上行链路模块具有通过以太网通信元件3725a到数据服务核心控件3760a、3760b的上行链路以及通过PCIe交换机3720a到RX刀片3710a-3710n的上行链路。在实施方案中,每个信号可以在并行链路中传载(例如,通过波分复用(WDM))。在实施方案中,PCIe元件3720a-3720e可以自动协商作为数据传输的一代(例如,PCIe第一代、第二代或第三代)的宽度的通路的数量,以使得一代卡上的链路的宽度无需准确地与系统的最大能力相符。室控制板3705可以包括PCIe连接器3740和以太网连接器3745a、3745b,PCIe连接器3740用于将室控制板连接到高速缓存查找模块,以太网连接器3745a、3745b用于连接到数据管理系统的控制通信网络。
图38描绘根据实施方案的示例性RX刀片。如图38中所示,RX刀片3805可以包括可操作地耦合到存储器元件3840a-3840d的处理器3810。根据某些实施方案,存储器元件3840a-3840d可以包括布置在用于处理器310的一个或更多个存储器通道中的DIMM和/或闪存。处理器3810可以与通信元件3830(诸如以太网交换机(八(8)通路))进行通信。
RX刀片3805可以包括被配置来支持仓库3820a-3820n的上行链路模块3825a-3825d。在实施方案中,上行链路模块3825a-3825d可以是光学的。在另一个实施方案中,上行链路模块3825a-3825d可以包括例如分组为(八(8)个)集合的收发器,其中每个集合经由RDL与连接器相关联。
一个或更多个FEC/RAID组件3815a、3815b可以布置在RX刀片3805上。在实施方案中,FEC/RAID组件3815a、3815b可以被配置为端点。非限制性实施例提供,如果用于FEC/RAID组件3815a、3815b的功能用CPU上的软件实现,则节点可以是根联合体。在这样的实施例中,连接到FEC/RAID组件3815a、3815b的PCIe交换机可以利用非透明桥接,所以任一侧的处理器(仓库室或AAM)可以更高效率地与它们通信。
FEC/RAID组件3815a、3815b可以与各种通信元件385a-385e进行通信。在实施方案中,通信元件385a-385e的至少一部分可以包括PCIe交换机。FEC/RAID组件3815a、3815b可以通过连接器3850a-3850d进行通信,上行链路模块3825a-3825d和/或其组件通过通信元件385a-385e进行通信。
本公开就本申请中所描述的具体实施方案而言是没有限制的,这些实施方案意图作为各方面的示例说明。如本领域的技术人员将显而易见的,在不脱离其精神和范围的情况下,可以进行许多修改和变化。除了本文中所枚举的那些方法和设备之外,在本公开的范围内的功能等同的方法和设备对于本领域的技术人员而言从前面的描述将是清楚的。这样的修改和变化意图落在所附权利要求书的范围内。本公开仅由所附权利要求书的术语,连同这样的权利要求有权享有的等同形式的整个范围限制。要理解,本公开不限于特定的方法、试剂、化合物、组成或生物系统,这些方法、试剂、化合物、组成或生物系统当然可以有所变化。还要理解,本文中所使用的术语仅仅是出于描述特定实施方案的目的,并非意图限制。
关于基本上任何复数和/或单数术语在本文中的使用,本领域的技术人员可以根据上下文和/或应用视情况从复数转化为单数和/或从单数转化为复数。为了清楚起见,各种单数/复数置换可以在本文中被明确地阐述。
本领域的技术人员将理解,一般来说,本文中所使用的术语,尤其是在所附权利要求书(例如,所附权利要求书的主体)中所使用的术语,一般意图作为“开放性的”术语(例如,术语“包括(including)”应被解释为“包括但不限于”,术语“具有”应被解释为“至少具有”,术语“包括(includes)”应被解释为“包括但不限于”,等等)。虽然各种组成、方法和装置是就“包括(comprising)”各种组件或步骤来描述的(被解释为意指“包括但不限于”),但是这些组成、方法和装置也可以“基本上由各种组件和步骤构成”或者“由各种组件和步骤构成”,并且这样的术语应被解释为本质上限定封闭的成员组。本领域的技术人员将进一步理解,如果意图有特定数量的引入的权利要求表述,则将在权利要求中明确地表述这样的意图,并且在不存在这样的表述的情况下,不存在这样的意图。例如,为帮助理解,以下所附权利要求书可以包含介绍性短语“至少一个”和“一个或更多个”的使用以引入权利要求表述。然而,使用这样的短语不应当被解释为暗示以不定冠词“a”或“an”(“一”)引入的权利要求表述使包含这样引入的权利要求表述的任何特定的权利要求限于只包含一个这样的表述的实施方案,即使当同一权利要求包括介绍性短语“一个或更多个”或“至少一个”以及诸如不定冠词“a”或“an”(“一”)(例如,“a”和/或“an”(“一”)应被解释为意指“至少一个”或“一个或更多个”)时;同样适用于用于引入权利要求表述的定冠词的使用。另外,即使明确地表述了特定数量的引入的权利要求表述,本领域的技术人员也将认识到,这样的表述应被解释为意指至少所表述的数量(例如,“两个表述”的没有其他修饰语的无修饰表述通常意指至少两个表述或者两个或更多个表述)。此外,在使用类似于“A、B和C等中的至少一个”的惯例的那些情况下,一般来说,这种配置的目的是本领域的技术人员将会理解该惯例的含义(例如,“具有A、B和C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、同时具有A和B、同时具有A和C、同时具有B和C和/或同时具有A、B和C等的系统)。在使用类似于“A、B或C中的至少一个”的惯例的那些情况下,一般来说,这种配置的目的是本领域的技术人员将会理解该惯例的含义(例如,“具有A、B或C中的至少一个的系统”将会包括但不限于仅具有A、仅具有B、仅具有C、同时具有A和B、同时具有A和C、同时具有B和C和/或同时具有A、B和C等的系统)。本领域的技术人员将进一步理解,呈现两个或更多个替代术语的几乎任何转折性词语和/或短语,不管是在说明书、权利要求书还是在附图中,都应被理解为设想到包括术语之一、术语中的任一个或者两个术语的可能性。例如,短语“A或B”将被理解为包括“A”或“B”或者“A和B”的可能性。
另外,在本公开的特征或方面就Markush(马库什)组进行描述的情况下,本领域的技术人员将认识到,本公开由此还就Markush组的任何单个成员或成员子组进行描述。
如本领的技术人员将理解的,为了任何目的和全部目的,诸如就提供书面描述而言的目的,本文中所公开的所有范围还包含任何可能的子范围和全部可能的子范围以及它们的子范围的组合。任何列出的范围可以容易地被认为是充分地描述和启用同一范围,该范围分解为至少相等的二分之一、三分之一、四分之一、五分之一、十分之一等。作为非限制性实施例,本文中所讨论的每个范围可以容易地分解为下三分之一、中三分之一和上三分之一等。如本领域的技术人员还将理解的,诸如“高达”、“至少”等的所有语言都包括所记载的数量,并且指的是随后可以如以上所讨论的那样分解为子范围的范围。最后,如本领域的技术人员将理解的,范围包括每个单个的数字。因此,例如,具有1-3个单元的组指的是具有1个、2个或3个单元的组。类似地,具有1-5个单元的组指的是具有1个、2个、3个、4个或5个单元的组,依此类推。
各种以上所公开的特征和功能以及其他特征和功能或者其替代形式可以组合到许多其他不同的系统或应用中。本领域的技术人员以后可以对其做出各种目前不可预见的或不可预料的替代、修改、变化或改进,这些替代、修改、变化或改进中的每项也意图被所公开的实施方案包含。
Claims (36)
1.一种数据储存阵列,所述数据储存阵列包括:
至少一个阵列存取模块,所述至少一个阵列存取模块可操作地耦合到多个计算装置,所述至少一个阵列存取模块被配置来:
从所述多个计算装置接收数据请求,所述数据请求包括读请求和写请求;
格式化所述数据请求以供发送到数据储存系统,所述数据储存系统包括高速缓存组件和持久储存组件;以及
响应于数据请求格式化输出数据以供呈现给所述多个计算装置;以及
至少一个高速缓存查找模块,所述至少一个高速缓存查找模块可操作地耦合到所述至少一个阵列存取模块和所述持久储存组件,所述至少一个高速缓存查找模块使所述高速缓存组件的至少一部分布置在其中,其中所述至少一个高速缓存查找模块被配置来:
从所述至少一个阵列存取模块接收所述数据请求;
在所述数据储存系统中查找与所述数据请求相关联的元数据;
从所述数据储存系统读取与读数据请求相关联的输出数据以供发送到所述至少一个阵列存取模块;以及
将与写数据请求相关联的输入数据储存在所述数据储存系统中。
2.如权利要求1所述的数据储存阵列,其中所述至少一个阵列存取模块包括至少一个处理器。
3.如权利要求1所述的数据储存阵列,其中所述至少一个阵列存取模块包括至少一个集成电路。
4.如权利要求3所述的数据储存阵列,其中所述至少一个集成电路包括现场可编程门阵列。
5.如权利要求3所述的数据储存阵列,其中所述集成电路被配置来对于所述数据请求提供数据冗余和错误检查。
6.如权利要求1所述的数据储存阵列,其中所述至少一个阵列存取模块包括可操作地耦合到所述多个计算装置的处理器,所述处理器被配置来从所述多个计算装置接收所述数据请求并且格式化所述输出数据以供呈现给所述多个计算装置。
7.如权利要求6所述的数据储存阵列,其中所述至少一个阵列存取模块包括可操作地耦合到所述处理器的集成电路,所述集成电路被配置来:
从所述处理器接收数据请求;以及
格式化所述数据请求以供呈现给所述至少一个高速缓存查找模块。
8.如权利要求7所述的数据储存阵列,其中所述集成电路被进一步配置来格式化从所述至少一个高速缓存查找模块接收的输出数据。
9.如权利要求1所述的数据储存阵列,其中所述高速缓存组件包括至少一个双列直插存储器模块。
10.如权利要求1所述的数据储存阵列,其中所述高速缓存组件包括至少一个闪存模块。
11.如权利要求1所述的数据储存阵列,其中所述至少一个高速缓存查找模块包括被配置来在所述高速缓存组件中查找数据的处理器。
12.如权利要求1所述的数据储存阵列,其中所述至少一个高速缓存查找模块被进一步配置来响应于被请求的数据未被储存在所述高速缓存组件中从所述持久储存组件读取所述被请求的数据。
13.如权利要求12所述的数据储存阵列,其中所述至少一个高速缓存查找模块被进一步配置来在将来自所述持久储存组件的所述被请求的数据发送到所述至少一个阵列存取模块之前将所述被请求的数据储存在所述高速缓存组件中。
14.如权利要求1所述的数据储存阵列,其中所述持久储存组件包括多个闪存卡。
15.如权利要求14所述的数据储存阵列,其中所述多个闪存卡中的每个包括多个被配置来储存数据的闪存芯片。
16.如权利要求1所述的数据储存阵列,其中所述数据储存阵列包括至少四个阵列存取模块和至少六个高速缓存查找模块。
17.如权利要求16所述的数据储存阵列,其中所述至少四个阵列存取模块中的每个可操作地耦合到所述至少六个高速缓存查找模块中的每个。
18.如权利要求1所述的数据储存阵列,其中所述至少一个阵列存取模块通过架顶交换机可操作地耦合到所述多个计算装置。
19.如权利要求1所述的数据储存阵列,其中以太网用于控制路径通信。
20.如权利要求1所述的数据储存阵列,其中外设组件互连高速用于数据路径通信。
21.一种制造数据储存阵列的方法,所述方法包括:
提供至少一个阵列存取模块,所述至少一个阵列存取模块被配置来可操作地耦合到多个计算装置;
将所述至少一个阵列存取模块配置来:
从所述多个计算装置接收数据请求,所述数据请求包括读请求和写请求;
格式化所述数据请求以供发送到数据储存系统,所述数据储存系统包括高速缓存组件和持久储存组件;以及
响应于数据请求格式化输出数据以供呈现给所述多个计算装置;
提供至少一个高速缓存查找模块,所述至少一个高速缓存查找模块可操作地耦合到所述至少一个阵列存取模块和所述持久储存组件;
将所述高速缓存组件的至少一部分布置在所述至少一个高速缓存查找模块中;以及
将所述至少一个高速缓存查找模块配置来:
从所述至少一个阵列存取模块接收所述数据请求;
在所述数据储存系统中查找与所述数据请求相关联的元数据;
从所述数据储存系统读取与读数据请求相关联的输出数据以供发送到所述至少一个阵列存取模块;以及
将与写数据请求相关联的输入数据储存在所述数据储存系统中。
22.如权利要求21所述的方法,还包括将所述至少一个阵列存取模块配置为通过处理器可操作地耦合到所述多个计算装置,所述处理器被配置来从所述多个计算装置接收所述数据请求并且格式化所述输出数据以供呈现给所述多个计算装置。
23.如权利要求22所述的方法,还包括提供驻留在所述至少一个阵列存取模块内并且可操作地耦合到所述处理器的集成电路,所述集成电路被配置来:
从所述处理器接收数据请求;以及
格式化所述数据请求以供呈现给所述至少一个高速缓存查找模块。
24.如权利要求23所述的方法,还包括将所述集成电路配置来格式化从所述至少一个高速缓存查找模块接收的输出数据。
25.如权利要求23所述的方法,还包括将所述集成电路配置来对于所述数据请求提供数据冗余和错误检查。
26.如权利要求21所述的方法,还包括将所述高速缓存组件配置来使用至少一个双列直插存储器模块储存数据。
27.如权利要求21所述的方法,还包括将所述高速缓存组件配置来使用至少一个闪存模块储存数据。
28.如权利要求21所述的方法,还包括提供驻留在所述至少一个高速缓存查找模块内以在所述高速缓存组件中查找数据的处理器。
29.如权利要求21所述的方法,还包括在所述持久储存组件内布置多个闪存卡以供在所述持久储存组件中储存数据。
30.如权利要求29所述的方法,还包括在所述闪存卡上布置多个闪存芯片以供在所述多个闪存卡上储存数据。
31.一种对于多个计算装置管理对储存在数据储存阵列中的数据的存取的方法,所述方法包括:
将至少一个阵列存取模块可操作地耦合到多个计算装置;
在所述至少一个阵列存取模块从所述多个计算装置接收数据请求,所述数据请求包括读请求和写请求;
所述至少一个阵列存取模块格式化所述数据请求以供发送到数据储存系统,所述数据储存系统包括高速缓存组件和持久储存组件;
所述至少一个阵列存取模块响应于数据请求格式化输出数据以供呈现给所述多个计算装置;
将至少一个高速缓存查找模块可操作地耦合到所述至少一个阵列存取模块和所述持久储存组件,所述至少一个高速缓存查找模块使所述高速缓存组件的至少一部分布置在其中;
在所述至少一个高速缓存查找模块从所述至少一个阵列存取模块接收所述数据请求;
所述至少一个高速缓存查找模块在所述数据储存系统中查找与所述数据请求相关联的元数据;
所述至少一个高速缓存查找模块从所述数据储存系统读取与读数据请求相关联的输出数据以供发送到所述至少一个阵列存取模块;以及
所述至少一个高速缓存查找模块将与写数据请求相关联的输入数据储存在所述数据储存系统中。
32.如权利要求31所述的方法,其中所述至少一个高速缓存查找模块将所述输入数据储存在所述高速缓存组件中。
33.如权利要求31所述的方法,其中所述至少一个高速缓存查找模块使用奇偶校验法储存所述输入数据。
34.如权利要求33所述的方法,其中所述数据储存阵列包括至少六个高速缓存查找模块,并且所述奇偶校验法包括4+1奇偶校验法。
35.如权利要求31所述的方法,其中所述至少一个阵列存取模块通过将所述数据请求聚集成逻辑字节寻址单元来格式化所述数据请求。
36.如权利要求31所述的方法,还包括所述至少一个高速缓存查找模块将来自所述高速缓存组件的不常用的数据降级到所述持久储存组件。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261697711P | 2012-09-06 | 2012-09-06 | |
US61/697,711 | 2012-09-06 | ||
US201361799487P | 2013-03-15 | 2013-03-15 | |
US61/799,487 | 2013-03-15 | ||
PCT/US2013/058643 WO2014039922A2 (en) | 2012-09-06 | 2013-09-06 | Large-scale data storage and delivery system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104903874A true CN104903874A (zh) | 2015-09-09 |
Family
ID=55072387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380058166.2A Pending CN104903874A (zh) | 2012-09-06 | 2013-09-06 | 大规模数据储存和递送系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20150222705A1 (zh) |
EP (1) | EP2893452A4 (zh) |
JP (1) | JP2015532985A (zh) |
CN (1) | CN104903874A (zh) |
WO (1) | WO2014039922A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107608462A (zh) * | 2016-07-12 | 2018-01-19 | 纬创资通股份有限公司 | 服务器系统及储存单元的控制方法 |
CN109240937A (zh) * | 2017-07-11 | 2019-01-18 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN109614040A (zh) * | 2018-11-26 | 2019-04-12 | 武汉烽火信息集成技术有限公司 | 具有多存储池的存储方法、存储介质、电子设备及系统 |
CN110837339A (zh) * | 2018-08-17 | 2020-02-25 | 群联电子股份有限公司 | 数据整并方法、存储器存储装置及存储器控制电路单元 |
CN111857602A (zh) * | 2020-07-31 | 2020-10-30 | 重庆紫光华山智安科技有限公司 | 数据处理方法、装置、数据节点及存储介质 |
Families Citing this family (171)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9756128B2 (en) * | 2013-04-17 | 2017-09-05 | Apeiron Data Systems | Switched direct attached shared storage architecture |
US10452316B2 (en) | 2013-04-17 | 2019-10-22 | Apeiron Data Systems | Switched direct attached shared storage architecture |
US9785355B2 (en) * | 2013-06-26 | 2017-10-10 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over ethernet-type networks |
US10063638B2 (en) | 2013-06-26 | 2018-08-28 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over ethernet-type networks |
US9785356B2 (en) | 2013-06-26 | 2017-10-10 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over ethernet-type networks |
US9430412B2 (en) | 2013-06-26 | 2016-08-30 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over Ethernet-type networks |
JP6273353B2 (ja) * | 2014-04-21 | 2018-01-31 | 株式会社日立製作所 | 計算機システム |
WO2015194005A1 (ja) | 2014-06-19 | 2015-12-23 | 株式会社日立製作所 | ストレージ装置およびインタフェース装置 |
US9882930B2 (en) * | 2014-07-02 | 2018-01-30 | Waratek Limited | Command injection protection for java applications |
US11474874B2 (en) | 2014-08-14 | 2022-10-18 | Qubole, Inc. | Systems and methods for auto-scaling a big data system |
JP6429188B2 (ja) * | 2014-11-25 | 2018-11-28 | APRESIA Systems株式会社 | 中継装置 |
CN105701021B (zh) * | 2014-12-10 | 2021-03-02 | 慧荣科技股份有限公司 | 数据储存装置及其数据写入方法 |
US10466923B2 (en) | 2015-02-27 | 2019-11-05 | Samsung Electronics Co., Ltd. | Modular non-volatile flash memory blade |
US10261725B2 (en) * | 2015-04-10 | 2019-04-16 | Toshiba Memory Corporation | Storage system capable of invalidating data stored in a storage device thereof |
US20160321010A1 (en) | 2015-04-28 | 2016-11-03 | Kabushiki Kaisha Toshiba | Storage system having a host directly manage physical data locations of storage device |
US20160352832A1 (en) * | 2015-06-01 | 2016-12-01 | Alibaba Group Holding Limited | Enhancing data consistency in cloud storage system by entrance data buffering |
US11436667B2 (en) | 2015-06-08 | 2022-09-06 | Qubole, Inc. | Pure-spot and dynamically rebalanced auto-scaling clusters |
KR102509540B1 (ko) * | 2015-06-30 | 2023-03-14 | 삼성전자주식회사 | 저장 장치 및 그것의 가비지 컬렉션 방법 |
US11983138B2 (en) | 2015-07-26 | 2024-05-14 | Samsung Electronics Co., Ltd. | Self-configuring SSD multi-protocol support in host-less environment |
US9606915B2 (en) * | 2015-08-11 | 2017-03-28 | Toshiba Corporation | Pool level garbage collection and wear leveling of solid state devices |
US20170123700A1 (en) | 2015-11-03 | 2017-05-04 | Samsung Electronics Co., Ltd. | Io redirection methods with cost estimation |
US10254998B2 (en) * | 2015-11-03 | 2019-04-09 | Samsung Electronics Co., Ltd. | Coordinated garbage collection of flash devices in a distributed storage system |
US10031807B2 (en) * | 2015-11-04 | 2018-07-24 | International Business Machines Corporation | Concurrent data retrieval in networked environments |
CN105335316A (zh) * | 2015-11-19 | 2016-02-17 | 常州大学怀德学院 | 一种基于云计算的电机装配线串口服务器 |
TWI573017B (zh) * | 2015-12-11 | 2017-03-01 | 英業達股份有限公司 | 非揮發性記憶體固態硬碟之燈號控制系統 |
US10476958B2 (en) | 2015-12-16 | 2019-11-12 | Toshiba Memory Corporation | Hyper-converged flash array system |
US10425484B2 (en) | 2015-12-16 | 2019-09-24 | Toshiba Memory Corporation | Just a bunch of flash (JBOF) appliance with physical access application program interface (API) |
US9946596B2 (en) | 2016-01-29 | 2018-04-17 | Toshiba Memory Corporation | Global error recovery system |
US10101939B2 (en) | 2016-03-09 | 2018-10-16 | Toshiba Memory Corporation | Storage system having a host that manages physical data locations of a storage device |
US10599333B2 (en) | 2016-03-09 | 2020-03-24 | Toshiba Memory Corporation | Storage device having dual access procedures |
US10362109B2 (en) * | 2016-03-30 | 2019-07-23 | Task Performance Group, Inc. | Cloud operating system and method |
US10178453B2 (en) | 2016-04-21 | 2019-01-08 | Fujitsu Limited | Ethernet fabric protection in a disaggregated OTN switching system |
US11080207B2 (en) * | 2016-06-07 | 2021-08-03 | Qubole, Inc. | Caching framework for big-data engines in the cloud |
US10346041B2 (en) | 2016-09-14 | 2019-07-09 | Samsung Electronics Co., Ltd. | Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host |
US10762023B2 (en) | 2016-07-26 | 2020-09-01 | Samsung Electronics Co., Ltd. | System architecture for supporting active pass-through board for multi-mode NMVe over fabrics devices |
US10372659B2 (en) | 2016-07-26 | 2019-08-06 | Samsung Electronics Co., Ltd. | Multi-mode NMVE over fabrics devices |
US11144496B2 (en) | 2016-07-26 | 2021-10-12 | Samsung Electronics Co., Ltd. | Self-configuring SSD multi-protocol support in host-less environment |
US11461258B2 (en) | 2016-09-14 | 2022-10-04 | Samsung Electronics Co., Ltd. | Self-configuring baseboard management controller (BMC) |
US10210123B2 (en) | 2016-07-26 | 2019-02-19 | Samsung Electronics Co., Ltd. | System and method for supporting multi-path and/or multi-mode NMVe over fabrics devices |
US20190109720A1 (en) | 2016-07-26 | 2019-04-11 | Samsung Electronics Co., Ltd. | Modular system (switch boards and mid-plane) for supporting 50g or 100g ethernet speeds of fpga+ssd |
US10606664B2 (en) | 2016-09-07 | 2020-03-31 | Qubole Inc. | Heterogeneous auto-scaling big-data clusters in the cloud |
RU2646312C1 (ru) * | 2016-11-14 | 2018-03-02 | Общество с ограниченной ответственностью "ИБС Экспертиза" | Интегрированный программно-аппаратный комплекс |
US10484015B2 (en) | 2016-12-28 | 2019-11-19 | Amazon Technologies, Inc. | Data storage system with enforced fencing |
US10509601B2 (en) | 2016-12-28 | 2019-12-17 | Amazon Technologies, Inc. | Data storage system with multi-tier control plane |
US10514847B2 (en) | 2016-12-28 | 2019-12-24 | Amazon Technologies, Inc. | Data storage system with multiple durability levels |
US11301144B2 (en) | 2016-12-28 | 2022-04-12 | Amazon Technologies, Inc. | Data storage system |
US10771550B2 (en) | 2016-12-28 | 2020-09-08 | Amazon Technologies, Inc. | Data storage system with redundant internal networks |
US10521135B2 (en) | 2017-02-15 | 2019-12-31 | Amazon Technologies, Inc. | Data system with data flush mechanism |
US11010064B2 (en) | 2017-02-15 | 2021-05-18 | Amazon Technologies, Inc. | Data system with flush views |
US10732872B2 (en) | 2017-02-27 | 2020-08-04 | Hitachi, Ltd. | Storage system and storage control method |
US10437691B1 (en) * | 2017-03-29 | 2019-10-08 | Veritas Technologies Llc | Systems and methods for caching in an erasure-coded system |
US10282094B2 (en) | 2017-03-31 | 2019-05-07 | Samsung Electronics Co., Ltd. | Method for aggregated NVME-over-fabrics ESSD |
US10733024B2 (en) | 2017-05-24 | 2020-08-04 | Qubole Inc. | Task packing scheduling process for long running applications |
US10652206B1 (en) | 2017-10-27 | 2020-05-12 | EMC IP Holding Company LLC | Storage system with network-wide configurable device names |
US10469168B2 (en) | 2017-11-01 | 2019-11-05 | Fujitsu Limited | Disaggregated integrated synchronous optical network and optical transport network switching system |
US10454610B2 (en) * | 2017-11-13 | 2019-10-22 | Fujitsu Limited | 1+1 Ethernet fabric protection in a disaggregated optical transport network switching system |
US11228489B2 (en) | 2018-01-23 | 2022-01-18 | Qubole, Inc. | System and methods for auto-tuning big data workloads on cloud platforms |
US10757189B2 (en) | 2018-04-30 | 2020-08-25 | EMC IP Holding Company LLC | Service level objection based input-output selection utilizing multi-path layer of host device |
US10476960B1 (en) * | 2018-05-01 | 2019-11-12 | EMC IP Holding Company LLC | Host device configured to automatically discover new paths responsive to storage system prompt |
KR102080089B1 (ko) * | 2018-05-18 | 2020-02-21 | 최영준 | 정전시 전력 소모를 감소시키기 위한 데이터 저장 방법 및 데이터 저장 장치 |
RU2716040C2 (ru) * | 2018-06-22 | 2020-03-05 | Общество с ограниченной ответственностью "РСК Лабс" (ООО "РСК Лабс") | Метод построения высокопроизводительных отказоустойчивых систем хранения данных на основе распределенных файловых систем и технологии NVMe over Fabrics |
US11593291B2 (en) * | 2018-09-10 | 2023-02-28 | GigaIO Networks, Inc. | Methods and apparatus for high-speed data bus connection and fabric management |
JP7091203B2 (ja) | 2018-09-19 | 2022-06-27 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11050660B2 (en) | 2018-09-28 | 2021-06-29 | EMC IP Holding Company LLC | Host device with multi-path layer implementing path selection based at least in part on fabric identifiers |
US11044313B2 (en) | 2018-10-09 | 2021-06-22 | EMC IP Holding Company LLC | Categorizing host IO load pattern and communicating categorization to storage system |
US10754572B2 (en) | 2018-10-09 | 2020-08-25 | EMC IP Holding Company LLC | Migrating control of a multi-path logical device from a current MPIO driver to a target MPIO driver |
US10831572B2 (en) | 2018-11-08 | 2020-11-10 | At&T Intellectual Property I, L.P. | Partition and access switching in distributed storage systems |
US10880217B2 (en) | 2018-12-24 | 2020-12-29 | EMC IP Holding Company LLC | Host device with multi-path layer configured for detection and resolution of oversubscription conditions |
US10754559B1 (en) | 2019-03-08 | 2020-08-25 | EMC IP Holding Company LLC | Active-active storage clustering with clock synchronization |
US11029882B2 (en) * | 2019-03-29 | 2021-06-08 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd | Secure multiple server access to a non-volatile storage device |
US11144360B2 (en) | 2019-05-31 | 2021-10-12 | Qubole, Inc. | System and method for scheduling and running interactive database queries with service level agreements in a multi-tenant processing system |
US11704316B2 (en) | 2019-05-31 | 2023-07-18 | Qubole, Inc. | Systems and methods for determining peak memory requirements in SQL processing engines with concurrent subtasks |
US11228643B2 (en) * | 2019-06-04 | 2022-01-18 | Capital One Services, Llc | System and method for fast application auto-scaling |
US11169723B2 (en) | 2019-06-28 | 2021-11-09 | Amazon Technologies, Inc. | Data storage system with metadata check-pointing |
US11403247B2 (en) | 2019-09-10 | 2022-08-02 | GigaIO Networks, Inc. | Methods and apparatus for network interface fabric send/receive operations |
TWI708954B (zh) * | 2019-09-19 | 2020-11-01 | 英業達股份有限公司 | 邊界掃描測試系統及其方法 |
CN110716833B (zh) * | 2019-09-29 | 2023-03-21 | 东莞记忆存储科技有限公司 | 用于测量ssd单次进入ps4状态时所造成的nand flash写入量的方法 |
US10884935B1 (en) | 2019-09-30 | 2021-01-05 | EMC IP Holding Company LLC | Cache allocation for controller boards based on prior input-output operations |
US10936522B1 (en) | 2019-09-30 | 2021-03-02 | EMC IP Holding Company LLC | Performing input-output multi-pathing from user space |
US11012510B2 (en) | 2019-09-30 | 2021-05-18 | EMC IP Holding Company LLC | Host device with multi-path layer configured for detecting target failure status and updating path availability |
US12010172B2 (en) | 2019-09-30 | 2024-06-11 | EMC IP Holding Company LLC | Host device with multi-path layer configured for IO control using detected storage port resource availability |
US11379325B2 (en) | 2019-10-04 | 2022-07-05 | EMC IP Holding Company LLC | Path failure information sharing between host devices connected to a storage system |
US11366590B2 (en) | 2019-10-11 | 2022-06-21 | EMC IP Holding Company LLC | Host device with multi-path layer providing dynamic control of one or more path selection algorithms |
WO2021081409A1 (en) | 2019-10-25 | 2021-04-29 | GigaIO Networks, Inc. | Methods and apparatus for dma engine descriptors for high speed data systems |
US11023161B1 (en) | 2019-11-25 | 2021-06-01 | EMC IP Holding Company LLC | Host device with multi-path layer implementing efficient load balancing for active-active configuration |
US11106381B2 (en) | 2019-11-27 | 2021-08-31 | EMC IP Holding Company LLC | Automated seamless migration of logical storage devices |
US11256421B2 (en) | 2019-12-11 | 2022-02-22 | EMC IP Holding Company LLC | Path selection modification for non-disruptive upgrade of a host device |
US11093155B2 (en) | 2019-12-11 | 2021-08-17 | EMC IP Holding Company LLC | Automated seamless migration with signature issue resolution |
US11372951B2 (en) | 2019-12-12 | 2022-06-28 | EMC IP Holding Company LLC | Proxy license server for host-based software licensing |
US11277335B2 (en) | 2019-12-26 | 2022-03-15 | EMC IP Holding Company LLC | Host device with path selection modification responsive to mismatch in initiator-target negotiated rates |
US11099755B2 (en) | 2020-01-06 | 2021-08-24 | EMC IP Holding Company LLC | Multipath device pseudo name to logical volume mapping for host devices |
US11231861B2 (en) | 2020-01-15 | 2022-01-25 | EMC IP Holding Company LLC | Host device with active-active storage aware path selection |
US11461026B2 (en) | 2020-01-21 | 2022-10-04 | EMC IP Holding Company LLC | Non-disruptive update of host multipath device dependency |
US11520671B2 (en) | 2020-01-29 | 2022-12-06 | EMC IP Holding Company LLC | Fast multipath failover |
US11175840B2 (en) | 2020-01-30 | 2021-11-16 | EMC IP Holding Company LLC | Host-based transfer of input-output operations from kernel space block device to user space block device |
US11050825B1 (en) | 2020-01-30 | 2021-06-29 | EMC IP Holding Company LLC | Storage system port usage information sharing between host devices |
US11093144B1 (en) | 2020-02-18 | 2021-08-17 | EMC IP Holding Company LLC | Non-disruptive transformation of a logical storage device from a first access protocol to a second access protocol |
US11449257B2 (en) | 2020-02-21 | 2022-09-20 | EMC IP Holding Company LLC | Host device with efficient automated seamless migration of logical storage devices across multiple access protocols |
CN111539870B (zh) * | 2020-02-25 | 2023-07-14 | 成都信息工程大学 | 一种基于纠删码的新媒体图像的篡改恢复方法及装置 |
US11204699B2 (en) | 2020-03-05 | 2021-12-21 | EMC IP Holding Company LLC | Storage system port maintenance information sharing with host device |
CN111478792B (zh) * | 2020-03-05 | 2021-11-02 | 网宿科技股份有限公司 | 一种割接信息处理方法、系统及装置 |
US11397589B2 (en) | 2020-03-06 | 2022-07-26 | EMC IP Holding Company LLC | Snapshot transmission from storage array to cloud using multi-path input-output |
US11042327B1 (en) | 2020-03-10 | 2021-06-22 | EMC IP Holding Company LLC | IO operation cloning using change information sharing with a storage system |
US11265261B2 (en) | 2020-03-18 | 2022-03-01 | EMC IP Holding Company LLC | Access path management based on path condition |
US11368399B2 (en) | 2020-03-27 | 2022-06-21 | EMC IP Holding Company LLC | Congestion aware multipathing based on network congestion notifications |
US11080215B1 (en) | 2020-03-31 | 2021-08-03 | EMC IP Holding Company LLC | Host device providing automated prediction of change intervals to reduce adverse impacts on applications |
US11169941B2 (en) | 2020-04-09 | 2021-11-09 | EMC IP Holding Company LLC | Host device with automated connectivity provisioning |
US11366756B2 (en) | 2020-04-13 | 2022-06-21 | EMC IP Holding Company LLC | Local cached data coherency in host devices using remote direct memory access |
US11561699B2 (en) | 2020-04-24 | 2023-01-24 | EMC IP Holding Company LLC | Input-output path selection using switch topology information |
US11216200B2 (en) | 2020-05-06 | 2022-01-04 | EMC IP Holding Company LLC | Partition utilization awareness of logical units on storage arrays used for booting |
US11175828B1 (en) | 2020-05-14 | 2021-11-16 | EMC IP Holding Company LLC | Mitigating IO processing performance impacts in automated seamless migration |
US11099754B1 (en) | 2020-05-14 | 2021-08-24 | EMC IP Holding Company LLC | Storage array with dynamic cache memory configuration provisioning based on prediction of input-output operations |
US11182096B1 (en) | 2020-05-18 | 2021-11-23 | Amazon Technologies, Inc. | Data storage system with configurable durability |
US11012512B1 (en) | 2020-05-20 | 2021-05-18 | EMC IP Holding Company LLC | Host device with automated write throttling responsive to storage system write pressure condition |
US11023134B1 (en) | 2020-05-22 | 2021-06-01 | EMC IP Holding Company LLC | Addition of data services to an operating system running a native multi-path input-output architecture |
US11151071B1 (en) | 2020-05-27 | 2021-10-19 | EMC IP Holding Company LLC | Host device with multi-path layer distribution of input-output operations across storage caches |
US11226851B1 (en) | 2020-07-10 | 2022-01-18 | EMC IP Holding Company LLC | Execution of multipath operation triggered by container application |
US11256446B1 (en) | 2020-08-03 | 2022-02-22 | EMC IP Holding Company LLC | Host bus adaptor (HBA) virtualization aware multi-pathing failover policy |
US11157432B1 (en) | 2020-08-28 | 2021-10-26 | EMC IP Holding Company LLC | Configuration of block devices based on provisioning of logical volumes in a storage system |
US11681443B1 (en) | 2020-08-28 | 2023-06-20 | Amazon Technologies, Inc. | Durable data storage with snapshot storage space optimization |
US11916938B2 (en) | 2020-08-28 | 2024-02-27 | EMC IP Holding Company LLC | Anomaly detection and remediation utilizing analysis of storage area network access patterns |
US11392459B2 (en) | 2020-09-14 | 2022-07-19 | EMC IP Holding Company LLC | Virtualization server aware multi-pathing failover policy |
US11320994B2 (en) | 2020-09-18 | 2022-05-03 | EMC IP Holding Company LLC | Dynamic configuration change control in a storage system using multi-path layer notifications |
US11397540B2 (en) | 2020-10-12 | 2022-07-26 | EMC IP Holding Company LLC | Write pressure reduction for remote replication |
US11032373B1 (en) | 2020-10-12 | 2021-06-08 | EMC IP Holding Company LLC | Host-based bandwidth control for virtual initiators |
US11630581B2 (en) | 2020-11-04 | 2023-04-18 | EMC IP Holding Company LLC | Host bus adaptor (HBA) virtualization awareness for effective input-output load balancing |
US11281398B1 (en) * | 2020-11-11 | 2022-03-22 | Jabil Inc. | Distributed midplane for data storage system enclosures |
US11543971B2 (en) | 2020-11-30 | 2023-01-03 | EMC IP Holding Company LLC | Array driven fabric performance notifications for multi-pathing devices |
US11397539B2 (en) | 2020-11-30 | 2022-07-26 | EMC IP Holding Company LLC | Distributed backup using local access |
US11385824B2 (en) | 2020-11-30 | 2022-07-12 | EMC IP Holding Company LLC | Automated seamless migration across access protocols for a logical storage device |
US11204777B1 (en) | 2020-11-30 | 2021-12-21 | EMC IP Holding Company LLC | Boot from SAN operation support on multi-pathing devices |
US11620240B2 (en) | 2020-12-07 | 2023-04-04 | EMC IP Holding Company LLC | Performance-driven access protocol switching for a logical storage device |
US11409460B2 (en) | 2020-12-08 | 2022-08-09 | EMC IP Holding Company LLC | Performance-driven movement of applications between containers utilizing multiple data transmission paths with associated different access protocols |
US11455116B2 (en) | 2020-12-16 | 2022-09-27 | EMC IP Holding Company LLC | Reservation handling in conjunction with switching between storage access protocols |
US11989159B2 (en) * | 2020-12-18 | 2024-05-21 | EMC IP Holding Company LLC | Hybrid snapshot of a global namespace |
US11651066B2 (en) | 2021-01-07 | 2023-05-16 | EMC IP Holding Company LLC | Secure token-based communications between a host device and a storage system |
US11308004B1 (en) | 2021-01-18 | 2022-04-19 | EMC IP Holding Company LLC | Multi-path layer configured for detection and mitigation of slow drain issues in a storage area network |
US11449440B2 (en) | 2021-01-19 | 2022-09-20 | EMC IP Holding Company LLC | Data copy offload command support across multiple storage access protocols |
US11494091B2 (en) | 2021-01-19 | 2022-11-08 | EMC IP Holding Company LLC | Using checksums for mining storage device access data |
US11467765B2 (en) | 2021-01-20 | 2022-10-11 | EMC IP Holding Company LLC | Detection and mitigation of slow drain issues using response times and storage-side latency view |
US11386023B1 (en) | 2021-01-21 | 2022-07-12 | EMC IP Holding Company LLC | Retrieval of portions of storage device access data indicating access state changes |
US11640245B2 (en) | 2021-02-17 | 2023-05-02 | EMC IP Holding Company LLC | Logical storage device access in an encrypted storage environment |
US11755222B2 (en) | 2021-02-26 | 2023-09-12 | EMC IP Holding Company LLC | File based encryption for multi-pathing devices |
US11797312B2 (en) | 2021-02-26 | 2023-10-24 | EMC IP Holding Company LLC | Synchronization of multi-pathing settings across clustered nodes |
US11928365B2 (en) | 2021-03-09 | 2024-03-12 | EMC IP Holding Company LLC | Logical storage device access using datastore-level keys in an encrypted storage environment |
US11294782B1 (en) | 2021-03-22 | 2022-04-05 | EMC IP Holding Company LLC | Failover affinity rule modification based on node health information |
US11782611B2 (en) | 2021-04-13 | 2023-10-10 | EMC IP Holding Company LLC | Logical storage device access using device-specific keys in an encrypted storage environment |
US11422718B1 (en) | 2021-05-03 | 2022-08-23 | EMC IP Holding Company LLC | Multi-path layer configured to provide access authorization for software code of multi-path input-output drivers |
US11550511B2 (en) | 2021-05-21 | 2023-01-10 | EMC IP Holding Company LLC | Write pressure throttling based on service level objectives |
US11822706B2 (en) | 2021-05-26 | 2023-11-21 | EMC IP Holding Company LLC | Logical storage device access using device-specific keys in an encrypted storage environment |
US11625232B2 (en) | 2021-06-07 | 2023-04-11 | EMC IP Holding Company LLC | Software upgrade management for host devices in a data center |
US11526283B1 (en) | 2021-06-08 | 2022-12-13 | EMC IP Holding Company LLC | Logical storage device access using per-VM keys in an encrypted storage environment |
US11762588B2 (en) | 2021-06-11 | 2023-09-19 | EMC IP Holding Company LLC | Multi-path layer configured to access storage-side performance metrics for load balancing policy control |
US11954344B2 (en) | 2021-06-16 | 2024-04-09 | EMC IP Holding Company LLC | Host device comprising layered software architecture with automated tiering of logical storage devices |
US11750457B2 (en) | 2021-07-28 | 2023-09-05 | Dell Products L.P. | Automated zoning set selection triggered by switch fabric notifications |
CN113766027B (zh) * | 2021-09-09 | 2023-09-26 | 瀚高基础软件股份有限公司 | 一种流复制集群节点转发数据的方法及设备 |
US11625308B2 (en) | 2021-09-14 | 2023-04-11 | Dell Products L.P. | Management of active-active configuration using multi-pathing software |
US11586356B1 (en) | 2021-09-27 | 2023-02-21 | Dell Products L.P. | Multi-path layer configured for detection and mitigation of link performance issues in a storage area network |
US11656987B2 (en) | 2021-10-18 | 2023-05-23 | Dell Products L.P. | Dynamic chunk size adjustment for cache-aware load balancing |
US11418594B1 (en) | 2021-10-20 | 2022-08-16 | Dell Products L.P. | Multi-path layer configured to provide link availability information to storage system for load rebalancing |
US12001595B2 (en) | 2021-12-03 | 2024-06-04 | Dell Products L.P. | End-to-end encryption of logical storage devices in a Linux native multi-pathing environment |
US11567669B1 (en) | 2021-12-09 | 2023-01-31 | Dell Products L.P. | Dynamic latency management of active-active configurations using multi-pathing software |
US12001679B2 (en) | 2022-03-31 | 2024-06-04 | Dell Products L.P. | Storage system configured to collaborate with host device to provide fine-grained throttling of input-output operations |
US11620054B1 (en) | 2022-04-21 | 2023-04-04 | Dell Products L.P. | Proactive monitoring and management of storage system input-output operation limits |
US11983432B2 (en) | 2022-04-28 | 2024-05-14 | Dell Products L.P. | Load sharing of copy workloads in device clusters |
US11789624B1 (en) | 2022-05-31 | 2023-10-17 | Dell Products L.P. | Host device with differentiated alerting for single points of failure in distributed storage systems |
US11886711B2 (en) | 2022-06-16 | 2024-01-30 | Dell Products L.P. | Host-assisted IO service levels utilizing false-positive signaling |
US11983429B2 (en) | 2022-06-22 | 2024-05-14 | Dell Products L.P. | Migration processes utilizing mapping entry timestamps for selection of target logical storage devices |
US12001714B2 (en) | 2022-08-16 | 2024-06-04 | Dell Products L.P. | Host device IO selection using buffer availability information obtained from storage system |
US11934659B1 (en) | 2022-09-28 | 2024-03-19 | Dell Products L.P. | Host background copy process with rate adjustment utilizing input-output processing pressure feedback from storage system |
US11989156B1 (en) | 2023-03-06 | 2024-05-21 | Dell Products L.P. | Host device conversion of configuration information to an intermediate format to facilitate database transitions |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1228187A (zh) * | 1997-04-07 | 1999-09-08 | 索尼株式会社 | 数据记录装置和方法以及磁盘阵列控制装置和方法 |
EP1764677A1 (en) * | 2005-09-01 | 2007-03-21 | Hitachi, Ltd. | Storage system, storage device, and control method thereof |
US20080235443A1 (en) * | 2000-01-06 | 2008-09-25 | Super Talent Electronics Inc. | Intelligent Solid-State Non-Volatile Memory Device (NVMD) System With Multi-Level Caching of Multiple Channels |
US20090006732A1 (en) * | 2005-06-02 | 2009-01-01 | Seagate Technology Llc | Storage system with synchronized processing elements |
US20090259805A1 (en) * | 2008-04-15 | 2009-10-15 | Adtron, Inc. | Flash management using logical page size |
CN101989218A (zh) * | 2009-07-30 | 2011-03-23 | 鸿富锦精密工业(深圳)有限公司 | 数据存储控制系统及方法 |
US20110103391A1 (en) * | 2009-10-30 | 2011-05-05 | Smooth-Stone, Inc. C/O Barry Evans | System and method for high-performance, low-power data center interconnect fabric |
US20110258391A1 (en) * | 2007-12-06 | 2011-10-20 | Fusion-Io, Inc. | Apparatus, system, and method for destaging cached data |
WO2012010930A2 (en) * | 2010-07-21 | 2012-01-26 | Freescale Semiconductor, Inc. | Integrated circuit device, data storage array system and method therefor |
US8176246B1 (en) * | 2008-01-28 | 2012-05-08 | Netapp, Inc. | Distributing lookup operations in a striped storage system |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8244935B2 (en) * | 2010-06-25 | 2012-08-14 | Oracle International Corporation | Write aggregation using optional I/O requests |
-
2013
- 2013-09-06 US US14/426,567 patent/US20150222705A1/en not_active Abandoned
- 2013-09-06 JP JP2015531270A patent/JP2015532985A/ja active Pending
- 2013-09-06 EP EP13835531.8A patent/EP2893452A4/en not_active Withdrawn
- 2013-09-06 CN CN201380058166.2A patent/CN104903874A/zh active Pending
- 2013-09-06 WO PCT/US2013/058643 patent/WO2014039922A2/en active Application Filing
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1228187A (zh) * | 1997-04-07 | 1999-09-08 | 索尼株式会社 | 数据记录装置和方法以及磁盘阵列控制装置和方法 |
US20080235443A1 (en) * | 2000-01-06 | 2008-09-25 | Super Talent Electronics Inc. | Intelligent Solid-State Non-Volatile Memory Device (NVMD) System With Multi-Level Caching of Multiple Channels |
US20090006732A1 (en) * | 2005-06-02 | 2009-01-01 | Seagate Technology Llc | Storage system with synchronized processing elements |
EP1764677A1 (en) * | 2005-09-01 | 2007-03-21 | Hitachi, Ltd. | Storage system, storage device, and control method thereof |
US20110258391A1 (en) * | 2007-12-06 | 2011-10-20 | Fusion-Io, Inc. | Apparatus, system, and method for destaging cached data |
US8176246B1 (en) * | 2008-01-28 | 2012-05-08 | Netapp, Inc. | Distributing lookup operations in a striped storage system |
US20090259805A1 (en) * | 2008-04-15 | 2009-10-15 | Adtron, Inc. | Flash management using logical page size |
CN101989218A (zh) * | 2009-07-30 | 2011-03-23 | 鸿富锦精密工业(深圳)有限公司 | 数据存储控制系统及方法 |
US20110103391A1 (en) * | 2009-10-30 | 2011-05-05 | Smooth-Stone, Inc. C/O Barry Evans | System and method for high-performance, low-power data center interconnect fabric |
WO2012010930A2 (en) * | 2010-07-21 | 2012-01-26 | Freescale Semiconductor, Inc. | Integrated circuit device, data storage array system and method therefor |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107608462A (zh) * | 2016-07-12 | 2018-01-19 | 纬创资通股份有限公司 | 服务器系统及储存单元的控制方法 |
CN109240937A (zh) * | 2017-07-11 | 2019-01-18 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN109240937B (zh) * | 2017-07-11 | 2023-01-20 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN110837339A (zh) * | 2018-08-17 | 2020-02-25 | 群联电子股份有限公司 | 数据整并方法、存储器存储装置及存储器控制电路单元 |
CN110837339B (zh) * | 2018-08-17 | 2023-07-04 | 群联电子股份有限公司 | 数据整并方法、存储器存储装置及存储器控制电路单元 |
CN109614040A (zh) * | 2018-11-26 | 2019-04-12 | 武汉烽火信息集成技术有限公司 | 具有多存储池的存储方法、存储介质、电子设备及系统 |
CN111857602A (zh) * | 2020-07-31 | 2020-10-30 | 重庆紫光华山智安科技有限公司 | 数据处理方法、装置、数据节点及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2014039922A3 (en) | 2014-05-15 |
WO2014039922A2 (en) | 2014-03-13 |
EP2893452A4 (en) | 2016-06-08 |
EP2893452A2 (en) | 2015-07-15 |
JP2015532985A (ja) | 2015-11-16 |
US20150222705A1 (en) | 2015-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104903874A (zh) | 大规模数据储存和递送系统 | |
US11789831B2 (en) | Directing operations to synchronously replicated storage systems | |
US11385999B2 (en) | Efficient scaling and improved bandwidth of storage system | |
US10534677B2 (en) | Providing high availability for applications executing on a storage system | |
US10229024B2 (en) | Assisted coherent shared memory | |
US20180024964A1 (en) | Disaggregated compute resources and storage resources in a storage system | |
US20200387479A1 (en) | Using data characteristics to optimize grouping of similar data for garbage collection | |
CN105843557B (zh) | 冗余存储系统、冗余存储方法和冗余存储装置 | |
US9250687B1 (en) | High performance flexible storage system architecture | |
US20150052276A1 (en) | Data Storage Architecture Extension System and Method | |
WO2018231350A1 (en) | Accessible fast durable storage integrated into a bulk storage device | |
CN105472047B (zh) | 存储系统 | |
CN104049918A (zh) | 一种双控存储服务器的缓存管理方法 | |
US11579790B1 (en) | Servicing input/output (‘I/O’) operations during data migration | |
CN105786414A (zh) | 存储系统、存储系统的访问方法和存储系统的访问装置 | |
CN103329105A (zh) | 文件系统中的应用恢复 | |
US10671439B1 (en) | Workload planning with quality-of-service (‘QOS’) integration | |
Dell | ||
Dell | ||
KR102586741B1 (ko) | 메모리 시스템 및 그것의 동작방법 | |
KR102387181B1 (ko) | 컴퓨팅 디바이스 및 그것의 동작방법 | |
EP3920018B1 (en) | Optimizing data storage using non-volatile random access memory of a storage system | |
Chapman | Introducing IBM Enterprise X-Architecture Technology | |
Walters et al. | Storage Management Strategies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150909 |
|
WD01 | Invention patent application deemed withdrawn after publication |