JP2009230577A - ソフトウェアアップデート管理プログラム、ソフトウェアアップデート管理装置、およびソフトウェアアップデート管理方法 - Google Patents

ソフトウェアアップデート管理プログラム、ソフトウェアアップデート管理装置、およびソフトウェアアップデート管理方法 Download PDF

Info

Publication number
JP2009230577A
JP2009230577A JP2008076671A JP2008076671A JP2009230577A JP 2009230577 A JP2009230577 A JP 2009230577A JP 2008076671 A JP2008076671 A JP 2008076671A JP 2008076671 A JP2008076671 A JP 2008076671A JP 2009230577 A JP2009230577 A JP 2009230577A
Authority
JP
Japan
Prior art keywords
migration
software
update
disk node
migration pattern
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
JP2008076671A
Other languages
English (en)
Other versions
JP4467624B2 (ja
Inventor
Hideki Sakurai
英樹 櫻井
Yasuo Noguchi
泰生 野口
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008076671A priority Critical patent/JP4467624B2/ja
Priority to US12/352,383 priority patent/US8413133B2/en
Publication of JP2009230577A publication Critical patent/JP2009230577A/ja
Application granted granted Critical
Publication of JP4467624B2 publication Critical patent/JP4467624B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】データの冗長性を維持したままディスクノードのソフトウェアをアップデートする場合におけるシステム全体の処理負荷の低下を抑制できるようにする。
【解決手段】移行パターン決定テーブル1acには、対象ディスクノードで管理しているデータの更新を禁止することでデータの冗長性を維持する第1種移行パターンと、対象ディスクノードで管理しているデータを他のディスクノードにコピーすることでデータの冗長性を維持する第2種移行パターンとに分類された複数の移行パターンが設定されている。移行内容判断手段1bにより、対象ディスクノードの機能ごとの移行内容が判断され、移行パターン決定手段1cにより、移行内容に応じた移行パターンが決定される。そして、アップデート手段1dにより、対象ディスクノードのソフトウェアが、決定された移行パターンに示された処理でアップデートされる。
【選択図】図1

Description

本発明はソフトウェアアップデート管理プログラム、ソフトウェアアップデート管理装置、およびソフトウェアアップデート管理方法に関し、特に複数のディスクノードで冗長性を持たせたデータ管理を行う分散ストレージシステムにおけるディスクノードのソフトウェアアップデート手順を管理するためのソフトウェアアップデート管理プログラム、ソフトウェアアップデート管理装置、およびソフトウェアアップデート管理方法に関する。
分散ストレージシステムでは、複数のディスクノードに対して2重化させたデータが格納される。これにより、1台のディスクノードに障害が発生しても、システムの運用を継続することができる。
ただし、障害の発生によりディスクノードが停止した場合、そのディスクノードに格納されていたデータに対する更新が行われると2重化された一方のデータのみ更新され、停止したディスクノードが有するデータは更新できない。そこで、停止したディスクノードが復旧後に、そのディスクノードのデータを更新しデータの2重化状態(冗長構成)を回復させることとなる。ただし、このような場合、障害が発生したディスクノードが復旧するまでデータの冗長性が失われてしまう。
冗長構成を維持するには、障害により停止したディスクノードで管理されていたデータを、他のディスクノードにコピーする必要がある。コピー対象のデータは、停止したディスクノード内のデータと同じデータを管理する2重化相手のディスクノードから取得することができる。
なお、近年、ディスクノードで管理されるデータ量が大規模化している。そのため、1台のディスクノードが管理していたすべてのデータのコピーには長い時間を要する。すると、すべてのデータのコピーが完了する前に、停止していたディスクノードが復旧することもある。このような場合にまで、継続してすべてのデータのコピーを行うのは、非効率的である。そこで、復旧したディスクノードで管理していたデータのうち、障害による停止期間中に更新されていないデータについては、以後コピーを行わず、復旧したディスクノードで管理しているデータを有効にする技術が考えられている(例えば、特許文献1参照)。
特開2005−301594号公報
ところで、ディスクノードは、ソフトウェアのアップデート時には、機能の少なくとも一部が停止する。このとき、ソフトウェアのアップデート開始後に障害発生時と同様の復旧処理を行うこともできるが、その場合、機能が停止してから復旧が完了するまでデータの冗長性が損なわれる。そこで、ソフトウェアをアップデートする場合、事前にアップデート対象のディスクノードで管理しているデータを、他のディスクノードにコピーしておく。これにより、一時的にデータは3重化される。その後、1台のストレージノードを停止させ、ソフトウェアのアップデートを行う。このようにして、データの冗長性を維持したままソフトウェアのアップデートが可能となる。
なお、ソフトウェアのアップデートに伴う機能停止時間は、アップデート対象のソフトウェア種別や、アップデートの内容によって異なる。例えば、オペレーティングシステム(OS)の入れ替えを行う場合、OSや各種アプリケーションの再インストールに加え、各種環境設定を行う必要があり、作業に比較的長い時間を要する。一方、新バージョンのソフトウェアをインストールしておき、旧バージョンのソフトウェアの停止後に、新バージョンのソフトウェアを起動すればよい場合、短時間で作業が終了する。このようにアップデートの所要時間に長短があるにもかかわらず、従来は、アップデートの所要時間とは無関係に、3重化状態を経由することで、ソフトウェアアップデート時のデータの冗長性が維持されていた。
しかし、短時間で終了するソフトウェアのアップデートの場合にまでデータの3重化の処理を施すのは非効率的である。すなわち、データの3重化には、アップデート対象のディスクノードが管理するデータのすべてを他のディスクノードにコピーする必要がある。データのコピーを行う場合、コピー元のディスクノードでは大量のデータリードが発生し、処理負荷が増大すると共に、コピー先のディスクノードでは大量のデータライトが発生し、処理負荷が増大する。また、ネットワーク上には長い時間大量のデータ転送が発生し、ネットワークを介して転送されるデータ量が過大となり、データ転送効率が低下する。このようなシステムの処理負荷の増大は、外部からのディスクノードへのアクセス要求に対する応答遅延の原因となる。
本発明はこのような点に鑑みてなされたものであり、データの冗長性維持したままディスクノードのソフトウェアのアップデートする場合におけるシステム全体の処理能力の低下を抑制することができるソフトウェアアップデート管理プログラム、ソフトウェアアップデート管理装置、およびソフトウェアアップデート管理方法を提供することを目的とする。
上記課題を解決するために、複数のディスクノードで冗長性を持たせたデータ管理を行う分散ストレージシステムにおけるディスクノードのソフトウェアアップデート手順を管理するためのソフトウェアアップデート管理装置が提供される。このソフトウェアアップデート管理装置は、移行内容判断手段、移行パターン決定手段、およびアップデート手段を有する。
移行内容判断手段は、アップデート対象である対象ディスクノードのアップデート前のソフトウェアのソフトウェア名と版数とが対象ディスクノードの機能ごとに設定された移行前環境テーブルと、対象ディスクノードのアップデート後のソフトウェアのソフトウェア名と版数とが対象ディスクノードの機能ごとに設定された移行後環境テーブルとを記憶装置から読み出し、対象ディスクノードの機能ごとのアップデート前後におけるソフトウェア名と版数との推移を示す移行内容を判断する。移行パターン決定手段は、対象ディスクノードで管理しているデータの更新を禁止することでデータの冗長性を維持してソフトウェアアップデートを行う第1種移行パターンと、対象ディスクノードで管理しているデータを他のディスクノードにコピーすることでデータの冗長性を維持してソフトウェアのアップデートを行う第2種移行パターンとに分類される複数の移行パターンと、移行パターンを適用する移行内容との対応関係が設定された移行パターン決定テーブルを記憶装置から読み出し、移行内容判断手段により判断された移行内容と移行パターン決定テーブルとに基づいて、対象ディスクノードに適用する移行パターンを決定する。アップデート手段は、移行後環境テーブルを記憶装置から読み出し、移行パターン決定手段で決定された移行パターンに従って対象ディスクノードに対して指示を出し、対象ディスクノードの各機能を実行するソフトウェアを、移行後環境テーブルに設定されたソフトウェア名と版数とにアップデートする。
このようなソフトウェアアップデート管理装置によれば、移行内容判断手段により、対象ディスクノードの機能ごとの移行内容が判断される。次に、移行パターン決定手段により、対象ディスクノードに適用する移行パターンが決定される。そして、アップデート手段により、移行パターン決定手段で決定された移行パターンに従って対象ディスクノードに対して指示が出され、対象ディスクノードの各機能を実行するソフトウェアが、移行後環境テーブルに設定されたソフトウェア名と版数とにアップデートされる。
また、上記ソフトウェアアップデート管理装置と同様の機能をコンピュータに実行させるためのソフトウェアアップデート管理プログラムが提供される。さらに、上記ソフトウェアアップデート管理装置と同様の処理をコンピュータで実行するソフトウェアアップデート管理方法が提供される。
上記ソフトウェアアップデート管理装置では、少なくとも一部の移行内容のソフトウェアアップデートに対して第1種移行パターンを適用することで、システム全体の処理負荷の増加を低く抑えながら、データの冗長性を維持したままディスクノードのソフトウェアのアップデートが可能となる。
以下、本発明の実施の形態を図面を参照して説明する。
図1は、実施の形態の概要を示す図である。ソフトウェアアップデート管理装置1は、複数のディスクノード2,3,4,・・・で冗長性を持たせたデータ管理を行う分散ストレージシステムにおけるディスクノードのソフトウェアアップデート手順を管理する。ソフトウェアアップデート管理装置1は、オペレーティングシステムやアプリケーションソフトウェアのレベルアップやパッチ適用などのアップデートを実施するにあたって、データの完全2重化が損なわれることを防止するための機能を備えている。すなわち、ソフトウェアアップデート管理装置1は、記憶装置1a、移行内容判断手段1b、移行パターン決定手段1c、およびアップデート手段1dを有する。なお、図1の例では、記憶装置1aは、ソフトウェアアップデート管理装置1に内蔵されているが、ソフトウェアアップデート管理装置1にネットワークで接続された他のコンピュータが記憶装置1aを有していてもよい。
記憶装置1aには、移行前環境テーブル1aa、移行後環境テーブル1ab、移行パターン決定テーブル1acが格納されている。移行前環境テーブル1aaには、アップデート対象である対象ディスクノードのアップデート前のソフトウェアのソフトウェア名と版数とが対象ディスクノードの機能ごとに設定されている。移行後環境テーブル1abには、対象ディスクノードのアップデート後のソフトウェアのソフトウェア名と版数とが対象ディスクノードの機能ごとに設定されている。
移行パターン決定テーブル1acには、複数の移行パターンと、移行パターンを適用する移行内容との対応関係が設定されている。複数の移行パターンは、対象ディスクノードで管理しているデータの更新を禁止することでデータの冗長性を維持してソフトウェアアップデートを行う第1種移行パターンと、対象ディスクノードで管理しているデータを他のディスクノードにコピーすることでデータの冗長性を維持してソフトウェアのアップデートを行う第2種移行パターンとに分類される。例えば、移行パターン決定テーブル1acには、ソフトウェアのアップデートに要する時間が所定時間以下の移行内容に対して、第1種移行パターンに属する移行パターンを適用することが設定されており、ソフトウェアのアップデートに要する時間が所定時間を超える移行内容に対して、第2種移行パターンに属する移行パターンを適用することが設定されている。
なお、図1の例では、1つの記憶装置1aに移行前環境テーブル1aa、移行後環境テーブル1ab、移行パターン決定テーブル1acが格納されているが、移行前環境テーブル1aa、移行後環境テーブル1ab、移行パターン決定テーブル1acそれぞれが個別の記憶装置に格納されていてもよい。
移行内容判断手段1bは、移行前環境テーブル1aaと移行後環境テーブル1abとを記憶装置1aから読み出し、対象ディスクノードの機能ごとのアップデート前後におけるソフトウェア名と版数との推移を示す移行内容を判断する。
移行パターン決定手段1cは、移行パターン決定テーブル1acを記憶装置1aから読み出し、移行内容判断手段1bにより判断された移行内容と移行パターン決定テーブル1acとに基づいて、対象ディスクノードに適用する移行パターンを決定する。
アップデート手段1dは、移行後環境テーブル1abを記憶装置から読み出し、移行パターン決定手段1cで決定された移行パターンに従って対象ディスクノード2に対して指示を出し、対象ディスクノード2の各機能を実行するソフトウェアを、移行後環境テーブル1abに設定されたソフトウェア名と版数とにアップデートする。
このようなソフトウェアアップデート管理装置によれば、移行内容判断手段1bにより、対象ディスクノードの機能ごとの移行内容が判断される。次に、移行パターン決定手段1cにより、対象ディスクノードに適用する移行パターンが決定される。そして、アップデート手段1dにより、移行パターン決定手段1cで決定された移行パターンに従って対象ディスクノードに対して指示が出され、対象ディスクノードの各機能を実行するソフトウェアが、移行後環境テーブル1abに設定されたソフトウェア名と版数とにアップデートされる。
このように、移行パターン決定テーブル1acの内容に応じて移行パターンが決定されることで、移行内容に応じた適切な移行パターンを適用することができる。すなわち、移行パターン決定テーブル1acにおいて、短時間でアップデート可能な移行内容に対しては、第1種移行パターンを適用するように対応関係を設定しておき、アップデートに長時間を要する移行内容に対しては、第2種移行パターンを適用するように対応関係を設定しておく。これにより、短時間でアップデート可能な移行内容の場合、対象ディスクノードで管理しているデータの更新を禁止することでデータの冗長性を維持してソフトウェアアップデートが行われる。この場合、書き込みを禁止するだけでデータの冗長性を維持するため、ソフトウェアアップデートによるシステム全体に与える処理負荷が少なくて済む。
また、アップデートに長時間を要する意向内容の場合、対象ディスクノードで管理しているデータを他のディスクノードにコピーすることでデータの冗長性を維持してソフトウェアのアップデートが行われる。これにより、対象ディスクノードの機能が停止しても、データの冗長性が維持される。
このように、短時間でアップデート可能な場合には、一時的にデータの書き込みを禁止するだけで、ディスクノードのデータのコピーを行わない。その結果、冗長性を維持しつつ、効率的なソフトウェアのアップデートが可能となる。
ところで、複数のディスクノードにデータを格納する分散ストレージシステムでは、全体の運用を管理するための管理ノードが設けられる。この管理ノードに、図1に示したソフトウェアアップデート管理装置1の機能を組み込むことができる。そこで、管理ノードによってソフトウェアアップデート管理を行う分散ストレージシステムの例を用いて、本実施の形態の詳細を説明する。
図2は、本実施の形態の分散ストレージシステム構成例を示す図である。本実施の形態では、ネットワーク10を介して、複数のディスクノード110,120,130,210,220,230,310,320,330、制御ノード500、アクセスノード600,700、および管理ノード800が接続されている。ディスクノード110,120,130,210,220,230,310,320,330それぞれには、ストレージ装置111,121,131,211,221,231,311,321,331が接続されている。
各ストレージ装置111,121,131,211,221,231,311,321,331には、複数のハードディスク装置(HDD)が実装されている。各ストレージ装置111,121,131,211,221,231,311,321,331は、内蔵するHDDを用いたRAIDシステムである。
ディスクノード110,120,130,210,220,230,310,320,330は、例えば、IA(Intel Architecture)と呼ばれるアーキテクチャのコンピュータである。ディスクノード110,120,130,210,220,230,310,320,330は、接続されたストレージ装置111,121,131,211,221,231,311,321,331に格納されたデータを管理し、管理しているデータをネットワーク10経由で端末装置21,22,23に提供する。また、ディスクノード110,120,130,210,220,230,310,320,330は、冗長性を有するデータを管理している。すなわち、同一のデータが、少なくとも2つのディスクノードで管理されている。
制御ノード500は、ディスクノード110,120,130,210,220,230,310,320,330を管理する。例えば、制御ノード500は、管理ノード800から新たなリモート論理ボリュームの割当要求を受け取ると、新たなリモート論理ボリュームを定義し、その定義内容をディスクノード110,120,130,210,220,230,310,320,330やアクセスノード600,700に通知する。これにより、アクセスノード600,700から、新たに定義したリモート論理ボリュームを介したディスクノード110,120,130,210,220,230,310,320,330へのアクセスが可能となる。
アクセスノード600,700には、ネットワーク20を介して複数の端末装置21,22,23が接続されている。アクセスノード600,700には、ローカル論理ボリュームとリモート論理ボリュームが定義されている。そして、アクセスノード600,700は、端末装置21,22,23からのローカル論理ボリューム上でのデータのアクセス要求に応答して、リモート論理ボリュームによって定義されたディスクノード110,120,130,210,220,230,310,320,330で管理されているデータへアクセスする。
管理ノード800は、管理者が分散ストレージシステムの運用を管理するために使用するコンピュータである。管理ノード800では、ディスクノード110,120,130,210,220,230,310,320,330のソフトウェアの種別や版数を管理している。そして、管理ノード800は、ディスクノード110,120,130,210,220,230,310,320,330に実装されているソフトウェアのアップデートを管理する。
なお、本実施の形態では、各ディスクノード110,120,130,210,220,230,310,320,330が複数のクラスタグループに分類されている。図2の例では、ディスクノード110,120,130で1つのクラスタグループが構成され、クラスタグループの識別子「クラスタNo.1」が割り当てられている。また、ディスクノード210,220,230で1つのクラスタグループが構成され、クラスタグループの識別子「クラスタNo.2」が割り当てられている。同様に、ディスクノード310,320,330で1つのクラスタグループが構成され、クラスタグループの識別子「クラスタNo.3」が割り当てられている。
図3は、本実施の形態に用いる管理ノードのハードウェア構成例を示す図である。管理ノード800は、CPU(Central Processing Unit)801によって装置全体が制御されている。CPU801には、バス807を介してRAM(Random Access Memory)802、ハードディスクドライブ(HDD:Hard Disk Drive)803、グラフィック処理装置804、入力インタフェース805、および通信インタフェース806が接続されている。
RAM802は、管理ノード800の主記憶装置として使用される。RAM802には、CPU801に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM802には、CPU801による処理に必要な各種データが格納される。HDD803は、管理ノード800の二次記憶装置として使用される。HDD803には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置804には、モニタ11が接続されている。グラフィック処理装置804は、CPU801からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置がある。
入力インタフェース805には、キーボード12とマウス13とが接続されている。入力インタフェース805は、キーボード12やマウス13から送られてくる信号を、バス807を介してCPU801に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
通信インタフェース806は、ネットワーク10に接続されている。通信インタフェース806は、ネットワーク10を介して、他のノードとの間でデータの送受信を行う。
なお、図3では管理ノード800のハードウェア構成を示したが、ディスクノード110,120,130,210,220,230,310,320,330、制御ノード500、アクセスノード600,700も同様のハードウェア構成で実現することができる。
以上のようなハードウェア構成によって、分散ストレージシステムを実現することができる。分散ストレージシステムでは、端末装置21〜23に対して、仮想的なボリューム(以下、論理ボリュームと呼ぶ)として機能する。論理ボリュームは、クラスタグループごとに作成される。
図4は、論理ボリュームのデータ構造を示す図である。図4には、「クラスタNo.1」のクラスタグループに構成された論理ボリューム900を示している。論理ボリューム900には、「LVOL−A」という識別子(論理ボリューム識別子)が付与されている。また、ネットワーク経由で接続された3台のディスクノード110,120,130には、個々のディスクノードの識別のためにそれぞれ「SN−A」、「SN−B」、「SN−C」というノード識別子が付与されている。
各ディスクノード110,120,130が有するストレージ装置111,121,131それぞれにおいてRAID5の論理ディスクが構成されている。この論理ディスクは5つのスライスに分割され個々のディスクノード内で管理されている。
図4の例では、ストレージ装置111が有する記憶領域は、5つのスライス111a,111b,111c,111d,111eに分けられている。ストレージ装置121が有する記憶領域は、5つのスライス121a,121b,121c,121d,121eに分けられている。ストレージ装置131が有する記憶領域は、5つのスライス131a,131b,131c,131d,131eに分けられている。
なお、論理ボリューム900は、セグメント910,920,930,940という単位で構成される。セグメント910,920,930,940の記憶容量は、ストレージ装置111,121,131における管理単位であるスライスの記憶容量と同じである。例えば、スライスの記憶容量が1ギガバイトとするとセグメントの記憶容量も1ギガバイトである。論理ボリューム900の記憶容量はセグメント1つ当たりの記憶容量の整数倍である。例えば、セグメントの記憶容量が1ギガバイトならば、論理ボリューム900の記憶容量は4ギガバイトといったものになる。
セグメント910,920,930,940は、それぞれプライマリスライス911,921,931,941とセカンダリスライス912,922,932,942との組から構成される。同じセグメントに属するスライスは別々のディスクノードに属する。各スライスは、スライス管理情報によって管理される。スライス管理情報には、論理ボリューム識別子、セグメント情報、同じセグメントを構成するスライス情報、プライマリスライスかセカンダリスライスかを示すフラグなどが含まれる。
図4の例では、スライスの属性を識別するための識別子を、「P」または「S」のアルファベットと数字との組合せで示している。「P」はプライマリスライスであることを示している。「S」はセカンダリスライスであることを示している。アルファベットに続く数字は、何番目のセグメントに属するのかを表している。例えば、1番目のセグメント910のプライマリスライスが「P1」で示され、セカンダリスライスが「S1」で示される。
このような構造の論理ボリューム900の各プライマリスライスおよびセカンダリスライスが、ストレージ装置111,121,131内のいずれかのスライスに対応付けられる。例えば、セグメント910のプライマリスライス911は、ストレージ装置111のスライス111bに対応付けられ、セカンダリスライス912は、ストレージ装置121のスライス121bに対応付けられている。
そして、各ストレージ装置111,121,131では、自己のスライスに対応するプライマリスライスまたはセカンダリスライスのデータを記憶する。
図5は、分散ストレージシステムの各装置の機能を示すブロック図である。アクセスノード600は、論理ボリュームアクセス制御部610を有している。論理ボリュームアクセス制御部610は、端末装置21,22,23からの論理ボリューム900内のデータを指定したアクセス要求に応じて、指定されたデータを管理するディスクノードに対してデータアクセスを行う。具体的には、論理ボリュームアクセス制御部610は、アクセス対象のデータが記憶された論理ボリューム900内のセグメントを特定する。次に、論理ボリュームアクセス制御部610は、特定した論理ボリューム900のセグメントを構成するプライマリスライスに対応するディスクノードおよびそのディスクノード内のスライスを特定する。そして、論理ボリュームアクセス制御部610は、特定したディスクノードに対して、特定したスライスへのアクセス要求を出力する。
また、論理ボリュームアクセス制御部610は、ディスクノード110,120,130,・・・にアクセスするためのデータキャッシュ(アクセス対象のデータを一時的に記憶する記憶領域)を有している。リードキャッシュには、最近読み出したデータが格納される。論理ボリュームアクセス制御部610は、リードキャッシュに格納されたデータに対するリード要求であれば、該当データを管理しているディスクノードがアップデート中であっても、そのデータをリードキャッシュから取得できる。
アクセスノード700も論理ボリュームアクセス制御部710を有している。論理ボリュームアクセス制御部710の機能は、アクセスノード600の論理ボリュームアクセス制御部610と同様である。
制御ノード500は、論理ボリューム管理部510とスライス管理情報群記憶部520とを有している。
論理ボリューム管理部510は、ディスクノード110,120,130,・・・が有するストレージ装置111,121,131,・・・内のスライスを管理する。例えば、論理ボリューム管理部510は、システム起動時に、ディスクノード110,120,130,・・・に対してスライス管理情報取得要求を送信する。そして、論理ボリューム管理部510は、スライス管理情報取得要求に対して返信されたスライス管理情報を、スライス管理情報群記憶部520に格納する。
スライス管理情報群記憶部520は、ディスクノード110,120,130,・・・から収集されたスライス管理情報を記憶する記憶装置である。例えば、制御ノード500内のRAMの記憶領域の一部がスライス管理情報群記憶部520として使用される。
ディスクノード110は、データアクセス部112、データ管理部113、およびスライス管理情報記憶部114を有している。
データアクセス部112は、アクセスノード600からの要求に応答して、ストレージ装置111内のデータにアクセスする。具体的には、データアクセス部112は、アクセスノード600からデータのリード要求を受け取った場合、リード要求で指定されたデータをストレージ装置111から取得し、アクセスノード600に送信する。また、データアクセス部112は、アクセスノード600からデータのライト要求を受け取った場合、ライト要求に含まれるデータをストレージ装置111内に格納する。なお、ディスクノード110のデータ管理部113は、データアクセス部112によってライト要求に基づくデータの書き込みが行われた場合、データが書き込まれたスライス(プライマリスライス)に対応するセカンダリスライスを管理するディスクノードのデータ管理部と連携動作し、セカンダリスライス内のデータも更新する。
さらに、データ管理部113は、論理ボリューム管理部510からのスライス管理情報取得要求に応答して、スライス管理情報記憶部114に記憶されたスライス管理情報を論理ボリューム管理部510に対して送信する。
スライス管理情報記憶部114は、スライス管理情報を記憶する記憶装置である。例えば、RAM内の記憶領域の一部がスライス管理情報記憶部114として使用される。なお、スライス管理情報記憶部114に格納されるスライス管理情報は、システム停止時にはストレージ装置111内に格納され、システム起動時にスライス管理情報記憶部114に読み込まれる。
他のディスクノード120,130,・・・は、ディスクノード110と同様の機能を有している。すなわち、ディスクノード120は、データアクセス部122、データ管理部123、およびスライス管理情報記憶部124を有している。ディスクノード130は、データアクセス部132、データ管理部133、およびスライス管理情報記憶部134を有している。ディスクノード120,130,・・・内の各要素は、ディスクノード110内の同名の要素と同じ機能を有している。
管理ノード800は、複写元プログラム記憶部810とアップデート管理部820とを有している。複写元プログラム記憶部810は、ソフトウェアアップデート用の複写元のプログラムを記憶する記憶機能である。例えば、HDD803の記憶領域の一部が、複写元プログラム記憶部810として使用される。アップデート管理部820は、各ディスクノード110,120,130,・・・に実装されているソフトウェアの版数を管理している。そして、アップデート管理部820は、ソフトウェアをアップデートする際に、アップデートの所要時間に応じた手順でディスクノード110,120,130,・・・のソフトウェアをアップデートする。なお、図5では、関係線が複雑に交錯するのを避けるために、管理ノード800と各ディスクノード110,120,130,・・・とを接続する関係線は省略されている。
次に、分散ストレージシステムにおいて論理ボリュームを管理するために必要な情報について説明する。
図6は、ディスクノード内のスライス管理情報のデータ構造例を示す図である。スライス管理情報記憶部114には、スライス管理情報114aが格納されている。
スライス管理情報114aは、ストレージ装置111内のスライス単位に分割された格納領域に格納されたデータの管理情報が登録されたデータテーブルである。スライス管理情報114aには、ディスクノードID、スライスID、フラグ、論理ボリュームID、セグメントID、ペアのディスクノードID、およびペアのスライスIDの欄が設けられている。
ディスクノードIDの欄には、スライス管理情報114aを有しているディスクノード110のノード識別子が登録される。スライスIDの欄には、ストレージ装置111内の各スライスを一意に識別するためのスライス番号が設定される。フラグの欄には、スライスIDで示されるスライスに対応するリモート論理ボリューム内のスライスが、プライマリスライスかセカンダリスライスを示すフラグが設定される。図6の例では、プライマリスライスを「P」、セカンダリスライスを「S」で表している。
論理ボリュームIDの欄には、スライスIDで示されるスライスに対応するリモート論理ボリュームを示す論理ボリューム識別子が設定される。セグメントIDの欄には、スライスIDで示されるスライスに対応するリモート論理ボリューム内のセグメントを示すセグメント番号が設定される。
ペアのディスクノードIDの欄には、スライスIDで示されるスライスとペアとなるスライス(同一セグメントを構成するスライス)を格納するディスクノードのノード識別子が設定される。ペアのスライスIDの欄には、スライスIDで示されるスライスとペアとなるスライスをディスクノード内で一意に識別するためのスライス番号が設定される。
このようなスライス管理情報が、各ディスクノード110,120,130,210,220,230,310,320,330に格納されており、システム起動時に制御ノード500に送信される。制御ノード500では、各ディスクノード110,120,130,210,220,230,310,320,330から取得したスライス管理情報をスライス管理情報群記憶部520に格納する。
図7は、スライス管理情報群記憶部のデータ構造例を示す図である。スライス管理情報群記憶部520には、ディスクノード110,120,130,210,220,230,310,320,330それぞれから収集したスライス管理情報521,522,523,・・・が格納されている。各スライス管理情報521,522,523,・・・のデータ構造は、図6に示したとおりである。
このようなスライス管理情報群記憶部520に記憶されたスライス管理情報521,522,523,・・・のうち、プライマリスライスに関する情報(フラグの欄に「P」と設定されている情報)が、制御ノード500からアクセスノード600,700に渡される。その結果、アクセスノード600,700において、論理ボリュームを構成する各セグメントのプライマリスライスに割り当てられたディスクノード110,120,130,210,220,230,310,320,330のスライスを認識できる。
次に、管理ノード800が有する機能について詳細に説明する。
図8は、複写元プログラム記憶部のデータ構造例を示す図である。複写元プログラム記憶部810には、ディスクノード110,120,130,210,220,230,310,320,330に導入されるソフトウェアのプログラム811〜816が格納されている。図8の例では、クラスタ制御ソフトウェアの版数ごとのプログラム811〜813と、オペレーティングシステムのプログラム814〜816が格納されている。プログラム811は、「アプリA」というソフトウェアの版数「V2.0」のプログラムである。プログラム812は、「アプリA」というソフトウェアの版数「V2.1」のプログラムである。プログラム813は、「アプリA」というソフトウェアの版数「V2.2」のプログラムである。プログラム814は、「OSα」というソフトウェアの版数「V9.0」のプログラムである。プログラム815は、「OSβ」というソフトウェアの版数「V4.2」のプログラムである。プログラム816は、「OSβ」というソフトウェアの版数「V4.4」のプログラムである。
このような複写元プログラム記憶部810に格納されたプログラム811〜816を用いて、アップデート管理部820による管理下で、ディスクノード110,120,130,210,220,230,310,320,330のソフトウェアのアップデートが行われる。
次に、ソフトウェアのアップデート機能について説明する。
図9は、ソフトウェアのアップデート機能を示すブロック図である。アップデート管理部820は、移行前環境テーブル821、移行パターン決定テーブル822、所要時間テーブル823、メッセージ管理テーブル824、移行条件入力テーブル825、移行後環境テーブル生成部826、移行パターンテーブル生成部827、およびアップデート部828を有している。
移行前環境テーブル821は、各ディスクノード110,120,130,210,220,230,310,320,330に実装されているソフトウェア資源の情報が登録されたデータテーブルである。移行前環境テーブル821はHDD803に予め格納されており、アップデート管理部820の起動後、RAM802に読み込まれる。
移行パターン決定テーブル822は、ソフトウェアのアップデート内容に応じた移行パターンが登録されたデータテーブルである。移行パターンは、ソフトウェアのアップデート時に実行すべき処理の組合せパターンである。移行パターン決定テーブル822はHDD803に予め格納されており、アップデート管理部820の起動後、RAM802に読み込まれる。
所要時間テーブル823は、移行パターンごとの所要時間が登録されたデータテーブルである。所要時間テーブル823はHDD803に予め格納されており、アップデート管理部820の起動後、RAM802に読み込まれる。
メッセージ管理テーブル824は、ソフトウェアのアップデート時に利用者が使用する端末装置21,22,23に表示するメッセージが登録されたデータテーブルである。登録されたメッセージは、アップデート処理に伴う注意を促す内容を示す文字列である。メッセージ管理テーブル824はHDD803に予め格納されており、アップデート管理部820の起動後、RAM802に読み込まれる。
移行条件入力テーブル825は、ソフトウェアのアップデートを実行する際に、アップデート後のソフトウェア環境(移行条件)をクラスタグループごとに設定するためのデータテーブルである。移行条件入力テーブル825は、予めテンプレートとしてのデータ構造がHDD803に用意されている。そして、ソフトウェアのアップデートを行う場合、管理者からの操作入力に応じてテンプレートがRAM802に読み込まれ、エディタなどの編集機能によってアップデート後のソフトウェア環境が設定される。
移行後環境テーブル生成部826は、移行条件入力テーブル825に移行条件が設定されると、移行前環境テーブル821を参照し、移行後環境テーブル826aを生成する。移行後環境テーブル826aは、ソフトウェアアップデート後の各クラスタグループ内のディスクノードのソフトウェア環境が設定されたデータテーブルである。作成された移行後環境テーブル826aは、RAM802に格納される。
移行パターンテーブル生成部827は、移行後環境テーブル826aが作成されると、移行前環境テーブル821と移行後環境テーブル826aとに基づいて、移行内容を判断する。次に、移行パターンテーブル生成部827は、移行パターン決定テーブル822を参照し、移行内容に応じた移行パターンを決定する。そして、移行パターンテーブル生成部827は、移行パターンテーブル827aを生成する。移行パターンテーブル827aは、クラスタグループごとの移行パターンを登録したデータテーブルである。移行作成された移行パターンテーブル827aは、RAM802に格納される。なお、図1に示した移行内容判断手段1bと移行パターン決定手段1cとの機能は、移行パターンテーブル生成部827に含まれる。
アップデート部828には、各ディスクノード110,120,130,210,220,230,310,320,330がどのクラスタグループに属するのかを示すグループ情報が予め登録されている。例えば、HDD803内にグループ情報が予め格納されており、アップデート部828が処理を実行する際にそのグループ情報がRAM802に読み込まれる。そして、アップデート部828は、生成された移行パターンテーブル827aに設定されたクラスタグループごとの移行パターンに従って、各ディスクノード110,120,130,210,220,230,310,320,330に対するソフトウェアのアップデート指示を行う。なお、アップデート部828は、ソフトウェアのアップデート中に利用者の端末装置21,22,23にメッセージを表示する場合、メッセージ管理テーブル824からメッセージの文字列を取得し、端末装置21,22,23にメッセージを送信する。なお、図1に示したアップデート手段1dの機能は、アップデート部828に含まれる。
ディスクノード110は、更新エージェント116を有している。更新エージェント116は、管理ノード800のアップデート部828からの指示に従って、クラスタ制御ソフトウェア110aやOS115のプログラムをアップデートする。なお、クラスタ制御ソフトウェア110aには、データアクセス部112、データ管理部113、およびスライス管理情報記憶部114が含まれる。なお、更新エージェント116は、定期的に管理ノード800の複写元プログラム記憶部810を参照する。更新エージェント116は、複写元プログラム記憶部810内に新しいプログラムを検出すると、管理ノード800からダウンロードしてHDDに格納しておく。そして、更新エージェント116は、アップデート部828からの指示に従って、ダウンロードしておいたプログラムによるアップデート処理を行う。
なお、更新エージェント116は、OSのプログラムをダウンロードした場合、現在運用しているOSが導入されているパーティションとは別のパーティションに対して、ダウンロードしたプログラムを用いてOSを導入しておく。そして、更新エージェント116は、アップデート部828からの指示に従って、新たにOSを導入したパーティションからOSを起動する。これにより、OSを移行することができる。
次に、アップデート管理部820が予め有しているデータテーブルの内容について説明する。
図10は、移行前環境テーブルのデータ構造例を示す図である。移行前環境テーブル821には、クラスタNo.とアップデート前の環境との欄が設けられている。
クラスタNo.の欄には、クラスタグループの識別子が設定される。アップデート前の環境の欄には、対応するクラスタグループ内のディスクノードで動作しているソフトウェア資源が設定されている。
アップデート前の環境の欄は、クラスタ制御ソフトウェアとOSとの欄に分けられている。クラスタ制御ソフトウェアの欄には、さらにソフトウェア名と版数との欄が設けられており、それぞれの欄にディスクノードに実装されているクラスタ制御ソフトウェアの名称と版数とが設定される。OSの欄には、さらにソフトウェア名と版数との欄が設けられており、それぞれの欄にディスクノードに実装されているOSの名称と版数とが設定される。
図11は、移行パターン決定テーブルのデータ構造例を示す図である。移行パターン決定テーブル822には、移行パターン、クラスタ制御ソフトウェア、およびOSの欄が設けられている。移行パターンの欄には、移行パターンの識別子が設定される。
クラスタ制御ソフトウェアの欄には、移行前のクラスタ制御ソフトウェアと移行後のクラスタ制御ソフトウェアとの組合せパターンが設定される。具体的には、クラスタ制御ソフトウェアの欄は、移行前と移行後との欄に分けられている。移行前と移行後との欄には、それぞれソフトウェア名と版数との欄が設けられている。移行前の欄には、クラスタ制御ソフトウェアアップデート前のソフトウェア名と版数とが設定される。移行後の欄には、クラスタ制御ソフトウェアアップデート後のソフトウェア名と版数とが設定される。
クラスタ制御ソフトウェアの欄には、移行前のクラスタ制御ソフトウェアと移行後のクラスタ制御ソフトウェアとの組合せパターンが設定される。具体的には、クラスタ制御ソフトウェアの欄は、移行前と移行後との欄に分けられている。移行前と移行後との欄には、それぞれソフトウェア名と版数との欄が設けられている。移行前の欄には、クラスタ制御ソフトウェアアップデート前のソフトウェア名と版数とが設定される。移行後の欄には、クラスタ制御ソフトウェアアップデート後のソフトウェア名と版数とが設定される。
OSの欄には、移行前のOSと移行後のOSとの組合せパターンが設定される。具体的には、OSの欄は、移行前と移行後との欄に分けられている。移行前と移行後との欄には、それぞれソフトウェア名と版数との欄が設けられている。移行前の欄には、OSアップデート前のソフトウェア名と版数とが設定される。移行後の欄には、OSアップデート後のソフトウェア名と版数とが設定される。
クラスタ制御ソフトウェアの欄とOSの欄とに設定された移行前後のソフトウェア組合せパターンに示された移行内容(移行前後の環境変化)に合致するソフトウェアアップデートを行う場合、その移行内容に対応付けられた移行パターンが適用される。
図11の例では、3種類の移行パターンが定義されている。「PT1」は、クラスタ制御ソフトウェアの再起動のみでアップデートが完了する場合である。すなわち、OSがアップデート後のクラスタ制御ソフトウェアに対応していれば、「アプリA」の版数「V2.2」のプログラムをディスクノードにコピーしておき、「V2.1」のプログラム停止後に、直ちに「V2.2」のプログラムを起動することでアップデートが実施できる。
「PT2」は、OSのバージョンアップを伴う場合である。この場合、別パーティションに新しいOSを導入しておき、新しいOSによる再起動を行うこととなる。
「PT3」は、異なる種類のOSへの入れ替えを伴う場合である。異なるOSを用いてアップデート前と同様の機能を構築するには、アップデート対象のディスクノードをシステムから切り離す必要がある。そこで、「PT3」では、データの3重化後にディスクノードを切り離し、OS後にOSの入れ換えが行われる。
図12は、所要時間テーブルのデータ構造例を示す図である。所要時間テーブル823には、移行パターン、移行時処理内容、および所要時間の欄が設けられている。
移行パターンの欄には、移行パターンの識別子が設定される。移行処理内容の欄には、移行パターンごとのソフトウェアアップデート時の処理内容が設定される。所要時間の欄には、移行パターンに対応する処理内容の実行に要する時間の概算値が設定される。
図12の例では、移行パターン「PT1」の場合、移行時の処理内容として、クラスタ制御ソフトウェアの停止処理、書き込み禁止処理、および事前復旧処理が行われ、所要時間は3秒である。移行パターン「PT2」の場合、移行時の処理内容として、OSのリブート処理、書き込み禁止処理、および事前復旧処理が行われ、所要時間は6分である。移行パターン「PT3」の場合、移行時の処理内容として、3重化処理、ディスクノードの分散ストレージシステムからの切り離し処理、およびプログラムの入れ替え処理が行われ、所要時間は1時間である。
ここで、書き込み禁止処理は、ソフトウェアアップデート対象のディスクノードへのデータの書き込みを禁止する処理である。事前復旧処理は、障害発生時と同様の復旧処理である。ソフトウェアアップデート時の事前復旧処理では、クラスタ制御ソフトウェアがアップデート後に正常に起動できない場合を見越して障害発生前から障害復旧を開始する。アップデート後のクラスタ制御ソフトウェアが正常に起動された場合には、障害復旧処理は中止される。
3重化処理は、アップデート対象のディスクノードで管理されている全データを他のディスクノードにコピーし、一時的にデータの3重化状態を作り出す処理である。3重化処理後に対象のディスクノードを分散ストレージシステムから切り離すと、切り離されたディスクノードに格納されていたデータは、2重化状態に戻ることとなる。
ディスクノードの分散ストレージシステムからの切り離し処理は、該当するディスクノードが管理するスライスの論理ボリュームへの割当を解除する処理である。割当を解除することで、アクセスノード600,700からディスクノードへのアクセスがなくなる。
なお、移行パターン「PT1」、「PT2」は、書き込み禁止処理によってデータの冗長性を維持しており、図1で説明した第一種移行パターンに属する移行パターンである。また、移行パターン「PT3」は、3重化処理によってデータの冗長性を維持しており、図1で説明した第2種移行パターンに属する移行パターンである。
図13は、メッセージ管理テーブルのデータ構造例を示す図である。メッセージ管理テーブル824には、メッセージNo.、移行パターン、およびメッセージの欄が設けられている。メッセージNo.の欄には、メッセージの識別番号が設定される。移行パターンの欄には、対応するメッセージを適用する移行パターンが設定される。メッセージの欄には、端末装置21,22,23に送信するメッセージの内容を示す文字列が設定される。
以上のようなデータが予め登録された状態で、システムの管理者の管理ノード800への操作入力に基づいて、ディスクノード110,120,130,210,220,230,310,320,330のソフトウェアのアップデート処理が実行される。管理者は、まず管理ノード800の移行条件入力テーブル825に対して、クライアントグループごとの移行条件を入力する。
図14は、移行条件入力テーブルのデータ構造例を示す図である。移行条件入力テーブル825には、クラスタNo.、クラスタ制御ソフトウェア、およびOSの欄が設けられている。
クラスタNo.の欄には、クラスタグループの識別子が設定される。クラスタ制御ソフトウェアの欄には、ソフトウェア名と版数との欄が設けられており、それぞれにディスクノードに導入すべきクラスタ制御ソフトウェアのソフトウェア名と版数とが設定される。OSの欄には、ソフトウェア名と版数との欄が設けられており、それぞれにディスクノードに導入すべきOSのソフトウェア名と版数とが設定される。
このような移行条件入力テーブル825に対して管理者が移行条件を入力し、移行指示を管理ノード800に入力すると、アップデート管理部820によってソフトウェアの移行処理が開始される。
図15は、ソフトウェア移行処理の手順を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS11]移行後環境テーブル生成部826は、移行条件入力テーブル825で指定された移行条件に従って移行した場合の各ディスクノードの移行後の環境を示す移行後環境テーブル826aを生成する。この処理の詳細は後述する(図16参照)。
[ステップS12]移行パターンテーブル生成部827は、移行後環境テーブル生成部826で生成された移行後環境テーブル826aに応じた移行パターンテーブル827aを生成する。この処理の詳細は後述する(図18参照)。
[ステップS13]アップデート部828は、移行パターンテーブル生成部827で生成された移行パターンテーブル827aに設定された移行パターンに従って、各ディスクノード110,120,130,210,220,230,310,320,330のソフトウェアのアップデート処理を実行する。この処理の詳細は後述する(図20〜図23参照)。
次に、ソフトウェア移行処理の各ステップの処理を詳細に説明する。
図16は、移行後環境テーブル生成処理の手順を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。
[ステップS21]移行後環境テーブル生成部826は、移行条件入力テーブル825を参照し、クラスタNo.の欄に設定されている識別子のクラスタグループのうち、未選択のクラスタグループを1つ選択する。
[ステップS22]移行後環境テーブル生成部826は、ステップS21で選択したクラスタグループの情報を移行条件入力テーブル825から抽出し、移行後環境テーブル826aに設定する。
[ステップS23]移行後環境テーブル生成部826は、移行条件入力テーブル825に設定されているすべてのクラスタグループを選択したか否かを判断する。すべてのクラスタグループが選択済であれば、移行後環境テーブル生成処理が終了する。未選択のクラスタグループがあれば、処理がステップS21に進められる。
このようにして、移行後環境テーブル826aが生成される。
図17は、移行後環境テーブルのデータ構造例を示す図である。移行後環境テーブル826aには、クラスタNo.とアップデート後の環境との欄が設けられている。
クラスタNo.の欄には、クラスタグループの識別子が設定される。アップデート後の環境の欄には、対応するクラスタグループ内のディスクノードで動作しているソフトウェア資源が設定されている。
アップデート後の環境の欄は、クラスタ制御ソフトウェアとOSとの欄に分けられている。クラスタ制御ソフトウェアの欄には、さらにソフトウェア名と版数との欄が設けられており、それぞれの欄にディスクノードに実装するクラスタ制御ソフトウェアの名称と版数とが設定される。OSの欄には、さらにソフトウェア名と版数との欄が設けられており、それぞれの欄にディスクノードに実装されるOSの名称と版数とが設定される。
このような移行後環境テーブル826aに基づいて、移行パターンテーブル生成部827によって移行パターンテーブル827aが生成される。
図18は、移行パターンテーブル生成処理の手順を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。
[ステップS31]移行パターンテーブル生成部827は、移行後環境テーブル826aを参照し、クラスタNo.の欄に識別子が設定されている未選択のクラスタグループを1つ選択する。
[ステップS32]移行パターンテーブル生成部827は、ステップS31で選択したクラスタグループの移行前後の環境(ソフトウェア名と版数)を取得する。具体的には、移行パターンテーブル生成部827は、クラスタNo.を検索キーとして、移行前環境テーブル821と移行後環境テーブル826aとから、選択されたクラスタグループに関する情報を取得する。
[ステップS33]移行パターンテーブル生成部827は、移行前後の環境に対応する移行パターンを判定する。具体的には、移行パターンテーブル生成部827は、移行パターン決定テーブル822から、移行前後の環境に合致する移行パターンを検索する。そして、移行パターンテーブル生成部827は、検索でヒットした情報の移行パターンの識別子を取得する。
[ステップS34]移行パターンテーブル生成部827は、所要時間テーブル823を参照し、ステップS33で取得した移行パターンの識別子に対応する所要時間を取得する。
[ステップS35]移行パターンテーブル生成部827は、移行パターンテーブル827aに、クラスタグループの識別子、移行パターンの識別子、および所要時間の各情報を登録する。
[ステップS36]移行パターンテーブル生成部827は、ステップS34で取得した所要時間が1分以内か否かを判断する。所要時間が1分以内であれば、処理がステップS37に進められる。所要時間が1分より長ければ、処理がステップS38に進められる。
[ステップS37]移行パターンテーブル生成部827は、所要時間が1分以内の場合、移行パターンテーブル827aのステップS35で登録した情報に対して、顧客通知フラグとして「OFF」を設定する。その後、処理がステップS41に進められる。
[ステップS38]移行パターンテーブル生成部827は、所要時間が1分より大きい場合、所要時間が15分以下か否かを判断する。所要時間が15分以下であれば、処理がステップ39に進められる。所要時間が15分より長ければ、処理がステップS40に進められる。
[ステップS39]移行パターンテーブル生成部827は、所要時間が1分より長く、15以下の場合、移行パターンテーブル827aのステップS35で登録した情報に対して、顧客通知フラグとして「ON」を設定すると共に、メッセージの識別番号「M1」を設定する。その後、処理がステップS41に進められる。
[ステップS40]移行パターンテーブル生成部827は、所要時間が15分より長い場合、移行パターンテーブル827aのステップS35で登録した情報に対して、顧客通知フラグとして「ON」を設定すると共に、メッセージの識別番号「M2」を設定する。
[ステップS41]移行パターンテーブル生成部827は、すべてのクラスタグループを選択したか否かを判断する。すべてのクラスタグループが選択されていれば、移行パターンテーブル生成処理が終了する。未選択のクラスタグループがあれば、処理がステップS31に進められる。
このようにして、移行パターンテーブル827aが生成される。
図19は、移行パターンテーブルのデータ構造例を示す図である。移行パターンテーブル827aには、クラスタNo.、移行パターン、所要時間、顧客通知フラグ、およびメッセージNo.の欄が設けられている。
クラスタNo.の欄には、ソフトウェアのアップデート対象となるクラスタグループの識別子が設定される。移行パターンの欄には、対応するクラスタグループに属するディスクノードに適用される移行パターンが設定される。所要時間の欄には、適用される移行パターンに従ったソフトウェアのアップデートに要する時間が設定される。
顧客通知フラグの欄には、ソフトウェアのアップデート時に顧客にメッセージを通知するか否かが設定される。顧客にメッセージを通知する場合、顧客通知フラグは「ON」であり、顧客にメッセージを通知しない場合、顧客通知フラグは「OFF」である。
このような移行パターンテーブル827aが作成されると、アップデート部828によってディスクノードのソフトウェアアップデート処理が行われる。
図20は、アップデート処理の手順を示すフローチャートである。以下、図20に示す処理をステップ番号に沿って説明する。
[ステップS51]アップデート部828は、移行パターンテーブル827aに識別子が設定されているクラスタグループの中から、未選択のクラスタグループを1つ選択する。
[ステップS52]アップデート部828は、移行パターンテーブル827aを参照し、選択したクラスタグループに適用する移行パターンが「PT1」か否かを判断する。適用する移行パターンが「PT1」であれば、処理がステップS53に進められる。適用する移行パターンが「PT1」以外であれば、処理がステップS54に進められる。
[ステップS53]アップデート部828は、移行パターン「PT1」によるアップデート処理を実行する。この処理の詳細は後述する(図21参照)。その後、処理がステップS57に進められる。
[ステップS54]アップデート部828は、移行パターンテーブル827aを参照し、選択したクラスタグループに適用する移行パターンが「P2」か否かを判断する。適用する移行パターンが「PT2」であれば、処理がステップS55に進められる。適用する移行パターンが「PT2」以外であれば、処理がステップS56に進められる。
[ステップS55]アップデート部828は、移行パターン「PT2」によるアップデート処理を実行する。この処理の詳細は後述する(図22参照)。その後、処理がステップS57に進められる。
[ステップS56]アップデート部828は、移行パターン「PT3」によるアップデート処理を実行する。この処理の詳細は後述する(図23参照)。
その後、処理がステップS57に進められる。
[ステップS57]アップデート部828は、移行パターンテーブル827aに設定されているすべてのクラスタグループに対するソフトウェアのアップデートが完了したか否かを判断する。すべてのクラスタグループのアップデートが完了した場合、アップデート処理が終了する。アップデートが未完了のクラスタグループがある場合、処理がステップS51に進められる。
次に、移行パターンごとのアップデート処理について説明する。
図21は、移行パターン「PT1」によるアップデート処理の手順を示すフローチャートである。以下、図21に示す処理をステップ番号に沿って説明する。
[ステップS61]アップデート部828は、書き込み禁止処理を行う。具体的には、アップデート部828は、アップデート対象のクラスタグループに属する各ディスクノードに対して、書き込み禁止要求を送信する。書き込み禁止要求を取得したディスクノードでは、書き込み禁止が解除されるまで、ストレージ装置へのデータの書き込みを停止する。
[ステップS62]アップデート部828は、ディスクノードで運用されている旧クラスタ制御ソフトウェアを停止する。具体的には、アップデート部828は、ディスクノードに対して、クラスタ制御ソフトウェアの停止要求を送信する。その停止要求を受け取ったディスクノードは、クラスタ制御ソフトウェアを停止する。
[ステップS63]アップデート部828は、制御ノード500に対して事前復旧処理の開始指示を送信する。これにより、制御ノード500において事前復旧処理が開始される。事前復旧処理を行っておくことで、新クラスタ制御ソフトウェアの起動に失敗した場合に迅速な復旧が可能となる。
なお、制御ノード500では、アップデート部828からの指示がなくても、ディスクノードからのハードビート(起動していることを通知するために定期的に送信される信号)が所定期間途絶えると、自動的にそのディスクノードが管理するデータの事前復旧処理が開始される。本実施の形態では、アップデート部828から指示で強制的に事前復旧処理を開始させることで、ハートビートが途絶えたことを検出するのを待たずに、迅速に事前復旧処理を開始することができる。
[ステップS64]アップデート部828は、ディスクノードで新しい版数のクラスタ制御ソフトウェアを起動させる。具体的には、アップデート部828は、ディスクノードに対して、移行後環境テーブル826aを参照し、移行後のクラスタ制御ソフトウェアのソフトウェア名と版数とを取得する。そして、アップデート部828は、移行後のソフトウェア名と版数とを指定して、ディスクノードに対してクラスタ制御ソフトウェアの起動要求を送信する。起動要求を受け取ったディスクノードは、指定されたクラスタ制御ソフトウェアの指定された版数のプログラムを起動する。プログラムの起動と共に、書き込み禁止処理は解除される。その後、移行パターン「PT1」によるアップデート処理が終了する。
図22は、移行パターン「PT2」によるアップデート処理の手順を示すフローチャートである。以下、図22に示す処理をステップ番号に沿って説明する。
[ステップS71]アップデート部828は、新OSがディスクノードに準備完了しているか否かを判断する。具体的には、アップデート部828は、移行後環境テーブル826aを参照し、移行後のOSのソフトウェア名と版数とを取得する。そして、アップデート部828は、ディスクノードに対して、新OSの準備の有無を問い合わせる。ディスクノードは、問い合わせに応じて、移行後のソフトウェア名と版数とに相当するOSが、現在動作しているOSが導入されたパーティションとは別のパーティションに導入されるか否かを応答する。アップデート部828は、新OSが別バーティションに導入されていれば、新OS準備済と判断する。新OSが準備済であれば、処理がステップS73に進められる。新OSが準備済でなければ、処理がステップS72に進められる。
[ステップS72]アップデート部828は、現在動作しているOSが導入されたパーティションとは別のパーティションに、移行後のOSを導入する。具体的には、アップデート部828は、新OSの導入をディスクノードに指示する。ディスクノードでは、アップデート部828からの指示に応じて新OSを導入する。
[ステップS73]アップデート部828は、移行パターンテーブル827aを参照し、アップデート対象のクラスタグループに対する顧客通知フラグがONか否かを判断する。顧客通知フラグがONであれば、処理がステップS74に進められる。顧客通知フラグがOFFであれば、処理がステップS75に進められる。なお、移行パターンが「PT2」でありながら顧客通知フラグがOFFの場合とは、所要時間テーブル823において移行パターン「PT2」の所要時間の値が1分以下に設定されていたときである。例えば、ディスクノードに対して機能を制限したOSを導入する場合、OSのリブートを短時間で行うことも可能である。その場合、移行パターン「PT2」であっても、アップデートの所要時間が1分以内となることもある。
[ステップS74]顧客通知フラグがONであれば、アップデート部828は、停止メッセージを端末装置21〜23に送信する。具体的には、アップデート部828は、移行パターンテーブル827aを参照し、メッセージの識別番号を取得する。次に、アップデート部828は、メッセージ管理テーブル824を参照し、メッセージの識別番号に対応するメッセージを取得する。そして、アップデート部828は、アクセスノード600,700経由で、各端末装置21〜23に対して取得したメッセージを送信する。図13の例であれば、所定時間データの書き込みが禁止される旨のメッセージが送信される。
[ステップS75]アップデート部828は、書き込み禁止処理を行う。具体的には、アップデート部828は、アップデート対象のクラスタグループに属する各ディスクノードに対して、書き込み禁止要求を送信する。書き込み禁止要求を取得したディスクノードでは、書き込み禁止が解除されるまで、ストレージ装置へのデータの書き込みを停止する。
[ステップS76]アップデート部828は、ディスクノードで運用されている旧クラスタ制御ソフトウェアを停止する。具体的には、アップデート部828は、ディスクノードに対して、クラスタ制御ソフトウェアの停止要求を送信する。その停止要求を受け取ったディスクノードは、クラスタ制御ソフトウェアを停止する。
[ステップS77]アップデート部828は、制御ノード500に対して事前復旧処理の開始指示を送信する。これにより、制御ノード500において事前復旧処理が開始される。
[ステップS78]アップデート部828は、新OSで再起動を行う。具体的には、アップデート部828は、ディスクノードに対して、新OSでの再起動を指示する。すると、ディスクノードは、次に起動するときのOSの読み込み先(ブート先)として、新OSを導入したパーティションを設定する。その後、ディスクノードは、現在動作しているOSにおいて、再起動の命令を実行する。すると、ディスクノードでは、現在動作しているOSが停止(シャットダウン)した後、新たなOSが起動される。
[ステップS79]アップデート部828は、ディスクノードで新しい版数のクラスタ制御ソフトウェアを起動する。具体的には、アップデート部828は、ディスクノードに対して、移行後環境テーブル826aを参照し、移行後のクラスタ制御ソフトウェアのソフトウェア名と版数とを取得する。そして、アップデート部828は、移行後のソフトウェア名と版数とを指定して、ディスクノードに対してクラスタ制御ソフトウェアの起動要求を送信する。起動要求を受け取ったディスクノードは、指定されたクラスタ制御ソフトウェアの指定された版数のプログラムを起動する。プログラムの起動と共に、書き込み禁止処理は解除される。その後、移行パターン「PT2」によるアップデート処理が終了する。
図23は、移行パターン「PT3」によるアップデート処理の手順を示すフローチャートである。以下、図23に示す処理をステップ番号に沿って説明する。
[ステップS81]アップデート部828は、移行パターンテーブル827aを参照し、アップデート対象のクラスタグループに対する顧客通知フラグがONか否かを判断する。顧客通知フラグがONであれば、処理がステップS82に進められる。顧客通知フラグがOFFであれば、処理がステップS83に進められる。なお、移行パターンが「PT3」でありながら顧客通知フラグがOFFの場合とは、管理者がメッセージの通知は不要と判断し、移行パターンテーブル827aの顧客通知フラグをOFFに書き換えた場合である。移行パターンが「PT3」の場合、3重化処理を行うため、ユーザへのサービスが停止することはない。そのため、管理者が、端末装置21〜23に対してメッセージを送信しないという選択をすることも可能である。
[ステップS82]顧客通知フラグがONであれば、アップデート部828は、停止メッセージを端末装置21〜23に送信する。具体的には、アップデート部828は、移行パターンテーブル827aを参照し、メッセージの識別番号を取得する。次に、アップデート部828は、メッセージ管理テーブル824を参照し、メッセージの識別番号に対応するメッセージを取得する。そして、アップデート部828は、アクセスノード600,700経由で、各端末装置21〜23に対して取得したメッセージを送信する。図13の例であれば、所定時間処理能力が低下する旨のメッセージが送信される。
[ステップS83]アップデート部828は、ソフトウェアのアップデート対象のディスクノードを指定して、制御ノード500に対して3重化処理を指示する。3重化処理の指示を受けた制御ノード500は、アップデート対象のディスクノードで管理されているデータを、同一クラスタグループに属する他のディスクノードにコピーする。コピーが完了すると、制御ノード500は、コピーしたデータが格納されたスライスを論理ボリュームに割り当て、アップデート対象のディスクノードで管理されているスライスの割り当てを解除する。この割り当ての変更に伴って、制御ノード500は、スライス管理情報群記憶部520内のスライス管理情報を更新し、更新されたスライス管理情報をアクセスノード600,700に送信する。このように3重化状態を経た後、アップデート対象のディスクノードをシステムから切り離す(セグメントへの割当対象外とする)。これにより、アップデート対象のディスクノードに格納されていたデータは、システム上二重化状態となる。
[ステップS84]アップデート部828は、ソフトウェアのアップデート対象のディスクノードに対して旧OSの停止を指示する。指示を受け取ったディスクノードは、OSを停止させる。
[ステップS85]アップデート部828は、遠隔操作によりディスクノードに対して新OSを導入する。なお、遠隔操作でのOSの導入ができない場合は、管理者がディスクノードに直接操作入力を行い、OSの導入作業を行う。
[ステップS86]アップデート部828は、ディスクノードに対してOSの起動を指示する。すると、ディスクノードが新OSを起動する。この際アップデートしたディスクノードのストレージ装置(RAID)を初期化する。
[ステップS87]アップデート部828は、ディスクノードで新しい版数のクラスタ制御ソフトウェアを起動させる。具体的には、アップデート部828は、ディスクノードに対して、移行後環境テーブル826aを参照し、移行後のクラスタ制御ソフトウェアのソフトウェア名と版数とを取得する。そして、アップデート部828は、移行後のソフトウェア名と版数とを指定して、ディスクノードに対してクラスタ制御ソフトウェアの起動要求を送信する。起動要求を受け取ったディスクノードは、指定されたクラスタ制御ソフトウェアの指定された版数のプログラムを起動する。プログラムの起動と共に、書き込み禁止処理は解除される。この後、アップデート部828は、制御ノード500にデータの再配置を指示し、移行パターン「PT3」によるアップデート処理が終了する。
データの再配置は、データアクセスが効率的となるように、論理ディスクの各セグメントに割り当てるスライスを変更する処理である。すなわち、論理ディスクのセグメントに割り当てられたスライスの属するディスクノードに偏りがあると、特定のディスクノードに対してアクセスが集中する。そのため、データアクセスの際の応答遅延が発生しやすくなる。3重化を経由したソフトウェアアップデート直後は、アップデート対象のディスクノードのスライスはセグメントに割り当てられていない。そのため、各ディスクノード110,120,130,・・・における論理ディスクに割り当てられたスライスの数が、ディスクノード間で均等となるように、データの再配置が行われる。
具体的には、データの再配置の指示を受け取った制御ノード500では、論理ボリューム管理部510が、論理ボリュームのセグメントへのセグメントの割当関係を判断する。その際、論理ボリュームへの割当対象として、各ディスクノード110,120,130,・・・のスライスを均等に選択する。そして、論理ボリューム管理部510は、判断した割当関係となるように、各ディスクノード110,120,130,・・・に対してデータの再配置を指示する。ディスクノード110,120,130,・・・は互いにデータの受け渡し、再配置後の割当に応じたデータをスライスに格納する。その後、各ディスクノード110,120,130,・・・、制御ノード500、およびアクセスノード600,700のスライス管理情報が更新される。このような再配置を行うことで、移行パターン「PT3」によるソフトウェアアップデート後においても、効率的なデータアクセスが可能となる。
なお、図23に示した処理は、クラスタグループに属するディスクノードに対して順番に行われる。順番に処理を実行することで、3重化の際のデータコピー処理が重複して発生するのを防止できる。また、クラスタグループ内の複数のディスクノードのOSが同時期に停止することも防止できる。
以上のようにして、ソフトウェアのアップデート時の処理内容に応じた移行パターンを定義しておくことで、短時間でアップデートが可能な場合にはデータの3重化を行わなくて済む。その結果、ソフトウェアのアップデートを短時間で終了させることができる。
ここで、事前復旧処理について説明する。
図24は、事前復旧処理の概要を示す図である。事前復旧処理は、ソフトウェアのアップデートにおいて新しいソフトウェアの再起動に失敗する場合を想定して、予防的に実行される復旧処理である。
第1の状態[ST1]は、ソフトウェアのアップデート開始前のデータ配置を示している。この配置の内容は、図4に示したとおりである。
第2の状態[ST2]は、ソフトウェアのアップデートのためにディスクノード110の機能が停止した状態を示している。ディスクノード110の機能が停止したことにより、ディスクノード110に接続されたストレージ装置111に格納されているデータの復旧処理が開始される。
具体的には、制御ノード500が、停止したディスクノード内に存在するスライスデータを特定し、他の正常ディスクノード内に存在するペアとなるスライスデータを探す。そして、制御ノード500は、該当するデータを管理するディスクノードに対して、別のディスクノード(停止したディスクノードの除く)へのコピーを指示する。図24の例では、1番目のセグメントのプライマリスライス「P1」、2番目のセグメントのセカンダリスライス「S2」、および4番目のセグメントのプライマリスライス「P4」の復旧が必要である。そこで、ストレージ装置131のスライス131aからストレージ装置121のスライス121cに、4番目のセグメントのデータがコピーされ、ストレージ装置121のスライス121bからストレージ装置131のスライス131bに、1番目のセグメントのデータがコピーされる。そして、2番目のセグメントのデータをコピーする前に、ディスクノード110が復帰したものとする。
第3の状態[ST3]は、ディスクノード110復帰後の状態を示している。ディスクノード110が正常に復帰した場合、ディスクノード110が有するディスク装置111に格納されているデータが有効となる。事前復旧処理によってコピーされたデータの格納領域は解放され、該当領域に格納されたデータは無効となる。
このように、アップデートを実施することでデバイスが一時停止してリカバリ処理が発生するが、アップデートが完了することによりディスクノード110が復帰すると、リカバリ処理は終了する。もしディスクノード110が復帰できなかった場合、復旧処理が継続される。この場合、ディスクノード110が復帰できないことが判明してから復旧処理を開始する場合にくらべ、復旧までの時間が短縮される。
また、事前復旧処理を行っていれば、データの冗長性が損なわれる時間を短くすることができる。すなわち、ソフトウェアアップデート中にコピーが完了したデータは、コピー後は2重化が保たれており、データの信頼性が維持できる。
なお、本実施の形態では、事前復旧処理が実行される場合には、データの書き込み禁止処理が行われている。そのため、データの書き込みを考慮せずに事前復旧処理を実施することができ、処理を簡略化することができる。すなわち、データの書き込みを許可した状態で事前復旧処理を行うには、以下のような処理が余計に必要となる。
各ディスクノードにおいて、管理しているスライスの更新状況を管理する。更新の状況は、各ディスクノードに設定された更新カウンタで判断する。更新カウンタとしては、例えば、シリアルナンバを用いることができる。更新カウンタとしてシリアルナンバを用いた場合、各ディスクノードは、スライスのデータが更新される度に、シリアルナンバを1ずつ加算する。同一セグメントを構成するスライス(プライマリスライスとセカンダリスライス)のデータの更新は同じ回数なので、通常の動作中はセグメントを構成する2つのスライスでシリアスナンバは一致する。
しかし、停止中のディスクノードに格納されているデータに対する更新処理が行われると、ペアとなるスライスのデータのみが更新され、更新カウンタがカウントアップされる。その後、停止していたディスクノードが復帰すると、復帰したディスクノードが管理するスライスの更新カウンタと、そのスライスとペアとなる他のディスクノードで管理されているスライスの更新カウンタとは異なる値となる。従って、これらの更新カウンタを比較することで、データの更新の有無を判定することができる。
そこで、停止していたディスクノードが復帰すると、そのディスクノードが管理するスライスの更新カウンタと、ペアとなるスライスの更新カウンタとを比較して、更新の有無が判定される。未コピーのデータが未更新であれば、コピーは中止となる。未コピーのデータが更新されていれば、更新されたデータをコピーして2重化される。既コピーのデータが未更新であれば、ディスクノード110が有するストレージ装置111内のデータが有効とされる。そのため、ストレージ装置121のスライス121cの領域は開放される(コピーされたデータは無効となる)。既コピーのデータが更新されていれば、事前復旧処理でコピーしたデータが有効とされる。そのため、ストレージ装置111のスライス111bの領域は開放される(格納されていたデータは無効となる)。
このように、データの書き込みを禁止せずに事前復旧処理を行うには、データの更新管理(更新カウンタの管理、およびディスクノード復帰後のデータの更新の有無判断)が必要となる。データの書き込みを禁止していれば、これらの処理を行わずに済み、事前復旧処理の処理効率が向上する。
なお、上記の実施の形態では、管理ノード800がアップデート管理部820を有しているが、アップデート管理部820の機能を制御ノード500内に設けることもできる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、管理ノードや制御ノードが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
実施の形態の概要を示す図である。 本実施の形態の分散ストレージシステム構成例を示す図である。 本実施の形態に用いる管理ノードのハードウェア構成例を示す図である。 論理ボリュームのデータ構造を示す図である。 分散ストレージシステムの各装置の機能を示すブロック図である。 ディスクノード内のスライス管理情報のデータ構造例を示す図である。 スライス管理情報群記憶部のデータ構造例を示す図である。 複写元プログラム記憶部のデータ構造例を示す図である。 ソフトウェアのアップデート機能を示すブロック図である。 移行前環境テーブルのデータ構造例を示す図である。 移行パターン決定テーブルのデータ構造例を示す図である。 所要時間テーブルのデータ構造例を示す図である。 メッセージ管理テーブルのデータ構造例を示す図である。 移行条件入力テーブルのデータ構造例を示す図である。 ソフトウェア移行処理の手順を示すフローチャートである。 移行後環境テーブル生成処理の手順を示すフローチャートである。 移行後環境テーブルのデータ構造例を示す図である。 移行パターンテーブル生成処理の手順を示すフローチャートである。 移行パターンテーブルのデータ構造例を示す図である。 アップデート処理の手順を示すフローチャートである。 移行パターンPT1によるアップデート処理の手順を示すフローチャートである。 移行パターンPT2によるアップデート処理の手順を示すフローチャートである。 移行パターンPT3によるアップデート処理の手順を示すフローチャートである。 事前復旧処理の概要を示す図である。
符号の説明
1 ソフトウェアアップデート管理装置
1a 記憶装置
1aa 移行前環境テーブル
1ab 移行後環境テーブル
1ac 移行パターン決定テーブル
1b 移行内容判断手段
1c 移行パターン決定手段
1d アップデート手段
2,3,4,・・・ ディスクノード

Claims (10)

  1. 複数のディスクノードで冗長性を持たせたデータ管理を行う分散ストレージシステムにおける前記ディスクノードのソフトウェアアップデート処理をコンピュータに実行させるソフトウェアアップデート管理プログラムであって、
    前記コンピュータを、
    アップデート対象である対象ディスクノードのアップデート前のソフトウェアのソフトウェア名と版数とが前記対象ディスクノードの機能ごとに設定された移行前環境テーブルと、前記対象ディスクノードのアップデート後のソフトウェアのソフトウェア名と版数とが前記対象ディスクノードの機能ごとに設定された移行後環境テーブルとを記憶装置から読み出し、前記対象ディスクノードの機能ごとのアップデート前後におけるソフトウェア名と版数との推移を示す移行内容を判断する移行内容判断手段、
    前記対象ディスクノードで管理しているデータの更新を禁止することでデータの冗長性を維持してソフトウェアアップデートを行う第1種移行パターンと、前記対象ディスクノードで管理しているデータを他の前記ディスクノードにコピーすることでデータの冗長性を維持してソフトウェアのアップデートを行う第2種移行パターンとに分類される複数の移行パターンと、移行パターンを適用する移行内容との対応関係が設定された移行パターン決定テーブルを記憶装置から読み出し、前記移行内容判断手段により判断された移行内容と前記移行パターン決定テーブルとに基づいて、前記対象ディスクノードに適用する移行パターンを決定する移行パターン決定手段、
    前記移行後環境テーブルを記憶装置から読み出し、前記移行パターン決定手段で決定された移行パターンに従って前記対象ディスクノードに対して指示を出し、前記対象ディスクノードの各機能を実行するソフトウェアを、前記移行後環境テーブルに設定されたソフトウェア名と版数とにアップデートするアップデート手段、
    として機能させるソフトウェアアップデート管理プログラム。
  2. 前記移行前環境テーブルには、ソフトウェアアップデート前のクラスタ制御機能とオペレーティングシステムとに関するソフトウェアのソフトウェア名と版数とが設定されており、前記移行後環境テーブルには、ソフトウェアアップデート前のクラスタ制御機能とオペレーティングシステムとに関するソフトウェア名と版数とが設定されていることを特徴とする請求項1記載のソフトウェアアップデート管理プログラム。
  3. 前記移行パターン決定テーブルには、オペレーティングシステムのソフトウェアが変更される移行内容の場合には、前記第2種移行パターンに属する移行パターンを適用することが設定されていることを特徴とする請求項1記載のソフトウェアアップデート管理プログラム。
  4. 前記移行パターン決定テーブルには、オペレーティングシステムのソフトウェアが同一のまま、オペレーティングシステムの版数が更新される移行内容の場合には、前記第1種移行パターンに属する移行パターンを適用することが設定されていることを特徴とする請求項1記載のソフトウェアアップデート管理プログラム。
  5. 前記移行パターン決定テーブルには、前記第1種移行パターンに属する移行パターンが複数設定されていることを特徴とする請求項1記載のソフトウェアアップデート管理プログラム。
  6. 前記移行パターン決定テーブルには、前記第1種移行パターンに属する移行パターンとして、オペレーティングシステムのリブートを伴う移行パターンと、オペレーティングシステムのリブートを伴わない移行パターンとが設定されていることを特徴とする請求項5記載のソフトウェアアップデート管理プログラム。
  7. 前記移行パターン決定テーブルには、前記第1種移行パターンに属する移行パターンとして、ソフトウェアアップデート処理と並行して、前記対象ディスクノードで管理されているデータの復旧処理を開始し、アップデートされたソフトウェアが正常に起動できた場合には、ソフトウェアアップデート中に更新されていない他データについての復旧処理を停止する移行パターンが含まれていることを特徴とする請求項1記載のソフトウェアアップデート管理プログラム。
  8. 前記アップデート手段は、移行パターンごとの所要時間が設定された所要時間テーブルを記憶装置から取得し、前記対象ディスクノードに適用する移行パターンの所要時間が、所定時間を超えていれば前記対象ディスクノードへのアクセス要求を出力する端末装置に対してアップデート処理に伴う注意を促すメッセージを送信することを特徴とする請求項1記載のソフトウェアアップデート管理プログラム。
  9. 複数のディスクノードで冗長性を持たせたデータ管理を行う分散ストレージシステムにおける前記ディスクノードのソフトウェアアップデート処理を実行するソフトウェアアップデート管理装置であって、
    アップデート対象である対象ディスクノードのアップデート前のソフトウェアのソフトウェア名と版数とが前記対象ディスクノードの機能ごとに設定された移行前環境テーブルと、前記対象ディスクノードのアップデート後のソフトウェアのソフトウェア名と版数とが前記対象ディスクノードの機能ごとに設定された移行後環境テーブルとを記憶装置から読み出し、前記対象ディスクノードの機能ごとのアップデート前後におけるソフトウェア名と版数との推移を示す移行内容を判断する移行内容判断手段と、
    前記対象ディスクノードで管理しているデータの更新を禁止することでデータの冗長性を維持してソフトウェアアップデートを行う第1種移行パターンと、前記対象ディスクノードで管理しているデータを他の前記ディスクノードにコピーすることでデータの冗長性を維持してソフトウェアのアップデートを行う第2種移行パターンとに分類される複数の移行パターンと、移行パターンを適用する移行内容との対応関係が設定された移行パターン決定テーブルを記憶装置から読み出し、前記移行内容判断手段により判断された移行内容と前記移行パターン決定テーブルとに基づいて、前記対象ディスクノードに適用する移行パターンを決定する移行パターン決定手段と、
    前記移行後環境テーブルを記憶装置から読み出し、前記移行パターン決定手段で決定された移行パターンに従って前記対象ディスクノードに対して指示を出し、前記対象ディスクノードの各機能を実行するソフトウェアを、前記移行後環境テーブルに設定されたソフトウェア名と版数とにアップデートするアップデート手段と、
    を有するソフトウェアアップデート管理装置。
  10. 複数のディスクノードで冗長性を持たせたデータ管理を行う分散ストレージシステムにおける前記ディスクノードのソフトウェアアップデート処理を、コンピュータが実行するソフトウェアアップデート管理方法であって、
    前記コンピュータが、
    アップデート対象である対象ディスクノードのアップデート前のソフトウェアのソフトウェア名と版数とが前記対象ディスクノードの機能ごとに設定された移行前環境テーブルと、前記対象ディスクノードのアップデート後のソフトウェアのソフトウェア名と版数とが前記対象ディスクノードの機能ごとに設定された移行後環境テーブルとを記憶装置から読み出し、前記対象ディスクノードの機能ごとのアップデート前後におけるソフトウェア名と版数との推移を示す移行内容を判断し、
    前記対象ディスクノードで管理しているデータの更新を禁止することでデータの冗長性を維持してソフトウェアアップデートを行う第1種移行パターンと、前記対象ディスクノードで管理しているデータを他の前記ディスクノードにコピーすることでデータの冗長性を維持してソフトウェアのアップデートを行う第2種移行パターンとに分類される複数の移行パターンと、移行パターンを適用する移行内容との対応関係が設定された移行パターン決定テーブルを記憶装置から読み出し、前記移行内容判断手段により判断された移行内容と前記移行パターン決定テーブルとに基づいて、前記対象ディスクノードに適用する移行パターンを決定し、
    前記移行後環境テーブルを記憶装置から読み出し、前記移行パターン決定手段で決定された移行パターンに従って前記対象ディスクノードに対して指示を出し、前記対象ディスクノードの各機能を実行するソフトウェアを、前記移行後環境テーブルに設定されたソフトウェア名と版数とにアップデートする、
    ことを特徴とするソフトウェアアップデート管理方法。
JP2008076671A 2008-03-24 2008-03-24 ソフトウェアアップデート管理プログラム、ソフトウェアアップデート管理装置、およびソフトウェアアップデート管理方法 Active JP4467624B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008076671A JP4467624B2 (ja) 2008-03-24 2008-03-24 ソフトウェアアップデート管理プログラム、ソフトウェアアップデート管理装置、およびソフトウェアアップデート管理方法
US12/352,383 US8413133B2 (en) 2008-03-24 2009-01-12 Software update management apparatus and software update management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008076671A JP4467624B2 (ja) 2008-03-24 2008-03-24 ソフトウェアアップデート管理プログラム、ソフトウェアアップデート管理装置、およびソフトウェアアップデート管理方法

Publications (2)

Publication Number Publication Date
JP2009230577A true JP2009230577A (ja) 2009-10-08
JP4467624B2 JP4467624B2 (ja) 2010-05-26

Family

ID=41090143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008076671A Active JP4467624B2 (ja) 2008-03-24 2008-03-24 ソフトウェアアップデート管理プログラム、ソフトウェアアップデート管理装置、およびソフトウェアアップデート管理方法

Country Status (2)

Country Link
US (1) US8413133B2 (ja)
JP (1) JP4467624B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011092760A1 (ja) * 2010-01-26 2011-08-04 日本電気株式会社 ストレージシステム
JP2012243018A (ja) * 2011-05-18 2012-12-10 Toshiba Corp 複数の不揮発性メモリを備えたストレージ装置、ストレージコントローラ及び論理ディスク生成方法
WO2018158808A1 (ja) * 2017-02-28 2018-09-07 株式会社日立製作所 情報システム、管理プログラム及び情報システムのプログラム交換方法

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009095461A1 (en) * 2008-01-30 2009-08-06 International Business Machines Corporation Method and system of updating a plurality of computers
US9092294B2 (en) * 2009-04-20 2015-07-28 Cleversafe, Inc. Systems, apparatus, and methods for utilizing a reachability set to manage a network upgrade
US11868498B1 (en) 2009-04-20 2024-01-09 Pure Storage, Inc. Storage integrity processing in a storage network
JP2011154437A (ja) * 2010-01-26 2011-08-11 Alpine Electronics Inc 共用プログラムの更新システム
US9032053B2 (en) * 2010-10-29 2015-05-12 Nokia Corporation Method and apparatus for upgrading components of a cluster
WO2012117434A1 (en) * 2011-02-28 2012-09-07 Hitachi, Ltd. Method for ensuring consistency between mirrored copies of control information
US8656253B2 (en) 2011-06-06 2014-02-18 Cleversafe, Inc. Storing portions of data in a dispersed storage network
US8762662B1 (en) * 2011-06-24 2014-06-24 Emc Corporation Method and apparatus for application migration validation
US8805955B2 (en) * 2011-07-18 2014-08-12 Red Hat, Inc. Proactive caching of remote actions
CN103729169B (zh) * 2012-10-10 2017-04-05 国际商业机器公司 用于确定待迁移文件范围的方法和装置
CN103200026B (zh) * 2013-02-21 2018-12-04 上海中兴软件有限责任公司 固件的升级方法及***
US9626174B2 (en) * 2013-04-15 2017-04-18 Cellco Partnership Cancelling device over the air software update
US9923762B1 (en) * 2013-08-13 2018-03-20 Ca, Inc. Upgrading an engine when a scenario is running
US9614716B2 (en) 2014-04-07 2017-04-04 International Business Machines Corporation Controller maintenance in a network-attached storage system
EP3198431A1 (en) 2014-09-24 2017-08-02 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US10318280B2 (en) 2014-09-24 2019-06-11 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US10084723B2 (en) 2014-09-25 2018-09-25 Oracle International Corporation System and method for providing an end-to-end lifecycle in a multitenant application server environment
CN104539660B (zh) * 2014-12-09 2018-09-11 珠海金山网络游戏科技有限公司 一种***扩容时零数据迁移的数据分布存储方法及***
US9996335B2 (en) * 2016-02-25 2018-06-12 Cisco Technology, Inc. Concurrent deployment in a network environment
US10452387B2 (en) * 2016-09-16 2019-10-22 Oracle International Corporation System and method for partition-scoped patching in an application server environment
US10169029B2 (en) * 2017-01-10 2019-01-01 International Business Machines Corporation Pattern based migration of integration applications
US10175967B2 (en) * 2017-01-11 2019-01-08 International Business Machines Corporation Migrating applications to updated environments
US11075799B2 (en) 2017-08-24 2021-07-27 Oracle International Corporation System and method for provisioning in a multi-tenant application server environment
CN112883008B (zh) * 2019-11-29 2024-05-24 阿里巴巴集团控股有限公司 数据迁移方法、设备、***及存储介质
US11550637B2 (en) * 2020-02-28 2023-01-10 American Megatrends International, Llc Node recovery solution for composable and disaggregated environment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3986721B2 (ja) 2000-01-20 2007-10-03 三菱電機株式会社 ソフトウェア・モジュール動的交換方法及びソフトウェア・モジュール動的交換プログラム記録媒体
WO2005088452A1 (ja) * 2004-03-16 2005-09-22 Matsushita Electric Industrial Co., Ltd. コンピュータプログラムの更新をする端末装置及び更新方法
JP2005284985A (ja) * 2004-03-30 2005-10-13 Ricoh Co Ltd ネットワーク対応機器、ネットワーク対応機器を保守する保守方法、プログラム、プログラムが記録された媒体及び保守システム
JP4296120B2 (ja) 2004-04-09 2009-07-15 富士通株式会社 冗長構成復元方法、データ管理システム及び冗長構成復元プログラム
JP4870915B2 (ja) * 2004-07-15 2012-02-08 株式会社日立製作所 ストレージ装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011092760A1 (ja) * 2010-01-26 2011-08-04 日本電気株式会社 ストレージシステム
JP2011154428A (ja) * 2010-01-26 2011-08-11 Nec Corp ストレージシステム
US9652325B2 (en) 2010-01-26 2017-05-16 Nec Corporation Storage system and method to support scheduled and operational going down of a storing unit
JP2012243018A (ja) * 2011-05-18 2012-12-10 Toshiba Corp 複数の不揮発性メモリを備えたストレージ装置、ストレージコントローラ及び論理ディスク生成方法
WO2018158808A1 (ja) * 2017-02-28 2018-09-07 株式会社日立製作所 情報システム、管理プログラム及び情報システムのプログラム交換方法
US10152260B2 (en) 2017-02-28 2018-12-11 Hitachi, Ltd. Information system, management program, and program exchange method of information system
CN110300960A (zh) * 2017-02-28 2019-10-01 株式会社日立制作所 信息***、管理程序和信息***的程序更换方法
US10788999B2 (en) 2017-02-28 2020-09-29 Hitachi, Ltd. Information system, management program, and program exchange method of information system
CN110300960B (zh) * 2017-02-28 2023-04-04 株式会社日立制作所 信息***、管理程序和信息***的程序更换方法

Also Published As

Publication number Publication date
US20090241100A1 (en) 2009-09-24
JP4467624B2 (ja) 2010-05-26
US8413133B2 (en) 2013-04-02

Similar Documents

Publication Publication Date Title
JP4467624B2 (ja) ソフトウェアアップデート管理プログラム、ソフトウェアアップデート管理装置、およびソフトウェアアップデート管理方法
US11297126B2 (en) System and method for image file generation and management
US7958210B2 (en) Update management method and update management unit
US20200110550A1 (en) Multi-node removal
US8234474B2 (en) Method of constructing replication environment and storage system
US10838829B2 (en) Method and apparatus for loading data from a mirror server and a non-transitory computer readable storage medium
US7966470B2 (en) Apparatus and method for managing logical volume in distributed storage systems
US7904746B2 (en) Information processing system and data recovery method
US8122212B2 (en) Method and apparatus for logical volume management for virtual machine environment
CN103250134B (zh) 基于流技术的软件映像更新
US8745342B2 (en) Computer system for controlling backups using wide area network
US20110258407A1 (en) Storage system and management method thereof
CN103164254A (zh) 用于维持镜像虚拟环境中存储装置的一致性的方法和***
JP5476481B2 (ja) ノード故障の対処
JP2014044553A (ja) プログラム、情報処理装置および情報処理システム
JP2009026091A (ja) 接続管理プログラム、接続管理方法および情報処理装置
JP2015087906A (ja) テープ装置、記憶制御装置および記憶制御方法
JP2019020798A (ja) 情報処理装置およびプログラム
US20220374318A1 (en) Managing lifecycle of virtualization software running in a standalone host
CN105393207A (zh) 共享贮存***、以及控制向贮存装置的访问的方法
JP6788188B2 (ja) 制御装置および制御プログラム
JP2010072974A (ja) アップデート制御プログラム、アップデート制御装置、およびアップデート制御方法
WO2024000535A1 (zh) 分区表更新方法、装置、电子设备及存储介质
JP5309816B2 (ja) データ管理プログラム、データ管理装置、およびデータ管理方法
JP2021006940A (ja) 更新管理装置、更新管理システム及び更新管理プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100128

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: 20100223

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100223

R150 Certificate of patent or registration of utility model

Ref document number: 4467624

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140305

Year of fee payment: 4