CN105393207A - 共享贮存系统、以及控制向贮存装置的访问的方法 - Google Patents
共享贮存系统、以及控制向贮存装置的访问的方法 Download PDFInfo
- Publication number
- CN105393207A CN105393207A CN201480001251.XA CN201480001251A CN105393207A CN 105393207 A CN105393207 A CN 105393207A CN 201480001251 A CN201480001251 A CN 201480001251A CN 105393207 A CN105393207 A CN 105393207A
- Authority
- CN
- China
- Prior art keywords
- master server
- logical block
- storage facility
- server
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2064—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2058—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using more than 2 mirrored copies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0653—Configuration or reconfiguration with centralised address assignment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/855—Details of asynchronous mirroring using a journal to transfer not-yet-mirrored changes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
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
技术领域
本发明的实施方式涉及共享贮存系统、以及控制向贮存装置的访问的方法。
背景技术
近年来,共享贮存(storage)系统的开发正在盛行。共享贮存系统作为多个贮存装置被多个主服务器共享的贮存系统而公知。这样的共享贮存系统一般具备管理服务器。管理服务器对共享贮存系统整体进行管理。
在共享贮存系统中,采用逻辑单元。逻辑单元也被称为逻辑卷(LogicalVolume)或者逻辑盘,具有逻辑性存储区域。逻辑性存储区域内的任意存储位置由虚拟地址指定。逻辑性存储区域与多个贮存装置的至少一个物理性的存储区域的至少一部分建立对应。管理服务器为了按共享贮存系统内的每个逻辑单元来管理虚拟地址与贮存装置的实地址的对应,按该逻辑单元的每一个来保持地址管理信息(例如,地址管理表)。
这里,设共享贮存系统内的主服务器访问自身配备的(自身被提供的)逻辑单元内的目标存储位置。该情况下,主服务器向管理服务器查询与目标存储位置的虚拟地址建立了对应的贮存装置内的存储位置的地址(即实地址)以及该贮存装置(更详细而言为该贮存装置的识别符)。即,主服务器在访问逻辑单元内的目标存储位置时,为了知晓与该目标存储位置建立了对应的贮存装置的存储位置而访问管理服务器。这样的向管理服务器的访问在共享贮存系统内的其他的各个主服务器想要访问逻辑单元内的目标存储位置的情况下也会发生。
现有技术文献
专利文献
专利文献1:日本特开2010-233190号公报
发明内容
发明要解决的课题
如上述那样,共享贮存系统内的多个主服务器在访问对该多个主服务器分别提供的逻辑单元内的目标存储位置时,有必要访问管理服务器。在这样的共享贮存系统中,从多个主服务器向管理服务器的访问的集中成为共享贮存系统整体的性能提高的瓶颈。即,即便共享贮存系统的例如主服务器的数量、或者贮存装置的数量(或存储容量)增加,由于向管理服务器的访问进一步集中,所以难以获得与这样的增加相称的系统性能。
鉴于此,为了消除向管理服务器的访问的集中,可考虑以下那样的构成。所述构成是共享贮存系统内的多个主服务器分别具有该管理服务器中保持的地址管理信息的拷贝的构成。根据这样的构成,多个服务器的每一个能够基于自身所具有的地址管理信息的拷贝来取得与目标存储位置的虚拟地址建立了对应的实地址。即,多个服务器的每一个能够不需要向管理服务器的查询地访问目标存储位置。
但是,在上述的构成中,例如在地址管理信息根据第一主服务器的数据更新而被更新的情况下,难以在第一主服务器与其他主服务器之间使地址管理信息一致。
本发明想要解决的课题在于,提供一种尽管应用多个主服务器分别具有管理服务器中保持的地址管理信息的拷贝的构成,但能够不需要进行在主服务器间使地址管理信息一致的处理的共享贮存系统、以及控制向贮存装置的访问的方法。
用于解决课题的方法
根据实施方式,共享贮存系统具备多个主服务器、多个贮存装置、管理服务器、和交换机。多个贮存装置被所述多个主服务器共享。所述管理服务器向所述多个主服务器提供被分配所述多个贮存装置的至少一部分的存储区域的多个逻辑单元。所述交换机将所述多个主服务器、所述多个贮存装置以及所述管理服务器连接。所述管理服务器对所述多个逻辑单元的每一个使用第一地址管理信息来管理所述多个逻辑单元各自的虚拟地址、该虚拟地址被分配的贮存装置的实地址、与表示该贮存装置的贮存识别符的对应,且使用第一修订数据来管理所述第一地址管理信息的修订。所述多个主服务器的每一个保持与由所述管理服务器提供的逻辑单元对应的所述第一地址管理信息以及所述第一修订数据各自的拷贝即第二地址管理信息以及第二修订数据。所述多个主服务器的每一个在访问第一逻辑单元的第一虚拟地址的情况下,从与所述第一逻辑单元对应的所述第二地址管理信息取得与所述第一虚拟地址建立了对应的第一实地址以及第一贮存识别符。所述多个主服务器的每一个还使用表示所述第一逻辑单元的第一逻辑单元识别符、所述第一实地址、以及与所述第一逻辑单元对应的所述第二修订数据,对由所述第一贮存识别符表示的贮存装置请求访问。所述多个贮存装置的每一个至少保持包括与被分配了所述多个贮存装置各自的存储区域的逻辑单元建立了对应的第三修订数据的更新管理信息。所述第三修订数据表示根据对应的所述第一地址管理信息的更新而由所述管理服务器通知的所述对应的第一地址管理信息的修订。在使用所述第一逻辑单元识别符、所述第一实地址、以及所述第二修订数据从所述多个主服务器之一的第一主服务器请求了访问的情况下,所述多个贮存装置的每一个至少以所述第二修订数据与所述第一逻辑单元识别符所表示的所述第一逻辑单元所对应的所述第三修订数据一致为条件,来基于所述第一实地址执行被请求的访问。
附图说明
图1是表示一个实施方式涉及的共享贮存系统的典型的构成的框图。
图2是表示逻辑单元的逻辑性存储区域与两个贮存装置的物理性存储区域的对应的例子的概念图。
图3是表示图1所示的管理信息的数据结构的例子的图。
图4是表示该实施方式中的读访问处理的典型的步骤的流程图。
图5是表示图1所示的地址管理表的数据结构的例子的图。
图6是表示该实施方式中应用的指令的典型的格式的图。
图7是表示该实施方式中的写访问处理的典型的步骤的流程图。
图8是表示图7所示的写访问处理中包含的地址管理表更新处理的典型的步骤的流程图。
图9是用于对地址管理表更新处理进行说明的图。
图10是表示该实施方式中的管理服务器停机时的访问处理的典型的步骤的流程图。
图11是用于对管理服务器停机时的访问处理进行说明的图。
具体实施方式
以下,参照附图对各种实施方式进行说明。
图1是表示一个实施方式涉及的共享贮存系统的典型的构成的框图。图1所示的共享贮存系统具备多个贮存装置(例如,两个贮存装置11a以及11b)、多个主服务器(例如,三个主服务器12a、12b以及12c)、和管理服务器13。这样,在本实施方式中,共享贮存系统具备两个贮存装置11a以及11b。但是,共享贮存系统也可以具备超过两个的贮存装置。另外,在本实施方式中,共享贮存系统具备三个主服务器12a、12b以及12c。但是,共享贮存系统也可以具备两个贮存装置或者超过三个的贮存装置。
主服务器12a、12b以及12c分别具备主机总线适配器(HBA)120a、120b以及120c。HBA120a、120b以及120c也被称为主控制器,将主服务器12a、12b以及12c与其他的网络设备或者贮存装置连接。
贮存装置11a以及11b、主服务器12a、12b以及12c(更详细而言为主服务器12a、12b以及12c的HBA120a、120b以及120c)、和管理服务器13经由如交换集线器(网络交换机)那样的交换机14而连接。通过该连接,可构建包括贮存装置11a以及11b、主服务器12a、12b以及12c、和管理服务器13的网络(共享贮存系统),贮存装置11a以及11c被主服务器12a、12b以及12c共享。
在本实施方式中,服务器12a、12b、12c以及13是分别独立的计算机。但是,主服务器12a、12b以及12c的至少两个也可以在一个计算机上动作。另外,主服务器12a、12b以及12c的至少一个与管理服务器13也可以在一个计算机上动作。
贮存装置11a以及11b的存储区域(即,物理性存储区域)的一部分被分配给例如逻辑单元LU0至LU3(图2)的存储区域(即,逻辑性存储区域)的一部分。图2是表示逻辑单元LU0至LU3的存储区域与贮存装置11a以及11b的存储区域的对应的例子的概念图。在本实施方式中,贮存装置11a以及11b分别采用硬盘驱动器(HDD)阵列构成。若更详细叙述,则贮存装置11a是由具备多个硬盘驱动器(HDD)的RAID(RedundantArraysofInexpensiveDisks或者RedundantArraysofIndependentDisks)构成的贮存装置。同样,贮存装置11b也是具备多个HDD的RAID构成的贮存装置。此外,贮存装置11a以及11b的至少一个也可以采用HDD以外的存储装置的阵列(例如闪存阵列)来构成,另外,贮存装置11a以及11b并不一定需要具有阵列构成。
在图2的例子中,逻辑单元LU0至LU3各自的存储区域的一部分与贮存装置11a的存储区域的一部分建立对应。另外,逻辑单元LU0至LU3各自的存储区域的其他的一部分与贮存装置11b的存储区域的一部分建立对应。但是,也可以是逻辑单元LU0、LU1、LU2或者LU3的存储区域整体仅与贮存装置11a或者11b的任意一方的存储区域的至少一部分建立对应。
这里,设能够利用(识别)逻辑单元LUi(i为0、1、2或者3)的主服务器12j(j为a,b或者c)访问逻辑单元LUi内的目标存储位置(以下称为第一存储位置)。该情况下,主服务器12j有必要知晓(识别)与第一存储位置建立了对应的贮存装置11k(k为a或者b)内的存储位置(以下称为第二存储位置)、和该贮存装置11k。
第一存储位置的地址被称为虚拟地址,第二存储位置的地址被称为实地址。在本实施方式中,为了进行管理,逻辑单元LUi的存储区域以及贮存装置11k的存储区域被分割成称为区块(更详细而言为虚拟区块以及实区块)的一定尺寸(第一尺寸)的小区域。即,逻辑单元LUi以及贮存装置11k分别具备多个虚拟区块以及多个实区块。因此,在本实施方式中,分别使用虚拟区块地址(VBA)以及实区块地址(RBA)作为虚拟地址以及实地址。其中,虚拟区块地址以及实区块地址分别也被称为逻辑区块地址以及物理区块地址。
再次参照图1。管理服务器13构建逻辑单元,且将构建成的逻辑单元提供给主服务器12a、12b以及12c的至少一个。在本实施方式中,管理服务器13构件逻辑单元LU0至LU3。另外,管理服务器13将逻辑单元LU0提供给主服务器12a以及12c,将逻辑单元LU1提供给主服务器12a以及12b。管理服务器13还将逻辑单元LU2提供给主服务器12c,将逻辑单元LU3提供给主服务器12b。即,主服务器12a配备逻辑单元LU0以及LU1。主服务器12b配备逻辑单元LU1以及LU3,主服务器12c配备逻辑单元LU0以及LU2。
管理服务器13保持为了管理逻辑单元LU0至LU3而使用的管理信息130。若更详细叙述,则管理信息130被储存在管理服务器13所具有的本地存储装置。在本实施方式中,该本地存储装置是非易失性的存储装置、例如闪存那样的非易失性存储器或者如HDD那样的盘存储装置。
管理信息130包括与逻辑单元LU0至LU3分别对应的地址管理表(以下称为AM表)134_LU0至134_LU3。AM表(第一地址管理信息)134_LUi(i=0、1、2、3)具有对与逻辑单元LUi的每个虚拟区块地址对应的地址管理数据进行保持的条目(entry)。该条目(地址管理数据)如在后面详细叙述那样,包括逻辑单元编号(LUN)字段、虚拟区块地址字段、贮存识别符(ID)字段以及实区块地址字段的组。
管理信息130还包括修订数据(revisiondata)(第一修订数据)135_LU0至135_LU3。修订数据135_LU0至135_LU3表示与逻辑单元LU0至LU3分别对应的AM表134_LU0至134_LU3的修订。在本实施方式中,修订数据135_LU0至135_LU3包括表示AM表134_LU0至134_LU3的修订的修订编号(RN)。在图1的例子中,AM表134_LU0、134_LU1、134_LU2以及134_LU3的修订(rev.)分别为01(rev.01)、02(rev.02)、04(rev.04)以及02(rev.02)。在本实施方式中,修订数据135_LU0至135_LU3被附加于各自对应的AM表134_LU0至134_LU3。
主服务器12a、12b以及12c保持包含在由管理服务器13保持的管理信息130中、且与自身配备的(即,自身能够识别的)逻辑单元对应的AM表的拷贝。在本实施方式中,主服务器12a保持作为AM表(第一地址管理信息)134_LU0以及134_LU1的拷贝的AM表(第二地址管理信息)124a_LU0以及124a_LU1。主服务器12b保持作为AM表(第一地址管理信息)134_LU1以及134_LU3的拷贝的AM表(第二地址管理信息)124b_LU1以及124b_LU3。主服务器12c保持作为AM表(第一地址管理信息)134_LU0以及134_LU2的拷贝的AM表(第二地址管理信息)124c_LU0以及124c_LU2。
另外,主服务器12a保持对AM表124a_LU0以及124a_LU1的修订(修订编号)进行表示的修订数据(第二修订数据)125a_LU0以及125a_LU1。主服务器12b保持对AM表124b_LU1以及124b_LU3的修订进行表示的修订数据(第二修订数据)125b_LU1以及125b_LU3。主服务器12c保持对AM表124c_LU0以及124c_LU2的修订进行表示的修订数据(第二修订数据)125c_LU0以及125c_LU2。
在本实施方式中,AM表124a_LU0以及124a_LU1与修订数据125a_LU0以及125a_LU1被储存在主服务器12a的HBA120a所具有的本地存储装置。在本实施方式中,该本地存储装置是非易失性的存储装置、例如闪存那样的非易失性存储器。同样,AM表124b_LU1以及124b_LU3、和修订数据125b_LU1以及125b_LU3被储存在主服务器12b的HBA120b所具有的本地存储装置。同样,AM表124c_LU0以及124c_LU2与修订数据125c_LU0以及125c_LU2被储存在主服务器12c的HBA120c所具有的本地存储装置。不过,在图1中从制图的角度出发,AM表以及修订数据被配置在HBA的外侧。
贮存装置11a以及11b分别保持更新管理表(以下称为UM表)110a以及110b。在本实施方式中,UM表(更新管理信息)110a以及110b被储存在贮存装置11a以及11b各自的控制器所具有的本地存储装置。该本地存储装置是非易失性的存储装置、例如闪存那样的非易失性存储器或者HDD那样的盘存储装置。
UM表110a以及110b至少按被分配了贮存装置11a以及11b的物理性存储区域的一部分的每一个逻辑单元LUi(这里,i=0、1、2、3),具有保持对应的更新管理数据的条目。该条目(更新管理数据)包括逻辑单元编号(LUN)字段、修订编号(RN)字段以及更新服务器ID字段的组。LUN字段被用于保持与更新管理数据对应的逻辑单元LUi的逻辑单元编号。逻辑单元编号作为逻辑单元LUi的识别符被使用。RN字段被用于保持对与更新管理数据所对应的逻辑单元LUi相关的AM表134_LUi的最新的修订进行表示的信息(第三修订数据)、例如被用于保持修订编号。更新服务器ID字段被用于保持向管理服务器13请求了对与更新管理数据所对应的逻辑单元LUi相关的AM表134_LUi的修订进行更新的主服务器的ID(即,更新服务器ID)。通过管理服务器13基于由更新服务器ID表示的主服务器的请求来更新AM表134_LUi的修订,结果,更新后的AM表134_LUi的修订编号被保持于RN字段。即,更新管理数据的LUN字段保持与更新管理数据对应的逻辑单元LUi的逻辑单元编号,更新管理数据的更新服务器ID字段保持请求了与更新管理数据所对应的逻辑单元LUi相关的AM表134_LUi的修订的更新的主服务器的ID,更新管理数据的RN字段保持更新后的AM表134_LUi的修订编号。
图3表示图1所示的管理信息130的数据结构的例子。管理信息130由指针列表131、指针表132_0至132_3、与逻辑单元LU0至LU3对应的主服务器列表133_LU0至133_LU3、与逻辑单元LU0至LU3对应的AM表134_LU0至134_LU3、与逻辑单元LU0至LU3对应的修订数据构成。在图3中,从制图的角度出发,仅表示了与逻辑单元LU0以及LU1对应的主服务器列表、AM表以及修订数据。即,在图3中,虽然表示了主服务器列表133_LU0以及133_LU1、AM表134_LU0以及134_LU1、修订数据135_LU0以及135_LU1,但省略了与逻辑单元LU2以及L31对应的主服务器列表、AM表以及修订数据。
指针列表131由第一要素、和第二要素的排列构成。第一要素例如是指针列表131的开头的要素,包括表示第二要素的数量的列表管理数据N_LU。在本实施方式中,列表管理数据N_LU表示与管理服务器13管理的(由管理服务器13提供的)逻辑单元LU0至LU3的数量一致的4(N_LU=4)。第二要素的排列包括由列表管理数据N_LU表示的数量的指针PP_LU0至PP_LU3。即,在指针列表131中保持列表管理数据N_LU以及指针PP_LU0至PP_LU3。
指针PP_LU0至PP_LU3与逻辑单元LU0至LU3对应,分别示出指针表132_0至132_3。在指针表132_0至132_3中保持指针(主服务器列表指针)HSLP_LU0至HSLP_LU3以及指针(AM表指针)AMTP_LU0至AMTP_LU3。
指针HSLP_U0至HSLP_LU3示出主服务器列表133_LU0至133_LU3。指针AMTP_LU0至AMTP_LU3示出AM表134_LU0至134_LU3(以及修订数据135_LU0至135_LU3)。不过,在图3中,从制图的角度出发,省略了主服务器列表133_LU2以及133_LU3、AM表134_LU2以及134_LU3(以及修订数据135_LU2以及135_LU3)。
主服务器列表133_LUi(i=0、1、2、3)由第三要素、和第四要素的排列构成。第三要素例如是主服务器列表133_LUi的开头的要素,包括表示第四要素的数量的列表管理数据N_HS。第四要素的排列包括由列表管理数据N_HS表示的数量(j)的主服务器的ID(主服务器ID)。主服务器列表133_LUi中保持的j个主服务器ID指定被提供(配备)逻辑单元LUi的j个主服务器。在本实施方式中,例如逻辑单元LU0被提供给主服务器12a以及12c,逻辑单元LU1被提供给主服务器12a以及12b。这里,主服务器12a、12b以及12c的主服务器ID为HSIDa、HSIDb以及HSIDc。该情况下,在主服务器列表133_LU0中保持HSIDa以及HSIDc,在主服务器列表133_LU1中保持HSIDa以及HSIDb。此外,虽然在图3中被省略,但在主服务器列表133_LU2中保持HSIDc,在主服务器列表133_LU3中保持HSIDb。
接下来,参照图4以读访问处理为例来对本实施方式的动作进行说明。图4是表示读访问处理的典型的步骤的流程图。在图4中,表示流程图的各步骤的图形(矩形或者菱形的图形)内记载的被赋予下划线的字符串表示对应的步骤的动作的主体。这在图7、8以及10所示的后述的流程图中也同样。
当前,例如在主服务器12a中产生了向逻辑单元LU0的读访问的请求。于是,主服务器12a(更详细而言是主服务器12a的HBA120a)根据自身所保持的AM表134_LU0的拷贝(即AM表124a_LU0)来生成读指令,并将该读指令发放给贮存装置(步骤S1)。
图5表示AM表134_LUi(i=0、1、2、3)的数据结构的例子。AM表134_LUi具有对与逻辑单元LUi的每个虚拟区块地址对应的地址管理数据进行保持的条目。该条目(地址管理数据)包括逻辑单元编号(LUN)字段、虚拟区块地址字段、贮存ID字段以及实区块地址字段的组。
LUN字段被用于保持对应的逻辑单元LUi所固有的编号、即逻辑单元编号(LUN=LUNi)。虚拟区块地址字段被用于保持对应的逻辑单元LUi内的虚拟区块地址(VBA)。贮存ID字段被用于保持包括由对应的虚拟区块地址被分配的实区块地址指定的存储位置的贮存装置的ID、即贮存ID(SID)。实区块地址字段被用于保持对应的虚拟区块地址(VBA)被分配的实区块地址(RBA)。AM表134_LUi的拷贝的数据结构也与图5所示的该AM表134_LUi的拷贝的数据结构相同。
在图5所示的AM表134_LUi的情况下,例如逻辑单元LUi的虚拟区块地址VBA0、VBA1以及VBA2被分配贮存ID为SIDa的贮存装置的实区块地址RBA0、RBA1以及RBA2。SIDa表示贮存装置11a的贮存ID。另外,设图5所示的AM表134_LUi是AM表134_LU0(i=0),主服务器12a内的AM表124a_LU0是该AM表134_LUi(134_LU0)的拷贝。并且,在主服务器12a中产生的读访问请求表示从逻辑单元LU0的虚拟区块地址VBA0开始的数据读取。
该情况下,主服务器12a基于逻辑单元LU0的虚拟区块地址VBA0和AM表124a_LU0,来决定实际(物理上)应该访问的贮存装置的ID(贮存ID)以及实区块地址。这里,决定贮存装置11a的ID(SIDa)以及实区块地址RBA0。另外,主服务器12a基于修订数据125a_LU0来确定AM表124a_LU0的修订(即,自身识别的AM表134_LU0的修订)。这里,确定修订01(RN=01)。
因此,在步骤S1中,主服务器12a将指定从贮存装置11a内的实区块地址RBA0开始的数据读取的读指令发放给该贮存装置11a。该读指令包括如上述那样决定的实区块地址RBA0。另外,读指令包括表示如上述那样确定出的修订01的修订编号(RN=01)。
即,读指令被用于除了应该访问的地址之外,还将为了取得该地址而使用的AM表124a_LU0的修订编号向贮存装置11a通知。使用该读指令向贮存装置11a通知的修订编号指定发放该读指令的主服务器12a所识别的AM表134_LU0的修订编号。该读指令例如可使用命令描述符(CDB)。CDB由小型计算机系统接口(SCSI)定义。
图6表示在本实施方式中应用的指令(CDB)的典型的格式。如图6所示,在本实施方式中,使用12字节的CDB。12字节的CDB的开头字节(第0字节)被用于保持操作码。操作码由3比特(上位)的组码和5比特(下位)的指令码构成。在组码为6或者7(即,组6或者7)的情况下,对应的CDB是供应商(vendor))固有定义的CDB,一般是6或者10字节CDB。本实施方式将该定义扩展,将在10字节CDB之后追加了2字节的12字节CDB定义为扩展了的组7的CDB(以下称为扩展CDB)。
扩展CDB的第一字节的上位3比特被用于保持逻辑单元编号(LUN)。扩展CDB的第二至第五字节被用于保持实区块地址。一般CDB的第二至第五字节被用于保持逻辑区块地址。即,在本实施方式所应用的扩展CDB的第二至第五字节中取代逻辑区块地址而保持实区块地址。在上述的例子中,该实区块地址采用基于逻辑单元LU0的虚拟区块地址VBA0和AM表124a_LU0而决定的实区块地址RBA0。扩展CDB的第二至第五字节中保持的实区块地址表示被转送的数据区块的开头位置(开头实区块地址)。扩展CDB的第6字节被作为备用。扩展CDB的第7以及第8字节用于保持被转送的数据区块的数量(即,转送数据长)。扩展CDB的第9以及第10字节被用于保持表示AM表的修订的信息(例如RN)。该RN(修订编号)是在扩展CDB中新定义的信息。这样,在本实施方式中,扩展CDB(指令)中包括AM表的RN(修订信息)。扩展CDB的第11字节(最终字节)被用于保持控制字节。
贮存装置11a若接收到由主服务器12a发放的读指令,则判定能够正常执行该接收读指令所指定的读动作。即,贮存装置11a判定与接收读指令相关的状态是否是良好(good)(步骤S2)。
以下,对步骤S2中的判定的详细情况进行说明。首先,贮存装置11a如下述那样取得与接收到的读指令中包含的逻辑单元编号LUN所表示的逻辑单元对应的最新的AM表的修订编号(RN)。贮存装置11a基于接收到的读指令中包含的逻辑单元编号LUN(这里,LUN=LUN0),来参照UM表110a。然后,贮存装置11a从与逻辑单元编号LUN(LUN0)建立了对应的UM表110a内的条目取得修订编号(RN)。在逻辑单元编号LUN为LUN0的本实施方式中,取得最新的AM表134_LU0的修订编号。
接着,贮存装置11a将接收读指令中包含的修订编号与所取得的修订编号(即,最新的AM表134_LU0的修订编号)进行比较。然后,贮存装置11a基于上述的两个修订编号是否一致、且由接收到的读指令指定的数据读取能够正常执行,来判定与该读指令的执行相关的状态是否良好(步骤S2)。
如果良好(步骤S2的“是”),则作为针对来自主服务器12a的读指令的响应,贮存装置11a将公知的良好状态(即,使用状态字节构成的良好状态)送回到该主服务器12a(步骤S3)。然后,贮存装置11a执行由读指令指定的读动作(步骤S4)。
与此相对,设与读指令的执行相关的状态不良好(步骤S2的“否”),并且其主要因素是修订的不一致(步骤S5的“是”)。该情况下,作为针对来自主服务器12a的读指令的响应,贮存装置11a将表示修订不一致的错误状态送回到该主服务器12a(步骤S6)。在本实施方式中,表示修订不一致的错误状态(错误状态字节)例如使用“11000”那样的没有以通常的状态字节定义的模式(pattern)(即,被定义为备用的模式)来实现。
若接收到表示修订不一致的错误状态,则主服务器12a从管理服务器13取得与逻辑单元LU0相关的最新的AM表134_LU0的拷贝,并将该拷贝保持为最新的AM表124a_LU0(步骤S7)。即,主服务器12a以从管理服务器13取得的AM表134_LU0的拷贝将自身保持的AM表124a_LU0更新。对AM表134_LU0赋予修订数据135_LU0。因此,主服务器12a通过取得AM表134_LU0的拷贝,也取得修订数据135_LU0的拷贝。由此,主服务器12a在将AM表124a_LU0更新为最新的内容的同时,将修订数据125a_LU0也更新为表示最新的修订编号。
接着,主服务器12a返回到步骤S1,根据最新的AM表124a_LU0(即,最新的AM表134_LU0的拷贝)重新生成读指令。在步骤S1中,主服务器12a对贮存装置11a发放重新生成的读指令。
另一方面,设与读指令的执行相关的状态不良好(步骤S2的“否”),并且其主要因素不是修订的不一致(步骤S5的“否”)。作为这样的错误,例如可举出读指令中包括贮存装置11a不能识别的实区块地址的情况。在这样的错误的情况下,贮存装置11a与现有技术同样地执行对应的错误处理(步骤S8)。
根据本实施方式,由主服务器12a对贮存装置11a发放的指令中包括该主服务器12a保持的AM表124_LU0的RN(修订编号)。由此,主服务器12a能够不使用特别的协议地将该主服务器12a保持的AM表124_LU0(AM表134_LU0的拷贝)的修订与访问的请求同时通知给贮存装置11a。
贮存装置11a在接收到由主服务器12a发放的读指令的情况下,能够将该读指令所含有的修订编号与该贮存装置11a保持的修订编号进行比较。即,贮存装置11a能够基于读指令来判定该读指令的发放源(主服务器12a)所保持的AM表124_LU0(AM表134_LU0的拷贝)是否是最新。根据本实施方式,不需要用于使该判定成为可能的特别的访问,为此的开销也不会增加。另外,根据本实施方式,通过贮存装置中的上述的判定的导入,能够不需要将管理服务器13保持的AM表134_LU0的拷贝分发给全部的主服务器的处理。
可知在主服务器12b以及12c中产生了向逻辑单元访问的请求的情况下也同样能够获得上述的实施方式的效果。另外,根据本实施方式,由于主服务器保持AM表的拷贝,所以不需要每当产生向逻辑单元访问的请求时都向管理服务器13查询实区块地址。因此,根据本实施方式,能够实现短暂的等待时间(lowlatency)的访问。另外,根据本实施方式,由于向管理服务器13的访问不集中,所以能够实现没有瓶颈的共享贮存系统,并且能够获得与主服务器的数量或者贮存装置的数量(或存储容量)的增加相称的系统性能。
接下来,参照图7至图9对本实施方式中的写访问处理进行说明。图7是表示写访问处理的典型的步骤的流程图,图8是表示图7所示的写访问处理中包含的AM(地址管理)表更新处理的典型的步骤的流程图。图9是用于对AM表更新处理进行说明的图。
当前,例如设在主服务器12a中产生了向逻辑单元LU0的写访问的请求。于是,主服务器12a判定被请求的写访问是否有必要进行管理服务器13中保持的AM表134_LU0的更新(步骤S11)。例如,在是向逻辑单元LU0内的新区域的写入的情况下,有必要进行AM表134_LU0的更新。该情况下,需要在写访问的执行之前,更新AM表134_LU0。新区域是指包含在逻辑单元LU0中、且未被分配贮存装置11a或者11b内的存储区域的存储区域(即未登记于AM表134_LU0的存储区域)。
鉴于此,在有必要进行AM表134_LU0的更新的情况下(步骤S11的“是”),主服务器12a将该信息通知给管理服务器13(步骤S12)。该通知被赋予表示主服务器12a所保持的AM表124a_LU0的修订的修订编号(RN)。该AM表124a_LU0的修订编号由主服务器12a保持的修订数据125a_LU0表示。
管理服务器13基于来自主服务器12a的通知,如下述那样判定该主服务器12a保持的AM表124a_LU0的修订是否是最新的(步骤S13)。首先,管理服务器13将来自主服务器12a的通知中含有的修订编号与由自身保持的修订数据135_LU0表示的修订编号(即,最新的修订编号)进行比较。然后,管理服务器13基于两个修订编号是否一致,来判定主服务器12a保持的AM表124a_LU0的修订是否是最新的。
这里,设AM表124a_LU0的修订不是最新的(步骤S13的“否”)。该情况下,作为针对来自主服务器12a的上述的通知(步骤S12)的响应,管理服务器13将自身保持的最新的AM表134_LU0以及修订数据135_LU0的拷贝送回到该主服务器12a。主服务器12a基于该拷贝来更新AM表124a_LU0以及修订数据125a_LU0(步骤S14)。
于是,管理服务器13与主服务器12a以及贮存装置共同地执行AM表更新处理(步骤S15)。在本实施方式中,与管理服务器13以及主服务器12a共同执行AM表更新处理的贮存装置是自身的存储区域被分配给逻辑单元LU0的贮存装置(即,贮存装置11a以及11b)。与此相对,如果AM表124a_LU0的修订是最新的(步骤S13的“是”),则管理服务器13与主服务器12a以及贮存装置共同执行AM表更新处理(步骤S15)。
以下,参照图8以及图9对AM表更新处理(步骤S15)进行说明。首先,主服务器12a如在图9中用箭头A1所示那样,向管理服务器13请求AM表134_LU0的变更(更新)(步骤S31)。该请求包括应该被写入数据的逻辑单元LU0内的虚拟区块地址(开头的写入地址)和尺寸(被写入的数据区块的数量)。即,主服务器12a通过向管理服务器13请求AM表134_LU0的变更,来将写入地址(虚拟区块地址)和尺寸通知给该管理服务器13。这里,设写入地址是虚拟区块地址VBA3,尺寸(被写入的数据区块的数量)为1。
为了被分配为由主服务器12a通知的写入地址(虚拟区块地址VBA3)以及尺寸(=1)所表示的逻辑单元LU0内的存储区域(新区域),管理服务器13决定贮存装置11a或者11b内的存储区域(步骤S32)。这里,设逻辑单元LU0内的新区域是由虚拟区块地址VBA3指定的存储区域,贮存装置11a或者11b内的空置存储区域的一部分被决定为应该分配成该新区域的存储区域。另外,设已决定的存储区域是包含在贮存装置11a或者11b中、且由实区块地址RBA3指定的存储区域。在步骤S32中,管理服务器13对逻辑单元LU0内的新区域分配所决定的存储区域。即,管理服务器13对由主服务器12a通知的逻辑单元LU0内的新区域的虚拟区块地址VBA3分配所决定的存储区域的实区块地址RBA3。
接着,管理服务器13判定该管理服务器13当前是否在处理来自主服务器12a以外的主服务器的变更请求(即,与步骤S31相当的变更请求)(步骤S33)。如果正在处理来自其他主服务器的变更请求(步骤S33的“是”),则管理服务器13等待来自该其他主服务器的变更请求的处理的结束(步骤S34)。
与此相对,如果没有在处理来自其他主服务器的变更请求(步骤S33的“否”),则管理服务器13进入步骤S35。在步骤S35中,管理服务器13更新AM表134_LU0以及修订数据135_LU0,以反映实区块地址RBA3向虚拟区块地址VBA3的分配(步骤S32)。即,管理服务器13将包括由主服务器12a通知的虚拟区块地址VBA3和对该虚拟区块地址VBA3分配的实区块地址RBA3的地址管理数据如在图9中用箭头A2所示那样追加到AM表134_LU0。另外,将修订数据135_LU0所表示的修订编号如在图9中用箭头A3所示那样进行变更。这里,修订数据135_LU0所表示的修订编号被从01变更为02。该被变更后的修订数据135_LU0表示被更新后的AM表134_LU0的修订(修订编号)为02。
接着,管理服务器13对具有已分配给逻辑单元LU0的存储区域的贮存装置通知AM表134_LU0的更新(步骤S36)。在本实施方式中,具有已分配给逻辑单元LU0的存储区域的贮存装置是贮存装置11a以及11b。该情况下,如在图9中用箭头A4所示那样向贮存装置11a通知AM表134_LU0的更新。另外,在图9中虽然省略,但AM表134_LU0的更新也向贮存装置11b通知。该通知包括请求了AM表134_LU0的更新的主服务器12a的ID、和逻辑单元LU0的逻辑单元编号LU0。
若接收到来自管理服务器13的更新通知,则贮存装置11a锁定向与AM表134_LU0建立了对应的逻辑单元LU0(即,由更新通知指定的逻辑单元LU0)的访问(步骤S37)。另外,贮存装置11b也与贮存装置11a同样地执行步骤S37。接着,贮存装置11a将包含在UM表110a、且与逻辑单元LU0的逻辑单元编号LU0建立了对应的修订编号(RN)以及更新服务器ID如在图9中用箭头A5所示那样更新(步骤S38)。另外,贮存装置11b也与贮存装置11a同样地执行步骤S38。这里,修订编号被从01更新为02,更新服务器ID被更新为主服务器12a的主服务器ID。
接着,贮存装置11a如在图9中用箭头A6所示那样向管理服务器13通知UM表110a的更新的结束,然后解除向逻辑单元LU0的访问被锁定的状态(步骤S39)。另外,贮存装置11b也与贮存装置11a同样地执行步骤S39。
于是,管理服务器13将被更新后的AM表134_LU0以及修订数据135_LU0的拷贝如在图9中用箭头A7所示那样发送给主服务器12a(步骤S40)。主服务器12a将发送来的AM表134_LU0以及修订数据135_LU0的拷贝保持为最新的AM表124a_LU0以及修订数据125a_LU0(步骤S41)。即,主服务器12a以发送来的AM表134_LU0以及修订数据135_LU0的拷贝将自身保持的AM表124a_LU0以及修订数据125a_LU0更新。由此,AM表更新处理(步骤S15)结束。
接着,主服务器12a根据被更新后的AM表124a_LU0,生成具有图6所示的数据结构的写入指令(CDB),并对贮存装置发放该写入指令(步骤S16)。这里,如在图9中用箭头A8所示那样,从主服务器12a向贮存装置11a发放写入指令。省略关于该写入指令的详细的说明。如果需要,则请参照在后述的步骤S18中被发放的写入指令的说明。
贮存装置11a接收由主服务器12a发放的写入指令。该情况下,贮存装置11a执行由接收写入指令指定的写入动作(步骤S17)。其中,在图7的流程图中,省略了贮存装置11a接收到写入指令时的与接收写入指令的执行相关的状态的记载。如果需要,则请参照在步骤S18中发放的写入指令被贮存装置11a接收到的情况的说明。
接下来,设由主服务器12a产生的写访问的请求没必要进行AM表134_LU0的更新(步骤S11的“否”)。例如,仅变更逻辑单元LU0内的已有的数据的写访问没必要进行AM表134_LU0的更新。在这样的情况下,主服务器12a根据当前自身保持的AM表124a_LU0来生成写入指令,并将该写入指令发放给贮存装置(步骤S18)。这里,设对贮存装置11a发放了写入指令。该写入指令包括表示逻辑单元LU0的逻辑单元编号LU0。该写入指令还包括与虚拟区块地址VBA3建立了对应的实区块地址RBA3、以及转送数据长(被写入的数据区块的数量=1)。该写入指令还包括表示AM表124a_LU0的修订的修订编号(RN)。该修订编号采用主服务器12a保持的修订数据125a_LU0。
若接收到由主服务器12a发放的写入指令,则贮存装置11a如以下那样判定该主服务器12a所保持的AM表124a_LU0的修订是否是最新的(步骤S19)。首先,贮存装置11a从与接收到的写入指令所包含的逻辑单元编号LUN0建立了对应的UM表110a内的条目取得修订编号(RN)。接着,贮存装置11a将接收写入指令所含的修订编号与取得的修订编号进行比较。然后,贮存装置11a基于两个修订编号是否一致,来判定AM表124a_LU0的修订是否是最新的。
如果AM表124a_LU0的修订是最新的(步骤S19的“是”),则贮存装置11a进入步骤S17,执行由接收写入指令指定的写入动作。若更详细叙述,则在包括AM表124a_LU0的修订是最新的在内,与接收写入指令的执行相关的状态为良好的情况下,贮存装置11a执行由接收写入指令指定的写入动作(步骤S17)。
与此相对,如果AM表124a_LU0的修订不是最新的(步骤S19的“否”),则贮存装置11a将表示修订不一致的错误状态送回给主服务器12a。即,如果与接收写入指令的执行相关的状态不是良好,并且其主要因素是修订的不一致,则贮存装置11a向主服务器12a送回表示修订不一致的错误状态。
于是,主服务器12a从管理服务器13取得与逻辑单元LU0相关的最新的AM表134_LU0以及修订数据135_LU0的拷贝,并保持该拷贝作为最新的AM表124a_LU0以及修订数据125a_LU0(步骤S20)。
接着,主服务器12a根据最新的AM表124a_LU0再次生成写入指令,并将该生成的写入指令对贮存装置11a再次发放(步骤S21)。由主服务器12a再次发放的写入指令被贮存装置11a接收。贮存装置11a在包括修订的一致在内,与接收写入指令的执行相关的状态良好的情况下,执行由接收写入指令指定的写入动作(步骤S17)。此外,如果与接收写入指令的执行相关的状态不良好,并且其主要因素不是修订的不一致,则贮存装置11a执行对应的错误处理。
在图7所示的流程图中,主服务器12a在执行了步骤S20之后进入步骤S21,来再次发放写入指令。但是,也可以在执行了步骤S20之后,主服务器12a返回到步骤S18而再次发生写入指令。
接着,在本实施方式中,对向图1所示的共享贮存系统追加主服务器的情况的动作进行说明。主服务器的追加通过以下所述的步骤来实现。首先,应该追加的主服务器与在共享贮存系统中将贮存装置11a以及11b和管理服务器13连接的交换机14连接。设与交换机14连接的主服务器配备逻辑单元LUi。该情况下,与交换机14连接的主服务器从管理服务器13取得与逻辑单元LUi建立了对应的AM表134_LUi以及修订数据135_LUi的拷贝,并保持该拷贝。由此,可对共享贮存系统追加主服务器。
接下来,对在共享贮存系统中发生了故障的情况的动作进行说明。作为共享贮存系统中的主要故障,可举出网络连接的暂时切断、和管理服务器13的停机。
鉴于此,首先对网络连接暂时切断的情况进行说明。首先,研究与本实施方式不同,管理服务器13将最新的AM表向共享贮存系统内的全部的主服务器(即,主服务器12a、12b以及12c)分发那样的一般设想的情况。在这样的系统中,当网络连接暂时切断时,有可能在主服务器间产生AM表的不一致。鉴于此,在这样的系统中,需要用于在主服务器间例如定期监视AM表是否一致的方法(监视功能)。
与此相对,在本实施方式中,当主服务器例如访问逻辑单元LUi时,该主服务器(更详细而言,是由该主服务器请求了访问的贮存装置)判定与该逻辑单元LUi建立了对应的AM表134_LUi的拷贝是否是最新的。因此,在本实施方式中,即使发生网络连接的暂时的切断,也不需要考虑AM表在主服务器间是否一致。
接下来,参照图10以及图11,以访问处理为例来对管理服务器停机的情况的动作进行说明。图10是表示管理服务器停机时的访问处理的典型的步骤的流程图,图11是用于对管理服务器停机时的访问处理进行说明的图。
当前,设在管理服务器13停机的状态下,在主服务器12a中产生了向逻辑单元LU0或者LU1访问的请求。其中,对于共享贮存系统内的各主服务器对管理服务器13的停机进行检测的方法而言,以往公知各种检测方法。因此,省略该方法的说明。
首先,主服务器12a判定被请求的访问是否有必要进行AM表134_LU0或者134_LU1的更新(步骤S51)。有必要进行AM表134_LU0或者134_LU1的更新的访问例如是向逻辑单元LU0或者LU1内的新区域的写访问的情况。该情况下(步骤S51的“是”),主服务器12a判断为不可访问(步骤S52),并结束访问处理。这样,在管理服务器13停机的状态下,主服务器12a判断为不能执行有必要更新管理服务器13所保持的AM表的访问。其理由在于管理服务器13所保持的AM表必须总是最新的。
另一方面,没必要进行AM表134_LU0或者134_LU1的更新的访问例如是读访问的情况、或者仅变更逻辑单元LU0或者LU1内的已有的数据的写访问的情况。如果主服务器12a将最新的AM表134_LU0或者134_LU1的拷贝保持到AM表124a_LU0或者124a_LU1,则能够执行这样的访问。
鉴于此,在这样的访问的情况下(步骤S51的“否”),主服务器12a根据当前自身保持的AM表124a_LU0或者124a_LU1来生成访问指令,并将该访问指令对贮存装置发放(步骤S53)。这里,设访问指令被发放给贮存装置11a。该访问指令包括表示逻辑单元LU0或者LU1的逻辑单元编号LU0或者LU1。该写入指令还包括表示AM表124a_LU0或者124a_LU1的修订的修订编号(RN)。
若接收到由主服务器12a发放的访问指令,则贮存装置11a与上述的步骤S13同样地判定该主服务器12a中保持的AM表124a_LU0或者124a_LU1的修订是否是最新的(步骤S54)。即,贮存装置11a将接收访问指令所包含的修订编号和与从UM表110a取得的逻辑单元编号LUN0或者LU1建立了对应的修订编号进行比较。主服务器12a基于该比较的结果(修订的一致或者不一致)来判定AM表124a_LU0或者124a_LU1的修订是否是最新的。
在图11的例子中,AM表124a_LU0以及124a_LU1的修订编号分别是01以及01。另外,贮存装置11a中保持的UM表110a所表示的、与逻辑单元编号LU0以及LU1建立了对应的修订编号(即,AM表134_LU0以及134_LU1的修订编号)分别是01以及02。因此,在图11的例子中,虽然AM表124a_LU0的修订编号与AM表134_LU0的修订编号一致,但AM表124a_LU1的修订编号与AM表134_LU1的修订编号不一致。
当前,设由主服务器12a发放的访问指令请求了向逻辑单元LU0的访问。该情况下,如在图11中用箭头A11所示那样,AM表124a_LU0的修订编号(01)与AM表134_LU0的修订编号(01)一致。即,AM表124a_LU0的修订是最新的(步骤S54的“是”)。贮存装置11a在包括修订的一致在内,与接收写入指令的执行相关的状态良好的情况下,执行由接收访问指令请求的访问(步骤S59)。
接下来,设由主服务器12a接收到的访问指令请求了向逻辑单元LU1的访问。该情况下,如在图11中用箭头A12所示那样,AM表124a_LU1的修订编号(01)与AM表134_LU1的修订编号(02)不一致。即,AM表124a_LU1的修订不是最新的(步骤S54的“否”)。该情况下,作为针对来自主服务器12a的访问指令的响应,贮存装置11a将表示修订不一致的错误状态送回给该主服务器12a。主服务器12a在管理服务器13停机的状态下被从贮存装置11a送回表示修订不一致的错误状态的情况下,向该贮存装置11a查询具有最新的AM表134_LU1的拷贝的主服务器。AM表124a_LU1的修订不是最新的情况的上述的动作在图10所示的流程图中被省略。
此外,在主服务器12a没有识别为管理服务器13停机的状态下,被从贮存装置11a送回表示修订不一致的错误状态的情况下,该主服务器12a如下述那样动作。首先,主服务器12a与步骤S7或者S20同样地想要从管理服务器13取得与逻辑单元LU1相关的最新的AM表134_LU1的拷贝。但是,由于管理服务器13停机,所以主服务器12a对最新的AM表134_LU1的拷贝的取得失败。由此,管理服务器13认为管理服务器13停机。鉴于此,主服务器12a向贮存装置11a查询具有最新的AM表134_LU1的拷贝的主服务器。
贮存装置11a根据来自主服务器12a的上述的查询,基于UM表110a如以下那样确定具有最新的AM表134_LU1的拷贝的主服务器(步骤S55)。首先,贮存装置11a取得UM表110a所示的、与逻辑单元编号LU1建立了对应的更新服务器ID。然后,贮存装置11a将取得的更新服务器ID所表示的主服务器确定为具有最新的AM表134_LU1的拷贝的主服务器。这里,设确定出主服务器12b。
接着,作为针对来自主服务器12a的查询的响应,贮存装置11a将确定出的主服务器12b的ID通知给该主服务器12a(步骤S56)。于是,主服务器12a如在图11中用箭头A13所示那样,从被通知的主服务器12b取得与逻辑单元LU1对应的最新的AM表124b_LU1以及修订数据125b_LU1的拷贝(步骤S57)。在步骤S57中,主服务器12a基于取得的拷贝来更新AM表124a_LU1以及修订数据125a_LU1。即,主服务器12a将AM表124b_LU1以及修订数据125b_LU1的拷贝保持为最新的AM表134_LU1以及修订数据135_LU1的拷贝即AM表124a_LU1以及修订数据125a_LU1。
接着,主服务器12a根据最新的AM表124a_LU1再次生成访问指令,并将该生成的写入指令再次发放给贮存装置11a(步骤S58)。由主服务器12a再次发放的写入指令被贮存装置11a接收。贮存装置11a在包括修订的一致在内,与接收写入指令的执行相关的状态良好的情况下,执行由接收写入指令指定的写入动作(步骤S59)。
此外,贮存装置11a也可以在将表示修订不一致的错误状态送回给主服务器12a之前,确定具有最新的AM表134_LU1的拷贝的主服务器。而且,也可以使用表示修订不一致的错误状态来向主服务器12a通知确定出的主服务器(例如主服务器12b)。该情况下,主服务器12a如果识别为管理服务器13停机,则只要从被通知的主服务器12b取得最新的AM表124b_LU1以及修订数据125b_LU1的拷贝即可。另外,如果主服务器12a没有识别为管理服务器13停机、或者管理服务器13停机,则主服务器12a只要执行首先从管理服务器13取得最新的AM表134_LU1以及修订数据135_LU1的拷贝的动作即可。
根据本实施方式,贮存装置11a对每个逻辑单元使用UM表110a来管理与对应的逻辑单元相关的最新的AM表的修订编号、和最后更新了该AM表的主服务器的ID。因此,贮存装置11a在如上述那样由主服务器12a发放了包括逻辑单元编号以及修订编号的访问指令的情况下(步骤S53),能够判定该主服务器12a保持的AM表是否是最新的(步骤S54)。
另外,在主服务器12a保持的AM表不是最新的情况下(步骤S54的“否”),贮存装置11a也能够确定最后更新了AM表的主服务器,并将该确定出的主服务器通知给主服务器12a(访问请求源)(步骤S55以及S56)。从而,主服务器12a从够从被通知的主服务器取得最新的AM表的拷贝,并基于该拷贝来访问目标逻辑单元(步骤S57以及S58)。
另外,在主服务器12a、12b以及12c中,AM表被储存在闪存那样的非易失性存储装置。因此,没有主服务器12a、12b以及12c内的AM表因主服务器12a、12b以及12c的电源切断或者主服务器12a、12b以及12c的重新启动而被破坏之虞。此外,在主服务器12a、12b以及12c中,AM表也可以被储存到RAM那样的易失性存储装置。该情况下,AM表有可能因上述的电源切断或者重新启动而被破坏。但是,贮存装置11a以及11b在接收到来自主服务器12a、12b或者12c的访问指令的情况下,确认通过该访问指令通知的修订是否是最新的。因此,不存在贮存装置11a以及11b访问错误的地址之虞。
在图10所示的流程图中,主服务器12a在执行了步骤S57之后进入步骤S58,再次发放访问指令。但是,也可以在执行了步骤S57之后,主服务器12a返回到步骤S53并再次发放访问指令。
根据以上说明的至少一个实施方式,尽管应用多个主服务器分别具有管理服务器所保持的地址管理信息的拷贝的构成,也能够不需要在主服务器间使地址管理信息一致的处理。
对本发明的几个实施方式进行了说明,但这些实施方式只是例示,并不意图限定发明的范围。这些新的实施方式能够以其他的各种方式来实施,能够在不脱离发明主旨的范围进行各种省略、置换、变更。这些实施方式以及其变形包含在发明的范围与主旨中,并且包含在权利要求所记载的发明和其等同的范围。
Claims (9)
1.一种共享贮存系统,具备:
多个主服务器;
多个贮存装置,被所述多个主服务器共享;
管理服务器,向所述多个主服务器提供多个逻辑单元,所述多个逻辑单元被分配所述多个贮存装置的至少一部分的存储区域;和
交换机,将所述多个主服务器、所述多个贮存装置以及所述管理服务器连接,
所述管理服务器对所述多个逻辑单元中的每一个逻辑单元,使用第一地址管理信息来管理所述多个逻辑单元各自的虚拟地址、分配给该虚拟地址的贮存装置的实地址、以及表示该贮存装置的贮存识别符之间的对应,且使用第一修订数据来管理所述第一地址管理信息的修订,
所述多个主服务器中的各个主服务器保持与所述逻辑单元对应的所述第一地址管理信息以及所述第一修订数据各自的拷贝、即第二地址管理信息以及第二修订数据,在访问第一逻辑单元的第一虚拟地址的情况下,从与所述第一逻辑单元对应的所述第二地址管理信息取得与所述第一虚拟地址建立了对应的第一实地址以及第一贮存识别符,使用表示所述第一逻辑单元的第一逻辑单元识别符、所述第一实地址、以及与所述第一逻辑单元对应的所述第二修订数据,来向由所述第一贮存识别符表示的贮存装置请求访问,
所述多个贮存装置中的各个贮存装置保持包含第三修订数据的更新管理信息,该第三修订数据是根据所述第一地址管理信息的更新而由所述管理服务器通知的表示所述第一地址管理信息的修订的数据,在使用所述第一逻辑单元识别符、所述第一实地址、以及所述第二修订数据而从所述多个主服务器之一的第一主服务器被请求了访问的情况下,至少以所述第二修订数据与所述第一逻辑单元所对应的所述第三修订数据一致为条件,基于所述第一实地址执行被请求的访问。
2.根据权利要求1所述的共享贮存系统,
在产生向所述第一逻辑单元的写访问的请求、且该写访问有必要进行与所述第一逻辑单元对应的所述第一地址管理信息的更新的情况下,所述第一主服务器向所述管理服务器通知所述更新的必要,
所述管理服务器基于由所述第一主服务器进行的所述更新的必要的通知,来更新与所述第一逻辑单元对应的所述第一地址管理信息以及所述第一修订数据,且将与所述第一逻辑单元对应的所述第一地址管理信息的更新至少通知给具有对所述第一逻辑单元分配的存储区域的贮存装置,
由所述管理服务器通知了所述更新的贮存装置基于该更新的通知,来更新包含于所述更新管理信息且表示与所述第一逻辑单元对应的所述第一地址管理信息的修订的所述第三修订数据,
所述管理服务器向通知了所述更新的必要的所述第一主服务器发送所述被更新后的第一地址管理信息以及第一修订数据各自的拷贝,
所述第一主服务器基于所述被发送的拷贝来更新所述第一主服务器所保持的所述第二地址管理信息以及第二修订数据。
3.根据权利要求2所述的共享贮存系统,
所述多个贮存装置之一的第一贮存装置在所述第二修订数据与所述第一逻辑单元所对应的所述第三修订数据不一致的情况下,向所述第一主服务器发回表示修订不一致的错误状态,
所述第一主服务器根据所述错误状态,从所述管理服务器取得与所述第一逻辑单元对应的所述第一地址管理信息以及所述第一修订数据各自的拷贝,并基于该拷贝对所述第一主服务器所保持的所述第二地址管理信息以及第二修订数据进行更新。
4.根据权利要求3所述的共享贮存系统,
所述第一主服务器在所述管理服务器发生了故障的情况下,从所述多个主服务器之一且保持与所述第一逻辑单元对应的最新的第二地址管理信息的第二主服务器,取得该最新的第二地址管理信息以及表示该最新的第二地址管理信息的修订的第二修订数据的拷贝,并基于该拷贝对所述第一主服务器所保持的所述第二地址管理信息以及第二修订数据进行更新。
5.根据权利要求4所述的共享贮存系统,
所述管理服务器在通知与所述第一逻辑单元对应的所述第一地址管理信息的更新的情况下,还通知对通知了所述更新的必要的所述第一主服务器进行表示的第一主服务器识别符,
所述多个贮存装置各自保持的所述更新管理信息还包括与被分配了所述多个贮存装置各自的存储区域的逻辑单元建立了对应的主服务器识别符中的、对通知了所述对应的第一地址管理信息的更新的主服务器进行表示的主服务器识别符,
被通知了所述更新的贮存装置基于该更新的通知,还更新包含于所述更新管理信息且与所述第一逻辑单元对应的主服务器识别符,
所述第一贮存装置基于所述更新管理信息向所述第一主服务器通知保持有与所述第一逻辑单元对应的最新的第二地址管理信息的第二主服务器。
6.根据权利要求5所述的共享贮存系统,
所述第一主服务器在所述管理服务器发生了故障的状态下从所述第一贮存装置接收到表示所述修订不一致的错误状态的情况下,向所述第一贮存装置查询保持有与所述第一逻辑单元对应的最新的第二地址管理信息的主服务器,
所述第一贮存装置根据来自所述第一主服务器的所述查询,向所述第一主服务器通知所述第二主服务器。
7.根据权利要求5所述的共享贮存系统,
所述第一贮存装置使用表示所述修订不一致的错误状态,向所述第一主服务器通知所述第二主服务器。
8.根据权利要求3所述的共享贮存系统,
所述第一主服务器在更新了所述第二地址管理信息以及第二修订数据的情况下,基于所述被更新后的第二地址管理信息以及第二修订数据请求再次访问所述第一贮存装置。
9.一种控制向贮存装置的访问的方法,
是在共享贮存系统中控制向贮存装置的访问的方法,所述共享贮存系统具备:多个主服务器;多个贮存装置,被所述多个主服务器共享;管理服务器,向所述多个主服务器提供多个逻辑单元,所述多个逻辑单元被分配所述多个贮存装置的至少一部分的存储区域;和交换机,将所述多个主服务器、所述多个贮存装置以及所述管理服务器连接,所述管理服务器对所述多个逻辑单元中的每一个逻辑单元,使用第一地址管理信息来管理所述多个逻辑单元各自的虚拟地址、分配给该虚拟地址的贮存装置的实地址、以及表示该贮存装置的贮存识别符之间的对应,且使用第一修订数据来管理所述第一地址管理信息的修订,所述多个主服务器中的各个主服务器保持与所述逻辑单元对应的所述第一地址管理信息以及所述第一修订数据各自的拷贝、即第二地址管理信息以及第二修订数据,所述多个贮存装置中的各个贮存装置保持包含第三修订数据的更新管理信息,该第三修订数据是根据所述第一地址管理信息的更新而由所述管理服务器通知的表示所述第一地址管理信息的修订的数据,
在该控制向贮存装置的访问的方法中,
在从所述多个主服务器之一的第一主服务器访问第一逻辑单元的第一虚拟地址的情况下,由所述第一主服务器从与所述第一逻辑单元对应的所述第二地址管理信息取得与所述第一虚拟地址建立了对应的第一实地址以及第一贮存识别符,
使用表示所述第一逻辑单元的第一逻辑单元识别符、所述第一实地址、以及与所述第一逻辑单元对应的所述第二修订数据,从所述第一主服务器向由所述第一贮存识别符表示且作为所述多个贮存装置之一的第一贮存装置请求访问,
在使用所述第一逻辑单元识别符、所述第一实地址以及所述第二修订数据从所述第一主服务器向所述第一贮存装置请求了访问的情况下,至少以所述第二修订数据与所述第一逻辑单元所对应的所述第三修订数据一致为条件,由所述第一贮存装置基于所述第一实地址执行被请求的访问。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/065471 WO2015189936A1 (ja) | 2014-06-11 | 2014-06-11 | 共有ストレージシステム、及びストレージ装置へのアクセスを制御する方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105393207A true CN105393207A (zh) | 2016-03-09 |
CN105393207B CN105393207B (zh) | 2018-06-12 |
Family
ID=53537885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480001251.XA Active CN105393207B (zh) | 2014-06-11 | 2014-06-11 | 共享贮存系统、以及控制向贮存装置的访问的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9684577B2 (zh) |
JP (1) | JP5747133B1 (zh) |
CN (1) | CN105393207B (zh) |
WO (1) | WO2015189936A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6641813B2 (ja) * | 2015-09-11 | 2020-02-05 | 富士通株式会社 | 制御装置、情報処理システム、及び制御プログラム |
US11063882B2 (en) * | 2019-08-07 | 2021-07-13 | International Business Machines Corporation | Resource allocation for data integration |
US11734223B2 (en) * | 2020-09-17 | 2023-08-22 | Dell Products L.P. | NVMe-over-fabrics gateway system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1208891A (zh) * | 1997-08-08 | 1999-02-24 | 株式会社东芝 | 盘存储装置的数据更新方法和盘存储控制装置 |
US20030131253A1 (en) * | 2001-12-28 | 2003-07-10 | Martin Marcia Reid | Data management appliance |
JP2010231690A (ja) * | 2009-03-30 | 2010-10-14 | Nec Corp | ストレージシステム |
JP2014071712A (ja) * | 2012-09-28 | 2014-04-21 | Toshiba Corp | 情報処理装置、キャッシュコントローラ、およびキャッシュ制御方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949395B2 (en) * | 2004-06-01 | 2015-02-03 | Inmage Systems, Inc. | Systems and methods of event driven recovery management |
JP2010233190A (ja) | 2009-03-30 | 2010-10-14 | Nec Corp | ビデオサーバシステム及びビデオサーバ |
JP5066209B2 (ja) | 2010-03-18 | 2012-11-07 | 株式会社東芝 | コントローラ、データ記憶装置、及びプログラム |
-
2014
- 2014-06-11 JP JP2014543654A patent/JP5747133B1/ja active Active
- 2014-06-11 WO PCT/JP2014/065471 patent/WO2015189936A1/ja active Application Filing
- 2014-06-11 CN CN201480001251.XA patent/CN105393207B/zh active Active
-
2015
- 2015-01-29 US US14/608,247 patent/US9684577B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1208891A (zh) * | 1997-08-08 | 1999-02-24 | 株式会社东芝 | 盘存储装置的数据更新方法和盘存储控制装置 |
US20030131253A1 (en) * | 2001-12-28 | 2003-07-10 | Martin Marcia Reid | Data management appliance |
JP2010231690A (ja) * | 2009-03-30 | 2010-10-14 | Nec Corp | ストレージシステム |
JP2014071712A (ja) * | 2012-09-28 | 2014-04-21 | Toshiba Corp | 情報処理装置、キャッシュコントローラ、およびキャッシュ制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20150363284A1 (en) | 2015-12-17 |
JP5747133B1 (ja) | 2015-07-08 |
US9684577B2 (en) | 2017-06-20 |
CN105393207B (zh) | 2018-06-12 |
WO2015189936A1 (ja) | 2015-12-17 |
JPWO2015189936A1 (ja) | 2017-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4467624B2 (ja) | ソフトウェアアップデート管理プログラム、ソフトウェアアップデート管理装置、およびソフトウェアアップデート管理方法 | |
US7269667B2 (en) | Disk array system and method for migrating from one storage system to another | |
CN110998562B (zh) | 在分布式集群系统中隔开节点 | |
US6718404B2 (en) | Data migration using parallel, distributed table driven I/O mapping | |
JP4124331B2 (ja) | Dbms向け仮想ボリューム作成・管理方法 | |
US9773012B2 (en) | Updating map structures in an object storage system | |
US9501231B2 (en) | Storage system and storage control method | |
US8209505B2 (en) | Storage system and method of taking over logical unit in storage system | |
US20060047926A1 (en) | Managing multiple snapshot copies of data | |
JP2018028715A (ja) | ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム | |
US7490213B2 (en) | Dynamic allocation of storage for hierarchical copies | |
JP5797848B1 (ja) | 階層化ブロックストレージ装置を有するコンピュータシステム、ストレージコントローラ、及びプログラム | |
US20130238852A1 (en) | Management interface for multiple storage subsystems virtualization | |
US20130325814A1 (en) | System and method for archive in a distributed file system | |
JP6652647B2 (ja) | ストレージシステム | |
US20160217177A1 (en) | Database system | |
US20160217174A1 (en) | Database system | |
US20150205531A1 (en) | Adding Storage Capacity to an Object Storage System | |
CN105393207A (zh) | 共享贮存系统、以及控制向贮存装置的访问的方法 | |
US20130325813A1 (en) | System and method for archive in a distributed file system | |
US11442637B1 (en) | Managing drive space among different data services environments within a storage system | |
CN115982101B (zh) | 基于多机房副本放置策略的机房数据迁移方法与装置 | |
JPH07325674A (ja) | 半導体メモリの交換方法および半導体ディスクサブシステムの制御方法 | |
US20060129987A1 (en) | Apparatus, system, and method for accessing management data | |
JP2020027433A (ja) | 情報システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: Tokyo, Japan, Japan Co-patentee after: Toshiba Digital Solutions Ltd Patentee after: Toshiba Corp Address before: Tokyo, Japan, Japan Co-patentee before: Toshiba Solutions Corporation Patentee before: Toshiba Corp |
|
CP01 | Change in the name or title of a patent holder |