CN105450704A - 一种用于闪存的网络存储设备及其处理方法 - Google Patents

一种用于闪存的网络存储设备及其处理方法 Download PDF

Info

Publication number
CN105450704A
CN105450704A CN201410433018.0A CN201410433018A CN105450704A CN 105450704 A CN105450704 A CN 105450704A CN 201410433018 A CN201410433018 A CN 201410433018A CN 105450704 A CN105450704 A CN 105450704A
Authority
CN
China
Prior art keywords
equipment
flash
flash memory
array
flash array
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
Application number
CN201410433018.0A
Other languages
English (en)
Inventor
朱荣臻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GigaDevice Semiconductor Beijing Inc
Original Assignee
GigaDevice Semiconductor Beijing Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GigaDevice Semiconductor Beijing Inc filed Critical GigaDevice Semiconductor Beijing Inc
Priority to CN201410433018.0A priority Critical patent/CN105450704A/zh
Priority to US15/303,229 priority patent/US20170039140A1/en
Priority to PCT/CN2014/087500 priority patent/WO2016029524A1/zh
Publication of CN105450704A publication Critical patent/CN105450704A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Abstract

本发明提供了一种用于闪存的网络存储设备及其处理方法,其中的用于闪存的网络存储系统具体包括:闪存阵列设备和应用服务器;其中,所述应用服务器包括:闪存阵列管理模块,用于依据闪存阵列设备的组织信息,将来自客户端的数据读写请求的逻辑地址转换成闪存阵列设备的物理地址,并根据所述物理地址将原始的设备读写请求转化为针对闪存阵列设备的设备读写请求;其中,所述针对闪存阵列设备的设备读写请求经网络到达所述闪存阵列设备。本发明能够提高网络存储的容量,以及,增加网络存储的便捷性。

Description

一种用于闪存的网络存储设备及其处理方法
技术领域
本发明涉及存储技术领域,特别是涉及一种用于闪存的网络存储系统、一种应用服务器及一种闪存的访问方法。
背景技术
SSD(固态硬盘,SolidStateDisk)是近年来在出现的全新的存储设备,其通常采用闪存(FLASH)作为存储介质,且不具有机械转动装置,因而具有读写性能高、抗震能力强、电源开销小等优势,并广泛应用于各个领域。
网络存储技术是一种利用网络服务器的存储设备为用户提供数据存储服务的技术,其具有海量存储、高稳定性和高可靠性的优点,能够为存储用户提供优质的存储服务。
目前,越来越多的网络存储技术采用固态硬盘作为存储设备,例如,参照图1,示出了现有一种用于固态硬盘的网络存储系统的结构示意图,其具体可以包括客户端101、NAS(网络附属存储,NetworkAttachedStorage)服务器102和固态硬盘103,其中,NAS服务器102与固态硬盘103之间通过SATA(串行高级技术附件,SerialAdvancedTechnologyAttachment)或者PCIE(高速外设部件互联,PeripheralComponentInterconnectionExpress)等通用接口相连。
然而,上述通用接口很容易由于多次插、拔使用而出现磨损,一旦出现上述情况就会造成NAS服务器102与固态硬盘103之间无法连接。
并且,固态硬盘103的存储容量有限,这将是提升网络存储的海量存储能力的最大瓶颈。
发明内容
本发明实施例所要解决的技术问题是提供一种用于闪存的网络存储系统、一种应用服务器及一种闪存的访问方法,能够提高网络存储的容量,以及,增加网络存储的便捷性。
为了解决上述问题,本发明公开了一种用于闪存的网络存储系统,包括:闪存阵列设备和应用服务器;其中,所述应用服务器包括:
闪存阵列管理模块,用于依据闪存阵列设备的组织信息,将来自客户端的数据读写请求的逻辑地址转换成闪存阵列设备的物理地址,并根据所述物理地址将原始的设备读写请求转化为针对闪存阵列设备的设备读写请求;其中,所述针对闪存阵列设备的设备读写请求经网络到达所述闪存阵列设备。
优选的,所述应用服务器还包括:访问接口模块,用于通过网络进行所述闪存阵列设备和闪存阵列管理模块之间的通信,以使所述设备读写请求经所述闪存阵列管理模块和访问接口模块到达所述闪存阵列设备。
优选的,所述闪存阵列管理模块在服务器或服务器集群上运行。
优选的,所述闪存阵列管理模块包括:闪存虚拟子模块,用于虚拟化和管理所述闪存阵列设备,得到所述闪存阵列设备的组织信息。
优选的,所述闪存虚拟子模块,具体用于将存储在所述闪存阵列设备的闪存芯片中的数据条带化,得到相应的条带信息。
优选的,所述来自客户端的数据读写请求为TCP/IP数据包;则所述应用服务器还包括:格式转换模块,用于从所述TCP/IP数据包中抽取小型计算机系统接口SCSI命令,并将所述SCSI命令发送给所述闪存阵列管理模块。
另一方面,本发明实施例还公开了一种应用服务器,包括:
闪存阵列管理模块,用于依据闪存阵列设备的组织信息,将来自客户端的数据读写请求的逻辑地址转换成闪存阵列设备的物理地址,并根据所述物理地址将原始的设备读写请求转化为针对闪存阵列设备的设备读写请求;其中,所述针对闪存阵列设备的设备读写请求经网络到达所述闪存阵列设备。
优选的,所述应用服务器还包括:访问接口模块,用于通过网络进行所述闪存阵列设备和闪存虚拟子模块之间的通信,以使所述设备读写请求经所述闪存阵列管理模块和访问接口模块到达所述闪存阵列设备。
优选的,所述闪存阵列管理模块在服务器或服务器集群上运行。
优选的,所述闪存阵列管理模块包括:闪存虚拟子模块,用于虚拟化和管理所述闪存阵列设备,得到所述闪存阵列设备的组织信息。
优选的,所述闪存虚拟子模块,具体用于将存储在所述闪存阵列设备的闪存芯片中的数据条带化,得到相应的条带信息。
优选的,所述来自客户端的数据读写请求为TCP/IP数据包;则所述应用服务器还包括:格式转换模块,用于从所述TCP/IP数据包中抽取小型计算机系统接口SCSI命令,并将所述SCSI命令发送给所述闪存阵列管理模块。
另一方面,本发明实施例还公开了一种闪存的访问方法,包括:
应用服务器依据闪存阵列设备的组织信息,将来自客户端的数据读写请求的逻辑地址转换成闪存阵列设备的物理地址,根据所述物理地址将原始的设备读写请求转化为针对闪存阵列设备的设备读写请求;
应用服务器通过网络向所述闪存阵列设备发送所述设备读写请求。
优选的,所述闪存阵列设备的组织信息为依据虚拟化和管理所述闪存阵列设备得到。
优选的,所述方法还包括:应用服务器通过网络接收所述闪存阵列设备发送的数据读写完成后的回传数据,并根据所述逻辑地址返回给所述客户端。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例将固态硬盘的结构虚拟化为闪存设备及对应的FTL逻辑,将FTL逻辑放至服务器侧,并将闪存设备组织为闪存阵列设备的形式,上述闪存阵列设备与应用服务器之间可以通过网络通信;
第一,上述闪存阵列设备与应用服务器之间通过网络通信,这能够节省了现有方案中固态硬盘与应用服务器之间的通用接口,且能够使得闪存阵列设备更容易集成到存储网络之上;
第二,将狭隘的固态硬盘设备扩充至广阔的闪存存储区域网络领域,随着10千兆位以太网的发展,本发明作为IP存储网络将具有更好的前景;
第三,FTL逻辑不再是闪存设备内部的固件,其将被从闪存设备中卸载并作为服务器应用程序运行;
第四,更容易扩展存储容量,只需控制闪存阵列设备中闪存芯片数量和配置FTL服务器即可;
第五,闪存阵列设备中闪存芯片还可被组织为磁盘簇,以发挥磁盘簇容量大和成本低的优点。
附图说明
图1是现有一种用于固态硬盘的网络存储系统的结构示意图;
图2是本发明的一种用于闪存的网络存储系统实施例一的结构图;
图3是本发明的一种用于闪存的网络存储系统实施例二的结构图;
图4是本发明实施例一种闪存阵列设备301的组织结构示意图;
图5是本发明的一种闪存的访问方法实施例的流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
系统实施例一
参照图2,示出了本发明的一种用于闪存的网络存储系统实施例一的结构图,具体可以包括:闪存阵列设备201和应用服务器202,其中,所述应用服务器202具体可以包括:闪存阵列管理模块221;
所述闪存阵列管理模块221,可具体用于依据闪存阵列设备的组织信息,将来自客户端的数据读写请求的逻辑地址转换成闪存阵列设备的物理地址,并根据所述物理地址将原始的设备读写请求转化为针对闪存阵列设备的设备读写请求;其中,所述针对闪存阵列设备的设备读写请求可经网络到达所述闪存阵列设备。
本发明实施例将固态硬盘的结构虚拟化为闪存设备及对应的FTL(闪存转换层,FlashTransferLayer)逻辑,将FTL逻辑放至服务器侧,并将闪存设备组织为闪存阵列设备201的形式,由于本领域技术人员根据实际需要灵活地设置闪存阵列设备201的容量大小,而不会像固态硬盘那样受到容量的限制;并且,上述闪存阵列设备201与应用服务器202可以通过网络通信,具体地,可以通过网络传输针对闪存阵列设备201的设备读写请求而无需借助通用接口,因此,本发明实施例能够增加网络存储的便捷性。
闪存阵列管理模块221
闪存阵列管理模块221可以获取闪存阵列设备201的组织信息,并提供块数据容量等信息,其可以具有地址映射、垃圾回收、损耗均衡等功能。
以地址映射为例,闪存阵列管理模块221可以维护地址映射表,该地址映射表中可以包含从逻辑地址到闪存芯片的物理地址的映射关系,这样,在接收到来自客户端的数据读写请求时,可以通过查找所述地址映射表将所述数据读写请求的逻辑地址转换成闪存阵列设备中闪存芯片的物理地址,并根据所述物理地址将原始的设备读写请求转化为针对闪存阵列设备201的设备读写请求。同理,闪存阵列管理模块221还可以将数据读写完成后的回传数据根据所述逻辑地址返回给所述客户端。
上述闪存阵列管理模块221可以在服务器或服务器集群上运行,相对于现有方案在固态硬盘上实现FTL逻辑,本发明实施例FTL逻辑的实现将不再受到硬件资源的限制;并且,在服务器或服务器集群上运行FTL逻辑,还能够减轻FTL逻辑的硬件负载。在具体实现中,服务器可以提供强有力的处理能力,且可以借助庞大的RAM(RandomAccessMemory,随机存取存储器)或缓冲器以缓存地址映射表和客户端的主机数据。
可见,上述在服务器或服务器集群上运行FTL逻辑的方法具有如下优点:
第一,地址映射表可以常驻在服务器中,能够提高闪存转换的便捷性;
第二,具备UPS(不间断电源,UninterruptiblePowerSupply)的条件,而在不间断电源的条件下更容易处理电源故障事件;
第三,映射信息的写操作可被缩减为一个电源周期一次,这使闪存转换变得更容易,且能够用到更高效的缓存算法;
第四,在采用服务器集群时,可以发挥服务器集群扩展性好、稳定性好、冗余性好的优点。
综上,本发明实施例具有如下优点:
第一,上述闪存阵列设备201与应用服务器通过网络通信,这能够节省了固态硬盘与应用服务器之间的通用接口,且能够使得闪存阵列设备201更容易集成到存储网络之上;
第二,将狭隘的固态硬盘设备扩充至广阔的闪存存储区域网络领域,随着10千兆位以太网的发展,本发明作为IP存储网络将具有更好的前景;
第三,FTL逻辑不再是闪存设备内部的固件,其将被从闪存设备中卸载并作为服务器应用程序运行;
第四,更容易扩展存储容量,只需控制闪存阵列设备201中闪存芯片数量和配置FTL服务器即可;
第五,闪存阵列设备201中闪存芯片还可被组织为磁盘簇,以发挥磁盘簇容量大和成本低的优点。
系统实施例二
参照图3,示出了本发明的一种用于闪存的网络存储系统实施例二的结构图,具体可以包括:闪存阵列设备301和应用服务器302,其中,所述应用服务器具体可以包括:访问接口模块321和闪存阵列管理模块322;
其中,所述访问接口模块321用于通过网络进行所述闪存阵列设备301和闪存阵列管理模块322之间的通信;
闪存阵列管理模块322,用于依据闪存阵列设备301的组织信息,将来自客户端的数据读写请求的逻辑地址转换成闪存阵列设备的物理地址,并根据所述物理地址将原始的设备读写请求转化为针对闪存阵列设备301的设备读写请求;其中,所述设备读写请求经所述闪存阵列管理模块322和访问接口模块321到达所述闪存阵列设备301。
下面对上述模块进行详细介绍。
闪存阵列设备301
在实际应用中,闪存阵列设备301为闪存芯片集合对应的物理线路板。以NANDFLASH芯片集合对应的闪存阵列设备301为例,其应具备强力的NANDFLASH驱动能力,且能够并行驱动多条NANDFLASH通道。
并且,为了实现与服务器侧的通信,闪存阵列设备301还应具备网络数据的访问能力,具体地,其可通过网络与服务器侧进行通信,这里的网络具体可以包括:IP(网络之间互连的协议,InternetProtocol)网络,或者,FC(光纤通道,FiberChannel)网络等等。
访问接口模块321
访问接口模块321可用于负责闪存阵列设备301和闪存虚拟子模块322之间的通信。假设闪存阵列设备301位于远程机房,那么,服务器侧的访问接口模块321可通过IP网或FC网与闪存阵列设备301中的闪存芯片进行通信。具体地,访问接口模块321可以SCSI(小型计算机系统接口,SmallComputerSystemInterface)形式的设备读写请求封装至TCP/IP数据包中,并将TCP/IP数据包通过IP网传输至闪存阵列设备301,以依据所述设备读写请求完成对闪存芯片的读写操作。
闪存阵列管理模块322
闪存阵列管理模块322可以将原始的设备读写请求转化为针对闪存阵列设备301的设备读写请求,所述设备读写请求的传输路径可以为:客户端-闪存阵列管理模块322-访问接口模块321-闪存阵列设备301。
同理,闪存阵列管理模块322还可以将数据读写完成后的回传数据根据所述逻辑地址返回给所述客户端,所述数据读写完成后的回传数据的传输路径具体可以包括:闪存阵列设备301-访问接口模块321-闪存阵列管理模块322-客户端。
在本发明的一种优选实施例中,所述闪存阵列管理模块322可以进一步包括:闪存虚拟子模块,用于虚拟化和管理闪存阵列设备301,得到所述闪存阵列设备301的组织信息,使得所述闪存阵列设备301的组织信息对闪存阵列管理模块322是透明的;闪存阵列管理模块322仅需工作在闪存虚拟子模块之上而无需关注组织细节,因此能够提高闪存转换的效率。
在本发明的一种优选实施例中,所述闪存虚拟子模块可具体用于将存储在闪存芯片中的数据条带化,并将条带信息提供给所述闪存阵列管理模块。这里的条带化可以将闪存芯片中一块连续的数据分成若干部分,并将它们分别存储到不同条带中,这就能使多个设备读写请求同时访问数据的不同条带而不会造成读写冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的I/O(输入输出,Input/Output)并行能力,从而获得非常好的性能。
参照图4,示出了本发明实施例一种闪存阵列设备301的组织结构示意图,其中,闪存阵列设备301具体可以包括:FlashCard0、FlashCard1和FlashCard2,其中,每个FlashCard可以进一步包括若干个裸片,每个裸片又可以进一步包括多个块402,图中示出了可以将每个FlashCard401中连续的数据分成若干部分,并将3个FlashCard401中的部分数据共同存储到对应的条带中,例如,条带1可以同时存储FlashCard0、FlashCard1和FlashCard2中的部分数据,图中条带1覆盖了FlashCard0的4个块402。可以理解,图4中条带只是作为示例,本发明实施例对条带的深度和条带的宽度不加以限制。
基于上述闪存阵列设备301的组织结构,条带可以为FTL逻辑中的基本操作单元。鉴于闪存芯片包括读取、编程和擦除三种基本操作,这样,闪存虚拟子模块可以向闪存阵列管理模块322提供该三种基本操作的API(应用程序接口,ApplicationProgramInterface)以方便闪存阵列管理模块322通过这些API来控制闪存阵列设备301。这些API的粒度可以为条带。例如,假设闪存阵列管理模块322欲要擦除某个块,那么,相应的数据读写请求可以被闪存虚拟子模块解析并划分为若干个小物理块的擦除操作。相应的寻址过程具体可以包括:首先,查找闪存芯片,其次,获取闪存芯片中的裸片编号,最后,针对该裸片中的单个块执行擦除指令。
参照表1,示出了本发明实施例一种闪存虚拟子模块的寻址结构,其中,闪存芯片涉及闪存虚拟子模块和闪存芯片之间的接口,从网络层面讲,该接口应可以为IP网络,换言之,本发明实施例可以采用IP地址对特定的闪存芯片进行寻址。进一步,寻址过程中,裸片的地址可以为闪存芯片中裸片的编号;块的地址可以为裸片中块的编号,其通常包括平面信息;页的地址可以为块中页的偏移。
表1
闪存芯片 裸片
在本发明的一种优选实施例中,所述来自客户端的数据读写请求可以为TCP/IP数据包;则所述应用服务器302还可以包括:格式转换模块,用于从所述TCP/IP数据包中抽取小型计算机系统接口SCSI命令,并将所述SCSI命令发送给所述闪存阵列管理模块。
应用服务器实施例
本发明还提供了一种应用服务器实施例,其具体可以包括:
闪存阵列管理模块,用于依据闪存阵列设备的组织信息,将来自客户端的数据读写请求的逻辑地址转换成闪存阵列设备的物理地址,并根据所述物理地址将原始的设备读写请求转化为针对闪存阵列设备的设备读写请求;其中,所述针对闪存阵列设备的设备读写请求经网络到达所述闪存阵列设备。
在本发明的一种优选实施例中,所述应用服务器还可以包括:访问接口模块,用于通过网络进行所述闪存阵列设备和闪存阵列管理模块之间的通信;
则所述设备读写请求可以经所述闪存阵列管理模块、访问接口模块到达所述闪存阵列设备。
在本发明的一种优选实施例中,所述闪存阵列管理模块可以在服务器或服务器集群上运行。
在本发明的另一种优选实施例中,所述闪存阵列管理模块可以进一步包括:闪存虚拟子模块,用于虚拟化和管理所述闪存阵列设备,得到所述闪存阵列设备的组织信息。
在本发明的再一种优选实施例中,所述闪存虚拟子模块可具体用于将存储在闪存芯片中的数据条带化,得到相应的条带信息。
在本发明的再一种优选实施例中,所述来自客户端的数据读写请求可以为TCP/IP数据包;则所述应用服务器还包括:格式转换模块,用于从所述TCP/IP数据包中抽取小型计算机系统接口SCSI命令,并将所述SCSI命令发送给所述闪存阵列管理模块。
访问方法实施例
参照图5,示出了本发明的一种闪存的访问方法实施例的流程图,具体可以包括:
步骤501、应用服务器依据闪存阵列设备的组织信息,将来自客户端的数据读写请求的逻辑地址转换成闪存阵列设备的物理地址,根据所述物理地址将原始的设备读写请求转化为针对闪存阵列设备的设备读写请求;
步骤502、应用服务器通过网络向所述闪存阵列设备发送所述设备读写请求。
在本发明的一种优选实施例中,所述闪存阵列设备的组织信息可以为依据虚拟化和管理所述闪存阵列设备得到。
在本发明的另一种优选实施例中,所述方法还可以包括:应用服务器通过网络接收所述闪存阵列设备发送的数据读写完成后的回传数据,并根据所述逻辑地址返回给所述客户端。
在本发明的再一种优选实施例中,所述来自客户端的数据读写请求可以为TCP/IP数据包;则所述方法还可以包括:从所述TCP/IP数据包中抽取小型计算机系统接口SCSI命令,并依据闪存阵列设备的组织信息,将所述SCSI命令对应的逻辑地址转换成闪存阵列设备的物理地址,根据所述物理地址将原始的设备读写请求转化为针对闪存阵列设备的设备读写请求。
对于方法实施例而言,由于其与系统实施例基本相似,所以描述的比较简单,相关之处参见系统实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种用于闪存的网络存储系统、一种应用服务器及一种闪存的访问方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (15)

1.一种用于闪存的网络存储系统,其特征在于,包括:闪存阵列设备和应用服务器;其中,所述应用服务器包括:
闪存阵列管理模块,用于依据闪存阵列设备的组织信息,将来自客户端的数据读写请求的逻辑地址转换成闪存阵列设备的物理地址,并根据所述物理地址将原始的设备读写请求转化为针对闪存阵列设备的设备读写请求;其中,所述针对闪存阵列设备的设备读写请求经网络到达所述闪存阵列设备。
2.如权利要求1所述的系统,其特征在于,所述应用服务器还包括:访问接口模块,用于通过网络进行所述闪存阵列设备和闪存阵列管理模块之间的通信,以使所述设备读写请求经所述闪存阵列管理模块和访问接口模块到达所述闪存阵列设备。
3.如权利要求1或2所述的系统,其特征在于,所述闪存阵列管理模块在服务器或服务器集群上运行。
4.如权利要求1或2所述的系统,其特征在于,所述闪存阵列管理模块包括:闪存虚拟子模块,用于虚拟化和管理所述闪存阵列设备,得到所述闪存阵列设备的组织信息。
5.如权利要求4所述的系统,其特征在于,所述闪存虚拟子模块,具体用于将存储在所述闪存阵列设备的闪存芯片中的数据条带化,得到相应的条带信息。
6.如权利要求1或2所述的系统,其特征在于,所述来自客户端的数据读写请求为TCP/IP数据包;则所述应用服务器还包括:格式转换模块,用于从所述TCP/IP数据包中抽取小型计算机系统接口SCSI命令,并将所述SCSI命令发送给所述闪存阵列管理模块。
7.一种应用服务器,其特征在于,包括:
闪存阵列管理模块,用于依据闪存阵列设备的组织信息,将来自客户端的数据读写请求的逻辑地址转换成闪存阵列设备的物理地址,并根据所述物理地址将原始的设备读写请求转化为针对闪存阵列设备的设备读写请求;其中,所述针对闪存阵列设备的设备读写请求经网络到达所述闪存阵列设备。
8.如权利要求7所述的应用服务器,其特征在于,所述应用服务器还包括:访问接口模块,用于通过网络进行所述闪存阵列设备和闪存虚拟子模块之间的通信,以使所述设备读写请求经所述闪存阵列管理模块和访问接口模块到达所述闪存阵列设备。
9.如权利要求7或8所述的应用服务器,其特征在于,所述闪存阵列管理模块在服务器或服务器集群上运行。
10.如权利要求7或8所述的应用服务器,其特征在于,所述闪存阵列管理模块包括:闪存虚拟子模块,用于虚拟化和管理所述闪存阵列设备,得到所述闪存阵列设备的组织信息。
11.如权利要求10所述的应用服务器,其特征在于,所述闪存虚拟子模块,具体用于将存储在所述闪存阵列设备的闪存芯片中的数据条带化,得到相应的条带信息。
12.如权利要求7或8所述的应用服务器,其特征在于,所述来自客户端的数据读写请求为TCP/IP数据包;则所述应用服务器还包括:格式转换模块,用于从所述TCP/IP数据包中抽取小型计算机系统接口SCSI命令,并将所述SCSI命令发送给所述闪存阵列管理模块。
13.一种闪存的访问方法,其特征在于,包括:
应用服务器依据闪存阵列设备的组织信息,将来自客户端的数据读写请求的逻辑地址转换成闪存阵列设备的物理地址,根据所述物理地址将原始的设备读写请求转化为针对闪存阵列设备的设备读写请求;
应用服务器通过网络向所述闪存阵列设备发送所述设备读写请求。
14.如权利要求11所述的方法,其特征在于,所述闪存阵列设备的组织信息为依据虚拟化和管理所述闪存阵列设备得到。
15.如权利要求11所述的方法,其特征在于,还包括:应用服务器通过网络接收所述闪存阵列设备发送的数据读写完成后的回传数据,并根据所述逻辑地址返回给所述客户端。
CN201410433018.0A 2014-08-28 2014-08-28 一种用于闪存的网络存储设备及其处理方法 Pending CN105450704A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201410433018.0A CN105450704A (zh) 2014-08-28 2014-08-28 一种用于闪存的网络存储设备及其处理方法
US15/303,229 US20170039140A1 (en) 2014-08-28 2014-09-26 Network storage device for use in flash memory and processing method therefor
PCT/CN2014/087500 WO2016029524A1 (zh) 2014-08-28 2014-09-26 一种用于闪存的网络存储设备及其处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410433018.0A CN105450704A (zh) 2014-08-28 2014-08-28 一种用于闪存的网络存储设备及其处理方法

