JP4993005B2 - ディスクシステム - Google Patents
ディスクシステム Download PDFInfo
- Publication number
- JP4993005B2 JP4993005B2 JP2010157418A JP2010157418A JP4993005B2 JP 4993005 B2 JP4993005 B2 JP 4993005B2 JP 2010157418 A JP2010157418 A JP 2010157418A JP 2010157418 A JP2010157418 A JP 2010157418A JP 4993005 B2 JP4993005 B2 JP 4993005B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- request
- blade
- logical
- disk
- 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
Links
Images
Description
本発明は、ブレードシステムにおいて外部ディスクシステムからOSを起動する方法およびそのシステムに関するものである。
特開2002−32153号公報に記載のように、ブレードシステムとはサーバユニット搭載用筐体に多数のサーバユニットを搭載できるとともに、効率よく冷却できる構造を有するサーバユニットである。従来はそのシステムにおいて、ディスクが搭載されていないディスクレスなサーバユニット(ブレード)が、Fibreなどで接続された外部ディスクシステムからOSを起動する場合、ブレードごとに外部ディスクシステムにOSデータを格納していた。
上記従来技術では、ブレードのOSデータは類似しているにもかかわらず、ブレードの台数分のOSデータが必要となり、ディスクシステムの記憶容量を大きく占有していた。また、セキュリティパッチなどを適応する際にも、全てのOSデータに対して行う必要があり、ユーザや管理者の手間が多かった。
本発明の目的は、ディスク占有量と管理者の手間を軽減する外部ディスクシステムを提供することである。
上記目的を達成するために、複数の計算機(ブレード)が接続された本発明のディスクシステムは、以下に示す動作を行う。
例えばブレード1のOSを起動する場合、ブレード1に変更分を含む最新のOSデータを格納するために、ブレード1からのOSデータの読み込み要求に基づいて、所定のデータ長のデータブロックごとに、所定の回数分だけ以下の処理a)からd)を繰り返す。
a)ブレード1からデータブロックの単位でOSデータの読み込み要求を受け付ける。
b)ブレード1に固有な、OSデータの差分データをブレード1に対応した差分管理テーブルから検索する。
c)差分管理テーブルに差分データがあれば、検索されたデータブロック分の差分データをブレード1のメモリに転送する。
d)差分管理テーブルに差分データがなければ、各ブレードに共通なOSデータを格納したOSマスタデータからデータブロック分のOSデータを取り出してブレード1のメモリに転送する。
ブレード1の動作中にOSデータが変更された場合、ディスクシステムは、ブレード1から変更されたOSデータの書き込み要求を受け取り、受け取った要求に含まれ、変更されたOSデータが格納されたデータブロックを、書き込み要求に含まれるデータブロックの番号(LBA)と共に、ブレード1に対応する差分管理テーブルに格納する。この時、差分管理テーブルにおいて、書き込み要求が示すLBAに対応する差分データが既に格納されていれば、新たな書き込み要求によって差分データが更新され、まだ格納されていなければ、差分データが追加される。ブレード1においてOSデータが変更されると、その都度、上記の書き込み処理が実行される。
本発明によれば、ディスクシステムのデータ格納において、類似しているOSデータが一つであり、差分データのディスク占有量は少ないため、外部ディスクシステムの記憶容量を節約できる。
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明する。
図1は、本発明における一実施例であるディスクシステムの構成を示す。
本実施例では、ファイバーケーブル113で互いに接続されたブレードシステム114とディスクシステム100で実現されている。ブレードシステム114とディスクシステム100は、要求コマンドデータ108と応答コマンドデータ109の送受信によって通信する。
ブレードシステム114には、それぞれが1つのコンピュータの機能を有するボード(ブレード)が複数個装着され、その中の1つ又は複数個のブレードの組みによって所定のアプリケーションに対応した動作を行い、使用目的や状況に応じてアプリケーションに対応したブレードの組みを変更できるようになっている.
ブレードシステム114は、ブレード1(112a)とブレード2(112b)を有し、ディスクシステム100は、各ブレードに共通なOS(オペレーティングシステム)データであるOSマスタデータを含むマスタ論理ディスク(以下、LU0(101))、各ブレード
に固有なOSデータ(OSマスタデータに対する変更情報)を管理する差分管理テーブル115を含む差分論理ディスク(以下、LU1(102a)、LU2(102b))、及び管理情報104と要求コマンドデータ処理105を含むディスクアレイコントローラ103から構成されている。ここで、LU0、LU1、LU2などはディスクのロジカルユニット番号である。
ブレードシステム114は、ブレード1(112a)とブレード2(112b)を有し、ディスクシステム100は、各ブレードに共通なOS(オペレーティングシステム)データであるOSマスタデータを含むマスタ論理ディスク(以下、LU0(101))、各ブレード
に固有なOSデータ(OSマスタデータに対する変更情報)を管理する差分管理テーブル115を含む差分論理ディスク(以下、LU1(102a)、LU2(102b))、及び管理情報104と要求コマンドデータ処理105を含むディスクアレイコントローラ103から構成されている。ここで、LU0、LU1、LU2などはディスクのロジカルユニット番号である。
管理情報104と要求コマンドデータ処理105は、ディスクアレイコントローラ103内のメモリ130に格納されている。
差分管理テーブル115には、ブレード1に固有のOSデータ117が格納される。差分論理ディスクLU2(102b)も同様に、差分管理テーブルを有し、このテーブルにはブレード2に固有のOSデータが格納される。管理情報104には、共有LUマッピングテーブル110とシステムマッピングテーブル111が含まれ、要求コマンドデータ処理手続き105には、読み込み要求処理手続き106と書き込み要求処理手続き107が含まれる。
図1において、OSマスタデータが1つであるため、セキュリティパッチを適応する際に、一つのOSデータに適応するだけで良く、管理者の手間が軽減できる。また、差分データが原因でおきた障害時のリカバリの際に、OSマスタデータと差分データが分離しているため、差分データとのリンクを切り離して、OSマスタデータから起動することにより、復旧時間を短縮できる。
本実施例では、ブレード1とブレード2の2台と、差分データを含むLU1とLU2で実施例を示しているが、ブレードの台数や差分データを含むLUの数は任意でもよい。
次に、図1で示した構成の各要素について詳細に説明する。
図2は、ブレードシステム114に含まれるブレード1(112a)からディスクシステム100に含まれるディスクアレイコントローラ103に対して送信される要求コマンドデータ108を示す。要求コマンドデータ108には、コマンド名称200、対象LU201、要求対象のデータの論理ブロックアドレスLBA(Logical Block Address)202、データ203、発行元システム名称204が含まれる。コマンド名称200には、書き込みと読み込みのいずれかが指定され、図1で示した要求コマンドデータ処理105において、要求がデータの読み込みであるのか書き込みであるのかを判断する際に参照する。対象LU201には、ディスクシステム100が管理するロジカルユニット(LU)番号が格納され、要求コマンドデータ処理105において、どのLUに対しての要求であるのかを判断する際に参照する。LBA202には、論理ブロックアドレス(LBA)が格納され、読み込み要求処理106、または書き込み要求処理107において、ディスクのどこのアドレスに対する要求であるかを判断する際に参照する。データ203には、書き込み要求時に書き込むバイナリデータが格納され、書き込み要求処理107において、ディスクにデータを書き込む際に参照する。発行元システム名称204には、ブレードシステム114に含まれる各ブレードが一意に決まるデータが格納され、要求コマンド処理105において、どのブレードからの要求であるのかを判断する際に参照する。読み込み要求処理106、または書き込み要求処理107では、所定のデータ長の論理ブロックの単位でデータの入出力動作が行われる。
図3は、ディスクシステム100に含まれるディスクアレイコントローラ103からブレードシステム114に含まれるブレード1(112a)に対して、要求コマンドデータに応答して返す、応答コマンドデータ109を示す。応答コマンドデータ108には、コマンド名称300、データ301が含まれる。コマンド名称300には、書き込み完了と読み込み完了のいずれかが指定され、読み込み要求処理106、または書き込み要求処理107において、処理が完了した際に格納される。データ301には、ブレードシステム114からの読み込み要求に対応する応答時に、読み込んだバイナリデータが格納され、ブレードシステム114がこのデータを受け取る。
図4は、ディスクアレイコントローラ103に含まれ、OSマスタデータLU0(101)とシステムマッピングテーブル111との関連付けを行う共有LUマッピングテーブル110を示す。共有LUマッピングテーブル110には、共有LU番号400、システムマッピングテーブル番号401が含まれる。共有LU番号400には、複数のブレードがOSの起動に使用するOSマスタデータLU0(101)のLU番号が格納され、要求コマンドデータ処理105において、要求コマンドデータ108の対象LUと一致する共有LU番号を特定する際に参照する。システムマッピングテーブル番号401には、共有LU番号に対応したシステムマッピングテーブル111の番号が格納され、要求コマンドデータ処理105において、共有LU番号400に対応したシステムマッピングテーブル111を特定する際に参照する。実施例では、OSマスタデータLU0(101)のLU番号0と対応するシステムマッピングテーブル番号401の“0”が存在する例を示したが、登録する共有LU番号400及びシステムマッピングテーブル番号401の個数は任意でもよく、複数のOSマスタデータLU0(101)を使用することができる。本テーブルは、ディスクシステム100にOSマスタデータ101を作成する際に、システム管理者が作成する。
図5は、ディスクアレイコントローラ103に含まれ、ブレード1及びブレード2とそれぞれに対応する差分データLU102との関連付けを行うシステムマッピングテーブル111を示す。システムマッピングテーブル111には、システム名称500と差分LU番号501が含まれる。システム名称500には、ブレードシステム114に含まれる各ブレードを一意に決めるためのデータが格納され、要求コマンドデータ処理105において、要求コマンドデータ108の発行元システム名称204と一致するブレードを特定する際に参照する。差分LU番号501には、各ブレードが使用する差分LUの番号が格納され、要求コマンドデータ処理105において、各ブレードに対応した差分データLU(102)を特定する際に参照する。本実施例では、ブレード1(112a)及びブレード2(112b)とそれぞれ対応する差分LU番号(501)1及び2が存在する例を示したが、システム名称500、差分LU番号501の個数は任意でもよい。また、本実施例では、システムマッピングテーブル0が存在する例を示したが、図4で示した共有LUマッピングテーブル110のシステムマッピングテーブル番号数分のシステムマッピングテーブル111が存在する。本テーブルは、ディスクシステム100にブレードの台数分の差分データ102を作成する際に、管理者が作成する。
図6は、差分LUデータ(102)に含まれ、OSマスタデータLU0(101)に対して書き込み要求のあった場合に、そのデータの格納位置を示すLBAとデータを格納する差分管理テーブル115を示す。差分管理テーブル115には、参照LBA600、差分データ601が含まれる。参照LBA600には、OSマスタデータLU0(101)に対して書き込み要求のあったLBAが格納され、読み込み要求処理106、または書き込み要求処理107において、要求コマンドデータ108のLBAと一致する参照LBA600を特定する際に参照される。差分データ601には、OSマスタデータLU0(101)に対する書き込み要求時のバイナリデータが格納される。読み込み要求処理106、または書き込み要求処理107において、参照LBA600に対応した差分データ601が読み込み、または書き込み時に参照される。本実施例では、参照LBA600として“200”、“201”、“202”が存在し、差分データ601として“データ1−1”、“データ1−2”、“データ1−3”が存在する例を示したが、参照LBA600、差分データ601の個数は、必要に応じて増減する。
図7は、差分管理テーブル115の差分データ601に格納されている各ブレードに固有のOSデータ117を示す。各ブレードに固有のOSデータ117には、デバイス情報700、ドライバ情報701、OS情報702、アプリケーション情報703が含まれる。これらのデータは、各ブレードでのOS動作中に変更されたOSデータであり、差分管理テーブル115に、OSマスタデータLU0(101)との差分データ601としてLBA単位で格納されているため、これらのデータだけでは格納データとして意味を持たない。本実施例では、デバイス情報700、ドライバ情報701、OS情報702、アプリケーション情報703が存在する例を示したが、各ブレードに固有なOSデータとして他の情報も書き込むことができる。
図13は、ブレード1がディスクアレイコントローラ103に要求コマンドデータ108を送信する際に、データの格納場所を特定する際に参照するデータ格納場所参照テーブル122を示す。各ブレード112がこのテーブル122を保持している。データ格納場所参照テーブル122には、データ名称800、格納LBA801、LBAサイズ802が含まれる。データ名称800には、ブレード1(112a)で読み込み、または書き込み要求が発生した際に、対象となるデータ名称が格納され、要求コマンドデータ108を送信する際に、要求するデータ名称と一致する項目を検索する際に参照する。格納LBA801には、各データが格納されているディスクのLBAが格納され、要求コマンドデータ108を送信する際に、要求するデータが格納されているLBAを特定する際に参照する。LBAサイズ802は各データのサイズが格納されており、要求コマンドデータ108を送信する際に、要求コマンドデータ108を送信する回数を判断する際に参照する。本実施例では、データ名称800として、“ブートローダ”、“OSローダ”、“OSデータ”、“書き込みデータ1”、“書き込みデータ2”が存在する例を示したが、データ名称800には必要に応じて他のOSデータも含むことができる。
次に、全体の処理の流れについて詳細に説明する。
図11は、図1においてブレード1(112a)がはじめてOSを起動する場合の処理を示したものである。図1に示すブレード1の起動処理は、1)ブートローダ起動、2)OSローダ起動、3)OS起動、及び4)OS変更の4つの処理ブロックからなる。
ブレード1(112a)の電源を入れるとBIOS121が起動される(S40)。
1)ブートローダ起動:
次に、ブートローダ118を読み込むために、データ格納場所参照テーブル122のデータ名称800の”ブートローダ”に対応する格納LBA801の値”0”、LBAサイズ802の値”1”を取得する(S41)。次に、要求コマンドデータ108のコマンド名称200に”読み込み“、対象LU201にOSマスタデータ101のLU番号”0”、LBA202に取得した格納LBA801の値”0”、発行元システム名称204に”ブレード1”をそれぞれ格納して、ディスクアレイコントローラ103に送信する(S42)。
1)ブートローダ起動:
次に、ブートローダ118を読み込むために、データ格納場所参照テーブル122のデータ名称800の”ブートローダ”に対応する格納LBA801の値”0”、LBAサイズ802の値”1”を取得する(S41)。次に、要求コマンドデータ108のコマンド名称200に”読み込み“、対象LU201にOSマスタデータ101のLU番号”0”、LBA202に取得した格納LBA801の値”0”、発行元システム名称204に”ブレード1”をそれぞれ格納して、ディスクアレイコントローラ103に送信する(S42)。
要求コマンドデータ108を受け取ったディスクアレイコントローラ103は、要求コマンドデータ処理手続き105を実行して、OSマスタデータ101からブートローダ118を読み込む(S43)。次に、応答コマンドデータ109のコマンド名称300に”読み込み完了”を格納し、データ301に読み込んだデータ(ブートローダ118)を格納して、ブレード1(112a)に送信する(S44)。
ブレード1(112a)は、応答コマンドデータ109からブートローダ118を取り出してメモリにロードする(S45)。次に、先に取得したデータ格納場所参照テーブル122のLBAサイズ802の値”1”をデクリメントして、結果が0であるため、ブートローダ118をすべてブレード1のメモリに読み込んだと判断して、ブートローダを起動する(S46)。
本実施例では、ブートローダ118のLBAサイズ802が”1”である場合の例を示したが、LBA802の値は任意でもよい。その場合、デクリメントした結果が0になるまで、ステップS42からS45の処理を繰り返す。
2)OSローダ起動:
ブレード1(112a)で起動されたブートローダ118は、OSローダ119を起動するために、データ格納場所参照テーブル122のデータ名称800の”OSローダ”に対応する格納LBA801の値”1”、LBAサイズ802の値”1”を取得する(S47)。次に、要求コマンドデータ108のコマンド名称200に”読み込み”、対象LU201にOSマスタデータ101のLU番号”0”、LBA202に取得した格納LBA801の値”1”、発行元システム名称204に”ブレード1”をそれぞれ格納して、ディスクアレイコントローラ103に送信する(S48)。
2)OSローダ起動:
ブレード1(112a)で起動されたブートローダ118は、OSローダ119を起動するために、データ格納場所参照テーブル122のデータ名称800の”OSローダ”に対応する格納LBA801の値”1”、LBAサイズ802の値”1”を取得する(S47)。次に、要求コマンドデータ108のコマンド名称200に”読み込み”、対象LU201にOSマスタデータ101のLU番号”0”、LBA202に取得した格納LBA801の値”1”、発行元システム名称204に”ブレード1”をそれぞれ格納して、ディスクアレイコントローラ103に送信する(S48)。
ブレード1(112a)で起動されたブートローダ118からの要求コマンドデータ108を受け取ったディスクアレイコントローラ103は、要求コマンドデータ処理手続き105を実行して、OSマスタデータ101からOSローダ119を読み込む(S49)。次に、応答コマンドデータ109のコマンド名称300に”読み込み完了”、データ301に読み込んだデータ(OSローダ119)を格納して、ブレード1(112a)に送信する(S50)。
ブレード1(112a)は、応答コマンドデータ109からOSローダ119をメモリにロードする(S51)。次に、先に取得したデータ格納場所参照テーブル122のLBAサイズ802の値”1”をデクリメントして、結果が0であるため、OSローダ119をすべて読み込んだと判断して、OSローダ119を起動する(S52)。
本実施例では、OSローダ119のLBAサイズ802が”1”である場合の例を示したが、LBA802の値は任意でもよい。その場合、デクリメントした結果が0になるまで、ステップS48からS51の処理を繰り返す。
3)OS起動:
ブレード1(112a)で起動されたOSローダ119は、OSを起動するために、データ格納場所参照テーブル122のデータ名称800の”OSデータ”に対応する格納LBA801の値”2”、LBAサイズ802の値”600”を取得する(S53)。次に、要求コマンドデータ108のコマンド名称200に”読み込み”、対象LU201にマスタOSデータ101のLU番号”0”、LBA202に取得した格納LBA801の値”2”、発行元システム名称204に”ブレード1”をそれぞれ格納して、ディスクアレイコントローラ103に送信する(S54)。
3)OS起動:
ブレード1(112a)で起動されたOSローダ119は、OSを起動するために、データ格納場所参照テーブル122のデータ名称800の”OSデータ”に対応する格納LBA801の値”2”、LBAサイズ802の値”600”を取得する(S53)。次に、要求コマンドデータ108のコマンド名称200に”読み込み”、対象LU201にマスタOSデータ101のLU番号”0”、LBA202に取得した格納LBA801の値”2”、発行元システム名称204に”ブレード1”をそれぞれ格納して、ディスクアレイコントローラ103に送信する(S54)。
ブレード1(112a)で起動されたOSローダ119からの要求コマンドデータ108を受け取ったディスクアレイコントローラ103は、要求コマンドデータ処理105の読み込み要求処理106を実行する。なお、書き込み要求処理107のステップS32(後述の図10参照)において、ブレード1でははじめてOSが起動されるため、差分管理テーブル115の参照LBA600に、OSマスタデータ101の格納LBAである値”2”が存在しない。そのため、OSマスタデータ101からOSデータ120を読み込む(S55)。次に、応答コマンドデータ109のコマンド名称300に”読み込み完了”、データ301に読み込んだデータを格納して、ブレード1(112a)に送信する(S56)。
ブレード1(112a)は、応答コマンドデータ109からOSデータ120をメモリにロードする(S57)。次に、先に取得したLBAサイズ802の値”600”をデクリメントして、結果が0でないため、要求コマンドデータ108のLBA202の値をデクリメントして、ステップS54からS57の処理を繰り返す。デクリメントした結果が0になるとOSデータ120をすべて読み込んだと判断して、OSを起動する(S58)。
4)OS変更:
ブレード1でOSが起動されると、ブレードに固有のデバイス情報700、ドライバ情報701、OS情報702、アプリケーション情報703など、ブレード1に固有のOSデータ117(OSの変更データ)の書き込み要求が発生する。本実施例では、”書き込みデータ1”の書き込みについて説明する。
4)OS変更:
ブレード1でOSが起動されると、ブレードに固有のデバイス情報700、ドライバ情報701、OS情報702、アプリケーション情報703など、ブレード1に固有のOSデータ117(OSの変更データ)の書き込み要求が発生する。本実施例では、”書き込みデータ1”の書き込みについて説明する。
OSはデータ格納場所参照テーブル122のデータ名称800の”書き込みデータ1”に対応する格納LBA801の値”200”、LBAサイズ802の値”20”を取得する(S59)。次に、要求コマンドデータ108のコマンド名称に”書き込み”、対象LU201にOSマスタデータ101のLU番号”0”、LBA201に取得した格納LBA801の値”200”、発行元システム名称204に”ブレード1”をそれぞれ格納して、ディスクアレイコントローラ103に送信する(S60)。
ブレード1(112a)からの要求コマンドデータ108を受け取ったディスクアレイコントローラ103は、要求コマンドデータ処理105の書き込み要求処理107において、対象LU201の値”0”に対応するシステムマッピングテーブル番号”0”のシステム名称500が”ブレード1”である差分LU番号”1”を取得し、その差分データ102の差分管理テーブル115を参照する。今回ブレード1は初めてOSを起動するため、差分管理テーブル115にデータは存在しない。そのため、参照LBA600に”200”、差分データ601にデータ203を新しく追加する(S61)。次に、応答コマンドデータ109のコマンド名称300に”書き込み完了”を格納して、ブレード1(112a)に送信する(S62)。
ブレード1(112a)は、応答コマンドデータ109を受け取ると、先に取得したLBAサイズ802の値”20”をデクリメントして、結果が0でないため、要求コマンドデータ108のLBA202の値をデクリメントして、データ203の値をLBA202に対応するデータに書き換えて、ステップS60からS62の処理を繰り返す。デクリメントした結果が0になるとデータ(OSの変更データ)の書き込みがすべて終了したと判断する。
図12は、図1においてブレード1(112a)が2回目以降にOSを起動する場合の処理の流れを示す。ここで、ステップS85以外の処理は図11と同じであるため、説明を省略する。
ステップ85では、OSの起動時に、要求コマンドデータ処理105において、当該LBAに対応する差分データがあれば、OSデータとしてこの差分データを読み込み、差分データがなければ、OSデータとしてOSマスタデータを読み込む。即ち、ブレード1(112a)が2回目以降にOSを起動する場合、まず当該LBAに対応する差分データの有無が調べられ、差分データがあればこの差分データが優先的に読み込まれ、差分データがない場合のみOSマスタデータが読み込まれる。その結果、今回のOS起動以前にOSデータが変更されていれば、ブレード1のメモリには元のOSマスタデータと差分データ(今までに変更されたOSデータ)とが混在した状態が構成される。以下では、ステップ85の処理の詳細を述べる。
1)OSデータが変更され、当該LBAに対応する差分データが存在する場合:
本実施例では、差分管理テーブル115の参照LBA600に図11の処理S59−S62で書き込まれた”200”〜”219”の20個の値が存在する。そのため、ステップS84からS87の処理の繰り返しにおいて、LBA202の値が”200”〜”219”の場合は、差分管理テーブル115に値が存在するため、差分データ102の差分管理テーブル115の差分データ601から対応するデータを読み込む(S85)。
本実施例では、差分管理テーブル115の参照LBA600に図11の処理S59−S62で書き込まれた”200”〜”219”の20個の値が存在する。そのため、ステップS84からS87の処理の繰り返しにおいて、LBA202の値が”200”〜”219”の場合は、差分管理テーブル115に値が存在するため、差分データ102の差分管理テーブル115の差分データ601から対応するデータを読み込む(S85)。
2)OSデータが変更されず、当該LBAに対応する差分データが存在しない場合:
要求コマンドデータ処理105において、ブレード1(112a)では2回目以降のOSの起動が行われているが、差分管理テーブル115の参照LBA600に要求コマンド108のLBAと一致する値”2”(OSマスタデータ101の格納LBAの値)は存在しないため、ブレード1からの要求コマンドデータ108を受け取ったディスクアレイコントローラ103は、OSマスタデータ101からOSデータ120を読み込む(S85)。次に、応答コマンドデータ109のコマンド名称300に”読み込み完了”、データ301に読み込んだデータを格納して、ブレード1(112a)に送信する(S86)。
要求コマンドデータ処理105において、ブレード1(112a)では2回目以降のOSの起動が行われているが、差分管理テーブル115の参照LBA600に要求コマンド108のLBAと一致する値”2”(OSマスタデータ101の格納LBAの値)は存在しないため、ブレード1からの要求コマンドデータ108を受け取ったディスクアレイコントローラ103は、OSマスタデータ101からOSデータ120を読み込む(S85)。次に、応答コマンドデータ109のコマンド名称300に”読み込み完了”、データ301に読み込んだデータを格納して、ブレード1(112a)に送信する(S86)。
次に、ディスクアレイコントローラ103の要求コマンドデータ処理105が行なう、ブレード1から受け取った要求コマンドの処理について詳細に説明する。ここではブレード1に対する処理を説明するが、他のブレードについても同様の処理が行なわれる。
ブレード1のOSを起動する場合、ブレード1に変更分を含む最新のOSデータを格納するために、ブレード1からのOSデータの読み込み要求に基づいて、図13のデータ格納場所参照テーブル122のLBAサイズ802に示された値の回数分だけ以下の処理を繰り返す。即ち、LBAの単位となる所定のデータ長のデータブロックごとに以下の処理(読み込み要求処理106)が繰り返される。
a)ブレード1からデータブロックの単位でOSデータの読み込み要求を受け付ける。
b)ブレード1に固有な、OSデータの差分データをブレード1に対応した差分管理テーブル115から検索する。
c)差分管理テーブル115に差分データがあれば、検索されたデータブロック分の差分データをブレード1のメモリに転送する。
d)差分管理テーブル115に差分データがなければ、各ブレードに共通なOSデータを格納したOSマスタデータ108からデータブロック分のOSデータ120を取り出してブレード1のメモリに転送する。
ブレード1の動作中にOSデータが変更された場合、ディスクアレイコントローラ103の要求コマンドデータ処理105における書き込み要求処理107は、ブレード1から変更されたOSデータの書き込み要求を受け取り、受け取った要求に含まれ、変更されたOSデータが格納されたデータブロックを、書き込み要求に含まれるデータブロックの番号(LBA)と共に、ブレード1に対応する差分管理テーブル115に格納する。この時、差分管理テーブル115において、書き込み要求が示すLBAに対応する差分データが既に格納されていれば、新たな書き込み要求によって差分データが更新され、まだ格納されていなければ、差分データが追加される。ブレード1においてOSデータが変更されると、その都度、上記の書き込み処理が実行される。
図8は、要求コマンドデータ処理105の処理の流れを詳細に示す。図8に示すステップS10からステップS17の処理は、1つのLBAごとに、LBAサイズ802の回数だけ繰り返し実行される。
ブレード1(112a)から要求コマンドデータ108を受け取る(S10)と、要求コマンドデータ108の対象LU201の値“0”を取得する。次に、共有LUマッピングテーブル110の共有LU番号400を参照して、先に取得した対象LUの値“0”と一致する共有LU番号400の値“0”に対応しているシステムマッピングテーブル番号401の値“0”を取得する(S11)。次に、要求コマンドデータ108の発行元システム名称204の“ブレード1”を取得して、システムマッピングテーブル0(111)のシステム名称500と一致する“ブレード1”に対応した差分LU番号501の値“1”を取得する(S12)。取得した値“1”をもとに、差分データLU(102)の差分管理テーブル115を参照する(S13)。次に、要求コマンドデータ108のコマンド名称200を取得して、“読み込み要求”であるか“書き込み要求”であるかを判断する(S14)。
判断した結果、コマンド名称200が“読み込み要求”であった場合は、読み込み要求処理106を呼び出す(S15)。このとき、引数として、要求コマンドデータ108を渡す。読み込み要求処理106の処理は図9に示す。
判断した結果、コマンド名称200が“書き込み要求”であった場合は、書き込み要求処理107を呼び出す(S16)。このとき、引数として、要求コマンドデータ108を渡す。書き込み要求処理107の処理は図10に示す。
読み込み要求処理106、または書き込み要求処理107が完了すると応答コマンドデータ109が戻り値として返される。この応答コマンドデータをブレード1に送信する(S17)。
図9は、図8のステップS15に示した読み込み要求処理106の処理を示す。
引数で渡された要求コマンドデータ108のLBA202の値“0”が、差分管理テーブル115の参照LBA600に存在するかを照会する(S21)。参照LBA600に値“0”が存在する場合は(S22)、指定されたOSマスタデータ101のLBAのデータは変更されていると判断して、差分データ601の値データ1を取得する(S23)。即ち、参照LBA600に値“0”が存在するということは、以前にOSマスタデータのLBA0番地になんらかの変更があったことを示しているので、これが要求コマンドデータ202の値“0”と一致する場合は、差分データを読み込み、参照LBA600に値“0”が存在しない場合は、OSマスタデータのLBA0番地からデータを読み込む。取得したデータ1を応答コマンドデータ109のデータ301に格納する(S25)。次に、応答コマンドデータ109のコマンド名称300に“読み込み完了”を格納する。作成した応答コマンドデータを、戻り値として要求コマンドデータ処理105に返す。
ステップS22において、LBA600に値“0”が存在しなかった場合は、指定されたOSマスタデータ101のLBAのデータは変更されていないと判断して、OSマスタデータ101の指定されたLBAのデータを取得する(S24)。取得したデータを応答コマンドデータ109のデータ301に格納する(S25)。次に、応答コマンドデータ109のコマンド名称300に“読み込み完了”を格納する。作成した応答コマンドデータ109を、戻り値として要求コマンドデータ処理105に返す。
図10は、図8のステップS16に示した書き込み要求処理107の処理を示す。
引数で渡された要求コマンドデータ108のLBA202の値“1”が、差分管理テーブル115の参照LBA600に存在するかを照会する(S31)。参照LBA600に値“1”が存在する場合は(S32)、差分管理テーブル115の値“1”に対応する差分データ601のデータ2を、要求コマンドデータ108のデータ203のデータ1で上書きする(S33)。即ち、上記の説明では、要求コマンドデータ108のLBA202が1である場合を説明しており、LBA202の値が“1”ということは、OSマスタデータのLBA1に対する要求です。上記の説明で述べたように、参照LBA600に値“1”が存在すれば、OSマスタデータではなく、差分データを使用するため、書き込み要求である場合は、差分データとして、参照LBA600の値“1”に対応するデータを上書きすることになります。次に、応答コマンドデータ109のコマンド名称300に“書き込み完了”を格納する(S35)。作成した応答コマンドデータ109を、戻り値として要求コマンドデータ処理手続き105に返す。
ステップS32において、LBA600に値“1”が存在しなかった場合は、差分管理テーブル115の参照LBA600と差分データ601に対して、要求コマンドデータ108のLBA202の値“1”、データ203のデータ1を追加する(S34)。次に、応答コマンドデータ109のコマンド名称300に“書き込み完了”を格納する(S35)。作成した応答コマンドデータ109を、戻り値として要求コマンドデータ処理105
に返す。
に返す。
以上に述べた本実施例の方法を実行するためのプログラムを、計算機で読み取り可能な記憶媒体に格納し、これをメモリに読み込んで実行することも可能である。
100:ディスクシステム
101:OSマスタデータLU
102:差分データLU
103:ディスクアレイコントローラ
104:管理情報
105:要求コマンドデータ処理手続き
106:読み込み要求処理手続き
107:書き込み要求処理手続き
108:要求コマンドデータ
109:応答コマンドデータ
110:共有LUマッピングテーブル
111:システムマッピングテーブル
112:ブレード
113:ファイバーケーブル
114:ブレードシステム
115:差分管理テーブル
116:バス
117:ブレード固有のOSデータ
118:ブートローダ
119:OSローダ
120:OSデータ
121:BIOS
122:データ格納場所参照テーブル
101:OSマスタデータLU
102:差分データLU
103:ディスクアレイコントローラ
104:管理情報
105:要求コマンドデータ処理手続き
106:読み込み要求処理手続き
107:書き込み要求処理手続き
108:要求コマンドデータ
109:応答コマンドデータ
110:共有LUマッピングテーブル
111:システムマッピングテーブル
112:ブレード
113:ファイバーケーブル
114:ブレードシステム
115:差分管理テーブル
116:バス
117:ブレード固有のOSデータ
118:ブートローダ
119:OSローダ
120:OSデータ
121:BIOS
122:データ格納場所参照テーブル
Claims (1)
- 複数の計算機の各々が、複数のOSのうちの1つを起動するために接続されたディスクシステムであって、
前記ディスクシステムは、
前記複数のOSのうち、前記複数の計算機の各々が共通に使用する一つのOSを起動するために共通で使用するOSデータを格納する複数のOSマスタデータ論理ディスクと、
前記複数のOSのうち、前記複数の計算機の各々が共通に使用する一つのOSに対応した前記OSマスタデータ論理ディスクの各々に対して書き込んだ差分データを格納する、前記複数の計算機の各々に対応した複数の差分データ論理ディスクと、
前記複数のOSマスタデータ論理ディスクと前記複数の差分データ論理ディスクとに接続し、前記複数の計算機の各々からのアクセス要求を処理する要求コマンドデータ処理部とを有し、
前記要求コマンドデータ処理部は、
前記複数のOSマスタデータ論理ディスクの各々を特定するロジカルユニット番号を格納した共通LUマッピングテーブルと、前記ロジカルユニット番号毎に前記差分データ論理ディスクとの対応関係を格納する複数のシステムマッピングテーブルとを記憶し、前記共通LUマッピングテーブルは、各々の前記ロジカルユニット番号に対応する前記システムマッピングテーブルを特定するためのシステムマッピングテーブル番号を前記ロジカルユニット番号に対応付けて格納し、前記システムマッピングテーブルは、前記複数の計算機の各々を特定するシステム名称と前記差分データ論理ディスクを特定する差分ロジカルユニット番号との対応関係を格納し、
前記計算機から発行された前記アクセス要求が前記共通LUマッピングテーブルに格納された前記ロジカルユニット番号に対する要求であるかどうかを判定し、
前記アクセス要求が前記共通LUマッピングテーブルに格納された前記ロジカルユニット番号に対する要求であった場合に、前記複数のOSマスタデータ論理ディスクのうち前記ロジカルユニット番号に対応するOSマスタデータ論理ディスクを特定し、当該ロジカルユニット番号に対応する前記システムマッピングテーブルを前記共通LUマッピングテーブルに対応づけて格納されたシステムマッピングテーブル番号から特定し、特定された前記システムマッピングテーブルに格納された前記システム名称から、受領した前記アクセス要求を発行した計算機に対応する前記差分データ論理ディスクを特定し、
受領した前記アクセス要求が読み込み要求であった場合、特定した前記差分データ論理ディスクに記憶する前記差分情報から前記読み込み要求に対応する前記差分データの有無を判断し、前記差分データがあれば前記差分データ論理ディスクから前記読み込み要求と対応する前記差分データを読み出して前記計算機へ応答し、前記差分データがなければ前記読み込み要求と対応する前記OSデータを前記特定したOSマスタデータ論理ディスクから読み出して前記計算機へ応答し、
前記要求コマンドデータ処理部は、
前記読み込み要求を、前記差分データが原因でおきた障害時のリカバリのために受領した場合、前記OSデータを前記差分データの有無にかかわらず、特定した前記OSマスタデータ論理ディスクから読み出して前記計算機へ応答する、
ことを特徴とするディスクシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010157418A JP4993005B2 (ja) | 2010-07-12 | 2010-07-12 | ディスクシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010157418A JP4993005B2 (ja) | 2010-07-12 | 2010-07-12 | ディスクシステム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004357543A Division JP4613598B2 (ja) | 2004-12-10 | 2004-12-10 | ディスクシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010272127A JP2010272127A (ja) | 2010-12-02 |
JP4993005B2 true JP4993005B2 (ja) | 2012-08-08 |
Family
ID=43420048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010157418A Expired - Fee Related JP4993005B2 (ja) | 2010-07-12 | 2010-07-12 | ディスクシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4993005B2 (ja) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3837953B2 (ja) * | 1999-03-12 | 2006-10-25 | 株式会社日立製作所 | 計算機システム |
JP4241911B2 (ja) * | 2002-03-28 | 2009-03-18 | 株式会社日立製作所 | 情報処理システム |
WO2004061681A1 (ja) * | 2002-12-26 | 2004-07-22 | Fujitsu Limited | 運用管理方法および運用管理サーバ |
-
2010
- 2010-07-12 JP JP2010157418A patent/JP4993005B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010272127A (ja) | 2010-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5772127B2 (ja) | 仮想マシン管理方法、情報処理装置および仮想マシン管理プログラム | |
JP4592814B2 (ja) | 情報処理装置 | |
US10838829B2 (en) | Method and apparatus for loading data from a mirror server and a non-transitory computer readable storage medium | |
EP2477111B1 (en) | Computer system and program restoring method thereof | |
US8745342B2 (en) | Computer system for controlling backups using wide area network | |
CN102799464A (zh) | 虚拟机创建方法及系统、虚拟机重装方法及系统 | |
EP2817725B1 (en) | Maintaining system firmware images remotely using a distribute file system protocol | |
US20150263909A1 (en) | System and method for monitoring a large number of information processing devices in a communication network | |
WO2018173164A1 (ja) | データ処理システム | |
US6968382B2 (en) | Activating a volume group without a quorum of disks in the volume group being active | |
WO2016117022A1 (ja) | ログの管理方法及び計算機システム | |
CN109407975B (zh) | 写数据方法与计算节点以及分布式存储系统 | |
JP4613598B2 (ja) | ディスクシステム | |
JP4759941B2 (ja) | 起動イメージ提供システム及び方法、ブートノード装置、ブートサーバ装置並びにプログラム | |
US20150082014A1 (en) | Virtual Storage Devices Formed by Selected Partitions of a Physical Storage Device | |
US8185500B2 (en) | Information processing apparatus, and operation method of storage system | |
TW201523447A (zh) | 伺服器系統與韌體更新方法 | |
JP6418419B2 (ja) | ハードディスクがアプリケーションコードを実行するための方法および装置 | |
WO2023087622A1 (zh) | 虚拟机引导的配置方法、装置、计算机设备和存储介质 | |
JP4993005B2 (ja) | ディスクシステム | |
US8671186B2 (en) | Computer system management method and management apparatus | |
US10990286B1 (en) | Parallel upgrade of nodes in a storage system | |
JP6497157B2 (ja) | 情報管理装置、情報管理方法、情報管理プログラム、データ構造、及び、ソフトウェア資産管理システム | |
JP2021022287A (ja) | バックアップ処理装置、バックアップ処理方法、及び、バックアップ処理プログラム | |
JP5772527B2 (ja) | データ管理システム及び情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20120410 |
|
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: 20120423 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150518 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150518 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |