CN110703995B - 存储系统架构及其访问数据的方法 - Google Patents

存储系统架构及其访问数据的方法 Download PDF

Info

Publication number
CN110703995B
CN110703995B CN201910926136.8A CN201910926136A CN110703995B CN 110703995 B CN110703995 B CN 110703995B CN 201910926136 A CN201910926136 A CN 201910926136A CN 110703995 B CN110703995 B CN 110703995B
Authority
CN
China
Prior art keywords
instruction
data storage
sub
storage subsystem
host
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.)
Active
Application number
CN201910926136.8A
Other languages
English (en)
Other versions
CN110703995A (zh
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.)
Infortrend Technology Inc
Original Assignee
Infortrend Technology 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 Infortrend Technology Inc filed Critical Infortrend Technology Inc
Publication of CN110703995A publication Critical patent/CN110703995A/zh
Application granted granted Critical
Publication of CN110703995B publication Critical patent/CN110703995B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F3/0607Improving 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
    • 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/0653Monitoring storage devices or systems
    • 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/061Improving I/O performance
    • 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/0614Improving the reliability of storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种存储系统架构及其访问数据的方法。存储系统架构包括耦接至一主机以接收来自该主机的I/O要求的复数个数据存储子系统。该复数个数据存储子系统包括:用以产生复数个媒体区的一冗余磁盘阵列层;用以将复数个媒体区形成一或多个虚拟卷并呈现给主机的一虚拟化模块;用以提供一数据访问接口于主机与存储系统架构间并将来自主机的I/O要求剖析成至少一子I/O要求以转发给复数个数据存储子系统的一机载多平台兼容模块;以及,用以验证至少一子I/O要求的有效性的一媒体区服务器模块。据此,主机可发送I/O要求至复数个数据存储子系统中的任一数据存储子系统。

Description

存储系统架构及其访问数据的方法
技术领域
本发明是涉及一种数据访问的方法,特别是涉及一种可跨平台的数据访问方法。
背景技术
请参阅图1,其是一现有的存储系统架构1(后称「存储系统架构」)的示意图。该现有的存储系统架构1是通过二信道(communication channel)分别连接至一主机(host)10的二个独立冗余磁盘阵列子系统(redundant array of independent disks subsystem,RAID subsystem,后称「RAID子系统」)20a、20b所组成,其中,该信道可以是一局域网络(LAN)、广域网络(WAN)、存储局域网络(SAN)、因特网(Internet)、沟通连结(communicationinterconnect)、或其他任何可以让该些RAID子系统20a、20b间互相传递讯息的信道。
这里,在该现有的存储系统架构1的该主机10中安装有一应用程序(或可称为一应用模块,如:主机负载平衡驱动程序(Host-based load balance driver))13,好让该主机10得以俱备有负载平衡、多重路径功能等。但是,由于该主机10与该些RAID子系统20a、20b的通讯往来,皆须经于该应用程序13处理,因此,势必会造成该应用程序13的一大负担,进而形成一瓶颈所在。这是目前存储业界所面临到的一个难题。
再者,该应用程序13也须维持跟管理一数据位置表,如此,方能通过该数据位置表来确实处理该主机10与该些RAID子系统20a、20b间的每一笔数据访问往来,如:数据访问位置转译。而随着数据访问数量及RAID子系统数量的增加,该数据位置表也会跟着越来越庞杂繁复,如此,也会形成另一瓶颈的所在。这也是目前存储业界所面临到的另一个难题。
此外,基于系统用户的种种考虑,其并非愿意在每一部主机上安装得以呈现上述功能的相关应用程序。这也是目前存储业界所面临到的另一个难题。
又且,每一部主机上所使用的操作系统平台的开发厂商,并非皆愿意开放给人在其操作系统平台上安装有相关的应用程序,因此,这是目前存储业界所面临到的另一个难题。
最后,要在不同的操作系统平台,甚至是彼此不相同的操作系统平台上发展与操作系统相关的且兼容的不同的应用程序,是一件十分不便利及相当消耗资源的事情,所以,这是目前存储业界所面临到的另外一个难题。综上可知,如何提供可跨平台、可迅速开发且不限定安装在主机端的一相关应用程序,是存储业界亟待解决的问题。
发明内容
依据本发明的一实施例,是提出一种访问数据的方法,用于访问一存储系统架构中的数据,该存储系统架构包含有复数个数据存储子系统,该方法包含下列步骤:提供一机载多平台兼容(On-board Load Balance,OBLB)模块于该复数个数据存储子系统中的每一数据存储子系统;该复数个数据存储子系统中的一数据存储子系统接收来自于一主机的一主机指令;收到该主机指令的该数据存储子系统判断是否能依据自身的该机载多平台兼容模块的数据位置信息来解析该主机指令;以及当收到该主机指令的该数据存储子系统能够依据自身的该机载多平台兼容模块的该数据位置信息来解析该主机指令时,更包含有下列步骤:收到该主机指令的该数据存储子系统依据自身的该机载多平台兼容模块的该数据位置信息解析该主机指令成至少一第一子指令;收到该主机指令的该数据存储子系统传送该至少一第一子指令给该复数个数据存储子系统中与该至少一第一子指令相关连的至少一第一数据存储子系统;该至少一第一数据存储子系统各自执行与其相关连的该至少一第一子指令;该至少一第一数据存储子系统回传其执行该至少一第一子指令后的至少一第一执行子结果给收到该主机指令的该数据存储子系统;收到该主机指令的该数据存储子系统汇集来自于该至少一第一数据存储子系统的该至少一第一执行子结果;以及收到该主机指令的该数据存储子系统回传一主执行结果给该主机,其中该主执行结果包含有来自于该至少一第一数据存储子系统的该至少一第一执行子结果。
依据本发明的另一实施例,当收到该主机指令的该数据存储子系统不能够依据自身的该机载多平台兼容模块的该数据位置信息来解析该主机指令时,更包含有下列步骤:收到该主机指令的该数据存储子系统传送该主机指令给一主控数据存储子系统;该主控数据存储子系统解析该主机指令成至少一第二子指令,并传送该至少一第二子指令给与该至少一第二子指令相关连的该复数个数据存储子系统中的至少一第二数据存储子系统;该至少一第二数据存储子系统各自执行与其相关连的该至少一第二子指令;该至少一第二数据存储子系统回传其执行该至少一第二子指令后的至少一第二执行子结果给该主控数据存储子系统;该主控数据存储子系统汇集来自于该至少一第二数据存储子系统的该至少一第二执行子结果;该主控数据存储子系统回传一主执行结果给收到该主机指令的该数据存储子系统,其中该主执行结果包含有该至少一第二执行子结果;以及收到该主机指令的该数据存储子系统回传该主执行结果给该主机。
依据本发明的另一实施例,收到该主机指令的该数据存储子系统向该主控数据存储子系统询问一信息,以更新自身的该机载多平台兼容模块的该数据位置信息。
依据本发明的另一实施例,来自于该主控数据存储子系统的该信息是一地址交互参照信息。
依据本发明的另一实施例,当收到该主机指令的该数据存储子系统不能够依据自身的该机载多平台兼容模块的该数据位置信息来解析该主机指令时,更包含有下列步骤:收到该主机指令的该数据存储子系统向一主控数据存储子系统询问一信息,以更新自身的该机载多平台兼容模块的该数据位置信息;收到该主机指令的该数据存储子系统依据向该主控数据存储子系统询问而得的该信息,更新自身的该机载多平台兼容模块的该数据位置信息;收到该主机指令的该数据存储子系统依据自身的该机载多平台兼容模块更新后的该数据位置信息,解析该主机指令成至少一第三子指令,并传送该至少一第三子指令给该复数个数据存储子系统中与该至少一第三子指令相关连的至少一第三数据存储子系统;该至少一第三数据存储子系统各自执行与其相关连的该至少一第三子指令;该至少一第三数据存储子系统回传其执行该至少一第三子指令后的至少一第三执行子结果给收到该主机指令的该数据存储子系统;收到该主机指令的该数据存储子系统汇集来自于该至少一第三数据存储子系统的该至少一第三执行子结果;以及收到该主机指令的该数据存储子系统回传一主执行结果给该主机,其中该主执行结果包含有该至少一第三执行子结果。
依据本发明的另一实施例,该复数个数据存储子系统中的一主控数据存储子系统规律地或依需要,更新该复数个数据存储子系统的每一数据存储子系统的该机载多平台兼容模块的数据位置信息。
依据本发明的另一实施例,该数据位置信息包含有:一虚拟卷标识符(VirtualVolume Identification,VV ID)、一虚拟逻辑区块地址(virtual logical blockaddress,virtual LBA)、一数据大小(size)、一磁盘阵列标识符(RAID identification,RAID ID)、一媒体区标识符(ME identification,ME ID)、一实体逻辑区块地址(physicallogical block address,physical LBA)及一区块数量(block size)。
依据本发明的再一实施例,是提供一种访问数据的方法,用于访问一存储系统架构中的数据,该存储系统架构包含复数个数据存储子系统,该方法包含下列步骤:提供一机载多平台兼容(On-board Load Balance,OBLB)模块于该复数个数据存储子系统中的每一数据存储子系统;该复数个数据存储子系统中的一数据存储子系统接收来自于一主机的一主机指令;收到该主机指令的该数据存储子系统判断是否能依据自身的该机载多平台兼容模块的数据位置信息来解析该主机指令;以及当收到该主机指令的该数据存储子系统能够依据自身的该机载多平台兼容模块的该数据位置信息来解析该主机指令时,更包含有下列步骤:收到该主机指令的该数据存储子系统依据自身的该机载多平台兼容模块的该数据位置信息解析该主机指令成至少一第一子指令;收到该主机指令的该数据存储子系统传送该至少一第一子指令给该复数个数据存储子系统中与该至少一第一子指令相关连的至少一第一数据存储子系统;该至少一第一数据存储子系统中的每一第一数据存储子系统判断其接收到的该第一子指令中的一有效性检查信息(VCI)是否为有效;当其接收到的该第一子指令中的该有效性检查信息被判断为有效时,更包含有下列步骤:收到有效第一子指令的该至少一第一数据存储子系统中的一第一数据存储子系统执行该有效第一子指令;收到有效第一子指令的该第一数据存储子系统回传一第一执行子结果给收到该主机指令的该数据存储子系统;收到该主机指令的该数据存储子系统汇集来自于该至少一第一数据存储子系统中的该第一数据存储子系统回传的该第一执行子结果;以及收到该主机指令的该数据存储子系统回传一主执行结果给该主机,其中该主执行结果包含有该第一执行子结果。
依据本发明的再一实施例,该有效性检查信息是为一有效性检查序号(ValidityCheck Sequence Number,VCSN)。
依据本发明的再一实施例,当其接收到的该第一子指令中的该有效性检查信息被判断为无效时,更包含有下列步骤:收到无效第一子指令的该至少一第一数据存储子系统中的一第一数据存储子系统,传送该无效第一子指令给一主控数据存储子系统;以及该主控数据存储子系统处理来自于该至少一第一数据存储子系统中的该第一数据存储子系统的该无效第一子指令。
依据本发明的再一实施例,该无效第一子指令的该有效性检查信息会无效的原因,是起因于一数据迁移(data migration)作业或一快照(snapshot)作业。
依据本发明的再一实施例,该主控数据存储子系统处理来自于该至少一第一数据存储子系统中的该第一数据存储子系统的该无效第一子指令的步骤,更包含有下列步骤:该主控数据存储子系统解析该无效第一子指令成至少一第四子指令;该主控数据存储子系统传送该至少一第四子指令给与该至少一第四子指令相关连的该复数个数据存储子系统中的至少一第四数据存储子系统;该至少一第四数据存储子系统各自执行与其相关连的该至少一第四子指令;以及该至少一第四数据存储子系统回传其执行该至少一第四子指令后的至少一第四执行子结果给该主控数据存储子系统,以响应该至少一第四子指令;以及该主控数据存储子系统汇集来自于该至少一第四数据存储子系统的该至少一第四执行子结果为该无效第一子指令的一执行结果。
依据本发明的再一实施例,该主控数据存储子系统回传该无效第一子指令的该执行结果给收到该主机指令的该数据存储子系统;以及收到该主机指令的该数据存储子系统回传该主执行结果给该主机,其中该主执行结果包含有该无效第一子指令的该执行结果。
依据本发明的再一实施例,该主控数据存储子系统回传该无效第一子指令的该执行结果给收到该无效第一子指令的该第一数据存储子系统;收到该无效第一子指令的该第一数据存储子系统回传该无效第一子指令的该执行结果给收到该主机指令的该数据存储子系统;以及收到该主机指令的该数据存储子系统回传一主执行结果给该主机,其中该主执行结果包含有该无效第一子指令的该执行结果。
依据本发明的再一实施例,该主控数据存储子系统回传该无效第一子指令的该执行结果给收到该主机指令的该数据存储子系统;收到该主机指令的该数据存储子系统汇集来自于收到该有效第一子指令的该第一数据存储子系统的该第一执行子结果以及来自于收到该无效第一子指令的该主控数据存储子系统的该无效第一子指令的该执行结果;以及收到该主机指令的该数据存储子系统回传该主执行结果给该主机,其中该主执行结果包含有该有效第一子指令的该第一执行子结果与该无效第一子指令的该执行结果。
依据本发明的再一实施例,该主控数据存储子系统回传该无效第一子指令的该执行结果给收到该无效第一子指令的该第一数据存储子系统;收到该无效第一子指令的该第一数据存储子系统回传该无效第一子指令的该执行结果给收到该主机指令的该数据存储子系统;收到该主机指令的该数据存储子系统汇集来自于收到该有效第一子指令的该第一数据存储子系统的该第一执行子结果以及来自于收到该无效第一子指令的该第一数据存储子系统的该无效第一子指令的该执行结果;以及收到该主机指令的该数据存储子系统回传该主执行结果给该主机,其中该主执行结果包含有该有效第一子指令的该第一执行子结果跟该无效第一子指令的该执行结果。
依据本发明的再一实施例,收到该至少一第一子指令的该至少一第一数据存储子系统通知收到该主机指令的该数据存储子系统,其所收到的第一子指令的有效性检查信息是为有效或无效。
依据本发明的再一实施例,当该至少一第一子指令中的一第一子指令的该有效性检查信息被判断为有效时,收到该主机指令的该数据存储子系统通知收到该有效第一子指令的该第一数据存储子系统,执行其收到的该有效第一子指令;以及当该至少一第一子指令中的一第一子指令的该有效性检查信息被判断为无效时,收到该主机指令的该数据存储子系统通知收到该无效第一子指令的该第一数据存储子系统,不执行其收到的该无效第一子指令。
依据本发明的再一实施例,当该至少一第一子指令的任一的该有效性检查信息被判断为无效时,更包含有下列步骤:收到该主机指令的该数据存储子系统通知收到该至少一第一子指令的该至少一第一数据存储子系统,不要执行其所收到的该至少一第一子指令;收到该主机指令的该数据存储子系统传送该主机指令给一主控数据存储子系统;该主控数据存储子系统解析该主机指令成至少一第五子指令,并传送该至少一第五子指令给该复数个数据存储子系统中与该至少一第五子指令相关连的至少一第五数据存储子系统;该至少一第五数据存储子系统各自执行与其相关连的该至少一第五子指令,以得到相对应于该至少一第五子指令的至少一第五执行子结果,并回传该至少一第五执行子结果给该主控数据存储子系统;该主控数据存储子系统汇集来自于该至少一第五数据存储子系统的该至少一第五执行子结果;该主控数据存储子系统回传该至少一第五执行子结果给收到该主机指令的该数据存储子系统;以及收到该主机指令的该数据存储子系统回传一主执行结果给该主机,其中该主执行结果包含有该至少一第五执行子结果。
依据本发明的再一实施例,该无效第一子指令的该有效性检查信息会无效的原因,是起因于一数据迁移(data migration)作业或一快照(snapshot)作业。
依据本发明的再一实施例,当该至少一第一子指令的任一的该有效性检查信息被判断为无效时,更包含有下列步骤:收到该主机指令的该数据存储子系统通知收到该至少一第一子指令的该至少一第一数据存储子系统,不要执行其所收到的该至少一第一子指令;收到该主机指令的该数据存储子系统向该主控数据存储子系统询问一信息,以更新自身的该机载多平台兼容模块的该数据位置信息;收到该主机指令的该数据存储子系统依据向该主控数据存储子系统询问而得的该信息,更新自身的该机载多平台兼容模块的该数据位置信息;收到该主机指令的该数据存储子系统依据自身的该机载多平台兼容模块更新后的数据位置信息,解析该主机指令成至少一第六子指令,并传送该至少一第六子指令给该复数个数据存储子系统中与该至少一第六子指令相关连的至少一第六数据存储子系统;当该至少一第六子指令的该有效性检查信息被判断为有效时,该至少一第六数据存储子系统执行该至少一第六子指令,以得到至少一第六执行子结果;该至少一第六数据存储子系统回传执行该至少一第六子指令后的该至少一第六执行子结果给收到该主机指令的该数据存储子系统;收到该主机指令的该数据存储子系统汇集来自于该至少一第六数据存储子系统的该至少一第六执行子结果;以及收到该主机指令的该数据存储子系统回传一主执行结果给该主机,其中该主执行结果包含有该至少一第六执行子结果。
依据本发明的再一实施例,当该至少一第一子指令的任一的该有效性检查信息被判断为无效时,更包含有下列步骤:收到该主机指令的该数据存储子系统通知收到该至少一第一子指令的该至少一第一数据存储子系统,不要执行其所收到的该至少一第一子指令;收到该主机指令的该数据存储子系统向该主控数据存储子系统询问一信息,以更新自身的该机载多平台兼容模块的该数据位置信息;收到该主机指令的该数据存储子系统依据向该主控数据存储子系统询问而得的该信息,更新自身的该机载多平台兼容模块的该数据位置信息;收到该主机指令的该数据存储子系统依据自身的该机载多平台兼容模块更新后的数据位置信息,解析该主机指令成至少一第六子指令,并传送该至少一第六子指令给该复数个数据存储子系统中与该至少一第六子指令相关的至少一第六数据存储子系统;当该至少一第六子指令的任一的该有效性检查信息被判断为无效时,收到该主机指令的该数据存储子系统传送该主机指令给该主控数据存储子系统;该主控数据存储子系统解析该主机指令成至少一第七子指令,并传送该至少一第七子指令给该复数个数据存储子系统中与该至少一第七子指令相关连的至少一第七数据存储子系统;该至少一第七数据存储子系统执行该至少一第七子指令以得到至少一第七执行子结果,并回传执行该至少一第七子指令后的该至少一第七执行子结果给该主控数据存储子系统;该主控数据存储子系统汇集来自于该至少一第七数据存储子系统的该至少一第七执行子结果;该主控数据存储子系统回传该至少一第七执行子结果给收到该主机指令的该数据存储子系统;以及收到该主机指令的该数据存储子系统回传一主执行结果给该主机,其中该主执行结果包含有该至少一第七执行子结果。
依据本发明的再一实施例,该无效第一子指令的该有效性检查信息会无效的原因,是起因于一数据迁移(data migration)作业或一快照(snapshot)作业。
依据本发明的再一实施例,来自于该主控数据存储子系统的该信息是一地址交互参照信息。
依据本发明的再一实施例,来自于该主控数据存储子系统的该信息是一地址交互参照信息。
依据本发明的再一实施例,该数据位置信息包含有:一虚拟卷标识符(VirtualVolume Identification,VV ID)、一虚拟逻辑区块地址(virtual logical blockaddress,virtual LBA)、一数据大小(size)、一磁盘阵列标识符(RAID identification,RAID ID)、一媒体区标识符(ME identification,ME ID)、一实体逻辑区块地址(physicallogical block address,physical LBA)、一区块数量(block size)及该有效性检查信息。
依据本发明的更一实施例,是提供一种用于访问数据的存储系统架构,该存储系统架构包含有复数个数据存储子系统,且该复数个数据存储子系统耦接于一主机,以接收来自于该主机的一主机指令,该存储系统架构包含有:一冗余磁盘阵列层,提供于该复数个数据存储子系统中的每一数据存储子系统,用以将复数个实体存储组件(PSD)映像成复数个媒体区(ME);一虚拟化模块,提供于该复数个数据存储子系统中的至少一数据存储子系统,用以将该复数个媒体区(ME)形成一虚拟池(virtual pool),该虚拟池(virtual pool)产生一或多个虚拟卷(VV)并呈现给该主机;一机载多平台兼容模块,提供于该复数个数据存储子系统中的每一数据存储子系统,用以提供一数据访问接口给该主机,其中该机载多平台兼容模块包含有一数据位置信息,用以剖析来自于该主机的该主机指令成至少一子指令;以及一媒体区服务器(ME server)模块,提供于该复数个数据存储子系统中的每一数据存储子系统,用以接收该至少一子指令以及判断该至少一子指令的有效性;其中,该复数个数据存储子系统中的一数据存储子系统接收并剖析来自于该主机的该主机指令成至少一子指令,并传送该至少一子指令给相关连的一或多个第一数据存储子系统执行该至少一子指令。
依据本发明的更一实施例,该机载多平台兼容模块更包含有:分别对应于该一或多个虚拟卷(VV)的一或多个数据位置表(Data Location Table,DLT),用以存储对应于该一或多个虚拟卷(VV)的该数据位置信息。
依据本发明的更一实施例,该复数个数据存储子系统中的该数据存储子系统包含有该虚拟化模块而为一主控数据存储子系统,用以管理该一或多个虚拟卷(VV)。
依据本发明的更一实施例,该虚拟化模块、该机载多平台兼容模块以及该媒体区服务器(ME server)模块是三个独立模块。
依据本发明的更一实施例,该机载多平台兼容模块是被整合于该虚拟化模块中。
依据本发明的更一实施例,该媒体区服务器(ME server)模块是被整合于该虚拟化模块中。
依据本发明的更一实施例,该媒体区服务器(ME server)模块是被整合于该机载多平台兼容模块中。
依据本发明的更一实施例,该虚拟化模块、该机载多平台兼容模块以及该媒体区服务器(ME server)模块是被整合于一相同的模块中。
依据本发明的更一实施例,该媒体区服务器(ME server)模块包含有一或多个数据位置有效性表(data location validity table),该一或多个数据位置有效性表(datalocation validity table)用以判断该至少一子指令的有效性检查信息是有效或无效。
依据本发明的更一实施例,该一或多个数据位置有效性表(data locationvalidity table)是分别对应于该一或多个虚拟卷(VV)。
依据本发明的更一实施例,该有效性检查信息是为一有效性检查序号(ValidityCheck Sequence Number,VCSN)。
依据本发明的更一实施例,接收该主机指令的该数据存储子系统不同于该一或多个第一数据存储子系统中的任一第一数据存储子系统。
依据本发明的更一实施例,接收该主机指令的该数据存储子系统是包含于该一或多个第一数据存储子系统中。
依据本发明的更一实施例,该主机指令的一执行结果是经由接收该主机指令的该数据存储子系统回传给该主机,该执行结果是为该至少一子指令的至少一执行子结果的汇集。
附图说明
图1是现有的存储系统架构1的示意图。
图2其是本发明的一存储系统架构2的示意图。
图3是本发明的一实施例的一存储系统架构3。
图4是本发明的一实施例的RAID层所映像出的逻辑驱动器与媒体区的关系示意图。
图5是本发明的一实施例的媒体区与区块的关系示意图。
图6是本发明的一实施例的用于虚拟池的一区段分配系统的数据结构的示意图。
图7是本发明的仅有单一个主控RAID子系统的存储系统架构3的一实施例的虚拟池、虚拟卷与媒体区关系的示意图。
图8是依据图7的存储系统架构3的一实施例的有效性检查序号总表、数据位置有效性表、虚拟池与媒体区之间的关系的示意图。
图9是本发明的具有复数个主控RAID子系统的存储系统架构3的另一实施例的虚拟池、虚拟卷与媒体区关系的示意图。
图10是依据图9的存储系统架构3的另一实施例的有效性检查序号总表、数据位置有效性表、虚拟池与媒体区之间的关系的示意图。
图11是本发明的具有复数个主控RAID子系统的存储系统架构3的另一实施例的虚拟池、虚拟卷与媒体区关系的示意图。
图12是本发明的一存储系统架构3中,以执行数据访问负载平衡功能的背景作业的一实施例的流程图。
图13A是本发明的一存储系统架构3中,以执行数据访问负载平衡功能的第一实施例、第二实施例、第三实施例、第四实施例和第五实施例的第一部分流程图。
图13B是本发明的一存储系统架构3中,以执行数据访问负载平衡功能的第一实施例和第六实施例的第二部分流程图。
图13C是本发明的一存储系统架构3中,以执行数据访问负载平衡功能的第二实施例和第七实施例的第二部分流程图。
图13D是本发明的一存储系统架构3中,以执行数据访问负载平衡功能的第三实施例、第四实施例、第五实施例、第八实施例、第九实施例和第十实施例的第二部分流程图。
第13E图是本发明的一存储系统架构3中,以执行数据访问负载平衡功能的第三实施例、第八实施例的第三部分流程图及第五实施例、第十实施例的第四部分流程图。
图13F是本发明的一存储系统架构3中,以执行数据访问负载平衡功能的第四实施例和第九实施例的第三部分流程图。
图13G是本发明的一存储系统架构3中,以执行数据访问负载平衡功能的第五实施例和第十实施例的第三部分流程图。
图14是本发明的一存储系统架构3中,以执行数据访问负载平衡功能的第六实施例、第七实施例、第八实施例、第九实施例和第十实施例的第一部分流程图。
图15是的本发明的一存储系统架构3的数据访问负载平衡功能中用以验证子指令有效性的第一实施例的子指令有效性验证方法的流程图1500。
图16是本发明的存储系统架构3的数据访问负载平衡功能中用以验证子指令有效性的第二实施例的子指令有效性验证方法的流程图1600。
图17是本发明的存储系统架构3的数据访问负载平衡功能的指令转递的第一示意图。
图18是本发明的存储系统架构3的数据访问负载平衡功能的指令转递的第二示意图。
图19A至图19D是本发明的存储系统架构3的用以实现图17、图18所示的实施例的数据访问负载平衡功能的数据位置表内部数据变迁的示意图。
图20是本发明的存储系统架构3中,执行此数据访问负载平衡功能的第十一实施例的流程图,其中前述第一至第十实施例与第十一实施例之间主要不同是在第十一实施例中,所有的数据位置表(DLTs)中没有VCSN字段。
图21是本发明的存储系统架构3中,执行此数据访问负载平衡功能的第十二实施例的流程图,其中前述第一至第十实施例与第十二实施例之间主要不同是在第十二实施例中,所有的数据位置表(DLT)中没有VCSN字段。
图22是本发明的存储系统架构3的用以实现数据访问负载平衡功能的数据位置表(DLT)的第十一实施例和第十二实施例的示意图。
其中,附图标记说明如下:
1、2、3 存储系统架构
10 主机
12、12A、12B、12C 有效性检查序号总表
13 主机负载平衡驱动程序
14、14A、14B、14C 数据位置有效性表
15 交换器
1201至1203、13001至13107、 步骤
1401至1415、1501至1509、
1601至1611、2001至2027、
2101至2119、
1500、1600 流程图
20、20a、20b、30、30A、30B、30C、 冗余磁盘阵列子系统
RA、RB、RC
40A、40B、40C 机载多平台兼容模块
200a、200b 存储虚拟化控制器
302、302A、302B、302C 虚拟化层
304A、304B、304C 冗余磁盘阵列层
300 实体存储组件数组
400 实体存储媒体
601 区段分配系统
603a、603b 区块关联集区段分配列表
605 节点表
6031 属性区块
6033 目录
6035 日志
6037 区块关联表
6039 数据区块
90、90A、90B、90C 媒体区服务器模块
CH1、CH2、CH3 信道
DLT、RA DLT0、RA DLT0、 数据位置表
RB DLT0、RC DLT0、RA DLT1、
RB DLT1、RC DLT1、RA DLT2、
RB DLT2、RC DLT2
ME、ME1、ME2、ME3、ME4、 媒体区
ME5、ME6、MEn、ME11-ME16、
ME21至ME26、ME31至ME36
VP、VP0、VP1、VP2 虚拟池
VV、VV0、VV1、VV2 虚拟卷
具体实施方式
存储虚拟化(storage virtualization)技术是一种将实体存储空间虚拟化的技术,亦即,存储虚拟化技术能将实体存储组件(Physical Storage Device,PSD)中的不同区段予以结合,使其成为可供一主机使用的一逻辑存储器(logical storage entity),也称作为「逻辑媒体单元」(logical media unit,LMU),并通过该存储虚拟化技术及磁盘阵列(RAID)技术,除了得以将磁盘阵列存储虚拟化外,还能将较小实体存储装置结合成为容量较大、可容错、高效能的一逻辑媒体单元。
存储虚拟化控制器(storage virtualization controller,SVC)是用以在上述的该主机与该逻辑媒体单元间建立一映像关系,使该逻辑媒体单元可为该主机所用。当该存储虚拟化控制器接收到来自于该主机的一输出输入请求(I/O request)后,该存储虚拟化控制器会先剖析及解译该输出入请求,并将相关的操作及数据转译成与实体存储装置相对应的输出入请求。这个过程可以是间接地,例如运用缓存、延迟(如:回写(write-back))、预期(anticipate)(如:先读(read-ahead))、群集(group)等操作来加强效能及其他的操作特性,因而一主机输出入请求并不一定是以一对一的方式直接对应于实体存储装置输出入请求。
存储虚拟化控制器包含有两种形式,分别为内部存储虚拟化控制器与外部存储虚拟化控制器(也称作独立式(stand-alone)存储虚拟化控制器),其中,外部存储虚拟化控制器除了可连接至主机外,也可与位于主机系统外部的装置连接。一般来说,外部存储虚拟化控制器通常独立于主机运作。
请参阅图2,其是本发明的一存储系统架构2的示意图。该存储系统架构2是由一主机10以及通过一信道连接至该主机10的一数据存储子系统所组成,该数据存储子系统(data storage subsystem)可以是RAID子系统20。该RAID子系统20包含有一对存储虚拟化控制器(SVC)200a,200b及具有复数个实体存储媒体(PSD)400的一PSD数组300。其中,该复数个PSD 400可以为硬盘(Hard Disk Drive,HDD)、光盘(Compact Disk,CD)、激光视盘(Video Compact Disk,VCD)、多样化数字光盘(Digital Versatile Disc,DVD)、磁带(TAPE)、固态硬盘(Solid State Drive,SSD)、闪存(Flash Memory)、电子可抹拭只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM)等存储媒体,且该对SVC 200a,200b是被设定为冗余对(redundandent pair)的存储虚拟化控制器。此外,依据本发明的另一实施例,一个RAID子系统可仅使用一个存储虚拟化控制器。
在实际情况里,常会见到将一对存储虚拟化控制器配置成一冗余对(redundandent pair)的应用例,其目的在于:当该冗余对中,其中的一存储虚拟化控制器发生故障或无法运作时,该冗余对中的另一存储虚拟化控制器会接管提供服务的该存储虚拟化控制器所负责的工作,而使得主机依然可以继续执行数据访问工作。
常见到的冗余存储虚拟化控制器对有两种类型,亦即,主动-待命模式(active-standby)与主动-主动模式(active-active)。在主动-待命模式中,该冗余存储虚拟化控制器对中的一存储虚拟化控制器(也称为主要存储虚拟化控制器)呈现、管理及处理存储虚拟化RAID子系统中的所有逻辑媒体单元的所有输出入请求,而另一存储虚拟化控制器(也称为次要存储虚拟化控制器)则是处于待命状态(stand by),只在该主要存储虚拟化控制器无法提供服务时,接替该主要存储虚拟化控制器;而在主动-主动模式下,上述该冗余存储虚拟化控制器对中的的二存储虚拟化控制器,都是正在执作呈现、管理及处理存储虚拟化RAID子系统中的所有逻辑媒体单元的所有输出入请求,并随时预备好在另一个存储虚拟化控制器无法提供服务时(如:故障(malfunction)),接手(take over)对方所负责的工作,其中,主动-主动模式的效能通常较优于主动-待命模式,因为主动-主动模式冗余存储虚拟化控制器对中的两个存储虚拟化控制器的资源(如:中央处理器(Central Processing Unit,CPU)时间、内部总线带宽…等)与单一存储虚拟化控制器相比,可负载较多的输出入请求服务。
然而,不论是主动─被动模式或者是主动─主动模式,冗余存储虚拟化计算机系统的一个基本功能就是在一存储虚拟化控制器发生状况时,另一个存储虚拟化控制器得以接管(take over)发生状况的存储虚拟化控制器的工作,例如:继续完成访问直接访问存储装置中的数据。因此要能建构冗余存储虚拟化计算机系统,其存储虚拟化控制器间首先必须要能建立一个控制器间信道(Inter-controller Communications Channel,ICC),通过此信道得以传送讯息,其中,该控制器间信道可以为一光纤信道仲裁循环(FC-AL)、小型计算机系统接口(parallel small computer system interface,SCSI)或序列先进技术接取接口(serial advanced technology attachment,SATA)等通信链接。
请参阅图3。图3是依据本发明的一实施例的存储系统架构3。该存储系统架构3是由具有多重路径功能的一主机10经由一交换器15、至少一信道(channel,CH)(例如:第一信道CH1、第二信道CH2、第三信道CH3)及三个数据存储子系统(data storage subsystem)所构成,该些数据存储子系统可以是RAID子系统30A、30B、30C。RAID子系统30A的架构包含一虚拟化层(virtualization layer)302A、一冗余磁盘阵列层(RAID layer,后称「RAID层」)304A、一机载多平台兼容模块40A(即On Board Load Balance module,OBLB模块)及一媒体区服务器模块(Media Extent Server module,ME Server模块)90A。其中,该OBLB模块40A、该媒体区服务器模块90A可分别地设置于该虚拟化层302A之内(图未示),也可分别地独立设置于该虚拟化层302A之外。亦即,依据本发明的一实施例,该OBLB模块40A、该媒体区服务器模块90A与该虚拟化层302A以各自独立的模块的方式来实现,如图3所示。依据本发明的另一实施例,该OBLB模块40A设置于该虚拟化层302A之内但该媒体区服务器模块90A设置于该虚拟化层302A之外(图未示)。依据本发明的又一实施例,该OBLB模块40A设置于该虚拟化层302A之外,但该媒体区服务器模块90A设置于该虚拟化层302A之内(图未示)。依据本发明的再一实施例,该OBLB模块40A与该媒体区服务器模块90A皆设置于该虚拟化层302A之内(图未示)。依据本发明的再一实施例,该OBLB模块40A与该媒体区服务器模块90A整合成一模块且独立于该虚拟化层302A(图未示)。同样地,RAID子系统30B的架构包含有一虚拟化层302B、一RAID层304B、一机载多平台兼容模块40B(OBLB模块)及一媒体区服务器模块(MEServer mudule)90B,而RAID子系统30C的架构包含有一虚拟化层302C、一RAID层304C、一机载多平台兼容模块40C(OBLB模块)及一媒体区服务器模块(ME Server mudule)90C。于此,该OBLB模块40B、该媒体区服务器模块90B可分别地设置于该虚拟化层302B之内(图未示),也可分别地独立设置于该虚拟化层302B之外;该OBLB模块40C、该媒体区服务器模块90C可分别地设置于该虚拟化层302C之内(图未示),也可分别地独立设置于该虚拟化层302C之外。
在介绍该存储系统架构3前,先说明多重路径功能(multi-pathingfunctionality)及负载平衡(load balance)的功能。多重路径功能是一种访问技术,亦即,在主机10与各个RAID子系统30A、30B、30C之间建立路径,以便当一或多个组件失效而造成该些路径的其中的一失效时,通过多重路径功能可以让主机10发出的主机指令(Hostcommand)使用其它替代路径,以取代该失效路径,其中,该主机指令(Host command)可以是输出输入要求(I/O request)。如此,主机10仍能通过替代路径访问存储装置中的数据。比如:在主机10与该些RAID子系统30A、30B、30C之间建立冗余路径,若存储虚拟化控制器中的一或多个失效而造成冗余路径的其中之一失效时,则存活的存储虚拟化控制器会切换选择其它仍正常运作的冗余路径,并接手处理失效的存储虚拟化控制器所负责的I/O,使得主机10仍能正常地访问该些RAID子系统30A、30B、30C中的数据。在此机制下,主机10不需要知道哪一个正常运作的存储虚拟化控制器会接管哪一个失效的存储虚拟化控制器所处理的I/O。而这样的冗余存储虚拟化控制器组态,就是所谓的透明的(transparent)冗余存储虚拟化控制器组态,且此种接管机制称作为透明的(transparent)冗余存储虚拟化控制器接管机制。当主机10在发出主机指令时,会轮流向该些虚拟化层302A、302B、302C发出主机指令(Host command)(又称为「输出输入要求」(I/O request)),使得每一个虚拟化层均匀地接收到主机指令,以避免少数节点(node)接收到大多数的主机指令而形成I/O处理上的瓶颈。如此,可以使各个RAID子系统30A、30B、30C的工作负载较为平衡,且系统的效能不会仅取决于某特定节点的I/O处理能力,以达到负载平衡(load balance)的功能。
以下,分别介绍虚拟化层302(如:虚拟化层302A、302B、302C)、RAID层304(如:RAID层304A、304B、304C)、该些媒体区服务器模块90(如:媒体区服务器模块90A、90B、90C)及OBLB模块40(如:OBLB模块40A、40B、40C)的功能。RAID层304(如:RAID层304A、304B、304C)的功能,详述于图4、图5及其对应段落中,请参考后文的说明。虚拟化层302A、302B、302C又称为「虚拟化模块」(virtualization module),其负责管理各RAID层304A、304B、304C中呈现出来的媒体区(ME,Media Extent)、管理并记录有效性检查信息(Validity CheckInformation,VCI)、将各RAID层304A、304B、304C中的媒体区(ME,Media Extent)形成一虚拟池(VP,Virtual Pool)以产生一或多个虚拟卷(VV,Virtual Volume)来呈现给主机10。此外,也负责管理虚拟地址与实体地址间的对映关系。虚拟化层302A、302B、302C也负责驱动用以实现「数据服务」(data service)功能的各种程序(procedure),例如:数据卷复制(volume replication)、虚拟卷快照(virtual volume snapshot)、数据迁徙(datamigration)等。有关「数据卷复制」的数据服务程序,包含有数据卷拷贝(volume copy)与数据卷镜像(volume mirror)的两种数据卷复制方式;其中,数据卷镜像是用于将一源数据卷(source volume)中的数据与一目的数据卷(destination volume)中的数据一直维持在数据同步的关系;而数据卷拷贝是在一特定时间点下达分离(split)指令,以中止源数据卷与目的数据卷在该特定时间点后的数据同步关系,如此使得目的数据卷的数据状态维持在该特定时间点时源数据卷的数据状态。有关「虚拟卷快照」的数据服务程序,是指将一源数据卷(或称基卷(Base Volume))在某一特定时间点的数据状态保留下来成为一快照卷(Snapshot-Volume),即源数据卷的快照。而且,快照只有在源数据卷被写入或被更新新数据时,才会将被写入或被更新新数据的区域中的原始数据复制至一快照影像(SnapshotImage)(此即为「写入复制」(copy-on-write)程序),而非复制源数据卷的全部数据,因此,每一时间点的快照卷是由所对应的快照影像与源数据卷内未复制于该快照影像的数据所组成。有关「数据迁徙」的数据服务程序,是指将一或多个源数据卷(source volume)中的数据搬移到一或多个目的数据卷(destination volume),而其他相关细节是被记载和详细说明于图8及图9中。该些RAID子系统30A、30B、30C剖析(parse)主机10的主机指令成至少一子指令,该些媒体区服务器模块90A、90B、90C是用以验证该至少一子指令中的有效性检查信息(VCI)的有效性,借以判断主机指令所欲访问数据的位置(location)的有效性。
如此,该存储系统架构3即可通过该些虚拟化层302A、302B、302C,依据系统的需求,将该些RAID子系统30A、30B、30C中的存储空间所建构而成的虚拟池(VP)定义成为一或多个虚拟卷(VV),以供该主机10使用。换句话说,主机10可以直接与各个RAID子系统30沟通,亦即,具备有多重路径功能(multi-pathing functionality)及负载平衡(loadbalance)功能。另外,依据本发明的一实施例,有效性检查信息(VCI)可用一有效性检查序号(VCSN,Validity Check Sequence Number)来实作,且有关有效性检查序号(VCSN)的实施例的操作细节详述于图15与图16。
请参阅图4与图5。图4是本发明的一实施例的RAID层304(例如:RAID层304A、304B、304C)所映射出的逻辑驱动器(logical drive,LD)与媒体区(media extent,ME)的关系示意图。图5是本发明的一实施例的媒体区(ME)与区块(block)的关系示意图。如图4与图5中显示,在该些RAID层304、304A、304B、304C中,一或多个PSDs中的每一区块(block)(或称为分区(sector))皆对应到一实体逻辑区块地址(physical logical block address,phyLBA)(或称为逻辑区块地址(LBA)),其中,该些实体逻辑区块地址(physical LBA,phy LBA)是连续寻址,例如:图5所示的phy LBA1、phy LBA2与phy LBA3…等。一或多个区块(block)组成一个媒体区(ME),例如:图4、图5所示的ME 1、ME 2、ME 3、ME 4、ME 5与ME 6…等。而一或多个媒体区(ME)组成一个逻辑驱动器(LD),例如:图4所示的LD 1、LD 2、LD 3、…与LD i等。这里,每一个逻辑驱动器更可被进一步切割成一或多个分割区(partition),例如:图4所示的分割区1、分割区2、分割区3、分割区4、分割区5、分割区6与分割区n…等。图3中的该些虚拟化层(例如:虚拟化层302A、302B、302C)是用以管理由RAID层(例如:RAID层304A、304B、304C)所呈现出来的媒体区(ME),并借以产生一或多个虚拟池(virtual pool,VP)(图未示)。虚拟池(VP)可以完全由单一RAID子系统30A、30B、30C中的一或多个媒体区所构成,或是由一或多个RAID子系统30A、30B、30C中的一或多个媒体区所联合构成。接着,虚拟化层302A、302B、302C再由虚拟池(VP)中产生一或多个虚拟卷(virtual volume,VV)(图未示),并将该些虚拟卷(VV)呈现给主机10,供主机10通过发送主机指令而做数据访问用。在本发明中,虚拟卷(VV)可完全由虚拟池中的单一RAID子系统中的一或多个媒体区所构成,或是由虚拟池中的一或多个RAID子系统中的一或多个媒体区所构成,但不管是以前述哪种方式来构成,对于主机来说,不论是通过第一信道CH1、第二信道CH2或第三信道CH3,都可以将主机指令发送到欲访问的虚拟卷。
请参阅图6,其是本发明的一实施例的用于虚拟池的一区段分配系统(sectionallocation system,SAS)601的数据结构的示意图。区段分配系统(SAS)601是一类似文件系统(file-system-like)数据结构,其包含有一或多个区块关联集区段分配列表(blockassociation set section allocation list,BAS SAL)603a、603b及一节点表(InodeTable)605。节点表605是用以记录区块关联集区段分配列表603a、603b内容存放位置的信息,即区块关联集区段分配列表(BAS SAL)603a、603b内容的指针(pointer),使系统可以通过节点表605正确取得区块关联集区段分配列表(BAS SAL)603a、603b的内容。关于区块关联集区段分配列表(BAS SAL)603a、603b,以一种比喻的说法是:区块关联集区段分配列表(BAS SAL)603a、603b可以视作是区段分配系统(SAS)601中的档案,档案可以分做许多种,区块关联集区段分配列表(BAS SAL)603a、603b则是其中一种用作特定用途的档案。依据本发明的一实施例,区块关联集区段分配列表(BAS SAL)是虚拟卷(VV)的数据结构,每个区块关联集区段分配列表(BAS SAL)603a、603b映像出一个虚拟卷(VV),包含有:一属性区块(Attribute Block)6031,用以记载此区块关联集区段分配列表(BAS SAL)603a、603b的标识符(identification,ID)、大小以及相关设定等信息;一目录(directory)字段6033,记载指引、管理该区块关联集区段分配列表(BAS SAL)603a、603b中各实体区块的信息;一日志(Journal)字段6035,用以存放运作日志,以供系统发生错误或断电情事时可供恢复(recovery)用;一区块关联表(Block Association Table,BAT)字段6037,用以存储指向数据区块(Data Area)6039的参考信息;以及数据区块6039,用以存放供主机访问的数据,并且所存放数据的位置将纪录于区块关联集区段分配列表603a、603b分别所包含的区块关联表(BAT)6037中。依据本发明的一实施例,虚拟化层(例如:虚拟化层302A、302B、302C)管理由RAID层(例如:RAID层304A、304B、304C)所呈现出来的媒体区(ME),并据以产生一或多个虚拟池(VP)。然后,虚拟化层302A、302B、302C再由虚拟池(VP)中产生一或多个虚拟卷(VV),该一或多个虚拟卷(VV)分别映像于一区块关联集区段分配列表(BAS SAL)(例如:区块关联集区段分配列表603a、603b)。接着,区块关联集区段分配列表(BAS SAL)与区块关联表(BAT)将被建置,并且将与其对应的虚拟卷(VV)映像至一主机10信道上的CH/ID/LUN(Channel/Identification/Logical Unit Number)(信道/标识符/逻辑单元号码),呈现给主机10。在本实施例中,虚拟池(VP)分配给虚拟卷(VV)的存储空间,是以实体区段(section)为最小单位,其中,每一个实体区段包含有一或多个区块(block)(或称为分区(sector))。
请参阅图3及图7,其中,图7是依据本发明的仅有单一个主控RAID子系统的存储系统架构3的一实施例的虚拟池(VP)、虚拟卷(VV)与媒体区(ME)关系的示意图。本实施例是使用有效性检查序号(VCSN)来实现主机指令有效性验证方法。于本实施例中,设置有虚拟化层302的RAID子系统可被设定作为一主控(master)RAID子系统30,而被主控RAID子系统30所管理的其他RAID子系统30是被称为从属(slave)RAID子系统30;于其它实施例中,设置有虚拟化层302的RAID子系统不须必定被设定作为一主控RAID子系统30。依据本发明的一实施例,图3中所示的RAID子系统30A设置有虚拟化层302A,因此,RAID子系统30A被设定在一虚拟池VP0中担任主控RAID子系统(master RAID subsystem),而其它RAID子系统30B、30C对虚拟池VP0而言是从属RAID子系统(slave RAID subsystem)。图7的实施例中,由虚拟池VP0产生出三个虚拟卷VV0、VV1、VV2。于本实施例中,虚拟卷VV0包含有媒体区ME11、ME12、ME21、ME22、ME31、ME32,虚拟卷VV1包含有媒体区ME13、ME14、ME23、ME24、ME33、ME34,该虚拟卷VV2包含有ME15、ME16、ME25、ME26、ME35、ME36,如图7所示。
请参照图8及图9,分别例示本发明存储系统架构3的有效性检查序号总表12A、数据位置有效性表14A至14C、虚拟池(VP)与媒体区(ME)之间的关系的示意图,以绘示使用有效性检查信息(VCI)的一特定实施方式(例如:有效性检查序号(VCSN))来实现主机指令有效性验证方法。依据本发明的一实施例,可在虚拟化层302A、302B、302C分别设置各自专属的数据位置有效性表(Data location validity table)14A、14B、14C,其中记载有借以记录自身存储数据的搬迁状态。在本发明存储系统架构3的有效性检查序号总表12A、数据位置有效性表14A至14C中建制有效性检查序号(VCSN)的目的,在于避免:当主机10发出读取/写入数据的主机指令是对正在进行数据迁徙作业(data migration functionality)的RAID子系统30的媒体区(ME)(例如:该RAID子系统30A、30B、30C中的任意两者间的数据迁徙作业)时,可以避免该主机指令被执行而访问到错误的数据。所以,RAID子系统30A、30B、30C中的每一媒体区(ME)皆系设定一有效性检查序号(VCSN),而且当一RAID子系统30中的一媒体区(ME)中的一个实体区段(section)上的数据要迁徙至另一RAID子系统30中的一媒体区(ME)前,数据移出的该媒体区(ME)所属RAID子系统30的虚拟化层302会更改数据移出的该媒体区(ME)的有效性检查序号(VCSN)与更新其自身管理的数据位置有效性表14,并通知移出数据的该媒体区(ME)所隶属的虚拟卷(VV)的管理者(亦即,该虚拟卷(VV)的主控RAID子系统30),使其能够掌握最新数据分布状态,以利后续所接收到要求读取/写入数据的主机指令的有效性检查序号(VCSN)的判断。于此,依据图3、图7、图8而提出的本发明的一实施例,若RAID子系统30B的媒体区22(ME 22)的数据要被迁徙至RAID子系统30C的媒体区31(ME31),媒体区22(ME 22)所属的RAID子系统30B会更改数据移出的媒体区22(ME 22)的有效性检查序号(VCSN)与更新其自身管理的数据位置有效性表14B,并通知移出数据的媒体区22(ME 22)所隶属的虚拟卷VV0的管理者(亦即,身为主控RAID子系统30的RAID子系统30A),使其更新该有效性检查序号总表12A(VV0)以便掌握最新数据分布状态而有利后续所接收到要求读取/写入数据的主机指令的有效性检查序号(VCSN)的判断。
发生数据迁徙作业的原因之一是:RAID子系统30A、30B、30C中的一或多个媒体区因为增加实体存储组件(PSD)而增加媒体区数量或是因为减少实体存储组件(PSD)而减少媒体区数量。所以,RAID子系统30A、30B、30C中所存储的数据会因应媒体区数量的变化而进行数据迁徙作业(亦即,将数据由原本存储的位置搬迁至另一或多个媒体区),以避免RAID子系统30A、30B、30C中的某一RAID子系统30的访问负载过重。这也是负载平衡(loadbalance)功能的体现。发生数据迁徙作业的另一原因是:若RAID子系统30A、30B、30C中的某一RAID子系统30所存储数据为主机10频繁访问的热数据(hot data),及/或某一RAID子系统30所存储数据为主机10甚少访问的冷数据(cold data),造成各个RAID子系统30A、30B、30C的访问负载不平衡。所以,RAID子系统30A、30B、30C中所存储的数据会因应负载平衡(load balance)的需求而进行数据迁徙作业(亦即,将热数据由原本存储的位置搬迁至另一或多个媒体区),以避免该些RAID子系统30A、30B、30C中的某一RAID子系统30的访问负载过重,以达到负载平衡(load balance)功能。
请再参考图3、图7、图8绘示的本发明的一实施例。RAID子系统30A、30B、30C中的虚拟化层302A、302B、302C依据该些虚拟卷VV0、VV1、VV2中所属的每一个媒体区(ME)而各自产生有效性检查序号(VCSN)的初始值,并将每一个媒体区(ME)的有效性检查序号(VCSN)的初始值各自存储在数据位置有效性表14A、14B、14C中,且依据该些数据位置有效性表14A、14B、14C形成有效性检查序号总表12A(VV0)。尔后,若有一RAID子系统30中的一媒体区(ME)中的一个实体区段(section)上的数据要迁徙至另一RAID子系统30中的一媒体区(ME)时,数据移出的RAID子系统30的虚拟化层302会更改数据移出的该媒体区(ME)的有效性检查序号(VCSN)与更新其自身管理的数据位置有效性表14,并通知移出数据的该媒体区(ME)所隶属的虚拟卷(VV)的管理者(亦即,身为虚拟卷VV0的主控RAID子系统30A),使其能够掌握最新数据分布状态,以利后续所接收到要求读取/写入数据的主机指令的有效性检查序号(VCSN)的判断。
请再参考图3、图7、图8,于本发明的一实施例,有效性检查序号(VCSN)的更改/变动方式是:当一媒体区(ME)中的一区段(section)上的数据(区块数据),因为前述原因(例如:媒体区(ME)数量的变化或热数据(hot data)/冷数据(cold data)形成RAID子系统30的访问负载不平衡)而被从该媒体区(ME)中搬迁出去时,数据移出的媒体区(ME)所属的RAID子系统的虚拟化层302会将数据移出的媒体区(ME)的有效性检查序号(VCSN)数值加上一特定数值(incremented),例如:加上1单位计量值或加上1单位计数值,且1单位计量值或1单位计数值可以视需要而设定。然后,数据移出的媒体区(ME)所属的RAID子系统的虚拟化层302会以更改后的有效性检查序号(VCSN)更新其自身管理的数据位置有效性表14,并通知移出数据的媒体区(ME)所隶属的虚拟卷(VV)的管理者(亦即,该虚拟卷(VV)的主控RAID子系统30A)。尔后,若该媒体区(ME)有再把其存储数据搬迁至其他媒体区(ME)时,该媒体区(ME)所属RAID子系统30的虚拟化层302会把该媒体区(ME)的有效性检查序号(VCSN)数值再加上一特定数值(incremented),例如:加上1单位计量值或加上1单位计数值,且1单位计量值或1单位计数值可以视需要而设定。再依据图3、图7、图8而提出的本发明的一实施例,有效性检查序号(VCSN)的更改/变动方式可以是:每有数据从一媒体区(ME)移出时,就将媒体区(ME)的有效性检查序号(VCSN)数值加上1或一特定数值(例如:2、3、4……等,但不受限于此)。又依据图3、图7、图8而提出的本发明的一实施例,有效性检查序号(VCSN)的更改/变动方式可以是:每有数据从一媒体区(ME)移出时,就将媒体区(ME)的有效性检查序号(VCSN)数值减去1或一特定数值(例如:2、3、4……等,但不受限于此)。
请参阅图3、图7及图8,其中,图8是依据图7的存储系统架构3的一实施例的有效性检查序号总表12、数据位置有效性表14A至14C、虚拟池(VP)与媒体区(ME)之间关系的示意图。为了让主机10可以任意对RAID子系统30A、30B、30C发出主机指令,因此,RAID子系统30A、30B、30C中皆分别设置有OBLB模块40A、40B、40C,用以将来自主机10的主机指令剖析(parse)成为一或多个子指令后,再转递给对应的RAID子系统30。于本发明的一实施例中,该些OBLB模块40A、40B、40C皆有分别对应于虚拟卷VV0、VV1、VV2的数据位置表(DataLocation Table,DLT)DLT0、DLT1、DLT2,该些数据位置表DLT0、DLT1、DLT2是分别用以记录由虚拟池VP0产生的虚拟卷VV0、VV1、VV2中的数据位置信息(Data LocationInformation)。于此实施例中,由于RAID子系统30A为主控RAID子系统,因此,RAID子系统30A中的媒体区服务器模块90A中设置有分别对应于该些虚拟卷VV0、VV1、VV2的有效性检查序号总表12A(VV0)、12A(VV1)、12A(VV2),用以对其所接收到的一或多个子指令进行其有效性检验。其中,该些有效性检查序号总表12A(VV0)、12A(VV1)、12A(VV2)中载有分别系属于虚拟卷VV0、VV1、VV2的媒体区ME及其VCSN最大值,例如:有效性检查序号总表12A(VV0)中载有媒体区ME15、ME16、ME25、ME26、ME35、ME36及其VCSN最大值,分别是39、26、55、66、00、42。于本发明的一实施例中,将数据位置有效性表(Data location validity table)14设置于RAID子系统30的媒体区服务器模块90中,因此,所有个别RAID子系统30中的媒体区服务器模块90(例如:RAID子系统30A中的媒体区服务器模块90A、RAID子系统30B中的媒体区服务器模块90B、RAID子系统30C的媒体区服务器模块90C)仅载有专属其RAID子系统30的数据位置有效性表(Data location validity table)14中的每一媒体区ME中的LBA数值及VCSN最大值,同样用以对其所接收到的一或多个子指令中的VCSN,进行子指令的有效性检验。依据图8所示的范例,媒体区服务器模块90B中记载有数据位置有效性表14B中的媒体区ME21的VCSN最大值(21)、媒体区ME22的VCSN最大值(02)、媒体区ME23的VCSN最大值(53)、媒体区ME24的VCSN最大值(74)、媒体区ME25的VCSN最大值(55)、媒体区ME26的VCSN最大值(66),该媒体区服务器模块90C中载有该数据位置有效性表14C中的媒体区ME31的VCSN最大值(31)、媒体区ME32的VCSN最大值(32)、媒体区ME33的VCSN最大值(91)、媒体区ME34的VCSN最大值(80)、媒体区ME35的VCSN最大值(00)、媒体区ME36的VCSN最大值(42)。
请参阅图3及图9,其中,图9是本发明具有复数个主控RAID子系统的存储系统架构3的另一实施例的虚拟池(VP)、虚拟卷(VV)与媒体区(ME)关系的示意图。同样地,本实施例是使用有效性检查序号(VCSN)来实现主机指令有效性验证方法,且于本实施例中,设置有虚拟化层302的RAID子系统可被设定作为一主控RAID子系统30,而被主控RAID子系统30所管理的其他RAID子系统30是被称为从属RAID子系统30。如图3中所示,RAID子系统30A设置有虚拟化层302A,因此,RAID子系统30A被设定为虚拟池VP0(产生虚拟池VP0的虚拟卷VV0)的主控RAID子系统,而其它RAID子系统30B、30C则是虚拟池VP0的从属RAID子系统;其中,虚拟池VP0中的虚拟卷VV0包含有媒体区ME11、ME12、ME21、ME22、ME31、ME32。类似地,RAID子系统30B设置有虚拟化层302B,因此,RAID子系统30B被设定为虚拟池VP1(产生虚拟池VP1的虚拟卷VV0)的主控RAID子系统,而其它RAID子系统30A、30C则是虚拟池VP1的从属RAID子系统;其中,虚拟池VP1中的虚拟卷VV0包含有媒体区ME13、ME14、ME23、ME24、ME33、ME34。类似地,RAID子系统30C设置有虚拟化层302C,因此,RAID子系统30C被设定为虚拟池VP2(产生虚拟池VP2的虚拟卷VV0)的主控RAID子系统,而其它RAID子系统30A、30B则是虚拟池VP2的从属RAID子系统;其中,虚拟池VP2中的虚拟卷VV0包含有媒体区ME15、ME16、ME25、ME26、ME35、ME36。
请参阅图3、图9及图10,其中,图10是依据图9的存储系统架构3的另一实施例的有效性检查序号总表12、数据位置有效性表14、虚拟池(VP)与媒体区(ME)之间的关系的示意图。为了让主机10可以任意对RAID子系统30A、30B、30C发出主机指令,因此,该些RAID子系统30A、30B、30C中皆分别设置有OBLB模块40A、40B、40C,用以将来自主机10的主机指令剖析(parse)成为一或多个子指令后,再转递给对应的RAID子系统。例如:该些OBLB模块40A、40B、40C皆有分别对应于虚拟池VP0的虚拟卷VV0、虚拟池VP1的虚拟卷VV0、虚拟池VP2的虚拟卷VV0的数据位置表DLT0、DLT1、DLT2,其中,该些数据位置表DLT0、DLT1、DLT2是分别用以记录虚拟池VP0生成的虚拟卷VV0、虚拟池VP1生成的虚拟卷VV0、虚拟池VP2生成的虚拟卷VV0中的数据分布位置信息。依据本发明的一实施例,RAID子系统30A、30B、30C中的虚拟化层302A、302B、302C更可设置有各自专属的数据位置有效性表14A、14B、14C,借以记录自身存储数据的搬迁状态(例如:数据移出)。由于该些RAID子系统30A、30B、30C分别为不同虚拟池VP0、VP1、VP2的主控RAID子系统,因此,该些RAID子系统30A、30B、30C中的媒体区服务器模块90A、90B、90C皆设置有各自的有效性检查序号总表12A、12B、12C,用以对其所接收到的来自于其他RAID子系统无法剖析(parse)的一或多个指令,进行处理、拆解,同时,该些媒体区服务器模块90A、90B、90C也分别载有专属其RAID子系统30A、30B、30C的数据位置有效性表14中的每一媒体区ME中的LBA数值及VCSN最大值,同样用以对其所接收到的一或多个子指令中的VCSN,进行子指令的有效性检验。依据本发明的使用有效性检查序号(VCSN)来实现主机指令有效性验证方法的一实施例,在虚拟池VP0的虚拟卷VV0中,作为一从属RAID子系统的RAID子系统30C,其媒体区服务器模块90C中载有数据位置有效性表14C中的媒体区ME31的VCSN最大值(31)、媒体区ME32的VCSN最大值(32)、媒体区ME33的VCSN最大值(91)、媒体区ME34的VCSN最大值(80)、媒体区ME35的VCSN最大值(00)、媒体区ME36的VCSN最大值(42)。依据本发明的使用有效性检查序号(VCSN)来实现主机指令有效性验证方法的一实施例,在虚拟池VP2的虚拟卷VV0中,作为一从属RAID子系统的该RAID子系统30A,其媒体区服务器模块90A中载有数据位置有效性表14A中的媒体区ME11的VCSN最大值(10)、媒体区ME12的VCSN最大值(17)、媒体区ME13的VCSN最大值(23)、媒体区ME14的VCSN最大值(44)、媒体区ME15的VCSN最大值(39)、媒体区ME16的VCSN最大值(26)。而于另一种实施方式中,该些媒体区服务器模块90A、90B、90C系通过参考其RAID子系统30A、30B、30C的虚拟化层302A、302B、302C中所载的数据位置有效性表14中所载的媒体区ME、LBA数值及VCSN最大值,来进行子指令的有效性检验。
请参阅图3及图11,其中,图11是本发明的具有复数个主控RAID子系统的存储系统架构3的另一实施例,其中包含虚拟池(VP)、虚拟卷(VV)与媒体区(ME)关系的示意图。同样地,本实施例使用有效性检查序号(VCSN)来实现主机指令有效性验证方法,且于本实施例中,设置有虚拟化层302的RAID子系统可被设定作为主控RAID子系统30,而被主控RAID子系统30所管理的其他RAID子系统30称为从属RAID子系统30。如图3和图11中所示,RAID子系统30A中设置有虚拟化层302A,用以管理虚拟池VP0(其中呈现出虚拟卷VV0),因此,RAID子系统30A是虚拟池VP0的主控RAID子系统,而其它RAID子系统30B、30C则对虚拟池VP0以及其虚拟卷VV0而言是从属RAID子系统;其中,虚拟池VP0中的虚拟卷VV0包含有媒体区ME11、ME21、ME31。同样地,RAID子系统30B中设置有虚拟化层302B,用以管理虚拟池VP1(其中呈现出虚拟卷VV0、VV1、VV2、VV3、VV4、VV5),因此,RAID子系统30B是虚拟池VP1的主控RAID子系统,而其它RAID子系统30A、30C对虚拟池VP1以及其虚拟卷VV0、VV1、VV2、VV3、VV4、VV5而言是从属RAID子系统;其中,虚拟池VP1中的虚拟卷VV0包含有媒体区ME12、ME22、ME32,虚拟池VP1中的虚拟卷VV1包含有媒体区ME13、ME14、ME23、ME33,虚拟池VP1中的虚拟卷VV2包含有媒体区ME24、ME34,虚拟池VP1中的虚拟卷VV3包含有媒体区ME15,虚拟池VP1中的虚拟卷VV4包含有媒体区ME16、ME25、ME35,以及虚拟池VP1中的虚拟卷VV5包含有媒体区ME26、ME36。此外,为了让主机10可以任意对该些RAID子系统30A、30B、30C发出主机指令,因此,该些RAID子系统30A、30B、30C中皆分别设置有OBLB模块40A、40B、40C,用以将来自主机10的主机指令剖析(parse)成为一或多个子指令后,再转递给相对应的RAID子系统。以图11的实施例为例,OBLB模块40C有对应于虚拟池VP0中的虚拟卷VV0的数据位置表(Data Location Table,DLT)DLT00,以及有分别对应于虚拟池VP1中的虚拟卷VV0至VV5的数据位置表(DataLocation Table,DLT)DLT10、DLT11、DLT12、DLT13、DLT14、DLT15;其中,数据位置表DLT00是用以记录由虚拟池VP0形成的虚拟卷VV0相关的地址交互参照信息,而数据位置表DLT10、DLT11、DLT12、DLT13、DLT14、DLT15是分别用以记录由虚拟池VP1形成的虚拟卷VV0、VV1、VV2、VV3、VV4、VV5相关的地址交互参照信息。
这里,由图7、图8、图9、图10及图11中所例示的实施例可以了解到,一虚拟池VP可以依需要生成一或多个虚拟卷VV,而不限定一虚拟池VP仅能生成一个虚拟卷VV或是一虚拟池VP仅能生成特定数目的虚拟卷VV。
请参阅图3、图9、图10及图12,其中,图12是本发明的一存储系统架构中,以执行数据访问负载平衡(load balance)功能的背景作业的一实施例的流程图。于此,以使用有效性检查序号(VCSN)来实现主机指令有效性验证方法的该存储系统架构3为例子来说明。为了处理来自主机10的主机指令(例如:SCSI指令),RAID子系统30A(主控RAID子系统)会先扫描管理的媒体区(ME)以便得知与媒体区(ME)相关的组态/位置(configuration/location)以及数据分布等信息,并据以产生一份用以记录数据分布、媒体区(ME)属性及其所隶属的虚拟化层的窗体。然后,所有的RAID子系统30(例如:作为主控RAID子系统的RAID子系统30A、作为从属RAID子系统的RAID子系统30B、作为从属RAID子系统的RAID子系统30C)会视需要及/或视状况及/或周期性地发送一数据位置询问指令(data location querycommand)至RAID子系统30A(主控RAID子系统),以询问待访问目标数据的实体位置数据(步骤1201)。该数据位置询问指令(data location query command)可以是,例如:利用小型计算机系统接口(Small Computer System Interface,SCSI)协议中,用以询问数据存储位置的一指令,但本发明的其它实施例不受限于此。该数据位置询问指令包含有询问虚拟卷标识符(Virtual Volume Identification,VV ID)、虚拟LBA、数据大小(size)、RAID标识符(RAID identification,RAID ID)、媒体区标识符(ME identification,ME ID)、实体LBA、区块数量(Block size)及VCSN等内容。关于以上所称「视需要」的一种实施态样可以是:当一RAID子系统(例如:作为从属RAID子系统的RAID子系统30B、作为从属RAID子系统的RAID子系统30C)收到来自主机10的主机指令但却无法处理该主机指令时,而需要向其作为主控RAID子系统的RAID子系统30A询问待访问的目标数据的实体位置数据,以更新自身的信息。关于以上所称「视状况」的一种实施态样可以是:当一RAID子系统(例如:作为从属RAID子系统的RAID子系统30B、作为从属RAID子系统的RAID子系统30C)在其系统工作负载较轻、甚至是闲置时,为有效利用系统资源,因此趁空档时向其作为主控RAID子系统的RAID子系统30A询问最新的实体数据分布状态,以更新自身的信息。而关于以上所称「周期性地」的一种实施态样可以是:一RAID子系统(例如:作为从属RAID子系统的RAID子系统30B、作为从属RAID子系统的RAID子系统30C)以一固定的询问频率来询问其作为主控RAID子系统的RAID子系统30A最新的实体数据分布状态,以更新自身的信息。
当RAID子系统30A(主控RAID子系统)收到数据位置询问指令后,会回复相关信息给所有的RAID子系统(例如:回复相关信息给主控RAID子系统30A(主控RAID子系统)、RAID子系统30B(从属RAID子系统)或RAID子系统30C(从属RAID子系统))(步骤1203)。这里,该相关信息包含有一数据位置描述码(data location descriptor),而该数据位置描述码更包含有一地址交互参照信息(location cross reference information),如:包含有VV ID(Virtual Volume Identification)、虚拟LBA、数据大小(size)、RAID标识符(RAID ID)、媒体区标识符(ME ID)、实体LBA、区块数量(Block Size)及VCSN。之后,所有的RAID子系统(例如:RAID子系统30A(主控RAID子系统)、RAID子系统30B(从属RAID子系统)或RAID子系统30C(从属RAID子系统))会根据地址交互参照信息(location cross reference information)建立如图19A-图19D或图22所示的数据位置表(Data location table,DLT)于其自身的OBLO模块中(例如:OBLO模块40A、OBLO模块40B、OBLO模块40C),以建立自身的OBLO模块的数据位置信息(Data Location Information)。依据本发明的一实施例,RAID子系统30A为虚拟池VP0的虚拟卷VV0的主控RAID子系统,因此,RAID子系统30A(主控RAID子系统)会先扫描虚拟卷VV0所包含的媒体区ME11至ME12、ME21至ME22、ME31至ME32,以便得知与该些媒体区ME11至ME12、ME21至ME22、ME31至ME32相关的组态/位置(configuration/location)以及数据分布等信息,并据以产生一份用以记录数据分布、ME属性及其所隶属的虚拟化层的窗体。然后,在虚拟池VP0的虚拟卷VV0中所有的RAID子系统(例如:RAID子系统30A(主控RAID子系统)、RAID子系统30B(从属RAID子系统)、RAID子系统30C(从属RAID子系统))会视需要或视状况或周期性地而发送一数据位置询问指令(data location query command)至RAID子系统30A(主控RAID子系统),以询问待访问目标数据的实体位置数据和该地址交互参照信息(如图12中所示的该步骤1201),其中,该数据位置询问指令包含有询问RAID标识符(RAIDID)、媒体区标识符(ME ID)、实体LBA、区块数量(Block size)及VCSN等内容。当RAID子系统30A(主控RAID子系统)收到数据位置询问指令后,会回复相关信息给该所有的RAID子系统(即RAID子系统30A、30B、30C)(如图12中所示的该步骤1203)。RAID子系统30A(主控RAID子系统)回复的相关信息包含有一数据位置描述码(data location descriptor),其中更包含有一地址交互参照信息(location cross reference information),如:包含有RAID标识符(RAID ID)、媒体区标识符(ME ID)、实体LBA、区块数量(Block Size)及VCSN。之后,所有的RAID子系统(即该些RAID子系统30A、30B、30C)会根据地址交互参照信息(locationcross reference information)建立如图19A-图19D或图22所示的数据位置表RA DLT0、RBDLT0、RC DLT0于其自身的OBLB模块40A、40B、40C中,以便周期性地或视状况或视需要,将通过数据位置询问指令所得到的地址交互参照信息,用于在数据位置表(data locationtable,DLT)中建立数据位置信息(Data Location Information)。
请参阅使用有效性检查序号(VCSN)来实现主机指令有效性验证方法的用以例示本发明第一实施例的图13A与图13B,其中,图13A是本发明的一存储系统架构中,以执行数据访问负载平衡功能的第一实施例的第一部分流程图;图13B是依据本发明的一存储系统架构中,以执行数据访问负载平衡功能的第一实施例的第二部分流程图。由第一实施例的图13A的第一部分流程与第一实施例的图13B的第二部分流程结合而成的第一实施例流程,其是本发明的存储系统架构中,执行此数据访问负载平衡功能的第一实施例的流程图。于此,以存储系统架构3为例子作说明。依据本发明的一实施例,当身为从属RAID子系统的RAID子系统30B(收到主机指令的RAID子系统)收到来自于该主机10的一主机指令(Hostcommand)(又称为「I/O要求」(I/O request))时(例如:SCSI指令)(步骤13001),会先判断该主机指令是否为一访问指令(例如:读指令(READ command)、写指令(WRITE command))(步骤13003)。若是该主机指令为一读写指令(READ/WRITE command),则RAID子系统30B中(从属RAID子系统)的OBLB模块40B会依据该主机指令来查询其所系属的数据位置表(DLT)(步骤13009),以判断在前述的数据位置表(DLT)中记录的数据位置信息(Data LocationInformation)中是否有相关的地址交互参照信息(步骤13011)。若RAID子系统30B(从属RAID子系统)的数据位置表(DLT)中记录的数据位置信息(Data Location Information)中有相关于该主机指令的地址交互参照信息,则RAID子系统30B(从属RAID子系统)会根据相关于该主机指令的地址交互参照信息来剖析(parse)该主机指令成为N个第一子指令(subcommand)(又称为「子输出输入要求」(sub-I/O request))后,再转递给相对应的RAID子系统进行处理(步骤13025),其中,N的数值可以为1或是比1还大的任一整数(例如:若N的数值为3,则表示该主机指令被拆解成为三个第一子指令)。依据本发明的一实施例,根据相关于主机指令的地址交互参照信息,主机指令被剖析成为三个第一子指令(一第一子指令1、一第一子指令2及一第一子指令3,且该第一子指令1、该第一子指令2及该第一子指令3是分别被转递给RAID子系统30A(主控RAID子系统)、RAID子系统30B(从属RAID子系统)及RAID子系统30C(从属RAID子系统)来执行(步骤13025)。反之,若RAID子系统30B(从属RAID子系统)的数据位置表(DLT)中记录的数据位置信息(Data Location Information)中没有相关于该主机指令的地址交互参照信息,则RAID子系统30B(从属RAID子系统)会将该主机指令转送给RAID子系统30A(主控RAID子系统),再由该RAID子系统30A(主控RAID子系统)进一步处理(步骤13013),同时,因为RAID子系统30B(从属RAID子系统)的数据位置表(DLT)中记录的数据位置信息(Data Location Information)中没有相关于该主机指令的地址交互参照信息,所以RAID子系统30B(从属RAID子系统)中的OBLB模块40B会向RAID子系统30A(主控RAID子系统)询问有关该主机指令的地址交互参照信息以更新自身的数据位置信息(DataLocation Information)(步骤13013)。然后,RAID子系统30A(主控RAID子系统)依据存放在该虚拟层302A的一虚拟对实体区段索引映像表(Virtual-to-Physical(V2P)sectionindex mapping table,V2P Table)来处理、拆解该主机指令成为一或多个子指令并转送给相对应的RAID子系统(步骤13015)来执行该一个或多个子指令(步骤13017)。之后,所有相对应的RAID子系统回传执行结果给RAID子系统30A(主控RAID子系统)(步骤13019),再由RAID子系统30A(主控RAID子系统)汇集并回传执行结果给RAID子系统30B(从属RAID子系统)(步骤13021),再由RAID子系统30B(从属RAID子系统)将执行结果回传给主机10(步骤13023)。依据本发明的一实施例,RAID子系统30A(主控RAID子系统)把从RAID子系统30B(从属RAID子系统)转送过来的主机指令,剖析成一第一子指令1、一第一子指令2及一第一子指令3(如图13A的步骤13015),且该第一子指令1、该第一子指令2及该第一子指令3系分别被转递给RAID子系统30A(主控RAID子系统)、RAID子系统30B(从属RAID子系统)及RAID子系统30C(从属RAID子系统)来执行(如图13A的步骤13017)。之后,RAID子系统30A(主控RAID子系统)、RAID子系统30B(从属RAID子系统)及RAID子系统30C(从属RAID子系统)分别将该第一子指令1、该第一子指令2及该第一子指令3的执行结果回传给RAID子系统30A(主控RAID子系统)(如图13A的步骤13019),该RAID子系统30A(主控RAID子系统)回传该第一子指令1、该第一子指令2及该第一子指令3的执行结果给RAID子系统30B(从属RAID子系统)(如图13A的步骤13021)。然后,再由RAID子系统30B(从属RAID子系统)将主机指令的执行结果回传给主机10(如图13A的步骤13023)。而若在步骤13003中,判断主机指令不为一读写指令,则RAID子系统30B(从属RAID子系统)中的OBLB模块40B会将主机指令转送给RAID子系统30A(主控RAID子系统),由RAID子系统30A(主控RAID子系统)来处理(步骤13005)。接着,RAID子系统30A(主控RAID子系统)会在处理过主机指令后,回传处理结果给RAID子系统30B(收到主机指令的RAID子系统),再由RAID子系统30B(收到主机指令的RAID子系统)将处理结果通知主机10(步骤13007)。
请再次参阅图13A与图13B。在上述的图13A的步骤13025之后,主机指令已被拆解成为N个第一子指令并各别转递给相对应的RAID子系统进行处理。接下来的处理程序,是通过节点A(图13A与图13B的步骤13027)进入图13B的流程。如上所述,因为有N个第一子指令各别转递给相对应的RAID子系统进行处理,因此可能会有一或多个对应第一子指令的处理程序并行运作,而图13B(步骤13029~步骤13037)所述只是该一或多个对应第一子指令的处理程序的其中之一。当某一相对应的RAID子系统收到第一子指令时,收到第一子指令的RAID子系统处理其所收到的第一子指令(步骤13029),首先判断其所收到的第一子指令所内含的VCSN的有效性(步骤13031)(请参阅图13B)。若是RAID子系统判断其所收到的第一子指令中的VCSN为一有效的VCSN,则RAID子系统会执行其所收到的第一子指令(步骤13033),然后RAID子系统再把其所收到的第一子指令的执行结果回传给RAID子系统30B(收到主机指令的RAID子系统)(步骤13035),且RAID子系统30B(收到主机指令的RAID子系统)会等汇集到所有相对应的RAID子系统所回传的第一子指令的执行结果后,再回传主机指令的执行结果给主机10(步骤13037)。
请再次参阅图13B。若是步骤13031的判断结果是:RAID子系统所收到的第一子指令中的VCSN为一无效的VCSN(步骤13031),则RAID子系统不会执行其所收到的第一子指令,而是将其所收到的第一子指令转送给主控RAID子系统(RAID子系统30A)(步骤13039)。接着,主控RAID子系统(RAID子系统30A)会依据存放在其虚拟层302A的一虚拟对实体区段索引映像表(Virtual-to-Physical(V2P)section index mapping table,V2P Table)来处理、拆解其所收到的VCSN无效的第一子指令为M个第二子指令,并将M个第二子指令转送给与其相对应的RAID子系统来执行(步骤13041);其中,M的数值可以为1或是比1还大的任一整数(例如:若M的数值为2,则表示第一指令被拆解成为二个第二子指令)。在收到第二子指令的RAID子系统执行其所收到的第二子指令(步骤13043)之后,收到第二子指令的RAID子系统回传其第二子指令的执行结果给主控RAID子系统(RAID子系统30A)(步骤13045),主控RAID子系统(RAID子系统30A)再把收到的第二子指令的执行结果作一汇集后再回传给原先收到该第一子指令的RAID子系统(步骤13047)。接着,原先收到第一子指令的RAID子系统把主控RAID子系统(RAID子系统30A)传送过来的汇集结果回传给收到主机指令的RAID子系统(RAID子系统30B)(步骤13049)。然后,RAID子系统30B(收到主机指令的RAID子系统)会等到汇集到所有第一子指令的执行结果后,再把主机指令的执行结果回传给主机10(步骤13037)。举例来说,依据本发明的一实施例,主机指令被RAID子系统30B(收到主机指令的RAID子系统)剖析成一第一子指令1、一第一子指令2、及一第一子指令3,并被分别转送给RAID子系统30A(主控RAID子系统)、RAID子系统30B(从属RAID子系统)、及RAID子系统30C(从属RAID子系统)。其中,RAID子系统30C(从属RAID子系统)判断第一子指令3中的VCSN无效。因此,RAID子系统30C(从属RAID子系统)不会执行其收到的第一子指令3,而是将第一子指令3转递给RAID子系统30A(主控RAID子系统)(如图13B的步骤13039)。RAID子系统30A(主控RAID子系统)会依据存放在其虚拟层302A的一虚拟对实体区段索引映像表(Virtual-to-Physical(V2P)section index mapping table,V2P Table)来处理、拆解第一子指令3成至少一第二子指令3后,并将至少一第二子指令3转送给与其相对应的RAID子系统(例如:RAID子系统30B、RAID子系统30C)(步骤13041)。接着,收到第二子指令3的RAID子系统(例如:RAID子系统30B、RAID子系统30C)执行相对应第二子指令3(步骤13043)。执行完成之后,收到第二子指令3的RAID子系统(例如:RAID子系统30B、RAID子系统30C)把第二子指令3的执行结果回传给RAID子系统30A(主控RAID子系统)(步骤13045),RAID子系统30A(主控RAID子系统)再把收到的第二子指令3的执行结果作一汇集后再回传给收到第一子指令3的RAID子系统30C(步骤13047)。然后,RAID子系统30C再把主控RAID子系统(RAID子系统30A)传送过来的汇集结果回传给RAID子系统30B(收到主机指令的RAID子系统)。此外,因为主机指令是被RAID子系统30B(收到主机指令的RAID子系统)剖析成一第一子指令1、一第一子指令2、及一第一子指令3(步骤13025),因此在此同时,接收到VCSN有效的第一子指令1的RAID子系统30A(主控RAID子系统)与接收到VCSN有效的第一子指令2的RAID子系统30B(从属RAID子系统),也分别执行第一子指令1与第一子指令2(步骤13033),并分别把第一子指令1的执行结果与第一子指令2的执行结果回传给RAID子系统30B(收到主机指令的RAID子系统)(步骤13035)。最后,再由RAID子系统30B(收到主机指令的RAID子系统)把主机指令的执行结果(亦即,汇集第一子指令1的执行结果、第一子指令2的执行结果、与第二子指令3的执行结果)回传给主机10(步骤13037)。
请参阅使用有效性检查序号(VCSN)来实现主机指令有效性验证方法的用以例示本发明第二实施例的图13A与图13C,其中,图13A是本发明的一存储系统架构中,以执行数据访问负载平衡功能的第二实施例的第一部分流程图;图13C是依据本发明的一存储系统架构中,以执行数据访问负载平衡功能的第二实施例的第二部分流程图。由该第二实施例的图13A的第一部分流程与该第二实施例的图13C的第二部分流程结合而成的第二实施例流程,其是本发明的存储系统架构中,执行此数据访问负载平衡功能的第二实施例的流程图,其中,因为第二实施例的第一流程与该第一实施例的第一流程一样且皆使用图13A所例示的流程,因此有关于第二实施例的图13A的第一流程的详细说明可参见上文中有关图13A的说明,于此不再赘述。以下仅对与第一实施例不同的第二实施例的图13C的第二部分流程,加以说明。同样地,在上述的图13A的步骤13025之后,主机指令已被拆解成为N个第一子指令并转递给相对应的RAID子系统进行处理。接下来的处理程序,是通过节点A(图13A与图13C的步骤13027)进入图13C的流程。如上所述,因为有N个第一子指令各别转递给相对应的RAID子系统进行处理,因此可能会有一或多个对应第一子指令的处理程序并行运作,而图13C(步骤13051~步骤13069)所述只是该一或多个对应第一子指令的处理程序的其中之一。当某一RAID子系统收到第一子指令时,收到第一子指令的RAID子系统会处理其所收到的第一子指令(步骤13051),首先判断其所收到的第一子指令所内含的VCSN的有效性(步骤13053)(请参阅图13C)。若是RAID子系统判断其所收到的第一子指令中的VCSN为一有效的VCSN,则RAID子系统会执行其所收到的第一子指令(步骤13055),然后,RAID子系统再把其所收到的第一子指令的执行结果回传给RAID子系统30B(收到主机指令的RAID子系统)(步骤13057),以供RAID子系统30B(收到主机指令的RAID子系统)汇集其收到的第一子指令的执行结果并回传给主机10(步骤13059)。
请再次参阅图13C。相反地,若是步骤13053的判断结果是:RAID子系统所收到的第一子指令中的VCSN为一无效的VCSN,则RAID子系统不会执行其所收到的第一子指令,而是将其所收到的第一子指令转送给主控RAID子系统(RAID子系统30A)(步骤13061)。接着,主控RAID子系统(RAID子系统30A)会依据存放在其虚拟层302A的一虚拟对实体区段索引映像表(Virtual-to-Physical(V2P)section index mapping table,V2P Table)来处理、拆解其所收到的VCSN无效的第一子指令为M个第二子指令,并将M个第二子指令转送给与其相对应的RAID子系统(步骤13063)来执行。在收到第二子指令的RAID子系统执行其所收到的第二子指令(步骤13065)之后,收到第二子指令的RAID子系统回传其第二子指令的执行结果给主控RAID子系统(RAID子系统30A)(步骤13067),主控RAID子系统(RAID子系统30A)再把收到的第二子指令的执行结果作一汇集后再回传给收到主机指令的RAID子系统(RAID子系统30B)(步骤13069),以供收到主机指令的RAID子系统(RAID子系统30B)回传其收到的执行结果给主机10(步骤13059)。举例来说,依据本发明的一实施例,主机指令被该RAID子系统30B(收到主机指令的RAID子系统)剖析成一第一子指令1、一第一子指令2、及一第一子指令3,并被分别转送给RAID子系统30A(主控RAID子系统)、RAID子系统30B(从属RAID子系统)、及RAID子系统30C(从属RAID子系统)。其中,RAID子系统30C(从属RAID子系统)判断第一子指令3中的VCSN无效。因此,RAID子系统30C(从属RAID子系统)不会执行其收到的第一子指令3,而是将第一子指令3转递给RAID子系统30A(主控RAID子系统)(如图13C的步骤13061)。RAID子系统30A(主控RAID子系统)会依据存放在其虚拟层302A的一虚拟对实体区段索引映像表(Virtual-to-Physical(V2P)section index mapping table,V2P Table)来处理、拆解第一子指令3成至少一第二子指令3后,并将至少一第二子指令3转送给与其相对应的RAID子系统(例如:RAID子系统30B)(步骤13063)。接着,收到第二子指令3的RAID子系统(例如:RAID子系统30B)执行第二子指令3(步骤13065)。执行完成之后,收到该第二子指令3的RAID子系统(例如:RAID子系统30B)把第二子指令3的执行结果回传给RAID子系统30A(主控RAID子系统)(步骤13067),RAID子系统30A(主控RAID子系统)再把收到的第二子指令3的执行结果的一汇集结果回传给RAID子系统30B(收到主机指令的RAID子系统)。此外,因为主机指令是被RAID子系统30B(从属RAID子系统)剖析成一第一子指令1、一第一子指令2、及一第一子指令3(步骤13025),因此在此同时,接收到VCSN有效的第一子指令1的RAID子系统30A与接收到VCSN有效的第一子指令2)的RAID子系统30B,也会分别执行第一子指令1与第一子指令2(步骤13055),并分别把第一子指令1的执行结果与第一子指令2的执行结果回传给RAID子系统30B(收到主机指令的RAID子系统)(步骤13057)。最后,再由RAID子系统30B(收到主机指令的RAID子系统)把主机指令的执行结果(亦即,汇集第一子指令1的执行结果、第一子指令2的执行结果、与第二子指令3的执行结果)回传给主机10(步骤13059)。
请参阅使用有效性检查序号(VCSN)来实现主机指令有效性验证方法的用以例示本发明第三实施例的图13A、图13D以及第13E图,其中,图13A是本发明的一存储系统架构中,以执行数据访问负载平衡功能的第三实施例的第一部分流程图;图13D是依据本发明的一存储系统架构中,以执行数据访问负载平衡功能的第三实施例的第二部分流程图;第13E图是依据本发明的一存储系统架构中,以执行数据访问负载平衡功能的第三实施例的第三部分流程图。由图13A所示的第一部分流程、图13D所示的第二部分流程、及第13E图所示的第三部分流程结合而成的第三实施例,其是本发明的存储系统架构中,执行此数据访问负载平衡功能的第三实施例的流程图。其中,因为第三实施例的第一流程与第一实施例的第一流程一样,皆是使用图13A所例示的流程,因此有关于第三实施例的第一流程的详细说明可参见上文中有关图13A的说明,于此不再赘述。以下仅对与第一实施例不同的以图13D表示的第三实施例的第二部分流程及以第13E图表示的第三实施例的第三部分流程,加以说明。在上述的图13A的步骤13025之后,经由节点A(步骤13027)进入图13D的流程。在图13D所示的实施例中,有一或多个各自对应一第一子指令的程序并行运作。步骤13071-1至步骤13071-n标示该一或多个并行运作的程序,其各自对应图13A中拆解出来的N个第一子指令(例如:一第一子指令1、一第一子指令2、…、一第一子指令n)的其中之一。在每一并行运作的程序(步骤13071-1至步骤13071-n)中,相对应的RAID子系统收到该N个第一子指令的其中之一,然后判断其收到的第一子指令所内含的VCSN是否有效;其中,图13D所示的n,其数值等于图13A所示的N的数值。相对应的RAID子系统(亦即,收到该第一子指令1的RAID子系统、收到该第一子指令2的RAID子系统、…,及收到该第一子指令n的RAID子系统)在根据子指令所含的VCSN而判断其所收到的第一子指令中的有效性后,回报其判断结果给收到主机指令的RAID子系统(步骤13071-1至步骤13071-n),以供收到主机指令的RAID子系统判断后续进行步骤(步骤13073)。若在步骤13073中,收到主机指令的RAID子系统通过所有相对应的RAID子系统的回报而判断:N个第一子指令(第一子指令1、第一子指令2、…、第一子指令n)中的VCSN全部有效,则收到主机指令的RAID子系统会通知该些相对应的RAID子系统(亦即,收到第一子指令的RAID子系统)执行与其相对应的第一子指令(步骤13075)。该些收到第一子指令的RAID子系统执行其所收到的第一子指令,并回传其执行执行结果给收到主机指令的RAID子系统(步骤13077)。然后,收到主机指令的RAID子系统汇整N个第一子指令(第一子指令1、第一子指令2、…、第一子指令n)的执行结果成主机指令的执行结果,再回传给主机10(步骤13079)。
请参阅图13D与第13E图。若在步骤13073中,收到主机指令的RAID子系统通过所有相对应的RAID子系统的回报而判断:N个第一子指令(第一子指令1、第一子指令2、…、第一子指令n)中的VCSN至少有一不被判断为有效的VCSN,则会通知每一个相对应的RAID子系统(亦即,收到第一子指令的RAID子系统)不要执行其收到的第一子指令(步骤13081),接着流程通过节点C(步骤13083)进入由第13E图表示的第三实施例的第三部分流程。在上述步骤13081中,由于收到主机指令的RAID子系统通知各个相对应的RAID子系统(亦即,收到第一子指令的RAID子系统)不要执行与其相对应的第一子指令,所以,该些相对应RAID子系统(亦即,收到第一子指令的RAID子系统)全部都不执行其所收到的第一子指令。取而代之,收到主机指令的RAID子系统转送主机指令给相对应虚拟卷VV的主控RAID子系统(该RAID子系统30A)(步骤13085)。主控RAID子系统(该RAID子系统30A)会在拆解主机指令成Q个第三子指令(例如:第三子指令1、第三子指令2、…、第三子指令q)后,转送该Q个第三子指令(例如:第三子指令1、第三子指令2、…、第三子指令q)给相对应的RAID子系统(步骤13087),以供与该Q个第三子指令(例如:第三子指令1、第三子指令2、…、第三子指令q)相对应的RAID子系统(亦即,收到第三子指令的RAID子系统)执行与其相对应的第三子指令(例如:第三子指令1、第三子指令2、…、第三子指令q)(步骤13089);其中,第三子指令中所示的q,其数值等于第13E图所示的Q的数值。接着,该些相对应的RAID子系统(亦即,收到第三子指令的RAID子系统)将其执行结果回传给主控RAID子系统(RAID子系统30A)(步骤13091)。然后,主控RAID子系统(RAID子系统30A)汇集Q个第三子指令(第三子指令1、第三子指令2、…、第三子指令q)的执行结果并回传给收到主机指令的RAID子系统30(步骤13093)。最后,收到主机指令的RAID子系统根据从主控RAID子系统接收到的执行结果,回传该主机指令的执行结果给主机10(步骤13095)。举例来说,依据本发明的一实施例,主机指令被RAID子系统30B接收并剖析成一第一子指令1、一第一子指令2及一第一子指令3,然后分别被转送给RAID子系统30A(主控RAID子系统)、RAID子系统30B(从属RAID子系统)、及RAID子系统30C(从属RAID子系统),以分别供RAID子系统30A、RAID子系统30B、及RAID子系统30C判断第一子指令1、第一子指令2、及第一子指令3中的VCSN是否有效。在此范例中,假设第一子指令3中的VCSN被RAID子系统30C判断为无效,并将此第一子指令3中的VCSN判断为无效的结果回报给RAID子系统30B(收到主机指令的RAID子系统)(步骤13071-1至步骤13071-n)。因此,RAID子系统30B(收到主机指令的RAID子系统)通知所有与第一子指令相对应的RAID子系统30A、30B、30C不要执行其所收到的第一子指令1、第一子指令2、及该第一子指令3(步骤13081)。取而代之,RAID子系统30B(收到主机指令的RAID子系统)转送主机指令给RAID子系统30A(主控RAID子系统)(如第13E图的步骤13085)。RAID子系统30A(主控RAID子系统)依据存放在其虚拟层302A的一虚拟对实体区段索引映像表(V2P Table),将主机指令拆解成一第三子指令1、一第三子指令2及一第三子指令3后,将该三个第三子指令分别转送给RAID子系统30A、RAID子系统30B、及RAID子系统30C(如第13E图的步骤13087)来执行(如第13E图的步骤13089)。RAID子系统30A、RAID子系统30B、及RAID子系统30C分别执行完成该第三子指令1、该第三子指令2、及该第三子指令3后,会把其执行结果(例如:该RAID子系统30B处理该第三子指令2所得到的执行结果)回传给RAID子系统30A(主控RAID子系统)(如第13E图的步骤13091)。而RAID子系统30A(主控RAID子系统)再将所收到的第三子指令1、第三子指令2、及第三子指令3的执行结果回传给RAID子系统30B(亦即,收到指令的RAID子系统)(如第13E图的步骤13093)。最后,该RAID子系统30B(亦即,收到指令的RAID子系统)根据RAID子系统30A(主控RAID子系统)回传的第三子指令执行结果,回传主机指令的执行结果给主机10(如第13E图的步骤13095)。
请参阅使用有效性检查序号(VCSN)来实现主机指令有效性验证方法的用以例示本发明第四实施例的图13A、图13D以及图13F,其中,图13A是本发明的一存储系统架构中,以执行数据访问负载平衡功能的第四实施例的第一部分流程图;图13D是依据本发明的一存储系统架构中,以执行数据访问负载平衡功能的第四实施例的第二部分流程图;图13F是依据本发明的一存储系统架构中,以执行数据访问负载平衡功能的第四实施例的第三部分流程图。由图13A所示的第一部分流程、图13D所示的第二部分流程及图13F所示的第三部分流程结合而成的第四实施例流程,其是本发明的存储系统架构中,执行此数据访问负载平衡功能的该第四实施例的流程图。其中,因为第四实施例的第一流程与第一实施例的第一流程一样皆是使用图13A所例示的流程,又,第四实施例的该第二流程与第三实施例的第二流程一样皆是使用图13D所例示的流程,因此有关第四实施例的第一流程与第二流程的详细说明,可参见上文中有关图13A与图13D的说明,于此不再赘述。以下仅对与第四实施例的第三部分流程的图13F加以说明。请参阅图13D与图13F。在上述图13D的步骤13083之后,经由节点C进入图13F的第四实施例的第三部分流程来执行后续的操作。前述图13D的步骤13081中,RAID子系统30B(收到主机指令的RAID子系统)通知各个相对应的RAID子系统(亦即,收到第一子指令的RAID子系统)不要执行其所收到的第一子指令。此时,RAID子系统30B(收到主机指令的RAID子系统)的OBLB模块40B(或是其它模块)向RAID子系统30A(主控RAID子系统)询问主机指令所欲访问数据的相关数据位置信息(Data Location Information),并借以更新自身OBLB模块40中的数据位置表(DLT)(步骤13097)。之后,通过图13F的节点E(步骤13099)回到图13A(代表第四实施例的第一部分流程)来执行后续的操作。
请参阅使用有效性检查序号(VCSN)来实现主机指令有效性验证方法的用以例示本发明第五实施例的图13A、图13D、第13E图以及图13G,其中,图13A是本发明的一存储系统架构中,以执行数据访问负载平衡功能的第五实施例的第一部分流程图;图13D是依据本发明的一存储系统架构中,以执行数据访问负载平衡功能的第五实施例的第二部分流程图;图13G是依据本发明的一存储系统架构中,以执行数据访问负载平衡功能的第五实施例的第三部分流程图;第13E图是依据本发明的一存储系统架构中,以执行数据访问负载平衡功能的第五实施例的第四部分流程图。由图13A所示的第一部分流程、图13D所示的第二部分流程、图13G所示的第三部分流程、及第13E图所示的该第四部分流程结合而成的第五实施例,其是本发明的存储系统架构中,执行此数据访问负载平衡功能的第五实施例的流程图。其中,因为第五实施例的第一流程与第一实施例的第一流程一样皆是使用图13A所例示的流程,且,第五实施例的第二流程与第三实施例的第二流程一样皆是使用图13D所例示的流程,又,第五实施例的第四流程与第三实施例的第三流程一样且皆使用第13E图所例示的流程,因此有关于第五实施例的第一流程、第五实施例的第二流程、及第五实施例的第四流程的详细说明,可参见上文中有关图13A、图13D、及第13E图的说明,于此不再赘述。以下仅对第五实施例的第三部分流程的图13G加以说明。在第五实施例中,收到主机指令的RAID子系统(RAID子系统30B)更包含有一计数器,用以计算图13D的步骤13081的执行次数。请参阅图13D与图13G。在上述图13D的步骤13083之后,经由节点C进入图13G的第五实施例的第三部分流程来执行后续的操作。于此实施例中,RAID子系统30B(收到主机指令的RAID子系统)将计数器所记录的数值加1(步骤13101),之后跟一数值F进行比较(步骤13103)。若步骤13103的比较结果显示:计数器所记录的数值小于数值F,则RAID子系统30B(收到主机指令的RAID子系统)的OBLB模块40B(或是其它模块)向RAID子系统30A(主控RAID子系统)询问主机指令所欲访问数据的相关数据位置信息(Data Location Information),并借以更新自身OBLB模块40中的数据位置表(DLT)(步骤13105)。之后,通过图13G的节点E(步骤13099)回到图13A(代表第五实施例的第一部分流程)来执行后续的操作。而若步骤13103的比较结果显示:计数器所记录的数值不小于(大于或等于)该数值F,则通过图13G的节点G(步骤13107)进入第13E图(代表第五实施例的第四部分流程)来执行后续的操作。依据本发明的一实施例,该数值F可以为1或是比1还大的任一整数(例如:若F的数值为3,则表示允许执行三次图13D的该步骤13081)。
请参阅使用有效性检查序号(VCSN)来实现主机指令有效性验证方法的用以例示本发明第六实施例的图14及图13B,其中,图14是本发明的一存储系统架构中,以执行数据访问负载平衡功能的第六实施例的第一部分流程图;图13B是依据本发明的一存储系统架构中,以执行数据访问负载平衡功能的第六实施例的第二部分流程图。由图14所示的第一部分流程及图13B所示的第二部分流程结合而成的第六实施例,其是本发明的存储系统架构中,执行此数据访问负载平衡功能的第六实施例的流程图。其中,因为第六实施例的第二流程与第一实施例的第二流程一样且皆使用图13B所例示的流程,因此有关于第六实施例的第二流程的详细说明,可参见上文中有关图13B的说明,于此不再赘述。以下仅对第六实施例的第一部分流程的图14,加以说明。此第六实施例是以该存储系统架构3为例子作说明。依据本发明的一实施例,当RAID子系统30B(收到主机指令的RAID子系统)收到来自于主机10的一主机指令时(例如:SCSI指令)(步骤1401),会先判断该主机指令是否为访问指令(例如:读指令(READ command)、写指令(WRITE command))(步骤1403)。若是该主机指令不为一读写指令(READ/WRITE command),则RAID子系统30B中(收到主机指令的RAID子系统)的OBLB模块40B会将该主机指令转送给RAID子系统30A(主控RAID子系统),由RAID子系统30A(主控RAID子系统)来处理(步骤1405)。接着,RAID子系统30A(主控RAID子系统)会在处理过该主机指令后,回传处理结果给RAID子系统30B(收到主机指令的RAID子系统),再由RAID子系统30B(收到主机指令的RAID子系统)将处理结果通知主机10(步骤1407)。反之,若是该主机指令为一读写指令(READ/WRITE command),则RAID子系统30B(收到主机指令的RAID子系统)中的OBLB模块40B会依据该主机指令来查询其所系属的数据位置表(DLT)(步骤1409),以判断在该数据位置表(DLT)中记录的数据位置信息(Data LocationInformation)是否有与该主机指令相关的地址交互参照信息(步骤1411)。而若RAID子系统30B(收到主机指令的RAID子系统)的数据位置表(DLT)中记录的数据位置信息(DataLocation Information)没有相关于该主机指令的地址交互参照信息时,则RAID子系统30B(收到主机指令的RAID子系统)中的OBLB模块40B(或是其它模块)会向RAID子系统30A(主控RAID子系统)询问地址交互参照信息,以更新自身的数据位置信息(Data LocationInformation)(步骤1413)。然后,RAID子系统30B(收到主机指令的RAID子系统)依据更新后的该数据位置表(DLT)中记录的数据位置信息(Data Location Information)处理、拆解该指令成为P个第一子指令并转送给相对应的RAID子系统(步骤1415)。而若RAID子系统30B(收到主机指令的RAID子系统)的数据位置表(DLT)中记录的数据位置信息(Data LocationInformation)有相关于该主机指令的地址交互参照信息,则RAID子系统30B(收到主机指令的RAID子系统)会直接处理、拆解该指令成为P个第一子指令并转送给相对应的RAID子系统(步骤1415)。接着,承上的步骤1415,经由节点A(步骤13027)来到图13B,以执行图13B中所示的流程。此外,由于第六实施例中的图13B的流程已于前文介绍第一实施例时说明过了,因此不再重复叙述,请参考前文中有关图13B的说明。
请参阅使用有效性检查序号(VCSN)来实现主机指令有效性验证方法的用以例示本发明第七实施例的图14及图13C,其中,图14是本发明的一存储系统架构中,以执行数据访问负载平衡功能的第七实施例的第一部分流程图;图13C是依据本发明的一存储系统架构中,以执行数据访问负载平衡功能的第七实施例的第二部分流程图。由图14所示的第一部分流程及图13C所示的第二部分流程结合而成的第七实施例,其是本发明的存储系统架构中,执行此数据访问负载平衡功能的第七实施例的流程图。其中,因为第七实施例的第一流程与第六实施例的第一流程一样皆是使用图14所例示的流程,又,第七实施例的第二流程与第二实施例的第二流程一样且皆使用图13C所例示的流程,因此有关于第七实施例的第一流程与第二流程的详细说明,可参见上文中有关图14与图13C的说明,于此不再赘述。
请参阅使用有效性检查序号(VCSN)来实现主机指令有效性验证方法的用以例示本发明第八实施例的图14、图13D以及第13E图,其中,图14是本发明的一存储系统架构中,以执行数据访问负载平衡功能的第八实施例的第一部分流程图;图13D是依据本发明的一存储系统架构中,以执行数据访问负载平衡功能的第八实施例的第二部分流程图;第13E图是依据本发明的一存储系统架构中,以执行数据访问负载平衡功能的第八实施例的第三部分流程图。由图14所示的第一部分流程、图13D所示的第二部分流程、及第13E图所示的第三部分流程结合而成的第八实施例,其是本发明的存储系统架构中,执行此数据访问负载平衡功能的第八实施例的流程图。其中,因为第八实施例的第一流程与第六实施例的第一流程一样且皆使用图14所例示的流程,又,第八实施例的第二流程与第三实施例的第二流程一样且皆使用图13D所例示的流程,且,第八实施例的第三流程与第三实施例的第三流程一样皆使用第13E图所例示的流程,因此有关于第八实施例的第一流程、第二流程、与第三流程的详细说明,可参见上文中有关图14、图13D、第13E图的说明,于此不再赘述。
请参阅使用有效性检查序号(VCSN)来实现主机指令有效性验证方法的用以例示本发明第九实施例的图14、图13D以及图13F,其中,图14是本发明的一存储系统架构中,以执行数据访问负载平衡功能的第九实施例的第一部分流程图;图13D是依据本发明的一存储系统架构中,以执行数据访问负载平衡功能的第九实施例的第二部分流程图;图13F是依据本发明的一存储系统架构中,以执行数据访问负载平衡功能的第九实施例的第三部分流程图。由图14所示的第一部分流程、图13D所示的第二部分流程、及图13F所示的第三部分流程结合而成的第九实施例,其是本发明的存储系统架构中,执行此数据访问负载平衡功能的该第九实施例的流程图。其中,因为第九实施例的第一流程与第六实施例的第一流程一样且皆使用图14所例示的流程,又,第九实施例的第二流程与第三实施例的第二流程一样且皆使用图13D所例示的流程,且,第九实施例的该第三流程与第四实施例的第三流程一样且皆使用图13F所例示的流程,因此有关于第九实施例的第一流程、第二流程、与第三流程的详细说明,可参见上文中有关图14、图13D、图13F的说明,于此不再赘述。
请参阅使用有效性检查序号(VCSN)来实现主机指令有效性验证方法的用以例示本发明第十实施例的图14、图13D、第13E图以及图13G,其中,图14是本发明的一存储系统架构中,以执行数据访问负载平衡功能的第十实施例的第一部分流程图;图13D是依据本发明的一存储系统架构中,以执行数据访问负载平衡功能的第十实施例的第二部分流程图;图13G是依据本发明的一存储系统架构中,以执行数据访问负载平衡功能的第十实施例的第三部分流程图;第13E图是依据本发明的一存储系统架构中,以执行数据访问负载平衡功能的第十实施例的第四部分流程图。由图14所示的第一部分流程、图13D所示的第二部分流程、图13G所示的第三部分流程、及第13E图所示的第四部分流程结合而成的第十实施例,其是本发明的存储系统架构中,执行此数据访问负载平衡功能的该第十实施例的流程图。其中,因为第十实施例的第一流程与第六实施例的第一流程一样且皆使用图14所例示的流程,又,第十实施例的第二流程13D与第三实施例的第二流程一样且皆使用图13D所例示的流程,且,第十实施例的该第三流程与第五实施例的第三流程一样皆使用图13G所例示的流程,且,第十实施例的第四流程与第三实施例的第三流程一样且皆使用第13E图所例示的流程,因此有关于第十实施例的第一流程、第二流程、第三流程、及第四流程的详细说明,可参见上文中有关图13A、图13D及第13E图的说明,于此不再赘述。
本发明的第一实施例、第二实施例、第三实施例、第四实施例、第五实施例、第六实施例、第七实施例、第八实施例、第九实施例和第十实施例充分说明了本发明在实施及运用上的弹性。此外,本发明的第一实施例、第二实施例、第三实施例、第四实施例、第五实施例、第六实施例、第七实施例、第八实施例、第九实施例和第十实施例,有关于VCSN有效性检验的操作细节(亦即,该图13B中的步骤13031、该图13C中的步骤13053与该图13D中的步骤13071-1至步骤13071-n),是被记载和详细说明在图15与图16中。
由前述各个实施例可以知道,本发明是使用有效性检查信息(VCI)中的一特定实施方式(例如:有效性检查序号(VCSN))来实现主机指令有效性验证方法的作法。然而,有效性检查信息(VCI)并不仅限于以有效性检查序号(VCSN)来加以实作。举凡能用以识别每一媒体区(ME)的标示方式或命名方式,皆可以作为实作有效性检查信息(VCI)的作法。依据本发明的一实施例,有效性检查信息(VCI)可以以一组英文字母来实作,例如:A、B、C、D、…、Z、AA、AB、…、AZ、BA、…、BZ、CA、…、ZA、ZB、…、ZZ、AAA、AAB、…、AZZ、…、ZZZ、AAAA、…、ZZZZ、AAAAA、…等。依据本发明的另一实施例,有效性检查信息(VCI)可以以一组符号来实作,例如:阿尔法(Alpha,α)、贝塔(Beta,β)、…等。依据本发明的又一实施例,有效性检查信息(VCI)可以以一组数字来实作,例如:有效性检查序号(VCSN)。依据本发明的再一实施例,有效性检查信息(VCI)可以以一组英文字母、一组符号及一组数字中的至少二者的组合排列来加以实作,例如:A0000000、A0000001、A0000002、…、A9999999、B0000000、B0000001、…等,或00000000A、00000001A、00000002A、…、99999999A、00000000B、00000001B、…等,或A000α、A001α、A002α、…、A999α、A000β、A001β、A002β、…、A999β、A000γ、…、A999γ、…、B000α、B001α、…等。因此,一RAID子系统接收到来自主机10的一主机指令,并剖析主机指令成为至少一子指令,且转送给相对应的RAID子系统。该相对应的RAID子系统接收到该至少一子指令中的其一之后,比对其所接收到的子指令中的有效性检查信息(VCI)是否与自身媒体区服务器模块90中的有效性检查信息一致;若为一致,则RAID子系统执行该子指令;而若不一致,则RAID子系统不执行该子指令,且依据图13A-第13E图与图14所例示的执行数据访问负载平衡功能的实施方式来处理。
此外,因为用以识别一媒体区(ME)的有效性检查信息(VCI)(例如,有效性检查序号(VCSN))的标示方式或命名方式的可识别数量是有其限制的,所以必然会因为有限的可识别数量而出现「绕回」(wrap around)的现象,亦即,之前出现过的有效性检查信息(VCI)(例如,有效性检查序号(VCSN))的标示表示/命名表示又再出现一次。举例来说,一4位的有效性检查序号(VCSN)是从0001起算,假设在时间点T0时,一媒体区(ME)的所有LBA所对应的有效性检查序号(VCSN)的最大值为0011,此一数值会随着该媒体区(ME)中的任一LBA数据的搬迁而逐次累加1。而到时间点T1时,该媒体区(ME)中的LBA数据的搬迁次数达到1101次,则该媒体区(ME)的所有LBA所对应的有效性检查序号(VCSN)的最大值会显示为0000。在以上的例子中,在时间点T0时(较早)该媒体区(ME)所对应的有效性检查序号(VCSN)的最大值比在时间点T1时(较晚)的该媒体区(ME)所对应的有效性检查序号(VCSN)的最大值还来得较大,如此当流程进入图15的步骤1501(描述于后)及图16的步骤1603(描述于后)的判断时,可能会发生误判的状况。因此,为了避免因为VCSN的「绕回」现象而在流程中发生误判的情形,在每一虚拟卷VV的主控RAID子系统会赋予一寿命(lifetime)给有效性检查信息(VCI)(例如:VCSN),并由每一虚拟卷VV的主控RAID子系统或从属RAID子系统监控有效性检查信息(VCI)(例如:VCSN)是否在有效寿命(valid lifetime)内。其中,有效寿命可以是一个事先定义的值,而且有效性检查信息(VCI)(例如:VCSN)的寿命的开始时点必须自被发出的时间点开始起算而非从响应收到的时间点起算。倘若主控RAID子系统或从属RAID子系统发现有效性检查信息(VCI)(例如:VCSN)不是在其有效寿命(valid lifetime)内,就将原先有效性检查信息(VCI)(例如:VCSN)视为无效并重新更新有效性检查信息(VCI)(例如:VCSN)。依据本发明的一实施例,在时间点T0时,一媒体区(ME)中的LBA所对应的有效性检查序号(VCSN)以4位表示,且每秒有10个数据搬迁操作,则该媒体区(ME)的LBA所对应的有效性检查序号(VCSN)序号的有效寿命是小于(2**4)/10中的某一值。如此,即可解决因为「绕回」现象而会在图15的步骤1501及图16的步骤1603发生误判的情形。
请参阅图15,其是本发明的存储系统架构的数据访问负载平衡功能中使用有效性检查信息(VCI)的一特定实施方式(例如:有效性检查序号(VCSN))来验证子指令有效性的第一实施例的子指令有效性验证方法的流程图1500。该流程图1500是用以说明图13B中的步骤13031、图13C中的步骤13053、与图13D中的步骤13071-1至步骤13071-n的操作细节。当收到主机指令的RAID子系统(RAID子系统30B)接收到来自主机10的一主机指令时,会依据图13A或图14中所示的流程来加以处理,而将主机指令剖析成一第一子指令1、一第一子指令2、及一第一子指令3,然后将该些第一子指令分别转递给RAID子系统30A(主控RAID子系统)、RAID子系统30B(从属RAID子系统)、及RAID子系统30C(从属RAID子系统)。当RAID子系统30C接收到第一子指令3时,RAID子系统30C的媒体区服务器模块90C会先解读第一子指令3欲访问的相关媒体区(ME)并判断第一子指令3携带的VCSN数值是否小于等于有效性检查序号表14C中相关媒体区(ME)的所有对应VCSN的最大值(步骤1501)。倘若步骤1501的判断结果为否(亦即,第一子指令3携带的VCSN数值不是小于等于有效性检查序号表14C中相关媒体区(ME)的所有对应VCSN的最大值),则表示第一子指令3中的VCSN非为一有效的VCSN,故第一子指令3会被视为一无效指令(步骤1509)。据此,RAID子系统30C(从属RAID子系统)不会执行第一子指令3,然后依照图13B、图13C或图13D所例示的流程的其中的一来处理第一子指令3。倘若步骤1501的判断结果为是(亦即,第一子指令3携带的VCSN数值小于等于有效性检查序号表14C中相关媒体区(ME)的所有对应VCSN的最大值),则再进一步判断:有效性检查序号表14C中具有相关媒体区(ME)的项目中是否有跟第一子指令3中的LBA数值相同的LBA项目(步骤1503)。若步骤1503的判断结果为否(亦即,有效性检查序号表14C中具有相关媒体区(ME)的项目中没有与第一子指令3中的LBA数值相同的LBA项目),则表示与该LBA相对应的数据没有搬动过,因此有效性检查序号表14C中没有记录相关讯息。据此,第一子指令3中的VCSN会被视为一有效的VCSN,故第一子指令3为一有效指令(步骤1507)。据此,RAID子系统30C(从属RAID子系统)会依照图13B、图13C所例示的流程的其中的一而直接执行第一子指令3,或是依照图13D及第13E图所例示的流程的其中的一来对第一子指令3进行后续处理。若步骤1503的判断结果为是(亦即,有效性检查序号表14C中具有相关媒体区(ME)的项目中有与第一子指令3中的LBA数值相同的LBA项目),如此表示与该LBA相对应的数据有搬动过,接下来会更进一步判断:第一子指令3携带的VCSN数值是否大于等于相关媒体区(ME)中该LBA项目所对应的VCSN数值(步骤1505)。若步骤1505的判断结果为是(亦即,第一子指令3携带的VCSN数值大于等于相关媒体区(ME)中该LBA项目所对应的VCSN数值),则第一子指令3中的VCSN会被视为一有效VCSN,故第一子指令3为一有效指令(步骤1507)。据此,该RAID子系统30C会直接执行第一子指令3。反之,若步骤1505的判断结果为否(亦即,第一子指令3携带的VCSN数值不大于等于相关媒体区(ME)中该LBA项目所对应的VCSN数值),则第一子指令3中的VCSN会被视为一无效VCSN,故第一子指令3为一无效指令(步骤1509)。据此,RAID子系统30C不会执行第一子指令3,并将第一子指令3转送给RAID子系统30A(主控RAID子系统)来处理。
请参阅图16,其是本发明的存储系统架构的数据访问负载平衡功能中使用有效性检查序号(VCSN)来验证子指令有效性的第二实施例的子指令有效性验证方法的流程图1600。该流程图1600是用以说明图13B中的步骤13031、图13C中的步骤13053、与图13D中的步骤13071-1至步骤13071-n的操作细节。在本发明的存储系统架构的数据访问负载平衡功能中用以验证子指令有效性的该第二实施例中,考虑由主控RAID子系统30所剖析而得的子指令,一定是正确的子指令。这是因为当主控RAID子系统30(例如:RAID子系统30A)先后分别收到由其他从属RAID子系统30(例如:RAID子系统30B及该RAID子系统30C)转送过来的一主机指令B、一主机指令C时,相关的媒体区(ME)正好在执行数据迁徙作业或是正要开始执行数据迁徙作业,则RAID子系统30A(主控RAID子系统30)会先排序(enqueue)主机指令B、主机指令C,以供后续处理。依据本发明的一实施例,因为RAID子系统30A(主控RAID子系统)先接收到由RAID子系统30B(从属RAID子系统)转送过来的主机指令B,且若RAID子系统30A(主控RAID子系统30)是采用「先进先出」方式(First In First Out,FIFO)处理队列(queue)上等待的指令,如此主机指令B的处理次序会排序(enqueue)在主机指令C之前。当数据迁徙作业执行完毕,RAID子系统30A(主控RAID子系统)依照先前排序(enqueue)的顺序,依序处理主机指令B、主机指令C。因为RAID子系统30A(主控RAID子系统)管控主机指令B、主机指令C所要访问数据的虚拟卷(Virtual Volume,VV)及映像成该虚拟卷(Virtual Volume,VV)的虚拟池(Virtual Pool,VP);也就是说,RAID子系统30A(主控RAID子系统)掌握相关数据的动向,也必定知道主机指令B、主机指令C所要访问数据的虚拟地址与正确实体地址的对应关系。因此,经由RAID子系统30A(主控RAID子系统)所剖析而得的子指令必然是正确无误。据此,于本发明的一实施例,只要是经由主控RAID子系统所剖析而得的子指令,其会被赋予一特权VCSN(privilege VCSN),而特权VCSN被编号为较特殊的保留代码(例如0000、1111但不受限于此),因此,各个RAID子系统30的媒体区服务器模块90会将具有此特权VCSN的子指令直接被视为一有效指令。亦即,当各个RAID子系统30的媒体区服务器模块90收到此具有特权VCSN的子指令时,即可得知此具有特权VCSN的子指令是主控RAID子系统30所剖析且一定为一有效子指令。请参考图16,当RAID子系统30B(从属RAID子系统)接收到来自主机10的一主机指令时,会依据图13A或图14中所示的流程来加以处理,而将主机指令剖析成一第一子指令1、一第一子指令2及一第一子指令3,然后将该些第一子指令分别转递给RAID子系统30A(主控RAID子系统)、RAID子系统30B(从属RAID子系统)、及RAID子系统30C(从属RAID子系统)。接着,当RAID子系统30C接收到第一子指令3时,RAID子系统30C的媒体区服务器模块90C会先判断第一子指令3中的VCSN数值是否为一特权VCSN(步骤1601);若步骤1601的判断结果为是,则第一子指令3为一有效指令(步骤1609);若步骤1601的判断结果为否,再判断第一子指令3携带的VCSN数值是否小于等于有效性检查序号表14C中相关媒体区(ME)的所有对应VCSN的最大值(步骤1603)。倘若步骤1603的判断结果为否(亦即,第一子指令3携带的VCSN数值不是小于等于有效性检查序号表14C中相关媒体区(ME)的所有对应VCSN的最大值),则表示第一子指令3中的VCSN非为一有效的VCSN,故第一子指令3会被视为一无效指令(步骤1611)。据此,RAID子系统30C(从属RAID子系统)不会执行第一子指令3,并将第一子指令3转送给该RAID子系统30A(主控RAID子系统)来处理。倘若步骤1603的判断结果为是(亦即,第一子指令3携带的VCSN数值小于等于该有效性检查序号表14C中相关媒体区(ME)的所有对应VCSN的最大值),则再进一步判断:有效性检查序号表14C中具有相关媒体区(ME)的项目中是否有跟第一子指令3中的LBA数值相同的LBA项目(步骤1605)。若步骤1605的判断结果为否(亦即,有效性检查序号表14C中具有相关媒体区(ME)的项目中没有与第一子指令3中的LBA数值相同的LBA项目),则表示与该LBA相对应的数据没有搬动过,因此有效性检查序号表14C中没有记录相关讯息。据此,第一子指令3中的VCSN会被视为一有效的VCSN,故故第一子指令为一有效指令(步骤1609)。据此,RAID子系统30C(从属RAID子系统)会直接执行第一子指令3。若步骤1605的判断结果为是(亦即,有效性检查序号表14C中具有相关媒体区(ME)的项目中有与第一子指令3中的LBA数值相同的LBA项目),如此表示与该LBA相对应的数据有搬动过,接下来会更进一步判断:第一子指令3携带的VCSN数值是否大于等于相关媒体区(ME)中该LBA项目所对应的VCSN数值(步骤1607)。若步骤1607的判断结果为是(亦即,第一子指令3携带的VCSN数值大于等于相关媒体区(ME)中该LBA项目所对应的VCSN数值),则第一子指令3中的VCSN会被视为一有效VCSN,故第一子指令3为一有效指令(步骤1609)。据此,该RAID子系统30C会直接执行第一子指令3。反之,若步骤1607的判断结果为否(亦即,第一子指令3携带的VCSN数值不大于等于相关媒体区(ME)中该LBA项目所对应的VCSN数值),则第一子指令3中的VCSN会被视为一无效VCSN,故第一子指令3为一无效指令(步骤1611)。据此,RAID子系统30C(从属RAID子系统)不会执行第一子指令3,并将第一子指令3转送给RAID子系统30A(主控RAID子系统)来处理。
请参阅图17、图18及图19A-图19D,其中图17是本发明的存储系统架构的数据访问负载平衡功能的指令转递的第一示意图;图18是本发明的存储系统架构的数据访问负载平衡功能的指令转递的第二示意图;图19A-图19D是用以实现图17所示的该示意图、图18所示的该示意图的数据访问负载平衡功能的使用有效性检查序号(VCSN)来实现主机指令有效性验证方法的数据位置表(DLT)的内部数据变迁的一示意图。于此,在图17所示的该第一示意图、图18所示的该第二示意图中,是以图3的该存储系统架构3为例子作说明。
请参阅图17及图19A,其中图19A显示出每一个RAID子系统的数据位置表(DLT)的所有字段。在本实施例中,以前述的实施例做说明。一刚开始开启(switch on)本发明的所有的RAID子系统时,RAID子系统30A(主控RAID子系统)的OBLB模块40A、RAID子系统30B(从属RAID子系统)的OBLB模块40B及RAID子系统30C(从属RAID子系统)的OBLB模块40C中的数据位置表(例如:RA DLT0、RA DLT1、RA DLT2、RB DLT0、RB DLT1、RB DLT2、RC DLT0、RC DLT1及RC DLT2)皆还未存储有任何的数据位置信息(Data Location Information)(如图19A所示),其中,数据位置表RA DLT0、RA DLT1、RA DLT2、RB DLT0、RB DLT1、RB DLT2、RC DLT0、RCDLT1、RC DLT2是用以让RAID子系统30A(主控RAID子系统)的该OBLB模块40A、RAID子系统30B(从属RAID子系统)的OBLB模块40B及RAID子系统30C(从属RAID子系统)的OBLB模块40C用来分别地存储与该虚拟卷VV0、VV1、VV2中的数据分布状态相关的数据位置信息(DataLocation Information)。
请参阅图17及图19B,其中图19B显示出数据位置表RA DLT0、数据位置表RB DLT0及数据位置表RC DLT0皆未存储有任何与虚拟卷VV0的数据分布状态有关的数据位置信息(Data Location Information)。因此,当RAID子系统30B(从属RAID子系统)中的OBLB模块40B收到来自主机10的一第一主机指令(例如该第一主机指令的虚拟地址/大小为:VV ID=VV0,LBA=0,Size=20000),且判断该第一主机指令为一读写指令后(步骤1303或步骤1403),会依照图13A的步骤1311或图14的步骤1411的流程来判断该数据位置表(DLT)中记录的数据位置信息(Data Location Information)是否有与该第一主机指令相关的地址交互参照信息,以便剖析该第一主机指令。因为数据位置表RB DLT0中记录的数据位置信息(Data Location Information)未有任何与虚拟卷VV0有关的信息,所以RAID子系统30B(从属RAID子系统)中的OBLB模块40B确定无法剖析该第一主机指令。此时,则如图13A的步骤13013所示,通过图3所示的第二信道CH2、交换器15及第一信道CH1,将该第一主机指令转送给与该第一主机指令所系属的该虚拟卷VV0中担任主控角色的RAID子系统30A来处理。因为RAID子系统30A(主控RAID子系统)是担任虚拟卷VV0的主控角色,故在收到该第一主机指令后,有能力将该第一主机指令剖析成一第一子指令1及一第一子指令2,并通过图3所示的第一信道CH1、交换器15、第二信道CH2及第三信道CH3,将该第一子指令1及该第一子指令2分别转递给RAID子系统30B(从属RAID子系统)及RAID子系统30C(从属RAID子系统)来执行(如图13A的步骤13015)。同时,RAID子系统30B(从属RAID子系统)的OBLB模块40B向RAID子系统30A(主控RAID子系统)的虚拟化层302A询问有关于该第一主机指令的地址交互参照信息(VV ID=VV0,LBA=0,Size=20000是对应至RAID ID=RB,ME ID=ME22,LBA=20000,Block Size=10000,VCSN=11及RAID ID=RC,ME ID=ME32,LBA=10000,Block Size=10000,VCSN=02),以更新自身(RAID子系统30B)的数据位置表RB DLT0,包含其中所含的数据位置信息(Data Location Information)。如此,可使本身的数据位置表RB DLT0存储有该第一主机指令的地址交互参照信息以待下一次用,如图19C中的数据位置表RB DLT0所示。尔后,若RAID子系统30B(从属RAID子系统)再接收到来自该主机10的具有相同虚拟位置的一读写指令时,RAID子系统30B(从属RAID子系统)的OBLB模块40B即可通过更新后的数据位置表RB DLT0中的数据位置信息(Data Location Information),如图19C所示,直接拆解该读写指令成为一或多个读写子指令,并转送该些读写子指令给对应的RAID子系统来执行而不需要再交由RAID子系统30A(主控RAID子系统)来处理。接着,请参阅图18。当RAID子系统30A(主控RAID子系统)的OBLB模块40A接收到来自主机10的一第二主机指令(例如该第二主机指令的虚拟地址/大小为:VV ID=VV0,LBA=20000,Size=30000),且判断该第二主机指令为一读写指令(步骤1303或步骤1403),则依照图13A的步骤1311或图14的步骤1411的流程来判断是否有剖析该第二主机指令的能力。不过于此时,由于RAID子系统30A(主控RAID子系统)的数据位置表RA DLT0中记录的数据位置信息(Data Location Information)未有与该第二主机指令(VV ID=VV0,LBA=20000,Size=30000)相关的信息(请参考图19C),故如图13A的步骤13013所示,RAID子系统30A(主控RAID子系统)的OBLB模块40A会将该第二主机指令直接地交给与该第二主机指令所系属的该虚拟卷VV0中担任主控角色的主控RAID子系统的虚拟化层(亦即,RAID子系统30A的虚拟化层302A),由其进行后续的处理。也就是,因为RAID子系统30A(主控RAID子系统)在虚拟卷VV0中担任主控角色,故在收到该第二主机指令后,有能力将该第二主机指令剖析成一第二子指令1、一第二子指令2及一第二子指令3,并通过图3所示的第一信道CH1、交换器15、第二信道CH2及第三信道CH3,将该第二子指令1、该第二子指令2及该第二子指令3分别转递给RAID子系统30A(主控RAID子系统)、RAID子系统30B(从属RAID子系统)及RAID子系统30C(从属RAID子系统)来执行(如图13A的步骤13015)。
然后,RAID子系统30A(主控RAID子系统)的OBLB模块40A会向RAID子系统30A(主控RAID子系统)的虚拟化层302A询问与该第二主机指令(VV ID=VV0,LBA=20000,Size=30000)相关的地址交互参照信息(VV ID=VV0,LBA=20000,Size=30000是对应至RAID ID=RA,ME ID=ME11,LBA=07000,Block Size=10000,VCSN=07、RAID ID=RB,ME ID=ME21,LBA=20000,Block Size=10000,VCSN=52及RAID ID=RC,ME ID=ME31,LBA=30000,Block Size=10000,VCSN=31)。之后,即根据询问到的地址交互参照信息更新本身的数据位置表RA DLT0中记录的数据位置信息(Data Location Information),如图19D中的数据位置表RA DLT0所示。之后,如果RAID子系统30A的OBLB模块40A再接收到来自主机10的具有相同虚拟位置的另一读写指令时,则RAID子系统30A(主控RAID子系统)的OBLB模块40A就可以通过更新后的数据位置表RA DLT0中记录的数据位置信息(Data LocationInformation),直接拆解该读写指令成一或多个读写子指令,并直接转送该些读写子指令给对应的RAID子系统来执行,而不需要再交由RAID子系统30A(主控RAID子系统)的该虚拟化层302A处理。
此外,图19A-图19D的所有的该数据位置表(DLTs)中VCSN字段,是可选择的(optional),可以视需要而移除。以图19D为例,移除该数据位置表RA DLT0中的VCSN字段、该数据位置表RB DLT0中的VCSN字段及该数据位置表RC DLT0中的VCSN字段后,即如图22所示。也就是说,图19A-图19D和图22之间的不同,是在于图22的所有的DLT皆不包含有VCSN字段,故有关于图22的详细说明,请参考图19A-图19D,在此不再多做说明。因此,图22是本发明的存储系统架构的用以实现数据访问负载平衡功能的数据位置表的第五实施例和第六实施例的示意图。
请参阅图20和图22,其是本发明的存储系统架构中,执行此数据访问负载平衡功能的第十一实施例的流程图,其中前述第一至第十实施例与第十一实施例之间主要不同是:在第十一实施例中,所有的数据位置表(DLTs)中没有VCSN字段,即不考虑验证VCSN值的有效性,如图22所示。于此,同样以该存储系统架构3为例子做说明。请参考图20,当RAID子系统30B(收到主机指令的RAID子系统且为一从属RAID子系统)收到来自于主机10的一主机指令时(例如:SCSI指令)(步骤2001),会先判断该主机指令是否为访问指令(例如:读指令(READ command)、写指令(WRITE command))(步骤2003)。若在步骤2003中,判断该主机指令不是一读写指令,则RAID子系统30B(收到主机指令的RAID子系统)中的OBLB模块40B会将该主机指令转送给RAID子系统30A(主控RAID子系统),由RAID子系统30A(主控RAID子系统)来进一步处理(步骤2005)。接着,RAID子系统30A(主控RAID子系统)会在处理过该主机指令后,回传处理结果给RAID子系统30B(收到主机指令的RAID子系统),再由RAID子系统30B(收到主机指令的RAID子系统)将处理结果通知该主机10(步骤2007)。而若在步骤2003中,判断该主机指令为一读写指令(READ/WRITE command),则该RAID子系统30B(收到主机指令的RAID子系统)中的OBLB模块40B会依据该主机指令来查询其所系属的数据位置表(DLT)(步骤2009),以判断在该数据位置表(DLT)中记录的数据位置信息(Data LocationInformation)是否有与该主机指令相关的信息(步骤2011)。
若RAID子系统30B(收到主机指令的RAID子系统)的数据位置表(DLT)中记录的数据位置信息(Data Location Information)没有与该主机指令相关的信息,则RAID子系统30B(收到主机指令的RAID子系统)会将该主机指令转送给RAID子系统30A(主控RAID子系统),再由RAID子系统30A(主控RAID子系统)进一步处理(步骤2013),同时,因为RAID子系统30B(收到主机指令的RAID子系统)的数据位置表(DLT)中记录的数据位置信息(DataLocation Information)没有与该主机指令相关的信息,所以RAID子系统30B(收到主机指令的RAID子系统)中的OBLB模块40B会向RAID子系统30A(主控RAID子系统)询问地址交互参照信息以更新自身的信息(例如:数据位置信息(Data Location Information))(步骤2013)。然后,RAID子系统30A(主控RAID子系统)依据存放在该虚拟层302A的一V2P表来拆解该主机指令成为一或多个子指令并转送给相对应的RAID子系统(步骤2015)来执行该一个或多个子指令(步骤2017)。之后,所有相对应的RAID子系统回传执行结果给RAID子系统30A(主控RAID子系统)(步骤2017),再由RAID子系统30A(主控RAID子系统)回传执行结果给RAID子系统30B(收到主机指令的RAID子系统)(步骤2019),再由RAID子系统30B(收到主机指令的RAID子系统)将执行结果回传给该主机10(步骤2027)。
反之,若RAID子系统30B(收到主机指令的RAID子系统)的数据位置表(DLT)中记录的数据位置信息(Data Location Information)有与该主机指令相关的信息,则RAID子系统30B(收到主机指令的RAID子系统)的OBLB模块40B会根据相关本身的数据位置信息(DataLocation Information)来剖析(parse)该主机指令成为一或多个子指令(例如:子指令1、子指令2、…、子指令n),之后,再转递该些子指令给相对应的RAID子系统(步骤2021)。所有相对应的RAID子系统在收到与其相关的子指令后,会直接执行与其相关的子指令(步骤2023),并将执行结果回传给RAID子系统30B(收到主机指令的RAID子系统)(步骤2025)。最后,由RAID子系统30B(收到主机指令的RAID子系统)汇总该些子指令的执行结果为一主执行结果,并将该主执行结果回传给主机10(步骤2027)
请参阅图21和图22,其是本发明的存储系统架构中,执行此数据访问负载平衡功能的第十二实施例的流程图,其中前述第一至第十实施例与第十二实施例之间主要不同是:在本实施例中,所有的数据位置表(DLT)中没有VCSN字段,即不考虑验证VCSN值的有效性。于此,同样以该存储系统架构3为例子作说明。请参考图21,当该RAID子系统30B(收到主机指令的RAID子系统且为一从属RAID子系统)收到来自于主机10的一主机指令时(例如:SCSI指令)(步骤2101),会先判断该主机指令是否为访问指令(例如:读指令(READcommand)、写指令(WRITE command))(步骤2103)。若在步骤2103中,判断该主机指令不为一读写指令,则该RAID子系统30B(收到主机指令的RAID子系统)中的OBLB模块40B会将该主机指令转送给RAID子系统30A(主控RAID子系统),由RAID子系统30A(主控RAID子系统)来处理(步骤2105)。接着,RAID子系统30A(主控RAID子系统)会在处理过该主机指令后,回传处理结果给RAID子系统30B(收到主机指令的RAID子系统),再由RAID子系统30B(收到主机指令的RAID子系统)将处理结果通知主机10(步骤2107)。而若在步骤2103中,判断该主机指令为一读写指令(READ/WRITE command),则RAID子系统30B(收到主机指令的RAID子系统)中的OBLB模块40B会依据该主机指令来查询其所系属的数据位置表(DLT)(步骤2109),以判断在其数据位置表(DLT)中记录的数据位置信息(Data Location Information)是否有与该主机指令相关的信息(步骤2111)。
若RAID子系统30B(收到主机指令的RAID子系统)的数据位置表(DLT)中记录的数据位置信息(Data Location Information)没有与该主机指令相关的信息,则RAID子系统30B(收到主机指令的RAID子系统)中的OBLB模块40B会向RAID子系统30A(主控RAID子系统)询问地址交互参照信息,以更新自身的信息(例如:数据位置信息(Data LocationInformation))(步骤2119)。然后,RAID子系统30B(收到主机指令的RAID子系统)依据其更新后的数据位置表(DLT)中记录的数据位置信息(Data Location Information)来处理、拆解该主机指令成为一或多个子指令并转送给相对应的RAID子系统(步骤2113)来执行该一个或多个子指令(步骤2115)。之后,所有的相对应的RAID子系统回传该些子指令的执行结果给RAID子系统30B(收到主机指令的RAID子系统),再由RAID子系统30B(收到主机指令的RAID子系统)汇总该些子指令的执行结果为一主执行结果,并回传该主执行结果给该主机10(步骤2117)。反之,若RAID子系统30B(收到主机指令的RAID子系统)中的OBLB模块40B的数据位置表(DLT)中记录的数据位置信息(Data Location Information)存储有与该主机指令相关的信息,则RAID子系统30B(收到主机指令的RAID子系统)依据其数据位置表(DLT)中记录的数据位置信息(Data Location Information)来直接处理、拆解该主机指令成为一或多个子指令并转送给相对应的RAID子系统(步骤2113)来执行该一或多个子指令(步骤2115)。之后,相对应的RAID子系统回传该一或多个子指令的执行结果给RAID子系统30B(收到主机指令的RAID子系统),再由RAID子系统30B(收到主机指令的RAID子系统)汇总该一或多个子指令的执行结果为一主执行结果,并回传该主执行结果给该主机10(步骤2117)。
综上所述,本发明的RAID子系统机载的多平台兼容模块,提供了一数据访问负载平衡功能,用以针对与该些RAID子系统连接的主机所发出的一或多个主机指令,平均分配该些主机指令于该些RAID子系统上的负载外。此外,由于本发明是利用RAID子系统机载的多平台兼容模块的机载特性,不仅无需安装任何用以呈现上述功能的相关软件、韧体于与该些RAID子系统连接的主机上,也无需依据与该些RAID子系统连接的主机的作业平台来开发兼容的软件、韧体。因此,无庸置疑地,本发明的RAID子系统机载的多平台兼容模块提供了一可跨平台、可迅速开发且不限定安装在主机端的一数据访问负载平衡功能。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (40)

1.一种访问数据的方法,用于访问一存储系统架构中的数据,该存储系统架构包含有复数个数据存储子系统,其特征在于,该方法包含下列步骤:
提供一机载多平台兼容模块于该复数个数据存储子系统中的每一数据存储子系统;
该复数个数据存储子系统中的一数据存储子系统接收来自于一主机的一主机指令;
收到该主机指令的该数据存储子系统判断是否能依据自身的该机载多平台兼容模块的一数据位置信息来解析该主机指令;以及
当收到该主机指令的该数据存储子系统能够依据自身的该机载多平台兼容模块的该数据位置信息来解析该主机指令时,更包含有下列步骤:
收到该主机指令的该数据存储子系统依据自身的该机载多平台兼容模块的该数据位置信息解析该主机指令成至少一第一子指令;
收到该主机指令的该数据存储子系统传送该至少一第一子指令给该复数个数据存储子系统中与该至少一第一子指令相关连的至少一第一数据存储子系统;
该至少一第一数据存储子系统各自执行与其相关连的该至少一第一子指令;
该至少一第一数据存储子系统回传其执行该至少一第一子指令后的至少一第一执行子结果给收到该主机指令的该数据存储子系统;
收到该主机指令的该数据存储子系统汇集来自于该至少一第一数据存储子系统的该至少一第一执行子结果;以及
收到该主机指令的该数据存储子系统回传一主执行结果给该主机,其中该主执行结果包含有来自于该至少一第一数据存储子系统的该至少一第一执行子结果。
2.如权利要求1所述的方法,其特征在于,当收到该主机指令的该数据存储子系统不能够依据自身的该机载多平台兼容模块的该数据位置信息来解析该主机指令时,该方法更包含有下列步骤:
收到该主机指令的该数据存储子系统传送该主机指令给一主控数据存储子系统;
该主控数据存储子系统解析该主机指令成至少一第二子指令,并传送该至少一第二子指令给与该至少一第二子指令相关连的该复数个数据存储子系统中的至少一第二数据存储子系统;
该至少一第二数据存储子系统各自执行与其相关连的该至少一第二子指令;
该至少一第二数据存储子系统回传其执行该至少一第二子指令后的至少一第二执行子结果给该主控数据存储子系统;
该主控数据存储子系统汇集来自于该至少一第二数据存储子系统的该至少一第二执行子结果;
该主控数据存储子系统回传一主执行结果给收到该主机指令的该数据存储子系统,其中该主执行结果包含有该至少一第二执行子结果;以及
收到该主机指令的该数据存储子系统回传该主执行结果给该主机。
3.如权利要求2所述的方法,其特征在于,该方法更包含有下列步骤:收到该主机指令的该数据存储子系统向该主控数据存储子系统询问一信息,以更新自身的该机载多平台兼容模块的该数据位置信息。
4.如权利要求3所述的方法,其特征在于,来自于该主控数据存储子系统的该信息是一地址交互参照信息。
5.如权利要求1所述的方法,其特征在于,当收到该主机指令的该数据存储子系统不能够依据自身的该机载多平台兼容模块的该数据位置信息来解析该主机指令时,该方法更包含有下列步骤:
收到该主机指令的该数据存储子系统向一主控数据存储子系统询问一信息,以更新自身的该机载多平台兼容模块的该数据位置信息;
收到该主机指令的该数据存储子系统依据向该主控数据存储子系统询问而得的该信息,更新自身的该机载多平台兼容模块的该数据位置信息;
收到该主机指令的该数据存储子系统依据自身的该机载多平台兼容模块更新后的该数据位置信息,解析该主机指令成至少一第三子指令,并传送该至少一第三子指令给该复数个数据存储子系统中与该至少一第三子指令相关连的至少一第三数据存储子系统;
该至少一第三数据存储子系统各自执行与其相关连的该至少一第三子指令;
该至少一第三数据存储子系统回传其执行该至少一第三子指令后的至少一第三执行子结果给收到该主机指令的该数据存储子系统;
收到该主机指令的该数据存储子系统汇集来自于该至少一第三数据存储子系统的该至少一第三执行子结果;以及
收到该主机指令的该数据存储子系统回传一主执行结果给该主机,其中该主执行结果包含有该至少一第三执行子结果。
6.如权利要求1所述的方法,其特征在于,该方法更包含有下列步骤:该复数个数据存储子系统中的一主控数据存储子系统规律地或依需要,更新该复数个数据存储子系统的每一数据存储子系统的该机载多平台兼容模块的该数据位置信息。
7.如权利要求1所述的方法,其特征在于,该数据位置信息包含有:一虚拟卷标识符、一虚拟逻辑区块地址、一数据大小、一磁盘阵列标识符、一媒体区标识符、一实体逻辑区块地址及一区块数量。
8.一种访问数据的方法,用于访问一存储系统架构中的数据,该存储系统架构包含复数个数据存储子系统,其特征在于,该方法包含下列步骤:
提供一机载多平台兼容模块于该复数个数据存储子系统中的每一数据存储子系统;
该复数个数据存储子系统中的一数据存储子系统接收来自于一主机的一主机指令;
收到该主机指令的该数据存储子系统判断是否能依据自身的该机载多平台兼容模块的一数据位置信息来解析该主机指令;以及
当收到该主机指令的该数据存储子系统能够依据自身的该机载多平台兼容模块的该数据位置信息来解析该主机指令时,更包含有下列步骤:
收到该主机指令的该数据存储子系统依据自身的该机载多平台兼容模块的该数据位置信息解析该主机指令成至少一第一子指令;
收到该主机指令的该数据存储子系统传送该至少一第一子指令给该复数个数据存储子系统中与该至少一第一子指令相关连的至少一第一数据存储子系统;
该至少一第一数据存储子系统中的每一第一数据存储子系统判断其接收到的该第一子指令中的一有效性检查信息是否为有效;
当其接收到的该第一子指令中的该有效性检查信息被判断为有效时,更包含有下列步骤:
收到有效第一子指令的该至少一第一数据存储子系统中的一第一数据存储子系统执行该有效第一子指令;
收到有效第一子指令的该第一数据存储子系统回传一第一执行子结果给收到该主机指令的该数据存储子系统;
收到该主机指令的该数据存储子系统汇集来自于该至少一第一数据存储子系统中的该第一数据存储子系统回传的该第一执行子结果;以及
收到该主机指令的该数据存储子系统回传一主执行结果给该主机,其中该主执行结果包含有该第一执行子结果。
9.如权利要求8所述的方法,其特征在于,该有效性检查信息是为一有效性检查序号。
10.如权利要求8所述的方法,其特征在于,当其接收到的该第一子指令中的该有效性检查信息被判断为无效时,该方法更包含有下列步骤:
收到无效第一子指令的该至少一第一数据存储子系统中的一第一数据存储子系统,传送该无效第一子指令给一主控数据存储子系统;以及
该主控数据存储子系统处理来自于该至少一第一数据存储子系统中的该第一数据存储子系统的该无效第一子指令。
11.如权利要求10所述的方法,其特征在于,该无效第一子指令的该有效性检查信息会无效的原因,是起因于一数据迁移作业或一快照作业。
12.如权利要求10所述的方法,其特征在于,该主控数据存储子系统处理来自于该至少一第一数据存储子系统中的该第一数据存储子系统的该无效第一子指令的步骤,更包含有下列步骤:
该主控数据存储子系统解析该无效第一子指令成至少一第四子指令;
该主控数据存储子系统传送该至少一第四子指令给与该至少一第四子指令相关连的该复数个数据存储子系统中的至少一第四数据存储子系统;
该至少一第四数据存储子系统各自执行与其相关连的该至少一第四子指令;
该至少一第四数据存储子系统回传其执行该至少一第四子指令后的至少一第四执行子结果给该主控数据存储子系统,以响应该至少一第四子指令;以及
该主控数据存储子系统汇集来自于该至少一第四数据存储子系统的该至少一第四执行子结果为该无效第一子指令的一执行结果。
13.如权利要求12所述的方法,其特征在于,该方法更包含有下列步骤:
该主控数据存储子系统回传该无效第一子指令的该执行结果给收到该主机指令的该数据存储子系统;以及
收到该主机指令的该数据存储子系统回传该主执行结果给该主机,其中该主执行结果包含有该无效第一子指令的该执行结果。
14.如权利要求12所述的方法,其特征在于,该方法更包含有下列步骤:
该主控数据存储子系统回传该无效第一子指令的该执行结果给收到该无效第一子指令的该第一数据存储子系统;
收到该无效第一子指令的该第一数据存储子系统回传该无效第一子指令的该执行结果给收到该主机指令的该数据存储子系统;以及
收到该主机指令的该数据存储子系统回传该主执行结果给该主机,其中该主执行结果包含有该无效第一子指令的该执行结果。
15.如权利要求12所述的方法,其特征在于,该方法更包含有下列步骤:
该主控数据存储子系统回传该无效第一子指令的该执行结果给收到该主机指令的该数据存储子系统;
收到该主机指令的该数据存储子系统汇集来自于收到该有效第一子指令的该第一数据存储子系统的该第一执行子结果以及来自于收到该无效第一子指令的该主控数据存储子系统的该无效第一子指令的该执行结果;以及
收到该主机指令的该数据存储子系统回传该主执行结果给该主机,其中该主执行结果包含有该有效第一子指令的该第一执行子结果与该无效第一子指令的该执行结果。
16.如权利要求12所述的方法,其特征在于,该方法更包含有下列步骤:
该主控数据存储子系统回传该无效第一子指令的该执行结果给收到该无效第一子指令的该第一数据存储子系统;
收到该无效第一子指令的该第一数据存储子系统回传该无效第一子指令的该执行结果给收到该主机指令的该数据存储子系统;
收到该主机指令的该数据存储子系统汇集来自于收到该有效第一子指令的该第一数据存储子系统的该第一执行子结果以及来自于收到该无效第一子指令的该第一数据存储子系统的该无效第一子指令的该执行结果;以及
收到该主机指令的该数据存储子系统回传该主执行结果给该主机,其中该主执行结果包含有该有效第一子指令的该第一执行子结果跟该无效第一子指令的该执行结果。
17.如权利要求8所述的方法,其特征在于,该方法更包含有下列步骤:
收到该至少一第一子指令的该至少一第一数据存储子系统通知收到该主机指令的该数据存储子系统,其所收到的第一子指令的有效性检查信息是为有效或无效。
18.如权利要求8所述的方法,其特征在于,该方法更包含有下列步骤:
当该至少一第一子指令中的一第一子指令的该有效性检查信息被判断为有效时,收到该主机指令的该数据存储子系统通知收到该有效第一子指令的该第一数据存储子系统,执行其收到的该有效第一子指令;以及
当该至少一第一子指令中的一第一子指令的该有效性检查信息被判断为无效时,收到该主机指令的该数据存储子系统通知收到该无效第一子指令的该第一数据存储子系统,不执行其收到的该无效第一子指令。
19.如权利要求8所述的方法,其特征在于,当该至少一第一子指令的任一的该有效性检查信息被判断为无效时,该方法更包含有下列步骤:
收到该主机指令的该数据存储子系统通知收到该至少一第一子指令的该至少一第一数据存储子系统,不要执行其所收到的该至少一第一子指令;
收到该主机指令的该数据存储子系统传送该主机指令给一主控数据存储子系统;
该主控数据存储子系统解析该主机指令成至少一第五子指令,并传送该至少一第五子指令给该复数个数据存储子系统中与该至少一第五子指令相关连的至少一第五数据存储子系统;
该至少一第五数据存储子系统各自执行与其相关连的该至少一第五子指令,以得到相对应于该至少一第五子指令的至少一第五执行子结果,并回传该至少一第五执行子结果给该主控数据存储子系统;
该主控数据存储子系统汇集来自于该至少一第五数据存储子系统的该至少一第五执行子结果;
该主控数据存储子系统回传该至少一第五执行子结果给收到该主机指令的该数据存储子系统;以及
收到该主机指令的该数据存储子系统回传一主执行结果给该主机,其中该主执行结果包含有该至少一第五执行子结果。
20.如权利要求19所述的方法,其特征在于,该无效第一子指令的该有效性检查信息会无效的原因,是起因于一数据迁移作业或一快照作业。
21.如权利要求8所述的方法,其特征在于,当该至少一第一子指令的任一的该有效性检查信息被判断为无效时,该方法更包含有下列步骤:
收到该主机指令的该数据存储子系统通知收到该至少一第一子指令的该至少一第一数据存储子系统,不要执行其所收到的该至少一第一子指令;
收到该主机指令的该数据存储子系统向一主控数据存储子系统询问一信息,以更新自身的该机载多平台兼容模块的该数据位置信息;
收到该主机指令的该数据存储子系统依据向该主控数据存储子系统询问而得的该信息,更新自身的该机载多平台兼容模块的该数据位置信息;
收到该主机指令的该数据存储子系统依据自身的该机载多平台兼容模块更新后的数据位置信息,解析该主机指令成至少一第六子指令,并传送该至少一第六子指令给该复数个数据存储子系统中与该至少一第六子指令相关连的至少一第六数据存储子系统;
当该至少一第六子指令的该有效性检查信息被判断为有效时,该至少一第六数据存储子系统执行该至少一第六子指令,以得到至少一第六执行子结果;
该至少一第六数据存储子系统回传执行该至少一第六子指令后的该至少一第六执行子结果给收到该主机指令的该数据存储子系统;
收到该主机指令的该数据存储子系统汇集来自于该至少一第六数据存储子系统的该至少一第六执行子结果;以及
收到该主机指令的该数据存储子系统回传一主执行结果给该主机,其中该主执行结果包含有该至少一第六执行子结果。
22.如权利要求8所述的方法,其特征在于,当该至少一第一子指令的任一的该有效性检查信息被判断为无效时,该方法更包含有下列步骤:
收到该主机指令的该数据存储子系统通知收到该至少一第一子指令的该至少一第一数据存储子系统,不要执行其所收到的该至少一第一子指令;
收到该主机指令的该数据存储子系统向一主控数据存储子系统询问一信息,以更新自身的该机载多平台兼容模块的该数据位置信息;
收到该主机指令的该数据存储子系统依据向该主控数据存储子系统询问而得的该信息,更新自身的该机载多平台兼容模块的该数据位置信息;
收到该主机指令的该数据存储子系统依据自身的该机载多平台兼容模块更新后的数据位置信息,解析该主机指令成至少一第六子指令,并传送该至少一第六子指令给该复数个数据存储子系统中与该至少一第六子指令相关的至少一第六数据存储子系统;
当该至少一第六子指令的任一的该有效性检查信息被判断为无效时,收到该主机指令的该数据存储子系统传送该主机指令给该主控数据存储子系统;
该主控数据存储子系统解析该主机指令成至少一第七子指令,并传送该至少一第七子指令给该复数个数据存储子系统中与该至少一第七子指令相关连的至少一第七数据存储子系统;
该至少一第七数据存储子系统执行该至少一第七子指令以得到至少一第七执行子结果,并回传执行该至少一第七子指令后的该至少一第七执行子结果给该主控数据存储子系统;
该主控数据存储子系统汇集来自于该至少一第七数据存储子系统的该至少一第七执行子结果;
该主控数据存储子系统回传该至少一第七执行子结果给收到该主机指令的该数据存储子系统;以及
收到该主机指令的该数据存储子系统回传一主执行结果给该主机,其中该主执行结果包含有该至少一第七执行子结果。
23.如权利要求22所述的方法,其特征在于,该无效第一子指令的该有效性检查信息会无效的原因,是起因于一数据迁移作业或一快照作业。
24.如权利要求21所述的方法,其特征在于,来自于该主控数据存储子系统的该信息是一地址交互参照信息。
25.如权利要求22所述的方法,其特征在于,来自于该主控数据存储子系统的该信息是一地址交互参照信息。
26.如权利要求8所述的方法,其特征在于,该数据位置信息包含有:一虚拟卷标识符、一虚拟逻辑区块地址、一数据大小、一磁盘阵列标识符、一媒体区标识符、一实体逻辑区块地址、一区块数量及该有效性检查信息。
27.一种用于访问数据的存储系统架构,其特征在于,该存储系统架构包含有复数个数据存储子系统,且该复数个数据存储子系统耦接于一主机,以接收来自于该主机的一主机指令,该存储系统架构包含有:
一冗余磁盘阵列层,提供于该复数个数据存储子系统中的每一数据存储子系统,用以将复数个实体存储组件映像成复数个媒体区;
一虚拟化模块,提供于该复数个数据存储子系统中的至少一数据存储子系统,用以将该复数个媒体区形成一虚拟池,该虚拟池产生一或多个虚拟卷并呈现给该主机;
一机载多平台兼容模块,提供于该复数个数据存储子系统中的每一数据存储子系统,用以提供一数据访问接口给该主机,其中该机载多平台兼容模块包含有一数据位置信息,用以剖析来自于该主机的该主机指令成至少一子指令;以及
一媒体区服务器模块,提供于该复数个数据存储子系统中的每一数据存储子系统,用以接收该至少一子指令以及判断该至少一子指令的有效性;
其中,该复数个数据存储子系统中的一数据存储子系统接收并剖析来自于该主机的该主机指令成该至少一子指令,并传送该至少一子指令给相关连的一或多个第一数据存储子系统执行该至少一子指令。
28.如权利要求27所述的存储系统架构,其特征在于,该机载多平台兼容模块更包含有:分别对应于该一或多个虚拟卷的一或多个数据位置表,用以存储对应于该一或多个虚拟卷的该数据位置信息。
29.如权利要求27所述的存储系统架构,其特征在于,该复数个数据存储子系统中的该数据存储子系统包含有该虚拟化模块而为一主控数据存储子系统,用以管理该一或多个虚拟卷。
30.如权利要求27所述的存储系统架构,其特征在于,该虚拟化模块、该机载多平台兼容模块以及该媒体区服务器模块是三个独立模块。
31.如权利要求27所述的存储系统架构,其特征在于,该机载多平台兼容模块是被整合于该虚拟化模块中。
32.如权利要求27所述的存储系统架构,其特征在于,该媒体区服务器模块是被整合于该虚拟化模块中。
33.如权利要求27所述的存储系统架构,其中该媒体区服务器模块是被整合于该机载多平台兼容模块中。
34.如权利要求27所述的存储系统架构,其特征在于,该虚拟化模块、该机载多平台兼容模块以及该媒体区服务器模块是被整合于一相同的模块中。
35.如权利要求27所述的存储系统架构,其特征在于,该媒体区服务器模块包含有一或多个数据位置有效性表,该一或多个数据位置有效性表用以判断该至少一子指令的有效性检查信息是有效或无效。
36.如权利要求35所述的存储系统架构,其特征在于,该一或多个数据位置有效性表是分别对应于该一或多个虚拟卷。
37.如权利要求35所述的存储系统架构,其特征在于,该有效性检查信息是为一有效性检查序号。
38.如权利要求27所述的存储系统架构,其特征在于,接收该主机指令的该数据存储子系统不同于该一或多个第一数据存储子系统中的任一第一数据存储子系统。
39.如权利要求27所述的存储系统架构,其特征在于,接收该主机指令的该数据存储子系统是包含于该一或多个第一数据存储子系统中。
40.如权利要求27所述的存储系统架构,其特征在于,该主机指令的一执行结果是经由接收该主机指令的该数据存储子系统回传给该主机,该执行结果是为该至少一子指令的至少一执行子结果的汇集。
CN201910926136.8A 2018-09-28 2019-09-27 存储系统架构及其访问数据的方法 Active CN110703995B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862737926P 2018-09-28 2018-09-28
US62/737,926 2018-09-28

Publications (2)

Publication Number Publication Date
CN110703995A CN110703995A (zh) 2020-01-17
CN110703995B true CN110703995B (zh) 2023-05-16

Family

ID=69196786

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910926136.8A Active CN110703995B (zh) 2018-09-28 2019-09-27 存储系统架构及其访问数据的方法

Country Status (3)

Country Link
US (1) US11061604B2 (zh)
CN (1) CN110703995B (zh)
TW (1) TWI710909B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11734131B2 (en) * 2020-04-09 2023-08-22 Micron Technology, Inc. Memory device having redundant media management capabilities
CN113849344B (zh) * 2021-09-23 2023-09-01 苏州浪潮智能科技有限公司 卷快照创建方法、装置和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6353878B1 (en) * 1998-08-13 2002-03-05 Emc Corporation Remote control of backup media in a secondary storage subsystem through access to a primary storage subsystem
WO2009088709A2 (en) * 2008-01-02 2009-07-16 Sandisk Il Ltd. Storage device having direct user access
EP2211263A2 (en) * 2009-01-23 2010-07-28 Infortrend Technology, Inc. Storage subsystem and storage system architecture performing storage virtualization and method thereof

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108684A (en) * 1996-12-23 2000-08-22 Lsi Logic Corporation Methods and apparatus for balancing loads on a storage subsystem among a plurality of controllers
US7814293B2 (en) * 2004-07-19 2010-10-12 Infotrend Technology Inc. Redundant controller host-side IO rerouting
US7389393B1 (en) * 2004-10-21 2008-06-17 Symantec Operating Corporation System and method for write forwarding in a storage environment employing distributed virtualization
TW200627170A (en) 2005-01-25 2006-08-01 Sunplus Technology Co Ltd Control system for storage device
EP2140662A2 (en) * 2007-04-30 2010-01-06 Netapp, Inc. Method and apparatus for offloading network processes in a computer storage system
CN104166441B (zh) 2010-06-18 2018-05-11 希捷科技有限公司 可扩展存储装置
US8832372B2 (en) * 2012-05-24 2014-09-09 Netapp, Inc. Network storage systems having clustered raids for improved redundancy and load balancing
US9489293B2 (en) 2012-08-17 2016-11-08 Netapp, Inc. Techniques for opportunistic data storage
US9037799B2 (en) 2013-02-11 2015-05-19 Avago Technologies General Ip (Singapore) Pte Ltd Rebuild of redundant secondary storage cache
US10372492B2 (en) * 2013-12-11 2019-08-06 Dropbox, Inc. Job-processing systems and methods with inferred dependencies between jobs
US10261690B1 (en) * 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6353878B1 (en) * 1998-08-13 2002-03-05 Emc Corporation Remote control of backup media in a secondary storage subsystem through access to a primary storage subsystem
WO2009088709A2 (en) * 2008-01-02 2009-07-16 Sandisk Il Ltd. Storage device having direct user access
EP2211263A2 (en) * 2009-01-23 2010-07-28 Infortrend Technology, Inc. Storage subsystem and storage system architecture performing storage virtualization and method thereof

Also Published As

Publication number Publication date
CN110703995A (zh) 2020-01-17
US11061604B2 (en) 2021-07-13
TW202018521A (zh) 2020-05-16
TWI710909B (zh) 2020-11-21
US20200272354A1 (en) 2020-08-27

Similar Documents

Publication Publication Date Title
US10853274B2 (en) Primary data storage system with data tiering
US20210117083A1 (en) Primary Data Storage System with Quality of Service
US7461196B2 (en) Computer system having an expansion device for virtualizing a migration source logical unit
US20200019516A1 (en) Primary Data Storage System with Staged Deduplication
US8214615B2 (en) Control method of device in storage system for virtualization
US9329795B2 (en) Logical volume transfer method and storage network system
JP4749140B2 (ja) データマイグレーション方法及びシステム
US20070220204A1 (en) Computer system for controlling allocation of physical links and method thereof
US20050216692A1 (en) Storage system
JP2010086049A (ja) 管理計算機及びその運用方法
US20160253122A1 (en) Storage system including multiple storage apparatuses and pool virtualization method
CN110703995B (zh) 存储系统架构及其访问数据的方法
US11474730B1 (en) Storage system and migration method of 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
GR01 Patent grant
GR01 Patent grant