Publications (1)

Publication Number Publication Date
CN105450704A true CN105450704A (zh) 2016-03-30

Family

ID=55398696

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410433018.0A Pending CN105450704A (zh) 2014-08-28 2014-08-28 一种用于闪存的网络存储设备及其处理方法

Country Status (3)

Country Link
US (1) US20170039140A1 (zh)
CN (1) CN105450704A (zh)
WO (1) WO2016029524A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11119850B2 (en) 2018-06-29 2021-09-14 International Business Machines Corporation Determining when to perform error checking of a storage unit by using a machine learning module
US11119662B2 (en) 2018-06-29 2021-09-14 International Business Machines Corporation Determining when to perform a data integrity check of copies of a data set using a machine learning module
US11099743B2 (en) 2018-06-29 2021-08-24 International Business Machines Corporation Determining when to replace a storage device using a machine learning module
US11113198B2 (en) * 2019-05-06 2021-09-07 Micron Technology, Inc. Timed data transfer between a host system and a memory sub-system
CN111427593B (zh) * 2020-03-24 2023-04-18 四川众合智控科技有限公司 基于串口通信csbug底层刷机方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US9104315B2 (en) * 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US8200887B2 (en) * 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US7818525B1 (en) * 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
JP5377175B2 (ja) * 2009-09-08 2013-12-25 株式会社東芝 コントローラ、及びデータ記憶装置
CN102521068B (zh) * 2011-11-08 2014-07-23 华中科技大学 一种固态盘阵列的重建方法
WO2013119074A1 (ko) * 2012-02-09 2013-08-15 Noh Sam Hyuk 신뢰성 있는 ssd를 위한 효율적인 raid 기법
KR20140027596A (ko) * 2012-07-24 2014-03-07 삼성전자주식회사 메모리 시스템 및 메모리 시스템에서의 암호화 방법
US20140047159A1 (en) * 2012-08-10 2014-02-13 Sandisk Technologies Inc. Enterprise server with flash storage modules
CN102833237B (zh) * 2012-08-14 2015-01-14 南京斯坦德云科技股份有限公司 一种基于桥接的无限带宽协议转换方法及系统
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9229854B1 (en) * 2013-01-28 2016-01-05 Radian Memory Systems, LLC Multi-array operation support and related devices, systems and software
CN103458023B (zh) * 2013-08-30 2016-12-28 清华大学 分布式闪存存储系统
US9891989B2 (en) * 2013-10-11 2018-02-13 Hitachi, Ltd. Storage apparatus, storage system, and storage apparatus control method for updating stored data stored in nonvolatile memory
KR102381343B1 (ko) * 2015-07-27 2022-03-31 삼성전자주식회사 스토리지 장치 및 상기 스토리지 장치의 동작 방법

