(57)【要約】【課題】通信サービスを継続したまま、１重化構成のＣＰＵの制御ソフトウェアの更新することができる通信装置、ソフトウェア更新方法およびプログラムを提供すること。【解決手段】通信装置１は、ネットワークに接続された複数の通信機器間のデータ転送を行うネットワークスイッチ６と、ネットワークスイッチ６の動作を制御する制御ソフトウェアを記憶するフラッシュディスク７、８と、少なくとも制御ソフトウェアを実行するプロセッサ４と、を備え、プロセッサ４は、制御ソフトウェアの更新時に、バージョンアップが必要なプロセスについて、新しくプロセスを起動し、関連するプロセス間通信を新しいプロセスに切り替えるＩＳＳＵ機能を有する。【選択図】図１
2018173819.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された複数の通信機器間のデータ転送を行うネットワークスイッチと、
前記ネットワークスイッチの動作を制御する制御ソフトウェアを記憶するフラッシュディスクと、
少なくとも前記制御ソフトウェアを実行するプロセッサと、を備え、
前記プロセッサは、前記制御ソフトウェアの更新時に、バージョンアップが必要なプロセスについて、新しくプロセスを起動し、関連するプロセス間通信を新しいプロセスに切り替えるＩＳＳＵ機能を有する通信装置。
【請求項２】
前記ＩＳＳＵ機能は、関連するプロセス間通信を新しいプロセスに切り替えた後に、古いプロセスを削除する請求項１に記載の通信装置。
【請求項３】
前記ＩＳＳＵ機能は、バージョンアップが必要なプロセスについて、新しくプロセスを起動した後に、前記前記プロセッサから前記ネットワークスイッチへのパケット転送を停止し、
関連するプロセス間通信を新しいプロセスに切り替えた後に、前記プロセッサから前記ネットワークスイッチへのパケット転送を再開する、請求項１または２に記載の通信装置。
【請求項４】
前記通信装置は、前記プロセッサと前記ネットワークスイッチの間で転送されるフレームを記憶するフレーム転送メモリを備え、
前記ＩＳＳＵ機能は、前記前記プロセッサから前記ネットワークスイッチへのパケット転送を停止した後に、前記フレーム転送メモリ内のフレームの刈り取りを停止し、
前記プロセッサから前記ネットワークスイッチへのパケット転送を再開した後に、前記フレーム転送メモリ内のフレームの刈り取りを再開する、請求項３に記載の通信装置。
【請求項５】
前記プロセッサは、前記制御ソフトウェアのバージョンと、前記制御ソフトウェアのプロセスのリビジョンとを対応付けて記憶するバージョン管理テーブルを備え、
前記ＩＳＳＵ機能は、前記バージョン管理テーブルを参照して、バージョンアップが必要なプロセスを判断する、請求項１から４のいずれかに記載の通信装置。
【請求項６】
前記プロセッサは、バージョンアップが必要なプロセスの情報を含む差分情報を管理サーバに通知する、請求項５に記載の通信装置。
【請求項７】
通信装置の制御ソフトウェアの更新時に、バージョンアップが必要なプロセスについて、新しくプロセスを起動し、関連するプロセス間通信を新しいプロセスに切り替え、関連するプロセス間通信を新しいプロセスに切り替えた後に、古いプロセスを削除するソフトウェア更新方法。
【請求項８】
通信装置の制御ソフトウェアの更新時に、バージョンアップが必要なプロセスについて、新しくプロセスを起動するステップと、
関連するプロセス間通信を新しいプロセスに切り替えるステップと、
関連するプロセス間通信を新しいプロセスに切り替えた後に、古いプロセスを削除するステップを、プロセッサに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信装置、ソフトウェア更新方法およびプログラムに関する。
【背景技術】
【０００２】
通信機器では、機能追加や問題修正をするために制御ソフトウェア(SW: SoftWare)が更新されることがある。この制御ソフトウェアの更新では、ユーザトラヒックの転送を止めずに、インサービスで更新を完了すること(ISSU: In Service Software Upgrade)が求められている。
【０００３】
通信機器において制御ソフトウェアをインサービスでバージョンアップする場合、通常CPU(Central Processing Unit)を2重化する方式（ホットスタンバイ方式）が一般的である。しかし、ホットスタンバイ方式では、CPUを2重化するハードウェアの冗長構成が必要なため、コストがかかってしまう。また、CPUの1重化構成で制御ソフトウェアをバージョンアップする場合、ソフトウェアの更新時にCPUをリセットするため、ソフトウェアで実現している機能は全てサービスが停止されてしまい、インサービスでバージョンアップすることができない。
【０００４】
例えば、CPUの二重化を行わずに、このISSU機能を実現しようとした場合、レイヤ２スイッチ(L2SW)等のハードウェアで実現している転送機能についてはサービスを継続できるが、ソフトウェアで実現しているC-Plane機能や障害管理機能やRMONなどは制御ソフトウェア（ロードモジュール: Load Module）の更新に伴い、CPUリセットが行われるためサービスの継続が困難である。
【０００５】
リセット（リブート）せずに実行中のプログラムの更新を行う方法として、特許文献１には、更新指示に応じて、記憶装置に格納されている複数のプログラムのうち更新対象のプログラムを特定し、更新対象のプログラムに対応し且つ上記複数のプログラムを実行することによって起動される複数のプロセスに含まれるプロセスである入れ替えプロセスと、当該入れ替えプロセスと通信を行ったことがある通信先プロセスとを抽出し、そして更新データで更新を行ったことに応じて、入れ替えプロセスの代わりのプロセスを起動すると共に、通信先プロセスの代わりのプロセスを起動する起動処理を行う方法が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１１／１５８３６７号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載された方法では、複数のプロセス間の関係を考慮せずに、プロセスを入れ替えるので、プロセス間通信を継続できず、通信サービスを継続したまま、１重化構成のＣＰＵの制御ソフトウェアの更新することができないという問題があった。
【課題を解決するための手段】
【０００８】
一実施形態の通信装置は、ネットワークに接続された複数の通信機器間のデータ転送を行うネットワークスイッチと、前記ネットワークスイッチの動作を制御する制御ソフトウェアを記憶するフラッシュディスクと、少なくとも前記制御ソフトウェアを実行するプロセッサと、を備え、前記プロセッサは、前記制御ソフトウェアの更新時に、バージョンアップが必要なプロセスについて、新しくプロセスを起動し、関連するプロセス間通信を新しいプロセスに切り替えるＩＳＳＵ機能を有するようにした。
【０００９】
一実施形態のソフトウェア更新方法は、通信装置の制御ソフトウェアの更新時に、バージョンアップが必要なプロセスについて、新しくプロセスを起動し、関連するプロセス間通信を新しいプロセスに切り替え、関連するプロセス間通信を新しいプロセスに切り替えた後に、古いプロセスを削除するようにした。
【００１０】
一実施形態のプログラムは、通信装置の制御ソフトウェアの更新時に、バージョンアップが必要なプロセスについて、新しくプロセスを起動するステップと、関連するプロセス間通信を新しいプロセスに切り替えるステップと、関連するプロセス間通信を新しいプロセスに切り替えた後に、古いプロセスを削除するステップを、プロセッサに実行させるようにした。
【発明の効果】
【００１１】
本発明の通信装置、ソフトウェア更新方法およびプログラムによれば、通信サービスを継続したまま、１重化構成のＣＰＵの制御ソフトウェアの更新することができる。
【図面の簡単な説明】
【００１２】
【図１】本実施の形態にかかる通信装置の概略構成を示すブロック図である。
【図２】本実施の形態の通信装置が管理するネットワーク及び通信機器の一例を示す略図である。
【図３】本実施の形態にかかる通信装置の制御フローを示すフロー図である。
【図４】フレーム転送メモリの処理の一例を示す略図である。
【図５】制御ロードモジュールをフラッシュディスクにダウンロードする場合の動作の一例を示す略図である。
【図６】起動中のロードモジュール内のプロセスの変化の一例を示す略図である。
【発明を実施するための形態】
【００１３】
（本実施の形態）
以下、図面を参照して本発明の実施の形態について説明する。図１は、本実施の形態にかかる通信装置の概略構成を示すブロック図である。図１において、通信装置１は、フレーム転送メモリ３と、制御ＣＰＵ４と、フレーム転送バス５と、フラッシュディスク７と、フラッシュディスク８と、レイヤ２スイッチ（Ｌ２ＳＷ）６とを備える。
【００１４】
フレーム転送メモリ３は、レイヤ２スイッチ６から入力されたフレームを一時格納する。
制御ＣＰＵ４は、ＣＰＵ周辺の回路（補助記憶回路、入出力回路等）を含んでも良い。そして、制御ＣＰＵ４は、ＩＳＳＵ管理機能９と、バージョン管理テーブル１０と、ＭＩＢデータ機能部１１と、ＯＳ１２と、機能プロセス．Ａ１３と、機能プロセス．Ｂ１４と、機能プロセス．Ｃ１５の機能を含む。また、ＯＳ１２は、ドライバ１６を含む。
【００１５】
フレーム転送バス５は、制御ＣＰＵ４、レイヤ２スイッチ６及びフレーム転送メモリ３を接続するバスである。
フラッシュディスク７及びフラッシュディスク８は、制御ソフトウェア（ロードモジュール）を格納する。
【００１６】
レイヤ２スイッチ６は、複数の通信機器と接続し、通信機器間でデータを転送するネットワークスイッチである。
【００１７】
管理サーバ２は、通信装置１と接続する。そして管理サーバ２は、通信装置１を管理する。例えば、管理サーバ２は、ＮＳＭ（Network and Security Manager）の機能を有する。
【００１８】
ＩＳＳＵ管理機能９は、インサービスで制御ソフトウェアの更新を行うための指示を行うコントローラである。
【００１９】
バージョン管理テーブル１０は、制御ソフトウェアのバージョンと、制御ソフトウェアの各プロセスのリビジョンとを対応付けて記憶するテーブルである。
【００２０】
ＭＩＢデータ機能部１１は、通信ネットワークにおけるデバイスを管理するためのデータベースの機能を有する。
ＯＳ１２は、通信装置１のコンピュータとしての基本的な機能を担うソフトウェアである。
【００２１】
機能プロセス．Ａ１３、Ｂ１４及びＣ１５は、制御ソフトウェア内のプロセスである。そして、機能プロセス．Ａ１３、Ｂ１４及びＣ１５は、定義した特定の機能（例えば通信に関する機能）を処理するプロセスである。
【００２２】
ドライバ１６は、フレーム転送バス５及びレイヤ２スイッチ６との間のフレーム転送を司る機能を有するソフトウェアである。
【００２３】
以上の構成により、通信装置１は、複数の通信機器と接続し、複数の通信機器間のデータ転送を管理する。例えば、通信装置１は、レイヤ２スイッチとして、ＭＡＣ(Media Access Control)アドレスとポートを関連づけて記憶し、パケットを転送する。
【００２４】
図２は、本実施の形態の通信装置が管理するネットワーク及び通信機器の一例を示す略図である。
図２において、通信装置１は、複数の通信機器２０−１〜２０−３と接続し、ＧＮＥ（Gateway Network Element）の機能を果たす。また、複数の通信機器２０−１〜２０−３がインバウンド接続する複数の通信機器２０−１１〜２０〜３２についても、データ転送を管理する。
【００２５】
ここで、通信機器２０−１〜２０−３及び２０−１１〜２０〜３２を管理するネットワークにおいて、通信装置１（ＧＮＥ）の制御ロードモジュールの更新をおこなう際に、管理しているネットワークが切断されず、通信装置１（ＧＮＥ）配下の通信機器２０−１〜２０−３及び２０−１１〜２０〜３２が管理サーバ２から制御不能とならないようにする必要がある。
【００２６】
以下、図３を用いて、管理しているネットワークが切断されないように通信装置１のロードモジュールを更新する手順について説明する。図３は、本実施の形態にかかる通信装置の制御フローを示すフロー図である。
【００２７】
まず、手順Ｓ１では、管理サーバ２からＩＳＳＵ管理機能９に制御ロードモジュールの更新が指示される。
次に、手順Ｓ２では、管理サーバ２からロードモジュールがダウンロードされ、ロードモジュールはフラッシュディスク８（１面（非現用面））に書き込まれる。
【００２８】
手順Ｓ３では、ＩＳＳＵ管理機能９が、フラッシュディスク７（０面（現用面））およびフラッシュディスク８（１面（非現用面））の起動面フラグを変更する。具体的には、ＩＳＳＵ管理機能９は、フラッシュディスク７（０面（現用面））の起動面フラグを倒す。また、ＩＳＳＵ管理機能９は、フラッシュディスク８（１面（非現用面））の起動面フラグを立てる。
【００２９】
手順Ｓ４では、ＩＳＳＵ管理機能９が、フラッシュディスク８（１面（非現用面））にダウンロードされた制御ソフトウェアの更新対象の機能（プロセス）のバージョンを確認し、差分情報を確認する。
【００３０】
手順Ｓ５では、ＩＳＳＵ管理機能９が、現在、フラッシュディスク７（０面（現用面））において動作している制御ソフトウェアについてバージョン管理テーブルを確認し、ダウンロードした制御ソフトウェアとの差分を抽出する。
【００３１】
手順Ｓ６では、ＩＳＳＵ管理機能９が、差分情報を管理サーバ２に通知する。
手順Ｓ７では、ＩＳＳＵ管理機能９が、更新対象の更新対象プロセス（新）１３−２を起動する。
【００３２】
手順Ｓ８では、ＩＳＳＵ管理機能９が、レイヤ２スイッチ６に、レイヤ２スイッチ６のＣＰＵ４向けフレーム転送を停止することを指示する。
【００３３】
手順Ｓ９では、ＩＳＳＵ管理機能９が、ドライバ１６のフレーム転送メモリ３からの刈り取りを停止することをドライバ１６に指示する。
【００３４】
手順Ｓ１０では、ＩＳＳＵ管理機能９が、更新対象プロセス（旧）１３−１に関連するプロセス１４、１５に接続先を更新対象プロセス（旧）１３−１から更新対象プロセス（新）１３−２に変更するように通知する。
【００３５】
手順Ｓ１１では、ＩＳＳＵ管理機能９が、レイヤ２スイッチ６に、レイヤ２スイッチ６のＣＰＵ４向けにフレーム転送を再開することを指示する。
【００３６】
手順Ｓ１２では、ＩＳＳＵ管理機能９が、ドライバ１６のフレーム転送メモリ３からの刈り取りを再開することをドライバ１６に指示する。
【００３７】
手順Ｓ１３では、ＩＳＳＵ管理機能９が、更新対象プロセス（旧）１３−１を削除する。
【００３８】
手順Ｓ１４では、ＩＳＳＵ管理機能９が、制御ロードモジュールの更新完了を管理サーバ２に通知する。
【００３９】
以上の手順を実行することにより、通信装置１は、管理しているネットワークが切断されないようにロードモジュールを更新することができる。
【００４０】
次に、フレーム転送メモリ３の内部処理について説明する。図４は、フレーム転送メモリの処理の一例を示す略図である。図４に示すように、フレーム転送メモリ３の内部が、フレーム単位のディスクリプタをチェーン単位で構成されている。そして、フレーム転送メモリ３にフレームが入力されると、ディスクリプタが消費される。ディスクリプタにフレームが入力されると、制御ＣＰＵ４のドライバ１６に割り込み通知があがる。そして、制御ＣＰＵ４はドライバ１６を介してディスクリプタに格納されている入力フレームを内部のメインメモリにコピーして、対象のディスクリプタを解放する。
【００４１】
次に、図３で示した制御ロードモジュールをダウンロードする手順の動作例を示す。図５は、制御ロードモジュールをフラッシュディスクにダウンロードする場合の動作の一例を示す略図である。
【００４２】
図５の上段に示すように、初期状態では、フラッシュディスク＃０面に、現行のＶｅｒ４．５．７のロードモジュール、フラッシュディスク＃１面に古いバージョンＶｅｒ４．６．５の制御ロードモジュールがあり、運用面も起動面もフラッシュディスク＃０面で運用している場合とする。
【００４３】
そして、図５の下段に示すように、フラッシュディスク＃１面に新しいＶｅｒ４．６．８の制御ロードモジュールがダウンロードされる。そしてプロセッサ４は、新しい制御モジュールのプロセスの内、バージョンアップが必要なプロセスを検出し、バージョンアップが必要なプロセスのみ更新する。
【００４４】
次に、プロセスの更新について説明する。図６は、起動中のロードモジュール内のプロセスの変化の一例を示す略図である。まず、ＩＳＳＵ管理機能９は、バージョン管理テーブル１０を確認する。バージョン管理テーブル１０には、ロードモジュールのバージョンと、ロードモジュールの各プロセスのリビジョンとが対応づけて格納されている。
【００４５】
ここで、古いバージョンＶｅｒ４．５．６、現行のバージョンＶｅｒ４．５．７、新しいバージョンＶｅｒ４．５．８のロードモジュールにおける各プロセスのリビジョン（Rev:Revison）を表１に示す。
【表１】
2018173819.tif 000003
【００４６】
この結果、ＩＳＳＵ管理機能９は、現運用のＶｅｒ４．５．７とＶｅｒ４．５．８の差分が、プロセスＡの１．３と１．４との違いのみとわかる。ＩＳＳＵ管理機能９は、管理サーバ２に対して差分を通知する（図３の手順Ｓ６）。
【００４７】
したがって、ＩＳＳＵ管理機能９は、更新対象のプロセスＡ（リビジョン１．４）を起動する（図３の手順Ｓ７）。すなわち、プロセスＡ（リビジョン１．４）が図３の更新対象プロセス（新）１３−２に対応する。
【００４８】
そして、ＩＳＳＵ管理機能９は、更新対象の関連プロセスである、プロセスＢ、プロセスＣに接続先を更新対象のプロセスＡ（リビジョン１．４）に変更するように通知する。
その後、ＩＳＳＵ管理機能９は、更新対象のプロセスＡ（リビジョン１．３）を削除する。
【００４９】
以上のように、本実施の形態の通信装置、ソフトウェア更新方法およびプログラムによれば、バージョン管理テーブルを参照してプロセス単位で更新が必要であるか否か判断し、更新の必要なプロセスのみバージョンアップを行うので、短時間で制御ソフトウェアの更新を行うことができる。
【００５０】
このように、本実施の形態の通信装置、ソフトウェア更新方法およびプログラムによれば、ロードモジュール更新時にダウンロードしたロードモジュールと現運用中のロードモジュールとの差分を検出して、サービスの中断が発生する機能をNMSに通知し、バージョンアップが必要なプロセスは、更新済の同プロセスを起動し、関連するプロセス間通信を更新後のプロセスに切り替えることによってサービスを無停止にしてバージョンアップを完了させることにより、通信サービスを継続したまま、１重化構成のＣＰＵの制御ソフトウェアの更新することができる。
【００５１】
具体的には、ＣＰＵが処理すべきＭ−ＰｌａｎｅやＣ−Ｐｌａｎｅのフレーム処理を制御ソフトウェアの更新時に継続することができ、隣接する通信機器に対して切り替えなどの影響を無くすことができる。
【００５２】
また、本実施の形態の通信装置、ソフトウェア更新方法およびプログラムによれば、バージョンアップが必要なプロセスの情報を含む差分情報を管理サーバに通知することにより、事前にサービスが中断する可能性がある機能を明確に知らせることができる。
【００５３】
また、本実施の形態の通信装置、ソフトウェア更新方法およびプログラムによれば、更新対象のプロセスは、新規に更新対象の分身のプロセスを起動し、非更新対象プロセスは一斉に旧プロセスから新規プロセスに通信を切り替えることで、プロセス間通信の取りこぼしや再送を防ぎ、サービスの中断を最小限にとどめることができる。
【００５４】
また、本実施の形態の通信装置、ソフトウェア更新方法およびプログラムによれば、新旧プロセスの切り替え時、CPUに入力されるM/C-Planeのフレームをフレーム転送メモリで対象フレームを溜めることで、CPUが処理するフレームのロスをなくすことができる。
【００５５】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記実施の形態では、制御ソフトウェアのアップグレードの例について説明しているが、ソフトウェアの更新内容はアップグレードに限定されない。例えば、制御ソフトウェアの一部機能の削除等についても同様に適用できる。また更新するソフトウェアも制御ソフトウェアに限定されず、他のソフトウェアに適用してもよい。
【００５６】
また、制御ＣＰＵ４のＩＳＳＵ管理機能９、バージョン管理テーブル１０、ＭＩＢデータ機能部１１、ＯＳ１２、及び機能プロセス１３〜１５については、ＡＳＩＣ（Application Specific Integrated Circuit）等のハードウェアまたはソフトウェアで実施できる。また、処理の一部をソフトウェアで実施し、それ以外をハードウェアで実施することとしても良い。ソフトウェアで実施する際には、マイクロプロセッサ等の１つあるいは複数のＣＰＵ（Central Processing Unit）を有するコンピュータシステムに機能ブロックの処理に関するプログラムを実行させればよい。これらのプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、ＤＶＤ−ＲＯＭ（Digital Versatile Disc Read Only Memory）、ＤＶＤ−Ｒ（DVD Recordable）、ＤＶＤ−Ｒ  ＤＬ（DVD-R Dual Layer)、ＤＶＤ−ＲＷ（DVD ReWritable）、ＤＶＤ−ＲＡＭ、ＤＶＤ＋Ｒ、ＤＶＲ＋Ｒ  ＤＬ、ＤＶＤ＋ＲＷ、ＢＤ−Ｒ（Blu-ray（登録商標） Disc Recordable）、ＢＤ−ＲＥ（Blu-ray （登録商標）Disc Rewritable）、ＢＤ−ＲＯＭ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００５７】
０  フラッシュディスク
１  通信装置
２  管理サーバ
３  フレーム転送メモリ
４  プロセッサ（ＣＰＵ）
５  フレーム転送バス
６  レイヤ２スイッチ
７、８  フラッシュディスク
９  ＩＳＳＵ管理機能
１０  バージョン管理テーブル
１１  ＭＩＢデータ機能部
１３〜１５  プロセス
１６  ドライバ
２０  通信機器
【図１】
2018173819.tif 000004
【図２】
2018173819.tif 000005
【図３】
2018173819.tif 000006
【図４】
2018173819.tif 000007
【図５】
2018173819.tif 000008
【図６】
2018173819.tif 000009