JP2020136840A - ソフトウェア更新管理装置およびソフトウェア更新管理方法 - Google Patents

ソフトウェア更新管理装置およびソフトウェア更新管理方法 Download PDF

Info

Publication number
JP2020136840A
JP2020136840A JP2019026168A JP2019026168A JP2020136840A JP 2020136840 A JP2020136840 A JP 2020136840A JP 2019026168 A JP2019026168 A JP 2019026168A JP 2019026168 A JP2019026168 A JP 2019026168A JP 2020136840 A JP2020136840 A JP 2020136840A
Authority
JP
Japan
Prior art keywords
software update
network
software
update
information
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
Application number
JP2019026168A
Other languages
English (en)
Other versions
JP7088070B2 (ja
Inventor
諭士 中務
Satoshi Nakamu
諭士 中務
公利 齋藤
Kimitoshi Saito
公利 齋藤
森 弘樹
Hiroki Mori
弘樹 森
高橋 賢
Masaru Takahashi
賢 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2019026168A priority Critical patent/JP7088070B2/ja
Priority to US17/429,784 priority patent/US11797291B2/en
Priority to PCT/JP2020/004032 priority patent/WO2020170794A1/ja
Publication of JP2020136840A publication Critical patent/JP2020136840A/ja
Application granted granted Critical
Publication of JP7088070B2 publication Critical patent/JP7088070B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/451Code distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/123Software or firmware update, e.g. device firmware management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0212Power saving arrangements in terminal devices managed by the network, e.g. network or access point is master and terminal is slave
    • H04W52/0219Power saving arrangements in terminal devices managed by the network, e.g. network or access point is master and terminal is slave where the power saving management affects multiple terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】ソフトウェア更新作業時のネットワーク全体の信頼性を確保しつつ、ソフトウェア更新作業の効率化を実現する。【解決手段】ソフトウェア更新管理装置1は、ネットワークを1つ以上のブロックに分割し、分割したブロックそれぞれに属するネットワーク装置が現用装置または予備装置であることを示すブロック管理情報100が記憶される記憶部12と、ソフトウェア更新指示を受け付ける更新指示受信部101と、ソフトウェア更新情報200を生成するソフトウェア更新情報生成部102と、ソフトウェア更新情報200を参照して、ソフトウェア更新対象装置が現用装置であると判定した場合に、トラヒックを現用装置と同じブロック内の予備装置に移行した上でソフトウェア更新処理を実行し、現用装置または予備装置に対するソフトウェア更新処理を、各ブロックについて並列で実行するソフトウェア更新実行部103と、を備える。【選択図】図2

Description

本発明は、ソフトウェア更新管理装置およびソフトウェア更新管理方法に関する。
従来、運用システムと予備運用システムで構成される二重化システムにおいて、予備運用システムへソフトウェア更新対象となる新プログラムをロードし、運用システムの運用中データを引き継いだ後、予備運用システムが運用システムを停止することで、予備運用システムを運用システムに切り替えることが行われている。これにより、二重化したシステムの中で、予備系システムの更新の後に、現用系システムの更新を行うことで、システム全体としてサービスを停止することなく、プログラムの修正やサービスの追加を行うことができる(例えば、特許文献1参照)。
通信事業者や大規模データセンタなどで運用されているネットワークにおいては、数百から数千万台以上といったスイッチ(以下、「ネットワーク装置」という場合がある。)が相互接続される。図16は、データセンタ等で用いられる、スパイン(Spine)−リーフ(Leaf)構成のネットワークを示す図である。ここでサーバを収容するスイッチをリーフ(Leaf)スイッチと呼び、各サーバと接続するToR(Top of Rack)スイッチに接続される。また、リーフ(Leaf)スイッチを相互に接続するスイッチをスパイン(Spine)スイッチと呼ぶ。現状、図16に示すような大規模ネットワークにおいては、サーバの利用者やトラヒックに影響がでないように、ToRスイッチ等が冗長構成で接続されているスイッチ群の単位でネットワークを分割し、ソフトウェア更新の作業を行っている。
特開平09−050382号公報
通信事業者や大規模データセンタで用いられるネットワークには、非常に高い信頼性が求められる。従来のソフトウェア更新手法のように、ネットワーク装置について現用装置と予備装置とを切り替えてソフトウェア更新を行う場合、ソフトウェア更新中は予備として利用できる装置が減少することを意味する。そのため、ソフトウェア更新中はネットワーク全体の信頼性が低下している。この点、従来手法では、ネットワークを分割することにより、並列でソフトウェア更新作業を行うスケジューリングを実行してはいるが、それらのスケジューリングは基本的に作業者が手作業で行っており、ソフトウェア更新作業の並列化によりネットワークの信頼性が確保されるものであるかが十分に保証されるものではなかった。
また、大規模ネットワークにおける各ネットワーク装置のバグ対処や新規の機能追加等を目的としたOSアップグレード等のソフトウェア更新作業の長期化を抑制し、ソフトウェア更新作業を効率的に実行するための自動化手法は確立されていなかった。
このような点に鑑みて本発明がなされたのであり、本発明は、ソフトウェア更新作業時のネットワーク全体の信頼性を確保しつつ、ソフトウェア更新作業の効率化を実現する、ソフトウェア更新管理装置およびソフトウェア更新管理方法を提供することを課題とする。
前記した課題を解決するため、請求項1に記載の発明は、ネットワークを構成する複数のネットワーク装置のソフトウェア更新を実行するソフトウェア更新管理装置であって、前記ネットワークを1つ以上のブロックに分割し、分割した前記ブロックそれぞれに属する前記ネットワーク装置の情報を、当該ネットワーク装置が現用装置または予備装置であることを示す情報とともに格納するブロック管理情報が記憶される記憶部と、ソフトウェア更新の対象となるネットワーク装置を示すソフトウェア更新対象装置と、当該ソフトウェア更新対象装置のソフトウェア更新処理の開始時刻を示すソフトウェア更新時刻とを含むソフトウェア更新指示を受け付ける更新指示受信部と、受け付けた前記ソフトウェア更新指示を用いて、前記ソフトウェア更新対象装置に対応付けた前記ソフトウェア更新時刻を含むソフトウェア更新情報を生成するソフトウェア更新情報生成部と、前記ソフトウェア更新情報を参照して前記ソフトウェア更新時刻になると、前記ソフトウェア更新対象装置が現用装置であるかまたは予備装置であるかを前記ブロック管理情報に基づき判定し、前記現用装置であると判定した場合には、前記現用装置であるソフトウェア更新対象装置が処理中のトラヒックを前記現用装置と同じブロック内の予備装置に移行した上でソフトウェア更新処理を実行するとともに、前記予備装置であると判定した場合には、前記予備装置であるソフトウェア更新対象装置に対してソフトウェア更新処理を実行し、前記現用装置または前記予備装置に対する前記ソフトウェア更新処理を、各ブロックについて並列で実行するソフトウェア更新実行部と、を備えることを特徴とするソフトウェア更新管理装置とした。
また、請求項4に記載の発明は、ネットワークを構成する複数のネットワーク装置のソフトウェア更新を実行するソフトウェア更新管理装置のソフトウェア更新管理方法であって、前記ソフトウェア更新管理装置が、前記ネットワークを1つ以上のブロックに分割し、分割した前記ブロックそれぞれに属する前記ネットワーク装置の情報を、当該ネットワーク装置が現用装置または予備装置であることを示す情報とともに格納するブロック管理情報が記憶される記憶部を備えており、ソフトウェア更新の対象となるネットワーク装置を示すソフトウェア更新対象装置と、当該ソフトウェア更新対象装置のソフトウェア更新処理の開始時刻を示すソフトウェア更新時刻とを含むソフトウェア更新指示を受け付けるステップと、受け付けた前記ソフトウェア更新指示を用いて、前記ソフトウェア更新対象装置に対応付けた前記ソフトウェア更新時刻を含むソフトウェア更新情報を生成するステップと、前記ソフトウェア更新情報を参照して前記ソフトウェア更新時刻になると、前記ソフトウェア更新対象装置が現用装置であるかまたは予備装置であるかを前記ブロック管理情報に基づき判定し、前記現用装置であると判定した場合には、前記現用装置であるソフトウェア更新対象装置が処理中のトラヒックを前記現用装置と同じブロック内の予備装置に移行した上でソフトウェア更新処理を実行するとともに、前記予備装置であると判定した場合には、前記予備装置であるソフトウェア更新対象装置に対してソフトウェア更新処理を実行し、前記現用装置または前記予備装置に対する前記ソフトウェア更新処理を、各ブロックについて並列で実行するステップと、を実行することを特徴とするソフトウェア更新管理方法とした。
このようにすることで、ソフトウェア更新管理装置は、制御対象となるネットワークにおいて、トラヒックに影響を与えずに、更新対象となるネットワーク装置のソフトウェア更新を、ブロック毎に、つまり複数同時に自動で実行することができる。よって、従来のような手動での作業に比べ、ソフトウェア更新作業の効率化を実現することができる。
請求項2に記載の発明は、ネットワークを構成する複数のネットワーク装置のソフトウェア更新を実行するソフトウェア更新管理装置であって、前記ネットワークを1つ以上のブロックに分割し、分割した前記ブロックそれぞれに属する前記ネットワーク装置の情報を、当該ネットワーク装置が現用装置または予備装置であることを示す情報とともに格納するブロック管理情報、前記ネットワーク装置単体の不稼働率、および、前記ネットワーク全体の目標不稼働率を記憶する記憶部と、ソフトウェア更新の対象装置が前記ネットワーク内のすべてのネットワーク装置であることを示す情報を含む全ネットワーク装置更新指示を受け付ける更新指示受信部と、前記ブロック管理情報と、前記ネットワーク装置単体の不稼働率とを用いた所定の手法でネットワーク全体の不稼働率を算出することにより、当該ネットワーク全体の不稼働率を前記ネットワーク全体の目標不稼働率以下に収めるようにして、1回のソフトウェア更新で実行できる最大のソフトウェア更新台数を示す同時ソフトウェア更新台数を、前記ブロック毎に算出する同時更新台数算出部と、算出された前記ブロック毎の前記同時ソフトウェア更新台数で示される台数分毎に、各ソフトウェア更新回においてソフトウェア更新を実行するネットワーク装置を前記ブロック毎に選択することにより更新スケジュール情報を生成する更新スケジュール情報生成部と、前記更新スケジュール情報を参照して、ソフトウェア更新回毎に、選択された前記ネットワーク装置のソフトウェア更新処理を、各ブロックについて並列で実行するソフトウェア更新実行部と、を備えることを特徴とするソフトウェア更新管理装置とした。
また、請求項5に記載の発明は、ネットワークを構成する複数のネットワーク装置のソフトウェア更新を実行するソフトウェア更新管理装置のソフトウェア更新管理方法であって、前記ソフトウェア更新管理装置が、前記ネットワークを1つ以上のブロックに分割し、分割した前記ブロックそれぞれに属する前記ネットワーク装置の情報を、当該ネットワーク装置が現用装置または予備装置であることを示す情報とともに格納するブロック管理情報、前記ネットワーク装置単体の不稼働率、および、前記ネットワーク全体の目標不稼働率を記憶する記憶部を備えており、ソフトウェア更新の対象装置が前記ネットワーク内のすべてのネットワーク装置であることを示す情報を含む全ネットワーク装置更新指示を受け付けるステップと、前記ブロック管理情報と、前記ネットワーク装置単体の不稼働率とを用いた所定の手法でネットワーク全体の不稼働率を算出することにより、当該ネットワーク全体の不稼働率を前記ネットワーク全体の目標不稼働率以下に収めるようにして、1回のソフトウェア更新で実行できる最大のソフトウェア更新台数を示す同時ソフトウェア更新台数を、前記ブロック毎に算出するステップと、算出された前記ブロック毎の前記同時ソフトウェア更新台数で示される台数分毎に、各ソフトウェア更新回においてソフトウェア更新を実行するネットワーク装置を前記ブロック毎に選択することにより更新スケジュール情報を生成するステップと、前記更新スケジュール情報を参照して、ソフトウェア更新回毎に、選択された前記ネットワーク装置のソフトウェア更新処理を、各ブロックについて並列で実行するステップと、を実行することを特徴とするソフトウェア更新管理方法とした。
このようにすることで、ソフトウェア更新管理装置は、ソフトウェア更新作業時のネットワーク全体の信頼性を確保しつつ、ソフトウェア更新作業の効率化を実現することができる。つまり、ソフトウェア更新管理装置によれば、ネットワーク全体の目標不稼働率を超えない範囲で、ソフトウェア更新に要する時間を最も短縮できるソフトウェア更新のスケジュールを生成して実行することが可能となる。
請求項3に記載の発明は、前記ソフトウェア更新実行部が、前記ソフトウェア更新処理の際に、前記ソフトウェア更新を実行するネットワーク装置が現用装置であるかまたは予備装置であるかを前記ブロック管理情報に基づき判定し、前記現用装置であると判定した場合には、前記現用装置であるネットワーク装置が処理中のトラヒックを前記現用装置と同じブロック内の予備装置に移行した上でソフトウェア更新処理を実行し、前記予備装置であると判定した場合には、前記予備装置であるネットワーク装置に対してソフトウェア更新処理を実行することを特徴とする請求項2に記載のソフトウェア更新管理装置とした。
このようにすることで、ソフトウェア更新管理装置は、制御対象となるネットワークにおいて、トラヒックに影響を与えずに、ネットワーク装置のソフトウェア更新を、ブロック毎に、つまり複数同時に自動で実行することができる。
本発明によれば、ソフトウェア更新作業時のネットワーク全体の信頼性を確保しつつ、ソフトウェア更新作業の効率化を実現する、ソフトウェア更新管理装置およびソフトウェア更新管理方法を提供することができる。
本実施形態に係るソフトウェア更新管理装置を含むネットワーク管理システムの構成を示す図である。 本発明の第1実施形態に係るソフトウェア更新管理装置の構成例を示す機能ブロック図である。 本実施形態に係るブロック管理情報のデータ構成例を示す図である。 本発明の第1実施形態に係るソフトウェア更新管理装置の処理概要を説明するための図である。 本発明の第1実施形態に係るソフトウェア更新情報のデータ構成例を例示する図である。 本発明の第1実施形態に係るソフトウェア更新管理装置の処理の流れを示すフローチャートである。 本発明の第2実施形態に係るソフトウェア更新管理装置の構成例を示す機能ブロック図である。 本発明の第2実施形態に係る同時更新台数算出部による、ブロック毎の同時ソフトウェア更新台数の算出処理の概要を説明するための図である。 本発明の第2実施形態に係る同時更新台数算出部による、ブロック毎の同時ソフトウェア更新台数の算出処理における計算手法の一例を説明するための図である。 本発明の第2実施形態に係る更新スケジュール生成部による更新スケジュール情報の生成を説明するための図である。 本発明の第2実施形態に係るソフトウェア更新実行部による、ソフトウェア更新回ごとに並列で行われる各ブロックのソフトウェア更新を説明するための図である。 本発明の第2実施形態に係るソフトウェア更新管理装置の処理の流れを示すフローチャートである。 本発明の第2実施形態に係るソフトウェア更新管理装置が制御対象とするネットワークの構成例を示す図である。 本発明の第2実施形態に係るソフトウェア更新管理装置により、ネットワーク全体の不稼働率と同時ソフトウェア更新台数とを算出した実験結果を示す図である。 従来手法と、本発明の第2実施形態に係るソフトウェア更新管理装置による手法とを比較した実験結果を示す図である。 従来の大規模なネットワークにおけるネットワーク装置のソフトウェア更新の手法を示す図である。
次に、本発明を実施するための形態(以下、「本実施形態」と称する。)について説明する。
図1は、本実施形態に係るソフトウェア更新管理装置1を含むネットワーク管理システム1000の構成を示す図である。
本実施形態に係るソフトウェア更新管理装置1は、通信事業者や大規模データセンタなどで運用される数百から数千台以上のスイッチ(ネットワーク装置5)が、例えば、図16に示したように、スパイン(Spine)−リーフ(Leaf)構成で相互に接続されるネットワークの各ネットワーク装置5におけるソフトウェア更新を実行する。なお、図1においては、図16に示したような、各ネットワーク装置5間の接続を示す線を省略している。また、ソフトウェア更新管理装置1が対象とするネットワーク装置5の構成は、スパイン(Spine)−リーフ(Leaf)構成に限定されるものではない。
ソフトウェア更新管理装置1は、ネットワーク管理システム1000内の各ネットワーク装置5と通信接続され、各ネットワーク装置5に対して、コマンド実行やファイル転送を実行する。また、図1に示すように、ソフトウェア更新管理装置1は、制御対象となるネットワークを1つ以上のブロックに分割して管理する。そして、各ブロックには、通常時にトラヒックを処理する1つ以上の現用装置と、現用装置の故障時やソフトウェア更新時にトラヒックを処理する1つ以上の予備装置が設定されているものとする。
以下、本実施形態に係るソフトウェア更新管理装置1が実行するネットワーク内の各ネットワーク装置5に対するソフトウェア更新について、第1および第2実施形態として説明する。
<第1実施形態>
まず、第1実施形態に係るソフトウェア更新管理装置1A(後記する図2参照)を含むネットワーク管理システム1000について説明する。なお、第1実施形態の全体構成は、図1で示したシステムと同様である。
第1実施形態に係るソフトウェア更新管理装置1Aは、以下に示す特徴を有する。
ソフトウェア更新管理装置1Aは、ネットワーク装置5のソフトウェア更新時に実行するコマンド群の処理、OSアップグレード等を行う際に、制御対象となるネットワークを1つ以上に分割した情報であるブロック管理情報100(後記する図3参照)を保持する。このブロック管理情報100には、各ブロックに属する現用装置と予備装置に関する情報が格納されている。そして、ソフトウェア更新管理装置1Aは、保守者(具体的には、例えば、オペレータ端末(図示省略)等)から、ソフトウェア更新対象を示すネットワーク装置の識別情報と、その更新処理の開始時刻とを含むソフトウェアの更新を指示する情報(後記する「ソフトウェア更新指示20」)を受け付ける。そして、ソフトウェア更新管理装置1Aは、開始時刻となった時に、当該ネットワーク装置5のトラヒックを予備装置へ移し、ソフトウェア更新用コマンド群を実行し、さらに、指示のあったOSイメージファイルを転送してOSの更新を行い、予備装置へ移していたトラヒックを元のネットワーク装置に戻す。
このようにすることで、第1実施形態に係るソフトウェア更新管理装置1Aは、制御対象となるネットワークにおいて、トラヒックに影響を与えずに、管理するネットワーク装置5のソフトウェア更新を、ブロック毎、同時に自動で実行することができる。よって、ソフトウェア更新作業の効率化を実現することができる。
≪ソフトウェア更新管理装置1A≫
図2は、本発明の第1実施形態に係るソフトウェア更新管理装置1Aの構成例を示す機能ブロック図である。
ソフトウェア更新管理装置1Aは、制御対象となるネットワークをブロックに分割した情報であるブロック管理情報100(図3)を保持する。そして、ソフトウェア更新管理装置1Aは、オペレータ端末等からソフトウェア更新指示20(図4参照)を受け取ると、その指示内容にしたがって、各ネットワーク装置5のソフトウェア更新処理を実行する。
このソフトウェア更新管理装置1Aは、図2に示すように、制御部10と、入出力部11と、記憶部12とを含んで構成される。
入出力部11は、オペレータ端末(図示省略)や各ネットワーク装置5(図1参照)との間で情報の送受信を行うための通信インタフェース、および、タッチパネルやキーボード等の入力装置や、モニタ等の出力装置との間で情報の送受信を行うための入出力インタフェースからなる。
記憶部12は、フラッシュメモリやハードディスク、RAM(Random Access Memory)等により構成される。このソフトウェア更新管理装置1Aの記憶部12には、後記するブロック管理情報100(図3)やソフトウェア更新情報200(図5)等が格納される。また、この記憶部12には、制御部10の各機能を実行させるためのプログラムや、制御部10の処理に必要な情報が一時的に記憶される。
図3は、本実施形態に係るブロック管理情報100のデータ構成例を示す図である。
ブロック管理情報100には、各ブロックに属する現用装置と予備装置を示す情報が格納される。具体的には、図3に示すように、ブロックの識別情報(ID)に対応付けて、そのブロックに属するネットワーク装置5のうち、現用装置の装置IDと、予備装置の装置IDとが格納される。例えば、1行目に示すように、ブロック「1」には、装置IDが「1」〜「7」の現用装置(ネットワーク装置5)と、装置IDが「8」〜「10」の予備装置(ネットワーク装置5)とが属することが示される。
このブロック管理情報100は、ネットワークの保守者(オペレータ)等により、予め設定される情報である。また、ブロックの分割は、あるブロック内のネットワーク装置5において、現用と予備を切り替えた場合に、他のブロックでの通信の疎通性に影響を与えない範囲で設定される。
図2に戻り、制御部10は、ソフトウェア更新管理装置1Aの処理全般を司り、更新指示受信部101と、ソフトウェア更新情報生成部102と、ソフトウェア更新実行部103とを含んで構成される。
更新指示受信部101は、オペレータ端末(図示省略)等から、ソフトウェア更新対象を示すネットワーク装置5の識別情報と、その更新処理の開始時刻とを含むソフトウェア更新指示20を受け付ける。そして、更新指示受信部101は、受け付けたソフトウェア更新指示20を、ソフトウェア更新情報生成部102に出力する。
図4は、本発明の第1実施形態に係るソフトウェア更新管理装置1Aの処理概要を説明するための図である。
図4に示すように、ソフトウェア更新指示20には、「ソフトウェア更新対象装置」および「ソフトウェア更新時刻」の情報が含まれ、「ソフトウェア更新用コマンドファイルの格納場所」、「ソフトウェア更新用イメージファイルの格納場所」の情報を含めるようにしてもよい。
「ソフトウェア更新対象装置」は、ソフトウェア更新対象のネットワーク装置5の識別情報である。例えば、ネットワーク装置5のID「a」が格納される。
「ソフトウェア更新時刻」には、ソフトウェアの更新処理の開始時刻が、例えば、年月日時間分秒の形式「YYYYMMDD_hhmmss」で格納される。
「ソフトウェア更新用コマンドファイルの格納場所」には、ソフトウェア更新管理装置1Aが、各ネットワーク装置5に対し実行するコマンドが格納されるファイルが指定される。
「ソフトウェア更新用イメージファイルの格納場所」には、OSのアップグレードを実行する場合に必要となるアップグレード用のイメージファイルの格納場所を指定される。
なお、この「ソフトウェア更新用コマンドファイルの格納場所」および/または「ソフトウェア更新用イメージファイルの格納場所」の情報が、ソフトウェア更新指示20に含まれない場合には、ソフトウェア更新管理装置1Aが、ソフトウェア更新対象装置の情報(識別情報)に基づき、適切なコマンドファイルやイメージファイルを選択して決定するようにしてもよい。
図2に戻り、ソフトウェア更新情報生成部102は、取得したソフトウェア更新指示20の情報を、記憶部12内のソフトウェア更新情報200として格納する。
図5は、本発明の第1実施形態に係るソフトウェア更新情報200のデータ構成例を例示する図である。
ソフトウェア更新情報200は、図5に示すように、ソフトウェア更新指示20で示される情報が、対象装置毎に格納される。具体的には、「ソフトウェア更新対象装置(図5では「対象装置」と記載)」に対応付けて、「ソフトウェア更新時刻(図5では「更新時刻」と記載)」「コマンドファイルの格納場所」「イメージファイルの格納場所」の情報が格納される。なお、例えば、ソフトウェア更新指示20に、「ソフトウェア更新用イメージファイルの格納場所」の情報が含まれていない場合には、OSの更新はないものとして、ソフトウェア更新情報200には「―」が格納される。
図2に戻り、ソフトウェア更新実行部103は、ソフトウェア更新情報200の「更新時刻」を監視しており、「更新時刻」で示される時刻になると、そのソフトウェア更新対象装置のソフトウェア更新処理を実行する。
具体的には、図4に示すように、ソフトウェア更新時刻になると、ソフトウェア更新実行部103は、該当するソフトウェア更新対象装置が処理を行っているトラヒックを、同じブロック内の予備装置に移行させる(ステップS1)。続いて、ソフトウェア更新実行部103は、ソフトウェア更新用のコマンドファイルで示されるコマンドを実行する(ステップS2)。このとき、ソフトウェア更新実行部103は、ソフトウェア更新情報200において、イメージファイルの格納場所が指定されている場合には、OSのアップグレードが必要であるものとして、ソフトウェア更新用のイメージファイルを転送する。そして、ソフトウェア更新実行部103は、予備装置に移行していたトラヒックを、ソフトウェアの更新後の現用装置に戻す(ステップS3)。
≪処理の流れ≫
次に、ソフトウェア更新管理装置1Aの処理の流れについて説明する。
図6は、本発明の第1実施形態に係るソフトウェア更新管理装置1Aの処理の流れを示すフローチャートである。
ここでは、制御対象のネットワークを、1つ以上のブロックに分割した情報が、ブロック管理情報100(図3)として、ソフトウェア更新管理装置1の記憶部12に予め記憶されているものとする。
まず、ソフトウェア更新管理装置1A(更新指示受信部101)は、オペレータ端末(図示省略)等から、ソフトウェア更新対象を示すネットワーク装置5の識別情報と、その更新処理の開始時刻とを含むソフトウェア更新指示20(図4参照)を受け付ける(ステップS10)。そして、更新指示受信部101は、受け付けたソフトウェア更新指示20を、ソフトウェア更新情報生成部102に出力する。
続いて、ソフトウェア更新情報生成部102は、取得したソフトウェア更新指示20の情報に基づき、ソフトウェア更新情報200を生成し、記憶部12内に記憶する(ステップS11)。
次に、ソフトウェア更新実行部103は、記憶部12内のソフトウェア更新情報200の「更新時刻」を監視し、現在時刻が「更新時刻」に設定されているいずれかの時刻になったか否かを判定する(ステップS12)。
ソフトウェア更新実行部103は、現在時刻が更新時刻ではないと判定した場合(ステップS12→No)、更新時刻になるまで待つ。一方、現在時刻が更新時刻であると判定した場合には(ステップS12→Yes)、次のステップS13に進む。
次に、ソフトウェア更新実行部103は、図4のステップS1〜S3で示したソフトウェア更新処理を実行する。
具体的には、まず、ソフトウェア更新実行部103は、ソフトウェア更新情報200(図5参照)において更新時刻であると判定したソフトウェア更新対象装置(ネットワーク装置5)を特定する。そして、そのソフトウェア更新対象装置(ネットワーク装置5)が現用装置であるか否かを判定する(ステップS13)。つまり、ソフトウェア更新実行部103は、そのネットワーク装置5が、現用装置か予備装置かを判定する。
ここで、判定結果が現用装置である場合には(ステップS13→Yes)、ソフトウェア更新実行部103は、そのソフトウェア更新対象装置(ネットワーク装置5)が処理を行っているトラヒックを、同じブロック内の予備装置に移行させる(ステップS14)。
続いて、ソフトウェア更新実行部103は、ソフトウェア更新情報200を参照し、ソフトウェア更新用のコマンドファイルで示されるコマンドを実行する(ステップS15:ソフトウェア更新処理)。このとき、ソフトウェア更新実行部103は、ソフトウェア更新情報200において、イメージファイルの格納場所が指定されている場合には、OSのアップグレードが必要であるものとして、ソフトウェア更新用のイメージファイルを転送する。
そして、ソフトウェア更新実行部103は、更新が完了すると、予備装置に移行していたトラヒックを、ソフトウェアの更新後の現用装置に戻す(ステップS16)。そして、ステップS12に戻り、処理を続ける。
一方、ソフトウェア更新実行部103は、判定結果が現用装置ではなく、予備装置である場合には(ステップS13→No)、ステップS17へ進む。
ステップS17において、ソフトウェア更新実行部103は、ステップS15と同様に、ソフトウェア更新情報200を参照し、ソフトウェア更新用のコマンドファイルで示されるコマンドを実行する。このとき、ソフトウェア更新実行部103は、ソフトウェア更新情報200において、イメージファイルの格納場所が指定されている場合には、OSのアップグレードが必要であるものとして、ソフトウェア更新用のイメージファイルを転送する。そして、ステップS12に戻り、処理を続ける。
このように、本発明の第1実施形態に係るソフトウェア更新管理装置1Aによれば、制御対象となるネットワークにおいて、トラヒックに影響を与えずに、管理するネットワーク装置5のソフトウェア更新を、ブロック毎に、つまり複数同時に自動で実行することができる。
<第2実施形態>
次に、第2実施形態に係るソフトウェア更新管理装置1B(後記する図7参照)を含むネットワーク管理システム1000について説明する。なお、第2実施形態の全体構成は、図1で示したシステムと同様である。
第2実施形態に係るソフトウェア更新管理装置1Bは、以下に示す特徴と有する。
第2実施形態に係るソフトウェア更新管理装置1Bは、第1実施形態に係るソフトウェア更新管理装置1Aと同様に、制御対象となるネットワークを1つ以上に分割した情報であるブロック管理情報100(図3)を保持する。また、ソフトウェア更新管理装置1Bは、制御対象となるネットワーク全体の目標不稼働率(詳細は後記)を予め記憶しておく。そして、ソフトウェア更新管理装置1Bは、制御対象となるネットワーク内のすべてのネットワーク装置5を一括でソフトウェア更新する指示情報(後記する「全ネットワーク装置更新指示25」)を受け付ける。ソフトウェア更新管理装置1Bは、ソフトウェア更新実行中における制御対象のネットワーク全体の不稼働率を、ネットワーク全体の目標不稼働率以下に収めた上で、ソフトウェア更新時間を最も短くするスケジューリングを計算する。具体的には、ソフトウェア更新管理装置1Bは、ネットワーク全体の目標不稼働率を満たす最大の同時ソフトウェア更新台数を、ブロック毎に計算する。そして、ソフトウェア更新管理装置1Bは、各ブロックについて、計算した最大の同時ソフトウェア更新台数でソフトウェアを更新するようにスケジューリングを行い、制御対象のネットワーク装置5のソフトウェア更新を実行する。
このようにすることで、本実施形態に係るソフトウェア更新管理装置1Bは、ソフトウェア更新作業時のネットワーク全体の信頼性を確保しつつ、ソフトウェア更新作業の効率化を実現することができる。
図7は、本発明の第2実施形態に係るソフトウェア更新管理装置1Bの構成例を示す機能ブロック図である。
ソフトウェア更新管理装置1Bは、オペレータ端末(図示省略)等からネットワーク内のすべてのネットワーク装置5に対する全ネットワーク装置更新指示25(図10)を受け付けると、ネットワーク全体の目標不稼働率を満たし、1回のソフトウェア更新で実行できる最大の同時ソフトウェア更新台数を、ブロック毎に計算する。そして、ソフトウェア更新管理装置1Bは、ブロック毎に、計算した最大の同時ソフトウェア更新台数でソフトウェアを更新するようにスケジューリングを行い、各ネットワーク装置5のソフトウェア更新処理を実行する。
このソフトウェア更新管理装置1Bは、図7に示すように、制御部10と、入出力部11と、記憶部12とを含んで構成される。なお、図2に示したソフトウェア更新管理装置1Aと、同じ構成を備える機能は、同一の名称と符号を付し、詳細な説明は省略する。
記憶部12には、第1実施形態と同様に、各ブロックに属する現用装置と予備装置を示す情報であるブロック管理情報100(図3)が格納される。
また、記憶部12には、ネットワーク全体の目標不稼働率(「αtarget」)と装置単体の不稼働率(「α」)の情報が、不稼働率情報150として格納される。
ここで、不稼働率は、トラヒックの障害が発生する確率である「り障トラヒック発生確率」を示す。そして、装置単体の不稼働率(α)は、以下の(式1)で求められる。
不稼働率(α) = MTTR ÷ (MTBF + MTTR) ・・・(式1)
MTTR(Mean Time To Repair)は、平均修復時間である。MTBF(Mean Time Between Failures)は、平均故障間隔である。なお、ネットワーク全体の不稼働率の算出手法の例は、後記する。
記憶部12には、各ネットワーク装置5の不稼働率(α)と、ネットワーク全体として目標とする不稼働率を示す「ネットワーク全体の目標不稼働率」(αtarget)とが、予め格納される。
また、記憶部12には、後記する同時更新台数算出部104が算出する同時ソフトウェア更新台数情報400(図8)と、後記する更新スケジュール生成部105が生成する更新スケジュール情報500(図10)とが記憶される。
なお、この記憶部12には、制御部10の各機能を実行させるためのプログラムや、制御部10の処理に必要な情報が一時的に記憶される。
図7に戻り、制御部10は、ソフトウェア更新管理装置1Bの処理全般を司り、更新指示受信部101と、同時更新台数算出部104と、更新スケジュール生成部105と、ソフトウェア更新実行部103Bとを含んで構成される。
更新指示受信部101は、オペレータ端末(図示省略)等から、制御対象となるネットワーク内のすべてのネットワーク装置5を一括でソフトウェア更新する指示情報である全ネットワーク装置更新指示25(図10)を受け付ける。更新指示受信部101は、全ネットワーク装置更新指示25を受け付けると、その情報を同時更新台数算出部104に出力する。
この全ネットワーク装置更新指示25には、全ネットワーク装置のソフトウェア更新を開始する時刻や、各ブロックについて複数回にわけて行われるソフトウェア更新の間隔を指定する情報(ソフトウェア更新間隔)が含まれていてもよい。
更新指示受信部101は、例えば、後記する図10に示すような全ネットワーク装置更新指示25を受信する。この全ネットワーク装置更新指示25には、「ソフトウェア更新対象装置」としてすべてのネットワーク装置5を示す「ALL」が格納される。
「ソフトウェア更新開始時刻」には、全ソフトウェアの更新処理の全体を開始させる時刻が、例えば、年月日時間分秒の形式「YYYYMMDD_hhmmss」で格納される。また、「ソフトウェア更新間隔」として、各ソフトウェア更新回におけるソフトウェアの更新を開始する間隔が、例えば「30分」のように格納される。つまり、1回目に設定したソフトウェア更新をスタートさせた後、30分後に2回目に設定したソフトウェア更新をスタートさせ、以降、30分毎に、3回目以降のソフトウェア更新を実行させることを意味する。
「ソフトウェア更新用コマンドファイルの格納場所」および「ソフトウェア更新用イメージファイルの格納場所」の情報は、第1実施形態のソフトウェア更新指示20(図4)と同様の情報である。なお、ネットワーク装置5毎に異なるコマンド処理やイメージファイルの送信を行いたい場合には、各ネットワーク装置5に応じたコマンドファイルやイメージファイルの対応情報を予め記憶部12内に格納するようにしてもよい。
図7に戻り、同時更新台数算出部104は、ネットワーク全体の目標不稼働率を満たした上で、1回のソフトウェア更新で実行できる最大のソフトウェア更新台数をブロック毎に算出する。
以下、図8および図9を参照して、同時更新台数算出部104によるブロック毎の同時ソフトウェア更新台数の算出処理について説明する。
図8は、同時更新台数算出部104による、ブロック毎の同時ソフトウェア更新台数の算出処理の概要を説明するための図である。図9は、同時更新台数算出部104による、ブロック毎の同時ソフトウェア更新台数の算出処理における計算手法の一例を説明するための図である。
図8に示すように、ソフトウェア更新管理装置1Bには、ネットワーク全体の目標不稼働率(αtarget)と、各ネットワーク装置5の装置単体の不稼働率(α)とが予め記憶される。なお、装置単体の不稼働率(α)は、各ネットワーク装置5毎に、上記した(式1)を用いて算出してもよいが、以下においては、説明を簡単にするため、すべてのネットワーク装置5が同一の装置単体の不稼働率(α)であるものとして説明する。
同時更新台数算出部104は、まず、装置単体の不稼働率(α)と、各ブロックに属する現用装置と予備装置を示す情報であるブロック管理情報100(図8)とを用いて、ネットワーク全体の不稼働率を計算する。ネットワーク全体の不稼働率(り障トラヒック発生確率)の算出手法については、様々な手法(所定の手法)が適用可能であるが、以下その所定の手法の一例について説明する。
図9の符号90に示すように、ブロック「i」において、各ネットワーク装置5の装置単体の不稼働率を「α」とし、現用装置の台数を「Ni」、予備装置の台数を「Mi」とする。そして、同時ソフトウェア更新台数を「Ri」とする。ここで、同時ソフトウェア更新台数は、予備装置台数以下であるものとする(Ri≦Mi)。
この場合、ソフトウェア更新中のブロックiにおけるブロック内不稼働率「Wi」を、以下の(式2)により計算する。
Figure 2020136840

このWiは、同時故障台数(k)が、稼働している予備装置の台数(Mi−Ri)より多くなる確率を示している。
なお、上記の(式2)のうち、以下のカッコで示す部分(式2−1)は、Ni+Mi−Riの中からk個を選び出す組合せ数を示す。
Figure 2020136840

また、(式2)のうち、以下の部分(式2−2)は、全装置台数(Ni+Mi)から、ソフトウェア更新中の装置台数を引いた台数(Ni+Mi−Ri)のうち、k台が同時故障する確率を示す。
Figure 2020136840

上記のブロック内不稼働率(Wi)を示す(式2)に基づき、各ブロックの「同時ソフトウェア更新台数に対するブロック内不稼働率」(図8の更新台数毎ブロック内不稼働率300)を求めることができる。
また、ネットワーク全体の不稼働率(W)を以下の(式3)に計算する。
Figure 2020136840

ここで、(式3)のうち、以下の部分(式3−1)は、すべてのブロックでり障トラヒックが発生しない確率を示す。
Figure 2020136840

同時更新台数算出部104は、ネットワーク全体の目標不稼働率(αtarget)と、計算したネットワーク全体の不稼働率(W)とを用いて、以下の(式4)に示す最適化問題を解く。つまり、制約条件をαtarget≧Wを満たし、目的関数をαtarget−Wを最小化するソフトウェア更新台数(Ri)を算出する。
Figure 2020136840

同時更新台数算出部104は、上記(式4)を計算することにより、各ブロックにおける同時ソフトウェア更新台数Rを算出する。そして、同時更新台数算出部104は、算出結果を、図8に示す同時ソフトウェア更新台数情報400として記憶部12に格納する。
図8に示す同時ソフトウェア更新台数情報400の例では、ブロック「1」の同時ソフトウェア更新台数は「2」と算出され、ブロック「2」「3」以降については、同時ソフトウェア更新台数がそれぞれ「5」「3」として算出されたことを示している。
図7に戻り、更新スケジュール生成部105は、同時更新台数算出部104が生成した同時ソフトウェア更新台数情報400(図8)を用いて、1回のソフトウェア更新で実行できる各ブロックのソフトウェア更新台数を決定し、各ブロックですべてのネットワーク装置5をいつソフトウェア更新するのかを示すスケジュール(更新スケジュール情報500)を生成する。
図10は、更新スケジュール生成部105による更新スケジュール情報500の生成を説明するための図である。
更新スケジュール生成部105は、全ネットワーク装置更新指示25に含まれる「ソフトウェア更新開始時刻」と「ソフトウェア更新間隔」に基づき、各ソフトウェア更新回の「ソフトウェア更新実行時刻」を決定する。また、更新スケジュール生成部105は、同時ソフトウェア更新台数情報400に基づき、各回ごとに、各ブロックにおいて同時にソフトウェア更新する台数分だけ、各ブロック内のネットワーク装置5を選択する。図10に示す例では、ブロック1は、同時ソフトウェア更新台数が「2(台)」であるので、ブロック1内のネットワーク装置「1」「2」を1回目に選択し、2回目にネットワーク装置「3」「4」を選択するようにする。また、ブロック2は、同時ソフトウェア更新台数が「5(台)」であるので、ブロック2内のネットワーク装置「11」「12」「13」「14」「15」を1回目に選択し、2回目にネットワーク装置「16」「17」「18」「19」「20」を選択するようにする。更新スケジュール情報500の生成に関し、各ブロック内において、どのネットワーク装置5をどの順番で更新するかは任意に設定することができる。例えば、図10のように昇順でもよいし、降順でもよいし、ランダムに選択することも可能である。
また、ソフトウェア更新間隔は、特に指定をしない場合であっても、各ソフトウェア更新回において、すべてのブロックのソフトウェア更新が完了した場合に、次回のソフトウェア更新を開始するように設定してもよい。
図7に戻り、ソフトウェア更新実行部103Bは、更新スケジュール生成部105が生成した更新スケジュール情報500(図10)に基づき、各ソフトウェア更新回に割り振られているネットワーク装置5のソフトウェア更新を並列で実行する。
なお、ソフトウェア更新実行部103Bは、第1実施形態のソフトウェア更新実行部103と同様に、該当するソフトウェア更新対象装置(現用装置)が処理を行っているトラヒックを、同じブロック内の予備装置に移行させ、ソフトウェア更新用のコマンドファイルで示されるコマンドを実行し、必要に応じてソフトウェア更新用のイメージファイルを転送する。そして、ソフトウェア更新実行部103Bは、予備装置に移行していたトラヒックを、ソフトウェアの更新後の現用装置に戻す。
図11は、ソフトウェア更新実行部103Bによる、ソフトウェア更新回ごとに並列で行われる各ブロックのソフトウェア更新を説明するための図である。
図11に示すように、1回目のソフトウェア更新においては、ブロック1では、例えば、ネットワーク装置「1」「2」の2台が同時にソフトウェア更新される。ブロック2では、例えば、ネットワーク装置「11」「12」「13」「14」「15」の5台が同時にソフトウェア更新される。ブロック3以降も同様である。
そして、1回目のソフトウェア更新がすべて完了すると、ソフトウェア更新実行部103Bは、2回目以降のソフトウェア更新を更新スケジュール情報500に従って自動的に実行する。
≪処理の流れ≫
次に、ソフトウェア更新管理装置1Bの処理の流れについて説明する。
図12は、本発明の第2実施形態に係るソフトウェア更新管理装置1Bの処理の流れを示すフローチャートである。
ここでは、制御対象のネットワークを1つ以上のブロックに分割した情報が、ブロック管理情報100(図3)として、ソフトウェア更新管理装置1の記憶部12に予め記憶されているものとする。また、不稼働率情報150として、ネットワーク全体の目標不稼働率(αtarget)と、各ネットワーク装置5の装置単体の不稼働率(α)とが予め記憶部12に記憶されているものとする。
まず、ソフトウェア更新管理装置1B(更新指示受信部101)は、オペレータ端末(図示省略)等から、制御対象となるネットワーク内のすべてのネットワーク装置5を一括でソフトウェア更新する指示情報である全ネットワーク装置更新指示25(図10参照)を受け付ける(ステップS20)。そして、更新指示受信部101は、受け付けた全ネットワーク装置更新指示25を、同時更新台数算出部104に出力する。
続いて、同時更新台数算出部104は、ネットワーク全体の目標不稼働率を満たした上で、1回のソフトウェア更新で実行できる最大のソフトウェア更新台数をブロック毎に算出し、同時ソフトウェア更新台数情報400(図8)を生成する。
このとき、同時更新台数算出部104は、装置単体の不稼働率(α)と、各ブロックに属する現用装置と予備装置を示す情報であるブロック管理情報100(図8)とを用いて、ネットワーク全体の不稼働率を計算する。そして、同時更新台数算出部104は、ネットワーク全体の不稼働率(W)が、ネットワーク全体の目標不稼働率(αtarget)に最も近づく最大の同時ソフトウェア更新台数(R)を各ブロックについて算出する(ステップS21)。
次に、更新スケジュール生成部105は、同時更新台数算出部104が生成した同時ソフトウェア更新台数情報400(図8)を用いて、1回のソフトウェア更新で各ブロックにおいて同時に実行できるソフトウェア更新台数を決定し、更新スケジュール情報500(図10)を生成する(ステップS22)。このとき、更新スケジュール生成部105は、全ネットワーク装置更新指示25に含まれる「ソフトウェア更新開始時刻」と「ソフトウェア更新間隔」に基づき、各ソフトウェア更新回の「ソフトウェア更新実行時刻」を決定する。
そして、ソフトウェア更新実行部103Bは、記憶部12内の更新スケジュール情報500(図10)の「ソフトウェア更新実行時刻」を監視し、現在時刻がソフトウェア更新実行時刻に設定されている時刻になったか否かを判定する(ステップS23)。
ソフトウェア更新実行部103Bは、現在時刻がソフトウェア更新実行時刻ではないと判定した場合(ステップS23→No)、ソフトウェア更新実行時刻になるまで待つ。一方、現在時刻がソフトウェア更新実行時刻であると判定した場合には(ステップS23→Yes)、次のステップS24に進む。
次に、ソフトウェア更新実行部103Bは、前回のソフトウェア更新回が存在する場合に、そのソフトウェア更新回におけるソフトウェア更新が、すべてのブロックにおいて完了しているかを判定する(ステップS24)。
ここで、ソフトウェア更新実行部103Bは、まだ、ソフトウェア更新が完了していないブロックがある場合には(ステップS24→No)、そのブロックの当該ネットワーク更新回におけるネットワーク装置5のネットワーク更新が完了するまで待つ。一方、すべてのブロックにおいて前回のネットワーク更新が完了している場合には(ステップS24→Yes)、次のステップS25に進む。
ステップS25において、ソフトウェア更新実行部103Bは、記憶部12内の更新スケジュール情報500に基づき、当該ネットワーク更新回においてブロック毎に設定された台数のネットワーク装置5のソフトウェア更新を並列で実行する。
なお、このとき、ソフトウェア更新実行部103Bは、第1実施形態のソフトウェア更新実行部103と同様に、更新対象となるネットワーク装置5が現用装置か予備装置かを判定し、現用装置の場合はトラヒックを予備装置に移行させた上で、ソフトウェア更新を実行する。
続いて、ソフトウェア更新実行部103Bは、更新スケジュール情報500で設定されたすべてのソフトウェア更新回の処理を終了したか否かを判定する(ステップS26)。つまり、制御対象のネットワーク内のすべてのネットワーク装置5のソフトウェア更新が終了したか否かを判定する。
ここで、まだ実行していないソフトウェア更新回がある場合には(ステップS26→No)、ステップS23に戻り処理を続ける。一方、すべてのソフトウェア更新回の処理を終了した場合には(ステップS26→Yes)、制御対象のネットワーク内のすべてのネットワーク装置5のソフトウェア更新が完了したものとして、ソフトウェア更新処理を終了する。
≪実験例≫
次に、第2実施形態に係るソフトウェア更新管理装置1Bが実行する更新スケジュールの自動化手法の実験例について説明する。
図13は、第2実施形態に係るソフトウェア更新管理装置1Bが制御対象とするネットワークの構成例を示す図である。
制御対象とするネットワークは、現用装置(ACT)と予備装置(SBY)を備える5つのブロック(ブロック1〜5)に分割されるものとする。図13に示すように、ブロック1は、現用装置(ACT)が200台、予備装置(SBY)が20台である。ブロック2は、現用装置(ACT)が50台、予備装置(SBY)が15台である。ブロック3は、現用装置(ACT)が50台、予備装置(SBY)が10台である。ブロック4は、現用装置(ACT)が30台、予備装置(SBY)が10台である。ブロック5は、現用装置(ACT)が10台、予備装置(SBY)が10台である。
ネットワーク装置5の装置単体の不稼働率(α)は、α=0.0002である。ここで、MTBF[h]=200,000、MTTR[h]=48とする。また、ネットワーク全体の目標不稼働率(αtarget)は、αtarget =0.000001とする。
この条件において、ソフトウェア更新管理装置1Bの同時更新台数算出部104は、上記した(式2)〜(式4)を用いて計算することにより、図14に示すような結果を得た。図14に示すように、ネットワーク全体の不稼働率(W)は、「0.000000891」であり、ネットワーク全体の目標不稼働率(αtarget)以下である。そして、同時ソフトウェア更新台数は、ブロック1は「17(台)」、ブロック2は「13(台)」、ブロック3は「8(台)」、ブロック4は、「8(台)」、ブロック5は「8(台)」であった。
図15は、特に計画を行わず、各ブロックの予備装置をすべて利用してソフトウェア更新を実行した場合(「従来手法」と称する。)と、本発明の第2実施形態に係るソフトウェア更新管理装置1Bによる更新スケジュールを実行した場合(「本発明の手法」と称する。)を比較した図である。
従来手法では、ネットワーク全体の不稼働率(W)は「0.066」でありネットワーク全体の目標不稼働率(αtarget)を上回る結果となった。本発明の手法では、従来手法と比較して、ソフトウェア更新回数は増加するが、ネットワーク全体の目標不稼働率(αtarget)以下にネットワーク全体の不稼働率(W)を抑えた上で、各ブロックの同時ソフトウェア更新台数を求めることができた。
以上説明したように、本発明の第2実施形態に係るソフトウェア更新管理装置1Bによれば、ソフトウェア更新作業時のネットワーク全体の信頼性を確保しつつ、ソフトウェア更新作業の効率化を実現することができる。つまり、ソフトウェア更新管理装置1Bによれば、ネットワーク全体の目標不稼働率(αtarget)を超えない範囲で、ソフトウェア更新に要する時間を最も短縮できるソフトウェア更新のスケジュールを生成して実行することが可能となる。
1,1A,1B ソフトウェア更新管理装置
5 ネットワーク装置
10 制御部
11 入出力部
13 記憶部
100 ブロック管理情報
101 更新指示受信部
102 ソフトウェア更新情報生成部
103,103B ソフトウェア更新実行部
104 同時更新台数算出部
105 更新スケジュール生成部
150 不稼働率情報
200 ソフトウェア更新情報
300 更新台数毎ブロック内不稼働率情報
400 同時ソフトウェア更新台数情報
500 更新スケジュール情報

Claims (5)

  1. ネットワークを構成する複数のネットワーク装置のソフトウェア更新を実行するソフトウェア更新管理装置であって、
    前記ネットワークを1つ以上のブロックに分割し、分割した前記ブロックそれぞれに属する前記ネットワーク装置の情報を、当該ネットワーク装置が現用装置または予備装置であることを示す情報とともに格納するブロック管理情報が記憶される記憶部と、
    ソフトウェア更新の対象となるネットワーク装置を示すソフトウェア更新対象装置と、当該ソフトウェア更新対象装置のソフトウェア更新処理の開始時刻を示すソフトウェア更新時刻とを含むソフトウェア更新指示を受け付ける更新指示受信部と、
    受け付けた前記ソフトウェア更新指示を用いて、前記ソフトウェア更新対象装置に対応付けた前記ソフトウェア更新時刻を含むソフトウェア更新情報を生成するソフトウェア更新情報生成部と、
    前記ソフトウェア更新情報を参照して前記ソフトウェア更新時刻になると、前記ソフトウェア更新対象装置が現用装置であるかまたは予備装置であるかを前記ブロック管理情報に基づき判定し、前記現用装置であると判定した場合には、前記現用装置であるソフトウェア更新対象装置が処理中のトラヒックを前記現用装置と同じブロック内の予備装置に移行した上でソフトウェア更新処理を実行するとともに、前記予備装置であると判定した場合には、前記予備装置であるソフトウェア更新対象装置に対してソフトウェア更新処理を実行し、前記現用装置または前記予備装置に対する前記ソフトウェア更新処理を、各ブロックについて並列で実行するソフトウェア更新実行部と、
    を備えることを特徴とするソフトウェア更新管理装置。
  2. ネットワークを構成する複数のネットワーク装置のソフトウェア更新を実行するソフトウェア更新管理装置であって、
    前記ネットワークを1つ以上のブロックに分割し、分割した前記ブロックそれぞれに属する前記ネットワーク装置の情報を、当該ネットワーク装置が現用装置または予備装置であることを示す情報とともに格納するブロック管理情報、前記ネットワーク装置単体の不稼働率、および、前記ネットワーク全体の目標不稼働率を記憶する記憶部と、
    ソフトウェア更新の対象装置が前記ネットワーク内のすべてのネットワーク装置であることを示す情報を含む全ネットワーク装置更新指示を受け付ける更新指示受信部と、
    前記ブロック管理情報と、前記ネットワーク装置単体の不稼働率とを用いた所定の手法でネットワーク全体の不稼働率を算出することにより、当該ネットワーク全体の不稼働率を前記ネットワーク全体の目標不稼働率以下に収めるようにして、1回のソフトウェア更新で実行できる最大のソフトウェア更新台数を示す同時ソフトウェア更新台数を、前記ブロック毎に算出する同時更新台数算出部と、
    算出された前記ブロック毎の前記同時ソフトウェア更新台数で示される台数分毎に、各ソフトウェア更新回においてソフトウェア更新を実行するネットワーク装置を前記ブロック毎に選択することにより更新スケジュール情報を生成する更新スケジュール情報生成部と、
    前記更新スケジュール情報を参照して、ソフトウェア更新回毎に、選択された前記ネットワーク装置のソフトウェア更新処理を、各ブロックについて並列で実行するソフトウェア更新実行部と、
    を備えることを特徴とするソフトウェア更新管理装置。
  3. 前記ソフトウェア更新実行部は、
    前記ソフトウェア更新処理の際に、前記ソフトウェア更新を実行するネットワーク装置が現用装置であるかまたは予備装置であるかを前記ブロック管理情報に基づき判定し、前記現用装置であると判定した場合には、前記現用装置であるネットワーク装置が処理中のトラヒックを前記現用装置と同じブロック内の予備装置に移行した上でソフトウェア更新処理を実行し、前記予備装置であると判定した場合には、前記予備装置であるネットワーク装置に対してソフトウェア更新処理を実行すること
    を特徴とする請求項2に記載のソフトウェア更新管理装置。
  4. ネットワークを構成する複数のネットワーク装置のソフトウェア更新を実行するソフトウェア更新管理装置のソフトウェア更新管理方法であって、
    前記ソフトウェア更新管理装置は、
    前記ネットワークを1つ以上のブロックに分割し、分割した前記ブロックそれぞれに属する前記ネットワーク装置の情報を、当該ネットワーク装置が現用装置または予備装置であることを示す情報とともに格納するブロック管理情報が記憶される記憶部を備えており、
    ソフトウェア更新の対象となるネットワーク装置を示すソフトウェア更新対象装置と、当該ソフトウェア更新対象装置のソフトウェア更新処理の開始時刻を示すソフトウェア更新時刻とを含むソフトウェア更新指示を受け付けるステップと、
    受け付けた前記ソフトウェア更新指示を用いて、前記ソフトウェア更新対象装置に対応付けた前記ソフトウェア更新時刻を含むソフトウェア更新情報を生成するステップと、
    前記ソフトウェア更新情報を参照して前記ソフトウェア更新時刻になると、前記ソフトウェア更新対象装置が現用装置であるかまたは予備装置であるかを前記ブロック管理情報に基づき判定し、前記現用装置であると判定した場合には、前記現用装置であるソフトウェア更新対象装置が処理中のトラヒックを前記現用装置と同じブロック内の予備装置に移行した上でソフトウェア更新処理を実行するとともに、前記予備装置であると判定した場合には、前記予備装置であるソフトウェア更新対象装置に対してソフトウェア更新処理を実行し、前記現用装置または前記予備装置に対する前記ソフトウェア更新処理を、各ブロックについて並列で実行するステップと、
    を実行することを特徴とするソフトウェア更新管理方法。
  5. ネットワークを構成する複数のネットワーク装置のソフトウェア更新を実行するソフトウェア更新管理装置のソフトウェア更新管理方法であって、
    前記ソフトウェア更新管理装置は、
    前記ネットワークを1つ以上のブロックに分割し、分割した前記ブロックそれぞれに属する前記ネットワーク装置の情報を、当該ネットワーク装置が現用装置または予備装置であることを示す情報とともに格納するブロック管理情報、前記ネットワーク装置単体の不稼働率、および、前記ネットワーク全体の目標不稼働率を記憶する記憶部を備えており、
    ソフトウェア更新の対象装置が前記ネットワーク内のすべてのネットワーク装置であることを示す情報を含む全ネットワーク装置更新指示を受け付けるステップと、
    前記ブロック管理情報と、前記ネットワーク装置単体の不稼働率とを用いた所定の手法でネットワーク全体の不稼働率を算出することにより、当該ネットワーク全体の不稼働率を前記ネットワーク全体の目標不稼働率以下に収めるようにして、1回のソフトウェア更新で実行できる最大のソフトウェア更新台数を示す同時ソフトウェア更新台数を、前記ブロック毎に算出するステップと、
    算出された前記ブロック毎の前記同時ソフトウェア更新台数で示される台数分毎に、各ソフトウェア更新回においてソフトウェア更新を実行するネットワーク装置を前記ブロック毎に選択することにより更新スケジュール情報を生成するステップと、
    前記更新スケジュール情報を参照して、ソフトウェア更新回毎に、選択された前記ネットワーク装置のソフトウェア更新処理を、各ブロックについて並列で実行するステップと、
    を実行することを特徴とするソフトウェア更新管理方法。
JP2019026168A 2019-02-18 2019-02-18 ソフトウェア更新管理装置およびソフトウェア更新管理方法 Active JP7088070B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019026168A JP7088070B2 (ja) 2019-02-18 2019-02-18 ソフトウェア更新管理装置およびソフトウェア更新管理方法
US17/429,784 US11797291B2 (en) 2019-02-18 2020-02-04 Software update management device and software update management method
PCT/JP2020/004032 WO2020170794A1 (ja) 2019-02-18 2020-02-04 ソフトウェア更新管理装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019026168A JP7088070B2 (ja) 2019-02-18 2019-02-18 ソフトウェア更新管理装置およびソフトウェア更新管理方法

Publications (2)

Publication Number Publication Date
JP2020136840A true JP2020136840A (ja) 2020-08-31
JP7088070B2 JP7088070B2 (ja) 2022-06-21

Family

ID=72144636

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019026168A Active JP7088070B2 (ja) 2019-02-18 2019-02-18 ソフトウェア更新管理装置およびソフトウェア更新管理方法

Country Status (3)

Country Link
US (1) US11797291B2 (ja)
JP (1) JP7088070B2 (ja)
WO (1) WO2020170794A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022172331A1 (ja) * 2021-02-09 2022-08-18 日本電信電話株式会社 設定変更装置、設定変更方法及びプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06319163A (ja) * 1993-01-28 1994-11-15 Nec Corp ファイル更新方式
JPH0950382A (ja) * 1995-08-09 1997-02-18 Nippon Telegr & Teleph Corp <Ntt> ファイル更新方法
JP2008269479A (ja) * 2007-04-24 2008-11-06 Fuji Xerox Co Ltd ソフトウェア更新システム、サーバ、端末装置、画像形成装置及びソフトウェア更新プログラム
JP2014052793A (ja) * 2012-09-06 2014-03-20 Canon Inc 監視装置、管理システム、ファームウェア更新方法、及びプログラム
US20180060061A1 (en) * 2016-08-26 2018-03-01 Nicira, Inc. Method and system for tracking progress and providing fault tolerance in automated upgrade of a network virtualization platform

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853948B2 (en) * 2005-10-24 2010-12-14 International Business Machines Corporation Method and apparatus for scheduling grid jobs
US20140337840A1 (en) * 2013-05-10 2014-11-13 Elwha Llc Dynamic Point to Point Mobile Network Including Intermediate User Interface Aspects System and Method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06319163A (ja) * 1993-01-28 1994-11-15 Nec Corp ファイル更新方式
JPH0950382A (ja) * 1995-08-09 1997-02-18 Nippon Telegr & Teleph Corp <Ntt> ファイル更新方法
JP2008269479A (ja) * 2007-04-24 2008-11-06 Fuji Xerox Co Ltd ソフトウェア更新システム、サーバ、端末装置、画像形成装置及びソフトウェア更新プログラム
JP2014052793A (ja) * 2012-09-06 2014-03-20 Canon Inc 監視装置、管理システム、ファームウェア更新方法、及びプログラム
US20180060061A1 (en) * 2016-08-26 2018-03-01 Nicira, Inc. Method and system for tracking progress and providing fault tolerance in automated upgrade of a network virtualization platform

Also Published As

Publication number Publication date
JP7088070B2 (ja) 2022-06-21
WO2020170794A1 (ja) 2020-08-27
US11797291B2 (en) 2023-10-24
US20220137950A1 (en) 2022-05-05

Similar Documents

Publication Publication Date Title
CN109582335B (zh) 一种无中断存储集群节点在线升级方法、装置及设备
US6289511B1 (en) Method and system for distributing software in a telecommunications network
CN106575247B (zh) 计算集群的容错联盟
US8301935B2 (en) Distributed batch runner
CN109343939B (zh) 一种分布式集群及并行计算任务调度方法
CN109525410B (zh) 分布式存储系统升级管理的方法、装置及分布式存储系统
CN104092718A (zh) 分布式系统及分布式系统中配置信息的更新方法
CN111382134B (zh) 大规模分布式存储系统中数据恢复方法及装置
CN105635216A (zh) 分布式应用的升级方法、设备和分布式系统
US10216593B2 (en) Distributed processing system for use in application migration
US20060282831A1 (en) Method and hardware node for customized upgrade control
JP7088070B2 (ja) ソフトウェア更新管理装置およびソフトウェア更新管理方法
CN115525423A (zh) 计算任务分配方法、分布式计算系统及设备
CN114064438A (zh) 数据库故障处理方法和装置
EP3961323A1 (en) Replacement of industrial field device
CN107682888B (zh) 一种云ac冗余备份系统和方法
CN112269693B (zh) 一种节点自协调方法、装置和计算机可读存储介质
JP2019139533A (ja) 配置構成装置、および、配置構成方法
CN104090797A (zh) 一种网板升级方法及网络设备
CN117349025B (zh) 一种组态迁移方法、装置、电子设备和存储介质
CN112269647B (en) Node scheduling, switching and coordination method and corresponding device, equipment and medium thereof
CN116521453B (zh) 基于整数线性规划模型ilp的云集群容灾方法及相关设备
CN105591776A (zh) Sdn网络设备的主备链路切换方法和装置
CN111597037B (zh) 作业分配方法、装置、电子设备及可读存储介质
CN115514817A (zh) 一种信息处理方法、设备和计算机可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210601

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220415

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220510

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220523

R150 Certificate of patent or registration of utility model

Ref document number: 7088070

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150