CN108885538A - 在包括多个存储设备的存储阵列中迁移数据 - Google Patents
在包括多个存储设备的存储阵列中迁移数据 Download PDFInfo
- Publication number
- CN108885538A CN108885538A CN201780021261.3A CN201780021261A CN108885538A CN 108885538 A CN108885538 A CN 108885538A CN 201780021261 A CN201780021261 A CN 201780021261A CN 108885538 A CN108885538 A CN 108885538A
- Authority
- CN
- China
- Prior art keywords
- storage
- equipment
- data
- storage equipment
- sources
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- 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
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4074—Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
Abstract
在包括多个存储设备的存储阵列中迁移数据,包括:由存储阵列检测与一个或多个源存储设备相关联的存储设备疏散事件的发生;响应于检测到存储设备疏散事件的发生,由存储阵列标识用于接收存储在一个或多个源存储设备上的数据的一个或多个目标存储设备;由存储阵列减少对一个或多个源存储设备的写入访问;以及将存储在一个或多个源存储设备上的数据迁移到一个或多个目标存储设备。
Description
技术领域
本发明的领域是数据处理,或者更具体地,用于在包括多个存储设备的存储阵列中迁移数据的方法、装置和产品。
背景技术
现代存储***可以包括许多存储设备。随着存储技术的进步和特定存储***的老化,被包括在特定存储***内的存储设备在功耗、响应时间、存储密度和其他度量方面可能变得比其更现代的对应物效率更低。因此,***管理员或特定存储***的其他用户可能发现需要升级被包括在特定存储***内的存储设备。
发明内容
用于在包括多个存储设备的存储阵列中迁移数据的方法、装置和产品,包括:由存储阵列检测与一个或多个源存储设备相关联的存储设备疏散(evacuation)事件的发生;响应于检测到存储设备疏散事件的发生,由存储阵列标识用于接收存储在一个或多个源存储设备上的数据的一个或多个目标存储设备;由存储阵列减少对一个或多个源存储设备的写入访问;将存储在一个或多个源存储设备上的数据迁移到一个或多个目标存储设备。
根据如附图所示的本发明的示例实施例的以下更具体的描述,本发明的上述以及其他目的、特征和优势将变得明显,在附图中,相同的附图标记通常表示本发明的示例实施例的相同部分。
附图说明
图1阐述了根据本公开的实施例的被配置用于在包括多个存储设备的存储阵列中迁移数据的存储***的框图。
图2阐述了根据本公开的实施例的用于在包括多个存储设备的存储阵列中迁移数据的存储阵列控制器的框图。
图3阐述了根据本公开的实施例的被配置用于在包括多个存储设备的存储阵列中迁移数据的存储***的框图。
图4阐述了示出根据本公开的实施例的用于在包括多个存储设备的存储阵列中迁移数据的示例方法的流程图。
图5阐述了示出根据本公开的实施例的用于在包括多个存储设备的存储阵列中迁移数据的附加示例方法的流程图。
图6阐述了示出根据本公开的实施例的用于在包括多个存储设备的存储阵列中迁移数据的附加示例方法的流程图。
图7阐述了示出根据本公开的实施例的用于在包括多个存储设备的存储阵列中迁移数据的附加示例方法的流程图。
图8阐述了示出根据本公开的实施例的用于在包括多个存储设备的存储阵列中迁移数据的附加示例方法的流程图。
具体实施方式
从图1开始,参考附图描述根据本发明的用于在包括多个存储设备的存储阵列中迁移数据的示例方法、装置和产品。图1阐述了根据本公开的实施例的被配置用于迁移数据的存储***(100)的框图。
图1中描绘的存储***(100)包括多个存储阵列(102、104),但根据本公开的实施例的在包括多个存储设备的存储阵列中迁移数据可以在仅包括单个存储阵列的存储***中执行。每个存储阵列(102、104)可以被体现为向存储***(100)的用户提供持续数据存储的计算机硬件设备的集合。每个存储阵列(102、104)可以包括被安装在一个或多个底座、机架或其他外壳内的数据存储设备的集合。尽管未在图1中明确描绘,但每个存储阵列(102、104)可以包括经由电源总线向存储***(100)内的一个或多个组件供电的多个电源,每个存储阵列(102、104)可以包括使得存储***(100)内的一个或多个组件能够进行通信的多个数据通信网络,每个存储阵列(102、104)可以包括用于冷却存储***(100)内的一个或多个组件的多个冷却组件等。
图1中描绘的示例存储阵列(102、104)可以为经由一个或多个数据通信网络耦合到存储***(100)的计算设备(164、166、168、170)提供持续数据存储。图1中描绘的计算设备(164、166、168、170)中的每一个可以被体现为例如服务器、工作站、个人计算机、笔记本、智能电话、平板计算机等。图1的示例中的计算设备(164、166、168、170)被耦合以通过存储区域网络(“SAN”)(158)与存储阵列(102、104)进行数据通信。SAN(158)可以用各种数据通信结构、设备和协议来实现。用于这种SAN(158)的示例结构可以包括光纤信道、以太网、无限带宽(Infiniband)、串行连接小型计算机***接口(“SAS”)等。用于在这种SAN(158)中使用的示例数据通信协议可以包括高级技术附件(“ATA”)、光纤信道协议、小型计算机***接口(“SCSI”)、iSCSI、HyperSCSI等。读者将理解,SAN只是可以在计算设备(164、166、168、170)和存储阵列(102、104)之间实现的许多可能的数据通信耦合中的一个。例如,存储阵列(102、104)内的存储设备(146、150)也可以作为能够促进文件级访问的网络附加存储(“NAS”),或甚至使用提供来自同一***的文件级协议和块级协议二者的SAN-NAS混合而被耦合到计算设备(164、166、168、170)。任何其他此类数据通信耦合也在本公开的实施例的范围内。
图1中描绘的计算设备(164、166、168、170)还被耦合用于通过局域网(“LAN”)(160)与存储阵列(102、104)进行数据通信。图1的LAN(160)也可以用各种结构和协议实现。这种结构的示例包括以太网(802.3)、无线(802.11)等。这种数据通信协议的示例包括传输控制协议(“TCP”)、用户数据报协议(“UDP”)、互联网协议(“IP”)、超文本传输协议(“HTTP”)、无线接入协议(“WAP”)、手持设备传输协议(“HDTP”)、实时协议(“RTP”)以及本领域技术人员将想到的其他协议。图1中描绘的LAN(160)可以例如经由互联网(172)被耦合到图1中未示出的其他计算设备。尽管仅一个存储阵列(104)中的一个存储阵列控制器(120)被明确地描绘为经由LAN(160)被耦合到计算设备(164、166、168、170),但读者将理解,存储***(100)中的任何存储阵列(102、104)中的其他存储阵列控制器(106、112、118)也可以经由相同的LAN(160)或经由不同的LAN被耦合到计算设备(164、166、168、170)。
图1中描绘的每个存储阵列(102、104)包括多个存储阵列控制器(106、112、118、120)。每个存储阵列控制器(106、112、118、120)可以被体现为包括计算机硬件、计算机软件或计算机硬件和软件的组合的自动计算机器的模块。每个存储阵列控制器(106、112、118、120)可以被配置为执行各种存储相关的任务,例如,将从计算设备(164、166、168、170)中的一个或多个接收的数据写入存储装置、从存储装置擦除数据、从存储装置取回数据以将数据提供给计算设备(164、166、168、170)中的一个或多个、监测和报告磁盘利用率和性能、执行独立驱动器的冗余阵列(RAID)或类RAID数据冗余操作、压缩数据、加密数据等。
每个存储阵列控制器(106、112、118、120)可以以各种方式实现,包括作为现场可编程门阵列(“FPGA”)、可编程逻辑芯片(“PLC”)、专用集成电路(“ASIC”)、或包括分立组件(例如,中央处理单元、计算机存储器和各种适配器)的计算设备。每个存储阵列控制器(106、112、118、120)可以包括例如数据通信适配器,其被配置为支持经由SAN(158)和LAN(160)的通信。尽管在图1的示例中仅一个存储阵列控制器(120)被描绘为耦合到LAN(160)以进行数据通信,但读者将理解,每个存储阵列控制器(106、112、118、120)都可以被独立地耦合到LAN(160)。每个存储阵列控制器(106、112、118、120)还可以包括例如I/O控制器等,其通过中平面(midplane)(114、116)将存储阵列控制器(106、112、118、120)耦合到多个存储设备(146、150)以及多个写入缓冲设备(148、152)(用作写入缓存)以进行数据通信。
在图1描绘的示例中,在每个存储阵列(102、104)中存在多个存储阵列控制器(106、112、118、120)可以使得每个存储阵列(102、104)是高度可用的,因为存在能够服务对存储阵列(102、104)的访问请求(例如,读取、写入)的独立的冗余存储阵列控制器(106、112、118、120)。在一些实施例中,特定存储阵列(102、104)中的每个存储阵列控制器(106、112、118、120)对于计算设备(164、166、168、170)可以表现为活动的,因为每个存储阵列控制器(106、112、118、120)可以用于经由SAN(158)或LAN(160)从计算设备(164、166、168、170)接收访问存储阵列(102、104)的请求。尽管存储阵列控制器(106、112、118、120)可以用于接收访问存储阵列(102、104)的请求,然而,在一些实施例中,仅一个存储阵列控制器(106、112、118、120)可以被允许主动将访问请求引导至存储设备(146、150)或写入缓冲设备(148、152)。为了便于解释,被允许将访问请求引导至存储设备(146、150)或写入缓冲设备(148、152)的存储阵列控制器在本文中可以被称为“主动(active)”存储阵列控制器,而不被允许将访问请求引导至存储设备(146、150)或写入缓冲设备(148、152)的存储阵列控制器在本文中可以被称为“被动(passive)”存储阵列控制器。读者将理解,因为被动存储阵列控制器仍可以经由SAN(158)或LAN(160)从计算设备(164、166、168、170)接收访问存储阵列(102、104)的请求,但被动存储阵列控制器可以被配置为将由被动存储阵列控制器接收的任何访问请求转发到主动存储阵列控制器。
考虑这样的示例,其中,第一存储阵列(102)中的第一存储阵列控制器(106)是被允许将访问请求引导至第一存储阵列(102)内的存储设备(146)或写入缓冲设备(148)的主动存储阵列控制器,而第一存储阵列(102)中的第二存储阵列控制器(118)是不被允许将访问请求引导至第一存储阵列(102)内的存储设备(146)或写入缓冲设备(148)的被动存储阵列控制器。在这样的示例中,第二存储阵列控制器(118)可以继续经由SAN(158)或LAN(160)从计算设备(164、166、168、170)接收访问请求。在从计算设备(164、166、168、170)接收到访问请求时,第二存储阵列控制器(118)可以被配置为经由第一存储阵列控制器(106)和第二存储阵列控制器(118)之间的通信链路将这样的访问请求转发到第一存储阵列控制器(106)。读者将理解,相对于其中两个存储阵列控制器(106、118)被允许同时修改存储设备(146)或写入缓冲设备(148)的内容的实施例,这样的实施例可以减少必须在第一存储阵列控制器(106)和第二存储阵列控制器(118)之间发生的协调的量。
尽管上述示例涉及其中第一存储阵列控制器(106)是主动存储阵列控制器而第二存储阵列控制器(118)是被动存储阵列控制器的实施例,但随着时间的推移,这种指定可以来回切换。例如,可能发生预期或意外事件,其导致其中第一存储阵列控制器(106)是被动存储阵列控制器而第二存储阵列控制器(118)是主动存储阵列控制器的情况。可能导致每个存储阵列控制器(106、118)的角色改变的意外事件的示例是第一存储阵列控制器(106)发生故障或错误情况,导致存储阵列(102)故障转移到第二存储阵列控制器(118)。可能导致每个存储阵列控制器(106、118)的角色改变的预期事件的示例是预定时间段的期满,因为第一存储阵列控制器(106)可能负责在第一时间段期间与存储设备(146)和写入缓冲设备(148)进行交互,而第二存储阵列控制器(118)可能负责在第二时间段期间与存储设备(146)和写入缓冲设备(148)进行交互。读者将理解,尽管前面的段落参考第一存储阵列(102)描述了主动和被动存储阵列控制器,但作为存储***(100)中的其他存储阵列(104)的一部分的存储阵列控制器(112、120)可以以类似的方式操作。
图1中描绘的每个存储阵列(102、104)包括一个或多个写入缓冲设备(148、152)。每个写入缓冲设备(148、152)可以被配置为从存储阵列控制器(106、112、118、120)之一接收要存储在一个或多个存储设备(146、150)中的数据。读者将理解,将数据写入到写入缓冲设备(148、152)可以比将数据写入到存储设备(146、150)更快地执行。因此,存储阵列控制器(106、112、118、120)可以被配置为有效地利用写入缓冲设备(148、152)作为用于将被写入一个或多个存储设备(146、150)的数据的快速可访问缓冲器。通过以这种方式利用写入缓冲设备(148、152),相对于不包括这种写入缓冲设备(148、152)的存储***,可以显著改善存储***(100)的用户所经历的写入延迟。相对于不包括这种写入缓冲设备(148、152)的存储***,存储***(100)的用户所经历的写入延迟可以被显著改善,因为一旦与写入请求相关联的数据已经被写入一个或多个写入缓冲设备(148、152),即使与写入请求相关联的数据尚未被写入任何存储设备(146、150),存储阵列控制器(106、112、118、120)也可以向存储***(100)的用户发送指示写入请求已被服务的确认。
写入缓冲设备(148、152)的存在还可以提高存储设备(146、150)的利用率,因为存储阵列控制器(106、112、118、120)可以累积更多写入并组织对存储设备(146、150)的写入以提高效率。可以实现更高的效率,例如,由于存储阵列控制器(106、112、118、120)可以有更多时间来执行更深的数据压缩,存储阵列控制器(106、112、118、120)能够将数据组织到与存储设备(146、150)上的底层物理存储装置更好地对准的写入块,存储阵列控制器(106、112、118、120)能够对数据执行重复删除操作等。这种写入缓冲设备(148、152)高效地将固态驱动器(例如,“闪存驱动器”)的存储阵列从延迟受限设备转换为吞吐量受限设备。以这种方式,存储阵列控制器(106、112、118、120)可以被给予更多时间以更好地组织被写入存储设备(146、150)的内容,但这样做之后,不会像基于磁盘的阵列那样被机械地受限。
图1中描绘的每个存储阵列(102、104)包括一个或多个存储设备(146、150)。在本说明书中使用的术语“存储设备”指被配置为持续记录数据的任何设备。这里使用的术语“持续”是指设备在失去电源后维持所记录的数据的能力。存储设备的示例可以包括机械旋转硬盘驱动器、固态驱动器等。
图1的存储阵列控制器(106、112)可以用于根据本公开的实施例在包括多个存储设备的存储阵列中迁移数据。存储阵列控制器(106、112)可以通过以下操作来帮助在包括多个存储设备的存储阵列中迁移数据:检测与一个或多个源存储设备相关联的存储设备疏散事件的发生;响应于检测到存储设备疏散事件的发生,标识用于接收存储在一个或多个源存储设备上的数据的一个或多个目标存储设备;减少对一个或多个源存储设备的写入访问;将存储在一个或多个源存储设备上的数据迁移到一个或多个目标存储设备;阻止对一个或多个源存储设备的所有写入访问;启用对一个或多个源存储设备的只读访问;从一个或多个源存储设备复制存储在一个或多个源存储设备上的数据;将从一个或多个源存储设备复制的数据写入一个或多个目标存储设备;在一个或多个源存储设备上发起垃圾收集过程,其中,垃圾收集过程标识一个或多个源存储设备上的有效数据和一个或多个源存储设备上的无效数据;将由垃圾收集过程标识的有效数据写入一个或多个目标存储设备;利用存储阵列中的冗余数据将数据重建到一个或多个目标存储设备上;接收从一个或多个源存储设备迁移数据的用户发起的请求;擦除存储在一个或多个源存储设备上的数据,并执行如下面将更详细描述的其他功能。
组成图1中所示的示例***的计算设备、存储阵列、网络和其他设备的布置用于解释,而不是用于限制。如本领域技术人员将想到的,根据本公开的各种实施例有用的***可以包括图1中未示出的服务器、路由器、交换机、计算设备和网络架构的不同配置。
根据本公开的实施例的在包括多个存储设备的存储阵列中迁移数据通常用计算机实现。例如,在图1的***中,所有计算设备(164、166、168、170)和存储控制器(106、112、118、120)在某种程度上可以至少被实现为计算机。因此,为了进一步说明,图2阐述了根据本公开实施例的用于在包括多个存储设备的存储阵列中迁移数据的存储阵列控制器(202)的框图。
图2中描绘的存储阵列控制器(202、206)可以类似于图1中描绘的存储阵列控制器,如图2的存储阵列控制器(202、206)可以经由中平面(210)被通信地耦合到被包括作为存储阵列(220)的一部分的一个或多个存储设备(216)和一个或多个写入缓冲设备(218)。存储阵列控制器(202、206)可以经由一个或多个数据通信链路(204、208)被耦合到中平面(210),并且中平面(206)可以经由一个或多个数据通信链路(212、214)被耦合到存储设备(216)和存储器缓冲设备(218)。图2的数据通信链路(204、208、212、214)可以被体现为例如***组件互连快速(“PCIe”)总线、SAS数据通信链路等。尽管仅详细描述了存储阵列控制器(202)之一,但读者将理解,其他存储阵列控制器(206)可以包括类似的组件。然而,为了便于解释,下面将描述存储阵列控制器(202)之一的详细视图。
图2中详述的存储阵列控制器(202)可包括至少一个计算机处理器(240)或“CPU”,以及随机存取存储器(“RAM”)(244)。计算机处理器(240)可以经由数据通信链路(238)被连接到RAM(244),该数据通信链路(238)可以被体现为高速存储器总线,例如,双倍数据速率4(“DDR4”)总线。尽管图2中详述的存储阵列控制器(202)仅包括单个计算机处理器,然而,读者将理解,用于根据本公开的实施例的在包括多个存储设备的存储阵列中迁移数据的存储阵列控制器可以包括其他计算机处理器。同样地,尽管图2中详述的存储阵列控制器(202)仅包括RAM(244),但读者将理解,用于根据本公开的实施例在包括多个存储设备的存储阵列中迁移数据的存储阵列控制器可以包括其他形式的计算机存储器,例如,闪存。
图2中详述的存储阵列控制器(202)包括存储在RAM(246)中的操作***(246)。用于被配置用于根据本公开的实施例的在包括多个存储设备的存储阵列中迁移数据的存储阵列控制器(202、206)的操作***的示例包括UNIXTM、LinuxTM、Microsoft WindowsTM、以及本领域技术人员将想到的其他***。例如,图2中描绘的操作***(246)可以被体现为管理存储阵列控制器(202)上的计算机硬件和软件资源的***软件。
图2中详述的存储阵列控制器(202)还包括存储在RAM(244)中的阵列操作环境(252)。阵列操作环境(252)可以被体现为用于使得存储阵列控制器(202)能够服务被引导至存储阵列(220)的访问请求的计算机程序指令的一个或多个模块。阵列操作环境(252)可以负责生成被发送到存储设备(216)或写入缓冲设备(218)的I/O请求(例如,读取请求、写入请求)。阵列操作环境(252)还可以被配置为执行产生对存储阵列(220)内的资源的更高效利用的各种功能。阵列操作环境(252)可以被配置为例如在将数据写入存储设备(216)之一之前压缩数据以执行数据重复删除操作,以汇集(pool)将被写入存储设备(216)之一的数据,使得数据可以被写入预定大小的块等。
图2中详述的存储阵列控制器(202)还包括疏散管理模块(256),该模块包括用于根据本公开的实施例的在包括多个存储设备的存储阵列中迁移数据的计算机程序指令。疏散管理模块(256)可以在诸如存储阵列控制器(202)的计算机处理器(240)之类的计算机硬件上执行,从而使得存储阵列控制器(202)能够通过以下操作来迁移数据:检测与一个或多个源存储设备相关联的存储设备疏散事件的发生;响应于检测到存储设备疏散事件的发生,标识用于接收存储在一个或多个源存储设备上的数据的一个或多个目标存储设备;减少对一个或多个源存储设备的写入访问;将存储在一个或多个源存储设备上的数据迁移到一个或多个目标存储设备;阻止对一个或多个源存储设备的所有写入访问;启用对一个或多个源存储设备的只读访问;从一个或多个源存储设备复制存储在一个或多个源存储设备上的数据;将从一个或多个源存储设备复制的数据写入一个或多个目标存储设备;在一个或多个源存储设备上发起垃圾收集过程,其中,垃圾收集过程标识一个或多个源存储设备上的有效数据和一个或多个源存储设备上的无效数据;将由垃圾收集过程标识的有效数据写入一个或多个目标存储设备;利用存储阵列中的冗余数据将数据重建到一个或多个目标存储设备上;接收从一个或多个源存储设备迁移数据的用户发起的请求;擦除存储在一个或多个源存储设备上的数据,并执行如下面将更详细描述的其他功能。
图2中详述的存储阵列控制器(202)还包括多个主机总线适配器(222、224、250),它们经由数据通信链路(230、232、258)被耦合到计算机处理器(240)。每个主机总线适配器(222、224、250)可以被体现为将主机***(即,存储阵列控制器)连接到其他网络和存储设备的计算机硬件的模块。例如,图2的主机总线适配器(222、224、250)中的每一个可以被体现为(使得存储阵列控制器(202)能够连接到的SAN的)光纤信道适配器、目标信道适配器、SCSI/存储目标适配器等。存储阵列控制器还包括多个以太网适配器(226、228),其使得存储阵列控制器(202)能够连接到LAN,但读者将理解,根据本公开的实施例可以使用其他类型的网络适配器。主机总线适配器(222、224、250)和以太网适配器(226、228)中的每一个可以经由数据通信链路(230、232、234、236、258)(例如,PCIe总线)被耦合到计算机处理器(240)。
图2中详述的存储阵列控制器(202)还包括经由数据通信链路(248)被耦合到计算机处理器(240)的开关(254)。图2的开关(254)可以被体现为可以从单个端点创建多个端点,从而使得多个设备能够共享最初是单个端点的内容的计算机硬件设备。例如,图2的开关(254)可以被实现为PCIe开关,其被耦合到PCIe总线并且向中平面(210)呈现多个PCIe连接点。
图2的存储阵列控制器(202)还可以包括数据通信链路(242),用于将存储阵列控制器(202)耦合到其他存储阵列控制器(206)。这种数据通信链路(242)可以被体现为例如快速路径互连(“QPI”)互连、PCIe非透明桥接(“NTB”)互连等。读者将认识到,上面描述的和附图中描绘的组件、协议、适配器和架构仅用于说明而非限制。这种存储阵列控制器可以以各种不同的方式实现,每个方式都在本公开的范围内。
为了进一步解释,图3阐述了说明根据本发明的实施例的用于在包括多个存储设备的存储阵列中迁移数据的写入缓冲设备(312)的框图。图3中描绘的写入缓冲设备(312)类似于图1和图2中描绘的写入缓冲设备。写入缓冲设备(312)可以被包括在存储阵列(302)中,该存储阵列(302)包括多个存储阵列控制器(304、306),其被通信地耦合到多个存储设备(310)并且还经由中平面(308)被通信地耦合到写入缓冲设备(312)。
图3中描绘的写入缓冲设备(312)包括两个数据通信端口(314、316)。图3的数据通信端口(314、316)可以被体现为用于经由中平面(308)将写入缓冲设备(312)通信地耦合到存储阵列控制器(304、306)的计算机硬件。例如,写入缓冲设备(312)可以经由第一数据通信端口(314)被通信地耦合到第一存储阵列控制器(304),并且写入缓冲设备(312)还可以经由第二数据通信端口(316)被通信地耦合到第二存储阵列控制器(306)。尽管图3中描绘的写入缓冲设备(312)包括两个数据通信端口(314、316),但读者将理解,用于缓冲将被写入非易失性存储设备阵列的数据的写入缓冲设备可以包括仅一个数据通信端口,或者替代地,可以包括图3中未示出的附加数据通信端口。
图3中描绘的写入缓冲设备(312)还包括控制器(320)。例如,图3中描绘的控制器(320)可以被体现为用于经由数据通信端口(314、316)接收存储器访问请求(例如,将数据写入到写入缓冲设备中的存储器的请求)并服务此类存储器访问请求的计算机硬件。图3中描绘的控制器(320)可以被体现为例如ASIC、微控制器等。图3中描绘的控制器(320)可以例如经由PCIe数据通信总线被通信地耦合到数据通信端口(314、316)。
图3中描绘的写入缓冲设备(312)还包括多个DRAM存储器模块,在图3中被体现为DRAM双列直插式存储器模块(“DIMM”)(338)。图3中描绘的DRAM DIMM(338)可以经由诸如DDR(318)存储器总线之类的存储器总线被耦合到控制器(320),使得控制器(320)可以被配置为经由DDR(318)存储器总线将数据写入DRAM DIMM(338)。
图3中描绘的写入缓冲设备(312)还包括主电源(326)。主电源(326)可以被体现为用于向写入缓冲设备(312)内的计算组件提供电力的计算机硬件。主电源(326)可以被体现为例如通过将来自主电源的交流(“AC”)电力转换为直流(“DC”)电力来向电子负载供应电能的开关模式电源、将DC源从一个电压电平转换为另一个电压电平的DC-DC转换器等。图3的主电源(326)经由电源线(322)被耦合到控制器(320),主电源(326)可以使用该电源线(322)来将电力输送到控制器(320)。图3的主电源(326)还经由电源线(330)被耦合到DRAMDIMM(338),主电源(326)可以使用该电源线(330)将电力输送到DRAM DIMM(338)。图3的主电源(326)还经由电源线(332)被耦合到电源控制器(340),主电源(326)可以使用电源线(332)将电力输送到电源控制器(340)。主电源(326)可以通过使用一个或多个控制线(324)、串行存在检测(“SPD”)线(328)、或用于检测设备的存在并检测电力正被提供给该设备的其他机制来监视哪些组件正在接收电力。读者将理解,用于缓冲将被写入非易失性存储设备的阵列的数据的写入设备可以包括图3中未示出的附加计算组件,每个计算组件也可以从主电源(326)接收电力。
图3中描绘的写入缓冲设备(312)还包括备用电源(344)。图3中描绘的备用电源(344)表示能够在主电源(326)发生故障的情况下向DRAM DIMM(338)提供电力的电源。以这种方式,DRAM DIMM(338)可以高效地用作非易失性存储器,因为主电源(326)的故障将不会导致DRAM DIMM(338)的内容丢失,因为DRAM DIMM(338)将继续从备用电源(344)接收电力。这种备用电源(344)可以被体现为例如超级电容器。
图3中描绘的写入缓冲设备(312)还包括电源控制器(340)。图3中描绘的电源控制器(340)可以被体现为计算机硬件的模块,其被配置为标识主电源(326)的故障并使得电力从备用电源(344)被传递到DRAM DIMM(338)。在这样的示例中,可以经由电源控制器(340)和备用电源(344)之间的第一电力线(342)、以及备用电源控制器(340)和DRAM DIMM(338)之间的第二电源线(334)将电力从备用电源(344)传递到DRAM DIMM(338)。图3中描绘的备用电源控制器(340)可以被体现为例如模拟电路、ASIC、微控制器等。电源控制器(340)可以通过使用可以被耦合到DRAM DIMM(338)的一个或多个控制线(336)以及可以被耦合到主电源(326)的一个或多个控制线来监测DRAM DIMM(338)是否具有电力。在这样的示例中,通过在DRAM DIMM(338)、主电源(326)和电源控制器(340)之间交换信号,电源控制器(340)可以标识是否正由主电源(326)向DRAM DIMM(338)提供电力。
在图3所示的示例中,控制器(320)可以被配置为经由一个或多个数据通信端口(314、316)从存储阵列控制器(304、306)接收将数据写入一个或多个DRAM DIMM(338)的指令。这样的指令可以包括例如写入数据的位置、将被写入DRAM DIMM(338)的数据、发出指令的主机的标识、与指令相关联的用户的标识、或服务指令所需的任何其他信息。在图3所示的示例中,NVRAM控制器(320)还可以被配置为响应于接收到这样的指令而将数据写入一个或多个DRAM DIMM(338)。
在图3所示的示例中,控制器(320)还可以被配置为响应于将数据写入一个或多个DRAM DIMM(338)来发送指示数据已经被写入非易失性存储设备的阵列(302)的确认。控制器(320)可以响应于将数据写入写入缓冲设备(312)中的DRAM DIMM(338)来发送指示数据已经被写入存储阵列(302)的确认。读者将理解,尽管一些形式的DRAM DIMM(338)被认为是易失性存储器,但由于DRAM DIMM(338)由冗余电源(326、344)支持,因此将数据写入到写入缓冲设备(312)中的DRAM DIMM(338)可以被视为与将数据写入到诸如存储设备(310)之类的传统形式的非易失性存储器相同。此外,写入缓冲设备(312)中的DRAM DIMM(338)可以包括一个或多个NVDIMM。这样,一旦数据已经被写入写入缓冲设备(312)中的DRAM DIMM(338),就可以发送指示数据已被安全且持续地写入存储阵列(302)的确认。
在图3中描绘的示例中,控制器(320)还可以被配置为确定主电源(326)是否已经故障。控制器(320)可以例如通过经由控制线(324)接收指示主电源(326)已经故障或者正在故障的信号、通过检测来自主电源(326)的电力不足等来确定主电源(326)是否已经故障。在这样的示例中,控制器(320)可以被耦合到备用电源(344)或者可以访问另一个电源,使得在主电源(326)发生故障的情况下控制器(320)可以保持可操作。
在图3所示的示例中,控制器(320)还可以被配置为响应于确定主电源(326)已发生故障而发起将被包含在一个或多个DRAM DIMM(338)中的数据传送到写入缓冲设备(312)中的闪存。控制器(320)可以例如通过用信号通知NVDIMM将被包含在一个或多个DRAM DIMM(338)中的数据传送到写入NVDIMM上的闪存(未示出),来发起将被包含在一个或多个DRAMDIMM(338)中的数据传送到写入缓冲设备(312)中的闪存。
为了进一步解释,图4阐述了示出根据本公开的实施例的用于在包括多个存储设备(412、414)的存储阵列(402)中迁移数据(416)的示例方法的流程图。尽管未详细描述,但图4中描绘的存储阵列(402)可以类似于上面参考图1-3描述的存储阵列。因此,存储阵列(402)可以包括多个存储阵列控制器、存储设备、写入缓冲设备等。读者将理解,图4中描绘的存储阵列(402)也可以是包括多个存储阵列的较大存储***的一部分。
图4中描绘的示例方法包括由存储阵列(402)检测(404)与一个或多个源存储设备(412)相关联的存储设备疏散事件的发生。存储设备疏散事件可以指示不应再对一个或多个源存储设备(412)进行写入,因为该一个或多个源存储设备(412)将最终从存储阵列(402)移除。然而,在从存储阵列(402)移除一个或多个源存储设备(412)之前,应将该一个或多个源存储设备(412)上的有效数据重新定位到存储阵列(402)中的其他存储设备(414)。例如,存储设备疏散事件可以被体现为响应于***管理员或其他管理实体指示一个或多个源存储设备(412)被指定用于从存储阵列中移除(402)而生成的事件。***管理员或其他管理实体可以指示一个或多个源存储设备(412)被指定用于从存储阵列(402)中移除,例如,通过使用专用用户界面(例如,呈现在显示屏上的GUI),该专用用户界面呈现被包括在存储阵列(402)中的存储设备(412、414)的库存,并且还允许专用用户界面的用户选择要被指定用于从存储阵列(402)中移除的一个或多个源存储设备(412)。
在图4所示的示例方法中,检测(404)与一个或多个源存储设备(412)相关联的存储设备疏散事件的发生可以由在存储阵列(402)内的计算机硬件的上执行的计算机程序指令的专用模块来执行。这种计算机程序指令的专用模块可以是独立模块,或者可以被包括在更大的模块中,例如,上面参考图2所描述的阵列操作环境。这种计算机程序指令的专用模块可以例如在阵列管理服务器内的一个或多个计算机处理器上、在类似于上述存储阵列控制器的存储阵列控制器内的一个或多个计算机处理器上、或者在存储阵列(402)内的其他计算机硬件上执行。
读者将理解,一个或多个源存储设备(412)可以出于各种原因而被指定用于从存储阵列(402)中移除。例如,更多的源存储设备(412)可以是相对旧的存储设备,其具有比相对新的存储设备更小的存储容量,这些相对新的存储设备可以用于替代相对旧的存储设备。替代地,更多的源存储设备(412)可以是相对旧的存储设备,其具有较高的访问延迟并且不能执行与相对新的存储设备一样多的IOPS,这些相对新的存储设备可以用于替代相对旧的存储设备。因此,一个或多个源存储设备(412)可以被指定用于从存储阵列(402)中移除,作为对存储阵列(402)的升级的一部分。读者将理解,一个或多个源存储设备(412)可以出于其他原因而被指定用于从存储阵列(402)中移除,并且读者还将理解,一个或多个源存储设备(412)可以被指定用于从存储阵列(402)中移除而不管一个或多个源存储设备(412)在没有一个或多个源存储设备(412)的故障即将发生的指示的情况下仍可以正常运行的事实。
图4中描绘的示例方法还包括由存储阵列(402)标识(406)用于接收存储在一个或多个源存储设备(412)上的数据(416)的一个或多个目标存储设备(414)。标识(406)用于接收存储在一个或多个源存储设备(412)上的数据(416)的一个或多个目标存储设备(414)可以由在存储阵列(402)内的计算机硬件上执行的计算机程序指令的专用模块来执行。这种计算机程序指令的专用模块可以是独立模块,或者可以被包括在更大的模块中,例如,上面参考图2所描述的阵列操作环境。这种计算机程序指令的专用模块可以例如在阵列管理服务器内的一个或多个计算机处理器上、在类似于上述存储阵列控制器的存储阵列控制器内的一个或多个计算机处理器上、或者在存储阵列(402)内的其他计算机硬件上执行。
在图4所示的示例方法中,响应于检测到发生存储设备疏散事件而标识(406)用于接收存储在一个或多个源存储设备(412)上的数据(416)的一个或多个目标存储设备(414)。在检测到发生存储设备疏散事件时,存储阵列(402)可以通过标识在物理上最接近源存储设备(412)的存储设备、通过标识存储阵列(402)中具有最多可用存储装置的存储设备等,来标识(406)用于接收存储在一个或多个源存储设备(412)上的数据(416)的一个或多个目标存储设备(414)。
图4中描绘的示例方法还包括由存储阵列(402)减少(408)对一个或多个源存储设备(412)的写入访问。减少(408)对一个或多个源存储设备(412)的写入访问可以例如通过阻止任何附加数据被写入一个或多个源存储设备(412)、通过将可以被引导至一个或多个源存储设备(412)的写入访问的数目限制到预定值等来执行。读者将理解,通过减少(408)对一个或多个源存储设备(412)的写入访问,存储阵列(402)可以继续从一个或多个源存储设备(412)读取数据,但新数据可能不被写入源存储设备(412),考虑到预期从存储阵列(402)移除源存储设备(412)而新数据后续将从源存储设备(412)被迁移出来。
减少(408)对一个或多个源存储设备(412)的写入访问可以通过使用在存储阵列(402)内的计算机硬件上执行的计算机程序指令的专用模块来执行。这种计算机程序指令的专用模块可以是独立模块,或者可以被包括在更大的模块中,例如,上面参考图2所描述的阵列操作环境。这种计算机程序指令的专用模块可以例如在阵列管理服务器内的一个或多个计算机处理器上、在类似于上述存储阵列控制器的存储阵列控制器内的一个或多个计算机处理器上、或者在存储阵列(402)内的其他计算机硬件上执行。在这样的示例中,在存储阵列(402)内的计算机硬件上执行的计算机程序指令的专用模块可以被配置为通知存储阵列(402)中的每个存储阵列控制器对一个或多个源存储设备(412)的写入访问已经被减少(408),使得存储阵列(402)中的存储阵列控制器可以停止(或限制)向一个或多个源存储设备(412)发布写入请求。
图4中描绘的示例方法还包括将存储在一个或多个源存储设备(412)上的数据(416)迁移(410)到一个或多个目标存储设备(414)。将存储在一个或多个源存储设备(412)上的数据(416)迁移(410)到一个或多个目标存储设备(414)可以例如通过将存储在一个或多个源存储设备(412)上的数据(416)写入一个或多个目标存储设备(414)来执行。在这样的示例中,一旦一个或多个源存储设备(412)上的所有有效数据已经被迁移(410)到一个或多个目标存储设备(414),则该一个或多个源存储设备(412)可以从存储阵列(402)中安全地移除。一旦一个或多个源存储设备(412)上的所有有效数据已经被迁移(410)到一个或多个目标存储设备(414),则源存储设备(412)可能不再被视为存储设备的法定人数(quorum)的一部分。实际上,必须通过列举过程来明确地添加代替源存储设备(412)而被***的任何存储设备,该列举过程可以例如由在存储阵列(402)内的特定存储阵列控制器上执行的阵列操作环境来执行。这样的列举过程可以通过检测设备到存储阵列(402)的***、标识***设备是存储设备、以及初始化使得存储设备能够运行的所需例程或驱动程序来执行。在这样的示例中,可以通过使用软件检测机制或硬件组件(例如,存在检测线)来检测设备到存储阵列(402)的***,该软件检测机制或硬件组件检测设备的物理存在并且发信号通知存储阵列控制器(402)设备何时被***或从存储阵列(402)移除。标识***设备是存储设备可以例如通过存储阵列控制器接收诸如***设备的重要产品数据(“VPD”)之类的信息来执行,其中,这种VPD可以由阵列操作环境用于标识设备。一旦设备已经被标识,则阵列操作环境可以初始化访问和使用该设备所需的驱动程序和例程。
读者将理解,如果在一个或多个目标存储设备(414)上没有足够的空间来存储被存储在一个或多个源存储设备(412)上的数据(416),则数据(416)的迁移(410)可能中止,并且存储阵列(402)可以回滚到其在发生存储设备疏散事件之前的状态。在这样的示例中,如果在一个或多个目标存储设备(414)上存储数据(416)将导致存储阵列(402)的容量利用率超过预定阈值,则在存储阵列控制器上执行的阵列操作环境可以确定在一个或多个目标存储设备(414)上存在不足的空间。
读者将理解,在一些实施例中,仅存储在一个或多个源存储设备(412)上的有效数据将被迁移(410)到一个或多个目标存储设备(414),因为无效数据不需要通过将这种无效数据迁移(410)到一个或多个目标存储设备(414)来保留。考虑其中特定数据片段被存储在源存储设备(412)内的第一位置的示例。在这样的示例中,假设后续接收到修改特定数据片段的请求。鉴于源存储设备(412)可以被体现为SSD的事实,修改特定数据片段不能通过简单地重写数据(如将在硬盘驱动器中发生)来实现。替代地,特定数据片段的修改版本将被写入第二位置(可以在或可以不在同一存储设备上),并且存储在源存储设备(412)内的第一位置处的特定数据片段将被标记为无效。这样,源存储设备(412)可以包括尚未被垃圾收集的一些无效数据,并且这样的无效数据不需要通过将无效数据迁移(410)到一个或多个目标存储设备(414)来保留。
为了进一步解释,图5阐述了示出根据本公开的实施例的用于在包括多个存储设备的存储阵列中迁移数据的附加示例方法的流程图。图5中描绘的示例方法类似于图4中描绘的示例方法,因为图5中描绘的示例方法也包括:检测(404)与一个或多个源存储设备(412)相关联的存储设备疏散事件的发生、标识(406)用于接收存储在一个或多个源存储设备(412)上的数据(416)的一个或多个目标存储设备(414)、减少(408)对一个或多个源存储设备(412)的写入访问、以及将存储在一个或多个源存储设备(412)上的数据(416)迁移(410)到一个或多个目标存储设备(414)。
在图5中描绘的示例方法中,减少(408)对一个或多个源存储设备(412)的写入访问可以包括阻止(502)对一个或多个源存储设备(412)的所有写入访问。阻止(502)对一个或多个源存储设备(412)的所有写访问可以例如通过存储阵列(402)中的每个存储阵列控制器停止向一个或多个源存储设备(412)发布写入操作来执行。在这样的示例中,每个存储阵列控制器可以维护标识存储阵列(402)中不应用于服务写入操作的所有存储设备的列表或其他数据结构。由于存储阵列控制器负责将所有访问请求引导至存储阵列(402)中的存储设备(412、414),因此存储阵列控制器可以最终实施策略以阻止(502)对一个或多个源存储设备(412)的所有写入访问。
在图5中描绘的示例方法中,减少(408)对一个或多个源存储设备(412)的写入访问可以替代地包括启用(504)对一个或多个源存储设备(412)的只读访问。例如,启用(504)对一个或多个源存储设备(412)的只读访问可以通过存储阵列(402)中的每个存储阵列控制器停止向一个或多个源存储设备(412)发布写入操作,同时还允许将读取操作引导至到一个或多个源存储设备(412)来执行。在这样的示例中,每个存储阵列控制器可以维护标识存储阵列(402)中的所有存储设备并将访问权限(例如,只读、读写)与存储阵列(402)中的每个存储设备相关联的列表或其他形式的数据存储库。由于存储阵列控制器负责将所有访问请求引导至存储阵列(402)中的存储设备(412、414),因此存储阵列控制器可以最终实施策略以启用(504)对一个或多个源存储设备(412)的只读访问。
读者将理解,在其中减少(408)对一个或多个源存储设备(412)的写入访问的上述示例中,在一个或多个源存储设备(412)上存在重复删除数据可以被视为特殊情况。数据重复删除是一种可以消除重复数据的重复副本的数据压缩技术。通过使用数据重复删除技术,可以将独特的数据块(例如,主副本)一次存储在存储阵列(402)中,并且所有额外出现的数据块被替换为指向所存储的块的较小引用。因此,一个或多个源存储设备(412)上的重复删除数据可以被体现为例如被存储在一个或多个源存储设备(412)上的数据片段,其中,该数据片段被存储阵列(402)中的其他出现的相同数据所指向。在一个或多个源存储设备(412)上存在重复删除的数据可以例如通过允许对重复删除数据的读写访问并同时启用对源存储设备(412)的其余部分(例如,不包含重复删除数据的那些部分)的只读访问(或阻止对其的写入访问)来处理。替代地,重复删除数据可以被迁移到存储阵列中的另一存储设备,并且可以更新对重复删除数据的所有引用以指向存储重复删除数据的新位置。
为了进一步解释,图6阐述了示出根据本公开的实施例的用于在包括多个存储设备的存储阵列中迁移数据的附加示例方法的流程图。图6中描绘的示例方法类似于图4中描绘的示例方法,因为图6中描绘的示例方法也包括:检测(404)与一个或多个源存储设备(412)相关联的存储设备疏散事件的发生、标识(406)用于接收存储在一个或多个源存储设备(412)上的数据(416)的一个或多个目标存储设备(414)、减少(408)对一个或多个源存储设备(412)的写入访问、以及将存储在一个或多个源存储设备(412)上的数据(416)迁移(410)到一个或多个目标存储设备(414)。
在图6中描绘的示例方法中,将存储在一个或多个源存储设备(412)上的数据(416)迁移(410)到一个或多个目标存储设备(414)可以包括将存储在一个或多个源存储设备(412)上的数据(416)从一个或多个源存储设备(412)复制(602)到一个或多个目标存储设备(414)。将存储在一个或多个源存储设备(412)上的数据(416)从一个或多个源存储设备(412)复制(602)到一个或多个目标存储设备(414)可以例如通过存储阵列控制器读取存储在一个或多个源存储设备(412)上的数据(416),并且存储阵列控制器将这样的数据写入一个或多个目标存储设备(414)来执行。在替代实施例中,存储阵列控制器或甚至驱动器本身可以被配置为支持复制操作,该复制操作将对源的标识和对目标的标识作为操作数。在这样的示例中,操作数可以被指定为物理地址的范围、虚拟地址的范围、基地址和对将复制的数据的大小的指示、对数据的逻辑分组(例如,卷)的标识等。读者将理解,图6中描绘的示例方法示出了其中数据(606)已被复制到一个或多个目标存储设备(414)的实施例。
为了进一步解释,图7阐述了示出根据本公开的实施例的用于在包括多个存储设备的存储阵列中迁移数据的附加示例方法的流程图。图7中描绘的示例方法类似于图4中描绘的示例方法,因为图7中描绘的示例方法也包括:检测(404)与一个或多个源存储设备(412)相关联的存储设备疏散事件的发生、标识(406)用于接收存储在一个或多个源存储设备(412)上的数据(416)的一个或多个目标存储设备(414)、减少(408)对一个或多个源存储设备(412)的写入访问、以及将存储在一个或多个源存储设备(412)上的数据(416)迁移(410)到一个或多个目标存储设备(414)。
在图7中描绘的示例方法中,将存储在一个或多个源存储设备(412)上的数据(416)迁移(410)到一个或多个目标存储设备(414)可以包括对一个或多个源存储设备(412)发起(702)垃圾收集过程。例如,垃圾收集过程可以被体现为在诸如计算机处理器或微控制器之类的计算机硬件上执行的计算机程序指令的模块。垃圾收集过程可以被配置为回收由不再使用的数据所占用的存储器。如上所述,不再使用的数据在本文中可被称为无效数据,而仍在使用的数据在本文中可被称为有效数据。
在图7中描绘的示例方法中,垃圾收集过程可以标识一个或多个源存储设备(412)上的有效数据,并且垃圾收集过程还可以标识一个或多个源存储设备(412)上的无效数据。例如,通过读取与存储在存储阵列中(402)中的数据相关联的元数据,垃圾收集过程可以标识一个或多个源存储设备(412)上的有效数据,并且垃圾收集过程还可以标识一个或多个源存储设备(412)上的无效数据。这样的元数据可以包括可以用于确定特定数据片段是有效还是无效的信息。元数据可以包括作为当数据被写入存储设备(412、414)时由存储阵列控制器或存储设备(412、414)自身执行的步骤的结果的这种信息。
考虑其中存储设备(412、414)被体现为SSD的示例,其中,数据以16KB页面写入SSD。附接到SSD中的每个页面的可以是少量(例如,8字节)的附加存储器,其用于存储与页面相关联的元数据。SSD可以被配置为从存储阵列控制器接收对写入数据的请求,其中,对写入数据的请求包括SSD随后转换为物理地址的虚拟地址。在这样的示例中,虚拟到物理地址转换可以由SSD存储在由SSD维护的转换表中。当SSD接收到对将数据写入特定虚拟地址的请求时,SSD可以将数据写入与第一物理地址相关联的第一页面,并且SSD还可以将用于存储与第一页相关联的元数据的少量附加存储器中的预定位设置为指示其中包含的数据有效的值。如果SSD随后接收到对将数据写入特定虚拟地址的第二请求,则SSD可以将数据写入由第二物理地址描述的第二页面,并且还将用于存储与第二页面相关联的元数据的少量附加存储器中的预定位设置为指示其中包含的数据有效的值。此外,SSD可以将用于存储与第一页面相关联的元数据的少量附加存储器中的预定位设置为指示其中包含的数据无效的值,同时还更新转换表以将特定虚拟地址映射到第二物理地址。以这种方式,垃圾收集过程可以扫描与每个页面相关联的元数据以确定每个页面的内容是有效还是无效。读者将理解,在其他实施例中,可以以其他方式存储和维护与存储在存储阵列(402)中的数据相关联的元数据。
在图7中描绘的示例方法中,将存储在一个或多个源存储设备(412)上的数据(416)迁移(410)到一个或多个目标存储设备(414)还可以包括将由垃圾收集过程标识的有效数据写入(704)一个或多个目标存储设备(414)。将由垃圾收集过程标识的有效数据写入(704)一个或多个目标存储设备(414)可以例如通过存储阵列控制器发出一个或多个指令来将由垃圾收集过程标识的有效数据写入一个或多个目标存储设备(414)来执行。在这样的示例中,将由垃圾收集过程标识的有效数据写入一个或多个目标存储设备(414)甚至可以是垃圾收集过程的一部分,因为垃圾收集过程可以与存储阵列上的其他模块进行通信以促进将由垃圾收集过程标识的有效数据写入一个或多个目标存储设备(414)。读者将理解,图7中描绘的示例方法示出了其中数据(606)已经经由垃圾收集过程被迁移到一个或多个目标存储设备(414)的实施例。
为了进一步解释,图8阐述了示出根据本公开的实施例的用于在包括多个存储设备的存储阵列中迁移数据的附加示例方法的流程图。图8中描绘的示例方法类似于图4中描绘的示例方法,因为图8中描绘的示例方法也包括:检测(404)与一个或多个源存储设备(412)相关联的存储设备疏散事件的发生、标识(406)用于接收存储在一个或多个源存储设备(412)上的数据(416)的一个或多个目标存储设备(414)、减少(408)对一个或多个源存储设备(412)的写入访问、以及将存储在一个或多个源存储设备(412)上的数据(416)迁移(410)到一个或多个目标存储设备(414)。
在图8中描绘的示例方法中,检测(404)与一个或多个源存储设备(412)相关联的存储设备疏散事件的发生可以包括接收(804)将数据迁移出一个或多个源存储设备(412)的用户发起的请求(802)。将数据迁移出一个或多个源存储设备(412)的用户发起的请求(802)可以例如通过使用用户界面(例如,在显示屏上呈现的GUI)来接收(804),该用户界面呈现被包括在存储阵列(402)中的存储设备(412、414)的库存,并且还允许用户界面的用户选择将被指定用于从存储阵列(402)中移除的一个或多个源存储设备(412)。读者将理解,在其他实施例中,可以以其他方式接收(804)将数据迁移出一个或多个源存储设备(412)的用户发起的请求(802)。
在图8中描绘的示例方法中,存储在一个或多个源存储设备(412)上的数据(416)可以是跨多个存储设备条带化的数据集的一部分。例如,存储在一个或多个源存储设备(412)上的数据(416)可以是RAID条带的一部分,其中,存储在另一存储设备(810)上的数据(814)是RAID条带的一部分。在这样的示例中,冗余数据(816)可以被存储在存储阵列(402)中的另一存储设备(812)上。在包含数据(416、814)的存储设备(412、810)之一发生故障或以其他方式变得不可用的情况下,这种冗余数据(816)可以用于重建RAID条带中的数据(416、814)。
在图8中描绘的示例方法中,将存储在一个或多个源存储设备(412)上的数据(416)迁移(410)到一个或多个目标存储设备(414)可以包括利用存储阵列(402)中的冗余数据(816)将数据(416)重建(806)到一个或多个目标存储设备(414)上。将数据(416)重建(806)到一个或多个目标存储设备(414)上可以例如通过以下操作来执行:利用RAID算法和冗余数据(816)来重建存储在一个或多个目标存储设备(414)上的数据(416)。然而,在图8中描绘的示例方法中,一个或多个目标存储设备(414)可以被标识为将存储数据重建数据的目的地。
在图8中描绘的示例方法还包括擦除(808)存储在一个或多个源存储设备(412)上的数据(416)。一旦存储在一个或多个源存储设备(412)上的数据(416)已经被成功迁移到一个或多个目标存储设备(414),则可以执行擦除(808)存储在一个或多个源存储设备(412)上的数据(416)。擦除(808)存储在一个或多个源存储设备(412)上的数据(416)可以作为数据保护措施来执行,以确保一旦存储设备(412)已经从存储阵列中被移除(402),驻留在那些存储设备(412)上的客户端数据将不会被访问。读者将理解,图8中描绘的示例方法示出了其中数据(606)已被重建到一个或多个目标存储设备(414)上的实施例。
读者将理解,尽管以按照以特定顺序发生的一系列步骤的方式描述了上述示例方法,但除非明确说明,否则不要求特定的步骤顺序。主要在用于在包括多个存储设备的存储阵列中迁移数据的全功能计算机***的上下文中描述了本发明的示例实施例。然而,本领域的技术人员将认识到,本发明还可以体现在设置在计算机可读存储介质上的计算机程序产品中,以与任何合适的数据处理***一起使用。这种计算机可读存储介质可以是用于机器可读信息的任何存储介质,包括磁介质、光学介质或其他合适的介质。这种介质的示例包括硬盘驱动器或软磁盘中的磁盘、光盘驱动器的光盘、磁带、以及本领域技术人员将想到的其他介质。本领域技术人员将立即认识到,具有合适编程装置的任何计算机***将能够执行如计算机程序产品中体现的本发明的方法的步骤。本领域技术人员还将认识到,尽管在本说明书中描述的一些示例实施例面向在计算机硬件上安装和执行的软件,然而,作为固件或硬件所实现的替代实施例完全在本发明的范围内。
本发明可以被体现为装置、方法和/或计算机程序产品。该计算机程序产品可以包括计算机可读存储介质(或多个介质),其上具有用于使得处理器执行本发明的各方面的计算机可读程序指令。计算机可读存储介质可以是有形设备,其可以保留和存储指令以供指令执行设备使用。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适组合。计算机可读存储介质的更具体示例的非详尽列表包括下列项:便携式计算机磁盘、硬盘、RAM、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字通用光盘(DVD)、记忆棒等。本文使用的计算机可读存储介质不应被解释为暂态信号本身,例如,无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过电线传输的电信号。
本文描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网)从计算机可读存储介质或外部计算机或外部存储设备下载到相应的计算/处理设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙,交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言(包括诸如Smalltalk、C++等之类的面向对象的编程语言,以及诸如“C”编程语言或类似编程语言之类的传统过程编程语言)的任意组合编写的源代码或对象代码。计算机可读程序指令可以完全在用户的计算机上、部分地在用户的计算机上、作为独立的软件包、部分地在用户的计算机上并且部分地在远程计算机上、或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括LAN或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、FPGA或PLA的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令,以个性化电子电路以便执行本发明的各方面。
本文参考根据本发明的实施例的方法、装置(***)和计算机程序产品的流程图和/或框图来描述本发明的各方面。将理解,流程图和/或框图的每个框、以及流程图和/或框图中的框的组合可以由计算机可读程序指令实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由通过计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或一个或多个框图框中所指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,该计算机可读存储介质可以指示计算机、可编程数据处理装置、和/或其他设备以特定方式起作用,使得在其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或一个或多个框图框中所指定的功能/动作的方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或一个或多个框图框中所指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的装置、方法和计算机程序产品的可能的实现方式的架构、功能和操作。在这方面,流程图或框图中的每个框可以表示模块、段或指令的一部分,其包括用于实现所指定的(一个或多个)逻辑功能的一个或多个可执行指令。在一些替代实现方式中,框中提到的功能可以不按图中所示的顺序发生。例如,连续示出的两个框实际上可以被基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,框图和/或流程图的每个框、以及框图和/或流程图中的框的组合可以由执行特定功能或动作、或执行专用硬件和计算机指令的组合的基于专用硬件的***来实现。
读者将理解,本文描述的步骤可以以各种方式执行,并且不需要特定的排序。从前面的描述将进一步理解,在不脱离本发明的真实精神的情况下,可以在本发明的各种实施例中进行修改和改变。本说明书中的描述仅用于说明的目的而不应被解释为限制意义。本发明的范围仅受以下权利要求的语言限制。
Claims (20)
1.一种在包括多个存储设备的存储阵列中迁移数据的方法,所述方法包括:
由所述存储阵列检测与一个或多个源存储设备相关联的存储设备疏散事件的发生;
响应于检测到所述存储设备疏散事件的发生,由所述存储阵列标识用于接收存储在所述一个或多个源存储设备上的数据的一个或多个目标存储设备;
由所述存储阵列减少对所述一个或多个源存储设备的写入访问;以及
将存储在所述一个或多个源存储设备上的数据迁移到所述一个或多个目标存储设备。
2.根据权利要求1所述的方法,其中,减少对所述一个或多个源存储设备的写入访问还包括阻止对所述一个或多个源存储设备的所有写入访问。
3.根据权利要求1所述的方法,其中,减少对所述一个或多个源存储设备的写入访问还包括启用对所述一个或多个源存储设备的只读访问。
4.根据权利要求1所述的方法,其中,将存储在所述一个或多个源存储设备上的数据迁移到所述一个或多个目标存储设备还包括将存储在所述一个或多个源存储设备上的数据从所述一个或多个源存储设备复制到所述一个或多个目标存储设备。
5.根据权利要求1所述的方法,其中,将存储在所述一个或多个源存储设备上的数据迁移到所述一个或多个目标存储设备还包括:
在所述一个或多个源存储设备上发起垃圾收集过程,其中,所述垃圾收集过程标识所述一个或多个源存储设备上的有效数据和所述一个或多个源存储设备上的无效数据;并且将由所述垃圾收集过程标识的所述有效数据写入所述一个或多个目标存储设备。
6.根据权利要求1所述的方法,其中,将存储在所述一个或多个源存储设备上的数据迁移到所述一个或多个目标存储设备还包括利用所述存储阵列中的冗余数据将所述数据重建到所述一个或多个目标存储设备上。
7.根据权利要求1所述的方法,其中,检测所述存储设备疏散事件的发生还包括接收从所述一个或多个源存储设备迁移数据的用户发起的请求。
8.根据权利要求1所述的方法,还包括擦除存储在所述一个或多个源存储设备上的所述数据。
9.根据权利要求1所述的方法,其中,存储在所述一个或多个源存储设备上的所述数据是跨多个存储设备条带化的数据集的一部分。
10.一种用于在包括多个存储设备的存储阵列中迁移数据的装置,所述装置包括计算机处理器和计算机存储器,所述计算机存储器包括计算机程序指令,所述计算机程序指令在由所述计算机处理器执行时,使得所述装置执行以下步骤:
检测与一个或多个源存储设备相关联的存储设备疏散事件的发生;
响应于检测到所述存储设备疏散事件的发生,标识用于接收存储在所述一个或多个源存储设备上的数据的一个或多个目标存储设备;
减少对所述一个或多个源存储设备的写入访问;以及
将存储在所述一个或多个源存储设备上的数据迁移到所述一个或多个目标存储设备。
11.根据权利要求10所述的装置,其中,减少对所述一个或多个源存储设备的写入访问还包括阻止对所述一个或多个源存储设备的所有写入访问。
12.根据权利要求10所述的装置,其中,减少对所述一个或多个源存储设备的写入访问还包括启用对所述一个或多个源存储设备的只读访问。
13.根据权利要求10所述的装置,其中,将存储在所述一个或多个源存储设备上的数据迁移到所述一个或多个目标存储设备还包括将存储在所述一个或多个源存储设备上的数据从所述一个或多个源存储设备复制到所述一个或多个目标存储设备。
14.根据权利要求10所述的装置,其中,将存储在所述一个或多个源存储设备上的数据迁移到所述一个或多个目标存储设备还包括:在所述一个或多个源存储设备上发起垃圾收集过程,其中,所述垃圾收集过程标识所述一个或多个源存储设备上的有效数据和所述一个或多个源存储设备上的无效数据;并且将由所述垃圾收集过程标识的所述有效数据写入所述一个或多个目标存储设备。
15.根据权利要求10所述的装置,其中,将存储在所述一个或多个源存储设备上的数据迁移到所述一个或多个目标存储设备还包括利用所述存储阵列中的冗余数据将所述数据重建到所述一个或多个目标存储设备上。
16.根据权利要求10所述的装置,其中,检测所述存储设备疏散事件的发生还包括接收从所述一个或多个源存储设备迁移数据的用户发起的请求。
17.根据权利要求10所述的装置,还包括计算机程序指令,所述计算机程序指令在由所述计算机处理器执行时,使得所述装置执行擦除存储在所述一个或多个源存储设备上的所述数据的步骤。
18.根据权利要求10所述的装置,其中,存储在所述一个或多个源存储设备上的所述数据是跨多个存储设备条带化的数据集的一部分。
19.一种用于在包括多个存储设备的存储阵列中迁移数据的计算机程序产品,所述计算机程序产品被布置在计算机可读存储介质上,所述计算机程序产品包括计算机程序指令,所述计算机程序指令在由计算机处理器执行时,使得所述计算机处理器执行以下步骤:
检测与一个或多个源存储设备相关联的存储设备疏散事件的发生;
响应于检测到所述存储设备疏散事件的发生,标识用于接收存储在所述一个或多个源存储设备上的数据的一个或多个目标存储设备;
减少对所述一个或多个源存储设备的写入访问;以及
将存储在所述一个或多个源存储设备上的数据迁移到所述一个或多个目标存储设备。
20.根据权利要求19所述的计算机程序产品,其中,减少对所述一个或多个源存储设备的写入访问还包括启用对所述一个或多个源存储设备的只读访问。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/140,445 | 2016-04-27 | ||
US15/140,445 US9841921B2 (en) | 2016-04-27 | 2016-04-27 | Migrating data in a storage array that includes a plurality of storage devices |
PCT/US2017/012444 WO2017189058A1 (en) | 2016-04-27 | 2017-01-06 | Migrating data in a storage array that includes a plurality of storage devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108885538A true CN108885538A (zh) | 2018-11-23 |
CN108885538B CN108885538B (zh) | 2022-05-17 |
Family
ID=57868400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780021261.3A Active CN108885538B (zh) | 2016-04-27 | 2017-01-06 | 在包括多个存储设备的存储阵列中迁移数据 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9841921B2 (zh) |
EP (1) | EP3400522A1 (zh) |
JP (1) | JP6902555B2 (zh) |
CN (1) | CN108885538B (zh) |
WO (1) | WO2017189058A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10564884B1 (en) | 2016-04-27 | 2020-02-18 | Pure Storage, Inc. | Intelligent data migration within a flash storage array |
CN111445939A (zh) * | 2019-01-17 | 2020-07-24 | 爱思开海力士有限公司 | 存储装置及其操作方法 |
CN113282239A (zh) * | 2021-05-21 | 2021-08-20 | 维沃移动通信有限公司 | 数据迁移方法、存储器及控制器 |
US11112990B1 (en) | 2016-04-27 | 2021-09-07 | Pure Storage, Inc. | Managing storage device evacuation |
CN113495680A (zh) * | 2020-04-02 | 2021-10-12 | 华为技术有限公司 | 数据迁移方法及装置、存储***、存储介质 |
US11809727B1 (en) | 2016-04-27 | 2023-11-07 | Pure Storage, Inc. | Predicting failures in a storage system that includes a plurality of storage devices |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106407040B (zh) | 2016-09-05 | 2019-05-24 | 华为技术有限公司 | 一种远程数据复制方法及*** |
US10764366B2 (en) * | 2017-01-03 | 2020-09-01 | Wipro Limited | System and method for storing data in data storage unit of virtual storage area network |
EP3685271A4 (en) * | 2018-01-29 | 2021-05-12 | Hewlett-Packard Development Company, L.P. | VALIDITY OF RECORDS STORED IN MEMORY |
US10877682B2 (en) | 2019-01-10 | 2020-12-29 | Western Digital Technologies, Inc. | Non-disruptive cross-protocol live data migration |
KR102650809B1 (ko) | 2019-08-02 | 2024-03-26 | 삼성전자주식회사 | 스토리지 장치 및 그것의 동작 방법 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050188246A1 (en) * | 2004-02-25 | 2005-08-25 | Emberty Robert G. | Persistent worldwide names assigned to removable media storage |
CN101206553A (zh) * | 2006-12-20 | 2008-06-25 | 国际商业机器公司 | 利用支持处理器的优化数据迁移方法和*** |
CN101410812A (zh) * | 2006-04-25 | 2009-04-15 | 国际商业机器公司 | 迁移受到输入/输出设备访问的数据 |
CN101676855A (zh) * | 2008-09-11 | 2010-03-24 | 美国日本电气实验室公司 | 可变动的辅助存储***和方法 |
CN102200936A (zh) * | 2011-05-11 | 2011-09-28 | 杨钧 | 适用于云存储的智能配置存储备份方法 |
US20110246733A1 (en) * | 2010-03-30 | 2011-10-06 | Network Appliance, Inc. | Restoration of a parent lun through modification of a read-write clone lun as the parent lun |
US20130254481A1 (en) * | 2010-01-08 | 2013-09-26 | Network Appliance, Inc. | Presentation of a read-only clone lun to a host device as a snapshot of a parent lun |
US20140032834A1 (en) * | 2012-07-26 | 2014-01-30 | International Business Machines Corporation | Managing A Solid State Drive ('SSD') In A Redundant Array Of Inexpensive Drives ('RAID') |
US20140195480A1 (en) * | 2010-12-13 | 2014-07-10 | Fusion-Io, Inc. | Persistent memory management |
WO2015020811A1 (en) * | 2013-08-09 | 2015-02-12 | Fusion-Io, Inc. | Persistent data structures |
CN105009085A (zh) * | 2013-03-18 | 2015-10-28 | 株式会社东芝 | 信息处理***、控制程序以及信息处理设备 |
US9250823B1 (en) * | 2014-05-20 | 2016-02-02 | Emc Corporation | Online replacement of physical storage in a virtual storage system |
US20160092119A1 (en) * | 2014-09-29 | 2016-03-31 | International Business Machines Corporation | Data migration between different types of storage systems |
Family Cites Families (173)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5651133A (en) | 1995-02-01 | 1997-07-22 | Hewlett-Packard Company | Methods for avoiding over-commitment of virtual capacity in a redundant hierarchic data storage system |
JPH08242229A (ja) | 1995-03-01 | 1996-09-17 | Fujitsu Ltd | ネットワーク監視における状態整合処理システム |
US5799200A (en) | 1995-09-28 | 1998-08-25 | Emc Corporation | Power failure responsive apparatus and method having a shadow dram, a flash ROM, an auxiliary battery, and a controller |
US6012032A (en) | 1995-11-30 | 2000-01-04 | Electronic Data Systems Corporation | System and method for accounting of computer data storage utilization |
US5933598A (en) | 1996-07-17 | 1999-08-03 | Digital Equipment Corporation | Method for sharing variable-grained memory of workstations by sending particular block including line and size of the block to exchange shared data structures |
US6085333A (en) | 1997-12-19 | 2000-07-04 | Lsi Logic Corporation | Method and apparatus for synchronization of code in redundant controllers in a swappable environment |
US6647514B1 (en) * | 2000-03-23 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Host I/O performance and availability of a storage array during rebuild by prioritizing I/O request |
US6643641B1 (en) | 2000-04-27 | 2003-11-04 | Russell Snyder | Web search engine with graphic snapshots |
JP2002041305A (ja) | 2000-07-26 | 2002-02-08 | Hitachi Ltd | 仮想計算機システムにおける計算機資源の割当て方法および仮想計算機システム |
US6789162B1 (en) | 2000-10-17 | 2004-09-07 | Sun Microsystems, Inc. | Storage controller configured to select unused regions of a storage device for data storage according to head position |
US6978259B1 (en) * | 2001-10-23 | 2005-12-20 | Hewlett-Packard Development Company, L.P. | Automated system adaptation technique particularly for data storage systems |
US6857045B2 (en) | 2002-01-25 | 2005-02-15 | International Business Machines Corporation | Method and system for updating data in a compressed read cache |
US6728738B2 (en) | 2002-04-03 | 2004-04-27 | Sun Microsystems, Inc. | Fast lifetime analysis of objects in a garbage-collected system |
US6895464B2 (en) | 2002-06-03 | 2005-05-17 | Honeywell International Inc. | Flash memory management system and method utilizing multiple block list windows |
US7783787B1 (en) * | 2002-06-13 | 2010-08-24 | Netapp, Inc. | System and method for reprioritizing high-latency input/output operations |
US7334124B2 (en) | 2002-07-22 | 2008-02-19 | Vormetric, Inc. | Logical access block processing protocol for transparent secure file storage |
US7146521B1 (en) | 2002-08-21 | 2006-12-05 | 3Pardata, Inc. | Preventing damage of storage devices and data loss in a data storage system |
CN101114255A (zh) | 2002-08-29 | 2008-01-30 | 松下电器产业株式会社 | 用于将数据写入快闪存储设备的半导体存储器的装置和方法 |
US6831865B2 (en) | 2002-10-28 | 2004-12-14 | Sandisk Corporation | Maintaining erase counts in non-volatile storage systems |
US20040153844A1 (en) | 2002-10-28 | 2004-08-05 | Gautam Ghose | Failure analysis method and system for storage area networks |
US7072905B2 (en) | 2002-12-06 | 2006-07-04 | Sun Microsystems, Inc. | Better placement of objects reachable from outside a generation managed by the train algorithm |
US7181580B2 (en) | 2003-03-27 | 2007-02-20 | International Business Machines Corporation | Secure pointers |
WO2004095201A2 (en) | 2003-04-09 | 2004-11-04 | Intervideo Inc. | Systems and methods for caching multimedia data |
US7437530B1 (en) | 2003-04-24 | 2008-10-14 | Network Appliance, Inc. | System and method for mapping file block numbers to logical block addresses |
US7434097B2 (en) * | 2003-06-05 | 2008-10-07 | Copan System, Inc. | Method and apparatus for efficient fault-tolerant disk drive replacement in raid storage systems |
US7089272B1 (en) | 2003-06-18 | 2006-08-08 | Sun Microsystems, Inc. | Specializing write-barriers for objects in a garbage collected heap |
US7434214B2 (en) | 2004-01-21 | 2008-10-07 | International Business Machines Corporation | Method for determining a close approximate benefit of reducing memory footprint of a Java application |
US7526684B2 (en) | 2004-03-24 | 2009-04-28 | Seagate Technology Llc | Deterministic preventive recovery from a predicted failure in a distributed storage system |
US7493424B1 (en) | 2004-04-30 | 2009-02-17 | Netapp, Inc. | Network storage system with shared software stack for LDMA and RDMA |
JP4392601B2 (ja) | 2004-05-07 | 2010-01-06 | パナソニック株式会社 | データアクセス装置および記録媒体 |
US8042163B1 (en) | 2004-05-20 | 2011-10-18 | Symatec Operating Corporation | Secure storage access using third party capability tokens |
US7533292B2 (en) * | 2004-07-15 | 2009-05-12 | International Business Machines Corporation | Management method for spare disk drives in a raid system |
EP1829332A2 (en) | 2004-12-15 | 2007-09-05 | Exostar Corporation | Enabling trust in a federated collaboration of networks |
US7426623B2 (en) | 2005-01-14 | 2008-09-16 | Sandisk Il Ltd | System and method for configuring flash memory partitions as super-units |
US20060230245A1 (en) | 2005-04-08 | 2006-10-12 | Microsoft Corporation | Data storage safety indicator and expander |
US8200887B2 (en) | 2007-03-29 | 2012-06-12 | Violin Memory, Inc. | Memory management system and method |
US7689609B2 (en) | 2005-04-25 | 2010-03-30 | Netapp, Inc. | Architecture for supporting sparse volumes |
US7366825B2 (en) | 2005-04-26 | 2008-04-29 | Microsoft Corporation | NAND flash memory management |
JP4506594B2 (ja) | 2005-07-22 | 2010-07-21 | 日本電気株式会社 | 冗長パス制御方法 |
US7694082B2 (en) | 2005-07-29 | 2010-04-06 | International Business Machines Corporation | Computer program and method for managing resources in a distributed storage system |
US7617216B2 (en) | 2005-09-07 | 2009-11-10 | Emc Corporation | Metadata offload for a file server cluster |
ITVA20050061A1 (it) | 2005-11-08 | 2007-05-09 | St Microelectronics Srl | Metodo di gestione di un dispositivo di memoria non volatile e relativa memoria |
US7831783B2 (en) | 2005-12-22 | 2010-11-09 | Honeywell International Inc. | Effective wear-leveling and concurrent reclamation method for embedded linear flash file systems |
US7421552B2 (en) | 2006-03-17 | 2008-09-02 | Emc Corporation | Techniques for managing data within a data storage system utilizing a flash-based memory vault |
US20070233757A1 (en) * | 2006-03-30 | 2007-10-04 | Fujitsu Limited | Garbage collection method and a hierarchy storage device |
US7899780B1 (en) | 2006-03-30 | 2011-03-01 | Emc Corporation | Methods and apparatus for structured partitioning of management information |
US20070294564A1 (en) | 2006-04-27 | 2007-12-20 | Tim Reddin | High availability storage system |
US8266472B2 (en) | 2006-05-03 | 2012-09-11 | Cisco Technology, Inc. | Method and system to provide high availability of shared data |
US9455955B2 (en) | 2006-05-17 | 2016-09-27 | Richard Fetik | Customizable storage controller with integrated F+ storage firewall protection |
JP2007310618A (ja) * | 2006-05-18 | 2007-11-29 | Fujitsu Ltd | 階層型ストレージ装置及びその記録媒体管理方法 |
US7743239B2 (en) | 2006-06-30 | 2010-06-22 | Intel Corporation | Accelerating integrity checks of code and data stored in non-volatile memory |
US7627786B2 (en) | 2006-09-26 | 2009-12-01 | International Business Machines Corporation | Tracking error events relating to data storage drives and/or media of automated data storage library subsystems |
US8620970B2 (en) | 2006-10-03 | 2013-12-31 | Network Appliance, Inc. | Methods and apparatus for changing versions of a filesystem |
US7669029B1 (en) | 2006-11-15 | 2010-02-23 | Network Appliance, Inc. | Load balancing a data storage system |
US7710777B1 (en) | 2006-12-20 | 2010-05-04 | Marvell International Ltd. | Semi-volatile NAND flash memory |
US7640332B2 (en) | 2006-12-27 | 2009-12-29 | Hewlett-Packard Development Company, L.P. | System and method for hot deployment/redeployment in grid computing environment |
KR100923990B1 (ko) | 2007-02-13 | 2009-10-28 | 삼성전자주식회사 | 플래시 저장 장치의 특성을 기반으로 한 컴퓨팅 시스템 |
US8879727B2 (en) * | 2007-08-31 | 2014-11-04 | Ip Reservoir, Llc | Method and apparatus for hardware-accelerated encryption/decryption |
US9632870B2 (en) | 2007-03-29 | 2017-04-25 | Violin Memory, Inc. | Memory system with multiple striping of raid groups and method for performing the same |
US7996599B2 (en) | 2007-04-25 | 2011-08-09 | Apple Inc. | Command resequencing in memory operations |
US7991942B2 (en) | 2007-05-09 | 2011-08-02 | Stmicroelectronics S.R.L. | Memory block compaction method, circuit, and system in storage devices based on flash memories |
US7870360B2 (en) | 2007-09-14 | 2011-01-11 | International Business Machines Corporation | Storage area network (SAN) forecasting in a heterogeneous environment |
KR101433859B1 (ko) | 2007-10-12 | 2014-08-27 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법 |
US8271700B1 (en) | 2007-11-23 | 2012-09-18 | Pmc-Sierra Us, Inc. | Logical address direct memory access with multiple concurrent physical ports and internal switching |
US7743191B1 (en) | 2007-12-20 | 2010-06-22 | Pmc-Sierra, Inc. | On-chip shared memory based device architecture |
JP4471007B2 (ja) | 2008-02-05 | 2010-06-02 | ソニー株式会社 | 記録装置、記録装置の制御方法、記録装置の制御方法のプログラム及び記録装置の制御方法のプログラムを記録した記録媒体 |
US8949863B1 (en) | 2008-04-30 | 2015-02-03 | Netapp, Inc. | Creating environmental snapshots of storage device failure events |
US8093868B2 (en) | 2008-09-04 | 2012-01-10 | International Business Machines Corporation | In situ verification of capacitive power support |
US8086585B1 (en) | 2008-09-30 | 2011-12-27 | Emc Corporation | Access control to block storage devices for a shared disk based file system |
US9473419B2 (en) | 2008-12-22 | 2016-10-18 | Ctera Networks, Ltd. | Multi-tenant cloud storage system |
US8762642B2 (en) | 2009-01-30 | 2014-06-24 | Twinstrata Inc | System and method for secure and reliable multi-cloud data replication |
JP4844639B2 (ja) | 2009-02-19 | 2011-12-28 | Tdk株式会社 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
US9134922B2 (en) | 2009-03-12 | 2015-09-15 | Vmware, Inc. | System and method for allocating datastores for virtual machines |
KR101586047B1 (ko) | 2009-03-25 | 2016-01-18 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
US8805953B2 (en) | 2009-04-03 | 2014-08-12 | Microsoft Corporation | Differential file and system restores from peers and the cloud |
TWI408689B (zh) | 2009-04-14 | 2013-09-11 | Jmicron Technology Corp | 存取儲存裝置的方法及相關控制電路 |
JP4874368B2 (ja) | 2009-06-22 | 2012-02-15 | 株式会社日立製作所 | フラッシュメモリを用いたストレージシステムの管理方法及び計算機 |
US7948798B1 (en) | 2009-07-22 | 2011-05-24 | Marvell International Ltd. | Mixed multi-level cell and single level cell storage device |
US8402242B2 (en) | 2009-07-29 | 2013-03-19 | International Business Machines Corporation | Write-erase endurance lifetime of memory storage devices |
US8910002B2 (en) | 2009-08-24 | 2014-12-09 | OCZ Storage Solutions Inc. | NAND flash-based storage device with built-in test-ahead for failure anticipation |
US8868957B2 (en) | 2009-09-24 | 2014-10-21 | Xyratex Technology Limited | Auxiliary power supply, a method of providing power to a data storage system and a back-up power supply charging circuit |
TWI428917B (zh) | 2009-11-25 | 2014-03-01 | Silicon Motion Inc | 快閃記憶裝置、資料儲存系統、以及資料儲存系統之運作方法 |
US8250324B2 (en) | 2009-11-30 | 2012-08-21 | International Business Machines Corporation | Method to efficiently locate meta-data structures on a flash-based storage device |
US8387136B2 (en) | 2010-01-05 | 2013-02-26 | Red Hat, Inc. | Role-based access control utilizing token profiles |
US8452932B2 (en) | 2010-01-06 | 2013-05-28 | Storsimple, Inc. | System and method for efficiently creating off-site data volume back-ups |
US8566534B1 (en) * | 2010-04-01 | 2013-10-22 | Marvell International Ltd | Low overhead space management for large caches |
US8898324B2 (en) * | 2010-06-24 | 2014-11-25 | International Business Machines Corporation | Data access management in a hybrid memory server |
US20120023144A1 (en) | 2010-07-21 | 2012-01-26 | Seagate Technology Llc | Managing Wear in Flash Memory |
US20120054264A1 (en) | 2010-08-31 | 2012-03-01 | International Business Machines Corporation | Techniques for Migrating Active I/O Connections with Migrating Servers and Clients |
US8566546B1 (en) | 2010-09-27 | 2013-10-22 | Emc Corporation | Techniques for enforcing capacity restrictions of an allocation policy |
US8775868B2 (en) | 2010-09-28 | 2014-07-08 | Pure Storage, Inc. | Adaptive RAID for an SSD environment |
US8949502B2 (en) | 2010-11-18 | 2015-02-03 | Nimble Storage, Inc. | PCIe NVRAM card based on NVDIMM |
US8812860B1 (en) | 2010-12-03 | 2014-08-19 | Symantec Corporation | Systems and methods for protecting data stored on removable storage devices by requiring external user authentication |
US9208071B2 (en) | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing memory |
US8589723B2 (en) | 2010-12-22 | 2013-11-19 | Intel Corporation | Method and apparatus to provide a high availability solid state drive |
US8465332B2 (en) | 2011-01-13 | 2013-06-18 | Tyco Electronics Corporation | Contact assembly for an electrical connector |
US20120185638A1 (en) | 2011-01-14 | 2012-07-19 | Daniel Schreiber | Method and system for cache endurance management |
US8578442B1 (en) | 2011-03-11 | 2013-11-05 | Symantec Corporation | Enforcing consistent enterprise and cloud security profiles |
US9164679B2 (en) * | 2011-04-06 | 2015-10-20 | Patents1, Llc | System, method and computer program product for multi-thread operation involving first memory of a first memory class and second memory of a second memory class |
US9189419B2 (en) * | 2011-04-14 | 2015-11-17 | Vmware, Inc. | Detecting and suppressing redundant input-output operations |
US8738882B2 (en) | 2011-06-03 | 2014-05-27 | Apple Inc. | Pre-organization of data |
US8769622B2 (en) | 2011-06-30 | 2014-07-01 | International Business Machines Corporation | Authentication and authorization methods for cloud computing security |
US8751463B1 (en) | 2011-06-30 | 2014-06-10 | Emc Corporation | Capacity forecasting for a deduplicating storage system |
US9852017B2 (en) | 2011-07-27 | 2017-12-26 | International Business Machines Corporation | Generating dispersed storage network event records |
US8931041B1 (en) | 2011-07-29 | 2015-01-06 | Symantec Corporation | Method and system for visibility and control over access transactions between clouds using resource authorization messages |
US20130036272A1 (en) | 2011-08-02 | 2013-02-07 | Microsoft Corporation | Storage engine node for cloud-based storage |
US8930307B2 (en) * | 2011-09-30 | 2015-01-06 | Pure Storage, Inc. | Method for removing duplicate data from a storage array |
US8527544B1 (en) | 2011-08-11 | 2013-09-03 | Pure Storage Inc. | Garbage collection in a storage system |
US9525900B2 (en) | 2011-09-15 | 2016-12-20 | Google Inc. | Video management system |
JP2013077278A (ja) | 2011-09-16 | 2013-04-25 | Toshiba Corp | メモリ・デバイス |
US9374356B2 (en) | 2011-09-29 | 2016-06-21 | Oracle International Corporation | Mobile oauth service |
IN2014CN03766A (zh) | 2011-10-24 | 2015-07-03 | Schneider Electric Ind Sas | |
WO2013071087A1 (en) | 2011-11-09 | 2013-05-16 | Unisys Corporation | Single sign on for cloud |
CN104040516B (zh) | 2011-11-17 | 2017-03-15 | 英特尔公司 | 用于数据去重的方法、设备和*** |
US9330245B2 (en) | 2011-12-01 | 2016-05-03 | Dashlane SAS | Cloud-based data backup and sync with secure local storage of access keys |
US20130219164A1 (en) | 2011-12-29 | 2013-08-22 | Imation Corp. | Cloud-based hardware security modules |
US8613066B1 (en) | 2011-12-30 | 2013-12-17 | Amazon Technologies, Inc. | Techniques for user authentication |
US8800009B1 (en) | 2011-12-30 | 2014-08-05 | Google Inc. | Virtual machine service access |
US9423983B2 (en) | 2012-01-19 | 2016-08-23 | Syncsort Incorporated | Intelligent storage controller |
US9116812B2 (en) | 2012-01-27 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a de-duplication cache |
JP2013161235A (ja) | 2012-02-03 | 2013-08-19 | Fujitsu Ltd | ストレージ装置、ストレージ装置の制御方法及びストレージ装置の制御プログラム |
KR101924022B1 (ko) * | 2012-04-03 | 2019-02-22 | 삼성전자주식회사 | 메모리 시스템 및 그것의 페이지 교체 방법 |
US10474584B2 (en) | 2012-04-30 | 2019-11-12 | Hewlett Packard Enterprise Development Lp | Storing cache metadata separately from integrated circuit containing cache controller |
US8832372B2 (en) | 2012-05-24 | 2014-09-09 | Netapp, Inc. | Network storage systems having clustered raids for improved redundancy and load balancing |
WO2013188382A2 (en) | 2012-06-12 | 2013-12-19 | Centurylink Intellectual Property Llc | High performance cloud storage |
US9130927B2 (en) | 2012-07-02 | 2015-09-08 | Sk Planet Co., Ltd. | Single certificate service system and operational method thereof |
US9047181B2 (en) | 2012-09-07 | 2015-06-02 | Splunk Inc. | Visualization of data from clusters |
US8769651B2 (en) | 2012-09-19 | 2014-07-01 | Secureauth Corporation | Mobile multifactor single-sign-on authentication |
WO2014051552A1 (en) | 2012-09-25 | 2014-04-03 | Empire Technology Development Llc | Limiting data usage of a device connected to the internet via tethering |
US9245144B2 (en) | 2012-09-27 | 2016-01-26 | Intel Corporation | Secure data container for web applications |
US8990905B1 (en) | 2012-09-28 | 2015-03-24 | Emc Corporation | Protected resource access control utilizing intermediate values of a hash chain |
US8990914B2 (en) | 2012-09-28 | 2015-03-24 | Intel Corporation | Device, method, and system for augmented reality security |
EP2901284A4 (en) | 2012-09-28 | 2016-06-01 | Longsand Ltd | PREDICTION OF FAILURE OF A MEMORY DEVICE |
US8850546B1 (en) | 2012-09-30 | 2014-09-30 | Emc Corporation | Privacy-preserving user attribute release and session management |
US20140101434A1 (en) | 2012-10-04 | 2014-04-10 | Msi Security, Ltd. | Cloud-based file distribution and management using real identity authentication |
US9448919B1 (en) * | 2012-11-13 | 2016-09-20 | Western Digital Technologies, Inc. | Data storage device accessing garbage collected memory segments |
US9209973B2 (en) | 2012-11-20 | 2015-12-08 | Google Inc. | Delegate authorization in cloud-based storage system |
US8997197B2 (en) | 2012-12-12 | 2015-03-31 | Citrix Systems, Inc. | Encryption-based data access management |
US9317223B2 (en) | 2012-12-17 | 2016-04-19 | International Business Machines Corporation | Method and apparatus for automated migration of data among storage centers |
US9075529B2 (en) | 2013-01-04 | 2015-07-07 | International Business Machines Corporation | Cloud based data migration and replication |
US9646039B2 (en) | 2013-01-10 | 2017-05-09 | Pure Storage, Inc. | Snapshots in a storage system |
US9052917B2 (en) | 2013-01-14 | 2015-06-09 | Lenovo (Singapore) Pte. Ltd. | Data storage for remote environment |
US9483657B2 (en) | 2013-01-14 | 2016-11-01 | Accenture Global Services Limited | Secure online distributed data storage services |
US9009526B2 (en) * | 2013-01-24 | 2015-04-14 | Hewlett-Packard Development Company, L.P. | Rebuilding drive data |
US20140229654A1 (en) * | 2013-02-08 | 2014-08-14 | Seagate Technology Llc | Garbage Collection with Demotion of Valid Data to a Lower Memory Tier |
US20140230017A1 (en) | 2013-02-12 | 2014-08-14 | Appsense Limited | Programmable security token |
US8902532B2 (en) | 2013-03-20 | 2014-12-02 | International Business Machines Corporation | Write avoidance areas around bad blocks on a hard disk drive platter |
GB2513377A (en) * | 2013-04-25 | 2014-10-29 | Ibm | Controlling data storage in an array of storage devices |
US9317382B2 (en) | 2013-05-21 | 2016-04-19 | International Business Machines Corporation | Storage device with error recovery indication |
US10038726B2 (en) | 2013-06-12 | 2018-07-31 | Visa International Service Association | Data sensitivity based authentication and authorization |
US9124569B2 (en) | 2013-06-14 | 2015-09-01 | Microsoft Technology Licensing, Llc | User authentication in a cloud environment |
US8898346B1 (en) | 2013-06-20 | 2014-11-25 | Qlogic, Corporation | Method and system for configuring network devices |
US8984602B1 (en) | 2013-06-28 | 2015-03-17 | Emc Corporation | Protected resource access control utilizing credentials based on message authentication codes and hash chain values |
US9454423B2 (en) | 2013-09-11 | 2016-09-27 | Dell Products, Lp | SAN performance analysis tool |
CA2931098A1 (en) | 2013-09-27 | 2015-04-02 | Intel Corporation | Determination of a suitable target for an initiator by a control plane processor |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9519580B2 (en) | 2013-11-11 | 2016-12-13 | Globalfoundries Inc. | Load balancing logical units in an active/passive storage system |
US9619311B2 (en) | 2013-11-26 | 2017-04-11 | International Business Machines Corporation | Error identification and handling in storage area networks |
US9529546B2 (en) | 2014-01-08 | 2016-12-27 | Netapp, Inc. | Global in-line extent-based deduplication |
US9696942B2 (en) * | 2014-03-17 | 2017-07-04 | Mellanox Technologies, Ltd. | Accessing remote storage devices using a local bus protocol |
US9582373B2 (en) * | 2014-03-31 | 2017-02-28 | Vmware, Inc. | Methods and systems to hot-swap a virtual machine |
NO2988221T3 (zh) | 2014-06-27 | 2018-01-06 | ||
US9516167B2 (en) | 2014-07-24 | 2016-12-06 | Genesys Telecommunications Laboratories, Inc. | Media channel management apparatus for network communications sessions |
US10204010B2 (en) | 2014-10-03 | 2019-02-12 | Commvault Systems, Inc. | Intelligent protection of off-line mail data |
US9521200B1 (en) | 2015-05-26 | 2016-12-13 | Pure Storage, Inc. | Locally providing cloud storage array services |
US9716755B2 (en) | 2015-05-26 | 2017-07-25 | Pure Storage, Inc. | Providing cloud storage array services by a local storage array in a data center |
US9300660B1 (en) | 2015-05-29 | 2016-03-29 | Pure Storage, Inc. | Providing authorization and authentication in a cloud for a user of a storage array |
US10021170B2 (en) | 2015-05-29 | 2018-07-10 | Pure Storage, Inc. | Managing a storage array using client-side services |
US20160350009A1 (en) | 2015-05-29 | 2016-12-01 | Pure Storage, Inc. | Buffering data to be written to an array of non-volatile storage devices |
US9444822B1 (en) | 2015-05-29 | 2016-09-13 | Pure Storage, Inc. | Storage array access control from cloud-based user authorization and authentication |
US9841921B2 (en) | 2016-04-27 | 2017-12-12 | Pure Storage, Inc. | Migrating data in a storage array that includes a plurality of storage devices |
US9507532B1 (en) | 2016-05-20 | 2016-11-29 | Pure Storage, Inc. | Migrating data in a storage array that includes a plurality of storage devices and a plurality of write buffer devices |
US20180018096A1 (en) * | 2016-07-12 | 2018-01-18 | University Of New Hampshire | Balanced load distribution for redundant disk array |
-
2016
- 2016-04-27 US US15/140,445 patent/US9841921B2/en active Active
-
2017
- 2017-01-06 CN CN201780021261.3A patent/CN108885538B/zh active Active
- 2017-01-06 EP EP17701226.7A patent/EP3400522A1/en not_active Ceased
- 2017-01-06 WO PCT/US2017/012444 patent/WO2017189058A1/en active Application Filing
- 2017-01-06 JP JP2018542150A patent/JP6902555B2/ja active Active
- 2017-10-17 US US15/786,187 patent/US10564884B1/en active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050188246A1 (en) * | 2004-02-25 | 2005-08-25 | Emberty Robert G. | Persistent worldwide names assigned to removable media storage |
CN101410812A (zh) * | 2006-04-25 | 2009-04-15 | 国际商业机器公司 | 迁移受到输入/输出设备访问的数据 |
CN101206553A (zh) * | 2006-12-20 | 2008-06-25 | 国际商业机器公司 | 利用支持处理器的优化数据迁移方法和*** |
CN101676855A (zh) * | 2008-09-11 | 2010-03-24 | 美国日本电气实验室公司 | 可变动的辅助存储***和方法 |
US20130254481A1 (en) * | 2010-01-08 | 2013-09-26 | Network Appliance, Inc. | Presentation of a read-only clone lun to a host device as a snapshot of a parent lun |
US20110246733A1 (en) * | 2010-03-30 | 2011-10-06 | Network Appliance, Inc. | Restoration of a parent lun through modification of a read-write clone lun as the parent lun |
US20140195480A1 (en) * | 2010-12-13 | 2014-07-10 | Fusion-Io, Inc. | Persistent memory management |
CN102200936A (zh) * | 2011-05-11 | 2011-09-28 | 杨钧 | 适用于云存储的智能配置存储备份方法 |
US20140032834A1 (en) * | 2012-07-26 | 2014-01-30 | International Business Machines Corporation | Managing A Solid State Drive ('SSD') In A Redundant Array Of Inexpensive Drives ('RAID') |
CN105009085A (zh) * | 2013-03-18 | 2015-10-28 | 株式会社东芝 | 信息处理***、控制程序以及信息处理设备 |
WO2015020811A1 (en) * | 2013-08-09 | 2015-02-12 | Fusion-Io, Inc. | Persistent data structures |
US9250823B1 (en) * | 2014-05-20 | 2016-02-02 | Emc Corporation | Online replacement of physical storage in a virtual storage system |
US20160092119A1 (en) * | 2014-09-29 | 2016-03-31 | International Business Machines Corporation | Data migration between different types of storage systems |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10564884B1 (en) | 2016-04-27 | 2020-02-18 | Pure Storage, Inc. | Intelligent data migration within a flash storage array |
US11112990B1 (en) | 2016-04-27 | 2021-09-07 | Pure Storage, Inc. | Managing storage device evacuation |
US11809727B1 (en) | 2016-04-27 | 2023-11-07 | Pure Storage, Inc. | Predicting failures in a storage system that includes a plurality of storage devices |
US11934681B2 (en) | 2016-04-27 | 2024-03-19 | Pure Storage, Inc. | Data migration for write groups |
CN111445939A (zh) * | 2019-01-17 | 2020-07-24 | 爱思开海力士有限公司 | 存储装置及其操作方法 |
CN111445939B (zh) * | 2019-01-17 | 2023-07-25 | 爱思开海力士有限公司 | 存储装置及其操作方法 |
CN113495680A (zh) * | 2020-04-02 | 2021-10-12 | 华为技术有限公司 | 数据迁移方法及装置、存储***、存储介质 |
CN113495680B (zh) * | 2020-04-02 | 2024-04-12 | 华为技术有限公司 | 数据迁移方法及装置、存储***、存储介质 |
CN113282239A (zh) * | 2021-05-21 | 2021-08-20 | 维沃移动通信有限公司 | 数据迁移方法、存储器及控制器 |
Also Published As
Publication number | Publication date |
---|---|
US20170315752A1 (en) | 2017-11-02 |
US9841921B2 (en) | 2017-12-12 |
CN108885538B (zh) | 2022-05-17 |
US10564884B1 (en) | 2020-02-18 |
JP2019516149A (ja) | 2019-06-13 |
EP3400522A1 (en) | 2018-11-14 |
WO2017189058A1 (en) | 2017-11-02 |
JP6902555B2 (ja) | 2021-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108885538A (zh) | 在包括多个存储设备的存储阵列中迁移数据 | |
US10642524B1 (en) | Upgrading a write buffer in a storage system that includes a plurality of storage devices and a plurality of write buffer devices | |
US11960777B2 (en) | Utilizing multiple redundancy schemes within a unified storage element | |
US11593036B2 (en) | Staging data within a unified storage element | |
US10310760B1 (en) | Layering communication fabric protocols | |
US10031703B1 (en) | Extent-based tiering for virtual storage using full LUNs | |
US20220217049A1 (en) | Path Management For Container Clusters That Access Persistent Storage | |
JP5159797B2 (ja) | フェイルオーバ後のキャッシュ・データの保存 | |
US9983935B2 (en) | Storage checkpointing in a mirrored virtual machine system | |
US11847025B2 (en) | Storage system parity based on system characteristics | |
CN108509156A (zh) | 数据读取方法、装置、设备及*** | |
US20230016484A1 (en) | Resource Failover In A Fleet Of Storage Systems | |
TW201107981A (en) | Method and apparatus for protecting the integrity of cached data in a direct-attached storage (DAS) system | |
US20210255794A1 (en) | Optimizing Data Write Size Using Storage Device Geometry | |
US20230229363A1 (en) | Tiering Valid Data after a Disaster Recovery Operation | |
US11630585B1 (en) | Processing evacuation events in a storage array that includes a plurality of storage devices | |
US10120616B1 (en) | Storage management system and method | |
EP4224323A1 (en) | Aligning memory access operations to a geometry of a storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |