説明

計算機システム及び計算機システムの系切替制御方法

【課題】OSの種別に係わらずメモリダンプを取得しながら系切替を高速で行うことを目的とする。
【解決手段】第1の計算機及び第2の計算機とストレージ装置との間で、第1の計算機からのI/O出力を一時的に格納するバッファと、バッファの内容をストレージ装置に出力する制御部と、を備えたI/O処理部を備えて、管理計算機は系切替の契機で、第1の計算機のI/O出力をI/O処理部のバッファへ格納し、ミラーボリュームの第1の記憶部と第2の記憶部を分離させ、バッファと第2の記憶部とを接続し、第2の計算機と第1の記憶部とを接続させ、バッファの内容を第2の記憶部に出力し、第2の計算機を第1の記憶部から起動させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、障害の発生した計算機を切り替えるコールドスタンバイシステムに関し、特に系切替を高速化することによる可用性を向上させる技術に関する。
【背景技術】
【0002】
計算機システムにおいて、障害が発生した計算機のOSが出力するメモリダンプは、障害の原因を特定する上で有益な情報である。また、障害が発生した計算機システムを早期に復旧させ、業務を再開することは計算機システムにとって重要である。例えば、コールドスタンバイシステムにおいて、系切替時に障害解析用のメモリダンプを取得する方法が提案されている。現用系におけるメモリダンプ出力が完了した後、予備系へLU(Logical Unit)を接続して系切替を実施するが、メモリダンプの採取と系切替がシーケンシャルであるため切替までに時間を要する。そのため、メモリダンプを採取しつつ、障害発生後に速やかに予備系で業務を再開させる、迅速なシステム復旧の実現が望まれている。また、OSによってはメモリダンプ用の領域をブートボリュームに持つ必要があり、メモリダンプ用の領域を分離出来ない。
【0003】
また、障害発生時のメモリダンプを高速化する技術としては特許文献1が知られている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−257486
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来のコールドスタンバイシステムでは、メモリダンプの出力が完了するのを待って、系切替を行うか、一部のOSは対応していないブートボリュームとメモリダンプ出力先となるLUを分離するシステム構成にせざるを得なかった。
【0006】
また、上記特許文献1では、メモリを二重化することで、系切替を実施する際にメモリの内容を保存出来るシステム構成となっている。ただし、特許文献1ではメモリダンプを取得する計算機が同一のため、系切替時にメモリダンプを採取できない、という問題があった。
【0007】
そこで、本発明は上記問題点に鑑みてなされたもので、OSの種別に係わらずメモリダンプを取得しながら系切替を高速で行うことを目的とする。
【課題を解決するための手段】
【0008】
本発明は、プロセッサとメモリ及びI/Oインターフェースを備える第1の計算機と、プロセッサとメモリ及びI/Oインターフェースを備える第2の計算機と、前記第1の計算機と第2の計算機からアクセス可能なストレージ装置と、ネットワークを介して前記第1の計算機と第2の計算機に接続されて、所定のタイミングで前記第1の計算機を、前記第2の計算機に引き継ぐ系切替を行う管理計算機と、を備え、前記第1の計算機が、所定の条件となったときに前記メモリの内容を前記ストレージ装置に書き込むI/O出力を送信するメモリダンプ部を有する計算機システムにおいて、前記ストレージ装置は、前記第1の計算機がアクセスする第1の記憶部と、前記第1の記憶部のミラーリングを行う第2の記憶部と、を有し、前記第1の計算機及び第2の計算機と前記ストレージ装置との間で、前記I/O出力を一時的に格納するバッファと、前記バッファの内容を前記ストレージ装置に出力する制御部と、を備えたI/O処理部と、前記I/O処理部と前記第1の計算機及び第2の計算機が前記ストレージ装置をアクセスする経路を切り替えるスイッチ部と、を備え、前記管理計算機は、前記所定のタイミングとなったときに、前記第1の計算機の前記I/O出力を前記バッファへ格納する指令を前記前記I/O処理部に送信するバッファリング指示部と、前記第1の記憶部と第2の記憶部を分離する指令を前記ストレージ装置に送信するストレージ制御部と、前記バッファと前記第2の記憶部とを接続し、前記第2の計算機と前記第1の記憶部とを接続する指令を前記スイッチ部に送信する経路切替部と、前記バッファの内容を前記第2の記憶部に出力する指令を前記I/O処理部へ送信する書き出し指示部と、前記第2の計算機を前記第1の記憶部から起動させる系切替部と、を有する。
【発明の効果】
【0009】
したがって、本発明は、障害等の所定のタイミングで、現用系の第1の計算機からのI/O出力の収集をOSの種類にかかわらず確実に行いながらも、予備系の第2の計算機への系切替を迅速に行うことが可能となる。特に、ミラーボリュームの第1の記憶部と第2の記憶部をスプリットした後には、第1の計算機のI/O出力と第2の計算機への系切替を並列的に行うことで、I/O出力の完了を待たずに系切替を開始できるので、コールドスタンバイによるフェイルオーバの高速化を図ることができる。
【図面の簡単な説明】
【0010】
【図1】本発明の第1の実施形態を示し、系切替を行う計算機システムの一例を示すブロック図である。
【図2】本発明の第1の実施形態を示し、管理サーバの構成を示すブロック図である。
【図3】本発明の第1の実施形態を示し、現用系のサーバ102または予備系のサーバ106の構成を示すブロック図である。
【図4】本発明の第1の実施形態を示し、PCIex−SW107及びアダプタの構成を示すブロック図である。
【図5】本発明の第1の実施形態を示し、PCIex−SW107を主体とするフェイルオーバの概略を示すブロック図である。
【図6】本発明の第1の実施形態を示し、サーバ管理テーブル221を示す説明図である。
【図7】本発明の第1の実施形態を示し、LUマッピング管理テーブル222を示す説明図である。
【図8】本発明の第1の実施形態を示し、LU管理テーブル223を示す説明図である。
【図9】本発明の第1の実施形態を示し、PCIex−SW107のI/O処理機構322内のI/Oバッファ管理テーブル411を示す説明図である。
【図10】本発明の第1の実施形態を示し、管理サーバ101の制御部110で行われる処理の一例を示すフローチャートである。
【図11】本発明の第1の実施形態を示し、管理サーバ101のI/Oバッファリング指示部211で行われる処理の一例を示すフローチャートである。
【図12】本発明の第1の実施形態を示し、管理サーバ101の経路切替部213で行われる処理の一例を示すフローチャートである。
【図13】本発明の第1の実施形態を示し、管理サーバ101のI/Oバッファ書出し指示部214で行われる処理の一例を示すフローチャートである。
【図14】本発明の第1の実施形態を示し、管理サーバ101のN+M切替指示部215で行われる処理の一例を示すフローチャートである。
【図15】本発明の第1の実施形態を示し、I/O処理機構322のI/Oバッファリング制御部401で行われる処理の一例を示すフローチャートである。
【図16】本発明の第1の実施形態を示し、管理サーバ101が管理する業務及びSLA管理テーブル224の一例を示す説明図である。
【図17】本発明の第2の実施形態を示し、第2の実施形態を示すサーバ102(または106)のブロック図である。
【図18】本発明の第2の実施形態の処理の概要を示すブロック図である。
【図19】本発明の第3の実施形態を示し、PCIex−SW107を主体とするフェイルオーバの概略を示すブロック図である。
【図20】本発明の第1の実施形態を示し、メモリダンプの書き込みが完了したLU1を、予め設定した保守用の領域へ退避させる例を示すブロック図である。
【発明を実施するための形態】
【0011】
以下、本発明の一実施形態を添付図面に基づいて説明する。
【0012】
図1は、本発明の第1の実施形態を示し、系切替を行う計算機システムの一例を示すブロック図である。
【0013】
管理サーバ101は、NW−SW(管理用ネットワークスイッチ)103を介して、NW−SW103の管理インタフェース(管理I/F)113、NW−SW(業務用ネットワークスイッチ)104の管理インタフェース114へ接続されており、管理サーバ101から各NW−SWのVLAN(Virtual LAN)を設定することが可能である。
【0014】
NW-SW103は、管理用のネットワークを構成し、現用系のサーバ102や予備系のサーバ106に対して、OSやアプリケーションの配布や電源制御等の運用管理をするためのネットワークである。NW−SW104は、業務用のネットワークを構成し、サーバ102、106上で実行される業務用アプリケーションが使用するネットワークである。なお、NW−SW104は、WAN等に接続されて計算機システムの外部のクライアント計算機と通信を行う。
【0015】
管理サーバ101は、FC−SW(ファイバーチャネル・スイッチ)511を介してストレージサブシステム105に接続される。管理サーバ101は、ストレージサブシステム105内のN個のLU(Logical Unit)1〜LUnを管理する。
【0016】
管理サーバ101上では、サーバ102、106を管理する制御部110が実行され、管理テーブル群111を参照および更新する。管理テーブル群111は制御部110によって所定の周期などで更新される。
【0017】
管理対象となるサーバ102は、N+Mコールドスタンバイを提供するシステムにおける現用系サーバであり、同様に予備系である物理サーバ106とともに、PCIex−SW107とI/Oデバイス(図中、HBA)を介して、NW−SW103および104に接続される。PCIex−SW107には、PCI Express規格のI/Oデバイス(NIC(Network Interface Card)、HBA(Host Bus Adapter)、CNA(Converged Network Adapter)、といったI/Oアダプタ)が接続されている。一般的に、PCIex−SW107は、マザーボード(またはサーバブレード)より外へPCI Expressのバスを延長し、さらに多数のPCI−EXpressデバイスを接続することを可能とするI/Oスイッチを構成するハードウェアである。また、N+Mコールドスタンバイシステムは、N個の現用系のサーバ102と、M個の予備系のサーバ106で構成される。現用系のサーバ102と予備系のサーバ106の数は、N>Mとするのが望ましい。
【0018】
本実施形態の計算機システムでは、PCIex−SW107内の通信経路を切り替えることで、N+Mコールドスタンバイシステムを実現する。N+Mコールドスタンバイシステムでは、現用系のサーバ102に障害が発生すると、当該サーバ102の業務を予備系のサーバ106に引き継ぐ系切替が管理サーバ101によって実施される。系切替の際、障害が発生した瞬間から特定のI/O出力として出力される現用系サーバ102のメモリダンプを漏れなく収集し、かつ、障害発生から間を置かずに、障害が発生した現用系サーバ102で稼働していた業務システムを予備系のサーバ106へフェイルオーバさせる。これにより、収集したメモリダンプから障害原因を特定しつつ、業務システムは再起動程度の寸断で動き続けることが可能になる。
【0019】
また、管理サーバ101はPCIex−SW107の管理インターフェース1070に接続され、サーバ102、106とI/Oデバイスの接続関係を管理する。
【0020】
また、サーバ102、106は、PCIex−SW107に接続されたI/Oデバイス(図中HBA)を介してストレージサブシステム105のLU1〜LUnにアクセスする。また、ディスクインターフェース203は、管理サーバ101の内蔵ディスクやストレージサブシステム105のインターフェースである。また、現用系のサーバ102は図中#1〜#3で識別し、予備系のサーバ106は、図中#S1、#S2で識別する。
【0021】
図2は、管理サーバ101の構成を示すブロック図である。管理サーバ101は、演算を処理するCPU(Central Processing Unit)201、CPU201で演算するプログラムや、プログラムの実行に伴うデータを格納するメモリ202、プログラムやデータを格納するストレージ装置とのディスクインタフェース203、IPネットワークを介した通信のためのネットワークインタフェース204から構成される。
【0022】
図2では、ネットワークインタフェース204及びディスクインタフェース203を、それぞれ代表して一つずつ示しているが、各々が複数あるものとする。たとえば、管理用ネットワークのNW−SW103と業務用ネットワークのNW−SW104との接続は、各々異なるネットワークインタフェース204を用いる。
【0023】
メモリ202には、制御部110および管理テーブル群111が格納されている。制御部110は、障害検出部210、I/Oバッファリング指示部211(図11参照)、ストレージ制御部212、経路切替部213(図12参照)、I/Oバッファ書出し指示部214(図13参照)、及びN+M切替指示部215(図14参照)を有する。
【0024】
障害検出部210は、サーバ102、106の障害を検知し、障害を検知したときにはN+M切替指示部215により後述のサーバ管理テーブル221を参照して上述の系切替を実施する。なお、障害の検知及びフェイルオーバについては公知または周知の技術を適用すればよいので、本実施形態では詳述しない。
【0025】
ストレージ制御部212は後述のLU管理テーブル223を用いてストレージサブシステム105のLU1〜LUnを管理する。
【0026】
管理テーブル群111は、サーバ管理テーブル221(図6参照)、LUマッピング管理テーブル222(図7参照)、LU管理テーブル223(図8参照)、業務及びSLA(Service Level Agreement)管理テーブル224(図16参照)を有する。
【0027】
各テーブルの情報収集はOS(図示省略)の標準インタフェースや情報収集用プログラムを使用した自動収集でも良いし、手動で利用者(または管理者)に入力させても良い。ただし、規則や方針といった情報のうち物理的要件や法律の要請で限界値が決定されるもの以外は、利用者に予め入力させる必要があり、入力用のインタフェースを備えてもよい。また、利用者の方針によって、限界値に至らない運用をする場合も同様に条件を入力するインタフェースを備えてもよい。
【0028】
管理サーバ101の種別については、物理サーバ、ブレードサーバ、仮想化されたサーバ、論理分割または物理分割されたサーバなどのいずれであっても良く、いずれを使った場合も本発明の効果を得ることが出来る。
【0029】
図3は、現用系のサーバ102または予備系のサーバ106の構成を示すブロック図である。現用系のサーバ102と予備系のサーバ106の構成が一致する必要性は必ずしもない。ただし、構成が一致する場合、N+Mコールドスタンバイにて切替えを実施した場合に、問題が発生しにくい。これは、N+Mコールドスタンバイによる切替動作が、OSにとっては再起動と同じように見えることに起因する。この効果は、本願でも有効である。以下では、現用系のサーバ102と予備系のサーバ106が同一の構成である場合について説明する。
【0030】
サーバ102、106は、演算を処理するCPU301、CPU301で演算するプログラムや、プログラムの実行に伴いデータを格納するメモリ302、プログラムやデータを格納するストレージ装置とのディスクインタフェース304、IPネットワークを介して通信を行うためのネットワークインタフェース303、電源制御や各インタフェースの制御を行うBMC(Basement Management Controller)305、PCIex−SWに接続するためのPCI−Expressインタフェース306を有する。
【0031】
メモリ302上のOS311がCPU301によって実行され、サーバ102または106内のデバイス及びタスクの管理を行っている。OS311の下で、業務を提供するアプリケーション321や監視プログラム322などが動作する。監視プログラム322はサーバ102、106の障害を検知し、管理サーバ101に通知する。OS311は、所定の条件でメモリ302の内容を、ストレージサブシステム105に書き込むメモリダンプを出力するメモリダンプ部3110を有する。なお、OS311がメモリダンプ部3110を機能させる所定の条件は、システム障害の発生時や、所定のコマンドの受け付け時などである。
【0032】
図3では、ネットワークインタフェース303、ディスクインタフェース304およびPCI−Expressインタフェース306を、それぞれ代表して一つずつ示しているが、各々が複数あるものとする。たとえば、管理用ネットワークのNW−SW103と業務用ネットワークのNW−SW104との接続は、各々異なるネットワークインタフェース303を用いる。あるいは、サーバ102、106は、図1のようにPCIexインターフェースを介して接続されたNICを経由してNW−SW103と業務用ネットワークのNW−SW104に接続してもよい。
【0033】
現用系のサーバ102に障害が発生しておらずN+M切替が発生していない場合、予備系のサーバ106のメモリ302上ではOS311や他のプログラムは動作していない。ただし、情報収集や障害が発生していないかをチェックするプログラムが所定の周期などで実行されることはある。
【0034】
図4は、PCIex−SW107を中心に、現用系のサーバ102、予備系のサーバ106と、PCI−Expressのアダプタ451−1〜451−5(NIC、HBA、CNAなどのI/Oデバイス)およびそれらを格納したアダプタラック461やアダプタ451との接続構成を示している。なお、以下ではアダプタ451−1〜451−5の総称をアダプタ451とする。
【0035】
PCIex−SW107は、現用系のサーバ102および予備系のサーバ106と、PCIexインタフェース306を介して接続されている。また、PCIex−SW107は、複数のPCI−expressアダプタ451に接続されている。アダプタ451は、アダプタラック461に収められていても良いし、アダプタ451が直接、PCIex−SW107に接続されていても良い。
【0036】
PCIex−SW107は、I/O処理機構322を備え、現用系のサーバ102または予備系のサーバ106がアダプタ451に接続される際に、I/O処理機構322を経由するパスと経由しないパスを持つ。本実施形態では、現用系のサーバ102のメモリダンプを漏れなく取得する機構の動作には、I/O処理機構322がメモリダンプを一時的に保持するバッファ領域443と、バッファ領域443を制御する制御部441ならびに管理テーブル群442を備える。管理テーブル群442は、制御部441によって所定の周期、あるいは管理サーバ101からの構成変更の指令などに応じて更新される。
【0037】
制御部441は、アダプタ(I/Oデバイス)451と現用系のサーバ102及び予備系のサーバ106の接続を制御し、バッファ領域443へのアクセスを制御するI/Oバッファリング制御部401から構成されている(図15参照)。
【0038】
管理テーブル群442は、I/Oバッファリング管理テーブル411から構成されている(図9参照)。
【0039】
また、PCIex−SW107は、後述するように、サーバ102、106に接続されるポート(上流ポート)と、アダプタ451−1〜451−5に接続されるポート(下流ポート)を備える。制御部441は、上流ポートと下流ポートの接続関係を変更することで、サーバ102、106に割り当てるアダプタ451−1〜451−5を変更することができる。なお、図示の例では、アダプタ451−1〜451−5が5つの場合を示しているが、図1に示すNIC、HBAのように、多数のアダプタ451を備えることができる。また、本実施形態では、アダプタ451−1〜451−3がHBAで構成された例を示す。
【0040】
図5は、PCIex−SW107を主体とするフェイルオーバの概略を示すブロック図である。図5の例は、現用系のサーバ102(以下、現用系サーバ#1)で障害が発生して、現用系サーバ#1のメモリダンプを行いながら、予備系のサーバ106(以下、予備系サーバ#S1)に系切替を行う例を示している。
【0041】
前提条件としては、現用系サーバ#1は、PCIex−SW107のポートa531に接続され、予備系サーバ#S1はポートc533に接続される。また、PCIex−SW107を介して現用系サーバ#1に割り当てられたストレージサブシステム105の記憶領域は、LU2(522−2)がポートy536に接続されて主ボリュームとして機能する。LU2にはOSのブートイメージ、業務アプリケーション等が格納される。また、LU1(522−1)はLU2の副ボリュームとして設定され、ミラーボリュームが構成される。ポートy536にはHBAで構成されたアダプタ451−2が接続され、FC−SW511を介してLU2に接続される。また、ポートy535にはHBAで構成されたアダプタ451−1が接続される。
【0042】
現用系サーバ#1がミラーボリュームの主ボリュームであるLU2にデータを書き込むと、ストレージサブシステム105のミラーリング機能によって、LU2の内容が副ボリュームLU1に複製される。
【0043】
PCIex−SW107は、ポートa531とポートy536を接続し、現用系サーバ#1からHBAで構成されたアダプタ451−2を介して主ボリュームのLU2にアクセスする。LU2に書き込まれたデータは、ストレージサブシステム105によってLU1n複製される。また、LU2(及びLU1)には、障害が発生したときに現用系サーバ#1のメモリ302の内容をダンプする領域として、メモリダンプ用仮想領域542が設定される。
【0044】
管理サーバ101は、(1)現用系サーバ#1(または他の現用系のサーバ102)から送られてくる障害通知501を受信した契機で、(2)I/O処理機構322へI/Oバッファリング指示を出し、ポートa531とポートy536が接続されていた構成から、ポートa531とI/O処理機構322を接続する。そして、I/O処理機構内のバッファ領域443へ、障害が発生した現用系サーバ#1のI/O(メモリダンプ)を蓄積可能な構成へ変更する(502)。
【0045】
障害が発生した現用系サーバ#1は、障害発生と同時にメモリダンプを出力(送信)しており、メモリダンプの一部は既に主VOLであるLU2(522−2)のメモリダンプ用仮想領域542へ出力されている。本実施形態では、LU2(522−2)を副ボリュームLU1とミラー構成とすることで、既に出力されたメモリダンプを漏らすことなく副ボリュームであるLU1にもコピーしておく。そして、I/O処理機構322は、現用系のサーバ102からのメモリダンプをバッファ領域443に蓄積する。I/O処理機構523はバッファ領域443にバッファリングしたメモリダンプを続けて書き込むことで、全てのメモリダンプのデータを回収することが可能になる。
【0046】
(3)管理サーバ101のストレージ制御部212が、主ボリュームのLU2と副ボリュームのLU1のミラーリングをスプリットする指示を出す(503)。なお、ストレージ制御部212はスプリット前に、強制的にミラーリングの同期をとるよう指示を出しても良い。強制的にミラー同期処理を入れる場合、同期処理が完了してからスプリットを実行する。次に、ストレージ制御部212スプリットした副ボリュームのLU1を主ボリュームに変更するよう指示を出す。これにより、障害発生と同時に主ボリュームのLU2のメモリダンプ用仮想領域542に書き込まれたメモリダンプを持つLU1、2が2つ作成されたことになる。どちらも、サーバ102または106に接続し、再起動することで業務を再開することが出来、また、メモリダンプを引き続いて書き込んでも漏れなくメモリダンプを採取することが可能である。
【0047】
ここで、予備系のサーバ106に接続して業務を再開するLU1と、副ボリュームとして、ある別のLUn(第3の記憶部)をミラー構成のペアとすることで、再度、障害が発生しても、本発明の効果を得つつ、別のシステムに高速に切替えることが可能になる。
【0048】
(4)経路切替部213(図12参照)が、I/O処理機構322と先の2つの主ボリュームのLU1を接続する(504)。すなわち、I/O処理機構523のバッファ領域443とポートx535を接続し、HBA451−1を介してLU1に接続する。このとき、元々、副ボリュームであったLU1を選択し、メモリダンプを書き出す先として選択しても良いし、予備系のサーバ106に接続するようにしても良い。LU1をメモリダンプの書き出し先として選択すると、残ったLU2(最初から主ボリュームで、元々業務を提供していたLU522−2)は予備系のサーバ106(#S1)に接続することになる。この構成をとるメリットは、HBA451−2が切替前後で変わらないことである。これにより、予備系サーバ#S1を稼動させて業務を提供するOSやミドルウェアをはじめとするソフトウェア群からは、現用系サーバ#1から予備系サーバ#S1に代わっただけ(サーバ部分(主にCPUやメモリ)のみが代わっただけ)のようになるため、切替後の稼動に悪影響を及ぼしにくい。悪影響には、起動しない、だけでなく、起動後にデバイスが変わったとOSが認識することによるデバイスドライバの再組み込みや、再組み込みによるOS設定情報の破棄(再設定が必要になる)を回避することが出来る。しかし、HBA451−2が他のHBAに変わることで特に業務継続に支障がないことが分かっていたり、対策を実施している場合、どちらのLU1、2を使っても良い。例えば、本実施形態ではI/O処理機構322とPCIex−SW107のポートx535を接続してバッファ領域443の内容を書き込む場合を詳述する。
【0049】
この場合、障害が発生した現用系サーバ#1は、PCIex−SW107のポートa531と接続されているため、I/O処理機構322を介して、元々副ボリュームとしてペアを組んでいたLU2に接続されることになる。
【0050】
(5)I/Oバッファ書出し指示部214(図13参照)が、I/O処理機構322へバッファ領域443に蓄積しているメモリダンプを書き出すよう指示を出す(505)。これにより、LU1のメモリダンプ用仮想領域542にバッファリングされた後のデータがバッファ領域443から書き加えられていく。
【0051】
このようにして、障害発生と同時に書き出されるメモリダンプのデータを漏らすことなく、LU1に格納することが可能になる。
【0052】
(6)N+M切替指示部215(図14)が、PCIex−SW107にLU2と予備系サーバ#S1を接続するよう指示する。具体的には、PCIex−SW107のポートc533とポートy536を接続する(506)。
【0053】
上記のようにして、ブート用LU2とメモリダンプ用仮想領域542が同じLUまたはひとつのボリュームにしかメモリダンプ用仮想領域542の存在を許さない種類のOSでも、メモリダンプを採取しつつ、予備系サーバ#S1への切替と再起動を実施することが可能になる。
【0054】
上記の(4)、(5)と(6)は並行して処理が実行されても良く、並行して実施することで予備系のサーバ106での起動開始を早められ、更なる高速切替を実現できる。
【0055】
また、メモリダンプの書き込みが完了したLU1は、保守用の領域へ退避させたり、アクセス制限するなどして保護することで、操作ミスによるメモリダンプを採取したLU1の喪失を防ぐことができ、本実施形態の効果を更に高めることが可能である。この例については、図20に後述する。
【0056】
図6は、サーバ管理テーブル221を示す説明図である。サーバ管理テーブル221は管理サーバ101の制御部110で管理される。
【0057】
カラム601には、サーバ102、106の識別子を格納しており、本識別子によって各サーバ102、106を一意に識別する。カラム601へ格納するデータは、本テーブルで使用される各カラムのいずれか、または複数カラムを組み合わせたものを指定することで入力を省略することが出来る。また、識別子は昇順などで管理サーバ101等が自動的に割り振っても良い。
【0058】
カラム602には、UUID(Universal Unique IDentifier)が格納されている。UUIDは、重複しないように形式が規定された識別子である。そのため、各サーバ102、106に対応して、UUIDを保持することにより、確実なユニーク性を保証する識別子となる。ただし、カラム601には、システム管理者がサーバを識別する識別子を設定すれば良く、また管理する対象となるサーバ102,106間で重複することがなければ問題ないため、UUIDを使うことが望ましいものの必須とはならない。例えば、カラム601のサーバ識別子には、MACアドレス、WWN(World Wide Name)などを用いても良い。
【0059】
カラム603には、サーバの種別として、現用系サーバか予備系サーバかを格納している。また、系切替時にはどのサーバからの切替を受け付けたかも格納しても良い。
【0060】
カラム604には、サーバ102,106のステータスが格納されており、問題がなければ正常、障害が発生していれば障害を、それぞれ表すステータスが格納されている。障害発生時には、メモリダンプを書き出し中などの情報を格納しても良い。
【0061】
カラム605(カラム621〜カラム623)は、アダプタ451に関する情報を格納している。カラム621には、アダプタ451のデバイス種別を格納している。HBA(Host Bus Adaptor)やNICやCNA(Converged Network Adapter)などが格納される。カラム622には、HBAの識別子であるWWN、NICの識別子であるMACアドレスが格納されている。
【0062】
カラム606には、現用系のサーバ102や予備系のサーバ106がアダプタ451を介して接続しているNW−SW103、104やFC−SW511に関する情報が格納されている。種別や接続ポートおよびセキュリティ設定情報が格納されている。
【0063】
カラム607には、サーバのモデルを格納している。インフラに関する情報であり、性能や構成可能なシステム限界を知ることが出来る情報である。また、構成が同じか否かを判別することが出来る情報である。
【0064】
カラム608は、サーバの構成を格納している。プロセッサのアーキテクチャ、シャーシやスロットなどの物理位置情報、特徴機能(ブレード間SMP:Symmetric Multi-Processing、HA構成などの有無)を格納している。
【0065】
カラム609には、サーバの性能情報を格納している。
【0066】
図7は、LUマッピング管理テーブル222を示す説明図である。LUマッピング管理テーブル222は、管理サーバ101の制御部110で管理され、LU522とアダプタ451とサーバ102、106との接続関係を格納している。
【0067】
カラム701には、ストレージサブシステム105内のLUの識別子を格納しており、本識別子によって各LUを一意に識別する。
【0068】
カラム702(カラム721〜カラム722)には、アダプタ451に関する情報を格納している。カラム721には、デバイス種別を格納している。HBA(Host Bus Adaptor)やNICやCNA(Converged Network Adapter)などが格納される。カラム722には、HBAの識別子であるWWN、NICの識別子であるMACアドレスが格納されている。
【0069】
カラム703には、PCIex−SW情報を格納している。PCIex−SW107のどのポートとポートが接続関係にあるか、また、I/O処理機構322との接続関係を格納している。
【0070】
図8は、LU管理テーブル223を示す説明図である。LU管理テーブル223は、管理サーバ101の制御部110で管理され、LUの種別やミラーリングの有無、ミラーのペア、ステータスを管理している。
【0071】
カラム801には、LUの識別子を格納しており、本識別子によって各LUを一意に識別する。
【0072】
カラム802には、LU種別を格納している。主ボリュームか副ボリュームか、といったミラーリングの主従関係を示す情報などが格納されている。
【0073】
カラム803には、ミラーリングを組んでいるペアとなる副ボリュームのLUを格納している。
【0074】
カラム804には、LUのステータスを格納している。ミラーリング状態、スプリット中、副ボリュームから主ボリュームへ変更中、ミラーリングする予定である予約、などを格納している。
【0075】
図9は、PCIex−SW107のI/O処理機構322内のI/Oバッファリング管理テーブル411を示す説明図である。I/Oバッファリング管理テーブル411は、制御部441によって管理され、バッファ領域443が接続されているサーバ102やアダプタ451および、バッファ領域443のステータスを管理している。
【0076】
カラム901は、I/Oバッファの識別子を格納しており、本識別子によって各バッファ領域443を一意に識別する。この識別子は、制御部441が予め設定した識別子を用いることができる。
【0077】
カラム902は、サーバ102、106の識別子を格納しており、本サーバ識別子によって各サーバを一意に識別する。サーバ識別子は管理サーバ101のサーバ管理テーブル221から取得した値を用いることができる。
【0078】
カラム903(カラム921〜カラム922)には、アダプタ451に関する情報を格納している。カラム921には、デバイス種別を格納している。HBA(Host Bus Adaptor)やNICやCNA(Converged Network Adapter)などが格納される。カラム922には、HBAの識別子であるWWN、NICの識別子であるMACアドレスが格納されている。アダプタ451に関する情報は管理サーバ101のサーバ管理テーブル221から取得した値を用いることができる。あるいは、制御部441がアダプタ451をアクセスした値を用いてもよい。
【0079】
カラム904には、バッファ領域443のステータスを格納している。バッファ要求受付、データをバッファ中、バッファしたデータを書き出し中、などが格納される。
【0080】
カラム905には、バッファ領域443の使用ステータスが格納されている。使用中なのか未使用なのか、また使用している場合は使用している容量、エラー情報などである。また、予約する容量や優先順位に関する情報を格納し、バッファ領域443の容量を超えるデータをバッファするよう要求されたときに、どのバッファ領域のデータを救済するかを判定することが可能になる。
【0081】
カラム902やカラム903に格納されているアダプタ、デバイス、サーバはPCIex−SW107のポート番号またはスロット番号で置き換えられる情報が格納されても良い。
【0082】
さらに、I/Oバッファリング管理テーブル411にはバッファ領域443でバッファリングに失敗した場合の対処を格納するカラムを設けても良い。例えば、再送要求を現用系のサーバ102に出す、失敗通知を管理サーバ101へ通知する、などである。また、管理サーバ101は、別のLUにつながったアダプタ451を障害が発生した現用系のサーバ102へ通知し、別LUへメモリ302の内容を書き出すようにしても良い。それにより、あふれたデータを救済することが可能になる。
【0083】
図10は、管理サーバ101の制御部110で行われる処理の一例を示すフローチャートである。この処理は、管理サーバ101がサーバ102、106から障害通知501を受信したときに起動される。なお、障害通知501は、サーバ102、106のBMC305やOS311等が障害を検知したときに管理サーバ101へ送信する。なお、以下では、現用系サーバ、LUの識別子を図5に示した値を用いる。
【0084】
ステップ1001で、障害検出部210が障害通知501により障害を検出する。障害を検出した場合、ステップ1002へ進む。
【0085】
ステップ1002で、I/Oバッファリング指示部211が、I/O処理機構322へ障害が発生した現用系サーバ#1のI/O出力(メモリダンプ)をバッファするよう指示し、ステップ1003へ進む。
【0086】
ステップ1003で、ストレージ制御部212が、ストレージサブシステム105に対して現用系サーバ#1が使用している主ボリュームLU2へミラーリングの同期処理を指示し、ステップ1004へ進む。
【0087】
ステップ1004で、ストレージ制御部212が、ストレージサブシステム105へLU2のミラーリング構成のスプリットを指示し、ステップ1005へ進む。このとき、スプリットした後に、必要に応じてペアであった副ボリュームのLU1を主ボリューム化する。また、別の副ボリュームであるLUを用意しておき、元のLU(予備系のサーバ106と接続して業務を再開するLU)とペアを組み、ミラーリング構成を再構成しても良い。
【0088】
ステップ1005で、経路切替部213が、I/O処理機構322とアダプタ451(メモリダンプ出力用のLU1に接続されているデバイス)と接続するよう指示し、ステップ1006へ進む。
【0089】
ステップ1006で、I/Oバッファ書出し指示部214がI/O処理機構322に対してバッファ領域443へ蓄積したメモリダンプのデータをステップ1005で設定したLU1に書き出すよう指示し、ステップ1007へ進む。
【0090】
ステップ1007で、N+M切替指示部215が、PCIex−SW107に予備系サーバ#S1に、障害が発生した現用系サーバ#1が使用していたアダプタ451(LU2)を接続するよう指示し、ステップ1008へ進む。
【0091】
ステップ1008で、予備系サーバ#S1を起動するよう指示し、処理を完了する。
【0092】
上記処理により、図5で示したように、現用系サーバ#1から障害通知501を受信すると、管理サーバ101はPCIex−SW107に対してバッファ領域443で現用系サーバ#1からのI/O出力を格納する指令を送信する。次に、管理サーバ101はストレージサブシステム105に対して現用系サーバ#1が利用しているLU2についてミラーリングの同期指示を送信し、主ボリュームのLU2と副ボリュームのLU1を同期させる。その後、管理サーバ101はストレージサブシステム105のミラーボリュームにスプリットを指示し、ミラーリングのペアを分離する指示を送信する。次に、管理サーバ101は、ミラーリングのペアを解除した一方のLU1にバッファ領域443の内容を書き込むようPCIex−SW107の制御部441に指令する。さらに、管理サーバ101は、ミラーリングのペアを解除した他方のLU2を主ボリュームとし、予備系サーバ#S1に接続するようPCIex−SW107に対して指令する。その後、管理サーバ101は予備系サーバ#S1に起動を指令してフェイルオーバを完了する。
【0093】
以上により、障害が発生した現用系サーバ#1のメモリダンプの収集をOSの種類にかかわらず確実に行いながらも、予備系サーバ#S1への系切替を迅速に行うことが可能となるのである。特に、ミラーボリュームLU1,LU2をスプリットした後には、障害が発生した現用系サーバ#1のメモリダンプと予備系サーバ#S1への系切替を並列的に行うことで、メモリダンプの完了を待たずに系切替を開始できるので、フェイルオーバの高速化を図ることができる。
【0094】
図11は、管理サーバ101のI/Oバッファリング指示部211で行われる処理の一例を示すフローチャートである。この処理は、図10のステップ1002で行われる処理である。
【0095】
ステップ1101で、I/Oバッファリング指示部211は、サーバ管理テーブル221を参照し、ステップ1102へ進む。
【0096】
ステップ1102で、I/Oバッファリング指示部211は、障害通知501とサーバ管理テーブル221から障害が発生した現用系サーバ#1に接続されたアダプタ451とPCIex−SW107の接続ポートを特定し、ステップ1103へ進む。
【0097】
ステップ1103で、I/Oバッファリング指示部211は、I/O処理機構322に対して、ステップ1004で特定したPCIex−SW107の接続ポートとI/O処理機構322のバッファ領域443とを接続するよう指示し、ステップ1104へ進む。
【0098】
ステップ1104で、I/Oバッファリング指示部211は、I/O処理機構322に対して、当該現用系サーバ#1からのI/O出力をバッファするよう指示し、ステップ1105へ進む。
【0099】
ステップ1105で、I/Oバッファリング指示部211は、I/Oバッファリング管理テーブル411を更新し、処理を完了する。
【0100】
上記処理により、障害が発生した現用系サーバ#1からのI/O出力は、PCIex−SW107のバッファ領域443に格納される。
【0101】
図12は、管理サーバ101の経路切替部213で行われる処理の一例を示すフローチャートである。この処理は、図10のステップ1005で行われる処理である。
【0102】
ステップ1201で、経路切替部213は、LU管理テーブル223を参照し、障害が発生した現用系サーバ#1に割り当てられたLUとペアの関係にあるLU1を特定し、ステップ1202へ進む。
【0103】
ステップ1202で、経路切替部213は、LUマッピング管理テーブル222を参照し、障害が発生した現用系サーバ#1に割り当てられたLUとポートの関係を特定してステップ1203へ進む。
【0104】
ステップ1203で、経路切替部213は、I/O処理機構322のバッファ領域443と、メモリダンプ出力用LU1(スプリットした元々副ボリュームであったLU)とを接続するよう指示し、処理を完了する。
【0105】
以上の処理により、バッファ領域443に副ボリュームのLU1が接続され、バッファ領域443の内容をLU1に書き込むことができる。
【0106】
図13は、管理サーバ101のI/Oバッファ書出し指示部214で行われる処理の一例を示すフローチャートである。この処理は、図10のステップ1006で行われる処理である。
【0107】
ステップ1301で、I/Oバッファ書出し指示部214は、I/O処理機構322に対してバッファ領域443へ蓄積したI/Oデータを書き出すよう指示し、ステップ1302へ進む。
【0108】
ステップ1302で、I/Oバッファ書出し指示部214は、書き出しを指令したバッファ領域443についてI/Oバッファリング管理テーブル411を更新し、処理を完了する。
【0109】
上記処理により、PCIex−SW107のバッファ領域443に格納されたメモリダンプが、スプリットによりペアが解除されたLU1に書き込まれる。
【0110】
図14は、管理サーバ101のN+M切替指示部215で行われる処理の一例を示すフローチャートである。この処理は、図10のステップ1007で行われる処理である。
【0111】
ステップ1401で、N+M切替指示部215は、サーバ管理テーブル221を参照し、障害が発生した現用系サーバ#1と、引き継ぎ先の予備系サーバ#S1を特定してステップ1402へ進む。
【0112】
ステップ1402で、N+M切替指示部215は、ステップ1401で特定した予備系サーバ#S1と、障害が発生した現用系サーバ#1が使用していたアダプタ451を接続するよう、PCIex−SW107に指示し、ステップ1403へ進む。
【0113】
ステップ1403で、N+M切替指示部215は、予備系サーバ#S1に接続したLU2について、LU管理テーブル223を更新し、ステップ1404へ進む。
【0114】
ステップ1404で、N+M切替指示部215は、予備系サーバ#S1に接続したLU2について、LUマッピング管理テーブル222を更新し、ステップ1405へ進む。
【0115】
ステップ1405で、N+M切替指示部215は、障害が発生した現用系サーバ#1と、引き継ぎ先の予備系サーバ#S1についてサーバ管理テーブル221を更新し、処理を完了する。
【0116】
上記処理により、障害が発生した現用系サーバ#1のLU2が、予備系サーバ#S1に引き継がれる。
【0117】
図15は、I/O処理機構322のI/Oバッファリング制御部401で行われる処理の一例を示すフローチャートである。この処理は、図11のステップ1104で行われる処理である。
【0118】
ステップ1501で、I/Oバッファリング制御部401は、I/Oバッファリング管理テーブル411を参照し、メモリダンプの書き込み先となるバッファ領域443を特定してステップ1502へ進む。
【0119】
ステップ1502で、障害が発生した現用系サーバ#1とI/O処理機構322およびバッファ領域443を接続されるのを待って、ステップ1503へ進む。
【0120】
ステップ1503で、I/Oバッファリング制御部401は、当該バッファ領域443へ当該現用系サーバ#1からのI/Oデータをバッファリングし、処理を完了する。
【0121】
図16は、管理サーバ101が管理する業務及びSLA管理テーブル224の一例を示す説明図である。業務及びSLA管理テーブル224は、現用系サーバ102が提供する業務毎にどのような業務およびソフトウェアで、どのような設定がされていて、どのようなService Levelを、どの程度満たす必要があるか、それぞれの優先順位付け、といった情報を管理している。
【0122】
カラム1601には、業務識別子を格納しており、本識別子によって業務を一意に識別する。
【0123】
カラム1602には、UUIDが格納されている。カラム1601に格納されている業務識別子の候補であり、広範囲に渡ったサーバ管理には非常に有効である。ただし、カラム1601には、システム管理者がサーバを識別する識別子を使用すれば良く、また管理する対象となるサーバ間で重複することがなければ問題ないため、UUIDを使うことが望ましいものの必須とはならない。例えば、カラム1601のサーバ識別子には、業務設定情報(カラム1604へ格納)を用いても良い。
【0124】
カラム1603は、業務種別を格納しており、使用するアプリケーションやミドルウェアといった業務を特定するソフトウェアに関する情報が格納されている。業務で使用する論理的なIPアドレスやID、パスワード、ディスクイメージ、業務で使用するポート番号などが格納されている。ディスクイメージは、設定前後の業務が現用系のサーバ102上のOSへ配信されたシステムディスクのディスクイメージを指す。カラム1604へ格納するディスクイメージに関する情報は、データディスクを含めても良い。
【0125】
カラム1605は、優先順位やSLAの内容を格納しており、それぞれの業務間の優先順位やそれぞれの業務が必要とする要件が格納されている。これにより、どの業務が優先的に救済される必要があり、メモリダンプ採取が必要か否か、またN+M切替高速が必要か否か、を設定することが出来る。本発明では、バッファ領域443をどのように使うかが重要なポイントであり、これにより最も本発明の効果を得ることが出来る運用を決めることが可能になる。
【0126】
管理サーバ101は、業務及びSLA管理テーブル224で、SLA1605がメモリダンプ不要であれば、上記図5に示した処理を行わずに、フェイルオーバを実施すればよい。
【0127】
図20は、メモリダンプの書き込みが完了したLU1を、予め設定した保守用の領域へ退避させる例を示すブロック図である。管理サーバ101は、メモリダンプの書き込みが完了したLU1を、予備系サーバ#S1が使用するホストグループ1(550)から分離して、予め設定した保守用グループ551に変更し、アクセスを制限する。
【0128】
以上により、障害が発生した現用系サーバ#1のメモリダンプを、OSの種類にかかわらず、確実にLU1に収集し、保守用グループ551に移動させることで、メモリダンプの内容を誤って消去するなどの誤操作を防止することができる。
【0129】
<第2実施形態>
図17は、第2の実施形態を示すサーバ102(または106)のブロック図である。第2実施形態は、前記第1実施形態のI/O処理機構322を、仮想化機構1711に組み込んだものである。図17では、サーバ102、仮想化機構1711および仮想サーバ1712の構成を示す。サーバ102の物理的な計算機資源を仮想化機構1711が仮想化し、複数の仮想サーバ1712を提供している。なお、仮想化機構1711としては、VMM(Virtual Machine Monitor)やハイパーバイザで構成することができる。
【0130】
メモリ302には、物理的な計算機資源を仮想化するサーバ仮想化技術を提供する仮想化機構1711が配備され、仮想サーバ1712を提供する。また、仮想化機構1711は、制御用インタフェースとして仮想化機構管理用インタフェース1721を備えている。
【0131】
仮想化機構1711は、サーバ102(ブレードサーバでも良い)の物理的な計算機資源を仮想化し、仮想サーバ1712を構成する。仮想サーバ1712は、仮想CPU1731、仮想メモリ1732、仮想ネットワークインタフェース1733、仮想ディスクインタフェース1734、仮想PCIexインタフェース1735から構成されている。仮想メモリ1732には、OS1741が配備され仮想サーバ1712内の仮想デバイス群を管理している。また、OS1741上では、業務アプリケーション1742が実行されている。OS1741上で稼働する管理プログラム1743によって、障害検知やOS電源制御、インベントリ管理などが提供されている。仮想化機構1711は、物理計算機資源と仮想計算機資源の対応付けを管理しており、物理計算機資源と仮想計算機資源の対応付けの生成や解除を行うことが出来る。また、どの仮想サーバ1712がサーバ102の計算機資源を、どれくらい割り当てられ、また、使用しているかといった構成情報および稼働履歴を保持している。なお、OS1741は、前記第1実施形態と同様に、所定の条件で仮想メモリ1732の内容を出力するメモリダンプ部17410を有する。
【0132】
仮想化機構管理用インタフェース1721は、管理サーバ101と通信をするためのインタフェースであり、仮想化機構1711から管理サーバ101へ情報を通知したり、管理サーバ101から仮想化機構1711へ指示を送るときに使われる。また、ユーザが直接、使用することも可能である。
【0133】
仮想化機構1711には、I/O処理機構322が内包され、例えば、仮想PCIexインタフェース1735と物理PCIexインタフェース306の接続に関わる。仮想サーバ1712の障害発生時に、仮想メモリ1732のダンプを取得しつつ、他の仮想サーバ(同じ物理サーバ上または別の物理サーバ上)で業務を再開させるフェイルオーバを実施する。
【0134】
本第2実施形態では、サーバ102とストレージサブシステム105の接続について、前記第1実施形態に示したPCIex−SW107を使用してもよいが、PCIex−SW107の内部で経路を切り替えることなく、仮想化機構1711で複数の仮想サーバ1712とLUの接続関係を切り替えることができる。
【0135】
このため、本第2実施形態では、サーバ102は、仮想サーバ1712が使用するストレージサブシステム105のLUの経路数に応じて複数のディスクインターフェース304−1、304−2を備えるものとする。以下の説明では、サーバ102のディスクインターフェース304−1、304−2がFC−SW511(図1参照)を介してストレージサブシステム105のLU2(及びLU1)に接続された例を示す。
【0136】
図18は、第2の実施形態の処理の概要を示すブロック図である。図18において、仮想サーバ#VS1(1712−1)が現用系サーバとして稼動し、仮想サーバ#VS1に障害が発生したときに、仮想サーバ#VS1のメモリダンプを収集しながら、予備系として機能する仮想サーバ#VS2(1712−2)へ処理を引き継ぐ例を示す。
【0137】
現用系の仮想サーバ#VS1は、前記第1実施形態の図5と同様に、LU1を主ボリュームとし、LU2副ボリュームとするミラーボリュームに対してアクセスする。
【0138】
仮想化機構1711は、仮想サーバ#VS1の仮想メモリの監視と、ストレージサブシステム105のメモリダンプ用仮想領域542への仮想サーバ#VS1からの書き込みの監視と、仮想サーバ#VS1等のOS1741のシステム領域(メモリダンプ用プログラム)の読み込みの監視と、OS1741のメモリダンプ用プログラムを呼び出すシステムコールの監視と、仮想サーバ#VS1の障害発生の監視を行う。この他、仮想化機構1711は、予備系の仮想サーバ#VS2への計算機資源の割り当てなどを管理する。なお、管理サーバ101は、仮想化機構1711の仮想化機構管理用インターフェース1721を介して指令を行う。
【0139】
仮想サーバ#VS1に障害が発生すると、仮想化機構1711は管理サーバ101に対して障害通知を送信する(S1)。管理サーバ101は、仮想化機構1711に対して仮想サーバ#VS1のI/O出力をバッファ領域443に格納する指令を送信する(S2)。
【0140】
仮想化機構1711は、現用系の仮想サーバ#VS1の仮想ディスクインターフェース1734の接続先を、I/O処理機構322のバッファ領域443に切り替える(S3)。これにより、障害が発生した仮想サーバ#VS1は、仮想メモリ1732の内容をI/O処理機構322のバッファ領域443に格納する。
【0141】
次に、管理サーバ101は、ストレージサブシステム105に対して、仮想サーバ#VS1に接続されているLU1、LU2をスプリットする指令を送信する(S3)。
【0142】
次に、管理サーバ101は、仮想化機構1711に対して、バッファ領域443の内容を副ボリュームであったLU1に書き込むよう経路を切り替える指令を送信する(S4)。仮想化機構1711は、バッファ領域443の接続先をLU1に接続されたディスクインターフェース304−2に切り替える。これにより、仮想化機構1711はバッファ領域443の内容をLU1に書き込む。
【0143】
管理サーバ101は、仮想化機構1711に対して予備系の仮想サーバ#VS2を割り当てて、LU2を仮想サーバ#VS2に切り替える指令を送信する(S6)。仮想化機構1711は、管理サーバ101からの指令に基づいて仮想サーバ#VS2に計算機資源を割り当て、仮想ディスクインターフェース1734の接続先をLU1に設定されたディスクインターフェース304−1に設定する。
【0144】
管理サーバ101は、仮想化機構1711に対して予備系の仮想サーバ#VS2を起動する指令を送信する(S7)。仮想化機構1711は、計算機資源とディスクインターフェース304−1を割り当てた仮想サーバ#VS2を起動して、LU2のOS1741及び業務アプリケーション1742を実行することで、現用系の仮想サーバ#VS1の処理を引き継ぐことができる。
【0145】
以上のように、現用系の仮想サーバ#VS1に障害が発生した場合にも、OSの種類にかかわらず、メモリダンプとフェイルオーバを並列的に行って、系切替を高速化することができる。
【0146】
<第3実施形態>
図19は、第3の実施形態を示し、PCIex−SW107を主体とするフェイルオーバの概略を示すブロック図である。第3の実施形態では、ストレージサブシステム105に、メモリダンプ用仮想領域542への書き込みを監視する管理及び監視インターフェース600を配備して、現用系サーバ#1(102)がメモリダンプを開始したことを契機にして、フェイルオーバとメモリダンプのバッファリングを実行するものである。その他の構成は、前記第1実施形態と同様である。
【0147】
管理及び監視インターフェース600は、現用系サーバ#1がアクセスする主ボリュームとしてのLU1について、メモリダンプ用仮想領域542への書き込みを監視する。メモリダンプ用仮想領域542への書き込みが開始されると、管理及び監視インターフェース600は、管理サーバ101に現用系サーバ#1のメモリダンプが発生したことを通知する。
【0148】
管理サーバ101は、メモリダンプの発生を検知すると、前記第1実施形態と同様にして、現用系サーバ#1から予備系サーバ#S1へのフェイルオーバと、現用系サーバ#1のメモリダンプを並列的に実行する。
【0149】
ここで、管理及び監視インターフェース600は、メモリダンプ用仮想領域542への書き込みを監視し、また、OS311のシステム領域(メモリダンプ用プログラム)の著見込みを監視する。
【0150】
メモリダンプ用仮想領域542への書き込みの検知は、管理及び監視インターフェース600が、ストレージサブシステム105内の特定の領域(ブロック)からメモリダンプ用の書き込みの有無を検知する。メモリダンプ用仮想領域542の位置を特定するために、前以てメモリダンプ用の特定ファイルにサンプルデータを書き込む、または、疑似障害を用いてプログラムを起動しメモリダンプ用のデータを書き込ませる、などして領域を特定しても良い。
【0151】
なお、管理及び監視インターフェースは、ストレージサブシステム105の他に、図示の601、602のようにFC−SW511またはアダプタラック461に設けることができる。この場合、管理及び監視インターフェース601、602はI/O出力をスヌーフィングするなどで監視し、宛先と内容からメモリダンプの開始を検知する。
【0152】
以上のように、第1〜第3の実施形態によれば、現用系サーバ#1のメモリダンプを一時的に蓄積するバッファ領域443を備えたI/O処理機構322と、メモリダンプの経路をミラーボリュームの主ボリューム(LU)から副ボリューム(LU2)へ切り替える経路切替部としてPCIex−SW107または仮想化機構1711に備える。そして、管理サーバ101がミラーボリュームをスプリットした後に、予備系サーバ#S1を主ボリューム(LU1)で起動させることで、系切替とメモリダンプを並列的に実行する。これにより、メモリダンプの完了を待たずに系切替を開始できるので、OSの種類にかかわらずメモリダンプを確実に収集しながらも系切替の高速化を図ることができる。
【0153】
なお、上記各実施形態では、ストレージサブシステム105のLUでミラーボリュームを構成した例を示したが、物理的なディスク装置でミラーボリュームを構成してもよい。
【0154】
また、上記各実施形態では、FC−SW511とNW−SW103、104でSANとIPネットワークを分離する例を示したが、IP−SAN等を用いてひとつのネットワークとしてもよい。
【産業上の利用可能性】
【0155】
以上のように、本発明はコールドスタンバイを用いて系切替を行う計算機システムやI/Oスイッチあるいは仮想化機構に適用することができる。
【符号の説明】
【0156】
101 管理サーバ
102 サーバ
105 ストレージサブシステム
107 PCIex−SW
110 制御部
210 障害検出部
211 I/Oバッファリング指示部
212 ストレージ制御部
213 経路切替部
214 I/Oバッファ書き出し指示部
215 N+M切替指示部
221 サーバ管理テーブル
222 LUマッピング管理テーブル
223 LU管理テーブル
224 業務及びSLA管理テーブル
322 I/O処理機構
401 I/Oバッファリング制御部
411 I/Oバッファリング管理テーブル
441 制御部

【特許請求の範囲】
【請求項1】
プロセッサとメモリ及びI/Oインターフェースを備える第1の計算機と、
プロセッサとメモリ及びI/Oインターフェースを備える第2の計算機と、
前記第1の計算機と第2の計算機からアクセス可能なストレージ装置と、
ネットワークを介して前記第1の計算機と第2の計算機に接続されて、所定のタイミングで前記第1の計算機を、前記第2の計算機に引き継ぐ系切替を行う管理計算機と、を備え、前記第1の計算機が、所定の条件となったときに前記メモリの内容を前記ストレージ装置に書き込むI/O出力を送信する計算機システムにおいて、
前記ストレージ装置は、
前記第1の計算機がアクセスする第1の記憶部と、前記第1の記憶部のミラーリングを行う第2の記憶部と、を有し、
前記第1の計算機及び第2の計算機と前記ストレージ装置との間で、前記I/O出力を一時的に格納するバッファと、前記バッファの内容を前記ストレージ装置に出力する制御部と、を備えたI/O処理部と、
前記I/O処理部と前記第1の計算機及び第2の計算機が前記ストレージ装置をアクセスする経路を切り替えるスイッチ部と、を備え、
前記管理計算機は、
前記所定のタイミングとなったときに、前記第1の計算機の前記I/O出力を前記バッファへ格納する指令を前記前記I/O処理部に送信するバッファリング指示部と、
前記第1の記憶部と第2の記憶部を分離する指令を前記ストレージ装置に送信するストレージ制御部と、
前記バッファと前記第2の記憶部とを接続し、前記第2の計算機と前記第1の記憶部とを接続する指令を前記スイッチ部に送信する経路切替部と、
前記バッファの内容を前記第2の記憶部に出力する指令を前記I/O処理部へ送信する書き出し指示部と、
前記第2の計算機を前記第1の記憶部から起動させる系切替部と、を有することを特徴とする計算機システム。
【請求項2】
請求項1に記載の計算機システムであって、
前記管理計算機は、
前記第1の計算機に障害が発生したことを検知する障害検知部をさらに有し、
前記障害を検知したときを前記所定のタイミングとして前記系切替を行うことを特徴とする計算機システム。
【請求項3】
請求項1に記載の計算機システムであって、
前記第1の計算機が前記I/O出力を出力したことを検知する監視部をさらに有し、
前記管理計算機は、
前記監視部が、前記第1の計算機が前記I/O出力を検知したときを、前記所定のタイミングとして前記系切替を行うことを特徴とする計算機システム。
【請求項4】
請求項1に記載の計算機システムであって、
前記ストレージ制御部は、
前記第1の記憶部へ前記I/O出力が完了した後に、当該第1の記憶部を予め設定した保守用のグループへ移動させることを特徴とする計算機システム。
【請求項5】
請求項1に記載の計算機システムであって、
前記ストレージ制御部は、
前記第2の計算機がアクセスする前記第2の記憶部のミラーリングを行う第3の記憶部を設定することを特徴とする計算機システム。
【請求項6】
請求項1に記載の計算機システムであって、
前記スイッチ部は、
前記第1の計算機のI/Oインターフェースと前記ストレージ装置とを接続するI/Oデバイスの経路と、前記第2の計算機のI/Oインターフェースと前記ストレージ装置とを接続するI/Oデバイスの経路と、を制御するI/Oスイッチであることを特徴とする計算機システム。
【請求項7】
請求項1に記載の計算機システムであって、
物理計算機を仮想化する仮想化部をさらに有し、
前記仮想化部は、
前記第1の計算機として、仮想プロセッサと仮想メモリ及び仮想I/Oインターフェースとを備えた第1の仮想計算機を割り当て、
前記第2の計算機として、仮想プロセッサと仮想メモリ及び仮想I/Oインターフェースとを備えた第2の仮想計算機を割り当て、
前記スイッチ部として、前記第1の仮想計算機のI/Oインターフェースと前記ストレージ装置とを接続するI/Oデバイスの経路と、前記第2の仮想計算機の仮想I/Oインターフェースと前記ストレージ装置とを接続するI/Oデバイスの経路と、を制御し、
前記第1の計算機は、所定の条件となったときに前記仮想メモリの内容を出力するメモリダンプ部を有し、
前記メモリダンプ部は、
前記所定の条件となったときに前記仮想メモリの内容を前記ストレージ装置に書き込むI/O出力を前記仮想I/Oインターフェースに送信することを特徴とする計算機システム。
【請求項8】
請求項1に記載の計算機システムであって、
前記経路切替部は、
前記第1の計算機のI/Oインターフェースと前記バッファとを接続し、前記バッファと前記第2の記憶部とを接続する指令を前記スイッチ部へ送信し、
前記第2の計算機のI/Oインターフェースと前記第1の記憶部とを接続する指令を前記スイッチ部に送信することを特徴とする計算機システム。
【請求項9】
プロセッサとメモリ及びI/Oインターフェースを備える第1の計算機と、プロセッサとメモリ及びI/Oインターフェースを備える第2の計算機と、前記第1の計算機と第2の計算機からアクセス可能なストレージ装置と、ネットワークを介して前記第1の計算機と第2の計算機に接続されて、所定のタイミングで前記第1の計算機を前記第2の計算機に引き継ぐ系切替を行う管理計算機と、を備えて、前記第1の計算機が、所定の条件となったときに前記メモリの内容を前記ストレージ装置に書き込むI/O出力を送信する計算機システムの系切替制御方法において、
前記計算機システムは、
前記第1の計算機及び第2の計算機と前記ストレージ装置との間で、前記I/O出力を一時的に格納するバッファと、前記バッファの内容を前記ストレージ装置に出力する制御部と、を備えたI/O処理部と、
前記I/O処理部と前記第1の計算機及び第2の計算機が前記ストレージ装置をアクセスする経路を切り替えるスイッチ部と、を備え、
前記系切替制御方法は、
前記管理計算機が、前記第1の計算機がアクセスする第1の記憶部と、前記第1の記憶部のミラーリングを行う第2の記憶部とを前記ストレージ装置に設定する第1のステップと、
前記管理計算機が、前記所定のタイミングとなったときに、前記第1の計算機の前記I/O出力を前記バッファへ格納する指令を前記前記I/O処理部に送信する第2のステップと、
前記管理計算機が、前記第1の記憶部と第2の記憶部を分離する指令を前記ストレージ装置に送信する第3のステップと、
前記管理計算機が、前記バッファと前記第2の記憶部とを接続し、前記第2の計算機と前記第1の記憶部とを接続する指令を前記スイッチ部に送信する第4のステップと、
前記管理計算機が、前記バッファの内容を前記第2の記憶部に出力する指令を前記I/O処理部へ送信する第5のステップと、
前記管理計算機が、前記第2の計算機を前記第1の記憶部から起動させる第6のステップと、を含むことを特徴とする計算機システムの系切替制御方法。
【請求項10】
請求項9に記載の計算機システムの系切替制御方法であって、
前記第2のステップは、
前記管理計算機が、前記第1の計算機に障害が発生したことを検知するステップをさらに有し、
前記障害を検知したときを前記所定のタイミングとして前記系切替を行うことを特徴とする計算機システムの系切替制御方法。
【請求項11】
請求項9に記載の計算機システムの系切替制御方法であって、
前記計算機システムは、
前記第1の計算機が前記I/O出力を出力したことを検知する監視部をさらに有し、
前記第2のステップは、
前記管理計算機が、前記第1の計算機が前記I/O出力を前記監視部で検知したときを、前記所定のタイミングとして前記系切替を行うことを特徴とする計算機システムの系切替制御方法。
【請求項12】
請求項9に記載の計算機システムの系切替制御方法であって、
前記管理計算機は、前記第1の記憶部へ前記I/O出力が完了した後に、当該第1の記憶部を予め設定した保守用のグループへ移動させる指令を送信する第7のステップを、さらに含むことを特徴とする計算機システムの系切替制御方法。
【請求項13】
請求項9に記載の計算機システムの系切替制御方法であって、
前記第6のステップは、
前記管理計算機が、前記第2の計算機がアクセスする前記第2の記憶部のミラーリングを行う第3の記憶部を設定する指令を前記ストレージ装置に送信するステップを含むことを特徴とする計算機システムの系切替制御方法。
【請求項14】
請求項9に記載の計算機システムの系切替制御方法であって、
前記スイッチ部は、
前記第1の計算機のI/Oインターフェースと前記ストレージ装置とを接続するI/Oデバイスの経路と、前記第2の計算機のI/Oインターフェースと前記ストレージ装置とを接続するI/Oデバイスの経路と、を制御するI/Oスイッチであることを特徴とする計算機システムの系切替制御方法。
【請求項15】
請求項9に記載の計算機システムの系切替制御方法であって、
物理計算機を仮想化する仮想化部をさらに有し、
前記仮想化部は、
前記第1の計算機として、仮想プロセッサと仮想メモリ及び仮想I/Oインターフェースとを備えた第1の仮想計算機を割り当て、
前記第2の計算機として、仮想プロセッサと仮想メモリ及び仮想I/Oインターフェースとを備えた第2の仮想計算機を割り当て、
前記スイッチ部として、前記第1の仮想計算機のI/Oインターフェースと前記ストレージ装置とを接続するI/Oデバイスの経路と、前記第2の仮想計算機の仮想I/Oインターフェースと前記ストレージ装置とを接続するI/Oデバイスの経路と、を制御し、
前記第1の計算機は、所定の条件となったときに前記仮想メモリの内容を出力するメモリダンプ部を有し、
前記メモリダンプ部は、
前記所定の条件となったときに前記仮想メモリの内容を前記ストレージ装置に書き込むI/O出力を前記仮想I/Oインターフェースに送信することを特徴とする計算機システムの系切替制御方法。
【請求項16】
請求項9に記載の計算機システムの系切替制御方法であって、
前第4のステップは、
前記管理計算機が、前記第1の計算機のI/Oインターフェースと前記バッファとを接続し、前記バッファと前記第2の記憶部とを接続する指令を前記スイッチ部へ送信し、
前記管理計算機が、前記第2の計算機のI/Oインターフェースと前記第1の記憶部とを接続する指令を前記スイッチ部に送信することを特徴とする計算機システムの系切替制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2012−18556(P2012−18556A)
【公開日】平成24年1月26日(2012.1.26)
【国際特許分類】
【出願番号】特願2010−155596(P2010−155596)
【出願日】平成22年7月8日(2010.7.8)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】