CN110389864A - 独立盘冗余阵列重构装置及方法 - Google Patents

独立盘冗余阵列重构装置及方法 Download PDF

Info

Publication number
CN110389864A
CN110389864A CN201811150056.XA CN201811150056A CN110389864A CN 110389864 A CN110389864 A CN 110389864A CN 201811150056 A CN201811150056 A CN 201811150056A CN 110389864 A CN110389864 A CN 110389864A
Authority
CN
China
Prior art keywords
band
redundant array
independent disks
logical address
address section
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
CN201811150056.XA
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.)
Synology Inc
Original Assignee
Synology 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 Synology Inc filed Critical Synology Inc
Publication of CN110389864A publication Critical patent/CN110389864A/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1088Reconstruction on already foreseen single or plurality of spare disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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
    • 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/0638Organizing or formatting or addressing of data
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施例提出一种独立盘冗余阵列重构装置及方法。处理单元用于启动未使用空间扫描过程,用以为独立盘冗余阵列群组决定可以被跳过的逻辑地址区段的候选名单,及传送逻辑地址区段至条带重构过程。处理单元还用于启动条带重构过程,用以依据逻辑地址区段决定驱动器中可以被跳过而不进行重构的条带,及忽略该条带的重构。在存储空间变得破碎的情况下,相较于逐文件重构独立盘冗余阵列的方式,节省重构时间。

Description

独立盘冗余阵列重构装置及方法
技术领域
本发明涉及存储系统,尤指一种独立盘冗余阵列(Redundant Array ofIndependent Disks,RAID)重构装置及方法。
背景技术
存储系统通常包含一个或多个存储装置,如硬盘(Hard disks,HDs)、固态硬盘(Solid State Disks,SSDs),可视需要写入数据或读取数据。操作系统中可实施一个高层模块(如文件系统),逻辑上以存储容器(如文件)组织存储装置中的信息。可依据冗余及效能的需求程度,使用一个或数个不同方式(又称为RAID)将数据分配摆放在不同盘。不同的数据分布布局可以英文字母“RAID”后面接着数字命名,如RAID 0、RAID 1、RAID 5、RAID 6等。高于RAID 0的布局提供保护,用以降低无法回复的区域读取错误,以及因整个物理盘毁损带来的伤害。当一个物理盘毁坏,可以一个新的盘替换毁坏的盘,并且执行独立硬盘冗余阵列重建操作(RAID rebuild)。可依据同一个条带(stripe)上的其他数据块的数据、奇偶校验信息(parity information)或两者,计算新盘的每个数据块(chunk)上的数据或奇偶校验信息。然而,这通常需要数个小时,甚至一整天的时间执行RAID重建。RAID重建外,RAID重构技术另包含RAID转换(RAID conversion)、RAID扩充(RAID expansion)等。因此,本发明提出一种RAID重构装置及方法,用以缩短计算的时间。
发明内容
有鉴于此,如何减轻或消除上述相关领域的缺失,实为有待解决的问题。
本发明提供一种独立盘冗余阵列重构装置的实施例,其包含:独立盘冗余阵列群组,包含多个驱动器;及处理单元。耦接于独立盘冗余阵列群组,用于启动未使用空间扫描过程,用以为独立盘冗余阵列群组决定可以被跳过的逻辑地址区段的候选名单,及传送逻辑地址区段至条带重构过程;以及启动条带重构过程,用以依据逻辑地址区段决定驱动器中可以被跳过而不进行重构的条带,及忽略该条带的重构。
本发明还提供一种独立盘冗余阵列重构方法的实施例,由客户机或存储服务器的处理单元执行,其包含:启动未使用空间扫描过程,用以为独立盘冗余阵列群组决定可以被跳过的逻辑地址区段的候选名单,及传送逻辑地址区段至条带重构过程;以及启动条带重构过程,用以从未使用空间扫描过程接收逻辑地址区段,依据逻辑地址区段决定驱动器中可以被跳过而不进行重构的条带,及忽略该条带的重构。
本发明另外提供一种文件备份装置的实施例,其包含:应用模块,用于启动未使用空间扫描过程,用以为独立盘冗余阵列群组决定可以被跳过的逻辑地址区段的候选名单,及传送逻辑地址区段至条带重构过程;以及启动条带重构过程,用以从未使用空间扫描过程接收逻辑地址区段,依据逻辑地址区段决定独立盘冗余阵列群组的驱动器中可以被跳过而不进行重构的条带,及忽略条带的重构。
上述实施例的优点是在存储空间变得破碎的情况下,相较于逐文件重构独立盘冗余阵列的方式,节省重构时间。
本发明的其他优点将配合以下的说明和附图进行更详细的解说。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为依据本发明实施例的存储系统的系统架构图。
图2为依据本发明实施例的RAID 5的故障转移处理示意图。
图3为依据本发明实施例的从RAID 5转换为RAID 6的示意图。
图4为一些实施方案的RAID重建处理的示意图。
图5为依据本发明实施例的软件配置示意图。
图6为依据本发明实施例的软件架构图。
图7为依据本发明实施例的二叉树(binary tree)搭配位图(bitmap)的示意图。
图8为依据本发明实施例的扫描未使用区域的方法流程图。
图9为依据本发明实施例的标示未使用数据块的方法流程图。
图10为依据本发明实施例的重构RAID群组中的条带的方法流程图。
图11为依据本发明实施例的RAID重构的方法流程图。
图12为依据本发明实施例的RAID扩充的方法流程图。
图13为依据本发明实施例的网络架构图。
图14为依据本发明实施例的客户机的系统架构图。
图15为依据本发明实施例的分布式复制存储系统示意图。
符号说明:
110、1410 处理单元
120、1420 显示单元
130、1430 输入装置
140、1440 存储装置
150、1450 存储器
160、1460 通信接口
170、1470 系统互联
180-1~180-m RAID控制器
180-1-1~180-m-n(m) 驱动器
210、310、1210 RAID控制器
220-1~220-5、320-1~320-5、1220-1~1220-4 驱动器
230-1~230-4、330-1~330-4、1230-1~1230-3 条带
410 文件
510、530、550 软件设置
521、541、543、561、563 文件系统
529、549、585、587、589 RAID管理员
547、579 分割转换器
575 缓存控制器
610 应用程序
630、1530 文件系统
635、1535 文件系统未使用扫描器
650、650_0、650_1 中间层
655、655_0、655_1 中间未使用扫描器
670、670_0、670_1 RAID管理员
690、690_0、690_1 装置驱动程序
710~750 节点
790 比特图
S810~S840 方法步骤
S910~S930 方法步骤
S1010~S1050 方法步骤
S1110~S1160 方法步骤
1310 存储服务器
1320 网络
1330_1~1330_n 客户机
1500_0 主要节点
1500_1 次要节点
具体实施方式
以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。
必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用以表示存在特定的技术特征、数值、方法步骤、作业处理、组件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
本发明中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示的间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。使用于描述组件之间关系的其他语词也可类似方式解读,例如“介于”相对于“直接介于”,或者是“邻接”相对于“直接邻接”等等。
实施例的存储系统可实现于文件服务器(file server)、数据库服务器(databaseserver)、网络附加存储服务器(Network Attached Storage NAS server)等。一个或多个客户机可通过网络,如区域网(Local Area Network,LAN)、无线电信网络(wirelesstelephony network)、互联网(Internet)、个人区域网(Personal Area Network,PAN)或上述的任意组合,连接存储系统。参考图1,实施例提出一种网络架构100,包含客户机及存储服务器,彼此通信以存储备份文件至存储服务器。参考图1,处理单元110可使用多种方式实施,例如使用通用硬件(如单处理器、具平行处理能力的多处理器、图形处理器、或其他具运算能力的处理器),并且在执行软件指令(instructions)、宏码(macrocode)或微码(microcode)时,提供如下所述的功能。处理单元110可至少包含算数逻辑单元(ALU,Arithmetic and Logic Unit)以及位移器(Bit Shifter)。处理单元110是一种多功能装置,可以执行算数及逻辑功能。算数逻辑单元负责执行数学运算(如加、减、乘、除等)、布林运算(如AND、OR、NOT、NAND、NOR、XOR、XNOR等)或特殊函数运算(如三角函数、平方、三方、n次方、平方根、三方根、n次方根等)。通常,模式选择输入决定算数逻辑单元执行逻辑运算或算数运算。位移器负责位移运算及比特旋转。系统架构更包含存储器150,用于存储执行中所需的数据,如变量、数据表、数据结构(data abstract)、各种索引等。存储器250可以是特定类型的随机存取存储器(Random Access Memory,RAM),提供易失性的存储空间。处理单元110可通过系统互联(system interconnect 170)连接通信接口160、存储装置140、显示单元120、一个或多个输入装置130、一个或多个RAID控制器180-1至180-m,其中m可依据需要设为任何大于0的正整数。存储装置140可以硬盘(Hard disks,HDs)、固态硬盘(SolidState Disks,SSDs)等实施,提供程序码及使用者数据的非易失性的存储空间,如操作系统(Operating System,OS)、系统核心、驱动程序、软件应用程序等。系统架构另包含通信接口160,让处理单元110可通过其与其他电子设备通信。通信接口160可以是区域网模块、无线区域网模块、蓝牙模块、2G/3G/4G/5G电信网络通信模块或上述的任意组合。于一些实施例,系统架构另包含一个或多个输入装置130,如键盘、鼠标、触控屏幕等,用于接收使用者输入。使用者可按压键盘上的硬键以输入字符,通过操作鼠标以控制屏幕上的鼠标,或者在触控屏幕上制造一个或多个手势以控制执行中的应用程序。手势可包含但不限定于单击、双击、单指拖移、多指拖移等。系统架构可包含显示单元120,如薄膜电晶体液晶显示屏(ThinFilm Transistor-Liquid Crystal Display,TFT-LCD panel)、有机发光二极体显示屏(Organic Light-Emitting Diode,OLED panel)等,用于显示文字、数字及符号,拖移轨迹、图案,或应用程序提供给使用者观看的画面。于另一些实施例,输入装置130及显示单元120只是可选的设备。例如,于以网络为基础的存储系统(如NAS)中,存储系统可通过不同网络协议接受命令,如包含但不只限于苹果归档协议(Apple Filing Protocol,AFP)、服务器信息区块(Server Message Block,SMB)、文件传输协议(File Transfer Protocol,FTP)、网络文件系统(Network File System,NFS)、超文本传输协议(Hypertext TransferProtocol,HTTP)、超文本传输安全协议(Hypertext Transfer Protocol Secure,HTTPS)等。于上述实施例,以网络为基础的存储系统可通过互联网被一个或多个远程设备管理,所以,输入装置130及显示单元120不是必要的。
每个RAID控制器可依据处理单元110(也就是主机)的请求存取数据。数据存储于驱动器(drive),如180-1-1至180-1-n(1)、180-m-1至180-m-n(m)等,n(1)至n(m)中的任何一个可依据不同的系统需求设定为大于1的任意整数。每个驱动器为非易失性存储装置,如硬盘驱动器、固态硬盘驱动器、NOR闪存驱动器等。每个RAID控制器及连接或耦接上的驱动器形成一个RAID群组。于一些实施例,两个或以上(n>=2)的驱动器可配置为RAID 1,由数据镜像(data mirroring)组成,但不包含奇偶校验(parity)或条带划分(striping)。数据会一模一样的写入两个驱动器,从而产生一组镜像的驱动器。这组中的任何一个驱动器都可服务读取请求。于另一些实施例,两个或以上(n>=2)的驱动器可配置为RAID 2,由比特层级(bit-level)的条带划分组成,伴随特定汉明码奇偶校验(Hamming-code parity)。依据不同驱动器中的相应比特计算汉明码奇偶校验,并存储于至少一个奇偶校验驱动器。于更另一些实施例,三个或以上(n>=3)的驱动器可配置为RAID 5,由块层级(chunk-level)的条带划分组成,伴随着分散式奇偶校验。奇偶校验信息分散在驱动器中,可让缺少一个驱动器的情况下依然正常运行。当单一个驱动器毁损,可从分散的奇偶校验计算出缺少的数据,使得数据不会因此遗失。于更另一些实施例,四个或以上(n>=4)的驱动器可配置为RAID 6,由块层级的条带划分组成,伴随着两倍的分散式奇偶校验。奇偶校验信息分散在驱动器中,可让缺少两个驱动器的情况下依然正常运行。两倍的奇偶校验提供最多两个驱动器失效的错误容忍度。固态硬盘驱动器可包含多个用于存储数据的NAND存储器单元(Memory Cells),如单层式单元(Single-Level Cells,SLCs)、多层式单元(Multi-LevelCells,MLCs)、三层式单元(Triple-Level Cells,TLCs)或四层式单元(Quad-Level Cells,QLCs)。每个RAID控制器可包含具输出输入电路的一个或多个埠,用以耦接或连接驱动器。处理单元110可通过标准协议与每个RAID控制器通信,如通用序列总线(Universal SerialBus,USB)、先进技术附着(advanced technology attachment,ATA)、序列先进技术附着(serial advanced technology attachment,SATA)、快速周边组件互联(peripheralcomponent interconnect express,PCI-E)或其他协议。RAID控制器可采用双倍数据率(Double Data Rate,DDR)协议与耦接或连接的驱动器通信,如开放NAND闪存(Open NANDFlash Interface,ONFI)、双倍数据率开关(DDR Toggle)或其他协议。
于其他实施例,RAID控制器可用软件程序实施。处理单元110拥有每个RAID群组中的数据及奇偶校验信息的物理组织知识。由于RAID控制器180-1至180-m是硬件控制器,如图1所示的系统架构可修改为不包含RAID控制器180-1至180-m。驱动器180-1-1至180-m-n可耦接系统互联170,处理单元110可直接控制驱动器180-1-1至180-m-n中的每一个,用以通过系统互联170存取数据。
当一个驱动器物理性毁损,可能触发故障转移处理(failover process),用于将故障的驱动器从RAID群组移除,并且将新的驱动器加入并连接至RAID群组以取代故障的驱动器,提供存储服务。接着,处理单元110执行的文件系统可启动RAID重建处理(rebuildprocess),用于逐条带的(stripe-by-stripe)依据其他驱动器中的数据或数据与奇偶校验信息,计算及写入数据或奇偶校验信息至新添加驱动器中的每个数据块。参考图2,假设RAID 5群组一开始包含驱动器220-1至220-4,并且每个驱动器的存储空间可分割为多个块(chunk):每块可存储固定长度的数据或奇偶校验信息,如32K、64K、128K字节等。例如,驱动器220-1中以多个块依序存储数据A1、B1及C1(以下称数据块),接着以一个块存储奇偶校验信息Dp(以下称奇偶校验块),以此类推。条带230-1可包含驱动器220-4中存储奇偶校验信息Ap的块,其关联于驱动器220-1至220-3中的数据A1至A3;条带230-2可包含驱动器220-3中存储奇偶校验信息Bp的块,其关联于驱动器220-1、220-2及220-4中的数据B1至B3,以此类推。数据A1至A3、B1至B3、C1至C3、D1至D3等可存储于RAID群组中连续的逻辑地址的空间。例如,数据A1存储于逻辑地址0至255,数据A2存储于逻辑地址256至511,数据A3存储于逻辑地址512至767,数据B1存储于逻辑地址768至1023,以此类推。RAID控制器210可将逻辑地址转换为物理位置,并且管理特定驱动器以从特定物理位置读取数据或写入数据至特定物理位置。例如,为完成处理单元110发出的逻辑地址256至511的数据读取命令,RAID控制器210可控制驱动器220-1,用于从第一块读取数据A2,并且回复数据A2给处理单元110。当驱动器220-4失效,以新的驱动器220-5取代。RAID重建处理可被触发以依据条带230-1中的数据A1至A3计算及存储奇偶校验信息Ap,依据条带230-2中的数据B1及B2以及奇偶校验信息Bp计算及存储奇数据B3,以此类推。虽然实施例描述RAID 5的故障转移处理,本领域所属技术人员可适当的修改实施例以延伸应用在RAID 1、2或6的故障转移处理,本发明不应因此受局限。
为提升容错能力,可于RAID 5群组中加上一个新的驱动器,并且将RAID 5群组转变为RAID 6群组。接着,处理单元110执行的文件系统可启动RAID重建处理,用于逐条带的(stripe-by-stripe)依据其他驱动器中的关联数据计算及写入奇偶校验信息,或从特定驱动器中迁移指定数据至新添加驱动器中的每一块。参考图3,于RAID重建处理中,例如,使用算法计算关联于数据A1至A3的另一奇偶校验信息Aq,其不同于计算奇偶校验信息Ap的算法,并写入奇偶校验信息Aq至驱动器320-5。从驱动器320-4的第二块迁移数据B3至驱动器320-5的第二块,使用该算法计算关联于数据B1至B3的另一奇偶校验信息Bq,并写入奇偶校验信息Bq至驱动器320-4的第二块以取代数据B3。从驱动器320-4的第三块迁移数据C3至驱动器320-5的第三块,从驱动器320-3的第三块迁移数据C2至驱动器320-4的第三块以取代数据C3,使用该算法计算关联于数据C1至C3的另一奇偶校验信息Cq,并写入奇偶校验信息Cq至驱动器320-3的第三块以取代数据C2。其余的操作可以此类推,在此省略以求简明。虽然实施例描述从RAID 5转变至RAID 6的存储形式,本领域所属技术人员可适当的修改实施例以延伸应用在RAID 0转RAID 1、RAID 0转RAID 2、RAID 1转RAID 5等,本发明不应因此受局限。应理解的是,于RAID转变的另一些实施例,可更加上两个或两个以上的冗余驱动器,用于提供镜像服务。
为增加数据存储能力,可于RAID 5群组中加上一个新的驱动器提供服务。接着,使用者可操作使用者接口(User Interface,UI)启动RAID扩充处理(expansion process)。RAID扩充处理可重新安排及存储每个块的数据至特定的驱动器中的指定块,并且逐条带的依据关联数据计算及存储奇偶校验信息至特定驱动器中的指定块。参考图12,于扩充处理中,例如,迁移驱动器1220-1第二块的数据B1以取代驱动器1220-3中的奇偶校验信息Ap,以及依据数据A1、A2及B1使用相同算法重新计算奇偶校验信息Ap’并存储至新的驱动器1220-4的第一块。迁移驱动器1220-3第二块及驱动器1220-2第三块的数据B2及C1以分别取代数据B1及奇偶校验信息Bp,从驱动器1220-3第三块复制数据C2并存储至新的驱动器1220-4第二块,以及依据数据B2、C1及C2使用相同算法重新计算奇偶校验信息Bp’以取代原先的奇偶校验信息Bp。其余的操作可以此类推,在此省略以求简明。之后,原RAID 5克增加约50%空间以存储更多数据。虽然实施例描述从RAID 5系统的扩充,本领域所属技术人员可适当的修改实施例以延伸应用在RAID 0、1、5、6等的扩充,本发明不应因此受局限。
当未使用空间、文件系统元数据(file system metadata)、操作系统元数据或单一文件不连续存在或存储时,存储空间可能变得破碎。例如,当一个文件创建时,文件系统可分配未使用空间给其数据及元数据。当此文件删除后,释放原先分配空间以供其他文件使用。当一个文件创建时没有连续空间可使用时,只能分配破碎的空间给此文件。当文件或文件系统元数据变大而超过原先分配的空间时,可增加分配其他空间,使得文件或文件系统元数据的存储变得破碎。延续图2所示的案例,一些实施方式的RAID重建处理可逐文件(file-by-file)计算新增加驱动器中的内容。参考图4,文件410被切分成多段,并分散存储至驱动器220-1的数据A1、驱动器220-2的数据B2及驱动器220-3的数据A3中的部分区域。文件430被切分成多段,并分散存储至驱动器220-2的数据A2、驱动器220-1的数据C1及驱动器220-4的数据C3中的部分区域。RAID重建处理可反复执行一个循环,用于为所有必要条带计算驱动器220-5中的奇偶校验信息或数据,直到所有文件都处理完为止。举例而言,于一个回合,此处理可扫描文件分配信息,如文件分配表(File Allocation Table)等的内容,判断文件410存储于条带230-1及230-2中,并为重建文件410计算条带230-1的奇偶校验信息Ap及条带230-2的数据B3。于下一个回合,此处理判断文件430存储于条带230-1及230-3中,并为重建文件430计算条带230-1的奇偶校验信息Ap及条带230-3的数据C3。然而,当文件存储的太过于破碎,为所有文件扫描文件分配信息将耗费大量时间。此外,为处理两个或以上的文件,可能重复计算相同的数据或奇偶校验信息,造成重建时间过久。例如,从上述案例可观察到奇偶校验信息Ap重复计算两次。
RAID重构处理可包含并行执行的程序:未使用空间扫描(unused-space scan)及条带重构(stripe reconstruction)程序。为缩短重构时间,为特定RAID群组,未使用空间扫描过程可扫描未使用区域信息(可以逻辑地址表示)以判断哪些逻辑地址区段(为求简明简称地址区段)可以跳过不重构的候选名单,并且传送附逻辑地址区段的暗示请求(hintrequest)给条带重构过程。发明的实施例提出一种逐条带方式(stripe-by-stripescheme)进行条带重构过程的RAID重构,用于计算数据或奇偶校验信息,或在RAID群组的驱动器间执行必要的数据或奇偶校验迁移。例如,条带重构过程依序处理条带230-1、230-2等。条带重构过程可从未使用空间扫描过程持续搜集逻辑地址区段,依据已搜集的逻辑地址区段判断RAID群组中的哪些条带可以跳过而不进行重构,忽略判定条带的重构,并且重构除判定条带以外的所有条带。
如上所述的RAID重构处理可依据不同的硬件设定应用于不同的软件设置。参考图5,以下描述三种软件设置510、530及550,以虚线隔开:
软件设置510可应用于只包含一个RAID群组的硬件环境。RAID管理员529可搭配文件系统521以执行RAID重构处理。文件系统521及RAID管理员529可包含软件指令及抽象数据结构,能够被处理单元110载入及执行于多任务环境(multitasking environment),或使用多个任务并行载入及执行。文件系统521及RAID管理员529中的每一个可包含一个或多个软件模块,用于执行指定操作。RAID管理员529可将从文件系统521接收到的请求中的逻辑地址转换为物理位置,并且依据请求驱动关联的RAID控制器以存取特定物理位置的数据,如数据读取、写入、迁移等。于另一些实施例,RAID管理员529可在地址转换后,直接控制相关的驱动器以执行数据存取,使得系统架构中不设置RAID控制器(如硬件类型的RAID控制器)。文件系统521中可实施未使用空间扫描过程,而RAID管理员529中可实施条带重构过程。RAID管理员529可发送命令驱动RAID 1、2、5或6群组的相关RAID控制器,用于重构一个或多个条带。
软件设置530可应用于只包含一个RAID群组的硬件环境。RAID管理员529可搭配文件系统521以执行RAID重构处理。文件系统541及543可适用于相同操作系统(OperatingSystem,OS),或不同OS,如Microsoft Windows及Linux。文件系统541及543中的每一个可实施未使用空间扫描过程。分割转换器(partition converter)547可分配互不隶属的逻辑地址区段(以下指可视地址区段)给每个文件系统,用于映射至RAID群组的存储空间中的相应部分。分割转换器547可于文件系统543传送的逻辑地址加上偏移量,用于将原始逻辑地址转换成可视逻辑地址区段中的逻辑地址。例如,假设分配逻辑地址区段“0”至“2047”给文件系统541,及分配逻辑地址区段“2048”至“4095”给文件系统543:为处理文件系统发送的逻辑地址“1000”的数据读取请求,分割转换器547可将地址“1000”加上“2048”的偏移量,变成新的地址“3048”。RAID管理员549可将从分割转换器547接收到的请求中的逻辑地址转换为物理位置,并且依据请求驱动关联的RAID控制器以存取特定物理位置的数据,如数据读取、写入、迁移等。于另一些实施例,RAID管理员549可在地址转换后,直接驱动相关的驱动器以执行数据存取,使得系统架构中不设置RAID控制器。文件系统541与543、分割转换器547及RAID管理员549可包含软件指令及抽象数据结构,能够被处理单元110载入及执行于多任务环境,或使用多个任务并行载入及执行。文件系统541与543可搭配分割转换器547实施未使用空间扫描过程,用于决定未使用地址区段。RAID管理员549中可实施条带重构过程,用于从分割转换器547搜集未使用地址区段,转换未使用地址区段为未使用条带,并且跳过未使用条带而不进行重构。文件系统541与543、分割转换器547及RAID管理员549中的每一个可包含一个或多个软件模块,用于执行指定操作。分割转换器547可称为中间层(intermediary layer)。RAID管理员549可发送命令驱动RAID 1、2、5或6群组的相关RAID控制器,用于重构一个或多个条带。于另一些实施例,RAID管理员549可在地址转换后,直接控制相关的驱动器以执行数据存取,使得系统架构中不设置RAID控制器(如硬件类型的RAID控制器)。
软件设置550可应用于包含三个RAID群组的硬件环境,分别由RAID管理员585、587及589管理。任何一个RAID群组可设置为RAID 1、2、5或6。分割转换器579可通过RAID管理员585管理第一RAID群组的部分存储空间所映射的可视地址区段,但其余部分没有被分配,并且第一RAID群组使用硬盘驱动器实现。分割转换器579另可通过RAID管理员587管理第二RAID群组的部分存储空间所映射的可视地址区段,但其余部分没有被分配,并且第二RAID群组使用硬盘驱动器实现。RAID管理员589可管理使用固态硬盘驱动器实现的第三RAID群组,用于提供快速存取的能力。文件系统561及563可适用于相同或不同的OS。文件系统561可搭配分割转换器579实施未使用空间扫描过程,类似于文件系统541搭配分割转换器547的操作细节。缓存控制器575可侦测HD驱动器中经常存取的数据(以下称热门数据),搭配分割转换器579指示RAID管理员587从HD驱动器复制热门数据,并通过RAID管理员589写入复制的热门数据至SSD驱动器作为缓存镜像(cache mirror)。热门数据可定义为HD驱动器中于上个时间区间(如前n个分钟、小时、天、月等,n为大于0的整数)被存取的次数超过预先设定数目的数据。针对新侦测到的热门数据,缓存控制器575可发送数据读取请求及文件系统563指示的逻辑地址区段给分割转换器579,用以获得热门数据,以及发送数据写入请求及热门数据给RAID管理员589。当热门数据已经成功写入后,RAID管理员589可回复相应于第三RAID群组的逻辑地址区段。针对热门数据,缓存控制器575可维护缓存表,分别存储第二及第三RAID群组的逻辑地址间的映射关系。于一些实施例,热门数据可能需要写回HD驱动器。例如,当热门数据被修改时,存储于SSD驱动器的数据先被更改,使得存储于HD驱动器的数据过时。在这情形下,除非将数据回写HD驱动器,只有存储于SSD驱动器中的热门数据是有效的。为了回写热门数据,缓存控制器575可发送数据写入请求及文件系统563指示的第二RAID群组的逻辑地址区段给分割转换器579,用以更新HD驱动器中的数据。于另一些实施例,当热门数据更改时,可在几乎同时的时间更新SSD及HD驱动器中的相应内容。在这情形下,缓存控制器575可发送数据写入请求及文件系统指示的第二RAID群组的逻辑地址区段给分割转换器579,用以写入热门数据至HD驱动器,依据缓存表的映射关系获得第三RAID群组的逻辑地址区段,以及发送数据写入请求及获得的第三RAID群组的逻辑地址区段给RAID管理员589,用以写入热门数据至SSD驱动器。文件系统563可搭配缓存控制器575及分割转换器579实施未使用空间扫描过程。分割转换器549可于文件系统561及563指示的逻辑地址加上偏移量,用于将原始逻辑地址转换成分配的逻辑地址区段中的逻辑地址。如果不需要转换时,偏移量可设为0。
文件系统561及563、缓存控制器575、分割转换器579及RAID管理员585、587及589可包含软件指令及抽象数据结构,能够被处理单元110载入及执行于多任务环境,或使用多个任务并行载入及执行。文件系统561可搭配分割转换器579实施未使用空间扫描过程,用于决定未使用地址区段。文件系统563可搭配分割转换器579实施类似扫描程序,用于决定未使用地址区段。缓存控制器575可实施未使用空间扫描过程,用于通过搜索缓存表决定未使用地址区段。RAID管理员585及587中的每一个可实施条带重构过程,用于从分割转换器579搜集未使用地址区段,转换未使用地址区段为未使用条带,并且跳过未使用条带而不进行重构。RAID管理员589可实施条带重构过程,用于从分缓存控制器575搜集未使用地址区段,转换未使用地址区段为未使用条带,并且跳过未使用条带而不进行重构。文件系统561与563、缓存控制器575、分割转换器579以及RAID管理员585、587及589中的每一个可包含一个或多个软件模块,用于执行指定操作。第一至第三RAID群组中的每一个可为RAID 1、2、5或6群组。于一些实施例,RAID管理员585、587及589可分别发送命令以驱动关联于第一至第三RAID群组的硬件类型的RAID控制器,用于重构一个或多个条带。于另一些实施例,系统架构中可不设置硬件类型的RAID控制器,RAID管理员585、587及589中的每一个可被视为是软件类型的RAID控制器,能够直接控制适当的驱动器以重构一个或多个条带。
未使用空间扫描过程为计算受限(compute-bound)程序,需要处理单元110执行大量运算;条带重构过程为输出输入受限(IO-bound)程序,大量使用外设装置(peripherals),如HD、SSD驱动器等。当这些模块(如文件系统545及RAID管理员529的组合,文件系统541与543、分割转换器545及RAID管理员549的组合,文件系统561与563、缓存控制器575、分割转换器579及RAID管理员585、587及589的组合等)执行于多任务环境,或使用多个任务并行执行时,可实现未使用空间扫描及条带重构过程的并行处理以提升整体效能。可设置两个以上的处理单元以并行执行多个任务。
文件系统521、541、543、561及563中的任何一个可为(但不限定)新技术文件系统(New Technology File System,NTFS)、文件分配表(File Allocation Table,FAT)、扩充文件分配表(extended FAT,exFAT)、扩充文件系统4(extended file system 4)、B-树文件系统(B-tree file system,Btrfs)等。文件系统可组织文件及目录,并且维护特定文件隶属于存储媒体中的哪个区域,以及存储媒体中的哪个区域尚未被使用。可理解的是,处理单元110执行的文件系统可提供应用程序编程接口(Application Programming Interface,API),用以与应用程序交互以执行文件操作,如文件开启、关闭、读取或写入、RAID重构等。应用程序可提供人机接口(man-machine interface,MMI),包含显示单元120上的图形使用者接口(graphical user interface,GUI)及输入装置130,掌管人与机器间的交互。使用者可操作MMI以触发RAID重构处理。
参考图6,输出输入系统可切分为数层,如文件系统630、中间层650、RAID管理员670及装置驱动程序690。每个输出输入层可制定被上一层使用的共享通信协议及接口方法。
文件系统630可包含文件系统未使用扫描器(FS unused-scanner)635,其中实现未使用空间扫描过程。每当为一个文件分配未使用空间或释放已使用空间给其他文件使用后,文件系统630可更新存储器150中的未使用区域信息(unused-region information)。未使用区域信息可定期刷写入(flush)存储装置140,使得当发生不预期的断电时,可从存储装置140救回未使用区域信息。或者,未使用区域信息可视需要刷写入存储装置140。文件系统未使用扫描器635可通过搜索未使用区域信息决定可以被跳过的逻辑地址区段的候选名单。于另一些实施例,第三方(third-party)可开发插件扫描器(plug-in scanner),包含相关软件指令或程序代码及抽象数据结构,其可通过互联网从服务器下载并搭配文件系统630被处理单元110执行,用于获得未使用区域信息。插件扫描器可实现未使用空间扫描过程,用以请求文件系统630提供未使用区域信息,从文件系统630回复的结果中获得未使用区域信息,以及决定可以被跳过的逻辑地址区段的候选名单。未使用区域信息可使用数据表、树状结构、比特图等、或任意上述组合实施。
以下描述合并数据表及比特图的范例,如表1所示:
表1
开始地址 长度 比特图标记 比特图标识符
0 256 0 NULL
800 20 0 NULL
1100 128 1 0
1300 256 0 NULL
1700 256 0 NULL
表1中的每个条目(entry)可存储关于连续可用空间的信息,以开始地址及长度,如块(blocks)、区(sectors)或字节等的数目,或以关联于特定地址区段的比特图的连结(linage)表示。存储的条目可依据开始地址以升序或降序方式排列。如果一段连续空间被零碎切割,文件系统630可使用比特图记录该地址区段的每个数据单元(如块、区等)为未使用(free)或使用中(occupied)。每个条目的比特图标记指出是否使用比特图表示关联地址区段的可用空间。若是,则将比特图标记设为1,相反则设为0。例如,表1指出从地址1100开始的128个区的可用空间使用比特图表示。比特图可包含128比特的序列,其中任何一个比特为0时指出相应数据单元的空间未使用,为1时指出相应数据单元的空间已被占用。表1另指出未使用区域包含从地址0开始的256个区、从地址800开始的20个区、从地址1300开始的256个区及从地址1700开始的256个区。
参考图7,描述合并二叉树结合比特图的范例。节点710至750中的每个节点记录一段地址区段及比特图标记“B-flag(k)”,地址区段表示为开始地址“Start(i)”加上长度”Len(j)”,其中i及j为正整数,k设为0或1。没个节点最多包含两个子节点,称为左子节点及右子节点,左子节点包含较小的开始地址,且右子节点包含较大的开始地址。B-flag(1)指出关联地址区段的可用空间更加上使用比特图表示,相反则没有。例如,节点730指出从地址1100开始的128个数据单元的可用空间使用包含128个顺序性比特的比特图790表示,其中任何一个比特为0时指出相应数据单元的空间未使用,为1时指出相应数据单元的空间已被占用。所属领域的普通技术人员可将搭配比特图的二叉树取代为其他类型的树状结构,如b-tree等。
于另一些实施例,未使用区域信息可使用大比特图实现,包含n个顺序性比特,n代表由文件系统630管理的数据单元总数。
于另一些实施例,中间层650可包含中间未使用扫描器(intermediary unused-scanner)655,用于实施未使用空间扫描过程。中间层650可为图5中的任何一个分割转换器。一个或多个分割(partitions)可进行格式化以存储数据,并且其余(未格式化)的分割称为未使用分割。RAID群组的系统区域(system region)存储每一个格式化或未使用分割的逻辑地址区段的轮廓信息,例如包含开始偏移量及长度等。分割转换器可从RAID群组的系统区域读取轮廓信息,从中获得未使用区域信息,及决定未使用分割的逻辑地址区段是此RAID群组中可以被跳过的候选名单。中间层650可为图5中的缓存控制器575。每次缓存控制器575接收一个回复,指出热门数据已经写入相应于第三RAID群组的逻辑地址区段时,据此更新存储器150中的未使用区域信息。未使用区域信息可使用数据表、树状结构、比特图等、或任意上述组合实施。未使用区域信息的范例可参考上述段落,如表1、图7等的描述,这里不再赘述以求简明。未使用空间扫描器可搜索未使用区域信息以决定关联的RAID群组中可以被跳过的逻辑地址区段的候选清单。
参考图8,处理单元110于载入并执行文件系统未使用扫描器635或中间未使用扫描器655时,执行扫描未使用区域的方法流程。从应用程序610接收到可用空间扫描请求后(步骤S810),反复执行一个循环(步骤S820至S840),直到没有未使用区域信息可以搜索为止(步骤S820中“否”的路径),例如,表1中的所有条目已搜索完,图7中的所有节点都已寻访等。于每一回合,可通过搜索未使用区域信息发现涵盖可用空间的长度等于或大于阀值(threshold)的第一个或下一个区段(步骤S830),及发送附发现的逻辑地址区段的暗示请求给下层(lower layer),用于通知该逻辑地址区段是可以被跳过而不进行重构的候选名单(步骤S840)。于步骤S830,阀值可设定为一个以上条带的所有数据块的长度,用于避免条带重构过程做不必要的计算。每个发现的地址区段可表示为开始地址加上结束地址,或者开始地址加上长度。暗示请求可携带在自订的输出输入指令中。该下层可为RAID管理员670,且发现的地址区段可直接下传给RAID管理员670。于另一些实施例,该下层可为分割转换器。分割转换器可将文件系统630发现的地址区段中的每个逻辑地址加上偏移量,成为转换后地址区段,并且传送附转换后地址区段的暗示请求给RAID管理员670。
当接收到暗示请求,可触发RAID管理员670的处理程序(handler)或其他程序,用以标示未使用条带。参考图9,处理单元110于载入并执行处理程序时,执行标示未使用条带的方法流程。RAID管理员670从上层接收到暗示请求中的地址区段后(步骤S910),可将地址区段转换为关联RAID群组的一个或多个物理位置(步骤S920)及依据转换后的物理位置产生条带比特图(步骤S930)。详细的说,于步骤S930,首先更新RAID比特图。RAID比特图中的每格(cell)存储一个值,指出一个关联块的空间是否被使用,“1”代表关联块的空间被使用,“0”代表未使用。每一格于初始时设为”1”。表2显示关联于如图2所示RAID群组的部分RAID比特图的范例:
表2
所有格依序关联于块A1至D3。举例来说,当暗示请求的地址区段转换为块A3至D1,部分RAID比特图的范例更新为表3:
表3
1 1 0
0 0 0
0 0 0
关联于块A3至D1的每一格都设为“0”。之后,依据RAID比特图更新条带比特图。条带比特图中的每格存储一个值,指出一个关联条带的空间是否被使用,“1”代表关联条带的空间被使用,“0”代表未使用。每一格于初始时设为”1”。表4显示依据表3显示的RAID比特图产生的部分条带比特图的范例:
表4
1
0
0
1
由于块A1、A2、D2及D3被使用,条带230-1及230-4不能被标示为未使用,显示在表4中的第一及第四格。相反,因为条带230-2及230-3中的所有数据块未使用,则第二及第三格标示为未使用。可理解的是,所属技术领域的普通技术人员可将条带比特图中携带的未使用条带信息使用其他不同的数据结构表示,如树状结构、链表(linked list)等,本发明不因此局限。
RAID管理员670可实施条带重构过程,用于参考从上层接收的暗示请求跳过未使用条带,并且重构其他所有的条带。参考图10,处理单元110于载入并执行RAID管理员670时,执行重构RAID群组中的条带的方法流程。反复执行一个循环(步骤S1010至S1040),直到关联RAID群组的所有条带被处理完为止(步骤S1040中“是”的路径)。于每一回合,RAID管理员670可从条带比特图获得RAID群组的第一个或下一个条带的状态(步骤S1010)及判断是否能够跳过这个条带(步骤S1020)。若是,则跳过这个条带而不进行重构,节省时间及运算能力。否则,装置驱动程序690可与RAID群组中的特定RAID控制器交互,或直接指示RAID群组中的所有驱动器,用于重构这个条带(步骤S1030)。条带重构过程可应用于如图2所示的故障转移处理、如图3所示的RAID转换、或如图12所示的RAID扩充。重构条带的详细例子可参考图2、3及12的相关段落。当所有条带已经被处理完(步骤S1040中“是”的路径),回复应用程序一个信息,指出条带重构过程已经成功执行完毕,并结束条带重构过程(步骤S1050)。需理解的是,文件系统未使用扫描器635以及/或中间未使用扫描器655中执行的未使用空间扫描过程的扫描顺序可相符于RAID管理员670中执行的条带重构过程的重构顺序。例如,当文件系统未使用扫描器635以及/或中间未使用扫描器655从第一个逻辑地址向后侦测未使用地址区段时,RAID管理员670也从第一个条带向后进行条带重构,反之亦然。然而,当文件系统未使用扫描器635或中间未使用扫描器655太晚产生暗示请求,使得RAID管理员670无法及时侦测到,可能会让一个或多个未使用条带无法跳过。需注意的是,重构中的条带会被锁住而不允许驱动程序或应用程序等其他程序存取,用以避免干扰RAID重构处理。
本发明实施例另提出一种启动条带重构及未使用空间扫描过程的方法。参考图11,处理单元110于载入并执行应用程序610时,执行RAID重构的方法流程。应用程序610通过MMI接收重构一个RAID群组的请求后(步骤S1110),可通过本地过程调用(localprocedure call,LPC)、高级本地过程调用(advanced LPC,ALPC)、自订函数调用(nativeor proprietary function call)等指示RAID管理员670启动如图10所示的条带重构过程(步骤S1120),以及判断这个RAID群组是否支持快速重构(步骤S1130)。应用程序610可存储一个RAID群组的多个特徵于存储器150,并且其中一个特征指出此RAID群组是否支持快速重构。当一个RAID群组支持快速重构时,关联于此RAID群组的RAID管理员实施如上所述的条带重构过程,用于跳过未使用条带而不进行重构,并且关联于此RAID群组的中间层实施如上所述的未使用空间扫描过程。当这个RAID群组实施了快速重构时(步骤S1130中“是”的路径),应用程序610可为这个RAID群组分别通过LPC、ALPC、自订函数调用等指示文件系统630及中间层650启动如图8所示的未使用空间扫描过程(步骤S1140),以及等待指出条带重构过程已经执行完毕的信息(步骤S1150)。当应用程序610从RAID管理员670接收到这个信息后,于显示单元120上显示提示,用以告知使用者RAID重构处理已经完成(步骤S1160)。于条带重构过程中,RAID管理员670可周期性传送已经完成重构的比例或条带总数给应用程序610,使得应用程序610可据此更新显示单元120上的状态栏(status bar)。
虽然本发明实施例描述应用程序610、文件系统未使用扫描器635、中间层未使用扫描器655及RAID管理员670执行于相同的处理单元110,所属技术领域的普通技术人员可安装应用程序610于远程客户机,而不是与文件系统未使用扫描器635、中间层未使用扫描器655及RAID管理员670绑在一起。应用程序610可通过远程过程调用(Remote ProcedureCall,RPC)启动RAID管理员670中的条带重构过程,以及文件系统未使用扫描器635与中间层未使用扫描器655中的未使用空间扫描过程。
本发明实施例另提出一种网络架构,包含多个客户机及存储服务器,使能不受限于本地位置的数据存储及取用。参考图13,存储服务器1310可提供存储容量,用于存储从客户机1330_1至1330_n接收的数据,n可以是任意的正整数。客户机1330_1至1330_n中的任何一个可在通过存储服务器1310的验证后,存取存储服务器1310。在存取存储服务器1310前,存储服务器1310可向请求的客户机要求登录账号(Identification)及密码。请求的客户机可通过网络1320存储数据至存储服务器1310或从存储服务器1310读取数据,网络1320可包含区域网(Local Area Network,LAN)、无线电信网络(wireless telephony network)、互联网(Internet)、个人区域网(Personal Area Network,PAN)或上述的任意组合。存储服务器1310可使用如图1所示的存储系统实现。虽然图13的客户机1330_1至1330_n显示为个人计算机(Personal Computers),客户机1330_1至1330_n中的任何一个可实施于笔记本计算机(laptop computer)、平板计算机、移动电话、数字相机、数字摄影机、电子消费装置等电子产品,本发明不应因此局限。
参考图14,实施于客户机的组件(components)1410至1470的硬件电路、特征及功能可分别参考如图1所示的处理单元110、显示单元120、输入装置130、存储装置140、存储器150、通信接口160及系统互联170的相关说明。
存储服务器的能力分享给多个客户机时,如图5中用于进行RAID重建、转换或扩充处理等所示的软件设置530可加以修改,应用于符合如图13所示的主从式(client-server)架构。每个客户机的处理单元1410可执行文件系统,而客户机又可称为远程客户机。于文件系统之下,可使用互联网小型计算机系统接口(Internet Small Computer SystemInterface,iSCSI),发送穿越网络1320的小型计算机系统接口(Small Computer SystemInterface,SCSI)命令以存取存储服务器1310的数据,iSCSI是一种以互联网通信协议(Internet Protocol,IP)为基础的存储网络互联标准,用于连接数据存储设备。每个SCSI命令可携带附逻辑地址区段的数据读取、写入、删除请求等。例如,客户机1330_1可运行文件系统541,而客户机1330_2可运行文件系统543。RAID管理员549可分配互不隶属的逻辑地址区段(以下指可视地址区段)给每个文件系统,用于映射至RAID群组的存储空间中的相应部分。分割转换器549可获得从客户机传送的SCSI命令中的逻辑地址区段,为客户机1330_1传送的SCSI命令的每个逻辑地址加上第一偏移量,为客户机1330_3传送的SCSI命令的每个逻辑地址加上第二偏移量,用于依据哪个客户机发送SCSI命令的信息将原始逻辑地址转换成相应的可视逻辑地址区段中的逻辑地址。假设分配逻辑地址区段“2048”至“4095”给文件系统541,及分配逻辑地址区段“4096”至“8191”给文件系统543:为处理客户机1330_1发送的SCSI命令,其携带逻辑地址“1000”的数据读取请求,分割转换器547可将地址“1000”加上“2048”的偏移量,变成新的地址“3048”。为处理客户机1330_2发送的SCSI命令,其携带逻辑地址“1000”的数据读取请求,分割转换器547可将地址“1000”加上“4096”的偏移量,变成新的地址“4196”。之后,包含转换后逻辑地址区段的SCSI命令可下传RAID管理员549。
当文件系统运行于每个远程客户机时,分割转换器547及RAID管理员549可运行于存储服务器1310中。每当为一个文件分配未使用空间,释放已使用空间给其他文件使用后,每个文件系统可更新本地存储器中的未使用区域信息。于一些实施例,每个文件系统可各自包含文件系统未使用扫描器,其中实现未使用空间扫描过程,用于通过搜索未使用区域信息决定可以被跳过的逻辑地址区段的候选名单。详细的操作可参考文件系统未使用扫描器635的相关描述,不再赘述以求简明。于另一些实施例,第三方可开发插件扫描器,包含相关软件指令或程序代码及抽象数据结构,其可通过互联网从服务器下载并搭配各自的文件系统执行,用于获得未使用区域信息。插件扫描器可实现未使用空间扫描过程,用以请求该文件系统提供未使用区域信息,从该文件系统回复的结果中获得未使用区域信息,以及决定可以被跳过的逻辑地址区段的候选名单。文件未使用空间扫描器或插件扫描器产生的附逻辑地址区段的暗示请求可被封装于SCSI命令,并且通过网络1320传送该SCSI命令给存储服务器1310。分割转换器549可获得从客户机传送的SCSI命令中的暗示请求及逻辑地址区段,依据哪个客户机发送SCSI命令的信息将暗示请求的每个原始逻辑地址转换成相应的可视逻辑地址区段中的逻辑地址,并且传送转换后的暗示请求给RAID管理员549中的条带重构过程。条带重构过程可不断搜集附转换后逻辑地址区段的暗示请求,依据搜集的逻辑地址区段判断RAID群组的驱动器中的那些条带可以被跳过而不需要重构,忽略这些条带的重构,以及重构所有没被忽略的条带。
此外,为执行RAID重建、转换或扩充等而进行的如上所述未使用空间扫描过程及条带重构过程的适应性调整,用于符合多个客户机1330_1至1330_n共享存储服务器130的存储容量的网络架构,也可于适当修改后应用在软件设置550。
存储服务器1310的能力分享给单一客户机时,如图5中用于进行RAID重建、转换或扩充处理等所示的软件设置510可加以修改,应用于如图13所示的主从式架构。
未使用空间扫描过程及条带重构过程可应用于分散式复制存储系统,如分散式复制区块装置(Distributed Replicated Block Device,DRDB),用以执行RAID重建、转换或扩充处理。参考图15的软件设置,分散式复制存储系统可包含主要节点(primary node)1500_0及次要节点(secondary node)1500_1,通过网络互相连接。主要节点1500_0操作于主动模式(active mode),而次要节点1500_1操作于等候模式(standby mode)。如图1所示的系统架构可应用于节点1500_0及1500_1。可理解的是,次要节点1500_1的RAID群组的设置相同于主要节点1500_0中的设置,使得两个节点可形成存储集群(storage cluster)。写入数据至主要节点1500_0的RAID群组的逻辑地址区段的命令可传送到RAID管理员670_0,并且通过网络同时广播给次要节点1500_1,让节点1500_0及1500_1中的RAID群组存储的数据可以一致。当主要节点1500_0失效,可执行集群管理处理(cluster managementprocess),用于让次要节点1500_1操作于主动模式。
次要节点1500_1运行的中间层650_1、RAID管理员670_1及装置驱动程序690_1分别相同于主要节点1500_0的中间层650_0、RAID管理员670_0及装置驱动程序690_0。当主要节点1500_0操作于主动模式,文件系统1530只运行于主要节点1500_0。每当为一个文件分配未使用空间,释放已使用空间给其他文件使用后,文件系统1530可更新本地存储器中的未使用区域信息。于一些实施例,文件系统1530可包含文件系统未使用扫描器,其中实现未使用空间扫描过程,用于通过搜索未使用区域信息决定可以被跳过的逻辑地址区段的候选名单。详细的操作可参考文件系统未使用扫描器635的相关描述,不再赘述以求简明。于另一些实施例,第三方可开发插件扫描器,包含相关软件指令或程序代码及抽象数据结构,其可通过互联网从服务器下载并搭配文件系统1530执行,用于获得未使用区域信息。插件扫描器可实现未使用空间扫描过程,用以请求该文件系统提供未使用区域信息,从该文件系统回复的结果中获得未使用区域信息,以及决定可以被跳过的逻辑地址区段的候选名单。暗示请求带有由文件系统未使用扫描器1530或插件扫描器产生的未使用地址区段,可被传送到本地的中间层650_1,并经由网络同时被传送到次要节点1500_1的中间层650_1。于另一些实施例,软件设置中可不包含中间层650_0及650_1,附未使用地址区段的暗示请求可直接被传送到本地的RAID管理员670_0,并经由网络同时被传送到次要节点1500_1的RAID管理员670_1。中间层650_0及650_1、中间未使用扫描器655_0及655_1以及装置驱动程序690_0及690_1的技术内容可参考图5的相关段落。RAID管理员670_0及670_1中的每一个可实施条带重建过程,持续搜集暗示请求中的(转换后)逻辑地址区段,依据已搜集的逻辑地址区段判断RAID群组中的哪些条带可以跳过而不进行重构,忽略判定条带的重构,并且重构除判定条带以外的所有条带。
处理单元110或1410执行独立盘冗余阵列重构的方法步骤,可用一个或多个功能模块组成的计算器程序产品来实现。这些功能模块存储于非易失性存储装置,并且可被处理单元110或1410于特定时间点加载并执行。处理单元110或1410可执行应用程序(可称为应用模块)610以完成图11的步骤S1110至S1160的操作。处理单元110可执行文件系统未使用扫描器(可称为文件系统未使用扫描模块)635或中间未使用扫描器(可称为中间未使用扫描模块)655以完成图8的步骤S810至S840的操作,执行RAID管理员(可称为RAID管理模块)670以完成图10的步骤S1010至步骤S1050的操作。文件系统未使用扫描器635、中间未使用扫描器655、插件扫描器,即如上所述的任意组合,可统称为未使用扫描模块。
本发明所述的方法中的全部或部分步骤可以计算器程序实现,例如计算机的操作系统、计算机中特定硬件的驱动程序、或软件程序。此外,也可实现于如上所示的其他类型程序。所属技术领域具有通常知识者可将本发明实施例的方法撰写成计算器程序,为求简明不再加以描述。依据本发明实施例方法实施的计算器程序可存储于适当的计算机可读取数据载具,例如DVD、CD-ROM、USB碟、硬盘,亦可置于可通过网络(例如,互联网,或其他适当载具)存取的网络服务器。
计算机程序可优选的存储于运算设备,如计算机、笔记本计算机(notebookcomputer)、平板计算机、移动电话、数字相机、数字摄影机、电子消费装置等,从而当计算设备运行时,获得计算机程序实现的如上所述方法实施例的技术效果。运算设备可连接外设装置(peripheral devices),如计算机鼠标、键盘、触摸感测屏等,用以记录使用者操作。
虽然图1及14中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,已达成更佳的技术效果。此外,虽然图8~11的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,所属技术领域的技术人员可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,所属技术领域的技术人员也可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或平行地执行更多步骤,本发明也不因此而局限。
虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用以限缩本发明。相反地,此发明涵盖了所属技术领域中的技术人员显而易见的修改与相似设置。所以,权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。

Claims (19)

1.一种独立盘冗余阵列重构装置,其特征在于,包含:
独立盘冗余阵列群组,包含多个驱动器;以及
处理单元,耦接于该独立盘冗余阵列群组,用于启动未使用空间扫描过程,用以为该独立盘冗余阵列群组决定可以被跳过的逻辑地址区段的候选名单,及传送该逻辑地址区段至条带重构过程;以及启动该条带重构过程,用以从该未使用空间扫描过程接收该逻辑地址区段,依据该逻辑地址区段决定该多个驱动器中可以被跳过而不进行重构的条带,及忽略该条带的重构。
2.如权利要求1所述的独立盘冗余阵列重构装置,其特征在于,该未使用空间扫描过程执行时,为该独立盘冗余阵列群组决定可以被跳过的多个逻辑区段地址的该候选名单,及传送该多个逻辑地址区段至该条带重构过程;以及该条带重构过程执行时,从该未使用空间扫描过程接收该多个逻辑地址区段,依据该多个逻辑地址区段决定该多个驱动器中可以被跳过而不进行重构的一个或一个以上的条带,忽略该决定的条带的重构,及重构除该决定的条带以外的所有条带。
3.如权利要求1所述的独立盘冗余阵列重构装置,其特征在于,该未使用空间扫描过程实现于文件系统;每当为文件分配未使用空间或释放已使用空间给其他文件使用后,该文件系统更新存储器中的未使用区域信息;以及该未使用空间扫描过程通过搜索该未使用区域信息决定可以被跳过的该逻辑地址区段的该候选名单。
4.如权利要求3所述的独立盘冗余阵列重构装置,其特征在于,该文件系统传送附第一逻辑地址区间的第一暗示请求给分割转换器;以及该分割转换器将该第一逻辑地址区间加上偏移量以成为第二逻辑地址区间,及传送附该第二逻辑地址区间的第二暗示请求给该条带重构过程。
5.如权利要求1所述的独立盘冗余阵列重构装置,其特征在于,该独立盘冗余阵列群组的存储空间切割为多个分割;该多个分割中的每一个为格式化或未使用分割;该未使用空间扫描过程实现于分割转换器;以及该未使用空间扫描过程决定该未使用分割的逻辑地址区段是该独立盘冗余阵列群组中可以被跳过的该逻辑地址区段。
6.如权利要求1所述的独立盘冗余阵列重构装置,其特征在于,该未使用空间扫描过程实现于缓存控制器;每次热门数据已经写入该独立盘冗余阵列群组作为缓存镜像时,缓存控制器更新存储器中的未使用区域信息;以及该未使用空间扫描过程通过搜索该未使用区域信息决定可以被跳过的该逻辑地址区段的该候选名单。
7.如权利要求6所述的独立盘冗余阵列重构装置,其特征在于,该独立盘冗余阵列群组包含多个固态硬盘驱动器;以及该热门数据从其他独立盘冗余阵列群组的多个硬盘驱动器中复制。
8.如权利要求7所述的独立盘冗余阵列重构装置,其特征在于,该热门数据于一段时间区间从该硬盘驱动器被存取的次数超过预先设定数目。
9.如权利要求1所述的独立盘冗余阵列重构装置,其特征在于,该逻辑地址区段涵盖的空间等于或大于该独立盘冗余阵列群组中一个条带的所有数据块的长度。
10.如权利要求1所述的独立盘冗余阵列重构装置,其特征在于,每当为文件分配未使用空间或释放已使用空间给其他文件使用后,文件系统更新存储器中的未使用区域信息;该未使用空间扫描过程实现于插件扫描器;以及该未使用空间扫描过程请求该文件系统提供可以被跳过的该逻辑地址区段的该候选名单,及从该文件系统回复的结果中获得该逻辑地址区段。
11.如权利要求1至10中任一项所述的独立盘冗余阵列重构装置,其特征在于,该未使用空间扫描及该条带重构过程并行执行。
12.如权利要求11所述的独立盘冗余阵列重构装置,其特征在于,该未使用空间扫描及该条带重构过程执行于多任务环境,或使用多个任务并行执行。
13.如权利要求1至10中任一项所述的独立盘冗余阵列重构装置,其特征在于,该未使用空间扫描的扫描顺序相符于该条带重构过程的重构顺序。
14.如权利要求13所述的独立盘冗余阵列重构装置,其特征在于,该条带重构过程以逐条带方式进行独立盘冗余阵列重构。
15.一种独立盘冗余阵列重构方法,由客户机或存储服务器的处理单元执行,其特征在于,包含:
启动未使用空间扫描过程,用以为该独立盘冗余阵列群组决定可以被跳过的逻辑地址区段的候选名单,及传送该逻辑地址区段至条带重构过程;以及
启动该条带重构过程,用以从该未使用空间扫描过程接收该逻辑地址区段,依据该逻辑地址区段决定多个驱动器中可以被跳过而不进行重构的条带,及忽略该条带的重构。
16.一种独立盘冗余阵列重构装置,其特征在于,包含:
应用模块,用于启动未使用空间扫描过程,用以为独立盘冗余阵列群组决定可以被跳过的逻辑地址区段的候选名单,及传送该逻辑地址区段至条带重构过程;以及启动该条带重构过程,用以从该未使用空间扫描过程接收该逻辑地址区段,依据该逻辑地址区段决定该独立盘冗余阵列群组的多个驱动器中可以被跳过而不进行重构的条带,及忽略该条带的重构。
17.如权利要求16所述的独立盘冗余阵列重构装置,其特征在于,包含:
未使用扫描模块,用于执行该未使用空间扫描过程时为该独立盘冗余阵列群组决定可以被跳过的多个逻辑区段地址的该候选名单,及传送该多个逻辑地址区段至该条带重构过程;以及
独立盘冗余阵列管理模块,用于执行该该条带重构过程时从该未使用空间扫描过程接收该多个逻辑地址区段,依据该多个逻辑地址区段决定多个驱动器中可以被跳过而不进行重构的一个或一个以上的条带,忽略该决定的条带的重构,及重构除该决定的条带以外的所有条带。
18.如权利要求16所述的独立盘冗余阵列重构装置,其特征在于,每次热门数据已经写入该独立盘冗余阵列群组作为缓存镜像时,缓存控制器更新存储器中的未使用区域信息;及该未使用空间扫描过程通过搜索该未使用区域信息决定可以被跳过的该逻辑地址区段的该候选名单;该独立盘冗余阵列群组包含多个固态硬盘驱动器;以及该热门数据从其他独立盘冗余阵列群组的多个硬盘驱动器中复制。
19.如权利要求16至18中任一项所述的独立盘冗余阵列重构装置,其特征在于,该未使用空间扫描及该条带重构过程执行于多任务环境,或使用多个任务并行执行。
CN201811150056.XA 2018-04-15 2018-09-29 独立盘冗余阵列重构装置及方法 Pending CN110389864A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862657895P 2018-04-15 2018-04-15
US62/657,895 2018-04-15
US16/103,043 US20190317889A1 (en) 2018-04-15 2018-08-14 Apparatuses and methods and computer program products for a redundant array of independent disk (raid) reconstruction
US16/103,043 2018-08-14

Publications (1)

Publication Number Publication Date
CN110389864A true CN110389864A (zh) 2019-10-29

Family

ID=63452378

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811150056.XA Pending CN110389864A (zh) 2018-04-15 2018-09-29 独立盘冗余阵列重构装置及方法

Country Status (3)

Country Link
US (1) US20190317889A1 (zh)
EP (1) EP3553661A1 (zh)
CN (1) CN110389864A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282229A (zh) * 2020-01-31 2021-08-20 希捷科技有限公司 使用具有耦合到主动和被动服务器的逻辑单元的多个致动器驱动器的盘阵列
CN114063929A (zh) * 2021-11-25 2022-02-18 北京计算机技术及应用研究所 基于双控制器硬盘阵列的局部raid重构系统及方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10949123B2 (en) * 2018-10-18 2021-03-16 Western Digital Technologies, Inc. Using interleaved writes to separate die planes
US10795768B2 (en) * 2018-10-22 2020-10-06 Seagate Technology Llc Memory reallocation during raid rebuild
US11269562B2 (en) * 2019-01-29 2022-03-08 EMC IP Holding Company, LLC System and method for content aware disk extent movement in raid
US11132258B2 (en) * 2019-01-31 2021-09-28 EMC IP Holding Company, LLC In-place RAID conversion system and method
US11209990B2 (en) * 2019-03-15 2021-12-28 Super Micro Computer, Inc. Apparatus and method of allocating data segments in storage regions of group of storage units
US11055188B2 (en) * 2019-04-12 2021-07-06 EMC IP Holding Company LLC Offloading error processing to raid array storage enclosure
KR20220007212A (ko) * 2020-07-10 2022-01-18 삼성전자주식회사 Raid 스토리지 장치, 호스트 장치 및 raid 시스템
CN112463036B (zh) * 2020-11-13 2023-01-10 苏州浪潮智能科技有限公司 一种磁盘计算分块条带的方法、系统、终端及存储介质
IT202000028874A1 (it) 2020-11-27 2022-05-27 F&F S R L Metodo, sistema, dispositivo e uso anti-ransomware di restore and data protection per endpoint
US11734117B2 (en) * 2021-04-29 2023-08-22 Vast Data Ltd. Data recovery in a storage system
US11875051B2 (en) * 2022-06-17 2024-01-16 Microsoft Technology Licensing, Llc Contiguous data storage using group identifiers
CN115309348B (zh) * 2022-10-11 2023-03-10 苏州浪潮智能科技有限公司 元数据的管理方法、装置和计算机设备和存储介质
CN115657965B (zh) * 2022-11-16 2023-04-07 苏州浪潮智能科技有限公司 一种元数据的配置方法、装置及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120084506A1 (en) * 2010-10-01 2012-04-05 John Colgrove Distributed multi-level protection in a raid array based storage system
US20120226853A1 (en) * 2011-03-01 2012-09-06 Lsi Corporation Redundant array of inexpensive disks (raid) system configured to reduce rebuild time and to prevent data sprawl
CN104425019A (zh) * 2013-08-23 2015-03-18 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
CN107632904A (zh) * 2013-08-23 2018-01-26 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090271659A1 (en) * 2008-04-24 2009-10-29 Ulf Troppens Raid rebuild using file system and block list
JP4836014B2 (ja) * 2009-07-24 2011-12-14 日本電気株式会社 ディスクアレイ装置及び物理ディスクの復元方法
CN105531677A (zh) * 2013-08-27 2016-04-27 新加坡科技研究局 Raid奇偶校验条带重建
CN107515726B (zh) * 2016-06-16 2020-05-19 伊姆西Ip控股有限责任公司 用于管理存储设备的方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120084506A1 (en) * 2010-10-01 2012-04-05 John Colgrove Distributed multi-level protection in a raid array based storage system
US20120226853A1 (en) * 2011-03-01 2012-09-06 Lsi Corporation Redundant array of inexpensive disks (raid) system configured to reduce rebuild time and to prevent data sprawl
CN104425019A (zh) * 2013-08-23 2015-03-18 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
CN107632904A (zh) * 2013-08-23 2018-01-26 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282229A (zh) * 2020-01-31 2021-08-20 希捷科技有限公司 使用具有耦合到主动和被动服务器的逻辑单元的多个致动器驱动器的盘阵列
CN113282229B (zh) * 2020-01-31 2024-02-27 希捷科技有限公司 使用具有耦合到主动和被动服务器的逻辑单元的多个致动器驱动器的盘阵列
CN114063929A (zh) * 2021-11-25 2022-02-18 北京计算机技术及应用研究所 基于双控制器硬盘阵列的局部raid重构系统及方法
CN114063929B (zh) * 2021-11-25 2023-10-20 北京计算机技术及应用研究所 基于双控制器硬盘阵列的局部raid重构系统及方法

Also Published As

Publication number Publication date
EP3553661A1 (en) 2019-10-16
US20190317889A1 (en) 2019-10-17

Similar Documents

Publication Publication Date Title
CN110389864A (zh) 独立盘冗余阵列重构装置及方法
US11210140B1 (en) Data transformation delegation for a graphical processing unit (‘GPU’) server
US11403290B1 (en) Managing an artificial intelligence infrastructure
US11093139B1 (en) Durably storing data within a virtual storage system
US20230267054A1 (en) Using Mirrored Copies For Data Availability
US20220035714A1 (en) Managing Disaster Recovery To Cloud Computing Environment
US10884636B1 (en) Presenting workload performance in a storage system
US11567810B1 (en) Cost optimized workload placement
US11995336B2 (en) Bucket views
US20220083245A1 (en) Declarative provisioning of storage
US8504571B2 (en) Directed placement of data in a redundant data storage system
US11016824B1 (en) Event identification with out-of-order reporting in a cloud-based environment
WO2021011051A1 (en) Data recovery in a virtual storage system
CN101676855B (zh) 可变动的辅助存储系统和方法
US11210133B1 (en) Workload mobility between disparate execution environments
US11403000B1 (en) Resiliency in a cloud-based storage system
US20230333781A1 (en) Modular data storage system with data resiliency
Abourezq et al. Database-as-a-service for big data: An overview
US20220261164A1 (en) Configuring Storage Systems Based On Storage Utilization Patterns
CN104769555A (zh) 增强型数据管理虚拟化系统
US20210055885A1 (en) Enhanced data access using composite data views
Yu et al. Research and implementation of massive health care data management and analysis based on hadoop
US20200133492A1 (en) Dynamically selecting segment heights in a heterogeneous raid group
US20220043695A1 (en) Migrating Workloads Using Active Disaster Recovery
US20230020268A1 (en) Evaluating Recommended Changes To A Storage System

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20191029

WD01 Invention patent application deemed withdrawn after publication