多处理机系统和用多处理机系统 的磁盘控制器及维护方法 本发明涉及多处理机系统及其程序的修改方法。更详细地说,是有关由包含多个处理机的多处理机系统构成的磁盘控制器及其控制程序的修改方法。
在多处理机系统中,由于是将一个作业分散由多个处理机进行处理,所以能够进行作业的高效处理。以多处理机系统构成的磁盘控制器作为多处理机系统的一种应用形式已经进入实用化的阶段。例如特开平—62623号公报所公布的磁盘控制器。在特开平—62623号公报公布的磁盘控制器中,数据的读出、写入等处理作业是由控制磁盘控制器与主机之间数据传输的处理机和控制磁盘控制器与磁盘驱动器之间数据传输用地处理机分散执行。具体地说,例如由某一个处理机从磁盘驱动器读出的数据,再由另一个处理机传送给主机。因此,主机与磁盘控制器之间的数据传输处理和磁盘驱动器与磁盘控制器之间的数据传输处理可以独立并行执行,因而能够实现数据的高效传输。
在由如上所述的多处理机系统构成的磁盘控制器中,当一部分处理机停止处理时、其他处理机仍归继续控制数据的传输,因而可以对停运的处理机进行维护。但是,这种维护方法的前提是分散处理作业的处理机应执行同一版本的程序。当各处理机执行的程序有所变更时,如用这种方法进行维护,由于在一段时间内有不同版本的程序同时存在,则将会出现一个作业由执行不同版本程序的处理机分担处理的情况。在这种情况下,作业的协调性处理有可能得不到保证。因此,当需要变更各处理机执行的程序版本时,就不得不停止全部系统的运行。
本发明的目的是解决以往技术中存在的这个问题,并能够在系统继续作业处理的同时进行程序版本变更等方面的维护处理。为达到这个目的,在本发明的多处理机系统中,使各处理机分属于多个机群。机群的模式包括:在即使同属于任意一个机群的处理机之间也可分散处理一个作业的机群非限定模式和对可以分散处理一个作业的处理机所属的机群加以限定的机群限定模式。
在本发明的维护方法中,上述多处理机系统的机群模式可以从机群的非限定模式转换为机群的限定模式,并在多个机群中选定一部分机群。然后使被选定的机群停止接受新的作业,并对属于选定机群的处理机进行维护处理,例如程序的修改处理。对各机群依次进行上述机群选择、维护处理,并在所有机群的处理机进行了维护处理之后,将机群模式恢复为机群非限定模式。在选定机群的处理机维护过程中,属于未选中机群的处理机则以机群限定模式执行处理。按照这种方法,在系统进行程序修改等维护过程中,作业虽由不作为维护对象的处理机继续处理,但可防止作业由不同版本的程序分散执行,因此,不必全部停止系统的运作即可进行维护处理。
图1为采用本发明的一种磁盘控制器的结构图。
图2为存储在控制存储器内的机群分配信息结构图。
图3为存储在控制存储器内的执行指定机群信息的结构图。
图4为存储在控制存储器内的I/O作业执行控制信息结构图。
图5为存储在控制存储器内的机群操作模式指示信息结构图。
图6为表示磁盘控制程序修改处理流程的程序框图。
图7为对机群A进行程序修改处理的详细程序框图。
图8为对机群B进行程序修改处理的详细程序框图。
图9为按照本发明的另外一个实施例的磁盘控制器的结构图。
图10为可分散处理的机群组合信息结构图。
图11为可分散处理的机群组合信息结构图。
图12为按照本发明的一个进一步实施例的磁盘控制器结构图。
图1为本发明第1实施例中的磁盘控制器的结构图。磁盘控制器200包括各自具有局部存储器(LM)的多个处理机211、212、213、214和221、222、223、224、带有分别存有控制程序的磁盘驱动器216、226的伺服处理机215、225以及具有高速缓冲存储器231和控制存储器232并可由处理机211—214、221—224及伺服处理机215、225共同访问的共享存储器230。磁盘控制器200具有的处理机中的处理机211、212、221和222,通过通道控制器30与主机10连接。而处理机213、214、223和224,则连接于磁盘驱动器40、41。在下文中,为区分这些处理机,将前者称为通道侧处理机,后者称为驱动器侧处理机。各处理机211—214、221—224的局部存储器用来存储用于控制磁盘驱动器40、41与通道控制器30之间作数据传输之用的数据传输控制程序及用于支援系统维护作业的维护支援程序。伺服处理机215、225连接于作为与操作员接口而设置的维护终端240。
在本实施例中,处理机211—214、221—224构成的系统称为多处理机系统。这些处理机按组划分,由处理机211—214组成机群A210,由处理机221—224组成机群B220。伺服处理机215属于机群A210,而伺服处理机225属于机群B220。
图2为存储在控制存储器232内的机群分配信息的逻辑结构图。机群分配信息500共有三个区,即处理机编号区510、所属机群编号区520和处理机属性区530。处理机编号区存储分配给各处理机211—214和221—224的编号。在本实施例中,如图2所示分配给各处理机的处理机编号分别是211、212、213、214和221、222、223、224(在本实施例中,为说明方便起见,分配给各处理机的处理机编号与图1中的参考编号一致)。所属机群编号区520存储每个处理机所属机群的机群编号。如图2所示处理机211、212、213、214属于机群编号为“1”的机群(图1中的机群A210),而处理机221、222、223和224则属于机群编号为“2”的机群(图1中的机群B220)。处理机属性区530存储标定各处理机属性的信息,亦即标定各处理机是属于通道侧处理机(通道CPU)还是属于驱动器侧处理机(驱动器CPU)。如图2所示,处理机211、212、221和222为通道侧处理机。而处理机213、214、223和224为驱动器侧处理机。
图3为在控制存储器232内所存的执行机群标定信息结构图。执行机群标定信息600是由在执行机群标定区610中所存的机群传输数据时的标定模式的信息构成的。在本实施例中,机群模式共有可使机群210、220中任何一个机群进行数据传输的机群非限定模式和限定只能使用其中某一个机群的机群限定模式。当以机群非限定模式进行数据传输时,在执行机群标定区610中存入“1”,而当以机群限定模式进行数据传输时,则存入“2”。
图4为存在控制存储器232内的I/O作业执行控制信息结构图。I/O作业执行控制信息800是为连接磁盘控制器200中的每个磁盘驱动器40、41设置的。I/O作业执行控制信息800包括要求主机发出相应的访问命令的访问命令请求信息、用于标定某个处理机,使其成为可以执行发送给相应磁盘驱动器的访问命令的可执行处理机的标定信息和用于标定发送给相应磁盘驱动器的访问命令执行状态的I/O请求执行状态信息。访问命令请求信息包括命令类别区811、驱动器编号区812、磁盘环数编号区813、磁道编号区814、以及记录编号区815。命令类别区811存储向与其I/O作业执行控制信息相对应的磁盘驱动器发送的访问命令的命令类型。访问命令包括从磁盘驱动器中读出数据的读命令和将数据写入磁盘驱动器的写命令等。驱动器编号区812用于存储根据I/O作业执行控制信息进行访问的磁盘驱动器的驱动器编号。磁盘环数编号区813、磁道编号区814和记录编号区815分别用来存储标定访问对象的磁盘驱动器内存储区的磁盘环数编号、磁道编号和记录编号。可执行处理机指定信息由可执行处理机标定位表821组成。在可执行处理机标定位表821分别置入与处理机211—214和221—224相对应的位。在与可执行访问命令请求信息中记录的访问命令的处理机相对应的位中置入“1”(置“1”),在与不可执行访问命令的处理机相对应的位中置入“0”(置“0”)。I/O请求执行状态信息具有一个I/O请求执行状态区831,用于存储访问命令的执行状态。在I/O请求执行状态区831中存入访问命令的各种执行状态的标定信息,例如,当没有访问命令的执行请求时置“0”,当由驱动器侧处理机等待处理时置“1”,当由通道侧处理机等待处理时置“2”,如正在执行某项处理,则置“3”。
图5为在控制存储器232内所存的机群操作模式标定信息结构图。机群操作模式标定信息700由机群编号区710和操作模式区720组成。机群编号区710用于存储与各机群相对应的机群编号。操作模式区用于存储相应的机群正在按照哪一种操作模式运作的标定信息。本实施例中的操作模式包括进行正常处理的正常操作模式、不接受访问命令的暂停模式和属于机群210的处理机与属于机群220的处理机正在执行不同版本数据传输控制程序时的维护操作模式。在操作模式区720中,在正常操作模式时置“1”、在暂停模式时置“2”、在维护操作模式时置“3”。机群操作模式标定信息700由各处理机按规定的定时进行访问,例如与作业的检索同步。
在本实施例中,由磁盘控制器200的各处理机进行的数据传输控制处理按以下方式执行。
当主机10要读取磁盘驱动器40、41所存的数据时,将把指定读取的访问命令传送给通道控制器30。通道控制器30把从主机10收到的访问命令传送给磁盘控制器200的通道侧处理机211、212、221和222中的一个处理机。在本实施例中,作为说明的例子是假定访问命令为对磁盘驱动器40的读出请求,而这个访问命令是传送给机群210的通道侧处理机211的。
从通道控制器30接受访问命令的通道侧处理机211,访问与磁盘驱动器40相对应的I/O作业执行控制信息800中的I/O请求执行状态区831,如已置“0”(无执行请求),则把I/O请求执行状态区831的信息改写为“3”(执行中)。然后,通道侧处理机211把访问命令指定的各种信息存入在访问命令请求信息的各个区811—815内。如存储在I/O请求执行状态区831的信息不为“0”,通道侧处理机211即向通道控制器30发回一个占用信号。接着由通道侧处理机211访问执行机群标定区610,并检查执行机群标定区610中所存的信息。当执行机群标定区610所存的信息为“1”(机群非限定模式)时,在可执行处理机标定位表821中与之相对应的驱动器侧处理机213、214、223和224的字段(可否执行字段)置“1”,这是标定可执行的位符。反之,当执行机群标定区610中所存的信息为“2”(机群限定模式)时,在可执行处理机标定位表821中凡是与该处理机同属一个机群的驱动器侧的处理机、在本实施例中就是将机群A210中的驱动器侧处理机213、214中的可否执行字段置“1”。然后,在I/O请求执行状态区831中将通道侧处理机211按照驱动器侧处理机的标定方式置“1”,表示等待执行。
驱动器侧处理机中的任何一个(在本实施例中假定为驱动器侧处理机214)访问I/O作业执行控制信息800中的I/O请求执行状态区831,检查是否已将标定驱动器侧处理机按照等待执行置“1”。如在I/O请求执行状态区831中已置为“1”,则进一步检查其I/O作业执行控制信息800的可执行处理机标定位表821中与该处理机本身相对应的可否执行字段是否已按照标定可执行的方式置“1”。当与之相对应的可否执行字段已置“1”时,则在I/O请求执行状态区831中置“3”,并按照访问命令请求信息各区(命令类别区811、驱动器编号区812、磁盘环数编号区813、磁道编号区814和记录编号区815)所存的信息从目标磁盘驱动器读出数据、存入设在共享存储器230内的高速缓冲存储器231。然后将I/O作业执行控制信息800中的I/O请求执行状态区按照表示通道侧驱动器等待的标定信息置“2”。接着访问执行机群标定信息600,如执行机群指示区610置“1”(机群非限定模式),将可执行处理机标定位表821中与之相对应的通道侧处理机211、212、221和222的可否执行字段置“1”。反之,当执行机群指示区610所存的信息标定为机群限定模式置“2”时,驱动器侧处理机214将可执行处理机标定位表821中对应于与该处理机本身同属一个机群(即机群A210)的通道侧处理机211、212的可否执行字段置“1”。
在通道侧处理机中的任何一个(本实施例中假定为通道侧处理机212)访问I/O作业执行控制信息800中的I/O请求执行状态区831,检查是否已置“2”(通道侧处理机等待执行)。如在I/O请求执行状态区831已置“2”,则进一步访问可执行处理机标定位表821,检查与该处理机本身相对应的可否执行字段是否已置“1”。如在可否执行字段相对应的位已置“1”,则通道侧处理机212在I/O请求执行状态区831置“3”,并将高速缓冲存储器231所存的相应数据传送给通道控制器30。然后将I/O请求执行状态区831按照标定无执行请求的方式置“0”。
如上所述,如采用本实施例的磁盘驱动器进行数据读出处理,除各处理机访问执行机群标定信息600和机群操作模式标定信息700以及访问可执行处理机标定信息(可执行处理机标定位表821),并在更新的同时继续进行处理,除此之外,其他则与以往多处理机系统构成的磁盘控制器的数据读出处理进行方式相同。由于数据写入处理与上述数据读出处理是以相同方式进行的,所以在本实施例中省略说明。
图6为表示本实施例磁盘控制器200的维护处理(程序修改处理)流程的程序框图。
在维护处理时,操作员通过维护终端240将新版本的数据传输控制程序存入采用存储伺服处理机215、225控制程序的磁盘驱动器216、226内(步骤110)。然后,操作员通过维护终端240指示伺服处理机215开始控制程序的修改处理(步骤120)。
当伺服处理机215接到开始修改控制程序的处理指示后,将存储在控制存储器内的执行机群标定信息600按照机群限定模式的标定方式置“2”(步骤125)。在此之后,通道侧处理机211、212、221和222如果从通道控制器30接收到一个新的访问命令,将I/O作业执行控制信息800中的可执行处理机标定位表821中该处理机本身所属机群内的处理机相对应的位置“1”。则机群非限定作业立即停止。然后,伺服处理机215对属于机群A210的处理机211、212、213和214的局部存储器内存储的控制程序进行修改处理(步骤130)。在机群A210的处理机进行修改数据传输控制程序的同时,机群B220的处理机221、222、223和224仍以原来版本的数据传输控制程序按机群限定模式执行数据传输控制处理。
当机群A210的处理机的数据传输控制程序修改完毕时,伺服处理机215请求伺服处理机225执行对同属于机群B220的处理机的程序修改处理(步骤140)。当伺服处理机225收到此请求时,将对机群B220的处理机221、222、223和224的局部存储器内所存的数据传输控制程序执行更新处理(步骤145)。而属于机群A210的处理机211、212、213和214在程序修改处理完毕后,开始执行新版本的程序,并在机群B220的处理机进行程序更新处理同时,以机群限定模式执行数据传输控制处理。
当伺服处理机215确认机群B220的数据传输控制程序的更新处理业已完毕时(步骤150),分别将机群操作模式标定信息700中的各操作模式区720按照标定正常操作模式的方式置“1”、将执行机群标定信息600按照标定机群非限定模式置“1”(步骤155)。于是,在维护终端240,显示出一个表示数据传输控制程序的修改处理业已完成的信息(步骤160)。
图7为表示图6中步骤130机群A210数据传输控制程序修改处理流程的程序框图。
同属于机群A210的各处理机211、212、213和214访问所有磁盘驱动器的I/O作业执行控制信息800中的可执行处理机标定位表821,确认不存在机群非限定作业(步骤310)。具体地说,就是确认在各磁盘驱动器I/O作业执行控制信息800的可执行处理机标定位表821中,对机群210和机群220双方的处理机按照标定可执行的位一律置“1”。这种确认应在各处理机结束作业处理时识别出执行机群标定信息600标定为机群限定模式的同时进行。
伺服处理机215将机群操作模式标定信息700中与机群210相对应的操作模式区720按照标定暂停模式的信息置“2”(步骤315)。如果在机群A210的通道侧处理机211、212处识别出操作模式已置为暂停模式,则通知通道控制器30不再接受新的访问命令(步骤320)。经过步骤320的处理之后,就不再记录可由机群A210的处理机处理的作业。
机群A210的各处理机211、212、213和214访问I/O作业执行控制信息800中所有的可执行处理机标定位表821,确认与机群A210的处理机相对应的位均未按照标定可执行的方式置“1”(步骤325)。如果在可执行处理机标定位表821中分别确认与机群A210的处理机211,212,213,214相对应的位均未置“1”,则通知伺服处理机215该处理机已完成向暂停状态的转换(步骤330)。
当伺服处理机215收到关于步骤330的机群A210中所有处理机皆已完成向暂停状态的转换的通知后,将机群操作模式标定信息700中与机群210相对应的操作模式区720中按照标定维护操作模式的信息置“3”(步骤335)。如果处理机211、212、213和214识别出操作模式已置为维护操作模式,则请求伺服处理机215传送新版本的数据传输程序(步骤340)。伺服处理机215根据这个请求,把在步骤110(图6)中存入磁盘驱动器216的新版本数据传输控制程序传送给各处理机211、212、213和214(步骤345)。处理机211、212、213和214将收到的数据传输控制程序分别存入各自的局部存储器内。
当新的数据传输控制程序已存入机群A210的处理机内时,伺服处理机215将程序的存储已结束的标定信息存入控制存储器230,并通知各处理机。各处理机按照这个通知开始执行新的程序。当通道侧处理机211、212确认新的数据传输控制程序业已存入各处理机的局部存储器内时,即通知通道控制器30重新开始接受访问命令(步骤350)。
图8为表示图6中步骤145机群B220数据传输控制程序修改处理流程的程序框图。
伺服处理机225将机群操作模式标定信息700中与机群B相对应的操作模式区720置“2”(暂停模式)(步骤405)。关于不存在机群非限定作业的问题已在机群A210数据传输控制程序修改处理的步骤310中进行过确认,故此处无需再对其进行确认。
同属于机群B220的处理机221、222机群操作模式标定信息700中,如果识别出操作模式已置为暂停模式,则通知通道控制器30不再接受新的访问命令(步骤415)。机群B220中的各处理机221、222、223和224访问I/O作业执行控制信息800中所有的可执行处理机标定位表821,确认与机群B220的处理机相对应的位均未按照标定可执行的方式置“1”(步骤420)。如果处理机221、222、223和224确认了可执行处理机标定位表821中与按照与机群B的处理机相对应的位均未置“1”,则通知伺服处理机225该处理机均已完成向暂停状态的转换。
当伺服处理机225收到关于机群B220中所有处理机皆已完成向暂停状态的转换的通知时,将机群操作模式标定信息700中与机群B相对应的操作模式区720置“3”(维护操作模式)(步骤426)。如果机群B220的各处理机221、222、223和224识别出操作模式业已置为维护操作模式,则请求伺服处理机225传送数据传输控制程序(步骤427)。伺服处理机225根据这个请求,把存入磁盘驱动器226的数据传输控制程序传送给机群B220中的各处理机(步骤430)。处理机221、222、223和224将传送来的数据传输控制程序分别存入各自的局部存储器内。
当机群B的各处理机确认机群B的所有处理机已将新的数据传输控制程序存入局部存储器内时,即开始执行新的数据传输控制程序。通道侧处理机221、222通知通道控制器30重新开始接受访问命令(步骤440)。
按照如上所述的维护处理,可以修改各处理机执行的数据传输程序,且不影响其他处理机执行不同版本的数据传输程序。因此,无需停止全部磁盘驱动器的运作即可对其进行维护。
图9为本发明的第2实施例的磁盘控制器结构图。
在本实施例中,除将构成磁盘控制器20的各处理机分成4个机群(机群A210、机群B220、机群C270、机群D280)外,与以上说明的实施例具有同样的结构。
如按本实施例所示,构成3个以上机群时,就可以确定多个能够将作业分散处理的机群组合。在本实施例中,为了使各处理机能够识别这种机群组合,在共享存储器230的控制存储器232内设有可分散处理机群组合的信息。
图10和图11为可分散处理机群组合信息的结构图。在可分散处理机群组合信息100中,沿纵向所示机群编号和沿横向所示机群编号的交点处的字段,表示在这些机群之间能否将同一作业分散处理的标定信息。例如,图10所示的可分散处理机群组合信息的所有字段都是标定可进行分散处理的信息“OK”。这就表明所有机群的处理机在其局部存储器内存有相同版本的数据传输控制程序,在任何机群的处理机之间都可以进行分散处理作业。而图11所示的可分散处理机群组合信息,在与机群A与其他机群组合相对应的字段栏中存入表示不能进行分散处理的信息“NG”。只有在同属于机群A的处理机与其他执行不同的数据传输程序的处理机组合时,方才对其设定可进行分散处理的机群组合信息。
在本实施例中,当对数据传输控制程序设置I/O作业执行控制信息800中的可执行处理机标定位表821时,各处理机应按以下准则进行可执行处理机标定位表821的设置。就是要访问执行机群标定信息600,并当执行机群标定区610置“2”时,再访问可分散处理机群组合信息100,将相对于该处理机本身所属机群置为“OK”的字段所对应的其他机群的处理机的可否执行字段置“1”。当执行机群标定区610设置为“1”时,与所有处理机相对应的可否执行的字段均置“1”。
如按照本实施例,则数据传输程序的修改更新等维护处理能够以更小的单位进行。在本实施例中,当机群个数进一步增加时,可将已结束程序修改的那些机群作为第一组、而将尚未完成修改的那些机群作为第二组,并在每个机群组内执行封闭的作业分散处理的同时,进行维护作业。
在以上说明的实施例中,磁盘驱动器的各组成部分相互直接连接,但各组成部分之间也可以通过总线连接。图12示出了各组成部分之间通过总线连接时的磁盘驱动器的结构。在图12中,构成磁盘驱动器的处理机211、212、213和214、伺服处理机215以及共享存储器230通过总线201连接。按这种方式构成的磁盘驱动器仍可用与前面说明的实施例相同的方法进行维护处理,因而无需停止全部数据的传送就能对各处理机执行的控制程序进行版本更新等的修改。
如上所述,如采用本发明,不同机群的处理机能够运行不同版本的程序,因而可防止不同版本程序之间的相互干扰。因此,多处理机系统的运行无需全部停止就能进行程序的修改更新等系统维护处理。