(57)【要約】【課題】短時間でディスクノードのシステムをアップデートすることができるようにする。【解決手段】アップデート対象選択手段１ｂにより、最初に有効な接続を有していないディスクノード３ｏがアップデート対象ディスクノードとして選択され、ソフトウェアがアップデートされる。ディスクノード３ｏのアップデート処理が完了すると、アップデート対象選択手段１ｂにより、ディスクノード３ｎが次選択ディスクノードに決定される。すると、接続切り替え指示手段１ｄの指示に基づいて、ストレージ装置２ｎの有効な接続が、ディスクノード３ｎからディスクノード３ｏに切り替えられる。その後、ディスクノード３ｎのソフトウェアがアップデートされる。以後同様に、順次ディスクノードが選択され、ソフトウェアがアップデートされる。【選択図】図１
2010072974.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージ装置と、前記ストレージ装置よりも多い台数の複数のディスクノードとが設けられ、前記ストレージ装置それぞれが少なくとも２台の前記ディスクノードに接続され、一つの接続のみが前記ストレージ装置内のデータの入出力に使用される有効な接続関係と定義されており、前記ディスクノードには１台または２台の前記ストレージ装置が接続されており、複数の前記ディスクノードに接続されたコンピュータに、複数の前記ディスクノードのソフトウェアアップデート処理を制御させるためのアップデート制御プログラムであって、
前記コンピュータを、
複数の前記ストレージ装置と複数の前記ディスクノードとの接続関係、および前記有効な接続関係を記憶する接続情報記憶手段を参照し、前記有効な接続関係を有していない前記ディスクノードをアップデート対象ディスクノードとして選択し、前記アップデート対象ディスクノードの前記ソフトウェアのアップデートが完了した場合、前記アップデート対象ディスクノードと同じ前記ストレージ装置に接続された前記ディスクノードのうち、アップデートが未処理の前記ディスクノードを次選択ディスクノードとして決定し、前記次選択ディスクノードの接続関係が無効化された後、前記次選択ディスクノードを前記アップデート対象ディスクノードとして選択するアップデート対象選択手段、
前記アップデート対象選択手段で前記アップデート対象ディスクノードが選択されるごとに、選択された前記アップデート対象ディスクノードに対して前記ソフトウェアのアップデートを指示するアップデート指示手段、
前記次選択ディスクノードが決定されると、前記次選択ディスクノードに有効に接続された前記ストレージ装置の有効な接続を、前記次選択ディスクノードから前記アップデート対象ディスクノードに切り替える指示を、前記次選択ディスクノードと前記アップデート対象ディスクノードとに出力する接続切り替え指示手段、
前記接続切り替え指示手段の指示に応じて有効化または無効化された接続関係に従って、前記接続情報記憶手段における有効な接続の情報を更新する接続情報更新手段、
として機能させるアップデート制御プログラム。
【請求項２】
前記コンピュータを、さらに、
前記接続切り替え指示手段の指示に応じて前記アップデート対象ディスクノードと前記ストレージ装置との接続関係が有効化されると、有効化された接続関係によって接続されている前記ストレージ装置にアクセスするためのアクセス要求の送信先が、有効化された接続関係によって接続されている前記アップデート対象ディスクノードに変更されたことを、前記ストレージ装置にアクセスするアクセスノードに通知する接続ディスクノード変更通知手段として機能させることを特徴とする請求項１記載のアップデート制御プログラム。
【請求項３】
前記接続切り替え指示手段は、前記ディスクノードそれぞれをネットワーク上で一意に識別するためのアドレス情報を記憶するアドレス記憶手段を参照し、有効化された接続関係によって接続されている前記ストレージ装置にアクセスするためのアクセス要求の送信先として、有効化された接続関係によって接続されている前記アップデート対象ディスクノードのアドレスを前記アクセスノードに通知することを特徴とする請求項２記載のアップデート制御プログラム。
【請求項４】
前記アップデート対象選択手段は、前記アップデート対象ディスクノードを選択後、複数の前記ディスクノードに実装されているアップデート対象の前記ソフトウェアのバージョンを記憶するバージョン情報記憶手段を参照し、前記アップデート対象ディスクノードに実装されている前記ソフトウェアのバージョンがアップデート処理後のバージョンと同一の場合、前記アップデート対象ディスクノードの前記ソフトウェアのアップデートの完了を待たずに、前記次選択ディスクノードを決定し、
前記アップデート指示手段は、前記アップデート対象ディスクノードに実装されている前記ソフトウェアのバージョンがアップデート処理後のバージョンと異なる場合にのみ、前記アップデート対象ディスクノードに前記ソフトウェアのアップデートを指示することを特徴とする請求項１記載のアップデート制御プログラム。
【請求項５】
前記接続切り替え指示手段は、前記次選択ディスクノードに対して、有効な接続の無効化指示を送信し、前記アップデート対象ディスクノードに対して、前記次選択ディスクノードとの接続関係が無効化された前記ストレージ装置との接続関係の有効化指示を送信することを特徴とする請求項１記載のアップデート制御プログラム。
【請求項６】
複数のストレージ装置と、前記ストレージ装置よりも多い台数の複数のディスクノードとが設けられ、前記ストレージ装置それぞれが少なくとも２台の前記ディスクノードに接続され、一つの接続のみが前記ストレージ装置内のデータの入出力に使用される有効な接続関係と定義されており、前記ディスクノードには１台または２台の前記ストレージ装置が接続されており、複数の前記ディスクノードのソフトウェアアップデート処理を制御するアップデート制御装置であって、
複数の前記ストレージ装置と複数の前記ディスクノードとの接続関係、および前記有効な接続関係を記憶する接続情報記憶手段を参照し、前記有効な接続関係を有していない前記ディスクノードをアップデート対象ディスクノードとして選択し、前記アップデート対象ディスクノードの前記ソフトウェアのアップデートが完了した場合、前記アップデート対象ディスクノードと同じ前記ストレージ装置に接続された前記ディスクノードのうち、アップデートが未処理の前記ディスクノードを次選択ディスクノードとして決定し、前記次選択ディスクノードの接続関係が無効化された後、前記次選択ディスクノードを前記アップデート対象ディスクノードとして選択するアップデート対象選択手段と、
前記アップデート対象選択手段で前記アップデート対象ディスクノードが選択されるごとに、選択された前記アップデート対象ディスクノードに対して前記ソフトウェアのアップデートを指示するアップデート指示手段と、
前記次選択ディスクノードが決定されると、前記次選択ディスクノードに有効に接続された前記ストレージ装置の有効な接続を、前記次選択ディスクノードから前記アップデート対象ディスクノードに切り替える指示を、前記次選択ディスクノードと前記アップデート対象ディスクノードとに出力する接続切り替え指示手段と、
前記接続切り替え指示手段の指示に応じて有効化または無効化された接続関係に従って、前記接続情報記憶手段における有効な接続の情報を更新する接続情報更新手段と、
を有するアップデート制御装置。
【請求項７】
複数のストレージ装置と、前記ストレージ装置よりも多い台数の複数のディスクノードとが設けられ、前記ストレージ装置それぞれが少なくとも２台の前記ディスクノードに接続され、一つの接続のみが前記ストレージ装置内のデータの入出力に使用される有効な接続関係と定義されており、前記ディスクノードには１台または２台の前記ストレージ装置が接続されており、複数の前記ディスクノードに接続されたコンピュータに、複数の前記ディスクノードのソフトウェアアップデート処理を制御させるためのアップデート制御方法であって、
前記コンピュータが、
複数の前記ストレージ装置と複数の前記ディスクノードとの接続関係、および前記有効な接続関係を記憶する接続情報記憶手段を参照し、前記有効な接続関係を有していない前記ディスクノードをアップデート対象ディスクノードとして選択し、
前記アップデート対象ディスクノードが選択されるごとに、選択された前記アップデート対象ディスクノードに対して前記ソフトウェアのアップデートを指示し、
前記アップデート対象ディスクノードの前記ソフトウェアのアップデートが完了した場合、前記アップデート対象ディスクノードと同じ前記ストレージ装置に接続された前記ディスクノードのうち、アップデートが未処理の前記ディスクノードを次選択ディスクノードとして決定し、
前記次選択ディスクノードが決定されると、前記次選択ディスクノードに有効に接続された前記ストレージ装置の有効な接続を、前記次選択ディスクノードから前記アップデート対象ディスクノードに切り替える指示を、前記次選択ディスクノードと前記アップデート対象ディスクノードとに出力し、
有効化または無効化された接続関係に従って、前記接続情報記憶手段における有効な接続の情報を更新し、
前記次選択ディスクノードの接続関係が無効化された後、前記次選択ディスクノードを前記アップデート対象ディスクノードとして選択する、
ことを特徴とするアップデート制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェアのアップデート処理を制御するアップデート制御プログラム、アップデート制御装置、およびアップデート制御方法に関し、特にストレージ装置に接続されたディスクノードのソフトウェアのアップデート処理を制御するアップデート制御プログラム、アップデート制御装置、およびアップデート制御方法に関する。
【背景技術】
【０００２】
複数のノードで構成されるコンピュータシステムでは、信頼性確保のためにも、各ノードで実行されるソフトウェアのバージョンを揃えておくことが望まれる。サービスを停止せずにアップデートできるようなソフトウェアであれば、アップデート用のプログラムを各ノードに送信し、それぞれのノードでアップデート処理を実行させることができる。
【０００３】
他方、ＯＳ（Operating System）のアップグレード（システムアップデート）のような場合、ノードの処理を停止してからアップデート作業を行う必要がある。システムアップデートを行う場合、サービスを停止してよい場合であれば、すべてのディスクノードによるサービスを停止して、全ノードのシステムアップデートが可能である。サービスを継続してアップデートする場合には、システム全体の処理能力の低下をできるだけ避けるため、各ノードのアップデート作業は、所定の順番で行われる。
【特許文献１】特表２００３−５０１８８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、複数のノードで構成されるコンピュータシステムの一つに、データを複数のストレージ装置に分散格納するマルチノードストレージシステムがある。マルチノードストレージシステムでは、ネットワークを介して複数のディスクノードが接続される。各ディスクノードは、それぞれ大規模なストレージ装置を有している。ユーザは、ネットワークに接続されたアクセスノードを介してディスクノードと通信し、任意のストレージ装置にアクセスする。
【０００５】
このようなマルチノードストレージシステムにおいても、必要に応じてシステムアップデートが行われる。マルチノードストレージシステムは、膨大な量のデータを管理しており、多数のユーザにサービスを提供する。そのため、サービスを停止せずにシステムのアップデートを行う必要が生じることが多い。マルチノードストレージシステムでは、サービスの提供を止めずにシステムのアップデートを行う場合、アップデート対象のディスクノードで管理しているストレージ装置内のデータを予め他のストレージ装置へ移動しておく必要がある。
【０００６】
しかし、ストレージ装置に大量のデータが格納されている場合、データの移動に長い時間がかかっていた。特に最近のストレージ装置の大容量化に伴い、テラバイトオーダの記憶容量を有するストレージ装置が存在する。このような大容量のストレージ装置内の全データを他のストレージ装置に移動させる場合、データの移動に数時間も要することがある。
【０００７】
しかも、システム全体の処理能力の低下をできるだけ避けるため、システムのアップデート作業は１台あるいは数台ずつ順番に行われる。そのためマルチノードストレージシステムを構成するすべてのディスクノードに対してアップデート作業を完了させるには、非常に長い時間を要していた。
【０００８】
本発明はこのような点に鑑みてなされたものであり、短時間でディスクノードのシステムをアップデートすることができるアップデート制御プログラム、アップデート制御装置、およびアップデート制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、複数のディスクノードのソフトウェアアップデート処理を制御するアップデート制御装置が提供される。なお、複数のディスクノードは、複数のストレージ装置よりも多い台数である。また、ストレージ装置それぞれが少なくとも２台のディスクノードに接続されており、一つの接続のみがストレージ装置内のデータの入出力に使用される有効な接続関係と定義されている。ディスクノードには１台または２台のストレージ装置が接続されている。そして、アップデート制御装置は、アップデート対象選択手段、アップデート指示手段、接続切り替え指示手段、および接続情報更新手段を有する。
【００１０】
アップデート対象選択手段は、複数のストレージ装置と複数のディスクノードとの接続関係、および有効な接続関係を記憶する接続情報記憶手段を参照し、有効な接続関係を有していないディスクノードをアップデート対象ディスクノードとして選択し、アップデート対象ディスクノードのソフトウェアのアップデートが完了した場合、アップデート対象ディスクノードと同じストレージ装置に接続されたディスクノードのうち、アップデートが未処理のディスクノードを次選択ディスクノードとして決定し、次選択ディスクノードの接続関係が無効化された後、次選択ディスクノードをアップデート対象ディスクノードとして選択する。アップデート指示手段は、アップデート対象選択手段でアップデート対象ディスクノードが選択されるごとに、選択されたアップデート対象ディスクノードに対してソフトウェアのアップデートを指示する。接続切り替え指示手段は、次選択ディスクノードが決定されると、次選択ディスクノードに有効に接続されたストレージ装置の有効な接続を、次選択ディスクノードからアップデート対象ディスクノードに切り替える指示を、次選択ディスクノードとアップデート対象ディスクノードとに出力する。接続情報更新手段は、接続切り替え指示手段の指示に応じて有効化または無効化された接続関係に従って、接続情報記憶手段における有効な接続の情報を更新する。
【００１１】
また、上記アップデート制御装置と同様の機能をコンピュータで実現するためのアップデート制御プログラムが提供される。さらに、上記アップデート制御装置が実行する処理をコンピュータで行うアップデート制御方法が提供される。
【発明の効果】
【００１２】
上記アップデート制御装置では、システムの運用中であってもストレージ装置内のデータを移動させずに各ディスクノードのソフトウェアのアップデートが可能であり、短時間でアップデート処理を行うことができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、実施の形態の概要を示す図である。アップデート制御装置１は、複数のディスクノード３ａ，３ｂ，３ｃ，・・・，３ｍ，３ｎ，３ｏのソフトウェアアップデート処理を制御する。なお、複数のディスクノード３ａ，３ｂ，３ｃ，・・・，３ｍ，３ｎ，３ｏは、複数のストレージ装置２ａ，２ｂ，・・・，２ｍ，２ｎよりも多い台数である。図１の例では、ストレージ装置２ａ，２ｂ，・・・，２ｍ，２ｎがＮ台（Ｎは、自然数）であり、ディスクノード３ａ，３ｂ，３ｃ，・・・，３ｍ，３ｎ，３ｏは、Ｎ＋１台である。
【００１４】
ストレージ装置２ａ，２ｂ，・・・，２ｍ，２ｎは、それぞれ少なくとも２台のディスクノードに接続されている。その接続のうち、一つの接続のみがストレージ装置内のデータの入出力に使用される有効な接続関係と定義されている。図１の例では、ディスクノード３ａ，３ｂ，３ｃ，・・・，３ｍ，３ｎ，３ｏとストレージ装置２ａ，２ｂ，・・・，２ｍ，２ｎとの接続関係は、有効な接続関係が実線で示され、無効な接続関係が破線で示されている。
【００１５】
ディスクノード３ａ，３ｂ，３ｃ，・・・，３ｍ，３ｎ，３ｏには１台または２台のストレージ装置が接続されている。図１の例では、図中の左右両端のディスクノード３ａ，３ｏにはそれぞれ１台のストレージ装置が接続されている。それ以外のディスクノード３ｂ，３ｃ，・・・，３ｍ，３ｎには、２台のストレージ装置が接続されている。
【００１６】
アップデート制御装置１は、接続情報記憶手段１ａ、アップデート対象選択手段１ｂ、アップデート指示手段１ｃ、接続切り替え指示手段１ｄ、および接続情報更新手段１ｅを有している。
【００１７】
接続情報記憶手段１ａは、複数のストレージ装置２ａ，２ｂ，・・・，２ｍ，２ｎと複数のディスクノード３ａ，３ｂ，３ｃ，・・・，３ｍ，３ｎ，３ｏとの接続関係、および有効な接続関係を記憶する。
【００１８】
アップデート対象選択手段１ｂは、複数のストレージ装置２ａ，２ｂ，・・・，２ｍ，２ｎと複数のディスクノードとの接続関係、および有効な接続関係を記憶する接続情報記憶手段を参照し、有効な接続関係を有していないディスクノードをアップデート対象ディスクノードとして選択する。また、アップデート対象選択手段１ｂは、アップデート対象ディスクノードのソフトウェアのアップデートが完了した場合、アップデート対象ディスクノードと同じストレージ装置に接続されたディスクノードのうち、アップデートが未処理のディスクノードを次選択ディスクノードとして決定する。そして、アップデート対象選択手段１ｂは、次選択ディスクノードの接続関係が無効化された後、次選択ディスクノードをアップデート対象ディスクノードとして選択する。
【００１９】
アップデート指示手段１ｃは、アップデート対象選択手段１ｂでアップデート対象ディスクノードが選択されるごとに、選択されたアップデート対象ディスクノードに対してソフトウェアのアップデートを指示する。
【００２０】
接続切り替え指示手段１ｄは、次選択ディスクノードが決定されると、次選択ディスクノードに有効に接続されたストレージ装置の有効な接続を、次選択ディスクノードからアップデート対象ディスクノードに切り替える指示を、次選択ディスクノードとアップデート対象ディスクノードとに出力する。
【００２１】
接続情報更新手段１ｅは、接続切り替え指示手段１ｄの指示に応じて有効化または無効化された接続関係に従って、接続情報記憶手段１ａにおける有効な接続の情報を更新する。
【００２２】
このようなアップデート制御装置１によれば、アップデート対象選択手段１ｂにより、最初に有効な接続を有していないディスクノード３ｏがアップデート対象ディスクノードとして選択される。そして、アップデート指示手段１ｃからの指示に基づいて、ディスクノード３ｏのソフトウェアがアップデートされる。
【００２３】
ディスクノード３ｏのソフトウェアのアップデートが完了すると、アップデート対象選択手段１ｂにより、ディスクノード３ｏと同じストレージ装置２ｎに接続され、アップデートが未処理のディスクノード３ｎが次選択ディスクノードに決定される。すると、接続切り替え指示手段１ｄの指示に基づいて、ストレージ装置２ｎの有効な接続が、ディスクノード３ｎからディスクノード３ｏに切り替えられる。その結果、ディスクノード３ｎは、有効な接続が無くなる。そこで、アップデート対象選択手段１ｂによりディスクノード３ｎがアップデート対象ディスクノードに選択され、ディスクノード３ｎのソフトウェアがアップデートされる。以後同様に、図１中のディスクノードの並びの右から左方向に順次ディスクノードが選択され、ソフトウェアがアップデートされる。
【００２４】
このようにアップデート処理を実行することで、ストレージ装置内のデータを移動させることなく、ディスクノードのソフトウェアのアップデートが可能となる。しかも、ストレージ装置に対してアクセスができなくなるのは、接続の切り替えを行う間のみであり、実質的にサービスを停止させずにソフトウェアのアップデートが可能である。
【００２５】
ところで、複数のストレージ装置を複数のディスクノードで管理するシステムとしてマルチノードストレージシステムがある。マルチノードストレージシステムでは、データを異なるストレージ装置に２重化して格納することで信頼性を高めることができる。そこで、データの２重化を伴うマルチストレージシステムに図１に示した機能を適用した場合を例に採り、本実施の形態の詳細を説明する。
【００２６】
なお、ソフトウェアのアップデートは、古いバージョンのソフトウェアを最新のバージョンにアップグレードする場合と、不安定な最新バージョンのソフトウェアを旧版のバージョンにダウングレードする場合とがある。本実施の形態では、アップグレードとダウングレードとを含めソフトウェアのバージョンを変更する処理をアップデートと呼ぶ。また、説明を分かりやすくするために、アップデート前のバージョンを旧バージョン、アップデート後のソフトウェアのバージョンを新のバージョンと呼ぶこととする。
【００２７】
図２は、本実施の形態のマルチノードストレージシステムの構成例を示す図である。本実施の形態では、ネットワーク１０を介して、複数のディスクノード１００，２００，３００，４００、制御ノード５００、管理ノード６００、およびアクセスノード７００が接続されている。また、ディスクノード１００，２００，３００，４００より１台少ない台数のストレージ装置８１０，８２０，８３０が設けられている。各ディスクノード１００，２００，３００，４００は、２台のストレージ装置を接続することができる。また、各ストレージ装置８１０，８２０，８３０は、２台のディスクノードに接続することができる。図２の例では、ストレージ装置８１０は、ディスクノード１００とディスクノード２００とに接続されている。ストレージ装置８２０は、ディスクノード２００とディスクノード３００とに接続されている。ストレージ装置８３０は、ディスクノード３００とディスクノード４００とに接続されている。
【００２８】
各ストレージ装置８１０，８２０，８３０には、複数のハードディスク装置（ＨＤＤ）が実装されている。各ストレージ装置８１０，８２０，８３０は、内蔵するＨＤＤを用いたＲＡＩＤシステムである。本実施の形態では、各ストレージ装置８１０，８２０，８３０は、ＲＡＩＤ５のディスク管理サービスを提供する。
【００２９】
ディスクノード１００，２００，３００，４００は、例えば、ＩＡ（Intel Architecture）と呼ばれるアーキテクチャのコンピュータである。ディスクノード１００，２００，３００，４００は２台のストレージ装置が接続されている場合、一つの接続のみを有効とする。各ディスクノード１００，２００，３００，４００は、有効に接続されたストレージ装置に格納されたデータを管理し、管理しているデータをネットワーク１０経由でアクセスノード７００に提供する。また、ディスクノード１００，２００，３００，４００は、冗長性を有するデータを管理している。すなわち、同一のデータが、少なくとも二つのディスクノードで管理されている。
【００３０】
制御ノード５００は、ディスクノード１００，２００，３００，４００を管理する。例えば、制御ノード５００は、ディスクノード１００，２００，３００，４００から新たなストレージ装置の接続通知を受け取ると、新たな仮想ディスクを定義し、その仮想ディスクを介して接続されたストレージ装置に格納されていたデータにアクセスできるようにする。
【００３１】
アクセスノード７００は、仮想ディスクが定義されている。そして、アクセスノード７００は、仮想ディスクに割り当てられたディスクノード１００，２００，３００，４００内の対応するデータへアクセスする。
【００３２】
管理ノード６００は、管理者がマルチノードストレージシステムの運用を管理するために使用するコンピュータである。例えば、管理ノード６００では、ディスクノード１００，２００，３００，４００に実装されているソフトウェアの版数情報（バージョン情報）を管理している。そして、管理ノード６００は、管理者からのソフトウェアのアップデート指示に応答して、各ディスクノード１００，２００，３００，４００に対して順番にソフトウェアのアップデート指示を送信する。その際、管理ノード６００は、マルチノードストレージシステムにおけるサービスが停止しないように、各ディスクノード１００，２００，３００，４００とストレージ装置８１０，８２０，８３０との有効な接続関係を制御する。
【００３３】
このような構成のマルチノードストレージシステムでは、ストレージ装置８１０，８２０，８３０内のデータに対するアクセスノード７００からのアクセス環境は、３台のディスクノードを用いて提供できる。すると、４台あるうちの１台のディスクノードは、いずれのストレージ装置との間にも有効な接続関係を持たない状態となる。このような非使用ディスクノードに対するＯＳなどのソフトウェアのアップデート処理は、マルチノードストレージシステムのサービスに影響を与えずに実行可能である。そこで、ディスクノード１００，２００，３００，４００とストレージ装置８１０，８２０，８３０との間の接続関係の有効・無効を制御して、ディスクノード１００，２００，３００，４００を順番に非使用状態に移行させる。そして、非使用状態となったディスクノードに対して順次ソフトウェアアップデート処理を実行させるようにする。これにより、ＯＳのリスタートを伴うようなアップデート処理を、マルチノードストレージシステムによるサービスに影響を与えずに、すべてのディスクノード１００，２００，３００，４００に対して実行可能となる。
【００３４】
図３は、本実施の形態に用いる管理ノードのハードウェア構成例を示す図である。管理ノード６００は、ＣＰＵ（Central Processing Unit）６０１によって装置全体が制御されている。ＣＰＵ６０１には、バス６０７を介してＲＡＭ（Random Access Memory）６０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）６０３、グラフィック処理装置６０４、入力インタフェース６０５、および通信インタフェース６０６が接続されている。
【００３５】
ＲＡＭ６０２は、管理ノード６００の主記憶装置として使用される。ＲＡＭ６０２には、ＣＰＵ６０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ６０２には、ＣＰＵ６０１による処理に必要な各種データが格納される。ＨＤＤ６０３は、管理ノード６００の二次記憶装置として使用される。ＨＤＤ６０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００３６】
グラフィック処理装置６０４には、モニタ１１が接続されている。グラフィック処理装置６０４は、ＣＰＵ６０１からの命令に従って、画像をモニタ１１の画面に表示させる。モニタ１１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置がある。
【００３７】
入力インタフェース６０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース６０５は、キーボード１２やマウス１３から送られてくる信号を、バス６０７を介してＣＰＵ６０１に送信する。なお、マウス１３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３８】
通信インタフェース６０６は、ネットワーク１０に接続されている。通信インタフェース６０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。
【００３９】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には、管理ノード６００のハードウェア構成を示しているが、ディスクノード１００，２００，３００，４００、制御ノード５００、およびアクセスノード７００も同様のハードウェア構成で実現することができる。なお、ディスクノード１００，２００，３００，４００は図３に示した構成以外に、２台のストレージ装置を接続するため、外部機器接続用のインタフェースを二つ有している。
【００４０】
次に、マルチノードストレージシステムにおけるディスクノード１００，２００，３００，４００内のソフトウェアのアップデート処理の概略を説明する。
図４は、ソフトウェアアップデート処理における状態遷移を示す第１の図である。図４の例では、各ディスクノード１００，２００，３００，４００の上に、そのディスクノードにおけるアップデート対象のソフトウェアのバージョンを示している。また、各ディスクノード１００，２００，３００，４００とストレージ装置８１０，８２０，８３０との間を接続する線が実線であれば有効な接続であることを示し、破線であれば無効な接続であることを示す。
【００４１】
第１の状態（ＳＴ１）は、アップデート処理開始時の接続関係を示している。この状態では、各ディスクノード１００，２００，３００，４００のソフトウェアのバージョンは「Ｖ１」である。また、ディスクノード１００とストレージ装置８１０との接続、ディスクノード２００とストレージ装置８２０との接続、およびディスクノード３００とストレージ装置８３０との接続がそれぞれ有効な接続である。
【００４２】
第１の状態では、ディスクノード４００が非使用となっている。そこで、まずディスクノード４００のソフトウェアのアップデート処理が行われる。
第２の状態（ＳＴ２）は、１台目のディスクノードに対するアップデート処理完了後の状態を示している。ディスクノード４００のアップデート対象のソフトウェアは、アップデート処理によりバージョンが「Ｖ２」となっている。
【００４３】
ディスクノード４００のアップデート処理が完了すると、ストレージ装置８３０の管理をディスクノード３００からディスクノード４００に移行する。そのために、ディスクノード３００とストレージ装置８３０との接続を無効とし、ディスクノード４００とストレージ装置８３０との接続を有効とする。
【００４４】
第３の状態（ＳＴ３）は、ストレージ装置８３０に対する接続の切り替え後の状態を示している。ディスクノード３００とストレージ装置８３０との接続を無効としたことにより、ディスクノード３００は非使用状態となっている。他方、ディスクノード４００とストレージ装置８３０との接続を有効にしたことにより、以後、ディスクノード４００によってストレージ装置８３０のデータが管理される。
【００４５】
第３の状態ではディスクノード３００が非使用となっているため、ディスクノード３００のソフトウェアのアップデート処理が行われる。
第４の状態（ＳＴ４）は、２台目のディスクノードに対するアップデート処理完了後の状態を示している。ディスクノード３００のアップデート対象のソフトウェアは、アップデート処理によりバージョンが「Ｖ２」となっている。
【００４６】
ディスクノード３００のアップデート処理が完了すると、ストレージ装置８２０の管理をディスクノード２００からディスクノード３００に移行する。そのために、ディスクノード２００とストレージ装置８２０との接続を無効とし、ディスクノード３００とストレージ装置８２０との接続を有効とする。
【００４７】
図５は、ソフトウェアアップデート処理における状態遷移を示す第２の図である。第５の状態（ＳＴ５）は、ストレージ装置８２０に対する接続の切り替え後の状態を示している。ディスクノード２００とストレージ装置８２０との接続を無効としたことにより、ディスクノード２００は非使用状態となっている。他方、ディスクノード３００とストレージ装置８２０との接続を有効にしたことにより、以後、ディスクノード３００によってストレージ装置８２０のデータが管理される。
【００４８】
第５の状態ではディスクノード２００が非使用となっているため、ディスクノード２００のソフトウェアのアップデート処理が行われる。
第６の状態（ＳＴ６）は、３台目のディスクノードに対するアップデート処理完了後の状態を示している。ディスクノード２００のアップデート対象のソフトウェアは、アップデート処理によりバージョンが「Ｖ２」となっている。
【００４９】
ディスクノード２００のアップデート処理が完了すると、ストレージ装置８１０の管理をディスクノード１００からディスクノード２００に移行する。そのために、ディスクノード１００とストレージ装置８１０との接続を無効とし、ディスクノード２００とストレージ装置８１０との接続を有効とする。
【００５０】
第７の状態（ＳＴ７）は、ストレージ装置８１０に対する接続の切り替え後の状態を示している。ディスクノード１００とストレージ装置８１０との接続を無効としたことにより、ディスクノード１００は非使用状態となっている。他方、ディスクノード２００とストレージ装置８１０との接続を有効にしたことにより、以後、ディスクノード２００によってストレージ装置８１０のデータが管理される。
【００５１】
第７の状態ではディスクノード１００が非使用となっているため、ディスクノード１００のソフトウェアのアップデート処理が行われる。
第８の状態（ＳＴ８）は、４台目のディスクノードに対するアップデート処理完了後の状態を示している。ディスクノード１００のアップデート対象のソフトウェアは、アップデート処理によりバージョンが「Ｖ２」となっている。
【００５２】
このようにして、ストレージ装置への有効な接続を順次切り替えることで、サービスを停止せずにすべてのディスクノード１００，２００，３００，４００のソフトウェアのアップデートが可能となる。なお、ディスクノードとストレージ装置との接続の有効化・無効化、および各ディスクノード１００，２００，３００，４００におけるアップデート処理のタイミングは、管理ノード６００で制御される。そして、各ディスクノード１００，２００，３００，４００は、管理ノード６００からの指示に従っての有効化・無効化、およびソフトウェアのアップデート処理を実行する。
【００５３】
なお、図５の第８の状態（ＳＴ８）で運用中に、ソフトウェアのバージョンを「Ｖ３」にアップデートする場合には、ソフトウェアのアップデート処理は、ディスクノード１００、ディスクノード２００、ディスクノード３００、ディスクノード４００の順で実行される。その際の各ディスクノード１００，２００，３００，４００とストレージ装置８１０，８２０，８３０との接続の関係は、図４、図５に示した状態遷移を逆に辿ることとなる。
【００５４】
ところで、図４、図５に示したようなアップデート処理を実行すると、各ストレージ装置を管理するディスクノードが、アップデート処理前と後とで異なってくる。そのため、マルチノードストレージシステムの運用を継続させるには、アクセスノード７００に対して、データアクセスのためのアクセス先となるディスクノードが変更されたことを適宜通知する必要がある。そこで、ソフトウェアのアップデート処理に伴ってアクセスノード７００へのアクセス先が変更したことを通知する処理を含め、アップデート処理の機能および処理手順を詳細に説明する。
【００５５】
まずアクセスノード７００からストレージ装置内のデータにアクセスを行うための原理について説明する。本実施の形態では、アクセスノード７００に仮想ディスクが定義されている。仮想ディスクはセグメントと呼ばれるデータ単位に記憶領域が分割されており、各セグメントに対していずれかのストレージ装置内の記憶領域が対応付けられている。そして、アクセスノード７００では、仮想ディスクを介してアクセス対象のデータを管理しているディスクノードを判断し、ストレージ装置８１０，８２０，８３０内のデータにアクセスする。
【００５６】
図６は、仮想ディスクのデータ構造を示す図である。本実施の形態では、仮想ディスク６０には仮想ディスク識別子「ＬＶＯＬ−Ｘ」が付与されている。ネットワーク経由で接続されたストレージ装置８１０，８２０，８３０には、個々の装置の識別のためにそれぞれ「ＤＳ−Ａ」、「ＤＳ−Ｂ」、「ＤＳ−Ｃ」というストレージＩＤが付与されている。
【００５７】
各ストレージ装置８１０，８２０，８３０は、それぞれにおいてＲＡＩＤ５のストレージシステムが構成されている。各ストレージ装置８１０，８２０，８３０で提供される記憶機能は、複数のスライス８１１ａ〜８１１ｅ，８２１ａ〜８２１ｅ，８３１ａ〜８３１ｅに分割されて管理されている。
【００５８】
仮想ディスク６０は、セグメント６１〜６４という単位で構成される。セグメント６１〜６４の記憶容量は、ストレージ装置８１０，８２０，８３０における管理単位であるスライスの記憶容量と同じである。例えば、スライスの記憶容量が１ギガバイトとするとセグメントの記憶容量も１ギガバイトである。仮想ディスク６０の記憶容量はセグメント一つ当たりの記憶容量の整数倍である。セグメント６１〜６４は、それぞれプライマリスライス６１ａ，６２ａ，６３ａ，６４ａとセカンダリスライス６１ｂ，６２ｂ，６３ｂ，６４ｂとの組（スライスペア）で構成される。
【００５９】
同一セグメントに属する二つのスライスは別々のディスクノードに属する。個々のスライスを管理する領域には仮想ディスク識別子やセグメント情報や同じセグメントを構成するスライス情報の他にフラグがあり、そのフラグにはプライマリあるいはセカンダリなどを表す値が格納される。
【００６０】
図６の例では、仮想ディスク６０内のスライスの識別子を、「Ｐ」または「Ｓ」のアルファベットと数字との組合せで示している。「Ｐ」はプライマリスライスであることを示している。「Ｓ」はセカンダリスライスであることを示している。アルファベットに続く数字は、何番目のセグメントに属するのかを表している。例えば、１番目のセグメント６１のプライマリスライスが「Ｐ１」で示され、セカンダリスライスが「Ｓ１」で示される。
【００６１】
このような仮想ディスク６０が定義されていることにより、ストレージ装置を管理するディスクノードが変更された場合に、各セグメントに割り当てられたスライスを管理しているディスクノードの指定を変更するだけですむ。
【００６２】
次に、仮想ディスクを用いたデータアクセスを行うマルチノードストレージシステムにおいて、ディスクノードのソフトウェアのアップデートするために必要な機能について説明する。
【００６３】
図７は、各ノードの機能を示すブロック図である。制御ノード５００は、仮想ディスク管理部５１０と仮想ディスクメタデータ記憶部５２０とを有している。
仮想ディスク管理部５１０は、ストレージ装置８１０，８２０，８３０内のスライスを管理する。例えば、仮想ディスク管理部５１０は、システム起動時に、ディスクノード１００，２００，３００，４００に対してメタデータ取得要求を送信する。そして、仮想ディスク管理部５１０は、メタデータ取得要求に対して返信されたメタデータから仮想ディスクメタデータを生成し、仮想ディスクメタデータ記憶部５２０に格納する。
【００６４】
仮想ディスクメタデータ記憶部５２０は、ディスクノード１００，２００，３００，４００から収集されたメタデータに基づいて生成された仮想ディスクメタデータを記憶する記憶装置である。例えば、制御ノード５００内のＲＡＭの記憶領域の一部が仮想ディスクメタデータ記憶部５２０として使用される。
【００６５】
管理ノード６００は、アップデート制御部６１０を有している。アップデート制御部６１０は、ディスクノード１００，２００，３００，４００に実行させるソフトウェアのアップデート処理を制御する。なお、アップデート制御部６１０の機能の詳細は後述する。
【００６６】
アクセスノード７００は、仮想ディスクアクセス制御部７１０を有している。仮想ディスクアクセス制御部７１０は、ユーザからの仮想ディスク６０内のデータを指定したアクセス要求に応じて、指定されたデータを管理するディスクノードに対してデータアクセスを行う。具体的には、仮想ディスクアクセス制御部７１０は、アクセス対象のデータが記憶された仮想ディスク６０内のブロックを特定する。次に、仮想ディスクアクセス制御部７１０は、特定したブロックに対応するセグメントを特定する。さらに、仮想ディスクアクセス制御部７１０は、セグメントを構成するプライマリスライスに対応するディスクノードおよびそのディスクノード内のスライスを特定する。そして、仮想ディスクアクセス制御部７１０は、特定したディスクノードに対して、特定したスライスへのアクセス要求を出力する。
【００６７】
ディスクノード２００は、通信部２１０、データアクセス部２２０、データ管理部２３０、ソフトウェア（ＳＷ）アップデート部２４０、メタデータ記憶部２５０、および接続ストレージ管理部２６０を有している。
【００６８】
通信部２１０は、ネットワーク１０を介して、他のディスクノード１００，３００，４００、制御ノード５００、管理ノード６００、およびアクセスノード７００とのデータ通信を行う。データアクセス部２２０は、アクセスノード７００からアクセス要求に応答して、ストレージ装置８１０，８２０のうち、有効な接続関係を有するストレージ装置内のデータにアクセスする。データ管理部２３０は、有効な接続関係を有するストレージ装置内のデータを管理する。ＳＷアップデート部２４０は、ディスクノード２００で実行されるソフトウェアのアップデートを行う。メタデータ記憶部２５０は、有効な接続関係を有するストレージ装置内のスライスそれぞれについて、そのスライスが割り当てられているセグメントに関する情報（メタデータ）を記憶する。接続ストレージ管理部２６０は、二つのストレージ装置８１０，８２０の接続の有効・無効を管理する。なお、ディスクノード２００の機能の詳細は後述する。
【００６９】
他のディスクノード１００，３００，４００もディスクノード２００と同様に、通信部１１０，３１０，４１０、データアクセス部１２０，３２０，４２０、データ管理部１３０，３３０，４３０、ＳＷアップデート部１４０，３４０，４４０、メタデータ記憶部１５０，３５０，４５０、接続ストレージ管理部１６０，３６０，４６０を有している。ディスクノード１００，３００，４００の構成要素は、ディスクノード２００の同名の構成要素と同じ機能を有している。
【００７０】
図８は、ストレージ装置のデータ構造例を示す図である。ストレージ装置８１０には、スライス８１２ａ，８１２ｂ，８１２ｃ，・・・とは別に、複数のメタデータ８１３ａ，８１３ｂ，８１３ｃ，・・・が格納されている。ストレージ装置８１０に格納されたメタデータ８１３ａ，８１３ｂ，８１３ｃ，・・・は、接続が有効となっているディスクノードの起動時に、そのディスクノードのデータ管理部によって読み出され、メタデータ記憶部に格納される。
【００７１】
例えば、ディスクノード２００においてストレージ装置８１０との接続関係が有効になっている場合、ストレージ装置８１０のメタデータ８１３ａ，８１３ｂ，８１３ｃ，・・・はデータ管理部２３０によって読み出され、メタデータ記憶部２５０に格納される。以下に、ストレージ装置８１０内のメタデータ８１３ａ，８１３ｂ，８１３ｃ，・・・を格納したメタデータ記憶部２５０のデータ構造について説明する。
【００７２】
図９は、メタデータ記憶部のデータ構造例を示す図である。メタデータ記憶部２５０には、メタデータテーブル２５１が格納されている。メタデータテーブル２５１には、ストレージＩＤ、スライスＩＤ、状態、仮想ディスクＩＤ、セグメントＩＤ、ペアのストレージＩＤ、およびペアのスライスＩＤの欄が設けられている。メタデータテーブル２５１内の横方向に並べられた情報同士が互いに関連付けられ、メタデータを示す一つのレコードを構成している。
【００７３】
ストレージＩＤの欄は、ストレージ装置８１０の識別情報（ストレージＩＤ）が設定される。
スライスＩＤの欄には、メタデータに対応するスライスのストレージ装置８１０内での識別情報（スライスＩＤ）が設定される。
【００７４】
状態の欄には、スライスの状態を示す状態フラグが設定される。スライスが仮想ディスクのセグメントに割り当てられていない場合、状態フラグ「Ｆ」が設定される。仮想ディスクのセグメントのプライマリストレージに割り当てられている場合、状態フラグ「Ｐ」が設定される。仮想ディスクのセグメントのセカンダリストレージに割り当てられている場合、状態フラグ「Ｓ」が設定される。
【００７５】
仮想ディスクＩＤの欄には、スライスに対応するセグメントが属する仮想ディスクを識別するための識別情報（仮想ディスクＩＤ）が設定される。
セグメントＩＤの欄には、スライスが割り当てられたセグメントの識別情報（セグメントＩＤ）が設定される。
【００７６】
ペアのストレージＩＤの欄には、ペアのスライス（同じセグメントに属する別のスライス）を有するストレージ装置の識別情報（ストレージＩＤ）が設定される。
ペアのスライスＩＤの欄には、ペアのスライスを、そのスライスが属するストレージ装置内で識別するための識別情報（スライスＩＤ）が設定される。
【００７７】
各ディスクノード１００，２００，３００，４００のメタデータ記憶部１５０，２５０，３５０，４５０に格納されたメタデータは、制御ノード５００からの要求に応じて制御ノード５００に送信される。制御ノード５００では、ディスクノード１００，２００，３００，４００から収集したメタデータに基づいて、仮想ディスク６０へのスライスの割当を定義した仮想ディスクメタデータを作成する。具体的には、制御ノード５００の仮想ディスク管理部５１０が、収集したメタデータを仮想ディスクＩＤによって分類する。そして、仮想ディスク管理部５１０は、仮想ディスクＩＤが同じメタデータの集合を、その稼動ディスクＩＤで示される仮想ディスクに対応する仮想ディスクメタデータとする。作成された仮想ディスクメタデータは、仮想ディスクメタデータ記憶部５２０に格納される。
【００７８】
図１０は、仮想ディスクメタデータ記憶部のデータ構造例を示す図である。仮想ディスクメタデータ記憶部５２０には、仮想ディスクメタデータテーブル５２１が格納されている。仮想ディスクメタデータテーブル５２１には、ストレージＩＤ、ディスクノードＩＰアドレス、スライスＩＤ、状態、仮想ディスクＩＤ、セグメントＩＤ、ペアのストレージＩＤ、およびペアのスライスＩＤの欄が設けられている。仮想ディスクメタデータテーブル５２１内の横方向に並べられた情報同士が互いに関連付けられ、メタデータを示す一つのレコードを構成している。仮想ディスクメタデータテーブル５２１のディスクノードＩＰアドレス以外の各欄に設定される情報は、メタデータテーブル２５１の同名の欄と同種の情報である。
【００７９】
ディスクノードＩＰアドレスの欄には、ストレージＩＤで示されるストレージ装置を管理しているディスクノードのＩＰアドレスが設定される。すなわち、各ストレージ装置は２台のディスクノードと接続できるが、有効な接続関係は一方のみである。そのため、ディスクノードＩＰアドレスの欄には、各ストレージ装置と有効な接続関係を有するディスクノードのＩＰアドレスが設定される。
【００８０】
仮想ディスクメタデータテーブル５２１の内容は、アクセスノード７００からのメタデータ要求に応答して、仮想ディスク管理部５１０によってアクセスノード７００に送信される。アクセスノード７００では、仮想ディスクアクセス制御部７１０が、図１０に示した仮想ディスクメタデータテーブル５２１と同様のメタデータを保持する。仮想ディスクアクセス制御部７１０は、ユーザからの仮想ディスクへのデータアクセスがあると、保持しているメタデータに基づいて、アクセス対象のデータを管理するディスクノードのＩＰアドレス、およびそのデータが格納されているスライスのスライスＩＤを判断できる。
【００８１】
次に、以上のような構成のシステムにおけるソフトウェアのアップデート処理の手順を説明する。
図１１は、ソフトウェアアップデート処理の手順を示すシーケンス図である。図１１に示した処理は、図４に示した第１の状態（ＳＴ１）から第２の状態（ＳＴ２）に移行する間の処理である。図１１の例では、アップデート処理中にもアクセスノード７００からのデータアクセスが発生している。以下、図１１に示す処理をステップ番号に沿って説明する。
【００８２】
［ステップＳ１１］管理ノード６００のアップデート制御部６１０は、システムの管理者からの操作入力に応答して、ソフトウェアのアップデート指示をディスクノード４００に送信する。これにより、ディスクノード４００のＳＷアップデート部４４０によって、ソフトウェアのアップデート処理が開始される。
【００８３】
［ステップＳ１２］アクセスノード７００の仮想ディスクアクセス制御部７１０は、ユーザからのデータアクセス要求に応答して、アクセス対象のデータを管理するディスクノードのＩＰアドレスを判断する。図１１の例では、ストレージ装置８３０に格納されているデータへのデータアクセスが発生している。この場合、仮想ディスクアクセス制御部７１０は、ディスクノード３００に対してアクセス要求を送信する。
【００８４】
［ステップＳ１３］ディスクノード３００のデータアクセス部３２０は、アクセスノード７００からのアクセス要求に応じて、ストレージ装置８３０に対するＩ／Ｏアクセスを行う。例えば、データ書き込みのアクセス要求であれば、データアクセス部３２０は、ストレージ装置８３０にデータの書き込みを行う。また、データ読み出しのアクセス要求であれば、データアクセス部３２０は、ストレージ装置８３０からデータの読み出しを行う。
【００８５】
［ステップＳ１４］ストレージ装置８３０は、ディスクノード３００からのＩ／Ｏアクセスに応じて、データの入出力を行う。データ書き込みが行われた場合、ストレージ装置８３０においてデータの書き込みが行われた後、書き込み完了の応答がディスクノード３００に返される。また、データ読み出しが行われた場合、ストレージ装置８３０においてデータが読み出され、読み出したデータと共に読み出し完了の応答がディスクノード３００に返される。
【００８６】
［ステップＳ１５］ディスクノード３００のデータアクセス部３２０は、アクセス要求に対応する完了の応答を返す。データ読み出しのアクセスであれば、応答内容にデータが含められる。
【００８７】
［ステップＳ１６］その後、ディスクノード４００におけるソフトウェアのアップデート処理が完了したものとする。すると、ディスクノード４００のＳＷアップデート部４４０は、管理ノード６００に対してアップデート完了の応答を送信する。
【００８８】
［ステップＳ１７］管理ノード６００のアップデート制御部６１０は、ストレージ装置８３０との間の接続の無効化要求をディスクノード３００に対して送信する。
［ステップＳ１８］ディスクノード３００の接続ストレージ管理部３６０は、ストレージ装置８３０に接続された接続ポートの状態を無効に設定する。すると、ディスクノード３００からストレージ装置８３０に接続断を示す情報が送信される。
【００８９】
［ステップＳ１９］ストレージ装置８３０は、ディスクノード３００との間の接続を遮断する処理を行い、最後に完了の応答をディスクノード３００に送信する。
［ステップＳ２０］ディスクノード３００の接続ストレージ管理部３６０は、管理ノード６００に対して接続の無効化完了の応答を送信する。
【００９０】
［ステップＳ２１］管理ノード６００のアップデート制御部６１０は、ソフトウェアのアップデート処理が完了したディスクノード４００に対して、ストレージ装置８３０との間の接続の有効化要求を送信する。
【００９１】
［ステップＳ２２］ディスクノード４００の接続ストレージ管理部４６０は、ストレージ装置８３０に接続された接続ポートの状態を有効に設定する。すると、ディスクノード３００からストレージ装置８３０に接続要求が送信される。
【００９２】
［ステップＳ２３］ストレージ装置８３０は、ディスクノード４００との間の接続を確立し、最後の完了の応答をディスクノード４００に送信する。
［ステップＳ２４］ディスクノード４００の接続ストレージ管理部４６０は、管理ノード６００に対して接続の有効化完了の応答を送信する。
【００９３】
［ステップＳ２５］管理ノード６００のアップデート制御部６１０は、ストレージ装置８３０を管理するディスクノードのＩＰアドレスを、ディスクノード４００のＩＰアドレスに変更することを示すＩＰアドレス変更通知を制御ノード５００に送信する。
【００９４】
［ステップＳ２６］制御ノード５００の仮想ディスク管理部５１０は、ＩＰアドレス変更通知に応じて、仮想ディスクメタデータ記憶部５２０内の仮想ディスクメタデータテーブル５２１から、ストレージ装置８３０のストレージＩＤ「ＤＰ−Ｃ」でメタデータを検索する。そして、仮想ディスク管理部５１０は、該当するするメタデータのディスクノードＩＰアドレスに、ディスクノード４００のＩＰアドレスを設定する。その後、仮想ディスク管理部５１０は、ＩＰアドレス変更処理の完了応答を管理ノード６００に送信する。
【００９５】
［ステップＳ２７］その後、アクセスノード７００に対して、ストレージ装置８３０に格納されているデータへのデータアクセス要求が入力されたものとする。この時点では、アクセスノード７００は、ストレージ装置８３０をディスクノード３００が管理しているものと認識している。そこで、アクセスノード７００の仮想ディスクアクセス制御部７１０は、ディスクノード３００に対してアクセス要求を送信する。
【００９６】
［ステップＳ２８］ディスクノード３００のデータアクセス部３２０は、ストレージ装置８３０が管理対象ではないため、アクセスノード７００に対してエラーを応答する。
［ステップＳ２９］アクセスノード７００の仮想ディスクアクセス制御部７１０は、メタデータ要求を制御ノード５００に送信する。
【００９７】
［ステップＳ３０］制御ノード５００の仮想ディスク管理部５１０は、仮想ディスクメタデータ記憶部５２０に格納されているメタデータをアクセスノード７００に応答する。
［ステップＳ３１］アクセスノード７００の仮想ディスクアクセス制御部７１０は、制御ノード５００から取得したメタデータを格納する。また、仮想ディスクアクセス制御部７１０は、取得したメタデータにより、仮想ディスク６０のセグメントへのスライス割当の最新の状態を認識する。そして、仮想ディスクアクセス制御部７１０は、取得したメタデータに基づいてストレージ装置８３０を管理しているディスクノード４００のＩＰアドレスを認識し、ディスクノード４００に対してアクセス要求を送信する。
【００９８】
［ステップＳ３２］ディスクノード４００のデータアクセス部４２０は、アクセスノード７００からのアクセス要求に応じて、ストレージ装置８３０に対するＩ／Ｏアクセスを行う。
【００９９】
［ステップＳ３３］ストレージ装置８３０は、ディスクノード４００からのＩ／Ｏアクセスに応じて、データの入出力を行い、その結果をディスクノード４００に応答する。
［ステップＳ３４］ディスクノード４００のデータアクセス部４２０は、アクセス要求に対応する完了の応答を返す。データ読み出しのアクセスであれば、応答内容にデータが含められる。
【０１００】
このように、ソフトウェアのアップデート処理とストレージ装置への接続の有効化・無効化処理が連動して実行される。これにより、マルチノードストレージシステムにおけるサービスを継続しながら、各ディスクノードを順に非使用状態として、ソフトウェアのアップデート処理を実行させることができる。
【０１０１】
次に、ソフトウェアのアップデート指示とストレージ装置への接続の有効化・無効化指示を行うためのアップデート制御部６１０の機能を詳細に説明する。
図１２は、アップデート制御部の詳細機能を示すブロック図である。アップデート制御部６１０は、バージョン情報記憶部６１１、接続情報記憶部６１２、ディスクノードＩＰアドレス記憶部６１３、複写元ソフトウェア記憶部６１４、通信部６１５、アップデート対象判別部６１６、接続切り替え指示部６１７、アップデート指示部６１８、および接続ディスクノード変更通知部６１９を有する。
【０１０２】
バージョン情報記憶部６１１は、ディスクノード１００，２００，３００，４００に実装されているソフトウェアのバージョンを記憶する記憶機能である。例えば、ＨＤＤ６０３の記憶領域の一部がバージョン情報記憶部６１１として使用される。
【０１０３】
接続情報記憶部６１２は、各ディスクノード１００，２００，３００，４００とストレージ装置８１０，８２０，８３０との間の接続関係、および有効な接続に関する情報を記憶する記憶機能である。例えば、ＨＤＤ６０３の記憶領域の一部が、接続情報記憶部６１２として使用される。
【０１０４】
複写元ソフトウェア記憶部６１４は、ディスクノード１００，２００，３００，４００で実行されているソフトウェアの新しいバージョンのソフトウェア（プログラムやデータ）を記憶する記憶機能である。例えば、ＨＤＤ６０３の記憶領域の一部が、複写元ソフトウェア記憶部６１４として使用される。
【０１０５】
通信部６１５は、ネットワーク１０を介して、所定の通信プロトコルによるデータ通信を行う。本実施の形態では、通信部６１５はＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）による通信を行うものとする。
【０１０６】
アップデート対象判別部６１６は、ディスクノード１００，２００，３００，４００で実行されているソフトウェアのバージョンアップを指示する操作入力に応答し、ソフトウェアのアップデート対象のディスクノードを判断する。具体的には、アップデート対象判別部６１６は、バージョン情報記憶部６１１を参照して、各ディスクノード１００，２００，３００，４００に現在実装されているソフトウェアのバージョンを認識する。また、アップデート対象判別部６１６は、接続情報記憶部６１２を参照して、各ストレージ装置８１０，８２０，８３０がどのディスクノードに有効に接続されているのかを判断する。そして、アップデート対象判別部６１６は、いずれのストレージ装置も有効に接続されていないディスクノードであり、かつ旧バージョンのソフトウェアが実装されているディスクノードをアップデート対象とする。
【０１０７】
また、アップデート対象判別部６１６は、アップデート対象のソフトウェアアップデート要求をアップデート指示部６１８に通知する。アップデート指示部６１８からアップデート完了の応答を受け取ると、アップデート対象判別部６１６は、すべてのディスクノードが新バージョンになるまで、順次アップデート対象とするディスクノードを判断する。
【０１０８】
なお、アップデート対象判別部６１６は、アップデートするディスクノードにストレージ装置が有効に接続されていれば、その接続の無効化を接続切り替え指示部６１７に要求する。また、アップデート対象判別部６１６は、接続の無効化によりディスクノードとの有効な接続関係を失ったストレージ装置がある場合、そのストレージ装置とアップデート済のディスクノードとの接続関係の有効化を、接続切り替え指示部６１７に対して要求する。
【０１０９】
さらに、アップデート対象判別部６１６は、接続切り替え指示部６１７から接続切り替え完了の応答を受け取ると、バージョン情報記憶部６１１内のバージョン情報、接続情報記憶部６１２内の接続情報を更新する。そして、アップデート対象判別部６１６は、変更された接続関係を接続ディスクノード変更通知部６１９に通知する。
【０１１０】
接続切り替え指示部６１７は、アップデート対象判別部６１６からストレージ装置とディスクノードとの接続関係の有効化、または無効化の要求に応じて、該当するディスクノードに対して接続切り替え指示を送信する。
【０１１１】
アップデート指示部６１８は、アップデート対象判別部６１６からのディスクノードのソフトウェアアップデート要求に応じて、ディスクノードにアップデート指示を送信する。その際、アップデート指示部６１８は、アップデート対象のディスクノードに新バージョンのアップデートソフトウェアが格納されていなければ、複写元ソフトウェア記憶部６１４から新バージョンのソフトウェアを読み出し、ディスクノードに送信する。
【０１１２】
接続ディスクノード変更通知部６１９は、変更された接続関係をアップデート対象判別部６１６から受け取ると、新たな接続関係に沿って、ストレージ装置を管理するディスクノードのＩＰアドレス変更通知を制御ノード５００に送信する。
【０１１３】
なお、図１に示したアップデート制御装置１の機能は、図１２のアップデート制御部６１０に含まれている。機能間の対応関係は以下の通りである。
アップデート制御装置１の接続情報記憶手段１ａの機能は、アップデート制御部６１０の接続情報記憶部６１２に含まれる。アップデート制御装置１のアップデート対象選択手段１ｂと接続情報更新手段１ｅとの機能は、アップデート制御部６１０のアップデート対象判別部６１６に含まれる。アップデート制御装置１のアップデート指示手段１ｃの機能は、アップデート制御部６１０のアップデート指示部６１８に含まれる。アップデート制御装置１の接続切り替え指示手段１ｄの機能は、アップデート制御部６１０の接続切り替え指示部６１７に含まれる。
【０１１４】
次に、アップデート制御部６１０内に保持される情報について詳細に説明する。
図１３は、バージョン情報記憶部のデータ構造例を示す図である。バージョン情報記憶部６１１は、バージョン情報テーブル６１１ａを有している。バージョン情報テーブル６１１ａには、ディスクノードＩＤとバージョンとの欄が設けられている。ディスクノードＩＤの欄には、ディスクノードの識別情報（ディスクノードＩＤ）が設定される。バージョンの欄には、ディスクノードに実装されているソフトウェアのバージョンが設定される。なお、バージョン情報テーブル６１１ａは、アップデート制御部６１０による管理対象のソフトウェアごとに設けられる。
【０１１５】
図１４は、接続情報記憶部のデータ構造例を示す図である。接続情報記憶部６１２は、接続情報テーブル６１２ａを有している。接続情報テーブル６１２ａには、ディスクノードＩＤ、第１の接続先デバイスＩＤ、第２の接続先デバイスＩＤ、および有効な接続の欄が設けられている。
【０１１６】
ディスクノードＩＤの欄には、ディスクノードの識別情報（ディスクノードＩＤ）が設定される。第１の接続先デバイスＩＤの欄には、ディスクノードのポート番号が「１」である接続ポートに接続されたストレージ装置の識別情報（ストレージＩＤ）が設定される。第２の接続先デバイスＩＤの欄には、ディスクノードのポート番号が「２」である接続ポートに接続されたストレージ装置の識別情報（ストレージＩＤ）が設定される。有効な接続の欄には、接続関係が有効となっている接続ポートのポート番号が設定される。
【０１１７】
図１５は、ディスクノードＩＰアドレス記憶部のデータ構造例を示す図である。ディスクノードＩＰアドレス記憶部６１３は、ＩＰアドレステーブル６１３ａを有している。
ＩＰアドレステーブル６１３ａには、ディスクノードＩＤとＩＰアドレスとの欄が設けられている。ディスクノードＩＤの欄には、ディスクノードの識別情報（ディスクノードＩＤ）が設定される。ＩＰアドレスの欄には、対応するディスクノードＩＤで示されるディスクノードのＩＰアドレスが設定される。
【０１１８】
次に、管理ノード６００のアップデート制御部６１０で実行されるシステムアップデート処理の手順について詳細に説明する。
図１６は、システムアップデート処理の手順を示すフローチャートである。以下、図１６に示す処理をステップ番号に沿って説明する。この処理は、システムアップデートを指示する操作入力が行われた場合に開始される。
【０１１９】
［ステップＳ４１］アップデート対象判別部６１６は、システムアップデートが完了したか否かを判断する。システムアップデートが完了した場合とは、バージョン情報記憶部６１１で示される各ディスクノード１００，２００，３００，４００のソフトウェアのバージョンが、すべて複写元ソフトウェア記憶部６１４に格納されているソフトウェアのバージョンと同一となった場合である。システムアップデートが完了した場合、処理が終了する。システムアップデートが完了していなければ、処理がステップＳ４２に進められる。
【０１２０】
［ステップＳ４２］アップデート対象判別部６１６は、ストレージ装置と接続が切れている非使用状態のディスクノードを検索する。具体的には、アップデート対象判別部６１６は、接続情報記憶部６１２内の接続情報テーブル６１２ａを参照する。そして、アップデート対象判別部６１６は、有効な接続が空欄となっているディスクノードを検索し、該当するディスクノードが非使用であると判断する。
【０１２１】
［ステップＳ４３］アップデート対象判別部６１６は、非使用のディスクノードに対してバージョンアップの必要があるか否かを判断する。具体的には、アップデート対象判別部６１６は、バージョン情報記憶部６１１内のバージョン情報テーブル６１１ａを参照し、非使用ディスクノードのソフトウェアのバージョンを判断する。そして、アップデート対象判別部６１６は、非使用ディスクノードのソフトウェアのバージョンが新バージョンでなければ、バージョンアップが必要と判断する。他方、アップデート対象判別部６１６は、非使用ディスクノードのソフトウェアのバージョンが新バージョンであれば、バージョンアップが不要と判断する。バージョンアップが必要であれば、処理がステップＳ４４に進められる。バージョンアップが不要であれば、処理がステップＳ４７に進められる。
【０１２２】
［ステップＳ４４］アップデート指示部６１８は、非使用ディスクノードへアップデート指示を送信する。具体的には、アップデート対象判別部６１６は、バージョンアップが必要と判断されたディスクノードのＩＰアドレスをディスクノードＩＰアドレス記憶部６１３内のＩＰアドレステーブル６１３ａから取得する。そして、アップデート対象判別部６１６は、取得したＩＰアドレスを含むソフトウェアアップデート要求を、アップデート指示部６１８に渡す。アップデート指示部６１８は、アップデート対象判別部６１６から取得したＩＰアドレスを宛先としたアップデート指示を出力する。
【０１２３】
これにより、非使用のディスクノードにおいてソフトウェアのアップデート処理が実行される。アップデート処理が完了すると、ディスクノードからアップデート完了の応答が返される。
【０１２４】
［ステップＳ４５］アップデート指示部６１８は、非使用のディスクノードからアップデート完了の応答を受信する。そして、アップデート指示部６１８は、非使用のディスクノードのソフトウェアのアップデート処理が完了したことをアップデート対象判別部６１６に通知する。
【０１２５】
［ステップＳ４６］アップデート対象判別部６１６は、バージョン情報記憶部６１１内のバージョン情報テーブル６１１ａを更新する。すなわち、アップデート対象判別部６１６は、アップデート処理が完了したディスクノードのソフトウェアのバージョンを最バージョンに更新する。
【０１２６】
［ステップＳ４７］アップデート対象判別部６１６は、次にアップデートするディスクノードを検索する。具体的には、アップデート対象判別部６１６は、接続情報記憶部６１２内の接続情報テーブル６１２ａを参照し、アップデート処理が完了したディスクノードと同じストレージ装置に接続されている他のディスクノードを抽出する。そして、アップデート対象判別部６１６は、抽出したディスクノードのうち、ステップＳ４２で検出されていない未処理のディスクノードを、次にアップデートするディスクノードとする。
【０１２７】
［ステップＳ４８］接続切り替え指示部６１７は、次にアップデートするディスクノードに対して、接続の無効化を指示する。具体的には、アップデート対象判別部６１６は、次にアップデートするディスクノードのＩＰアドレスをディスクノードＩＰアドレス記憶部６１３内のＩＰアドレステーブル６１３ａから取得する。そして、アップデート対象判別部６１６は、取得したＩＰアドレスを含む接続関係の無効化要求を、接続切り替え指示部６１７に渡す。接続切り替え指示部６１７は、アップデート対象判別部６１６から取得したＩＰアドレスを宛先とした接続無効化指示を出力する。
【０１２８】
これにより、次にアップデートを行うディスクノードにおいて、現在有効となっている接続が無効状態に変更される。無効化処理が完了すると、ディスクノードから無効化完了の応答が返される。
【０１２９】
［ステップＳ４９］接続切り替え指示部６１７は、次にアップデートするディスクノードからの無効化完了の応答を受信する。そして、接続切り替え指示部６１７は、次にアップデートするディスクノードの接続の無効化処理が完了したことをアップデート対象判別部６１６に通知する。
【０１３０】
［ステップＳ５０］アップデート対象判別部６１６は、接続情報記憶部６１２内の接続情報テーブル６１２ａを更新する。具体的には、アップデート対象判別部６１６は、接続の無効化処理をしたディスクノードに対応する有効な接続を空欄（有効な接続なし）にする。
【０１３１】
［ステップＳ５１］接続切り替え指示部６１７は、非使用のディスクノードに対して、接続の有効化を指示する。具体的には、アップデート対象判別部６１６は、未接続のディスクノードのＩＰアドレスをディスクノードＩＰアドレス記憶部６１３内のＩＰアドレステーブル６１３ａから取得する。また、アップデート対象判別部６１６は、接続情報記憶部６１２の接続情報テーブル６１２ａを参照し、非使用のディスクノードと次にアップデートするディスクノードとの双方に接続されたストレージ装置を判断する。
【０１３２】
さらに、アップデート対象判別部６１６は、非使用のディスクノードにおいて、双方に接続されたストレージ装置に接続された接続ポートのポート番号を、有効化対象ポート番号として取得する。そして、アップデート対象判別部６１６は、取得したＩＰアドレスと有効化対象ポート番号とを含む接続関係の有効化要求を、接続切り替え指示部６１７に渡す。接続切り替え指示部６１７は、アップデート対象判別部６１６から取得したＩＰアドレスを宛先とし、有効化対象ポート番号をデータとして含む接続有効化指示を出力する。
【０１３３】
これにより、非使用のディスクノードにおいて、現在無効となっている接続が有効状態に変更される。有効化処理が完了すると、ディスクノードから有効化完了の応答が返される。
【０１３４】
［ステップＳ５２］接続切り替え指示部６１７は、非使用だったディスクノードからの有効化完了の応答を受信する。そして、接続切り替え指示部６１７は、非使用だったディスクノードの接続の有効化処理が完了したことをアップデート対象判別部６１６に通知する。
【０１３５】
［ステップＳ５３］アップデート対象判別部６１６は、接続情報記憶部６１２内の接続情報テーブル６１２ａを更新する。具体的には、アップデート対象判別部６１６は、接続の有効化処理をしたディスクノードに対応する有効な接続の欄に、有効化対象接続ポートのポート番号を設定する。その後、処理がステップＳ４１に進められる。
【０１３６】
次に、管理ノード６００からの指示に従ってソフトウェアのアップデート処理および接続の有効化・無効化処理を行うためのディスクノードの機能を詳細に説明する。
図１７は、ディスクノードの詳細機能を示すブロック図である。図１７には、ＳＷアップデート部２４０と接続ストレージ管理部２６０と機能をより詳細に示している。
【０１３７】
ＳＷアップデート部２４０は、アップデートソフトウェア記憶部２４１、アップデート実行部２４２、およびアップデート完了通知部２４３を有している。
アップデートソフトウェア記憶部２４１は、アップデート対象のソフトウェアを記憶する記憶機能である。例えば、ディスクノード２００に内蔵されたＨＤＤの記憶領域の一部がアップデートソフトウェア記憶部２４１として使用される。
【０１３８】
アップデート実行部２４２は、管理ノード６００からアップデート指示を受け取ると、アップデート対象のソフトウェアをアップデートソフトウェア記憶部２４１から取得し、ＯＳなどのアップデート処理を行う。具体的には、アップデート実行部２４２は、アップデート指示を受け取ると、管理ノード６００の複写元ソフトウェア記憶部６１４に格納されている新バージョンのソフトウェアが、アップデートソフトウェア記憶部２４１に格納されているか否かを判断する。未格納の場合、アップデート実行部２４２は、管理ノード６００の複写元ソフトウェア記憶部６１４から新バージョンのソフトウェアを取得し、アップデートソフトウェア記憶部２４１に格納する。その後、アップデート実行部２４２は、アップデート処理を実行する。
【０１３９】
なお、アップデート実行部２４２がアップデート処理を実行すると、ディスクノード２００におけるデータ提供サービスが一時的に停止する。例えば、アップデート処理中にＯＳの再起動が行われる。ＯＳの停止期間中は、データアクセス部２２０によるストレージ装置内のデータ提供が停止する。
【０１４０】
アップデート完了通知部２４３は、アップデート実行部２４２によるアップデート処理が完了すると、アップデート完了通知を管理ノード６００に対して送信する。
接続ストレージ管理部２６０は、二つのデバイス接続部２６１，２６２、接続切り替え部２６３、および切り替え完了通知部２６４を有している。
【０１４１】
デバイス接続部２６１は、ストレージ装置８１０に設けられた二つのホスト接続部８１４，８１５のうちの一方のホスト接続部８１５に接続されている。また、デバイス接続部２６２は、ストレージ装置８２０に設けられた二つのホスト接続部８２４，８２５のうちの一方のホスト接続部８２４に接続されている。各ストレージ装置８１０，８２０のホスト接続部８１４，８１５，８２４，８２５は、ストレージ装置８１０，８２０をコンピュータと接続するためのインタフェースである。デバイス接続部２６１，２６２には、それぞれ接続ポート番号が割り振られている。図１７の例では、デバイス接続部２６１の接続ポート番号は「１」であり、デバイス接続部２６２の接続ポート番号は「２」である。
【０１４２】
デバイス接続部２６１，２６２は、接続関係の有効・無効を示す接続フラグを有している。接続フラグの値は、接続切り替え部２６３によって設定される。接続関係が有効であれば、デバイス接続部２６１，２６２は、データアクセス部２２０からのアクセス要求などに応答して、接続されたストレージ装置内のデータアクセスを行う。接続関係が無効であれば、デバイス接続部２６１，２６２はストレージ装置へのアクセスは行わず、データアクセス部２２０からのアクセス要求などに対してはエラーを返す。
【０１４３】
接続切り替え部２６３は、管理ノード６００の接続切り替え指示部６１７からの指示に応じて有効に接続するストレージ装置の切り替えを行う。具体的には、接続切り替え部２６３は、接続切り替え指示部６１７から、接続ポートを指定した有効化要求を受け取ると、該当する接続ポートのデバイス接続部における接続フラグを「有効」に設定する。また、接続切り替え部２６３は、接続切り替え指示部６１７から、接続ポートを指定した無効化要求を受け取ると、該当する接続ポートのデバイス接続部における接続フラグを「無効」に設定する。
【０１４４】
切り替え完了通知部２６４は、接続切り替え部２６３による接続の有効化、または無効化処理が完了すると、切り替え完了通知を管理ノード６００に対して送信する。
データアクセス部２２０は、接続が有効となっているデバイス接続部を介してストレージ装置内のデータにアクセスすることができる。また、データ管理部２３０は、接続が有効となっているデバイス接続部を介してストレージ装置内のデータを管理する。例えば、データ管理部２３０は、一方のデバイス接続部が無効化され他方のデバイス接続部が有効化された場合、有効化されたデバイス接続部に接続されたストレージ装置からメタデータを読み出し、メタデータ記憶部２５０に格納する。
【０１４５】
次に、ディスクノード２００におけるソフトウェアアップデート処理と接続切り替え処理とについて詳細に説明する。
図１８は、ソフトウェアアップデート処理の手順を示すフローチャートである。以下、図１８に示す処理をステップ番号に沿って説明する。
【０１４６】
［ステップＳ６１］ＳＷアップデート部２４０のアップデート実行部２４２は、管理ノード６００からのソフトウェアのアップデート指示を受信する。
［ステップＳ６２］アップデート実行部２４２は、アップデート指示で示された新バージョンのソフトウェアがアップデートソフトウェア記憶部２４１に格納されているか否かを判断する。新バージョンのソフトウェアが格納されていなければ、アップデート実行部２４２は、管理ノード６００に新バージョンのソフトウェアを要求し、複写元ソフトウェア記憶部６１４に格納されている新バージョンのソフトウェアを取得する。そして、アップデート実行部２４２は、取得した新バージョンのソフトウェアをアップデートソフトウェア記憶部２４１に格納する。
【０１４７】
［ステップＳ６３］アップデート実行部２４２は、アップデートソフトウェア記憶部２４１に格納されたソフトウェアを用いて、ディスクノード２００内のソフトウェアのアップデート処理を行う。なお、アップデート処理実行過程でシステムの再起動が必要になると、ＯＳによってディスクノード２００内のすべての機能が停止される。そのため、データアクセス部２２０によるアクセスノード７００へのデータ提供サービスも停止する。ＯＳが先起動されると、図１７に示したディスクノード２００内の各機能もＯＳによって再起動される。
【０１４８】
［ステップＳ６４］アップデート完了通知部２４３は、アップデート実行部２４２によるソフトウェアのアップデートが完了すると、管理ノード６００に対してアップデート完了応答を送信する。その後、ソフトウェアアップデート処理が終了する。
【０１４９】
図１９は、接続切り替え処理の手順を示すフローチャートである。以下、図１９に示す処理をステップ番号に沿って説明する。
［ステップＳ７１］接続切り替え部２６３は、管理ノード６００から、接続の無効化または有効化を指示する接続切り替え指示を受信する。
【０１５０】
［ステップＳ７２］接続切り替え部２６３は、接続切り替え指示が、無効化指示か否かを判断する。無効化指示であれば、処理がステップＳ７３に進められる。有効化指示であれば、処理がステップＳ７６に進められる。
【０１５１】
［ステップＳ７３］無効化指示の場合、接続切り替え部２６３は、現在有効に接続されている接続ポートの状態を無効に設定する。これにより、無効とされた接続ポートに対応するデバイス接続部とストレージ装置との間の接続が遮断される。
【０１５２】
［ステップＳ７４］データ管理部２３０は、接続が無効化されたことにより、管理対象となるストレージ装置が無くなったことを認識し、メタデータ記憶部２５０内のメタデータを破棄する。
【０１５３】
［ステップＳ７５］切り替え完了通知部２６４は、無効化完了応答を管理ノード６００に対して送信する。その後、処理が終了する。
［ステップＳ７６］有効化指示の場合、接続切り替え部２６３は、有効化指示に含まれるポート番号に対応する接続ポートの状態を有効に設定する。これにより、有効とされた接続ポートに対応するデバイス接続部とストレージ装置との間の接続が確立される。
【０１５４】
［ステップＳ７７］データ管理部２３０は、接続が有効化されたことにより、新たにストレージ装置が管理対象になったことを認識し、有効な接続関係を有するストレージ装置からメタデータを読み出す。そして、データ管理部２３０は、読み出したメタデータをメタデータ記憶部２５０に格納する。
【０１５５】
［ステップＳ７８］切り替え完了通知部２６４は、有効化完了応答を管理ノード６００に対して送信する。その後、処理が終了する。
以上のようにして、マルチノードストレージシステムのサービスを継続しながら、各ディスクノード１００，２００，３００，４００のソフトウェアをアップデートすることができる。しかも、ストレージ装置への接続の切り替えを行ったとき、メタデータにおけるＩＰアドレスの変更のみによって、アクセス要求を出力すべきディスクノードの変更が可能である。そのため、接続の切り替えによってストレージ装置へのアクセスができなくなる期間は短時間ですむ。
【０１５６】
ところで、マルチノードストレージシステムでは、制御ノード５００は、各ディスクノード１００，２００，３００，４００の状態を監視し、状態が変化した場合に仮想ディスクへのスライスの割当を変更する機能を有する。例えば、ディスクノード１００，２００，３００，４００の１台において何らかの障害が発生すると、制御ノード５００はリカバリ処理を行う。リカバリ処理は、障害によりアクセスできないストレージ装置が発生したことで、２重化状態が崩れたセグメントに新たなスライスを割り当て、２重化状態を回復する処理である。このような監視処理の一貫として、制御ノード５００は、運用中のディスクノード１００，２００，３００，４００からメタデータを収集する機能を有している。このメタデータの収集機能を用いれば、ＩＰアドレスの変更処理を行わなくても、接続切り替えを行った際のデータアクセス先の変更をアクセスノード７００に認識させることができる。
【０１５７】
図２０は、ソフトウェアアップデート処理の手順を示すシーケンス図である。なお、図２０に示すステップＳ８１〜Ｓ９０の各処理は、それぞれ図１１に示したステップＳ１１〜Ｓ２０の処理と同じである。図２０に示すステップＳ９３〜Ｓ９６の各処理は、それぞれ図１１に示したステップＳ２１〜Ｓ２４の処理と同じである。図２０に示すステップＳ１０１〜Ｓ１０８の各処理は、それぞれ図１１に示したステップＳ２７〜Ｓ３４の処理と同じである。そこで、以下、図２０に示す処理のうち図１１の処理と異なる処理について説明する。
【０１５８】
まず、ステップＳ９１〜Ｓ９２の処理をステップ番号に沿って説明する。
［ステップＳ９１］接続の無効化を完了したディスクノード３００のデータ管理部３３０は、制御ノード５００に対してストレージ装置８３０の接続断通知を送信する。
【０１５９】
［ステップＳ９２］接続断通知を受け取ると、制御ノード５００の仮想ディスク管理部５１０は、接続断となったストレージ装置に対応するメタデータを、仮想ディスクメタデータ記憶部５２０内の仮想ディスクメタデータテーブル５２１から削除する。そして、仮想ディスク管理部５１０は、接続断通知の確認応答をディスクノード３００に送信する。
【０１６０】
次に、ステップＳ９７〜ステップＳ１００の処理をステップ番号に沿って説明する。
［ステップＳ９７］接続の有効化を完了したディスクノード４００のデータ管理部４３０は、有効化通知を制御ノード５００に送信する。
【０１６１】
［ステップＳ９８］制御ノード５００の仮想ディスク管理部５１０は、有効化通知に対する確認応答をディスクノード４００に送信する。
［ステップＳ９９］ディスクノード４００のデータ管理部４３０は、ストレージ装置８３０からメタデータを読み出し、制御ノード５００に送信する。
【０１６２】
［ステップＳ１００］制御ノード５００の仮想ディスク管理部５１０は、ディスクノード４００から送られたメタデータを、ディスクノード４００の識別情報（例えばＩＰアドレス）に対応付けて、仮想ディスクメタデータ記憶部５２０内の仮想ディスクメタデータテーブル５２１に登録する。そして、仮想ディスク管理部５１０は、メタデータを受信したことを示す確認応答をディスクノード４００に送信する。
【０１６３】
このように制御ノード５００の仮想ディスクメタデータテーブル５２１を再構成することで、以後、アクセスノード７００からのメタデータ要求に対して、接続切り替え後の接続関係を示すメタデータをアクセスノード７００に応答することができる。すなわち、制御ノード５００におけるメタデータの収集機能を用いて接続の切り替え結果をアクセスノード７００に認識させることができる。制御ノード５００におけるメタデータの収集機能は、新たなディスクノードの追加処理やディスクノードの障害発生時のリカバリ処理などに利用されており、確実に実行される（例えば、ディスクノードや制御ノードでの処理の優先度が高く設定される）。そのため、メタデータの収集機能を利用することで、ストレージ装置を管理するディスクノードの切り替えを安全かつ確実に行うことができる。
【０１６４】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、制御ノード５００、管理ノード６００、およびディスクノード１００，２００，３００，４００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disc）などがある。
【０１６５】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１６６】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１６７】
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
【０１６８】
（付記１）  複数のストレージ装置と、前記ストレージ装置よりも多い台数の複数のディスクノードとが設けられ、前記ストレージ装置それぞれが少なくとも２台の前記ディスクノードに接続され、一つの接続のみが前記ストレージ装置内のデータの入出力に使用される有効な接続関係と定義されており、前記ディスクノードには１台または２台の前記ストレージ装置が接続されており、複数の前記ディスクノードに接続されたコンピュータに、複数の前記ディスクノードのソフトウェアアップデート処理を制御させるためのアップデート制御プログラムであって、
前記コンピュータを、
複数の前記ストレージ装置と複数の前記ディスクノードとの接続関係、および前記有効な接続関係を記憶する接続情報記憶手段を参照し、前記有効な接続関係を有していない前記ディスクノードをアップデート対象ディスクノードとして選択し、前記アップデート対象ディスクノードの前記ソフトウェアのアップデートが完了した場合、前記アップデート対象ディスクノードと同じ前記ストレージ装置に接続された前記ディスクノードのうち、アップデートが未処理の前記ディスクノードを次選択ディスクノードとして決定し、前記次選択ディスクノードの接続関係が無効化された後、前記次選択ディスクノードを前記アップデート対象ディスクノードとして選択するアップデート対象選択手段、
前記アップデート対象選択手段で前記アップデート対象ディスクノードが選択されるごとに、選択された前記アップデート対象ディスクノードに対して前記ソフトウェアのアップデートを指示するアップデート指示手段、
前記次選択ディスクノードが決定されると、前記次選択ディスクノードに有効に接続された前記ストレージ装置の有効な接続を、前記次選択ディスクノードから前記アップデート対象ディスクノードに切り替える指示を、前記次選択ディスクノードと前記アップデート対象ディスクノードとに出力する接続切り替え指示手段、
前記接続切り替え指示手段の指示に応じて有効化または無効化された接続関係に従って、前記接続情報記憶手段における有効な接続の情報を更新する接続情報更新手段、
として機能させるアップデート制御プログラム。
【０１６９】
（付記２）  前記コンピュータを、さらに、
前記接続切り替え指示手段の指示に応じて前記アップデート対象ディスクノードと前記ストレージ装置との接続関係が有効化されると、有効化された接続関係によって接続されている前記ストレージ装置にアクセスするためのアクセス要求の送信先が、有効化された接続関係によって接続されている前記アップデート対象ディスクノードに変更されたことを、前記ストレージ装置にアクセスするアクセスノードに通知する接続ディスクノード変更通知手段として機能させることを特徴とする付記１記載のアップデート制御プログラム。
【０１７０】
（付記３）  前記接続切り替え指示手段は、前記ディスクノードそれぞれをネットワーク上で一意に識別するためのアドレス情報を記憶するアドレス記憶手段を参照し、有効化された接続関係によって接続されている前記ストレージ装置にアクセスするためのアクセス要求の送信先として、有効化された接続関係によって接続されている前記アップデート対象ディスクノードのアドレスを前記アクセスノードに通知することを特徴とする付記２記載のアップデート制御プログラム。
【０１７１】
（付記４）  前記接続切り替え指示手段は、前記ストレージ装置に有効に接続された前記ディスクノードのアドレスの情報を前記アクセスノードに提供する制御ノード経由で、有効化された接続関係によって接続されている前記アップデート対象ディスクノードのアドレスを前記アクセスノードに通知することを特徴とする付記３記載のアップデート制御プログラム。
【０１７２】
（付記５）  前記アップデート対象選択手段は、前記アップデート対象ディスクノードを選択後、複数の前記ディスクノードに実装されているアップデート対象の前記ソフトウェアのバージョンを記憶するバージョン情報記憶手段を参照し、前記アップデート対象ディスクノードに実装されている前記ソフトウェアのバージョンがアップデート処理後のバージョンと同一の場合、前記アップデート対象ディスクノードの前記ソフトウェアのアップデートの完了を待たずに、前記次選択ディスクノードを決定し、
前記アップデート指示手段は、前記アップデート対象ディスクノードに実装されている前記ソフトウェアのバージョンがアップデート処理後のバージョンと異なる場合にのみ、前記アップデート対象ディスクノードに前記ソフトウェアのアップデートを指示することを特徴とする付記１記載のアップデート制御プログラム。
【０１７３】
（付記６）  前記接続切り替え指示手段は、前記次選択ディスクノードに対して、有効な接続の無効化指示を送信し、前記アップデート対象ディスクノードに対して、前記次選択ディスクノードとの接続関係が無効化された前記ストレージ装置との接続関係の有効化指示を送信することを特徴とする付記１記載のアップデート制御プログラム。
【０１７４】
（付記７）  複数のストレージ装置と、前記ストレージ装置よりも多い台数の複数のディスクノードとが設けられ、前記ストレージ装置それぞれが少なくとも２台の前記ディスクノードに接続され、一つの接続のみが前記ストレージ装置内のデータの入出力に使用される有効な接続関係と定義されており、前記ディスクノードには１台または２台の前記ストレージ装置が接続されており、複数の前記ディスクノードのソフトウェアアップデート処理を制御するアップデート制御装置であって、
複数の前記ストレージ装置と複数の前記ディスクノードとの接続関係、および前記有効な接続関係を記憶する接続情報記憶手段を参照し、前記有効な接続関係を有していない前記ディスクノードをアップデート対象ディスクノードとして選択し、前記アップデート対象ディスクノードの前記ソフトウェアのアップデートが完了した場合、前記アップデート対象ディスクノードと同じ前記ストレージ装置に接続された前記ディスクノードのうち、アップデートが未処理の前記ディスクノードを次選択ディスクノードとして決定し、前記次選択ディスクノードの接続関係が無効化された後、前記次選択ディスクノードを前記アップデート対象ディスクノードとして選択するアップデート対象選択手段と、
前記アップデート対象選択手段で前記アップデート対象ディスクノードが選択されるごとに、選択された前記アップデート対象ディスクノードに対して前記ソフトウェアのアップデートを指示するアップデート指示手段と、
前記次選択ディスクノードが決定されると、前記次選択ディスクノードに有効に接続された前記ストレージ装置の有効な接続を、前記次選択ディスクノードから前記アップデート対象ディスクノードに切り替える指示を、前記次選択ディスクノードと前記アップデート対象ディスクノードとに出力する接続切り替え指示手段と、
前記接続切り替え指示手段の指示に応じて有効化または無効化された接続関係に従って、前記接続情報記憶手段における有効な接続の情報を更新する接続情報更新手段と、
を有するアップデート制御装置。
【０１７５】
（付記８）  複数のストレージ装置と、前記ストレージ装置よりも多い台数の複数のディスクノードとが設けられ、前記ストレージ装置それぞれが少なくとも２台の前記ディスクノードに接続され、一つの接続のみが前記ストレージ装置内のデータの入出力に使用される有効な接続関係と定義されており、前記ディスクノードには１台または２台の前記ストレージ装置が接続されており、複数の前記ディスクノードに接続されたコンピュータに、複数の前記ディスクノードのソフトウェアアップデート処理を制御させるためのアップデート制御方法であって、
前記コンピュータが、
複数の前記ストレージ装置と複数の前記ディスクノードとの接続関係、および前記有効な接続関係を記憶する接続情報記憶手段を参照し、前記有効な接続関係を有していない前記ディスクノードをアップデート対象ディスクノードとして選択し、
前記アップデート対象ディスクノードが選択されるごとに、選択された前記アップデート対象ディスクノードに対して前記ソフトウェアのアップデートを指示し、
前記アップデート対象ディスクノードの前記ソフトウェアのアップデートが完了した場合、前記アップデート対象ディスクノードと同じ前記ストレージ装置に接続された前記ディスクノードのうち、アップデートが未処理の前記ディスクノードを次選択ディスクノードとして決定し、
前記次選択ディスクノードが決定されると、前記次選択ディスクノードに有効に接続された前記ストレージ装置の有効な接続を、前記次選択ディスクノードから前記アップデート対象ディスクノードに切り替える指示を、前記次選択ディスクノードと前記アップデート対象ディスクノードとに出力し、
有効化または無効化された接続関係に従って、前記接続情報記憶手段における有効な接続の情報を更新し、
前記次選択ディスクノードの接続関係が無効化された後、前記次選択ディスクノードを前記アップデート対象ディスクノードとして選択する、
ことを特徴とするアップデート制御方法。
【図面の簡単な説明】
【０１７６】
【図１】実施の形態の概要を示す図である。
【図２】本実施の形態のマルチノードストレージシステムの構成例を示す図である。
【図３】本実施の形態に用いる管理ノードのハードウェア構成例を示す図である。
【図４】ソフトウェアアップデート処理における状態遷移を示す第１の図である。
【図５】ソフトウェアアップデート処理における状態遷移を示す第２の図である。
【図６】仮想ディスクのデータ構造を示す図である。
【図７】各ノードの機能を示すブロック図である。
【図８】ストレージ装置のデータ構造例を示す図である。
【図９】メタデータ記憶部のデータ構造例を示す図である。
【図１０】仮想ディスクメタデータ記憶部のデータ構造例を示す図である。
【図１１】ソフトウェアアップデート処理の手順を示すシーケンス図である。
【図１２】アップデート制御部の詳細機能を示すブロック図である。
【図１３】バージョン情報記憶部のデータ構造例を示す図である。
【図１４】接続情報記憶部のデータ構造例を示す図である。
【図１５】ディスクノードＩＰアドレス記憶部のデータ構造例を示す図である。
【図１６】システムアップデート処理の手順を示すフローチャートである。
【図１７】ディスクノードの詳細機能を示すブロック図である。
【図１８】ソフトウェアアップデート処理の手順を示すフローチャートである。
【図１９】接続切り替え処理の手順を示すフローチャートである。
【図２０】ソフトウェアアップデート処理の手順を示すシーケンス図である。
【符号の説明】
【０１７７】
１  アップデート制御装置
１ａ  接続情報記憶手段
１ｂ  アップデート対象選択手段
１ｃ  アップデート指示手段
１ｄ  接続切り替え指示手段
１ｅ  接続情報更新手段
２ａ，２ｂ，・・・，２ｍ，２ｎ  ストレージ装置
３ａ，３ｂ，３ｃ，・・・，３ｍ，３ｎ，３ｏ  ディスクノード
【図１】
2010072974.tif 000003
【図２】
2010072974.tif 000004
【図３】
2010072974.tif 000005
【図４】
2010072974.tif 000006
【図５】
2010072974.tif 000007
【図６】
2010072974.tif 000008
【図７】
2010072974.tif 000009
【図８】
2010072974.tif 000010
【図９】
2010072974.tif 000011
【図１０】
2010072974.tif 000012
【図１１】
2010072974.tif 000013
【図１２】
2010072974.tif 000014
【図１３】
2010072974.tif 000015
【図１４】
2010072974.tif 000016
【図１５】
2010072974.tif 000017
【図１６】
2010072974.tif 000018
【図１７】
2010072974.tif 000019
【図１８】
2010072974.tif 000020
【図１９】
2010072974.tif 000021
【図２０】
2010072974.tif 000022