Also Published As

Publication number Publication date
WO2016029524A1 (zh) 2016-03-03
US20170039140A1 (en) 2017-02-09

Similar Documents

Publication Publication Date Title
US11481144B1 (en) Techniques for directed data migration
JP6890401B2 (ja) 多重モード格納管理装置、多重モード格納装置、及びその選別潜在露出(sue)マッピング動作方法
US9298384B2 (en) Method and device for storing data in a flash memory using address mapping for supporting various block sizes
CN102541760B (zh) 基于固态硬盘的计算机系统
KR102586805B1 (ko) 저장 매체를 다중 모드로 동작시키는 관리 시스템, 그것을 포함하는 저장 시스템, 및 그것을 이용하여 저장 매체를 관리하는 방법
CN102255962B (zh) 一种分布式存储方法、装置和系统
CN105573681B (zh) 一种ssd盘片内部raid组建方法及系统
US20140122781A1 (en) Hierarchical flash translation layer
US11010079B2 (en) Concept for storing file system metadata within solid-stage storage devices
CN103064632B (zh) 固态硬盘及其虚拟化方法、系统
CN104182508B (zh) 一种数据处理方法和数据处理装置
CN105450704A (zh) 一种用于闪存的网络存储设备及其处理方法
TWI385517B (zh) Storage device and data management method
JP2017091546A (ja) 多重モード動作のための多重パーティションを含む格納装置、及びその動作方法
CN106569742A (zh) 存储管理方法及存储设备
KR20140061444A (ko) 비휘발성 스토리지 장치 세트의 휘발성 메모리 표현 기법
CN104407935A (zh) 快照回滚方法和存储设备
CN104536903A (zh) 一种按数据属性分类存放的混合存储方法及系统
CN103858092A (zh) 一种数据迁移方法和装置
CN108595349A (zh) 大容量存储设备的地址转换方法与装置
CN104102458A (zh) 多核cpu的负载均衡方法、多核cpu及固态硬盘
CN105745628A (zh) 一种将数据写入闪存装置的方法、闪存装置和存储系统
CN103645995B (zh) 写数据的方法及装置
CN113918087A (zh) 存储装置以及用于管理存储装置中的命名空间的方法
CN106844229B (zh) 固态硬盘固件映射表的组织方法、系统及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160330