JP5217966B2 - ストレージシステムのアップデート処理プログラム、アップデート処理方法及びストレージシステム - Google Patents

ストレージシステムのアップデート処理プログラム、アップデート処理方法及びストレージシステム Download PDF

Info

Publication number
JP5217966B2
JP5217966B2 JP2008304197A JP2008304197A JP5217966B2 JP 5217966 B2 JP5217966 B2 JP 5217966B2 JP 2008304197 A JP2008304197 A JP 2008304197A JP 2008304197 A JP2008304197 A JP 2008304197A JP 5217966 B2 JP5217966 B2 JP 5217966B2
Authority
JP
Japan
Prior art keywords
update
storage
service
mode
node
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.)
Expired - Fee Related
Application number
JP2008304197A
Other languages
English (en)
Other versions
JP2010128885A (ja
Inventor
泰生 野口
考介 内田
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 JP2008304197A priority Critical patent/JP5217966B2/ja
Priority to US12/621,648 priority patent/US20100138625A1/en
Publication of JP2010128885A publication Critical patent/JP2010128885A/ja
Application granted granted Critical
Publication of JP5217966B2 publication Critical patent/JP5217966B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Description

本発明はストレージシステムのアップデート処理プログラム、アップデート処理方法及びストレージシステムに関し、特に複数のストレージ装置に分散してデータを格納するストレージシステムにてコンピュータにアップデート処理を行わせるアップデート処理プログラム、アップデート処理方法及びそのストレージシステムに関する。
従来、ストレージシステムとして、複数のストレージノードをネットワーク上に分散配置して協働させることによって、性能及び信頼性を向上させる分散型のマルチノードストレージがある。マルチノードストレージでは、制御ノードが各ストレージノードを管理している。このため、各ストレージノードは、通信機能部を介して自身が動作していることを示す生存信号を定期的に送信している。この生存信号をハートビートと呼ぶ。制御ノードはストレージノードから送出されるハートビートを監視しており、ストレージノードからのハートビートが途絶えた時は、リカバリ処理を行う(例えば、特許文献1参照)。
マルチノードストレージでは、メンテナンスなどのため、運用中、システムを停止させることなくストレージノードに搭載されるプロセスをアップデートする必要が生じる。図14は、従来のマルチノードストレージのプロセスアップデートの手順を示した図である。
図14の例のマルチノードストレージは、リカバリ処理などを行う制御ノード90と、データを分散して格納するディスクノード91,92,93と、を有する。ディスクノード91,92,93は、それぞれ一定周期でハートビート(図ではHB)を送出している。制御ノード90は、ディスクノード91,92,93からのハートビートを受信し、各ディスクノード91,92,93の状態を検知する。
ここで、運用中にディスクノード93のアップデートを行う従来の手順について説明する。プロセスをアップデートするためには、ディスクノードの再起動が必要になる。そこで、ディスクノード93に対して旧プロセスの終了を指示し、旧プロセス終了処理931が行われる。続いて新プロセスで再起動する指示が出され、新プロセス再起動処理932が行われる。この処理が行われている間、ディスクノード93はハートビートを送出することができない。また、他装置からディスクノード93へのアクセスもできなくなる。そして、新プロセスの再起動処理932が終了後、ハートビートの送出が再開され、通常状態に戻る。
一方、ディスクノード93のアップデートの間、制御ノード90は、ディスクノード91及びディスクノード92からのハートビートは受信することができる。しかし、アップデート処理が開始されているディスクノード93からのハートビートは受信できない。このディスクノード93のHB途絶期間が一定時間を超過すると、制御ノード90は、ディスクノード93を故障と見なし、リカバリ処理901を行う。
再表2004/104845号公報
しかし、従来のマルチノードストレージには、運用中におけるプロセスのアップデート作業が容易ではないという問題点があった。
図14に示したように、プロセスをアップデートするためには、ディスクノードの再起動が必要となり、その間はハートビート(HB)が途絶する。また、この間は他装置からのアクセスに対しても応答することができない。さらに、そのハートビート途絶期間が一定時間を超過すると故障と判断され、リカバリが発生するという問題点もあった。このため、アップデートに要する時間を極力短縮させる必要がある。
しかし、新プロセスを稼動させるまでには、旧プロセス終了処理931と、新プロセス再起動処理932とを実行しなければならない。このうち、旧プロセス終了処理931では、OS(Operating System、オペレーティングシステム)がキャッシュメモリに一時保存しているデータをディスクに書き込んで同期させる処理が行われる。この同期処理は、キャッシュメモリに残っているデータの量に応じて処理時間が延び、キャッシュメモリに大量のデータが残っていた場合には非常に時間がかかることがある。また、新プロセス再起動処理932では、ディスクノードに分散配置されるデータに関するメタデータを読み込む必要がある。メタデータも他のディスクノードに分散配置されており、読み込むために時間がかかる。このように、旧プロセス終了処理にも新プロセス再起動処理にも処理時間を長期化する要素があり、アップデートの時間を短縮することは容易ではなかった。また、結果としてアップデートを行っているディスクノードが故障と見なされてしまうことを抑制することができなかった。
さらに、同時に2台以上のディスクノードが故障と判断されるときは、マルチノードストレージはシャットダウンしてしまう。このため、2台以上のディスクノードを同時にアップデートすることはできず、逐次的にアップデートしなければならないという問題点があった。このように1台ずつアップデートがされるため、全システムがアップデートされるまでには多大な時間がかかった。
本発明はこのような点に鑑みてなされたものであり、運用中のプロセスのアップデートに要する時間を短縮させることが可能なマルチノードストレージシステムのアップデート処理プログラム、アップデート処理方法及びストレージシステムを提供することを目的とする。
上記課題を解決するために、複数のストレージ装置に分散してデータを格納するストレージシステムにてコンピュータにアップデート処理を行わせるアップデート処理プログラムが提供される。このようなアップデート処理プログラムは、コンピュータを、同期/非同期指示手段と、プロセス制御手段と、して機能させる。同期/非同期指示手段は、ストレージ装置へのデータ書き込み要求を受け取ったときに、書き込みデータをストレージ装置に直接書き込む同期モードと、書き込みデータをキャッシュメモリに蓄積し、蓄積データを所定のタイミングでストレージ装置に書き込む非同期モードとを備えた読み書き制御手段に対し、同期モードまたは非同期モードのどちらでデータ書き込みを行うかを指示する。プロセス制御手段は、非同期モードで所定のサービス処理を実行中の第1のプロセスに代わってサービス処理を実行可能な第2のプロセスをサービス停止状態にして起動する。第1のプロセスから第2のプロセスへのアップデートが要求されると、第1のプロセスのサービス処理の実行を、同期/非同期指示手段に指示して非同期モードから同期モードに切り替える。こうして第1のプロセスが同期モードで実行中のサービス処理を終了させる。そして、第1のプロセスがサービス処理を終了した後に、第2のプロセスによるサービス処理を開始させる。
このようなアップデート処理プログラムを実行するコンピュータは、第1のプロセスを第2のプロセスにアップデートする際に、サービス処理を実行中は非同期モードに設定される読み書き制御手段を同期モードにする。こうして第1のプロセスからの書き込みデータがストレージ装置に直接書き込まれている状態(同期モード)第1のプロセスを終了させる。そして、第1のプロセスが処理を終了した後、第2のプロセスによるサービスを開始させる。
また、上記課題を解決するために、上記のアップデート処理プログラムと同様の処理手順を実行させるアップデート処理方法、及び同様の機能を備えた装置を有するストレージシステムが提供される。
開示のストレージシステムのアップデート処理プログラム、アップデート処理方法及びストレージシステムによれば、旧プロセス終了処理の前にストレージ装置へのデータ書き込みが同期モードで行われるようになる。これにより、プロセス終了処理において、キャッシュメモリに蓄積されているデータをディスクに書き込んで同期させる処理を省くことができ、アップデートに要する時間を短縮することができる。
以下、本発明の実施の形態を図面を参照して説明する。まず、発明の概要について説明し、その後、具体的な内容を説明する。
図1は、発明の概要を示した図である。図は、ストレージシステムを構成する複数のストレージノードのうちの1つを示している。
ストレージノード10は、データを格納するストレージ20に接続し、ネットワークを介して入力されるアクセスノードあるいは制御ノードから要求に応じてストレージ20内のデータへのアクセス管理を行う。
このストレージシステムは、論理ボリュームと呼ばれる仮想的なディスクを有する。この論理ボリュームを所定のサイズの単位(以下、セグメントとする)に分割し、各セグメントのデータを複数のストレージノードに分散配置する。ストレージ20のデータ記憶領域は、スライスと呼ばれる所定の単位に分割され、このスライスにセグメントが割り当てられる。この仮想的な論理ボリュームを分割した論理セグメントの識別情報と、この論理セグメントに対応付けられたストレージ装置の実データ記憶領域をセグメント単位で分割したスライスとを関連付けた管理情報は、メタデータと呼ばれる。具体的には、スライスに割り当てられたセグメントの情報(このセグメントの論理ディスク上のアドレスなど)などが記述され、セグメントデータとともに管理されている。
ストレージノード10は、ネットワークに接続する通信手段11、運用中のプロセス12、アップデート後の新プロセス13、ストレージ20への読み書きを制御する読み書き制御手段(以下、R/W制御手段とする)14、プロセスの動作を制御するプロセス制御手段15、メタデータの変更をチェックするメタデータチェック手段16及びストレージ20への書き込みの動作モードを指示する同期/非同期指示手段17を有する。各処理手段は、コンピュータがそれぞれの処理を記述したプログラムを実行することにより、その機能を実現する。特に、プロセス制御手段15、メタデータチェック手段16及び同期/非同期指示手段17は、コンピュータがアップデート処理プログラムを実行することにより、その処理機能を実現する。
通信手段11は、ストレージノード10と、図示しないネットワークを介して接続する制御ノード、アクセスノード及び他のストレージノードと、の間の通信を制御する。
プロセス12は、現在運用中のプロセスで、予め決められた所定のサービス処理を実行している。
新プロセス13は、アップデート後に、プロセス12の代わりにサービスを提供するプロセスであり、プロセス12と同様の機能を有する。
R/W制御手段14は、プロセス12及び新プロセス13からのデータ読み出し要求またはデータ書き込み要求を受けて、ストレージ20からのデータ読み出し、またはストレージ20へのデータ書き込み処理を制御する。このうち、データの書き込み処理には、同期モードと非同期モードとがある。同期モードでは、データ書き込み要求を受け取ったとき、直接ストレージ20に書き込みを行い、書き込み終了の応答を返す。これに対し、非同期モードは、データ書き込み要求を受け取ったときに、キャッシュメモリにそのデータを蓄積し、書き込み終了の応答を返す。そして、所定のタイミングでキャッシュメモリに蓄積されたデータをストレージ20に書き込む。通常のプロセス処理では、応答性能を上げるため、非同期モードで書き込み処理が行われる。
プロセス制御手段15は、通信手段11を介して入力される管理ノードの指示などに基づいて、管理下のプロセスの動作を制御する。アップデートの際には、サービスを停止した状態で新プロセス13を起動させる。次に、プロセス12がサービス処理を行っている状態で、同期/非同期指示手段17に指示し、R/W制御手段14を同期モードに設定する。同期モードで動作している状態で、プロセス12の終了処理を指示し、プロセス12を終了させる。その後、新プロセス13のサービスを開始させる。このとき、同期/非同期指示手段17に指示し、R/W制御手段14を非同期モードに戻す。
メタデータチェック手段16は、プロセス制御手段15からの指示に応じて自ノードのメタデータ変更チェックを行う。少なくとも、アップデート処理の開始前と、アップデート処理終了時のメタデータを比較する。こうして、アップデート処理の前後でメタデータに変更があったか否かを判定し、判定結果をプロセス制御手段15に通知する。
同期/非同期指示手段17は、プロセス制御手段15の指示に従って、R/W制御手段14に対して同期モード/非同期モードの切り替え指示を行う。
また、プロセスが正常に動作しているときは、図示しないハートビート送出手段によって、他装置に向けてハートビートが送出される。ハートビートは、自装置の状態を示す生存信号であり、定期的に送出される。
このような構成のストレージノード10によるプロセスのアップデート動作について説明する。現在、プロセス12がサービス処理を実行している。R/W制御手段14は、非同期モードで動作している。非同期モードとすることにより、書き込み時の応答時間を短縮することができる。
アップデートする新プロセス13のプログラムは、事前に記憶手段にロードしておく。
プロセス制御手段15は、メタデータチェック手段16を介して他装置のメタデータを読み出し、サービスを停止した状態で新プロセス13を起動する。新プロセス13は、サービス処理は停止しているが、メタデータを読み込んでの起動処理は行う。なお、メタデータチェック手段16は、このときのメタデータを記憶しておく。次に、同期/非同期指示手段17に指示し、R/W制御手段14を同期モードにする。これにより、プロセス12がデータの書き込み要求を行うと、すぐにストレージ20に書き込まれるようになる。続いて、プロセス制御手段15は、プロセス12に対して処理の終了を指示する。R/W制御手段14は、同期モードで動作しているので、キャッシュメモリのデータをストレージ20に書き込む同期処理は必要ない。このため、プロセス12は、終了処理を短時間で完了することができる。プロセス12を終了させた後、メタデータチェック手段16により、メタデータが変更されていないかどうかをチェックする。メタデータチェック手段16は、再度メタデータを収集し、新プロセス13を起動したときのメタデータと比較する。なお、比較は、処理ごとに行われてもよい。メタデータが変更されていないときは、プロセス制御手段15は、新プロセス13を再起動する。新プロセス13は、起動時のメタデータ読み込みは終了しているので、再起動処理を短時間で完了し、サービス処理を開始する。一方、メタデータが変更されていた場合には、アップデートを中断し、一旦、アップデート開始前の状態(非同期モードでプロセス12がサービス処理を行っている状態)に戻す。そして、必要であれば、新たなメタデータで、再度上記手順でアップデート処理を行う。
このように、ストレージノード10によれば、プロセス12から新プロセス13へのアップデート時、プロセス12の終了処理時間を延ばしていたデータの同期化処理を行う必要がない。また、新プロセス13の再起動に要する時間を延ばしていたメタデータの読み出し処理を行う必要がない。これにより、アップデートに要する時間を短縮することができる。この結果、再起動時、制御ノードが故障と判定する前にハートビートの送出を開始することが可能となり、リカバリ処理を抑止することができる。
以下、発明の実施の形態を詳細に説明する。図2は、本実施の形態のマルチノードストレージの構成例を示す図である。
マルチノードストレージは、ネットワーク400を介して、複数のディスクノード100,200,300と、アクセスノード500、制御ノード600及び管理ノード700が接続されている。
ディスクノード100にはディスク110、ディスクノード200にはディスク210、ディスクノード300にはディスク310が、それぞれ接続されている。ディスク110には、複数のハードディスク装置(HDD)が実装されている。ディスク210,310の構成も同様である。ディスクノード100,200,300は、例えば、IA(Intel Architecture)と呼ばれるアーキテクチャのコンピュータである。そして、接続されたディスク110,210,310に格納されたデータを管理し、管理しているデータをアクセスノード500経由で端末装置801,802,803に提供する。また、ディスクノード100,200,300は、冗長性を有するデータを管理することもできる。この場合、同一のデータが、少なくとも2つのディスクノードで管理される。本実施の形態では、ディスクノード100,200,300として、図1に示したアップデート処理を行うストレージノードを提供する。
アクセスノード500には、ネットワーク800を介して複数の端末装置801,802,803が接続されている。アクセスノード500は、ディスクノード100,200,300のそれぞれが管理しているデータの格納場所を認識しており、端末装置801,802,803からの要求に応答して、ディスクノード100,200,300へデータアクセスを行う。
制御ノード600は、ディスクノード100,200,300を管理する。例えば、制御ノード600は、ディスクノード100,200,300から送出されるハートビートを監視し、故障を検出したときはリカバリ処理を行う。
管理ノード700は、マルチノードストレージのシステム全体を管理する。例えば、管理者からのアップデート指示に応じて、ディスクノード100,200,300全体のアップデート処理を管理する。
図3は、ディスクノードのハードウェア構成例を示す図である。ディスクノード100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス106を介してRAM(Random Access Memory)102、HDD103、通信インタフェース104及びHDDインタフェース105が接続されている。
RAM102には、CPU101に実行させるOSやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションのプログラムが格納される。通信インタフェース104は、ネットワーク400に接続されている。通信インタフェース104は、ネットワーク400を介して、他のディスクノード、アクセスノード500、制御ノード600及び管理ノード700など、マルチノードストレージを構成する他のコンピュータとの間でデータの送受信を行う。HDDインタフェース105は、ディスク110を構成するHDDへのアクセス処理を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、ディスクノード100を示したが、他のディスクノード200,300も同様のハードウェア構成で実現される。
次に、上記のマルチノードストレージにおいてアップデート処理を行う各部について説明する。図4は、マルチノードストレージにおいてアップデート処理を行う各部のソフトウェア構成を示した図である。
ディスクノード100,200,300は、スイッチ(SW)401を介して、アクセスノード500、制御ノード600及び管理ノード700との間でデータ交換を行う。このうち、ディスクノード100,200,300のアップデート管理は管理ノード700が行う。
ディスクノード100は、プロセス112及び新プロセス113と、アップデート処理を行うエージェント115とを有する。また、DP1というIDが付与されている。同様に、ディスクノード200は、プロセス212及び新プロセス213と、エージェント215とを有し、DP2というIDが付与されている。ディスクノード300の構成も同様であり、DP3というIDが付与されている。
プロセス112,212は、アップデート前のプロセスで現在サービス処理を行っているプロセスである。新プロセス113,213は、アップデート後のプロセスである。プロセス112,212及び新プロセス113,213は、エージェント115,215の指示に従って動作し、処理を全く実行していない状態、サービス処理以外の処理を実行している状態及びサービス処理を実行している状態のいずれかの状態にある。例えば、プロセス起動指示で、処理を全く実行していない状態からサービス処理以外の処理を実行している状態に遷移する。サービス開始指示でサービス処理を実行している状態に遷移する。サービス停止指示でサービス処理を実行している状態からサービス処理以外の処理を実行している状態に遷移する。そして、終了指示ですべての処理を終了し、処理を全く実行していない状態に遷移する。
エージェント115,215は、管理ノード700からの指示に従って、プロセス112,212を、新プロセス113,213にアップデートする。このため、プロセス制御手段、メタデータチェック手段及び同期/非同期指示手段としての機能を有する。なお、ディスク110へのアクセスを同期モードで行うか、非同期モードで行うかは、OSが管理する場合が多い。通常OSには、モードを切り替えるためのコマンドが用意されており、エージェント115,215は、OSに対しこのようなコマンド出力し、同期/非同期モードの切り替えを行う。例えば、非同期モードから同期モードへの切り替えは、アクセス受付を一時停止、デバイスファイルをクローズ、デバイスファイルを同期モードでオープン、アクセス受付を再開、という手順でコマンドを出力して行う。また、同期モードから非同期モードへの切り替えも同様に、アクセス受付を一時停止、デバイスファイルをクローズ、デバイスファイルを非同期モードでオープン、アクセス受付を再開、という手順でコマンドを出力して行う。
管理ノード700は、アップデートを管理するアップデート管理部701と、管理テーブル702とを有する。管理テーブル702は、管理下のディスクノード100,200,300のアップデート進行状況を管理するためのアップデート管理情報が設定される。例えば、発行コマンドとその結果とが、ディスクノードごとに管理される。アップデート管理部701は、管理テーブル702に基づいて、ディスクノード100のエージェント115、ディスクノード200のエージェント215及び図示しないディスクノード300のエージェントと通信を行って、管理下のディスクノードのアップデートを一斉に処理する。
このため、アップデート管理部701は、管理対象のディスクノード100,200,300に対し、アップデートの手順に沿った指示をコマンドとして順次出力する。例えば、新プロセスの起動を指示するコマンドを管理下のディスクノード100,200,300に出力する。そして、ディスクノード100,200,300のすべてから正常終了の応答が得られたときは、書き込み制御の同期モードへの変更を指示するコマンドをディスクノード100,200,300に出力する。同様にして、プロセスの終了、新プロセスのサービス開始、などコマンドを順次出力する。ディスクノード100,200,300のエージェントが、コマンドを受けて処理を行うことにより、すべてのディスクノードのアップデートが同時に行われる。
以下、管理ノード700による一斉アップデート処理について詳細に説明する。まず、管理テーブル702について説明する。
図5は、管理テーブルの一例を示した図である。
管理テーブル702には、管理対象のディスクノードの管理情報として、ノードID7021、コマンド発行7022及び結果7023の情報項目が登録される。
ノードID7021には、管理対象のディスクノードの識別情報(ディスクノードに付与されたID)が登録される。ここでは、ディスクノード100のDP1、ディスクノード200のDP2、ディスクノード300のDP3が登録される。
コマンド発行7022には、コマンドの発行状態が登録される。例えば、コマンドをディスクノード100,200,300に出力していないときは、無(NULL)が登録される。そして、コマンドを発行したときには、コマンドを送信したディスクノードに対応する欄に、発行済(DONE)が登録される。なお、発行したコマンドの種別を登録してもよい。
結果7023には、コマンド発行後に、ディスクノード100,200,300から得られた応答に基づいて、ディスクノード100,200,300の処理結果が登録される。結果を受け取るまでは、無(NULL)が登録される。応答を受け取り、その結果が正常終了であれば、完了(OK)が登録される。そして、応答を受け取り、その結果が正常終了でなかったときは、失敗(NG)が登録される。
図6は、コマンドの発行処理に応じた管理テーブルの変化を示した図である。(A)はコマンド発行前、(B)はコマンド発行後、(C)はコマンド発行後結果受け付け中、(D)はコマンド結果受信後、(E)はコマンド結果受信後(NG含む)の状態を示している。
(A)コマンド発行前は、すべてのディスクノード(DP1,DP2,DP3)について、コマンド発行7022が無(NULL)の状態になっている。
(B)コマンド発行後は、すべてのディスクノード(DP1,DP2,DP3)について、コマンド発行7022が発行済(DONE)の状態になっている。このように、コマンドの発行は、管理対象のディスクノードに対して一斉に行われる。
(C)コマンド発行後結果受け付け中は、コマンドを発行したディスクノード(DP1,DP2,DP3)からの処理結果の応答を待っている状態である。ディスクノード(DP1,DP2,DP3)は、発行されたコマンドの処理が終了すると、その処理結果を管理ノード700に向けて送信する。この例では、ディスクノードDP1と、ディスクノードDP3からの応答が得られ、ディスクノードDP2からの応答が得られていない状態である。
(D)コマンド結果受信後は、すべてのディスクノード(DP1,DP2,DP3)から応答が得られた状態である。この例は、ディスクノードDP1、ディスクノードDP2及びディスクノードDP3のすべてから正常完了(OK)が得られたことを示している。
(E)コマンド結果受信後(NG含む)は、すべてのディスクノード(DP1,DP2,DP3)から応答が得られ、応答に失敗(NG)が含まれていた場合である。この例は、ディスクノードDP1と、ディスクノードDP3からは正常完了(OK)の応答が得られ、ディスクノードDP2からの失敗(NG)の応答が得られたことを示している。
管理ノード700は、この管理テーブル702に基づいてアップデート処理を進める。
次に、上記の構成のマルチノードストレージのアップデート処理動作及びアップデート方法について詳しく説明する。
図7は、アップデート処理の動作シーケンス(同期モードへの切り替えまでの手順)を示した図である。図7は、管理ノード700からの指示がすべて成功した場合の例である。また、エージェントiは、任意のディスクノードに搭載されるエージェントであり、プロセスiはその運用中のプロセス、新プロセスiはその新プロセスを表している。
システム管理者などによって、管理ノード700にアップデート指示が出されると、処理が開始される。なお、新プロセスiのプログラムは、事前に各ディスクノードにダウンロードされているとする。
管理ノード700から、管理下のディスクノードすべてに対し、新プロセス起動のコマンド(1001)が出力される。コマンドを受け取ったエージェントiは、新プロセス起動を新プロセスiに指示する。これにより、新プロセスiにおいて起動処理(1002)が行われる。起動処理(1002)では、メタデータを読み込み、サービス処理は停止した状態で新プロセスiを起動する。起動処理が終了し、サービス処理以外の処理が実行状態となった後、起動処理正常完了(OK)がエージェントiに返る。失敗時には、失敗(NG)が返る。正常完了(OK)を取得したエージェントiは、メタデータ変更チェック(1003)を行う。メタデータ変更チェック(1003)では、メタデータを収集し、このメタデータと、新プロセスiが起動処理(1002)で用いたメタデータ(前回収集したメタデータ)とが同じであるかどうかを判定する。メタデータが変更されていなければ、正常完了(OK)の応答を管理ノード700に返す。メタデータが変更されていれば、失敗(NG)の応答を管理ノード700に返す。なお、以下のメタデータ変更チェックでも、同様のチェックが行われる。ここでは、正常完了(OK)が返ったとして説明を続ける。エージェントiから正常完了(OK)を受けとった管理ノード700は、他のエージェントからの応答を待ち、全ノードが正常に終了したかどうかをチェックする(1004)。全ノードが新プロセス起動を正常完了したとき、次の手順へ処理を進める。一部のノードで新プロセスの起動に失敗、またはメタデータの変更が発生したとき、ロールバック処理を行う。ロールバック処理については、後述する。
全ノードが新プロセス起動を正常に完了したときは、管理ノード700から同期モード指示(1011)が出される。コマンドを受け取ったエージェントiは、同期モードを指示する。これにより、現在動作中のプロセスiのディスクへの書き込みモードが、同期モードへ変更(1012)される。同期モードへの変更の正常完了(OK)がエージェントiに返る。失敗時には、失敗(NG)が返る。正常完了(OK)を取得したエージェントiは、メタデータ変更チェック(1013)を行う。メタデータが変更されていなければ、正常完了(OK)の応答を管理ノード700に返す。メタデータが変更されていれば、失敗(NG)の応答を管理ノード700に返す。ここでは、正常完了(OK)が返ったとして説明を続ける。エージェントiから正常完了(OK)を受けとった管理ノード700は、他のエージェントからの応答を待ち、全ノードが正常に終了したかどうかをチェックする(1014)。全ノードが新プロセス起動を正常完了したとき、次の手順へ処理を進める。一部のノードでプロセスの同期化に失敗、またはメタデータの変更が発生したとき、ロールバック処理を行う。
次に、図8を用いて説明する。図8は、アップデート処理の動作シーケンス(新プロセスへの切り替えまでの手順)を示した図である。
全ノードが同期化モードへの移行を正常完了したときは、管理ノード700からプロセスiのサービス停止指示(1021)が出される。コマンドを受け取ったエージェントiは、プロセスiに対してサービス停止を指示する。これにより、現在動作中のプロセスiが、サービス停止処理(1022)を行い、サービスを停止させる。サービス停止とともに、ハートビートの送信も停止され、ハートビート(HB)途絶期間が開始される。プロセスiのサービス停止が完了したときは、正常完了(OK)がエージェントiに返る。失敗時には、失敗(NG)が返る。正常完了(OK)を取得したエージェントiは、メタデータ変更チェック(1023)を行う。メタデータが変更されていなければ、正常完了(OK)の応答を管理ノード700に返す。メタデータが変更されていれば、失敗(NG)の応答を管理ノード700に返す。ここでは、正常完了(OK)が返ったとして説明を続ける。エージェントiから正常完了(OK)を受けとった管理ノード700は、他のエージェントからの応答を待ち、全ノードが正常に終了したかどうかをチェックする(1024)。全ノードがプロセスiのサービス停止を正常完了したとき、次の手順へ処理を進める。一部のノードでプロセスの同期化に失敗、またはメタデータの変更が発生したとき、ロールバック処理を行う。
全ノードがプロセスiのサービス停止処理を正常完了したときは、管理ノード700から新プロセスiへの切り替え指示(1031)が出される。コマンドを受け取ったエージェントiは、新プロセスiに対して切り替え指示(サービス開始指示)を行う。これにより、現在サービス処理を停止中の新プロセスiが、サービス開始処理(1032)を行い、サービスを開始する。新プロセスiは、起動処理1002によって既に動作を開始しているので、すぐにサービス処理を介することができる。サービス開始とともに、ハートビートの送信も再開され、ハートビート(HB)途絶期間が終了する。新プロセスiのサービス開始が完了したときは、正常完了(OK)がエージェントiに返る。失敗時には、失敗(NG)が返る。正常完了(OK)を取得したエージェントiは、サービスを停止しているプロセスiに対し、終了指示を行い、プロセスiにおいて終了処理(1033)が行われる。プロセスiの終了処理が正常に完了していれば、正常完了(OK)の応答を管理ノード700に返す。
このように、プロセスiのサービス停止処理1022が開始されるときには、既に同期化が終了しているので、同期化に要する時間が必要なくなる。また、新プロセスiのサービス開始1032においても、既にメタデータを用いた起動処理1002は終了しているので、すぐにサービスを開始できる。この結果、プロセスのアップデートに要する時間を大幅に短縮することができる。
次に、ロールバック処理について説明する。
図9は、新プロセス起動に失敗したときの動作シーケンスを示した図である。図9は、(a)一部のノードで新プロセスの起動に失敗またはメタデータ変更発生、が起きた場合のロールバック処理である。
新プロセス起動処理後の全ノード終了チェック(1004)において、1またはそれ以上のエージェントから失敗(NG)の応答を受け取ったことが検出されたときは、管理ノード700は、ロールバック指示(1041)を管理対象のすべてのエージェントiに出力する。ロールバック処理は、一連の処理が開始される前の状態、ここでは、新プロセス起動処理の指示が出される前、すなわち、アップデート開始前の状態に戻す処理を言う。ロールバック指示(1041)を受け取ったエージェントiは、起動した新プロセスを終了させるため、プロセス終了指示(1042)を新プロセスiに出力する。新プロセスiは、プロセス終了処理(1043)を実行し、すべての処理を停止させる。その後、プロセスが正常に終了(OK)したことをエージェントiに通知し、エージェントiが正常終了(OK)したことを通知する応答を管理ノード700に返す。
このような処理が行われることにより、一部のディスクノードで新プロセスの起動に失敗、またはメタデータ変更が発生したときは、アップデートが開始される前の状態にすべてのディスクノードが戻される。
図10は、プロセスの同期化に失敗したときの動作シーケンスを示した図である。図10は、(b)一部のノードでプロセスの同期化に失敗またはメタデータ変更発生、が起きた場合のロールバック処理である。
同期モードへの変更処理後の全ノード終了チェック(1014)において、1またはそれ以上のエージェントから失敗(NG)の応答を受け取ったことが検出されたときは、管理ノード700は、ロールバック指示(1051)を管理対象のすべてのエージェントiに出力する。ロールバック指示(1051)を受け取ったエージェントiは、同期モードを非同期コードに戻すため、非同期指示(1052)を行う。これにより、現在動作中のプロセスiのディスクへの書き込みモードは、非同期モードに変更(1053)される。その後、書き込みモードが非同期モードになったこと(OK)がエージェントiに通知されたときは、プロセス終了指示(1054)を新プロセスiに出力する。新プロセスiは、プロセス終了処理(1055)を実行し、すべての処理を停止させる。その後、プロセスが正常に終了(OK)したことをエージェントiに通知し、エージェントiが正常終了(OK)したことを通知する応答を管理ノード700に返す。
このような処理が行われることにより、一部のノードでプロセスの同期化に失敗またはメタデータ変更が発生したときも、アップデートが開始される前の状態にすべてのディスクノードが戻される。
図11は、プロセスのサービス停止に失敗したときの動作シーケンスを示した図である。図11は、(c)一部のノードでプロセスのサービス停止に失敗、またはメタデータ変更発生、が起きた場合のロールバック処理である。
プロセスiのサービス停止処理後の全ノード終了チェック(1024)において、1またはそれ以上のエージェントから失敗(NG)の応答を受け取ったことが検出されたときは、管理ノード700は、ロールバック指示(1061)を管理対象のすべてのエージェントiに出力する。ロールバック指示(1061)を受け取ったエージェントiは、サービスを停止させたプロセスiにサービス再開指示(1062)を行う。プロセスiは、サービス再開処理(1063)を実行し、サービスを再開する。サービス再開が正常完了(OK)したことがプロセスiより通知されると、エージェントiは、非同期指示(1064)を行い、書き込みモードを非同期モードにする。非同期モードに変更(1065)され、正常完了(OK)を受け取ると、新プロセスiに対し、プロセス終了指示(1067)を行う。新プロセスiは、プロセス終了処理(1068)を実行し、すべての処理を停止させる。その後、プロセスが正常に終了(OK)したことをエージェントiに通知し、エージェントiが正常終了(OK)したことを通知する応答を管理ノード700に返す。
このような処理が行われることにより、一部のノードでプロセスのサービス停止に失敗またはメタデータ変更が発生したときも、アップデートが開始される前の状態にすべてのディスクノードが戻される。
このように、アップデートの途中でエラーやメタデータの変更が生じたときは、その時点までに実行した処理を逆順に辿り、アップデート前の状態に戻される。これにより、アップデート未完の場合、プロセスがプロセスに戻ってサービスが継続される。
次に、管理ノード及びディスクノード(エージェント)のアップデート処理の手順を、フローチャートを用いて説明する。
図12は、管理ノードのアップデート処理手順を示したフローチャートである。
システム管理者などからの一斉アップデート指示を受け、管理ノード700が処理を開始させる。
[ステップS01] 新プロセス起動指示のコマンドを管理対象のすべてのディスクノードに向けて送信する。新プロセス起動指示は、新プロセスを、サービスを停止させた状態で起動させるための指示である。指示を受けたエージェントは、メタデータを読み込んで新プロセスの起動処理を行い、すぐにサービス開始ができる状態になった後、管理ノード700に応答を返してくる。
[ステップS02] 新プロセス起動指示を出力した全ディスクノードからの応答を待つ。得られた応答をチェックし、全ディスクノードで新プロセス起動が成功したかどうかを判定する。成功したときは、処理をステップS03に進める。一部のディスクノードが、新プロセスの起動に失敗、またはメタデータ変更が発生して、失敗(NG)応答を返してきたときは、処理をステップS09に進める。
[ステップS03] 新プロセス起動処理が正常に終了したときは、続いて、ディスクへの書き込みモードを同期モードとするように全ディスクノードに対し指示を出す。指示を受けたディスクノードは、書き込みモードを同期モードに切り替え、管理ノード700に応答を返してくる。
[ステップS04] 新プロセス起動指示を出力した全ディスクノードからの応答を待つ。得られた応答をチェックし、全ディスクノードで同期モードへの切り替えが成功したかどうかを判定する。成功したときは、処理をステップS05に進める。一部のディスクノードが、プロセスの同期化に失敗、またはメタデータ変更が発生して、失敗(NG)応答を返してきたといは、処理をステップS09に進める。
[ステップS05] 同期モードへの変更が正常に終了したときは、プロセスのサービスを停止させる指示を出す。指示を受けたディスクノードは、プロセスに対し、プロセス終了を指示する。プロセスがプロセスを終了したら、管理ノード700に応答を返してくる。
[ステップS06] プロセスへのサービス停止指示を出力した全ディスクノードからの応答を待つ。得られた応答をチェックし、全ディスクノードでプロセスのサービス停止が成功したかどうかを判定する。成功したときは、処理をステップS07に進める。一部のディスクノードが、プロセスの停止に失敗、またはメタデータ変更が発生して、失敗(NG)応答を返してきたときは、処理をステップS09に進める。
[ステップS07] プロセスへのサービス停止が正常に終了したときは、続いて、新プロセスのサービス開始を指示する。指示を受けたディスクノードは、新プロセスによるサービスを開始させる。
[ステップS08] プロセスへの処理終了を指示する。指示を受けたディスクノードは、プロセスを終了させる。ディスクノードからの応答を受け、処理を終了する。
[ステップS09] アップデート処理が途中で失敗、またはメタデータ変更が発生したときは、ロールバック処理を行って、アップデート開始前の状態に戻し、処理を終了する。
ロールバック処理について説明する。
図13は、ロールバック処理の手順を示したフローチャートである。
[ステップS11] 失敗(NG)が、新プロセス起動時に発生したのかどうかを判定する。一部のディスクノードが新プロセス起動に失敗、または、メタデータ変更が発生したときは、処理をステップS15に進める。それ以外であれば、処理をステップS12に進める。
[ステップS12] 失敗(NG)が、同期モードへの変更時に発生したのかどうかを判定する。一部のディスクノードがプロセスの同期化に失敗、または、メタデータ変更が発生したときは、処理をステップS14に進める。それ以外、ここでは、一部のディスクノードが、プロセスの停止に失敗、またはメタデータ変更が発生したときは、処理をステップS13に進める。
[ステップS13] サービス停止をしたプロセスのサービスを再開させる。
[ステップS14] 同期モードを非同期モードに戻す。
[ステップS15] 起動した新プロセスを終了させる。
以上の処理手順が実行されることにより、アップデート処理が途中で失敗、またはアップデート処理の途中でメタデータが変更されたときは、実行された処理を逆順に辿り、アップデート開始前の状態に戻す。このように、アップデート開始前の状態に自動的に戻ることにより、サービス停止を抑止することができる。また、メタデータの変更が終了した時点などで、再び、アップデート処理を開始させることができる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ストレージシステムを構成する管理ノード及びストレージノードが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上の実施の形態に関し、更に以下の付記を開示する。
(付記1) 複数のストレージ装置に分散してデータを格納するストレージシステムにてコンピュータにアップデート処理を行わせるアップデート処理プログラムにおいて、
前記コンピュータを、
前記ストレージ装置へのデータ書き込み要求を受け取ったときに、書き込みデータを前記ストレージ装置に直接書き込む同期モードと、前記書き込みデータをキャッシュメモリに蓄積し、蓄積データを所定のタイミングで前記ストレージ装置に書き込む非同期モードとを備えた読み書き制御手段に対し、前記同期モードまたは前記非同期モードのどちらでデータ書き込みを行うかを指示する同期/非同期指示手段、
所定のサービス処理を実行しているプロセスと、新プロセスの動作を制御し、アップデートが要求されると、前記同期/非同期指示手段に指示して前記プロセスが前記サービス処理を実行中は前記非同期モードに設定される前記読み書き制御手段を前記同期モードに切り替え、前記プロセスの出力する前記書き込みデータが前記ストレージ装置に直接書き込まれている状態で前記プロセスに終了指示を出して前記サービス処理を終了させ、前記プロセスが前記サービス処理終了後に前記新プロセスのサービス処理を開始させるアップデート処理を行うプロセス制御手段、
として機能させることを特徴とするストレージシステムのアップデート処理プログラム。
(付記2) 前記プロセス制御手段は、前記新プロセスによるサービスを開始させるときは、前記同期/非同期指示手段に指示して、前記読み書き制御手段を前記非同期モードに切り替える、
ことを特徴とする付記1記載のストレージシステムのアップデート処理プログラム。
(付記3) 前記ストレージ装置の記憶領域は、仮想的な論理ボリュームを所定の記憶領域単位で分割した論理セグメントと、前記論理セグメントに対応付けられた前記ストレージ装置の実データ記憶領域を前記所定の記憶領域単位で分割したスライスとを関連付けた管理情報によって管理されており、
前記プロセス制御手段は、前記同期モードを指示する前に、前記複数のストレージ装置に分散して格納される前記管理情報を読み出し、前記新プロセスを、前記サービス処理を停止させた状態で起動しておく、
ことを特徴とする付記1記載のストレージシステムのアップデート処理プログラム。
(付記4) 前記コンピュータを、少なくとも、前記アップデート処理の開始前と、前記アップデート処理の終了時とに、前記ストレージ装置に分散して格納される、仮想的な論理ボリュームを所定の記憶領域単位で分割した論理セグメントと、前記論理セグメントに対応付けられた前記ストレージ装置の実データ記憶領域を前記所定の記憶領域単位で分割したスライスとを関連付けた管理情報を収集し、前記アップデート処理の開始前の前記管理情報と、前記アップデート処理の終了時の前記管理情報とを比較し、前記管理情報に変更があったか否かを前記プロセス制御手段に通知する管理情報チェック手段として機能させ、
前記プロセス制御手段は、前記管理情報の変更があったときは前記アップデート処理を中止し、前記アップデート処理が開始される前の状態に戻す、
ことを特徴とする付記1記載のストレージシステムのアップデート処理プログラム。
(付記5) 前記プロセス制御手段は、前記複数のストレージ装置それぞれに接続される複数の前記コンピュータを管理する管理装置から前記コンピュータに向けて一斉に送信される指示に応じて、前記読み書き制御手段を前記同期モードで動作させる処理、前記プロセスに終了指示を出して処理を終了させる処理、及び前記新プロセスによるサービスを開始させる処理をそれぞれ実行し、処理が終了するごとに前記管理装置に終了結果を通知し、次の指示を待つ、
ことを特徴とする付記1記載のストレージシステムのアップデート処理プログラム。
(付記6) 前記プロセス制御手段は、1または複数の前記コンピュータが前記指示に応じた処理に失敗したときに前記管理装置によって発行されるロールバック指示を受けたときは、前記管理装置からの指示に応じて実行してきた前記アップデート処理の手順を逆順に辿り、前記アップデート処理が開始される前の状態に戻す、
ことを特徴とする付記5記載のストレージシステムのアップデート処理プログラム。
(付記7) 前記コンピュータを、少なくとも、前記アップデート処理の開始前と、前記アップデート処理の終了時とに、前記ストレージ装置に分散して格納される、仮想的な論理ボリュームを所定の記憶領域単位で分割した論理セグメントと、前記論理セグメントに対応付けられた前記ストレージ装置の実データ記憶領域を前記所定の記憶領域単位で分割したスライスとを関連付けた管理情報を収集し、前記アップデート処理の開始前の前記管理情報と、前記アップデート処理の終了時の前記管理情報とを比較し、前記管理情報に変更があったか否かを前記プロセス制御手段に通知する管理情報チェック手段として機能させ、
前記プロセス制御手段は、前記管理情報チェック手段によって前記管理情報の変更が検出されたときは、前記管理装置に対し前記管理情報に変更があったことを通知する、
ことを特徴とする付記6記載のストレージシステムのアップデート処理プログラム。
(付記8) 複数のストレージ装置に分散してデータを格納するストレージシステムのアップデート処理方法において、
所定のサービス処理を実行しているプロセスと、新プロセスの動作を制御するプロセス制御手段が、アップデートが要求されると、前記プロセスが前記サービス処理を実行中は前記ストレージ装置への書き込みデータをキャッシュメモリに蓄積し、蓄積データを所定のタイミングで前記ストレージ装置に書き込む非同期モードが選択される読み書き制御手段の動作モードを、前記書き込みデータを前記ストレージ装置に直接書き込む同期モードに切り替える指示を出す手順と、
同期/非同期指示手段が、前記プロセス制御手段の指示に従って、前記同期モードまたは前記非同期モードで前記プロセスまたは前記新プロセスの出力する前記書き込みデータを前記ストレージ装置に書き込む前記読み書き制御手段に対し、前記非同期モードから前記同期モードへ切り替える指示を出す手順と、
前記プロセス制御手段が、前記読み書き制御手段が前記同期モードで動作し、前記プロセスの前記書き込みデータが前記ストレージ装置に直接書き込まれている状態で前記プロセスに終了指示を出して前記サービス処理を終了させる手順と、
前記プロセス制御手段が、前記プロセスが前記サービス処理終了後に、前記新プロセスのサービス処理を開始させる手順と、
を有することを特徴とするストレージシステムのアップデート処理方法。
(付記9) 複数のストレージ装置に分散してデータを格納するストレージシステムにおいて、
前記ストレージ装置へのデータ書き込み要求を受け取ったときに、書き込みデータを前記ストレージ装置に直接書き込む同期モードと、前記書き込みデータをキャッシュメモリに蓄積し、蓄積データを所定のタイミングで前記ストレージ装置に書き込む非同期モードとを備えた読み書き制御手段に対し、前記同期モードまたは前記非同期モードのどちらでデータ書き込みを行うかを指示する同期/非同期指示手段と、所定のサービス処理を実行しているプロセスと、新プロセスの動作を制御し、入力された指示に応じて、前記同期/非同期指示手段に指示して前記プロセスが前記サービス処理を実行中は前記非同期モードに設定される前記読み書き制御手段を前記同期モードに切り替える処理、前記プロセスの出力する前記書き込みデータが前記ストレージ装置に直接書き込まれている状態で前記プロセスに終了指示を出して前記サービス処理を終了させる処理、及び前記プロセスが前記サービス処理終了後に前記新プロセスのサービス処理を開始させる処理を行い、処理が終了するごとに終了結果を通知するプロセス制御手段と、を備えたストレージノードと、
ネットワークを介して複数の前記ストレージノードに接続し、アップデート対象の前記プロセスを有する前記ストレージノードのアップデートの進行状況に関するアップデート管理情報を格納する管理情報記憶手段と、前記管理情報記憶手段に格納される前記アップデート管理情報に基づき、対象ストレージノードすべてに対し前記同期モードへの切り替えを指示し、前記対象ストレージノードすべての処理が成功したときは前記対象ストレージノードに対し前記プロセスの停止を指示し、前記対象ストレージノードすべての処理が成功したときは前記対象ストレージノードに対し前記新プロセスを起動させ前記新プロセスによるサービスを開始させるアップデート管理手段と、を備えた管理ノードと、
を有することを特徴とするストレージシステム。
発明の概要を示した図である。 本実施の形態のマルチノードストレージの構成例を示す図である。 ディスクノードのハードウェア構成例を示す図である。 マルチノードストレージにおいてアップデート処理を行う各部のソフトウェア構成を示した図である。 管理テーブルの一例を示した図である。 コマンドの発行処理に応じた管理テーブルの変化を示した図である。 アップデート処理の動作シーケンス(同期モードへの切り替えまでの手順)を示した図である。 アップデート処理の動作シーケンス(新プロセスへの切り替えまでの手順)を示した図である。 新プロセス起動に失敗したときの動作シーケンスを示した図である。 プロセスの同期化に失敗したときの動作シーケンスを示した図である。 プロセスのサービス停止に失敗したときの動作シーケンスを示した図である。 管理ノードのアップデート処理手順を示したフローチャートである。 ロールバック処理の手順を示したフローチャートである。 従来のマルチノードストレージのプロセスアップデートの手順を示した図である。
符号の説明
10 ストレージノード
11 通信手段
12 プロセス
13 新プロセス
14 読み書き(R/W)制御手段
15 プロセス制御手段
16 メタデータチェック手段
17 同期/非同期指示手段
20 ストレージ

Claims (7)

  1. 複数のストレージ装置に分散してデータを格納するストレージシステムにてコンピュータにアップデート処理を行わせるアップデート処理プログラムにおいて、
    前記コンピュータを、
    前記ストレージ装置へのデータ書き込み要求を受け取ったときに、書き込みデータを前記ストレージ装置に直接書き込む同期モードと、前記書き込みデータをキャッシュメモリに蓄積し、蓄積データを所定のタイミングで前記ストレージ装置に書き込む非同期モードとを備えた読み書き制御手段に対し、前記同期モードまたは前記非同期モードのどちらでデータ書き込みを行うかを指示する同期/非同期指示手段、
    前記非同期モードで所定のサービス処理を実行中の第1のプロセスに代わって前記サービス処理を実行可能な第2のプロセスをサービス停止状態にして起動し、前記第1のプロセスから前記第2のプロセスへのアップデートが要求されると、前記第1のプロセスの前記サービス処理の実行を、前記同期/非同期指示手段に指示して前記非同期モードから前記同期モードに切り替え、前記第1のプロセスが前記同期モードで実行中の前記サービス処理を終了させ、前記第1のプロセスが前記サービス処理終了した後に前記第2のプロセスのサービス処理を開始させるプロセス制御手段、
    として機能させることを特徴とするストレージシステムのアップデート処理プログラム。
  2. 前記ストレージ装置の記憶領域は、仮想的な論理ボリュームを所定の記憶領域単位で分割した論理セグメントと、前記論理セグメントに対応付けられた前記ストレージ装置の実データ記憶領域を前記所定の記憶領域単位で分割したスライスとを関連付けた管理情報によって管理されており、
    前記プロセス制御手段は、前記同期モードを指示する前に、前記複数のストレージ装置に分散して格納される前記管理情報を読み出し、前記第2のプロセスを、前記サービス処理を停止させた状態で起動しておく、
    ことを特徴とする請求項1記載のストレージシステムのアップデート処理プログラム。
  3. 前記コンピュータを、少なくとも、前記アップデート処理の開始前と、前記アップデート処理の終了時とに、前記ストレージ装置に分散して格納される、仮想的な論理ボリュームを所定の記憶領域単位で分割した論理セグメントと、前記論理セグメントに対応付けられた前記ストレージ装置の実データ記憶領域を前記所定の記憶領域単位で分割したスライスとを関連付けた管理情報を収集し、前記アップデート処理の開始前の前記管理情報と、前記アップデート処理の終了時の前記管理情報とを比較し、前記管理情報に変更があったか否かを前記プロセス制御手段に通知する管理情報チェック手段として機能させ、
    前記プロセス制御手段は、前記管理情報の変更があったときは前記アップデート処理を中止し、前記アップデート処理が開始される前の状態に戻す、
    ことを特徴とする請求項1記載のストレージシステムのアップデート処理プログラム。
  4. 前記プロセス制御手段は、前記複数のストレージ装置それぞれに接続される複数の前記コンピュータを管理する管理装置から前記コンピュータに向けて一斉に送信される指示に応じて、前記読み書き制御手段を前記同期モードで動作させる処理、前記第1のプロセスに終了指示を出して処理を終了させる処理、及び前記第2のプロセスによるサービスを開始させる処理をそれぞれ実行し、処理が終了するごとに前記管理装置に終了結果を通知し、次の指示を待つ、
    ことを特徴とする請求項1記載のストレージシステムのアップデート処理プログラム。
  5. 前記プロセス制御手段は、1または複数の前記コンピュータが前記指示に応じた処理に失敗したときに前記管理装置によって発行されるロールバック指示を受けたときは、前記管理装置からの指示に応じて実行してきた前記アップデート処理の手順を逆順に辿り、前記アップデート処理が開始される前の状態に戻す、
    ことを特徴とする請求項4記載のストレージシステムのアップデート処理プログラム。
  6. 複数のストレージ装置に分散してデータを格納するストレージシステムにて、コンピュータがアップデート処理を行うアップデート処理方法において、
    前記コンピュータが、
    前記ストレージ装置へのデータ書き込み要求を受け取ったときに、書き込みデータを前記ストレージ装置に直接書き込む同期モードと、前記書き込みデータをキャッシュメモリに蓄積し、蓄積データを所定のタイミングで前記ストレージ装置に書き込む非同期モードとを備えた読み書き制御手段に対し、同期/非同期指示手段により前記同期モードまたは前記非同期モードのどちらでデータ書き込みを行うかを指示可能であって、
    前記非同期モードで所定のサービス処理を実行中の第1のプロセスに代わって前記サービス処理を実行可能な第2のプロセスをサービス停止状態にして起動し、前記第1のプロセスから前記第2のプロセスへのアップデートが要求されると、前記第1のプロセスの前記サービス処理の実行を、前記同期/非同期指示手段に指示して前記非同期モードから前記同期モードに切り替え、前記第1のプロセスが前記同期モードで実行中の前記サービス処理を終了させ、前記第1のプロセスが前記サービス処理を終了した後に、前記第2のプロセスのサービス処理を開始させる、
    アップデート処理を行うことを特徴とするストレージシステムのアップデート処理方法。
  7. ストレージ装置と接続してアクセス管理を行うストレージノードと、アップデート処理を管理する管理ノードとを備え、複数の前記ストレージ装置に分散してデータを格納するストレージシステムにおいて、
    前記ストレージノードは、
    前記ストレージ装置へのデータ書き込み要求を受け取ったときに、書き込みデータを前記ストレージ装置に直接書き込む同期モードと、前記書き込みデータをキャッシュメモリに蓄積し、蓄積データを所定のタイミングで前記ストレージ装置に書き込む非同期モードとを備えた読み書き制御手段に対し、前記同期モードまたは前記非同期モードのどちらでデータ書き込みを行うかを指示する同期/非同期指示手段と、
    前記非同期モードで所定のサービス処理を実行中の第1のプロセスに代わって前記サービス処理を実行可能な第2のプロセスをサービス停止状態にして起動する起動処理を行い、前記第1のプロセスから前記第2のプロセスへのアップデートが要求されると、前記第1のプロセスの前記サービス処理の実行を、前記同期/非同期指示手段に指示して前記非同期モードから前記同期モードに切り替える切替処理を行い、前記第1のプロセスが前記同期モードで実行中の前記サービス処理を終了させる終了処理を行い、前記第1のプロセスが前記サービス処理を終了した後に、前記第2のプロセスのサービス処理を開始させる開始処理を行い、前記起動処理と前記切替処理と前記終了処理と前記開始処理が終了するごとに終了結果を前記管理ノードに通知する通知処理を行う、プロセス制御手段と、
    を備え、
    前記管理ノードは、
    ネットワークを介して複数の前記ストレージノードに接続し、前記第1のプロセスを有する前記ストレージノードのアップデートの進行状況に関するアップデート管理情報を格納する管理情報記憶手段と、
    前記管理情報記憶手段に格納される前記アップデート管理情報に基づき、対象ストレージノードすべてに対し前記同期モードへの切り替えを指示し、前記対象ストレージノードすべての処理が成功したときは前記対象ストレージノードに対し前記プロセスの停止を指示し、前記対象ストレージノードすべての処理が成功したときは前記対象ストレージノードに対し前記新プロセスを起動させ前記第2のプロセスによるサービスを開始させるアップデート管理手段と、
    を備えることを特徴とするストレージシステム。
JP2008304197A 2008-11-28 2008-11-28 ストレージシステムのアップデート処理プログラム、アップデート処理方法及びストレージシステム Expired - Fee Related JP5217966B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008304197A JP5217966B2 (ja) 2008-11-28 2008-11-28 ストレージシステムのアップデート処理プログラム、アップデート処理方法及びストレージシステム
US12/621,648 US20100138625A1 (en) 2008-11-28 2009-11-19 Recording medium storing update processing program for storage system, update processing method, and storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008304197A JP5217966B2 (ja) 2008-11-28 2008-11-28 ストレージシステムのアップデート処理プログラム、アップデート処理方法及びストレージシステム

Publications (2)

Publication Number Publication Date
JP2010128885A JP2010128885A (ja) 2010-06-10
JP5217966B2 true JP5217966B2 (ja) 2013-06-19

Family

ID=42223839

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008304197A Expired - Fee Related JP5217966B2 (ja) 2008-11-28 2008-11-28 ストレージシステムのアップデート処理プログラム、アップデート処理方法及びストレージシステム

Country Status (2)

Country Link
US (1) US20100138625A1 (ja)
JP (1) JP5217966B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9766873B2 (en) 2012-08-17 2017-09-19 Tripwire, Inc. Operating system patching and software update reconciliation
US20140164323A1 (en) * 2012-12-10 2014-06-12 Transparent Io, Inc. Synchronous/Asynchronous Storage System
JP6175785B2 (ja) * 2013-01-31 2017-08-09 日本電気株式会社 ストレージシステム、ディスクアレイ装置及びストレージシステムの制御方法
CN107343012B (zh) * 2016-04-28 2019-12-03 杭州海康威视数字技术股份有限公司 视频存储系统及其视频数据发送方法
CN109213526B (zh) * 2017-06-30 2020-03-03 清华大学 用于确定处理器操作的方法及装置
JP7115322B2 (ja) * 2019-01-08 2022-08-09 富士通株式会社 ストレージ装置、ストレージ制御装置及びストレージ制御プログラム
US11061603B1 (en) * 2019-11-26 2021-07-13 Veritas Technologies Llc Systems and methods for switching replication modes in a volume replication system
CN113064546B (zh) * 2020-01-02 2024-02-09 阿里巴巴集团控股有限公司 一种文件系统的管理方法、装置、文件系统及存储介质
CN114077639A (zh) * 2020-08-20 2022-02-22 北京字节跳动网络技术有限公司 数据写入方法、装置、电子设备和存储介质
CN113342370A (zh) * 2021-05-25 2021-09-03 北京小米移动软件有限公司 一种配置更新的方法、装置、电子设备及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6874101B2 (en) * 1991-01-31 2005-03-29 Hitachi, Ltd. Storage unit subsystem
JP3409859B2 (ja) * 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
US6192370B1 (en) * 1998-06-19 2001-02-20 Sap Aktiengesellschaft Method and system for rapid memory-resident processing of transactional data
WO2004104845A1 (ja) * 2003-05-21 2004-12-02 Fujitsu Limited ストレージシステム
US20040249934A1 (en) * 2003-06-06 2004-12-09 Anderson Jeff M. Updating print server software based on update emails
JP3776438B2 (ja) * 2004-12-03 2006-05-17 株式会社日立製作所 記憶装置
JP4341571B2 (ja) * 2005-03-29 2009-10-07 日本電気株式会社 記憶装置システムおよびその制御方法、制御プログラム
JP2007148812A (ja) * 2005-11-28 2007-06-14 Hitachi Ltd ストレージシステム及びその負荷分散方法
JP4486609B2 (ja) * 2006-03-31 2010-06-23 富士通株式会社 ストレージ装置、ストレージ装置のストレージ制御ファームウェアの活性プログラム交換方法及びストレージ制御ファームウェアの活性プログラム交換のためのプログラム
JP2008225763A (ja) * 2007-03-12 2008-09-25 Fujifilm Corp ファームウェアの更新方法、プログラム及び電子機器
WO2008136075A1 (ja) * 2007-04-20 2008-11-13 Fujitsu Limited ストレージ管理プログラム、ストレージ管理装置およびストレージ管理方法
US8145932B2 (en) * 2008-06-30 2012-03-27 Dell Products L.P. Systems, methods and media for reducing power consumption in multiple controller information handling systems

Also Published As

Publication number Publication date
JP2010128885A (ja) 2010-06-10
US20100138625A1 (en) 2010-06-03

Similar Documents

Publication Publication Date Title
JP5217966B2 (ja) ストレージシステムのアップデート処理プログラム、アップデート処理方法及びストレージシステム
US8762648B2 (en) Storage system, control apparatus and control method therefor
EP2078254B1 (en) Apparatus, system, and method for an improved synchronous data mirror swap
KR100987746B1 (ko) 작업 관리 장치, 클러스터 시스템 및 작업 관리 프로그램을기록한 컴퓨터 판독 가능한 기록 매체
JP4581500B2 (ja) ディザスタリカバリシステム、プログラム及びデータベースのリカバリ方法
US8407435B2 (en) Efficiently creating a snapshot of a large consistency group using multiple commands including a snapshot preparation command
JP4475598B2 (ja) ストレージシステム及びストレージシステムの制御方法
US20060212668A1 (en) Remote copy method and storage system
US10809997B2 (en) Information processing apparatus and program update control method
JP2011060055A (ja) 仮想計算機システム、仮想マシンの復旧処理方法及びそのプログラム
US7685461B2 (en) Method, apparatus and program storage device for performing fault tolerant code upgrade on a fault tolerant system by determining when functional code reaches a desired state before resuming an upgrade
JP5286212B2 (ja) ストレージクラスタ環境でのリモートコピー制御方法及びシステム
JP5521595B2 (ja) ストレージシステム及びストレージ制御方法
JP2009026091A (ja) 接続管理プログラム、接続管理方法および情報処理装置
JP4322240B2 (ja) 再起動方法、システム及びプログラム
KR20150111608A (ko) 가상화 서버의 이중화를 위한 제어 방법 및 이를 위한 가상화 제어 장치
US8880552B2 (en) Database system and database control method
CN111158955A (zh) 一种基于卷复制的高可用系统以及多服务器数据同步方法
JPWO2010100757A1 (ja) 演算処理システム、再同期方法、およびファームプログラム
US20090150459A1 (en) Highly available multiple storage system consistency heartbeat function
US20160070491A1 (en) Information processor, computer-readable recording medium in which input/output control program is recorded, and method for controlling input/output
US20150019822A1 (en) System for Maintaining Dirty Cache Coherency Across Reboot of a Node
JP2009265973A (ja) データ同期システム、障害復旧方法、及び、プログラム
JPH1185594A (ja) リモートコピー用情報処理システム
JP5309816B2 (ja) データ管理プログラム、データ管理装置、およびデータ管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110808

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120724

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120921

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130218

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

Free format text: PAYMENT UNTIL: 20160315

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees