(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-09-12
(45)【発行日】2022-09-21
(54)【発明の名称】コンピュータ装置、情報処理方法、プログラム
(51)【国際特許分類】
G06F 11/10 20060101AFI20220913BHJP
G06F 11/20 20060101ALI20220913BHJP
G06F 3/06 20060101ALI20220913BHJP
【FI】
G06F11/10 684
G06F11/20 694
G06F3/06 305C
G06F3/06 540
(21)【出願番号】P 2021101720
(22)【出願日】2021-06-18
【審査請求日】2021-06-18
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100106909
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100134544
【氏名又は名称】森 隆一郎
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【氏名又は名称】伊藤 英輔
(72)【発明者】
【氏名】李 志
【審査官】田中 幸雄
(56)【参考文献】
【文献】特開2019-212310(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/10
G06F 11/20
G06F 3/06
(57)【特許請求の範囲】
【請求項1】
情報処理システムを構成する複数n台のコンピュータ装置のうち自装置を除いた他のコンピュータ装置の識別情報と、前記複数n台のコンピュータ装置の内の障害の発生を許容する前記コンピュータ装置の台数rと、単位情報を誤り訂正符号化処理により分割して生成する各シンボル単位の情報のシンボル長bと、の入力を受け付けると共に、前記単位情報を前記誤り訂正符号化処理により前記シンボル長bを用いてシンボル数2
b-1に分割した前記各シンボル単位の情報が前記n台のコンピュータ装置で均等分散して記録された場合における当該単位情報を再構成することのできるm(n-r)台のコンピュータ装置の識別情報と、の入力を受け付けるパラメータ取得手段と、
前記複数n台のコンピュータ装置の増減に基づいて前記n台のコンピュータ装置の当該nの値が変動したことを検出する変動検出手段と、
前記nの値が変動した場合に、前記m台のコンピュータ装置に含まれる前記シンボル単位の情報に基づいて前記単位情報を復元すると共に、当該復元した単位情報を前記誤り訂正符号化処理により新たなシンボル数kに分割した各シンボル単位の情報を生成して、変動後の新たな前記n台のコンピュータ装置で均等分散するよう制御する分散制御手段と、
を備えるコンピュータ装置。
【請求項2】
前記情報処理システムを構成する前記複数n台のコンピュータ装置のうちのマスタ装置として動作する他のコンピュータ装置の有無を判定し、前記マスタ装置として動作する前記他のコンピュータ装置が無い場合に自装置をマスタ装置として記憶するマスタ判定手段と、
を備える請求項1に記載のコンピュータ装置。
【請求項3】
前記変動検出手段は、自装置を前記マスタ装置として記憶する場合に、前記複数n台のコンピュータ装置の前記増減を判定する
請求項2に記載のコンピュータ装置。
【請求項4】
前記分散制御手段は、自装置を前記マスタ装置として記憶する場合に、前記m台のコンピュータ装置に含まれる前記シンボル単位の情報に基づいて前記単位情報を復元すると共に、当該復元した単位情報を前記誤り訂正符号化処理により新たなシンボル数kに分割した各シンボル単位の情報を生成して、変動後の新たな前記n台のコンピュータ装置で均等分散するよう制御する
請求項2または請求項3に記載のコンピュータ装置。
【請求項5】
前記変動検出手段は、新たな単位情報の生成を検知し、
前記分散制御手段は、当該新たな単位情報の各シンボル単位の情報を生成して、自装置を含む前記複数n台のコンピュータ装置に当該各シンボル単位の情報を均等分散して記録し、前記新たな単位情報を削除する
請求項1から請求項4の何れか一項に記載のコンピュータ装置。
【請求項6】
情報処理システムを構成する複数n台のコンピュータ装置のうち自装置を除いた他のコンピュータ装置の識別情報と、前記複数n台のコンピュータ装置の内の障害の発生を許容する前記コンピュータ装置の台数rと、単位情報を誤り訂正符号化処理により分割して生成する各シンボル単位の情報のシンボル長bと、の入力を受け付けると共に、前記単位情報を前記誤り訂正符号化処理により前記シンボル長bを用いてシンボル数2
b-1に分割した前記各シンボル単位の情報が前記n台のコンピュータ装置で均等分散して記録された場合における当該単位情報を再構成することのできるm(n-r)台のコンピュータ装置の識別情報と、の入力を受け付け、
前記複数n台のコンピュータ装置の増減に基づいて前記n台のコンピュータ装置の当該nの値が変動したことを検出し、
前記nの値が変動した場合に、前記m台のコンピュータ装置に含まれる前記シンボル単位の情報に基づいて前記単位情報を復元すると共に、当該復元した単位情報を前記誤り訂正符号化処理により新たなシンボル数kに分割した各シンボル単位の情報を生成して、変動後の新たな前記n台のコンピュータ装置で均等分散するよう制御する
情報処理方法。
【請求項7】
コンピュータ装置を、
情報処理システムを構成する複数n台のコンピュータ装置のうち自装置を除いた他のコンピュータ装置の識別情報と、前記複数n台のコンピュータ装置の内の障害の発生を許容する前記コンピュータ装置の台数rと、単位情報を誤り訂正符号化処理により分割して生成する各シンボル単位の情報のシンボル長bと、の入力を受け付けると共に、前記単位情報を前記誤り訂正符号化処理により前記シンボル長bを用いてシンボル数2
b-1に分割した前記各シンボル単位の情報が前記n台のコンピュータ装置で均等分散して記録された場合における当該単位情報を再構成することのできるm(n-r)台のコンピュータ装置の識別情報と、の入力を受け付けるパラメータ取得手段、
前記複数n台のコンピュータ装置の増減に基づいて前記n台のコンピュータ装置の当該nの値が変動したことを検出する変動検出手段、
前記nの値が変動した場合に、前記m台のコンピュータ装置に含まれる前記シンボル単位の情報に基づいて前記単位情報を復元すると共に、当該復元した単位情報を前記誤り訂正符号化処理により新たなシンボル数kに分割した各シンボル単位の情報を生成して、変動後の新たな前記n台のコンピュータ装置で均等分散するよう制御する分散制御手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ装置、情報処理方法、プログラムに関する。
【背景技術】
【0002】
コンピュータ装置が記憶する情報の耐障害性を高めるための技術としてRAIDがある。また、関連する技術として、冗長データストレージシステムを再構成する方法が特許文献1に開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで情報処理システムを構成する複数のコンピュータ装置を用いて低コストで情報の耐障害性を向上させる技術が求められている。
【0005】
そこでこの発明は、上述の課題を解決するコンピュータ装置、情報処理方法、プログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
本発明の第1の態様によれば、コンピュータ装置は、情報処理システムを構成する複数n台のコンピュータ装置のうち自装置を除いた他のコンピュータ装置の識別情報と、前記複数n台のコンピュータ装置の内の障害の発生を許容する前記コンピュータ装置の台数rと、単位情報を誤り訂正符号化処理により分割して生成する各シンボル単位の情報のシンボル長bと、の入力を受け付けると共に、前記単位情報を前記誤り訂正符号化処理により前記シンボル長bを用いてシンボル数2b-1に分割した前記各シンボル単位の情報が前記n台のコンピュータ装置で均等分散して記録された場合における当該単位情報を再構成することのできるm(n-r)台のコンピュータ装置の識別情報と、の入力を受け付けるパラメータ取得手段と、前記複数n台のコンピュータ装置の増減に基づいて前記n台のコンピュータ装置の当該nの値が変動したことを検出する変動検出手段と、前記nの値が変動した場合に、前記m台のコンピュータ装置に含まれる前記シンボル単位の情報に基づいて前記単位情報を復元すると共に、当該復元した単位情報を前記誤り訂正符号化処理により新たなシンボル数kに分割した各シンボル単位の情報を生成して、変動後の新たな前記n台のコンピュータ装置で均等分散するよう制御する分散制御手段と、を備える。
【0007】
本発明の第2の態様によれば、情報処理方法は、情報処理システムを構成する複数n台のコンピュータ装置のうち自装置を除いた他のコンピュータ装置の識別情報と、前記複数n台のコンピュータ装置の内の障害の発生を許容する前記コンピュータ装置の台数rと、単位情報を誤り訂正符号化処理により分割して生成する各シンボル単位の情報のシンボル長bと、の入力を受け付けると共に、前記単位情報を前記誤り訂正符号化処理により前記シンボル長bを用いてシンボル数2b-1に分割した前記各シンボル単位の情報が前記n台のコンピュータ装置で均等分散して記録された場合における当該単位情報を再構成することのできるm(n-r)台のコンピュータ装置の識別情報と、の入力を受け付け、前記複数n台のコンピュータ装置の増減に基づいて前記n台のコンピュータ装置の当該nの値が変動したことを検出し、前記nの値が変動した場合に、前記m台のコンピュータ装置に含まれる前記シンボル単位の情報に基づいて前記単位情報を復元すると共に、当該復元した単位情報を前記誤り訂正符号化処理により新たなシンボル数kに分割した各シンボル単位の情報を生成して、変動後の新たな前記n台のコンピュータ装置で均等分散するよう制御する。
【0008】
本発明の第3の態様によれば、プログラムは、コンピュータ装置を、情報処理システムを構成する複数n台のコンピュータ装置のうち自装置を除いた他のコンピュータ装置の識別情報と、前記複数n台のコンピュータ装置の内の障害の発生を許容する前記コンピュータ装置の台数rと、単位情報を誤り訂正符号化処理により分割して生成する各シンボル単位の情報のシンボル長bと、の入力を受け付けると共に、前記単位情報を前記誤り訂正符号化処理により前記シンボル長bを用いてシンボル数2b-1に分割した前記各シンボル単位の情報が前記n台のコンピュータ装置で均等分散して記録された場合における当該単位情報を再構成することのできるm(n-r)台のコンピュータ装置の識別情報と、の入力を受け付けるパラメータ取得手段、前記複数n台のコンピュータ装置の増減に基づいて前記n台のコンピュータ装置の当該nの値が変動したことを検出する変動検出手段、前記nの値が変動した場合に、前記m台のコンピュータ装置に含まれる前記シンボル単位の情報に基づいて前記単位情報を復元すると共に、当該復元した単位情報を前記誤り訂正符号化処理により新たなシンボル数kに分割した各シンボル単位の情報を生成して、変動後の新たな前記n台のコンピュータ装置で均等分散するよう制御する分散制御手段、として機能させる。
【発明の効果】
【0009】
本発明によれば、情報処理システムを構成する複数のコンピュータ装置を用いて低コストで情報の耐障害性を向上させることができる。
【図面の簡単な説明】
【0010】
【
図1】本実施形態による情報処理システムの構成を示す図である。
【
図2】本実施形態によるコンピュータ装置のハードウェア構成図である。
【
図3】本実施形態によるコンピュータ装置の機能ブロック図である。
【
図4】本実施形態によるシンボル単の情報の均等分散の概要を示す図である。
【
図5】本実施形態による運転管理テーブルの概要を示す図である。
【
図6】本実施形態による情報処理システムの動作の第一の例を示す図である。
【
図7】本実施形態による情報処理システムの動作の第二の例を示す図である。
【
図8】本実施形態によるコンピュータ装置の処理フローを示す第一の図である。
【
図9】本実施形態によるコンピュータ装置の処理フローを示す第二の図である。
【
図10】本実施形態によるコンピュータ装置の最小構成を示す図である。
【
図11】本実施形態による最小構成のコンピュータ装置の処理フローを示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の一実施形態による情報処理システムを、図面を参照して説明する。
図1は、本実施形態による情報処理システムの構成を示す図である。
図1で示すように情報処理システム100は、n台のコンピュータ装置11~1nにより構成される。また情報処理システム100には1つ以上のクライアント装置2が接続する。一例として
図1に示すようにコンピュータ装置1nは2つのネットワークインタフェースカード(NIC1、NIC2)を備え、NIC2が第一の通信ネットワーク(1st)に、NIC2が第二の通信ネットワーク(2nd)に接続されている。各コンピュータ装置1nは、第一通信ネットワークと第二通信ネットワークとを用いて相互に通信接続する。クライアント装置2も第一通信ネットワークと第二ネットワークに接続されているものとする。
各コンピュータ装置1nは、NIC1、NIC2の他、メモリ(Memory)などの主記憶装置、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの補助装置、CPU(Central Processing Unit)などにより構成されるHW(HardWare)環境と、そのHW環境で動作するOSの機能を備える。
【0012】
図2は本実施形態によるコンピュータ装置のハードウェア構成図である。
この図が示すように各コンピュータ装置1nは、CPU101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、HDD(Hard Disk Drive)104、通信モジュール105等の各ハードウェアを備えたコンピュータである。クライアント装置2も同様のハードウェア構成を備える。
【0013】
図3は本実施形態によるコンピュータ装置の機能ブロック図である。
コンピュータ装置1nは、制御プログラムを実行する。これによりコンピュータ装置1nには、制御部111、パラメータ取得部112、マスタ判定部113、変動検出部114、分散制御部115、の各機能を発揮する。
【0014】
制御部111はコンピュータ装置1nに備わる各機能部を制御する。
パラメータ取得部112は、情報処理システムを構成する複数n台のコンピュータ装置のうち自装置を除いた他のコンピュータ装置1nの識別情報と、複数n台のコンピュータ装置の内の障害の発生を許容する前記コンピュータ装置の台数rと、単位情報を誤り訂正符号化処理により分割して生成する各シンボル単位の情報のシンボル長bと、の入力を受け付ける、またパラメータ取得部112は、単位情報を誤り訂正符号化処理によりシンボル長bを用いてシンボル数2b-1に分割した各シンボル単位の情報がn台のコンピュータ装置で均等分散して記録された場合における当該単位情報を再構成することのできるm(n-r)台のコンピュータ装置の識別情報等の各パラメータを取得する。
マスタ判定部113は、コンピュータ装置1nのうちのマスタ装置として動作する他のコンピュータ装置の有無を判定し、マスタ装置として動作する他のコンピュータ装置が無い場合に自装置をマスタ装置として記憶する。なおマスタ判定部113は、クライアント装置2からのアクセス(データの読み出し、書き込みなど)があった場合や、自装置の記憶するデータが不整合を検出した場合に動作し、マスタ装置として動作する他のコンピュータ装置が無い場合に自装置をマスタ装置として特定する。
変動検出部114は、複数n台のコンピュータ装置の増減に基づいて当該当該nの値が変動したことを検出する。
分散制御部115は、nの値が変動した場合に、m台のコンピュータ装置に含まれるシンボル単位の情報に基づいて単位情報を復元すると共に、当該復元した単位情報を誤り訂正符号化処理により新たなシンボル数kに分割した各シンボル単位の情報を生成して、変動後の新たなn台のコンピュータ装置で均等分散するよう制御する。
【0015】
図4は各コンピュータ装置におけるシンボル単の情報の均等分散の概要を示す図である。
図4で示すように、各シンボル単位の情報はマスタ装置として動作するコンピュータ装置から他のコンピュータ装置に送信される際に、Tag、No.、Data、誤り検出訂正符号(CRCなど)、FG(flag)の各情報を含む形で送信される。一例としてはマスタ装置となるコンピュータ装置11が単位情報を255の各シンボル単位の情報に分割した場合であって、マスタ装置1台とスレーブ装置3台の合計4台のコンピュータ装置1n(PC1~PC4)で情報処理システム100が構成される場合には、マスタ装置となるコンピュータ装置11は、自装置と他のコンピュータ装置12~14に対して255のシンボル単位の情報を64ずつ均等分散して保持するように、他のコンピュータ装置12~14にシンボル単位の情報を送信する。
【0016】
Tagは、管理されたデータの所属を示す。Tagはファイル名もしくはファイル名のHash値やToken値でも良い。つまりTagは元の単位情報を表す識別子であり、分割された各シンボル単位の情報それぞれに同じTagの情報が付与される。
【0017】
NO.は、単位情報が各シンボル単位に分割された際に、各シンボルの情報に対して付与された識別子であり、一例として255個のシンボルの情報に分割された場合には各シンボル単位の情報は255個の何れかの番号(1~255)が付与される。255個のシンボルの情報に分割された場合にはこのNo.は255個シンボルの中のデータの位置を示す。
【0018】
Dataは、シンボル化されたデータそのものである。
誤り検出訂正符号は、Data化けを検出するための検証に利用される情報であり、1bit訂正能力はあってもなくでもよい。
FGは、一例として本願の誤り訂正符号化がリードソロモン符号化であればRS(Reed-Solomon Coding)方式のフラグ情報を保持し、また前回の誤り検出の結果(Pass/Fail)の情報を保持する情報である。
【0019】
図5は各コンピュータ装置が保持する運転管理テーブルの概要を示す図である。
図5で示すように、各コンピュータ装置1nは、運転管理テーブル50を備える。運転管理テーブル50は、自装置と他のコンピュータ装置1nの識別子と、各コンピュータ装置1nが情報処理システム100に正常に接続して稼働しているか否かを示す死活監視情報と、マスタ装置として動作しているか否かを示すマスターフラグ情報(Master Flag)と、を対応付けて記憶する。死活監視情報の一例は、コンピュータ装置1nが情報処理システム100に正常に接続して稼働している場合には「1」、コンピュータ装置1nが情報処理システム100に正常に接続して稼働していない場合には「0」を示す。またマスターフラグ情報の一例は、コンピュータ装置1nがマスタ装置として動作している場合には「1」、コンピュータ装置1nがマスタ装置として動作していない場合には「0」を示す。
【0020】
図6は本実施形態による情報処理システムの動作の第一の例を示す図である。
図6では、情報処理システム100の動作の第一の例として、情報処理システム100を構成する4台のコンピュータ装置のうち1台のコンピュータ装置に障害が発生し、その障害の後、3台のコンピュータ装置で情報処理システム100を運用する場合の例を示している。なお
図6で示すように、各コンピュータ装置1nは、それぞれが自装置内でOSを2つずつ立ち上げ、2台の仮想コンピュータとして動作してよい。この場合、一方のOSで管理される仮想コンピュータ装置に記憶する各シンボル単位の情報を、他方のOSで管理される仮想コンピュータ装置にミラーリングするなどして記憶する。また各コンピュータ装置1nは自装置で管理する単位情報を分割して生成した各シンボル単位の情報を、均等分散するために他のコンピュータ装置へ送信する。これにより各コンピュータ装置1nにおいて通常運用が行われる。
【0021】
図6で示す例では、最初は、n=4台のコンピュータ装置1nで情報処理システム100を構成している。この情報処理システム100において、m=3台のコンピュータ装置1nの記憶する各シンボル情報で単位情報を構成することができる誤り訂正符号化処理(リードソロモン符号化)を行っているものとする。この場合の誤り訂正符号化処理(リードソロモン符号化)はRS(n,k)=RS(4,3)と記載できる。nはシンボルの数、kは元の情報をシンボル化した数を示す。
【0022】
通常運用においてあるコンピュータ装置1nにおいてある単位情報の処理を行う場合、その単位情報を再構成するために、マスタ装置となるコンピュータ装置1nは単位情報の識別情報(Tag)を、他コンピュータ装置1nへ送信する。他のコンピュータ装置1nは単位情報の識別情報(Tag)に紐づく各シンボル情報を、マスタ装置となるコンピュータ装置1nへ送信する。マスタ装置となるコンピュータ装置1nは、他のコンピュータ装置1nから受信した各シンボル情報を用いて、誤り訂正符号の技術を用いて単位情報を再構成し、当該単位情報についての所定の処理を行う。所定の処理とは、単位情報の更新、削除などであってよい。マスタ装置となるコンピュータ装置1nは、単位情報を更新した場合には、その更新した単位情報を分割した新たな各シンボル単位の情報を生成し、それら各シンボル単位の情報を他のコンピュータ装置1nへ均等分散するように送信する。他のコンピュータ装置1nは対応する古い各シンボル情報を、新しい各シンボル情報に更新する。
【0023】
マスタ装置となるコンピュータ装置1nは、単位情報の削除の指示を受けた場合には、自装置内の当該単位情報の識別情報(Tag)に紐づく各シンボル情報を削除するとともに、その識別情報(Tag)を含む削除要求を他のコンピュータ装置1nへ送信する。他のコンピュータ装置1nは削除要求を受信すると、当該識別情報(Tag)に紐づく各シンボル情報を削除する。
【0024】
各コンピュータ装置1nは、他のコンピュータ装置1nへマスタ確認信号を送信し、その結果、他のコンピュータ装置1nからマスタ通知信号を受信した場合、そのマスタ通知信号を送信した他のコンピュータ装置1nをマスタ装置と認識する。コンピュータ装置1nは、マスタ通知信号を送信した他のコンピュータ装置1nの識別情報に紐づいて運転管理テーブル50に記憶するマスターフラグ情報を0から1に書き換える。各コンピュータ装置1nは、他のコンピュータ装置1nがマスタ装置として動作していない場合には、自装置がマスタ装置として動作することができる。マスタ装置は単位情報を分割した各シンボル情報を、情報処理システム100を構成する各コンピュータ装置1nにおいて均等分散する際に、他のコンピュータ装置1nがマスタ装置となっていないことを確認した後に、自装置の識別情報に紐づいて運転管理テーブル50に記録されるマスターフラグを0から1に変更してマスタ装置として動作する。各コンピュータ装置1nは自装置がマスタ装置となった場合には、自装置の識別情報を含むマスタ通知信号を生成して、自動的に他のコンピュータ装置1nへ送信してよい。
【0025】
このような通常運用が行われた際に、情報処理システム100を構成するコンピュータ装置1nの1台に障害が発生したとする。障害は、例えばコンピュータ装置1nの他のコンピュータ装置1nとの通信接続不可などのネットワーク障害や、当該障害発生対象のコンピュータ装置1nの内部の障害(HDDなどの記憶装置やそのたの機能の故障など)であってよい。
【0026】
各コンピュータ装置1nは、他のコンピュータ装置1nへ生死確認信号を送信し、その生死確認信号の応答を行わない、または応答が送られてこない他のコンピュータ装置1nの障害発生を検知する。障害発生を検知したコンピュータ装置1nは、運転テーブルのマスターフラグ情報に基づいて他のコンピュータ装置1nがマスタ装置となっているか否かを確認する。他のコンピュータ装置1nの障害発生を検知したコンピュータ装置1nは、他のコンピュータ装置1nがマスタ装置として動作していない場合、自装置の識別情報に紐づいて運転管理テーブル50に記録しているマスターフラグの情報を0から1に書き換えて、自装置をマスタ装置として設定する。
【0027】
マスタ装置となったコンピュータ装置1nは、情報処理システム100を構成するコンピュータ装置1nのうち障害の発生していないコンピュータ装置1nの各シンボル情報を取得して、それらシンボル情報に基づいて単位情報を再構成する。マスタ装置となるコンピュータ装置1nは、各シンボル情報のTagに基づいて、複数の単位情報を再構成してよい。マスタ装置となったコンピュータ装置1nは、障害の発生したコンピュータ装置1nを除いた残りのコンピュータ装置1nで単位情報を均等分散して保持するために、新たに残りのコンピュータ装置1nの新たな台数n、単位情報を誤り訂正符号化処理によりシンボル数kに分割した各シンボル単位の情報を新たなn台のコンピュータ装置で均等分散して記録した場合に何れかのコンピュータ装置で障害が発生しても単位情報を構成することのできるnよりも小さいm台のコンピュータ装置のmの値とを特定する。つまり、
図6の例ではn=3、m=2を特定する。マスタ装置となったコンピュータ装置1nは新たなnとmと、シンボル数kの値とを用いて、誤り訂正符号化処理(リードソロモン符号化)をRS(3,2)により、単位情報を分割して各シンボルの情報を生成する。マスタ装置となったコンピュータ装置1nは、当該新たに生成した各シンボルの情報を、障害の発生したコンピュータ装置1n以外の他のコンピュータ装置1nに均等分散するように送信する。新たなn台のコンピュータ装置の何れかに障害が発生しても、残りの新たなm台のコンピュータ装置1nが記憶する各シンボル単位の情報を用いて単位情報を構成することのできる、冗長構成が復帰する。
【0028】
図7は本実施形態による情報処理システムの動作の第二の例を示す図である。
図7では、情報処理システム100の動作の第一の例として、情報処理システム100を構成する3台のコンピュータ装置に、さらに新たな1台のコンピュータ装置1nが参加して、新たに4台のコンピュータ装置1nで情報処理システム100を構成する場合の例を示している。なお
図7で示す情報処理システム100においても、各コンピュータ装置1nは、それぞれが自装置内でOSを2つずつ立ち上げ、2台の仮想コンピュータとして動作してよい。この場合、一方のOSで管理される仮想コンピュータ装置に記憶する各シンボル単位の情報を、他方のOSで管理される仮想コンピュータ装置にミラーリングするなどして記憶してよい。または各コンピュータ装置1nは、それぞれが自装置内でOSを2つずつ立ち上げ、物理的な2つのHDD(HDD0,HDD1)に情報をミラーリングして2台のコンピュータ装置として機能するものであってよい。なお
図7における通常運用の例では、n=3台のコンピュータ装置1nで情報処理システム100が構成され、そのうちm=2台のコンピュータ装置1nの記憶する各シンボル情報で単位情報を構成する。この場合の誤り訂正符号化処理(リードソロモン符号化)をRS(3,2)と呼ぶこととする。
【0029】
3台のコンピュータ装置1nでこの通常運用の処理が行われている際に、情報処理システム100を構成するコンピュータ装置1nに、さらに1台のコンピュータ装置1nが参加したとする。情報処理システム100への新たなコンピュータ装置1nの参加の検知は、例えば、新たなコンピュータ装置1nが、参加の前から情報処理システム100を構成している他のコンピュータ装置1nに参加通知信号を送信してよい。または情報処理システム100への新たなコンピュータ装置1nの参加の検知は、参加の前から情報処理システム100が参加確認信号を通信ネットワークに送信し、その参加確認信号を受信した新たなコンピュータ装置1nが参加通知信号を、参加確認信号の送信元のコンピュータ装置1nへ送信することにより、当該送信元のコンピュータ装置1nが検知してもよい。
【0030】
参加通知信号の受信に基づいて、新たなコンピュータ装置1nの参加を検知したコンピュータ装置1nは、自装置の識別情報に紐づいて運転管理テーブル50で記憶するマスターフラグの情報を上記と同様に0から1に書き換えて、自装置をマスタ装置として設定する。
【0031】
マスタ装置となったコンピュータ装置1n(PC1)は、情報処理システム100を構成するコンピュータ装置1nのうち新たなコンピュータ装置1nの参加前から情報処理システム100に参加していた他のコンピュータ装置1n(PC2,PC3)の各シンボル情報をと自装置(PC1)のシンボル情報とを取得して、それらシンボル情報に基づいて単位情報を再構成する。マスタ装置となるコンピュータ装置1nは、各シンボル情報のTagに基づいて、複数の単位情報を再構成してよい。マスタ装置となったコンピュータ装置1n(PC1)は、新たに参加したコンピュータ装置1nを含む情報処理システム100に参加する全てのコンピュータ装置1n(PC1~PC4)で単位情報を均等分散して保持するために、当該全てのコンピュータ装置1nの新たな台数n、単位情報を誤り訂正符号化処理によりシンボル数kに分割した各シンボル単位の情報を新たなn台のコンピュータ装置で均等分散して記録した場合に何れかのコンピュータ装置で障害が発生しても単位情報を構成することのできるnよりも小さいm台のコンピュータ装置のmの値とを特定する。つまり、
図6の例ではn=4、m=3を特定する。マスタ装置となったコンピュータ装置1nは新たなnとmと、シンボル数kの値とを用いて、誤り訂正符号化処理(リードソロモン符号化)をRS(4,3)により、単位情報を分割して各シンボルの情報を生成する。マスタ装置となったコンピュータ装置1nは、当該新たに生成した各シンボルの情報を、情報処理システム100を構成する各コンピュータ装置1nに均等分散するように送信する。これにより、参加による増加した新たなn台のコンピュータ装置1nによって、冗長構成が復帰する。
【0032】
なお、ある情報処理システム100において、当該情報処理システム100を構成するコンピュータ装置の台数(n)と、冗長性を維持するための必須装置台数(m)と、誤り訂正符号のシンボルの長さ(b)と、元情報のシンボル数kというパラメータを定義する。この場合、m,n,bは、情報処理システム100の構築した時に既知となる情報であり、ユーザが自由に設定することができる。例えば、シンボル総数はGF(2b-1)の255となり、その内訳は、元情報のシンボル数がk、訂正シンボル数が(255-k)となる。元情報のシンボル数kと、訂正シンボル数を合わせた数(255個)のシンボルをn台コンピュータに均等分散する。ここで、初期に設定可能のパラメータは、シンボル長bと障害でなくても良いコンピュータの台数(冗長台数r)を指定すれば良い。コンピュータの総台数nはステップS101で探索すれば分かるため、mはn-rで算出することができる。なお、情報処理システム100の運用中も、何れかのコンピュータ装置1nが冗長台数rの値とシンボル長bの値との変更を受け付けて、マスタ装置や他のコンピュータ装置1nに送信し、設定情報のパラメータとして各コンピュータ装置1nが保持し、そのパラメータに基づいて制御してよい。シンボル数kの値は、情報処理システム100を構成するコンピュータ装置1nの構成が変更された後に、式(1)で算出できる値の小数点以下を切り上げた値となり、その値は未知数である。
【0033】
[(2b-1-kn)/m]=[(2b-1/n)]の小数点以下切り上げ値
・・・(1)
【0034】
ここで、情報処理システム100を構成するコンピュータ装置の台数(n)=4、冗長性を維持するための必須装置台数(m)=3とする。また情報処理システム100ではよく使用するガロア体GF(28-1)の誤り訂正符号化処理のシンボル化方式RS(255,kn)を使用する。なお、このRS(255,kn)は、シンボル1個は8bit、1つの単位情報に基づいて255個のシンボル単位の情報を生成する。それらのシンボル単位の情報の中で、誤りが発生したシンボル単位の情報は事前に判別可能であり、その誤り訂正能力は255-knで表すことができる。ここで、情報処理システム100を構成する装置数nによって、シンボル数knの値は変化する。情報処理システム100を構成するコンピュータ装置の台数(n)=4となる場合に、式(1)によりkn=k4=191を算出することができる。従って、訂正可能なシンボル数は255-191=64となる。255÷4の小数点以下を切り上げて、1台のコンピュータ装置1nに64のシンボル単位の情報を保管することで、条件を満たす冗長システムを実現できる。
【0035】
実現上、一つダミーシンボルを追加して、単位情報を元とする分割後の1組のシンボル単位の情報は255シンボルにして、1つのコンピュータ装置1n当たり64シンボル(255/4)が保持されている。4台のコンピュータ装置1nの中の1台が障害などで情報処理システム100を構成しなくなっても、元情報は残る3台のコンピュータ装置1nの記憶する情報から復元できる。これにより、例の1台冗長性を持つシステムに対して、情報シンボルの数knとシステム内の装置台数nの関係は、式(1)に基づいて式(2)に簡略化できる。
【0036】
255-kn=[255/n]の小数点以下切り上げ値 ・・・(2)
【0037】
そして、残るn=3台装置から冗長化復帰するため、式(3)でkn=k3を算出する。
【0038】
255-k3=[255/3]の小数点以下切り上げ値 ・・・(3)
【0039】
3台のコンピュータ装置1nでシステムが構成されている場合、kn=k3=170となり、訂正可能なシンボル数は255-170=85となる。従って、1台のコンピュータ装置1n当たり85シンボル(255/3)が保持されている。3台のコンピュータ装置1nの中の1台が障害等で情報処理システム100を構成するコンピュータ装置1nとして含まれなくなったとしても、情報は残りの2台のコンピュータ装置1nの記憶するシンボル単位の各情報に基づいて復元できる。
【0040】
まとめると、4台のコンピュータ装置1nで構成されている情報処理システム100の中で、1台のコンピュータ装置1nに障害が発生すると、3台のコンピュータ装置1nから情報を収集して、RS(255、191)で元の単位情報を復元して、RS(255、170)で各シンボル単位の情報を再算出して、各シンボル単位の情報を残る3台のコンピュータ装置1nに均等分散する。また、n台のコンピュータ装置1nで構成されている情報処理システム100にn+1台目のコンピュータ装置1nを加える場合、kn→kn+1で再計算して、n+1台のコンピュータ装置1nにより構成される情報処理システム100の冗長化を再構成する。
【0041】
図8はコンピュータ装置の処理フローを示す第一の図である。
コンピュータ装置1nの制御部111は、情報処理システム100に参加した場合、当該情報処理システム100を構成する他のコンピュータ装置1nを探索する(ステップS101)。コンピュータ装置1nの制御部111は、情報処理システム100において均等分散して各コンピュータ装置1nが記憶する単位情報に基づくシンボル単位の情報を記憶しているかを判定する(ステップS102)。制御部111はシンボル単位の情報を記憶している場合には準備完了と判断(ステップS103)して、情報処理システム100への参加処理を終了する。コンピュータ装置1nの制御部111は、単位情報を分割したシンボル単位の情報を記憶していない場合には、当該シンボル単位の情報の書き込みを待機する(ステップS104)。制御部111は書き込みが完了したかを判定する(ステップS105)。当該シンボル単位の情報の書き込みが完了した場合には、準備完了と判断する。制御部111は、書き込みが完了していない状態においてタイムアウトしたかを判定する(ステップS106)。制御部111はタイムアウトと判定した場合には、パラメータm,n,bの値を初期設定に戻して(ステップS107)、処理を終了する。
【0042】
図9はコンピュータ装置の処理フローを示す第二の図である。
準備完了の後、変動検出部114は、新たなコンピュータ装置1nの参加または障害発生があるかを判定する(ステップS201)。参加又は障害発生が有る場合(ステップS201Yes)、分散制御部115は第一処理を行う(ステップS202)。第一処理においては、マスタ判定部113が他のコンピュータ装置1nがマスタ装置となっていないことを判定して、自装置をマスタ装置として設定する。パラメータ取得部112は、情報処理システム100を構成する複数n台のコンピュータ装置のうち自装置を除いた他のコンピュータ装置1nの識別情報と、複数n台のコンピュータ装置の内の障害の発生を許容するコンピュータ装置の台数rと、シンボル単位の情報のシンボル長bと、の情報を取得する。またパラメータ取得部112は、単位情報を誤り訂正符号化処理によりシンボル長bを用いてシンボル数2
b-1に分割した各シンボル単位の情報がn台のコンピュータ装置で均等分散して記録された場合における当該単位情報を再構成することのできるm(n-r)台のコンピュータ装置の識別情報等の各パラメータを取得する。パラメータ取得部112は、現在のn値、r値、b値の値を取得すると共に、障害発生後の新たなn値、r値、b値を取得する。パラメータ取得部112は、m=n-rによりmの値を算出してよい。コンピュータ装置1nは、これらのパラメータの値は予め記憶していてよい。参加または障害発生の場合、情報処理システム100を構成するコンピュータ装置1nのnの値が変動しているので、現在情報処理システム100を構成する新たなn台のコンピュータ装置1nに含まれるシンボル単位の情報に基づいて単位情報を復元すると共に、当該復元した単位情報を誤り訂正符号化処理により新たなシンボル数kに分割した各シンボル単位の情報を生成して、変動後の新たなn台のコンピュータ装置で均等分散するよう制御する。
【0043】
また変動検出部114は、情報処理システム100を構成する他のコンピュータ装置1nから情報の更新依頼があるかを判定する(ステップS203)。ステップS203でYesの場合、分散制御部115は、更新依頼に含まれるシンボル単位の情報などに基づいて、自装置を更新する第二処理を行う(ステップS204)。他のコンピュータ装置1nから情報の更新依頼がある場合、Tagによって、シンボル単位の情報と、当該情報の誤り検出訂正符号(CRCなど)を更新する。もしシンボル方式を更新された場合、No.やFGの情報の更新も必要となる。
【0044】
また変動検出部114は、情報処理システム100に接続するクライアント装置2からの情報の更新依頼があるかを判定する(ステップS205)。ステップS205でYesの場合、分散制御部115は、クライアント装置2からのコマンドによって、データ更新の必要性の有無を判断する。コマンドが単なる情報の読み出しなどの更新不要の処理であれば、制御部111は、各コンピュータ装置1nから処理対象となる単位情報のTagに基づいて各シンボル単位の情報を取得し、単位情報を再構成する。また制御部111は単位情報をクライアント装置2へ送信して、当該単位情報を削除する。また制御部111は、単位情報の新規生成や更新である場合、自装置をマスタ装置と設定する。分散制御部115は、更新または新規生成した単位情報を分割して新たなシンボル単位の情報を生成して、それらのシンボル単位の情報が各コンピュータ装置1nに均等分散するよう、シンボル単位の含む更新依頼の情報を生成して、各コンピュータ装置1nに送信する。また制御部111は、更新または新規生成した単位情報を分割して新たなシンボル単位の情報を生成して、それらのシンボル単位の情報が各コンピュータ装置1nに均等分散するよう制御した後、自装置のマスタ装置の設定を解除する。つまり分散制御部115は第三処理を行う(ステップS206)。
【0045】
また制御部111は、誤り検出の検証の失敗かを判定する(ステップS207)。つまり制御部111は、自装置で管理しているシンボル単位の情報のデータ化けなどが発生したかを判定する。当該データ化けの判定は所定の誤り検出訂正符号を用いた誤り検出の公知の技術を用いてよい。制御部111は、ステップS207でYesとなりデータ化けを検出した場合、第四処理として誤り検出の検証を行う。または制御部111は他の検出パリティ方式を用いてもよい。当該検証は、訂正能力を持つ、または持たない方式であってもよい。訂正能力を持つ方式であれば、そのまま処置するが、もし訂正できない場合には、制御部111は他のコンピュータ装置1nから同じタグのシンボル単位の情報を取得して、対象の単位情報の正しい値を算出して、自分の記憶デバイスを更新する。
【0046】
図10は本実施形態によるコンピュータ装置の最小構成を示す図である。
図11は本実施形態による最小構成のコンピュータ装置の処理フローを示す図である。
コンピュータ装置1nは、少なくとも、パラメータ取得手段51、変動検出手段52、分散制御手段53を備える。
パラメータ取得手段51は、情報処理システム100を構成する複数n台のコンピュータ装置1nのうち自装置を除いた他のコンピュータ装置1nの識別情報と、複数n台のコンピュータ装置1nの内の障害の発生を許容するコンピュータ装置1nの台数rと、単位情報を誤り訂正符号化処理により分割して生成する各シンボル単位の情報のシンボル長bと、の入力を受け付けると共に、単位情報を誤り訂正符号化処理によりシンボル長bを用いてシンボル数2
b-1に分割した各シンボル単位の情報がn台のコンピュータ装置で均等分散して記録された場合における当該単位情報を再構成することのできるm(n-r)台のコンピュータ装置の識別情報と、の入力を受け付ける(ステップS501)。
変動検出手段52は、複数n台のコンピュータ装置の増減に基づいてn台のコンピュータ装置の当該nの値が変動したことを検出する(ステップS502)。
分散制御手段53は、nの値が変動した場合に、m台のコンピュータ装置に含まれるシンボル単位の情報に基づいて単位情報を復元すると共に、当該復元した単位情報を誤り訂正符号化処理により新たなシンボル数kに分割した各シンボル単位の情報を生成して、変動後の新たなn台のコンピュータ装置1nで均等分散するよう制御する(ステップS503)。
【0047】
上述の各装置は内部に、コンピュータシステムを有している。そして、上述した各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【0048】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【符号の説明】
【0049】
1n,11,12,13,14・・・コンピュータ装置
111・・・制御部
112・・・パラメータ取得部
113・・・マスタ判定部
114・・・変動検出部
115・・・分散制御部
100・・・情報処理システム
【要約】
【課題】低コストで情報の耐障害性を向上させるコンピュータ装置を提供する。
【解決手段】情報処理システムを構成する複数n台のコンピュータ装置のうち自装置を除いた他のコンピュータ装置と通信接続し、複数n台のコンピュータ装置の増減に基づいてn台のコンピュータ装置の当該nの値が変動したことを検出する。nの値が変動した場合に、n未満のm台のコンピュータ装置に含まれるシンボル単位の情報に基づいて単位情報を復元すると共に、当該復元した単位情報を誤り訂正符号化処理により新たなシンボル数kに分割した各シンボル単位の情報を生成して、変動後の新たなn台のコンピュータ装置で均等分散するよう制御する。
【選択図】
図1