WO2014147817A1 - 情報処理装置、プログラム更新方法、及びプログラム - Google Patents

情報処理装置、プログラム更新方法、及びプログラム Download PDF

Info

Publication number
WO2014147817A1
WO2014147817A1 PCT/JP2013/058293 JP2013058293W WO2014147817A1 WO 2014147817 A1 WO2014147817 A1 WO 2014147817A1 JP 2013058293 W JP2013058293 W JP 2013058293W WO 2014147817 A1 WO2014147817 A1 WO 2014147817A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
update
information processing
firmware
unit
Prior art date
Application number
PCT/JP2013/058293
Other languages
English (en)
French (fr)
Inventor
安武敏夫
Original Assignee
富士通株式会社
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 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2013/058293 priority Critical patent/WO2014147817A1/ja
Priority to JP2015506509A priority patent/JP6028851B2/ja
Publication of WO2014147817A1 publication Critical patent/WO2014147817A1/ja
Priority to US14/852,667 priority patent/US10083023B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Definitions

  • the present embodiment relates to a technique for causing each information processing apparatus to update a program through communication between the information processing apparatuses.
  • the program to be updated is managed by version (version), and a version number (version number) is assigned to the updated program as identification information.
  • version number version number
  • the program can specify the update contents, the new and old versions, etc., by the version number.
  • the version number is written as “version number”.
  • the same program executed by the information processing device is subject to update by updating the program.
  • Recently, the use of a network has been increasing for updating programs executed by information processing apparatuses.
  • the program is updated by replacing the entire program up to that with the updated program, or by replacing a part (difference) to be replaced in the previous program.
  • the program is a program that is executed by an information processing apparatus used as a server, for example.
  • the conventional information processing apparatus When the conventional information processing apparatus updates the program, the conventional information processing apparatus notifies the unspecified information processing apparatus of the version number of the updated program via the network.
  • the other conventional information processing apparatus that has received this notification updates the conventional information processing apparatus that has notified the version number. Request to download the program and update the program.
  • the other conventional information processing apparatus that has updated the program in this way notifies the unspecified information processing apparatus of the version number of the updated program in the same manner as the conventional information processing apparatus that has downloaded the program.
  • the application program (hereinafter abbreviated as “application”) to be executed by the server differs depending on the user who uses the server. Also, the way of thinking about program update usually differs depending on the user. For example, even if a problem that exists in the firmware is found and a version of the firmware that corrects the problem is newly distributed, a user who does not consider the problem does not necessarily want to update the firmware. Users who are afraid of the presence of defects that have some impact on the new version of firmware are likely not to update the firmware. In consideration of the presence of such users, it is also important not to update the program of the information processing apparatus that should not be updated.
  • a conventional information processing apparatus capable of such support is installed as a server and stores a table representing a combination in which the operation of each program is guaranteed. Thereby, when any program is updated in the connected personal computer (PC), other programs are also updated as necessary so that the combination represented by the table is obtained.
  • PC personal computer
  • an object of the present invention is to provide a technique for allowing only an information processing apparatus to update a program to autonomously update the program.
  • One system to which the present invention is applied includes a first storage unit storing a program to be updated, a second storage unit storing setting information indicating whether the program update is valid, and a network.
  • the communication unit receives the update management information representing the first version of the program from the communication unit for performing communication and the first information processing apparatus connected to the network, the received update management information represents the first A first determination unit that determines whether or not the program stored in the first storage unit should be updated based on the first version; and a second that determines whether or not the setting information represents that the program update is valid
  • the communication unit is used.
  • an update unit that updates the program stored in the first storage unit, and communication when the update unit updates the program.
  • an update management unit that transmits update data using a communication unit in response to a request from the second information processing apparatus that has received the transmitted update management information.
  • FIG. 1 is a diagram illustrating a configuration example of an information processing apparatus according to the present embodiment and a configuration example of a network system that employs the information processing apparatus.
  • the information processing apparatus is realized as the server 1 (1-0 to 1-3).
  • the network system has a configuration in which each server 1 is connected to two networks 3 and 4 as shown in FIG.
  • a management terminal device 2 used by an administrator is connected to the network 3.
  • the network 3 is mainly used for management, and the network 4 is used for the server 1 to execute original processing.
  • Each server 1 includes two system management boards (MMB: ManageMent Board) 11, a plurality of system boards (SB) 12, and a network 13 that connects each system management board 11 and each system board 12. .
  • MMB ManageMent Board
  • SB system boards
  • the system management board 11 is a processing module for managing the entire server 1 and controls each system board 12. In order to realize a high tolerance to failures, the system management board 11 is duplicated.
  • the system management board 11 includes an external communication unit 111, a control unit 112, an internal communication unit 113, and a storage unit 114, as shown in FIG.
  • the external communication unit 111 enables communication via the network 3.
  • the internal communication unit 113 enables communication via the network 13.
  • the control unit 112 performs transmission and reception of data via the external communication unit 111 or the internal communication unit 113 as necessary by executing the firmware stored in the storage unit 114, and performs control according to the situation.
  • the storage unit 114 has two MMB storage areas 115, which are areas for storing firmware executed by the control unit 112.
  • the control unit 112 executes firmware stored in one of the two MMB storage areas 115 (115-1 and 115-2).
  • the storage unit 114 stores a maximum of two firmware version compatibility tables 116 and an update flag 117. Details of the update flag 117 and the firmware version compatibility table 116 will be described later.
  • FIG. 2 is a diagram illustrating a configuration example of the system management board.
  • the system management board 11 includes a CPU (Central Processing Unit) 201, a plurality of main memories 202, two LAN (Local Area Network) interfaces 210 and 220, two switching hubs 211, 221 and 2 Two nonvolatile memories 231 (231-1, 231-2) are provided.
  • CPU Central Processing Unit
  • main memories 202 a plurality of main memories 202
  • LAN Local Area Network interfaces
  • switching hubs 211, 221 and 2 Two nonvolatile memories 231 (231-1, 231-2) are provided.
  • the two memories 231 are components of the storage unit 114 shown in FIG.
  • an MMB storage area 115 in which the firmware 240 is stored is secured, and a guaranteed firmware compatibility table 116 is stored.
  • the update flag 117 is stored only in one of the two memories 231 or stored in the two memories 231.
  • the control unit 112 shown in FIG. 1 includes a CPU 201 and a plurality of main memories 202 as constituent elements.
  • the CPU 201 manages the entire server 1 by reading the firmware 240 stored in one of the two memories 231 into the main memory 202 and executing it.
  • the LAN interface 210 and the switching hub 211 are components of the external communication unit 111.
  • the LAN interface 220 and the switching hub 221 are components of the internal communication unit 113.
  • the CPU 201 controls the LAN interfaces 211 and 221 via the switching hubs 211 and 221, and performs communication via the networks 3 and 13.
  • the firmware 240 stored in each memory 231 is a program to be updated.
  • two MMB storage areas 115 for storing the firmware 240 are secured so that the firmware 240 can be updated while the firmware 240 is being executed.
  • the new firmware 240 is stored in the memory 231-2.
  • the new firmware 240 is stored in the memory 231-1.
  • the CPU 201 reads the latest firmware 240 when starting up.
  • the system board 12 is a processing module for providing a service by the server 1.
  • the system board 12 includes a control unit 122, an internal communication unit 123, and a storage unit 124.
  • the internal communication unit 123 enables communication via the network 13.
  • the control unit 122 executes the BIOS and firmware stored in one of the two BIOS (Basic Input / Output System) storage areas 125 (125-1, 125-2) reserved in the storage unit 124. .
  • BIOS Basic Input / Output System
  • FIG. 3 is a diagram illustrating a configuration example of the system board.
  • the system board 12 includes a CPU 301, a plurality of main memories 302, a north bridge chip 303, a south bridge chip 304, an MPU (Micro-Processing Unit) 305, a main memory 306, a LAN interface 310, and two Non-volatile memories 321 (321-1, 321-2) are provided.
  • the LAN interface 310 is a component of the internal communication unit 123 shown in FIG.
  • the two memories 321 are components of the storage unit 124 shown in FIG. Each memory 321 stores a BIOS 331 and firmware 332. Thereby, each memory 321 is a BIOS storage area 125.
  • the CPU 301 executes the BIOS 331 stored in one of the two memories 321, and the MPU 305 reads and executes the firmware 332 from the memory 321 in which the BIOS 331 executed by the CPU 301 is stored. For this reason, the control unit 122 executes the BIOS 331 and the firmware 332.
  • the CPU 301 After starting the BIOS 331, the CPU 301 further starts an OS (Operating System) and an application.
  • the storage storing the OS and applications may be mounted on the system board 12, but may be mounted on another processing module. As such, the storage location is not particularly limited, and is not shown here. Neither the OS nor the application is important in explaining this embodiment.
  • CPU 301 realizes provision of service by server 1 by executing an application.
  • the MPU 305 executes processing related to management of the system board 12 by executing the firmware 332. From this, MPU305 is a component of BMC (Baseboard
  • the BIOS 331 and the firmware 332 executed on the system board 12 are both update targets. Therefore, like the system management board 11, each memory 321 is provided as each BIOS storage area 125, and the BIOS 331 and the firmware 332 are stored in each memory 321.
  • the system management board 11 performs communication and controls each system board 12. Therefore, the firmware 240 executed by the system management board 11 and the BIOS 331 and the firmware 332 executed by the system board 12 need to be a combination whose operation is guaranteed.
  • the guaranteed firmware version compatibility table 116 is information for confirming whether the firmware 240, the BIOS 331, and the firmware 332 are a combination of operation guarantees.
  • FIG. 4 is a diagram for explaining a configuration example of the guaranteed firmware version compatibility table. As shown in FIG. 4, in the guaranteed firmware version compatibility table 116, for each entry, the guaranteed combination number, the version number of the firmware 240 of the system management board 11, the version number of the BIOS 331 of the system board 12, and the version number of the firmware 332 are shown. Stored.
  • the program is updated in the order of the firmware 240 of the system management board 11, the BIOS 331 of the system board 12, and the firmware 332.
  • the update flag 117 is setting information indicating whether or not the program update is valid. In this embodiment, when the update flag 117 indicates that the program is updated, the firmware 240 is updated as necessary. Thereby, in this embodiment, the server 1 which is not made into the update object of a program in the server 1 can be designated separately.
  • the servers 1 shown in FIG. 1 are used by different users (clients), it is normal that different applications are executed on each server 1. Even if the same application is executed by a plurality of servers 1, the version number or specifications are often different. Even if the same BIOS 331 in which a defect exists is executed due to a difference in version number or specification, the defect may not surface. A user whose defect has not surfaced may place an emphasis on the risk that another defect will surface by updating to a BIOS 331 whose version has been corrected. For this reason, even if a version of the BIOS 331 in which the found defect is corrected is distributed, not all users want to update the BIOS 331. Accordingly, in the present embodiment, the server 1 that is the update target of the program is set in advance by the update flag 117 so that an undesired update is not performed.
  • the reason why the program update is not desired is not limited to the above.
  • the other main reason is that the program is not updated until the reliability of the newly distributed version of the program is confirmed.
  • Storing (including updating) the update flag 117 in each server 1 may be performed using the management terminal device 2.
  • a switch or the like that can switch the contents of the update flag 117 may be provided for each server 1, and the update flag 117 having a desired content may be stored by operating the switch.
  • the administrator who operates the management terminal device 2 sets the update flag 117 to be set in each server 1, and then, among the firmware 240 of the system management board 11, and if necessary, among the BIOS 331 and the firmware 332 of the system board 12 Update at least one of the The method for performing this update is not particularly limited. Here, for convenience of explanation, it is assumed that the BIOS 331 and the firmware 332 of the system board 12 are both updated.
  • the server 1 When the firmware 240 is updated, the server 1 is restarted including the system management board 11.
  • the restarted system management board 11 broadcasts a message storing MMB firmware information indicating the version number of the updated firmware 240, thereby notifying the other server 1 of the MMB firmware information.
  • the system management board 11 of the server 1 that received the message indicated that the version number indicated by the MMB firmware information in the message is newer than the version number of the firmware 240 currently being executed, and the update flag 117 indicates that the update is valid.
  • the update data of the firmware 240 is requested as a response.
  • the system management board 11 of the server 1 that has received the message updates the firmware 240.
  • the firmware 240 is updated by storing the firmware 240 obtained from the update data in the memory 231 in which the currently executing firmware 240 is not stored.
  • the update data is assumed to be compressed data of the entire firmware 240.
  • the compressed data is hereinafter referred to as “firmware data” or simply “data”. The same applies to the BIOS 331 and the firmware 332.
  • the system management board 11 of the server 1 sends a response. do not do. As a result, the firmware 240 is not updated in the server 1 in which the firmware 240 does not need to be updated or the firmware 240 should not be updated.
  • the system management board 11 that has updated the firmware 240 checks the version numbers of the BIOS 331 and the firmware 332 with respect to any of the subordinate system boards 12, and refers to the guaranteed firmware version compatibility table 116. Thereby, it is confirmed whether or not the updated firmware 240, BIOS 331, and firmware 332 are a combination whose operation is guaranteed. As a result, when it is determined that the combination is not guaranteed to operate, the system management board 11 requests the BIOS 331 and the firmware 332 data from the server 1 that requested the firmware data. The system management board 11 causes the system board 12 to update the BIOS 331 and the firmware 332 by transmitting each data of the BIOS 331 and the firmware 332 received by the request to each system board 12.
  • the update is reflected to the other server 1 directly or indirectly.
  • the firmware 240 data when the firmware 240 data is transmitted, the latest guaranteed firmware version compatibility table 116 is transmitted together.
  • the system management board 11 of the server 1 that has received the data of the firmware 240 refers to the guaranteed firmware version compatibility table 116 transmitted together with the data.
  • the guaranteed firmware version compatibility table 116 Since it is difficult to predict in advance the latest version program and the version number of another program whose operation is guaranteed, the guaranteed firmware version compatibility table 116 is updated by updating any one program. It is necessary to store in the target server 1. However, by transmitting the guaranteed firmware version compatibility table 116 to the server 1 together with the firmware data, the need for the administrator to store the guaranteed firmware version compatibility table 116 in each server 1 in advance is avoided.
  • the guaranteed firmware version compatibility table 116 may be directly stored in one server 1 that updates the program. Therefore, by transmitting the guaranteed firmware version compatibility table 116 to the server 1 together with the firmware data, the burden on the administrator can be further reduced.
  • FIG. 5 is a diagram illustrating an example of program update performed by each information processing apparatus when the information processing apparatus according to the present embodiment is used.
  • the two closed nets 50 (50-1 and 50-2) shown in FIG. 5 are data centers, for example, and many servers 1 are installed.
  • the two closed nets 50 are connected by, for example, a WAN (Wide Area Network) not shown.
  • the program of the server 1-11 is updated by the administrator, and the update of the programs of the two servers 1-12 and 1-13 is updated in the closed net 50-1.
  • -2 represents a state in which the program of one server 1-21 has been updated.
  • the update flag 117 of the servers 1-14 to 1-17 of the closed net 50-1 indicates that the update is valid
  • the programs of these servers 1-14 to 1-17 are updated as needed.
  • the update flag 117 of the servers 1-22 to 1-27 of the closed net 50-2 indicates that the update is valid
  • the programs of these servers 1-22 to 1-27 are updated as needed.
  • FIG. 6 is a diagram illustrating a system management board and a process executed by the system board for each server that has updated the program and each server that has updated the program.
  • the system management board 11 is represented as “MMB”
  • the system board 12 is represented as “SB”.
  • the system management board 11 of the server 1-1 executes update management processing for causing the other server 1 to update the program by activation or restart (SM1).
  • SM1 system management processing
  • one system board 12 of the server 1-1 performs a process for responding to a request from the system management board 11 (SS1).
  • the system management board 11 of the server 1-2 executes MMB update processing for performing program update as necessary in response to execution of update management processing by the system management board 11 of the server 1-1. (SM2).
  • MMB update processing for performing program update as necessary in response to execution of update management processing by the system management board 11 of the server 1-1.
  • SS2 system management board 11 of the server 1-2 executes SB update process for updating the BIOS 331 and the firmware 332 as necessary.
  • Data transmission / reception between the servers 1 is performed between the system management boards 11.
  • Data to be transmitted from the system board 12 to another server 1 is performed via the system management board 11 and the network 3.
  • Both the SM1 update management process and the SM2 MMB update process are realized by the CPU 201 of the system management board 11 executing the firmware 240.
  • Both the corresponding process of SS1 and the SB update process of SS2 are realized by the MPU 305 executing the firmware 332, for example.
  • FIG. 13 is a sequence diagram illustrating an example of data transmission / reception performed between a server that updates a program and a server that updates the program.
  • FIG. 13 is described together with the description of FIGS.
  • FIGS. 7 and 8 are flowcharts of the update management process executed as SM1. Next, the update management process will be described in detail with reference to FIGS.
  • This update management process is a process executed to cause another server 1 to update the program as described above.
  • the number of servers 1 to be updated is between 0 and the number of servers 1 that can receive messages.
  • 7 and 8 illustrate the flow of processing to be executed on the assumption that the program of one server 1 is updated in order to facilitate understanding.
  • the CPU 201 creates a message storing MMB firmware information indicating the version number of the updated firmware 240, and broadcasts the created message through the LAN interface 210 (SM11, sequence S1 in FIG. 13). Thereafter, the CPU 201 monitors reception of a response by the LAN interface 210 and determines whether a response has been received from any server 1 (SM12). When any server 1 transmits a response, the determination of SM12 is Yes and the process proceeds to SM13. If no server 1 transmits a response, the determination of SM12 is No and the process proceeds to SM19.
  • SM12 server 1
  • SM19 the CPU 201 determines whether or not the specified time has been exceeded.
  • This specified time is a time set to cope with a period limited to the update of the program of the other server 1. If the time elapsed since the transmission of the message storing the MMB firmware information for the first time does not exceed the specified time, the determination in SM19 is No and the process returns to SM11. As a result, the CPU 201 transmits the message again. On the other hand, when the time elapsed since the transmission of the message storing the MMB firmware information for the first time exceeds this specified time, the determination of SM19 is Yes, and the update management process ends here.
  • the firmware 240 data is transmitted to the server 1 that has received the response.
  • the CPU 201 determines whether or not the number of executions of transmitting the data of the firmware 240 to the server 1 that has received the response is equal to or less than the specified number. If the number of executions is less than the specified number, the determination of SM13 is yes and the process proceeds to SM14. If the number of executions exceeds the specified number, the determination in SM13 is No, and the update management process ends here.
  • the specified number of times is a threshold set in order to prevent the firmware 240 from being transmitted indefinitely.
  • the CPU 201 transmits the data of the firmware 240 to the server 1 that has received the response (sequence S3 in FIG. 13).
  • the CPU 201 determines whether or not a message indicating that the reception has been normally completed is received from the server 1 that is the data transmission destination of the firmware 240 (SM15).
  • SM15 the determination in SM15 is Yes and the process proceeds to SM21 in FIG.
  • the determination of SM15 is No and the process proceeds to SM16.
  • the CPU 201 determines whether a message requesting retransmission is received. When a message requesting retransmission is received, the determination of SM16 is Yes and the process proceeds to SM17. If a message requesting retransmission is not received, the determination in SM16 is No and the process returns to SM14. Thereby, the CPU 201 transmits the data of the firmware 240 again.
  • SM17 the CPU 201 has received a message requesting retransmission from the same server 1 (indicated as “same IP” in FIG. 7; IP is an abbreviation for Internet Protocol) or more. judge.
  • IP is an abbreviation for Internet Protocol
  • the determination of SM17 is Yes, and the CPU 201 then sends firmware to the server 1 that has transmitted the message requesting retransmission.
  • the transmission of 240 data is stopped (SM18). Thereafter, the process returns to SM11. If a message requesting re-transmission has not been received from the same server 1 a specified number of times or more, the determination in SM 17 is No and the process returns to SM 14.
  • the CPU 201 determines whether a message requesting the BIOS 331 and firmware 332 data has been received from the server 1. When the message is received, the determination of SM21 is Yes and the process proceeds to SM22. If the message is not received, the determination in SM21 is No and the process returns to SM11 in FIG.
  • the CPU 201 requests and acquires the data of the BIOS 331 and the firmware 332 from one system board 12 via the LAN interface 220, and transmits the acquired data from the LAN interface 210 (sequence in FIG. 13). S6).
  • the CPU 201 determines whether or not a message indicating normal termination has been received from the server 1 (SM23). When a message indicating normal termination is received, the determination of SM23 is Yes and the process proceeds to SM24. If a message indicating normal termination is not received, the determination of SM23 is No and the process proceeds to SM25.
  • SM24 the CPU 201 determines whether or not the specified time has been reached. If the time elapsed since the first transmission of the message storing the MMB firmware information has reached this specified time, the determination in SM24 is Yes, and the update management process ends here. When the elapsed time since the first message storing the MMB firmware information has not reached this specified time, the determination in SM24 is No and the process returns to SM11 in FIG.
  • the CPU 201 determines whether a message requesting retransmission is received. When a message requesting retransmission is received, the determination of SM25 is Yes and the process proceeds to SM26. If a message requesting retransmission is not received, the determination of SM25 is No and the process returns to SM22. Thereby, the CPU 201 causes the BIOS 331 and the firmware 332 to be transmitted again.
  • the CPU 201 determines whether or not a message requesting retransmission is received from the same server 1 a specified number of times or more. When a message requesting retransmission is received from the same server 1 a specified number of times or more, the determination of SM26 is Yes, and the CPU 201 then sends a BIOS 331 to the server 1 that has transmitted the message requesting retransmission. And transmission of each data of the firmware 332 is stopped (SM27). Thereafter, the process returns to SM11 in FIG. If a message requesting re-transmission has not been received from the same server 1 a specified number of times or more, the determination in SM26 is No and the process returns to SM22.
  • the CPU 201 requests each data of the BIOS 331 and the firmware 332 from one system board 12.
  • the MPU 305 of the system board 12 reads the data of the firmware 332 and the BIOS 331 from the memory 321 storing the firmware 332 being executed, and transmits the read data to the LAN interface 310.
  • processing for transmitting the data of the BIOS 331 and the firmware 332 to the system management board 11 is performed according to a request from the system management board 11.
  • FIGS. 9 and 10 are flowcharts of the MMB update process executed as SM2. Next, the MMB update process will be described in detail with reference to FIGS.
  • the CPU 201 on the system management board 11 that executes the update management process broadcasts a message storing MMB firmware information in SM1.
  • the MMB update process is executed when the message is received.
  • the CPU 201 determines whether or not the model of the server 1 represented by the MMB firmware information in the received message is a model that executes the same type of program (SM51). If the server 1 that transmitted the message matches the type of program to be updated, the determination of SM51 is Yes and the process proceeds to SM52. If the server 1 that sent the message does not match the type of program to be updated, the determination in SM51 is No, and the MMB update process ends here.
  • SM51 model that executes the same type of program
  • the CPU 201 determines whether the version number of the firmware 240 indicated by the MMB firmware information in the received message is newer than the version number of the firmware 240 currently being executed. If the server 1 that sent the message has updated the firmware 240 to a newer version, the determination in SM52 is Yes and the process proceeds to SM53. If the server 1 that sent the message has not updated to the newer version of firmware 240, the determination of SM52 is No and the MMB update process ends here.
  • the CPU 201 determines whether or not the update setting is valid. If the update flag 117 indicates that the update is valid, the determination of SM53 is Yes and the process proceeds to SM54. If the update flag 117 does not indicate that the update is valid, the determination in SM53 is No, and the MMB update process ends here.
  • the CPU 201 acquires the requested data by transmitting a message requesting data of the firmware 240 to the server 1 that has received the message via the LAN interface 210 (sequence S2 in FIG. 13). Next, the CPU 201 determines whether or not the checksum calculated from the acquired data matches the checksum in the acquired data (SM55). If an error occurs before data is acquired, their checksums do not match, so the determination in SM55 is No and the process moves to SM56. If no error has occurred before data acquisition, the determination of SM55 is Yes and the process proceeds to SM57.
  • the CPU 201 determines whether the checksum mismatch is equal to or less than the specified number. If the checksums do not match even after receiving the firmware 240 data for the specified number of times, the determination in SM56 is No, and the MMB update process ends here. If the firmware 240 data has not been received the specified number of times, the determination of SM56 is Yes and the process returns to SM54. Thereby, the CPU 201 requests transmission of data of the firmware 240 again.
  • the CPU 201 expands the received data, restores the firmware 240, writes the restored firmware 240 into the memory 231 in which the firmware 240 that has not been executed is stored, and the guaranteed firmware version compatibility table 116. Are also written in the same memory 231.
  • the CPU 201 determines whether or not the data expansion has ended normally (SM58).
  • the firmware 240 can be normally written in the memory 231, the determination in SM58 is Yes and the process proceeds to SM59 in FIG.
  • the determination in SM58 is No and the process proceeds to SM65 in FIG.
  • the CPU 201 instructs the LAN interface 210 to transmit a message indicating a successful update to the server 1 that has transmitted the data of the firmware 240 (sequence S4 in FIG. 13).
  • the CPU 201 instructs the LAN interface 210 to notify the management terminal device 2 that the firmware 240 has been successfully updated (SM60).
  • the notification that the update is successful can be performed by e-mail, for example.
  • the CPU 201 requests notification of each version number of the BIOS 331 and the firmware 332 to one system board 12 using the LAN interface 220, and confirms each version number notified by the request (SM61). . After the confirmation, the CPU 201 refers to the guaranteed firmware version compatibility table 116 stored in the memory 231, and whether or not the combination of the updated firmware 240, the BIOS 331 executed by the system board 12, and the firmware 332 is guaranteed. (SM62). If the firmware 240, the BIOS 331, and the firmware 332 are a combination whose operation is not guaranteed, the determination in SM62 is No and the process proceeds to SM63. If these are combinations whose operation is guaranteed, the determination of SM62 is Yes, and the MMB update process ends here.
  • the CPU 201 uses the LAN interface 210 to transmit a message requesting the BIOS 331 and the firmware 332 data (sequence S5 in FIG. 13).
  • the CPU 201 uses the LAN interface 220 to transmit the received data to each system board 12 to instruct updating.
  • the CPU 201 determines whether transmission of each data of the BIOS 331 and the firmware 332 is requested from any of the system boards 12 (SM64).
  • the MPU 305 of each system board 12 writes the BIOS 331 and the firmware 332 restored from the transmitted data of the BIOS 331 and the firmware 332 in the memory 321 in which the firmware 332 not being executed is stored.
  • the MPU 305 uses the LAN interface 310 to notify the system management board 11 of the update result of the BIOS 331 and the firmware 332 thus performed.
  • the MPU 305 that could not normally store at least one of the BIOS 331 and the firmware 332 in the memory 321 requests the system management board 11 to transmit the data of the BIOS 331 and the firmware 332.
  • the MPU 305 that has successfully stored the BIOS 331 and the firmware 332 in the memory 321 notifies the system management board 11 of a successful update.
  • the determination of SM64 is Yes and the process returns to SM63.
  • the CPU 201 transmits the data of the BIOS 331 and the firmware 332 only to the BIOS 331 or the system board 12 that could not properly update the firmware 332.
  • the determination of SM64 is No and a message indicating the successful update of the BIOS 331 and the firmware 332 is transmitted to the server 1 (sequence S7 in FIG. 13). After that, the MMB update process ends.
  • the CPU 201 determines whether or not the development abnormality has exceeded the specified number of times. If the development abnormality continues to occur more than the specified number of times, the determination of SM65 is Yes and the process proceeds to SM66. If the development abnormality does not continue for the specified number of times or more, the determination of SM65 is No and the process returns to SM57 in FIG.
  • the CPU 201 uses the LAN interface 210 to notify the management terminal apparatus 2 that an abnormality has occurred that prevents the firmware 240 from being updated successfully. Notification that an abnormality that does not succeed in updating has occurred can be made by e-mail, for example. After such notification, the MMB update process ends.
  • the BIOS 331 and the firmware 332 are notified that the BIOS 331 and the firmware 332 need not be updated to the system board 12 that has requested the notification of the version numbers of the BIOS 331 and the firmware 332.
  • the determination of SM62 is No, each system board 12 is notified that the BIOS 331 and the firmware 332 need to be updated. Thereby, the request of each data of the BIOS 331 and the firmware 332 in the SM 63 is performed by a request from any of the system boards 12.
  • FIG. 11 and 12 are flowcharts of the SB update process executed as SS2. Finally, the SB update process will be described in detail with reference to FIG. 11 and FIG.
  • a request for notification of the version numbers of the BIOS 331 and the firmware 332 is made to one system board 12.
  • the SB update process shown in FIGS. 11 and 12 is a process executed by the MPU 305 in response to the notification request.
  • the MPU 305 determines whether or not notification of the version numbers of the BIOS 331 and the firmware 332 has been requested from the system management board 11 (SS11).
  • SS11 system management board 11
  • the determination of SS11 is Yes and the process proceeds to SS12.
  • the determination in SS11 is No, and the SB update process ends here.
  • the MPU 305 transmits information indicating each requested version number to the system management board 11 using the LAN interface 310.
  • the MPU 305 determines whether or not a message indicating that the BIOS 331 and the firmware 332 need to be updated is received from the system management board 11 (SS13).
  • the system management board 11 transmits a message indicating that updating is necessary to each system board 12, so the determination in SS13 is Yes and the process proceeds to SS14.
  • the determination of SM62 in FIG. 10 is Yes, since the system board 12 transmits a message indicating that the update is not necessary to the own system management board 11, the determination of SS13 is No, and the SB update processing is performed here. Ends.
  • the MPU 305 requests the system management board 11 to transmit the data of the BIOS 331 and the firmware 332 using the LAN interface 310.
  • the MPU 305 waits to receive the BIOS 331 and firmware 332 data from the system management board 11, and the checksum calculated from the received data matches the checksum in the acquired data. It is determined whether or not. If an error occurs before data is acquired, the checksums do not match, so the determination in SS15 is No and the process moves to SS16. If no error has occurred before data is acquired, the determination in SS15 is Yes and the process proceeds to SS17.
  • the MPU 305 determines whether the checksum mismatch is equal to or less than the specified number. If the checksums do not match even after receiving the prescribed number of times, the BIOS 331, and the firmware 332 data, the determination in SS16 is No, and the SB update process is terminated here. When each data of the specified number of times, BIOS 331, and firmware 332 has not been received, the determination of SS16 is Yes and the process returns to SS14. Thereby, the MPU 305 requests transmission of each data of the BIOS 331 and the firmware 332 again.
  • the MPU 305 expands each received data, and writes the restored BIOS 331 and firmware 332 firmware 240 into the memory 321 in which the firmware 332 not being executed is stored.
  • the MPU 305 determines whether or not the data expansion has ended normally (SS18).
  • the BIOS 331 and the firmware 332 can be normally written in the memory 231
  • the determination in SS 18 is Yes and the process proceeds to SS 19 in FIG.
  • the determination in SS 18 is No and the process proceeds to SS 21 in FIG.
  • the MPU 306 transmits a message indicating the successful update of the BIOS 331 and the firmware 332 to the system management board 11 using the LAN interface 310.
  • the MPU 305 requests the system management board 11 to notify the management terminal device 2 of the successful update using the LAN interface 310 (SS20). Thereafter, the SB update process ends.
  • the MPU 305 determines whether or not the deployment abnormality has exceeded the specified number of times. If the deployment abnormality continues to occur more than the specified number of times, the determination of SS21 is Yes and the process proceeds to SS22. If the development abnormality does not continuously occur for the specified number of times or more, the determination in SS21 is No and the process returns to SS17 in FIG.
  • the MPU 305 uses the LAN interface 310 to request the system management board 11 to notify the management terminal apparatus 2 that an abnormality has occurred in which updating of the BIOS 331 and the firmware 332 has not succeeded. Thereafter, the SB update process ends.
  • the program is updated in the order of firmware 240 ⁇ BIOS 331 and firmware 332, but it is not necessary to update the program in that order.
  • a program to be updated may be arbitrarily selected from the firmware 240, the BIOS 331, and the firmware 332.
  • the combination of programs for which the operation is guaranteed is not limited to the combination of the firmware 240, the BIOS 331, and the firmware 332.
  • the combination of programs for which the operation is guaranteed may be set by the administrator as necessary.
  • each server 1 can update the program in the same manner as when updating a program to a newer version. Whether the update to the newer version of the program is enabled and whether the update to the older version of the program is enabled are controlled, for example, by preparing a dedicated update flag 117, respectively. Can do.

Abstract

 本発明を適用した1システムは、更新対象となるプログラムを記憶した第1の記憶部と、プログラムの更新が有効か否かを表す設定情報を記憶した第2の記憶部と、ネットワークを介した通信を行うための通信部と、ネットワークと接続された第1の情報処理装置から、プログラムの第1の版を表す更新管理情報を通信部が受信した場合に、受信した更新管理情報が表す第1の版に基づいて、第1の記憶部に記憶されたプログラムを更新すべきか否か判定する第1の判定部と、プログラムの更新が有効と設定情報が表しているか否か判定する第2の判定部と、プログラムを更新すべきと第1の判定部が判定し、且つプログラムの更新が有効と設定情報が表していると第2の判定部が判定した場合に、通信部を用いて、第1の情報処理装置にプログラムの更新用データを要求して取得し、取得した更新用データを用いて、第1の記憶部に記憶されているプログラムを更新する更新部と、更新部がプログラムを更新した場合に、通信部を用いて更新管理情報を送信させ、送信させた更新管理情報を受信した第2の情報処理装置からの要求により、通信部を用いて更新用データを送信させる更新管理部と、を有する。

Description

情報処理装置、プログラム更新方法、及びプログラム
 本実施形態は、情報処理装置間の通信により、各情報処理装置にプログラムの更新を行わせるための技術に関する。
 情報処理装置(コンピュータ)に実行させるプログラムの大部分は、機能の追加、不具合の修正、等のために随時、更新される。更新が行われるプログラムは、版(バージョン)で管理され、更新されたプログラムには、識別情報として版番(バージョン番号)が割り当てられる。それにより、プログラムは、版番により、更新内容、及び版間の新旧、等を特定できるようになっている。以降、版番は「版数」と表記する。
 プログラムの更新により、情報処理装置が実行する同じプログラムが更新の対象となる。情報処理装置が実行するプログラムの更新には、最近ではネットワークを用いることが増えている。プログラムの更新は、それまでのプログラム全体を更新後のプログラム全体と置き換えるか、或いはそれまでのプログラムのなかで置き換えるべき一部分(差分)を置き換えることで行われる。
 更新するプログラムによっては、多くの情報処理装置でプログラムを迅速に更新させなければならない場合がある。そのプログラムとは、例えばサーバとして用いられる情報処理装置に実行させるプログラムである。
 プログラムを更新すべき情報処理装置が多い場合、管理者が個別に情報処理装置のプログラムを更新することは、負担が大きく、且つ時間がかかる。このことから、従来の情報処理装置のなかには、ネットワークを介した通信により、プログラムの更新を自律的に行えるものがある。
 この従来の情報処理装置は、自身がプログラムを更新した場合、ネットワークを介して、更新後のプログラムの版数を不特定の情報処理装置を対象に通知する。この通知を受信した他の従来の情報処理装置は、通知された版数が、現在、使用しているプログラムの版数より新しい場合、版数を通知した従来の情報処理装置に対し、更新後のプログラムのダウンロードを要求して、プログラムを更新する。そのようにしてプログラムを更新した他の従来の情報処理装置は、プログラムをダウンロードした従来の情報処理装置と同様に、更新後のプログラムの版数を不特定の情報処理装置を対象に通知する。この結果、従来の情報処理装置を複数台ネットワークに接続したシステムでは、1台の従来の情報処理装置でプログラムを更新すると、他の全ての従来の情報処理装置がプログラムを更新する。
 サーバに実行させるアプリケーション・プログラム(以降「アプリケーション」と略記)は、そのサーバを利用するユーザによって異なる。また、プログラムの更新に対する考え方もユーザによって異なるのが普通である。例えばファームウェアに存在する不具合が判明し、その不具合を修正した版のファームウェアを新たに配布されたとしても、その不具合を問題としないユーザはファームウェアの更新を望むとは限らない。新しい版のファームウェアに何らかの影響を及ぼす不具合の存在を恐れるユーザは、そのファームウェアの更新を望まない可能性が高い。このようなユーザの存在を考慮する場合、プログラムを更新すべきでない情報処理装置のプログラムの更新は行わないようにすることも重要と思われる。
 情報処理装置の多くは、ファームウェア、及びOS(Operating System)が実行される。文書の作成、或いは数値計算、等の或る特定の目的のために設計されたアプリケーション・ソフトウェアは、ファームウェア上、或いはOS上で動作する。このことから、プログラムの更新は、情報処理装置で実行されている他のプログラムを考慮して、各プログラムが動作保証される組み合わせとなるように行う必要がある。このことから、従来の情報処理装置のなかには、ネットワークを介して接続された他の情報処理装置における何れかのプログラムの更新により、各プログラムが動作保証されない組み合わせとなるように支援するものがある。
 そのような支援が可能な従来の情報処理装置は、サーバとして設置され、各プログラムの動作保証される組み合わせを表すテーブルを格納している。それにより、接続されたパーソナルコンピュータ(PC)で何れかのプログラムが更新される場合、そのテーブルが表す組み合わせとなるように、必要に応じて他のプログラムも更新させるようになっている。
 この従来の情報処理装置に制御されるプログラムの更新を行わせる場合、PCのユーザは、更新のための専用のソフトウェアをダウンロードし、そのソフトウェアによる問い合わせに回答しなければならない。そのため、プログラムを更新すべきPCの台数が多い場合、ユーザが行う操作は非常に面倒なものとなる。
特開2011-95950号公報 特開2009-230398号公報 特開平8-249163号公報 特開平8-83229号公報 特開2001-109619号公報
 1側面では、本発明は、プログラムを更新すべき情報処理装置のみに、そのプログラムの更新を自律的に行わせるための技術を提供することを目的とする。
 本発明を適用した1システムは、更新対象となるプログラムを記憶した第1の記憶部と、プログラムの更新が有効か否かを表す設定情報を記憶した第2の記憶部と、ネットワークを介した通信を行うための通信部と、ネットワークと接続された第1の情報処理装置から、プログラムの第1の版を表す更新管理情報を通信部が受信した場合に、受信した更新管理情報が表す第1の版に基づいて、第1の記憶部に記憶されたプログラムを更新すべきか否か判定する第1の判定部と、プログラムの更新が有効と設定情報が表しているか否か判定する第2の判定部と、プログラムを更新すべきと第1の判定部が判定し、且つプログラムの更新が有効と設定情報が表していると第2の判定部が判定した場合に、通信部を用いて、第1の情報処理装置にプログラムの更新用データを要求して取得し、取得した更新用データを用いて、第1の記憶部に記憶されているプログラムを更新する更新部と、更新部がプログラムを更新した場合に、通信部を用いて更新管理情報を送信させ、送信させた更新管理情報を受信した第2の情報処理装置からの要求により、通信部を用いて更新用データを送信させる更新管理部と、を有する。
 本発明を適用した1システムでは、CPUパッケージ(演算処理装置)に障害が発生したとしても、その障害に伴う運用状態の低下をより抑えることができる。
本実施形態による情報処理装置の構成例、及びその情報処理装置を採用したネットワークシステムの構成例を説明する図である。 システム管理ボードの構成例を説明する図である。 システムボードの構成例を説明する図である。 保証ファーム版数互換性テーブルの構成例を説明する図である。 本実施形態による情報処理装置を用いた場合に、各情報処理装置によって行われるプログラムの更新例を説明する図である。 プログラムを更新したサーバ、及びプログラムを更新するサーバ別に、システム管理ボード、及びシステムボードが実行する処理を表す図である。 更新管理処理のフローチャートである。 更新管理処理のフローチャートである(続き)。 MMB更新処理のフローチャートである。 MMB更新処理のフローチャートである(続き)。 SB更新処理のフローチャートである。 SB更新処理のフローチャートである(続き)。 プログラムを更新したサーバ、及びプログラムを更新するサーバの間で行われるデータの送受信例を表すシーケンス図である。 本実施形態による情報処理装置を用いた場合に、各情報処理装置によって行われるプログラムの他の更新例を説明する図である。
 以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
 図1は、本実施形態による情報処理装置の構成例、及びその情報処理装置を採用したネットワークシステムの構成例を説明する図である。
 本実施形態による情報処理装置は、サーバ1(1-0~1-3)として実現されている。ネットワークシステムは、図1に表すように、各サーバ1を2つのネットワーク3、4にそれぞれ接続させた構成となっている。ネットワーク3には、各サーバ1の他に、管理者が使用する管理端末装置2が接続されている。ネットワーク3は、主に管理用に使用され、ネットワーク4は、サーバ1が本来の処理を実行するために使用される。
 各サーバ1は、2つのシステム管理ボード(MMB:ManageMent Board)11と、複数のシステムボード(SB)12と、各システム管理ボード11と各システムボード12間を接続するネットワーク13とを備えている。
 システム管理ボード11は、サーバ1全体を管理するための処理モジュールであり、各システムボード12を制御する。障害への高い耐性を実現するために、システム管理ボード11は2重化されている。
 システム管理ボード11は、図1に表すように、外部通信部111、制御部112、内部通信部113、及び記憶部114を備えている。
 外部通信部111は、ネットワーク3を介した通信を可能にする。内部通信部113は、ネットワーク13を介した通信を可能にする。制御部112は、記憶部114に記憶されたファームウェアを実行することにより、外部通信部111、或いは内部通信部113を介したデータの送受信を必要に応じて行い、状況に応じた制御を行う。
 記憶部114には、制御部112が実行するファームウェアを格納する領域であるMMB保存領域115が2つ確保されている。制御部112は、2つのMMB保存領域115(115-1、115-2)のうちの何れかに格納されているファームウェアを実行する。また、記憶部114には、ファームウェア版数互換テーブル116を最大2つ記憶されると共に、更新フラグ117が記憶されている。更新フラグ117、及びファームウェア版数互換テーブル116についての詳細は後述する。
 図2は、システム管理ボードの構成例を説明する図である。図2に表すように、システム管理ボード11は、CPU(Central Processing Unit)201、複数のメインメモリ202、2つのLAN(Local Area Network)インタフェース210、220、2つのスイッチングハブ211、221、及び2つの不揮発性のメモリ231(231-1、231-2)を備えている。
 2つのメモリ231は、図1に表す記憶部114の構成要素である。各メモリ231には、ファームウェア240が格納されるMMB保存領域115が確保され、保証ファーム互換性テーブル116が格納される。更新フラグ117は、2つのメモリ231のうちの一方にのみ、格納されるか、或いは2つのメモリ231に格納される。
 図1に表す制御部112は、CPU201、及び複数のメインメモリ202が構成要素となっている。CPU201は、2つのメモリ231のうちの一方に格納されたファームウェア240をメインメモリ202に読み出して実行することにより、サーバ1全体の管理を行う。
 LANインタフェース210、及びスイッチングハブ211は、外部通信部111の構成要素である。LANインタフェース220、及びスイッチングハブ221は、内部通信部113の構成要素である。CPU201は、スイッチングハブ211、及び221を介してLANインタフェース211、及び221を制御し、ネットワーク3、及び13を介した通信を行う。
 各メモリ231に格納されたファームウェア240は、更新対象となるプログラムである。本実施形態では、ファームウェア240の実行中もファームウェア240の更新が行えるように、ファームウェア240を格納するMMB保存領域115を2つ確保している。それにより、例えばCPU201がメモリ231-1に格納されたファームウェア240を実行している場合、新しいファームウェア240はメモリ231-2に格納させる。逆にCPU201がメモリ231-2に格納されたファームウェア240を実行している場合、新しいファームウェア240はメモリ231-1に格納させる。起動の際にCPU201が読み出すのは、最新のファームウェア240である。
 一方、システムボード12は、サーバ1によるサービスを提供するための処理モジュールである。システムボード12は、図1に表すように、制御部122、内部通信部123、及び記憶部124を備えている。
 内部通信部123は、ネットワーク13を介した通信を可能にする。制御部122は、記憶部124に確保された2つのBIOS(Basic Input/Output System)保存領域125(125-1、125-2)のうちの一方に格納されているBIOS、及びファームウェアを実行する。
 図3は、システムボードの構成例を説明する図である。図3に表すように、システムボード12は、CPU301、複数のメインメモリ302、ノースブリッジチップ303、サウスブリッジチップ304、MPU(Micro-Processing Unit)305、メインメモリ306、LANインタフェース310、及び2つの不揮発性のメモリ321(321-1、321-2)を備えている。
 このLANインタフェース310は、図1に表す内部通信部123の構成要素である。
 2つのメモリ321は、図1に表す記憶部124の構成要素である。各メモリ321には、BIOS331、及びファームウェア332が格納される。それにより、各メモリ321は、それぞれBIOS保存領域125となっている。
 図1に表す制御部122は、CPU301、複数のメインメモリ302、ノースブリッジチップ303、サウスブリッジチップ304、MPU305、及びメインメモリ306が構成要素となっている。CPU301は、2つのメモリ321のうちの何れかに格納されているBIOS331を実行し、MPU305は、CPU301が実行するBIOS331が格納されているメモリ321からファームウェア332を読み出して実行する。このことから、制御部122は、BIOS331、及びファームウェア332を実行するようになっている。
 CPU301は、BIOS331を起動した後、更にOS(Operating System)、及びアプリケーションを起動させる。OS、及びアプリケーションを格納したストレージは、システムボード12に搭載されていても良いが、別の処理モジュールに搭載されていても良い。そのようにストレージの搭載場所は特に限定されるものではないことから、ここでは図示していない。OS、アプリケーションも共に、本実施形態を説明するうえで重要ではない。
 CPU301は、アプリケーションを実行することにより、サーバ1によるサービスの提供を実現させる。一方、MPU305は、ファームウェア332の実行により、システムボード12の管理に係わる処理を実行する。このことから、MPU305は、例えばBMC(Baseboard Management Controller)の構成要素である。
 本実施形態では、システムボード12で実行されるBIOS331、及びファームウェア332も共に更新対象となっている。そのため、上記システム管理ボード11と同様に、各BIOS保存領域125として各メモリ321を設け、各メモリ321にBIOS331、及びファームウェア332を格納している。
 システム管理ボード11は、通信を行い、各システムボード12を制御する。そのため、システム管理ボード11で実行されるファームウェア240と、システムボード12で実行されるBIOS331,及びファームウェア332とは、動作保証された組み合わせとする必要がある。上記保証ファーム版数互換性テーブル116は、ファームウェア240、BIOS331,及びファームウェア332が動作保証の組み合わせか否か否かを確認するための情報である。
 図4は、保証ファーム版数互換テーブルの構成例を説明する図である。図4に表すように、保証ファーム版数互換テーブル116には、エントリ毎に、保証組合せ番号、システム管理ボード11のファームウェア240の版数、システムボード12のBIOS331、及びファームウェア332の各版数が格納される。
 本実施形態では、プログラムの更新は、システム管理ボード11のファームウェア240→システムボード12のBIOS331、及びファームウェア332、の順序で行うようにしている。更新フラグ117は、プログラムの更新が有効か否かを表す設定情報である。本実施形態では、プログラムの更新の有効を更新フラグ117が表している場合に、ファームウェア240の更新を必要に応じて行うようにしている。それにより、本実施形態では、サーバ1のなかでプログラムの更新の対象としないサーバ1を個別に指定できるようにしている。
 図1に表すサーバ1がそれぞれ異なるユーザ(クライアント)が利用するような場合、各サーバ1にはそれぞれ異なるアプリケーションが実行されるのが普通である。例え同じアプリケーションが複数台のサーバ1で実行されるとしても、版数、或いは仕様が異なることも多い。版数、或いは仕様が異なることによって、例え不具合が存在している同じBIOS331を実行していたとしても、その不具合が表面化しない可能性がある。不具合が表面化していないユーザは、不具合を修正した版のBIOS331への更新により、別の不具合が表面化する危険性を重視する場合がある。このようなことから、判明した不具合を修正した版のBIOS331が配布されたとしても、全てのユーザがBIOS331の更新を望むとは限らない。それにより、本実施形態では、プログラムの更新対象とするサーバ1を更新フラグ117により予め設定するようにして、望まれない更新を行わないようにしている。
 プログラムの更新が望まれない理由は、上記のようなものに限定されない。主な理由としては、他に、新たに配布された版のプログラムの信頼性が確認されるまで、そのプログラムの更新を行わないというものがある。
 上記更新フラグ117の各サーバ1への格納(更新を含む)は、管理端末装置2を用いて行うようにしても良い。或いはサーバ1毎に、更新フラグ117の内容を切り換え可能なスイッチ等を設け、そのスイッチへの操作により、所望の内容の更新フラグ117を格納させるようにしても良い。
 管理端末装置2を操作する管理者は、各サーバ1に設定すべき更新フラグ117を設定した後、システム管理ボード11のファームウェア240、必要に応じて更にシステムボード12のBIOS331,及びファームウェア332のうちの少なくとも一方を更新する。この更新を行う方法は、特に限定されない。ここでは説明上、便宜的に、システムボード12のBIOS331、及びファームウェア332も共に更新されたと想定する。
 ファームウェア240の更新により、サーバ1はシステム管理ボード11を含め再起動される。再起動したシステム管理ボード11は、更新されたファームウェア240の版数を表すMMBファーム情報を格納したメッセージをブロードキャストすることにより、他のサーバ1に対し、MMBファーム情報を通知する。
 メッセージを受信したサーバ1のシステム管理ボード11は、そのメッセージ中のMMBファーム情報が表す版数が現在、実行中のファームウェア240の版数より新しく、且つ更新フラグ117が更新の有効を表していた場合、応答としてファームウェア240の更新用データを要求する。それにより、メッセージを受信したサーバ1のシステム管理ボード11は、ファームウェア240を更新する。
 ファームウェア240の更新は、上記のように、現在、実行中のファームウェア240が格納されていないメモリ231に、更新用データから得られるファームウェア240を格納することで行われる。ここでは、更新用データは、ファームウェア240全体の圧縮データと想定する。その圧縮データは以降「ファームウェアデータ」或いは単に「データ」と表記する。これは、BIOS331、及びファームウェア332でも同様とする。
 メッセージ中のMMBファーム情報が表す版数が現在、実行中のファームウェア240の版数より新しくない、或いは更新フラグ117が更新の有効を表していない場合、サーバ1のシステム管理ボード11は応答を送信しない。それにより、ファームウェア240を更新する必要がないか、或いはファームウェア240を更新すべきでないサーバ1では、ファームウェア240は更新されない。
 ファームウェア240を更新したシステム管理ボード11は、配下の何れかのシステムボード12に対し、BIOS331、及びファームウェア332の各版数を確認し、保証ファーム版数互換性テーブル116を参照する。それにより、更新後のファームウェア240、BIOS331、及びファームウェア332が動作保証されている組合せか否か確認する。その結果、動作保証されていない組合せであることが判明した場合、システム管理ボード11は、ファームウェアデータを要求したサーバ1に対し、BIOS331、及びファームウェア332の各データを要求する。システム管理ボード11は、その要求により受信したBIOS331、及びファームウェア332の各データを、各システムボード12に送信することで、各システムボード12にBIOS331、及びファームウェア332を更新させる。
 そのようにしてファームウェア240、BIOS331、及びファームウェア332を更新したサーバ1のシステム管理ボード11は、再起動の後、更新されたファームウェア240の版数を表すMMBファーム情報を格納したメッセージをブロードキャストする。それにより、1台のサーバ1でプログラムを更新すると、その更新は直接的、或いは間接的に、他のサーバ1に反映される。この結果、プログラムを更新すべき全てのサーバ1に必要なプログラムの更新を行わせることができる。管理者は、各サーバ1に対する更新フラグ117の設定、及び1台のサーバ1に対するプログラムの更新を行えば良いことから、各サーバ1に対する必要なプログラムの更新を容易に行わせることができる。
 本実施形態では、ファームウェア240のデータの送信時に、最新の保証ファーム版数互換性テーブル116を共に送信するようにしている。それにより、ファームウェア240のデータを受信したサーバ1のシステム管理ボード11は、そのデータと共に送信された保証ファーム版数互換性テーブル116を参照する。
 最新の版数のプログラムと動作保証される他のプログラムの版数を予め予想するのは困難であることから、保証ファーム版数互換性テーブル116は、何れかの1つのプログラムの更新により、更新対象とするサーバ1に格納させる必要がある。しかし、保証ファーム版数互換性テーブル116をファームウェアデータと共にサーバ1に送信させることで、管理者が各サーバ1に保証ファーム版数互換性テーブル116を予め格納させる必要性が回避される。保証ファーム版数互換性テーブル116は、直接、プログラムを更新する1台のサーバ1に格納させれば良い。そのため、保証ファーム版数互換性テーブル116をファームウェアデータと共にサーバ1に送信させることで、管理者の負担をより軽減させることができる。
 図5は、本実施形態による情報処理装置を用いた場合に、各情報処理装置によって行われるプログラムの更新例を説明する図である。
 図5に表す2つのクローズドネット50(50-1、50-2)は、例えばデータセンターであり、多くのサーバ1が設置されている。この2つのクローズドネット50は、例えば不図示のWAN(Wide Area Network)によって接続される。図5に表す例は、管理者によってサーバ1-11のプログラムが更新され、その更新によって、クローズドネット50-1では2台のサーバ1-12及び1-13のプログラムが更新され、クローズドネット50-2では、1台のサーバ1-21のプログラムが更新された状態を表している。
 クローズドネット50-1のサーバ1-14~1-17の更新フラグ117が更新の有効を表していた場合、これらサーバ1-14~1-17のプログラムも随時、更新されることとなる。同様に、クローズドネット50-2のサーバ1-22~1-27の更新フラグ117が更新の有効を表していた場合、これらサーバ1-22~1-27のプログラムも随時、更新されることとなる。
 図6は、プログラムを更新したサーバ、及びプログラムを更新するサーバ別に、システム管理ボード、及びシステムボードが実行する処理を表す図である。次に図6、更には図7~図13を参照し、プログラムを更新したサーバ1-1、及びそのサーバ1-1によってプログラムを更新するサーバ1-2の動作について詳細に説明する。図6では、システム管理ボード11は「MMB」、システムボード12は「SB」と表記している。
 サーバ1-1のシステム管理ボード11は、起動、或いは再起動により、他のサーバ1にプログラムを更新させるための更新管理処理を実行する(SM1)。この更新管理処理の実行時、サーバ1-1の一つのシステムボード12は、システム管理ボード11からの要求に対応するための処理を行う(SS1)。
 一方、サーバ1-2のシステム管理ボード11は、サーバ1-1のシステム管理ボード11による更新管理処理の実行に対応して、プログラムの更新を必要に応じて行うためのMMB更新処理を実行する(SM2)。このMMB更新処理の実行時、サーバ1-2の1つのシステムボード12は、BIOS331、及びファームウェア332を必要に応じて更新するためのSB更新処理を実行する(SS2)。
 サーバ1間のデータの送受信は、システム管理ボード11間で行われる。システムボード12から他のサーバ1に送信すべきデータは、システム管理ボード11、及びネットワーク3を介して行われる。SM1の更新管理処理、及びSM2のMMB更新処理は、共に、システム管理ボード11のCPU201が、ファームウェア240を実行することで実現される。SS1の対応する処理、及びSS2のSB更新処理は、共に、例えばMPU305がファームウェア332を実行することで実現される。
 以降は、図7~図13を参照して、プログラムを更新したサーバ、及びプログラムを更新するサーバの動作について詳細に説明する。
 図13は、プログラムを更新したサーバ、及びプログラムを更新するサーバの間で行われるデータの送受信例を表すシーケンス図である。図13は、図7~図12の説明と併せて説明する。
 図7及び図8は、SM1として実行される更新管理処理のフローチャートである。
 次に図7及び図8を参照し、この更新管理処理について詳細に説明する。
 この更新管理処理は、上記のように、他のサーバ1にプログラムを更新させるために実行される処理である。プログラムを更新する対象となるサーバ1の台数は、0~メッセージを受信可能なサーバ1の台数の間である。図7及び図8では、理解を容易とするために、1台のサーバ1のプログラムを更新する場合を想定し、実行する処理の流れを表している。
 先ず、CPU201は、更新したファームウェア240の版数等を表すMMBファーム情報を格納したメッセージを作成し、作成したメッセージをLANインタフェース210によりブロードキャストさせる(SM11、図13のシーケンスS1)。その後、CPU201は、LANインタフェース210による応答の受信を監視し、何れかのサーバ1から応答を受信したか否か判定する(SM12)。何れかのサーバ1が応答を送信した場合、SM12の判定はYesとなってSM13に移行する。何れのサーバ1も応答を送信していない場合、SM12の判定はNoとなってSM19に移行する。
 SM19では、CPU201は、規定時間を超えたか否か判定する。この規定時間は、他のサーバ1のプログラムの更新に限られた期間、対応するために設定された時間である。最初にMMBファーム情報を格納したメッセージを送信してから経過した時間がこの規定時間を超えていない場合、SM19の判定はNoとなり、上記SM11に戻る。それにより、CPU201は、再度メッセージの送信を行う。一方、最初にMMBファーム情報を格納したメッセージを送信してから経過した時間がこの規定時間を超えている場合、SM19の判定はYesとなり、ここで更新管理処理が終了する。
 上記のように、応答を受信したサーバ1に対し、ファームウェア240のデータを送信する。SM13では、CPU201は、応答を受信したサーバ1にファームウェア240のデータを送信した実行回数が規定回数以下か否か判定する。その実行回数が規定回数以下であった場合、SM13の判定はyesとなってSM14に移行する。その実行回数が規定回数を超えていた場合、SM13の判定はNoとなり、ここで更新管理処理が終了する。その規定回数は、ファームウェア240の送信を無制限に行わないために設定された閾値である。
 SM14では、CPU201は、応答を受信したサーバ1にファームウェア240のデータを送信させる(図13のシーケンスS3)。次にCPU201は、ファームウェア240のデータの送信先のサーバ1から受信が正常終了した旨のメッセージを受信したか否か判定する(SM15)。正常終了した旨のメッセージを受信した場合、SM15の判定はYesとなって図8のSM21に移行する。正常終了した旨のメッセージを受信しなかった場合、SM15の判定はNoとなってSM16に移行する。
 SM16では、CPU201は、再送信を要求するメッセージを受信したか否か判定する。再送信を要求するメッセージを受信した場合、SM16の判定はYesとなってSM17に移行する。再送信を要求するメッセージを受信しなかった場合、SM16の判定はNoとなって上記SM14に戻る。それにより、CPU201は、ファームウェア240のデータを再度、送信させる。
 SM17では、CPU201は、再送信を要求する旨のメッセージを同一のサーバ1(図7中「同一IP」と表記。IPは、Internet Protocolの略記である)から規定回数以上、受信したか否か判定する。再送信を要求する旨のメッセージを同一のサーバ1から規定回数以上、受信した場合、SM17の判定はYesとなり、次にCPU201は、再送信を要求する旨のメッセージを送信したサーバ1へのファームウェア240のデータの送信を停止させる(SM18)。その後、上記SM11に戻る。再送信を要求する旨のメッセージを同一のサーバ1から規定回数以上、受信していない場合、SM17の判定はNoとなり、上記SM14に戻る。
 図8のSM21では、CPU201は、サーバ1からBIOS331、ファームウェア332の各データを要求するメッセージを受信したか否か判定する。そのメッセージを受信した場合、SM21の判定はYesとなってSM22に移行する。そのメッセージを受信しなかった場合、SM21の判定はNoとなって、図7のSM11に戻る。
 SM22では、CPU201は、LANインタフェース220を介して、1つのシステムボード12にBIOS331、及びファームウェア332の各データを要求して取得し、取得した各データをLANインタフェース210から送信する(図13のシーケンスS6)。次にCPU201は、サーバ1から正常終了を表すメッセージを受信したか否か判定する(SM23)。正常終了を表すメッセージを受信した場合、SM23の判定はYesとなってSM24に移行する。正常終了を表すメッセージを受信しなかった場合、SM23の判定はNoとなってSM25に移行する。
 SM24では、CPU201は、規定時間に到達したか否か判定する。最初にMMBファーム情報を格納したメッセージを送信してから経過した時間がこの規定時間に到達していた場合、SM24の判定はYesとなり、ここで更新管理処理が終了する。最初にMMBファーム情報を格納したメッセージを送信してから経過した時間がこの規定時間に到達していない場合、SM24の判定はNoとなって図7のSM11に戻る。
 SM25では、CPU201は、再送信を要求するメッセージを受信したか否か判定する。再送信を要求するメッセージを受信した場合、SM25の判定はYesとなってSM26に移行する。再送信を要求するメッセージを受信しなかった場合、SM25の判定はNoとなって上記SM22に戻る。それにより、CPU201は、BIOS331、及びファームウェア332の各データを再度、送信させる。
 SM26では、CPU201は、再送信を要求する旨のメッセージを同一のサーバ1から規定回数以上、受信したか否か判定する。再送信を要求する旨のメッセージを同一のサーバ1から規定回数以上、受信した場合、SM26の判定はYesとなり、次にCPU201は、再送信を要求する旨のメッセージを送信したサーバ1へのBIOS331、及びファームウェア332の各データの送信を停止させる(SM27)。その後、図7のSM11に戻る。再送信を要求する旨のメッセージを同一のサーバ1から規定回数以上、受信していない場合、SM26の判定はNoとなり、上記SM22に戻る。
 上記SM22では、CPU201は、1つのシステムボード12に対し、BIOS331、及びファームウェア332の各データを要求する。その要求を受信したシステムボード12のMPU305は、実行中のファームウェア332を格納したメモリ321から、ファームウェア332、及びBIOS331の各データを読み出し、読み出した各データをLANインタフェース310に送信させる。図6に表すSS1の対応する処理では、システム管理ボード11からの要求に従い、BIOS331、及びファームウェア332の各データをシステム管理ボード11に送信する処理が行われる。
 図9及び図10は、SM2として実行されるMMB更新処理のフローチャートである。次に図9及び図10を参照し、このMMB更新処理について詳細に説明する。
 上記更新管理処理を実行するシステム管理ボード11上のCPU201は、SM1でMMBファーム情報を格納したメッセージをブロードキャストする。MMB更新処理は、そのメッセージの受信を契機に実行される。
 先ず、CPU201は、受信したメッセージ中のMMBファーム情報が表すサーバ1のモデルが同じ種類のプログラムを実行するモデルか否か判定する(SM51)。メッセージを送信したサーバ1と更新対象とするプログラムの種類が一致する場合、SM51の判定はYesとなってSM52に移行する。メッセージを送信したサーバ1と更新対象とするプログラムの種類が一致しない場合、SM51の判定はNoとなり、ここでMMB更新処理が終了する。
 SM52では、CPU201は、受信したメッセージ中のMMBファーム情報が表すファームウェア240の版数が現在、実行中のファームウェア240の版数より新しいか否か判定する。メッセージを送信したサーバ1がより新しい版数のファームウェア240に更新していた場合、SM52の判定はYesとなってSM53に移行する。メッセージを送信したサーバ1がより新しい版数のファームウェア240に更新していない場合、SM52の判定はNoとなり、ここでMMB更新処理が終了する。
 SM53では、CPU201は、更新設定は有効か否か判定する。更新フラグ117が更新の有効を表していた場合、SM53の判定はYesとなってSM54に移行する。更新フラグ117が更新の有効を表していない場合、SM53の判定はNoとなり、ここでMMB更新処理が終了する。
 SM54では、CPU201は、メッセージを受信したサーバ1に対し、LANインタフェース210を介して、ファームウェア240のデータを要求するメッセージを送信することで(図13のシーケンスS2)、要求したデータを取得する。次にCPU201は、取得したデータから計算したチェックサムが、取得したデータ中のチェックサムと一致するか否か判定する(SM55)。データを取得するまでの間にエラーが発生した場合、それらのチェックサムは不一致となることから、SM55の判定はNoとなってSM56に移行する。データを取得するまでの間にエラーが発生していなかった場合、SM55の判定はYesとなってSM57に移行する。
 SM56では、CPU201は、チェックサムの不一致は規定回数以下か否か判定する。規定回数、ファームウェア240のデータを受信してもチェックサムが一致しなかった場合、SM56の判定はNoとなり、ここでMMB更新処理が終了する。規定回数、ファームウェア240のデータを受信していない場合、SM56の判定はYesとなって上記SM54に戻る。それにより、CPU201は、再度、ファームウェア240のデータの送信を要求する。
 SM57では、CPU201は、受信したデータの展開を行い、ファームウェア240を復元し、復元したファームウェア240を、実行していないファームウェア240が格納されているメモリ231に書き込み、保証ファーム版数互換性テーブル116も同じメモリ231に書き込む。次にCPU201は、データの展開が正常に終了したか否か判定する(SM58)。ファームウェア240を正常にメモリ231に書き込めた場合、SM58の判定はYesとなって図10のSM59に移行する。ファームウェア240を正常にメモリ231に書き込めなかった場合、SM58の判定はNoとなって図10のSM65に移行する。
 SM59では、CPU201は、LANインタフェース210に指示して、ファームウェア240のデータを送信したサーバ1に対し、更新成功を表すメッセージを送信させる(図13のシーケンスS4)。次にCPU201は、LANインタフェース210に指示して、管理端末装置2宛に、ファームウェア240の更新が成功した旨を通知させる(SM60)。更新が成功した旨の通知は、例えばメールにより行うことができる。
 次にCPU201は、1つのシステムボード12に対し、LANインタフェース220を用いて、BIOS331、及びファームウェア332の各版数の通知を要求し、その要求により通知される各版数を確認する(SM61)。その確認後、CPU201は、メモリ231に格納した保証ファーム版数互換性テーブル116を参照し、更新したファームウェア240、並びにシステムボード12が実行するBIOS331、及びファームウェア332の組合せが動作保証されているか否か判定する(SM62)。ファームウェア240、BIOS331、及びファームウェア332が動作保証されていない組合せであった場合、SM62の判定はNoとなってSM63に移行する。それらが動作保証されている組合せであった場合、SM62の判定はYesとなり、ここでMMB更新処理が終了する。
 SM63では、CPU201は、LANインタフェース210を用いて、ファームウェア240のデータを受信したサーバ1に対し、BIOS331,及びファームウェア332の各データを要求するメッセージを送信させる(図13のシーケンスS5)。そのメッセージを受信したサーバ1からBIOS331、ファームウェア332の各データを受信すると、CPU201は、LANインタフェース220を用いて、受信した各データを各システムボード12に送信させ、更新を指示する。更新を指示した後、CPU201は、何れかのシステムボード12からBIOS331、及びファームウェア332の各データの送信が要求されたか否か判定する(SM64)。
 各システムボード12のMPU305は、送信されたBIOS331,及びファームウェア332の各データから復元したBIOS331、及びファームウェア332を、実行していないファームウェア332が格納されているメモリ321に書き込む。MPU305は、LANインタフェース310を用いて、そのようにして行ったBIOS331,及びファームウェア332の更新結果をシステム管理ボード11に通知する。BIOS331、及びファームウェア332のうちの少なくとも一方を正常にメモリ321に格納できなかったMPU305は、BIOS331、及びファームウェア332の各データの送信をシステム管理ボード11に要求する。BIOS331、及びファームウェア332を正常にメモリ321に格納できたMPU305は、更新成功をシステム管理ボード11に通知する。
 このようなことから、何れかのシステムボード12がBIOS331、或いはファームウェア332を適切に更新できなかった場合、SM64の判定はYesとなって上記SM63に戻る。その場合、CPU201は、BIOS331、或いはファームウェア332を適切に更新できなかったシステムボード12にのみ、BIOS331、及びファームウェア332の各データを送信する。BIOS331、及びファームウェア332を適切に更新できなかったシステムボード12が存在しない場合、SM64の判定はNoとなり、BIOS331、及びファームウェア332の更新成功を表すメッセージをサーバ1に送信した(図13のシーケンスS7)後、MMB更新処理が終了する。
 図9のSM58の判定がNoとなって移行する図10のSM65では、CPU201は、展開異常が規定回数以上となったか否か判定する。規定回数以上、展開異常が継続して発生した場合、SM65の判定はYesとなってSM66に移行する。規定回数以上、展開異常が継続して発生していない場合、SM65の判定はNoとなって図9のSM57に戻る。
 SM66では、CPU201は、LANインタフェース210を用いて、管理端末装置2宛に、ファームウェア240の更新が成功しない異常が発生している旨を通知させる。更新が成功しない異常が発生している旨の通知は、例えばメールにより行うことができる。そのような通知を行った後、MMB更新処理が終了する。
 上記SM62の判定がYesとなった場合、BIOS331、及びファームウェア332の各版数の通知を要求したシステムボード12に対し、BIOS331、及びファームウェア332の更新が必要でない旨が通知される。SM62の判定がNoとなった場合、各システムボード12に対し、BIOS331、及びファームウェア332の更新が必要な旨が通知される。それにより、 SM63でのBIOS331,及びファームウェア332の各データの要求は、何れかのシステムボード12からの要求によって行われる。
 図11及び図12は、SS2として実行されるSB更新処理のフローチャートである。最後に図11及び図12を参照し、このSB更新処理について詳細に説明する。
 図10のSM61では、BIOS331、及びファームウェア332の各版数の通知の要求が1つのシステムボード12に対して行われる。図11及び図12に表すSB更新処理は、その通知の要求を契機に、MPU305が実行する処理である。
 先ず、MPU305は、システム管理ボード11から、BIOS331、及びファームウェア332の各版数の通知が要求されたか否か判定する(SS11)。各版数の通知がシステム管理ボード11から要求された場合、SS11の判定はYesとなってSS12に移行する。各版数の通知がシステム管理ボード11から要求されていない場合、SS11の判定はNoとなり、ここでSB更新処理が終了する。
 SS12では、MPU305は、LANインタフェース310を用いて、要求された各版数を表す情報をシステム管理ボード11に送信する。次にMPU305は、その後にシステム管理ボード11から、BIOS331、及びファームウェア332の更新が必要な旨を表すメッセージを受信したか否か判定する(SS13)。図10のSM62の判定がNoとなった場合、更新が必要な旨を表すメッセージをシステム管理ボード11は各システムボード12に送信することから、SS13の判定はYesとなってSS14に移行する。図10のSM62の判定がYesとなった場合、更新が必要でない旨を表すメッセージをシステムボード12は自システム管理ボード11宛に送信することから、SS13の判定はNoとなり、ここでSB更新処理が終了する。
 SS14では、MPU305は、LANインタフェース310を用いて、システム管理ボード11にBIOS331、及びファームウェア332の各データの送信を要求する。次のSS15では、MPU305は、システム管理ボード11からBIOS331、及びファームウェア332の各データを受信するのを待って、受信した各データから計算したチェックサムが、取得したデータ中のチェックサムと一致するか否か判定する。データを取得するまでの間にエラーが発生した場合、それらのチェックサムは不一致となることから、SS15の判定はNoとなってSS16に移行する。データを取得するまでの間にエラーが発生していなかった場合、SS15の判定はYesとなってSS17に移行する。
 SS16では、MPU305は、チェックサムの不一致は規定回数以下か否か判定する。規定回数、BIOS331、及びファームウェア332の各データを受信してもチェックサムが一致しなかった場合、SS16の判定はNoとなり、ここでSB更新処理が終了する。規定回数、BIOS331、及びファームウェア332の各データを受信していない場合、SS16の判定はYesとなって上記SS14に戻る。それにより、MPU305は、再度、BIOS331、及びファームウェア332の各データの送信を要求する。
 SS17では、MPU305は、受信した各データの展開を行い、復元したBIOS331、及びファームウェア332ファームウェア240を、実行していないファームウェア332が格納されているメモリ321に書き込む。次にMPU305は、データの展開が正常に終了したか否か判定する(SS18)。BIOS331、及びファームウェア332を正常にメモリ231に書き込めた場合、SS18の判定はYesとなって図12のSS19に移行する。BIOS331,或いはファームウェア332を正常にメモリ321に書き込めなかった場合、SS18の判定はNoとなって図12のSS21に移行する。
 SS19では、MPU306は、LANインタフェース310を用いて、システム管理ボード11に対し、BIOS331、及びファームウェア332の更新成功を表すメッセージを送信する。次にMPU305は、LANインタフェース310を用いて、システム管理ボード11に対し、管理端末装置2宛の更新成功の通知を依頼する(SS20)。その後、SB更新処理が終了する。
 図11のSS18の判定がNoとなって移行する図12のSS21では、MPU305は、展開異常が規定回数以上となったか否か判定する。規定回数以上、展開異常が継続して発生した場合、SS21の判定はYesとなってSS22に移行する。規定回数以上、展開異常が継続して発生していない場合、SS21の判定はNoとなって図11のSS17に戻る。
 SS22では、MPU305は、LANインタフェース310を用いて、BIOS331、及びファームウェア332の更新が成功しない異常が発生している旨の管理端末装置2宛への通知をシステム管理ボード11に依頼する。その後、SB更新処理が終了する。
 なお、本実施形態では、各サーバ1に予め格納させる更新フラグ117により、プログラムの更新を行うか否かを制御するようにしているが、更新フラグ117のような制御情報は、MMBファーム情報、或いはファームウェア240のデータと共に送信させるようにしても良い。また、本実施形態では、プログラムの更新は、ファームウェア240→BIOS331及びファームウェア332、の順序で行うようになっているが、その順序で行わなくとも良い。ファームウェア240、BIOS331及びファームウェア332のなかで更新対象とすべきプログラムを任意に選択できるようにしても良い。動作保証させるプログラムの組合せは、ファームウェア240、BIOS331及びファームウェア332の組合せに限定されない。動作保証させるプログラムの組合せは、管理者が必要に応じて設定すれば良い。
 また、本実施形態では、プログラムはより新しい版に更新(アップデート)することを想定としているが、より新しい版への更新を前提としなくとも良い。つまり、プログラムをより古い版に戻す更新を想定しても良い。図14に表すように、プログラムをより古い版に戻す更新でも、プログラムをより新しい版に更新する場合と同様に、各サーバ1にプログラムの更新を行わせることができる。プログラムのより新しい版への更新を有効とするか否か、及びプログラムのより古い版への更新を有効とするか否かは、例えば、それぞれ専用の更新フラグ117を用意することで制御することができる。

Claims (8)

  1.  更新対象となるプログラムを記憶した第1の記憶部と、
     前記プログラムの更新が有効か否かを表す設定情報を記憶した第2の記憶部と、
     ネットワークを介した通信を行うための通信部と、
     前記ネットワークと接続された第1の情報処理装置から、前記プログラムの第1の版を表す更新管理情報を前記通信部が受信した場合に、受信した前記更新管理情報が表す第1の版に基づいて、前記第1の記憶部に記憶された前記プログラムを更新すべきか否か判定する第1の判定部と、
     前記プログラムの更新が有効と前記設定情報が表しているか否か判定する第2の判定部と、
     前記プログラムを更新すべきと前記第1の判定部が判定し、且つ前記プログラムの更新が有効と前記設定情報が表していると前記第2の判定部が判定した場合に、前記通信部を用いて、前記第1の情報処理装置に前記プログラムの更新用データを要求して取得し、取得した前記更新用データを用いて、前記第1の記憶部に記憶されているプログラムを更新する更新部と、
     前記更新部が前記プログラムを更新した場合に、前記通信部を用いて前記更新管理情報を送信させ、送信させた前記更新管理情報を受信した第2の情報処理装置からの要求により、前記通信部を用いて前記更新用データを送信させる更新管理部と、
     を有することを特徴とする情報処理装置。
  2.  前記第1の記憶部には、前記プログラムを格納するための領域が複数、確保され、
     前記更新部は、現在、前記プログラムが記憶されている領域とは異なる領域に前記第1の版のプログラムを格納することにより、前記第1の記憶部に記憶されているプログラムを更新する、
     ことを特徴とする請求項1記載の情報処理装置。
  3.  前記プログラムとの組み合わせを考慮すべき他のプログラムを記憶した第3の記憶部と、
     前記プログラムの版別に、前記版のプログラムと動作保証されている前記他のプログラムの版を表す動作保証情報を記憶した第4の記憶部と、
     前記更新部が前記プログラムを更新した場合に、前記動作保証情報を参照し、前記第1の版のプログラムが前記他のプログラムと動作保証されているか否か判定する第3の判定部と、
     前記第1の版のプログラムが前記他のプログラムと動作保証されていないと前記第3の判定部が判定した場合に、前記通信部を用いて、前記第1の情報処理装置に前記他のプログラムの他の更新用データを要求して取得し、取得した前記他の更新用データを用いて、前記第3の記憶部に記憶されている前記他のプログラムを更新する他の更新部と、
     を更に有することを特徴とする請求項1、または2記載の情報処理装置。
  4.  前記第3の記憶部には、前記他のプログラムを格納するための領域が複数、確保され、
     前記他の更新部は、現在、前記他のプログラムが記憶されている領域とは異なる領域に前記他の更新用データによる他のプログラムを格納することにより、前記第3の記憶部に記憶されている前記他のプログラムを更新する、
     ことを特徴とする請求項3記載の情報処理装置。
  5.  前記動作保証情報は、前記他の更新用データと共に送信され、前記第4の記憶部に記憶される、
     ことを特徴とする請求項3、または4記載の情報処理装置。
  6.  前記プログラム、及び前記他のプログラムは、前記情報処理装置に搭載されている異なる種類の処理モジュールに実行される、
     ことを特徴とする請求項3、4、または5記載の情報処理装置。
  7.  ネットワークと接続された複数台の情報処理装置にプログラムを更新させる場合に、
     前記複数台の情報処理装置を個別に、前記プログラムの更新が有効か否か設定し、
     前記複数台の情報処理装置のうちの第1の情報処理装置に対して前記プログラムの更新を行い、
     前記複数台の情報処理装置のなかで前記プログラムの更新が有効と設定された各情報処理装置に、前記第1の情報処理装置、或いは前記第1の情報処理装置からの通知、及び前記プログラムの更新用データの送信により、前記プログラムを更新させる、
     ことを特徴とするプログラム更新方法。
  8.  ネットワークを介した通信が可能な情報処理装置に、
     前記ネットワークと接続された第1の情報処理装置から、更新視対象となるプログラムの第1の版を表す更新管理情報を受信した場合に、受信した前記更新管理情報が表す第1の版に基づいて、第1の記憶部に記憶されたプログラムを更新すべきか否か判定する第1の判定を行い、
     第2の記憶部に記憶されている設定情報が前記プログラムの更新の有効を表しているか否か判定する第2の判定を行い、
     前記プログラムを更新すべきと前記第1の判定で判定し、且つ前記プログラムの更新が有効と前記設定情報が表していると前記第2の判定で判定した場合に、前記第1の情報処理装置に前記プログラムの更新用データを要求して取得し、取得した前記更新用データを用いて、前記第1の記憶部に記憶されているプログラムを更新し、
     前記プログラムを更新した場合に、前記更新管理情報を送信させ、送信させた前記更新管理情報を受信した第2の情報処理装置からの要求により、前記更新用データを送信させる、
     処理を実行させるプログラム。
PCT/JP2013/058293 2013-03-22 2013-03-22 情報処理装置、プログラム更新方法、及びプログラム WO2014147817A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2013/058293 WO2014147817A1 (ja) 2013-03-22 2013-03-22 情報処理装置、プログラム更新方法、及びプログラム
JP2015506509A JP6028851B2 (ja) 2013-03-22 2013-03-22 情報処理装置、プログラム更新方法、及びプログラム
US14/852,667 US10083023B2 (en) 2013-03-22 2015-09-14 Information processing device and program updating method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/058293 WO2014147817A1 (ja) 2013-03-22 2013-03-22 情報処理装置、プログラム更新方法、及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/852,667 Continuation US10083023B2 (en) 2013-03-22 2015-09-14 Information processing device and program updating method

Publications (1)

Publication Number Publication Date
WO2014147817A1 true WO2014147817A1 (ja) 2014-09-25

Family

ID=51579546

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/058293 WO2014147817A1 (ja) 2013-03-22 2013-03-22 情報処理装置、プログラム更新方法、及びプログラム

Country Status (3)

Country Link
US (1) US10083023B2 (ja)
JP (1) JP6028851B2 (ja)
WO (1) WO2014147817A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108595195A (zh) * 2018-04-09 2018-09-28 江苏国泰新点软件有限公司 一种应用程序更新方法、装置、终端和储存介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5741722B1 (ja) * 2014-01-28 2015-07-01 日本電気株式会社 情報処理装置、及び、情報処理方法
JP7081223B2 (ja) 2018-03-07 2022-06-07 トヨタ自動車株式会社 マスタ装置、マスタ、ソフトウェアの整合性を確認するための方法及びプログラム、車両
JP2020017059A (ja) * 2018-07-25 2020-01-30 日本電気株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム
US11397815B2 (en) * 2018-09-21 2022-07-26 Hewlett Packard Enterprise Development Lp Secure data protection
US11100230B1 (en) 2019-12-31 2021-08-24 Management Services Group, Inc. Modular embedded chassis with firmware for removably coupled compute devices, and methods and systems for the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004102379A (ja) * 2002-09-05 2004-04-02 Hitachi Ltd パッチ適用管理プログラム、方法、およびシステム
JP2008225933A (ja) * 2007-03-14 2008-09-25 Nec Corp パッチ同期化システム及びその方法並びにそれに用いる端末

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0883229A (ja) 1994-09-13 1996-03-26 Matsushita Electric Ind Co Ltd ネットワーク管理システム
JPH08249163A (ja) 1995-03-13 1996-09-27 Toshiba Corp ネットワークシステムのソフトウェアバージョン管理装置
JP2001109619A (ja) 1999-10-12 2001-04-20 Fujitsu Ltd 複数計算機システムのマイクロプログラム版数自動一致方式
US7844721B2 (en) * 2005-11-23 2010-11-30 Qualcomm Incorporated Method for delivery of software upgrade notification to devices in communication systems
US20090133014A1 (en) * 2007-11-16 2009-05-21 Nokia Corporation Methods, apparatuses and computer program product for automatic download of software dependencies on installation
JP2009230398A (ja) 2008-03-21 2009-10-08 Fuji Xerox Co Ltd ソフトウェア更新支援装置およびソフトウェア更新支援プログラム
JP2011095950A (ja) 2009-10-29 2011-05-12 Seiko Epson Corp ネットワークデバイス、ネットワークデバイスシステムおよびネットワークデバイスのソフトウェア更新方法
JP5564956B2 (ja) * 2010-01-15 2014-08-06 富士通株式会社 情報処理装置及び情報処理装置のファームウェア更新方法
CA2886035A1 (en) * 2012-11-01 2014-05-08 Cooper Technologies Company Distribution of software updates in wireless multihop networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004102379A (ja) * 2002-09-05 2004-04-02 Hitachi Ltd パッチ適用管理プログラム、方法、およびシステム
JP2008225933A (ja) * 2007-03-14 2008-09-25 Nec Corp パッチ同期化システム及びその方法並びにそれに用いる端末

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108595195A (zh) * 2018-04-09 2018-09-28 江苏国泰新点软件有限公司 一种应用程序更新方法、装置、终端和储存介质

Also Published As

Publication number Publication date
JP6028851B2 (ja) 2016-11-24
US10083023B2 (en) 2018-09-25
JPWO2014147817A1 (ja) 2017-02-16
US20150378719A1 (en) 2015-12-31

Similar Documents

Publication Publication Date Title
JP6028851B2 (ja) 情報処理装置、プログラム更新方法、及びプログラム
JP5564956B2 (ja) 情報処理装置及び情報処理装置のファームウェア更新方法
JP6556851B2 (ja) データベースシステム、サーバ装置、プログラムおよび情報処理方法
US20010044934A1 (en) Computer and computer readable recording medium on which program is recorded
US11748163B2 (en) Control token and hierarchical dynamic control
WO2003021465A1 (en) Method and apparatus for performing a software upgrade of a router while the router is online
CN106657167B (zh) 管理服务器、服务器集群、以及管理方法
US20220237295A1 (en) Remote Attestation Method and Device for Composite Device
CN105635216A (zh) 分布式应用的升级方法、设备和分布式系统
TW201913369A (zh) 具有雙韌體儲存空間之伺服器及其韌體更新方法
JP2005242691A (ja) プログラムダウンロード及び切替え方法及びその装置
CN112583630B (zh) 设备管理方法、装置、系统、设备及存储介质
KR20160090485A (ko) 소프트웨어 정의 네트워크에서 분산 컨트롤러를 운용하는 방법 및 장치
JP2006113754A (ja) ソフトウェア更新装置及び方法
US9880855B2 (en) Start-up control program, device, and method
KR102033489B1 (ko) 서버 클러스터 관리 방법 및 서버
US9853774B2 (en) System and method for restoring a status of an apparatus controlled by multiple commands
JP5670935B2 (ja) 分散データ管理システムおよびその動作方法
CN114930313A (zh) 用于管理区块链节点的系统和方法
WO2012177597A1 (en) Networking elements as a patch distribution platform for distributed automation and control domains
WO2024093328A1 (zh) 一种虚拟桌面连接方法及装置
JP2004157753A (ja) ファームウェアダウンロードシステム
KR101628219B1 (ko) 소프트웨어 정의 네트워크에서 컨트롤러를 운용하는 방법 및 장치
JP2020119325A (ja) ストレージシステム、及びストレージ制御装置
JP5895043B1 (ja) クラスタシステム、クラスタ管理サーバおよびクラスタ管理用プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13879190

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015506509

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13879190

Country of ref document: EP

Kind code of ref document: A1