特許第6859684号(P6859684)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧
特許6859684ストレージ制御装置、ストレージ装置、及び制御プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6859684
(24)【登録日】2021年3月30日
(45)【発行日】2021年4月14日
(54)【発明の名称】ストレージ制御装置、ストレージ装置、及び制御プログラム
(51)【国際特許分類】
   G06F 3/06 20060101AFI20210405BHJP
   G06F 13/12 20060101ALI20210405BHJP
【FI】
   G06F3/06 301E
   G06F3/06 301A
   G06F3/06 301H
   G06F3/06 540
   G06F13/12 310P
【請求項の数】6
【全頁数】31
(21)【出願番号】特願2016-235966(P2016-235966)
(22)【出願日】2016年12月5日
(65)【公開番号】特開2018-92426(P2018-92426A)
(43)【公開日】2018年6月14日
【審査請求日】2019年8月7日
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100092978
【弁理士】
【氏名又は名称】真田 有
(72)【発明者】
【氏名】内山 賢治
【審査官】 打出 義尚
(56)【参考文献】
【文献】 特開2016−157270(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06
G06F 13/12
(57)【特許請求の範囲】
【請求項1】
上位装置からの第1アクセス要求であって、前記第1アクセス要求に応じた処理時間がファームウェアの適用処理の処理時間よりも長いデータに係る前記第1アクセス要求が発行された場合に、複数のストレージグループから、ファームウェアの適用対象である複数の記憶装置の各々が属するストレージグループを特定する特定部と、
特定したストレージグループごとの処理時間の推定値であって、前記特定したストレージグループを処理対象とする、前記第1アクセス要求を含む1以上の第2アクセス要求でアクセス対象に指定された全データの処理時間の推定値に基づいて、前記特定したストレージグループの各々に対してファームウェアの適用処理の優先度を設定する設定部と、
設定した優先度に応じた実行順序で、前記優先度が設定されたストレージグループに属する記憶装置に対して前記適用処理を行なう適用部と、
前記適用処理を実行中の第1ストレージグループ以外の第2ストレージグループに対して、前記第2ストレージグループを処理対象とする1以上の第2アクセス要求に応じた処理を行なうアクセス制御部と、をそなえ
前記設定部は、所定の条件を満たすストレージグループのうちの前記第1アクセス要求でアクセス対象に指定された複数のデータのうちのデータ単位の処理時間の推定値が最も大きいデータを割り当てられているストレージグループ、及び、前記1以上の第2アクセス要求に応じた処理時間の推定値が最も小さいストレージグループのうちの一方のストレージグループに対して前記適用処理が最後に実施される優先度を設定し、他方のストレージグループに対して前記適用処理が最後から二番目に実施される優先度を設定する、
ことを特徴とする、ストレージ制御装置。
【請求項2】
前記設定部は、前記1以上の第2アクセス要求でアクセス対象に指定された全データの処理時間の推定値が大きいストレージグループほど前記適用処理の実行順序が先となる優先度を設定する、
ことを特徴とする、請求項1記載のストレージ制御装置。
【請求項3】
前記設定部は、前記第1アクセス要求でアクセス対象に指定された複数のデータのうちのデータ単位の処理時間の推定値前記適用処理の処理時間で除算した結果の端数を切り上げた結果に1を加算して得られる値が前記特定したストレージグループの数以下であるときの前記値を、前記優先度の段階数として決定する、
ことを特徴とする、請求項1又は2記載のストレージ制御装置。
【請求項4】
前記設定部は、前記優先度の段階数と、前記特定したストレージグループの数とに基づいて、同一の優先度を設定するストレージグループの数を決定する、
ことを特徴とする、請求項記載のストレージ制御装置。
【請求項5】
複数の記憶装置と、
前記複数の記憶装置の制御を行なうストレージ制御装置と、をそなえ、
前記ストレージ制御装置は、
上位装置からの第1アクセス要求であって、前記第1アクセス要求に応じた処理時間がファームウェアの適用処理の処理時間よりも長いデータに係る前記第1アクセス要求が発行された場合に、複数のストレージグループから、ファームウェアの適用対象である複数の記憶装置の各々が属するストレージグループを特定する特定部と、
特定したストレージグループごとの処理時間の推定値であって、前記特定したストレージグループを処理対象とする、前記第1アクセス要求を含む1以上の第2アクセス要求でアクセス対象に指定された全データの処理時間の推定値に基づいて、前記特定したストレージグループの各々に対してファームウェアの適用処理の優先度を設定する設定部と、
設定した優先度に応じた実行順序で、前記優先度が設定されたストレージグループに属する記憶装置に対して前記適用処理を行なう適用部と、
前記適用処理を実行中の第1ストレージグループ以外の第2ストレージグループに対して、前記第2ストレージグループを処理対象とする1以上の第2アクセス要求に応じた処理を行なうアクセス制御部と、をそなえ
前記設定部は、所定の条件を満たすストレージグループのうちの前記第1アクセス要求でアクセス対象に指定された複数のデータのうちのデータ単位の処理時間の推定値が最も大きいデータを割り当てられているストレージグループ、及び、前記1以上の第2アクセス要求に応じた処理時間の推定値が最も小さいストレージグループのうちの一方のストレージグループに対して前記適用処理が最後に実施される優先度を設定し、他方のストレージグループに対して前記適用処理が最後から二番目に実施される優先度を設定する、
ことを特徴とする、ストレージ装置。
【請求項6】
コンピュータに、
上位装置からの第1アクセス要求であって、前記第1アクセス要求に応じた処理時間がファームウェアの適用処理の処理時間よりも長いデータに係る前記第1アクセス要求が発行された場合に、複数のストレージグループから、ファームウェアの適用対象である複数の記憶装置の各々が属するストレージグループを特定し、
特定したストレージグループごとの処理時間の推定値であって、前記特定したストレージグループを処理対象とする、前記第1アクセス要求を含む1以上の第2アクセス要求でアクセス対象に指定された全データの処理時間の推定値に基づいて、前記特定したストレージグループの各々に対してファームウェアの適用処理の優先度を設定し、
設定した優先度に応じた実行順序で、前記優先度が設定されたストレージグループに属する記憶装置に対して前記適用処理を行ない、
前記適用処理を実行中の第1ストレージグループ以外の第2ストレージグループに対して、前記第2ストレージグループを処理対象とする1以上の第2アクセス要求に応じた処理を行ない、
前記優先度を設定する処理は、所定の条件を満たすストレージグループのうちの前記第1アクセス要求でアクセス対象に指定された複数のデータのうちのデータ単位の処理時間の推定値が最も大きいデータを割り当てられているストレージグループ、及び、前記1以上の第2アクセス要求に応じた処理時間の推定値が最も小さいストレージグループのうちの一方のストレージグループに対して前記適用処理が最後に実施される優先度を設定し、他方のストレージグループに対して前記適用処理が最後から二番目に実施される優先度を設定する処理を含む、
処理を実行させることを特徴とする、制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージ制御装置、ストレージ装置、及び制御プログラムに関する。
【背景技術】
【0002】
磁気テープカートリッジや光ディスクカートリッジ等の可搬媒体を複数収容するライブラリと、ディスクアレイ装置とをそなえる仮想テープライブラリ装置が知られている。仮想テープライブラリ装置は、ホスト装置からライトされたデータを一次キャッシュとして用いられるディスクアレイ装置に格納する。仮想テープライブラリ装置において、ディスクアレイ装置はTVC(Tape Volume Cache)とも呼ばれる。
【0003】
ディスクアレイ装置は、複数の記憶装置、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)等のディスクをRAID(Redundant Arrays of Inexpensive Disks)グループ単位で管理する。従って、ディスクの一部からデータが読み出せなくなっても残りのディスクから復旧できるため、データの信頼性を向上できる。
【0004】
TVCのディスク内部にはファームウェア(Firmware;以下、FW、ディスクFW、又は、ディスクファームと表記する場合がある)が格納されている。FW(例えば更新版のFW)をTVCのディスクに適用するにはディスクへのデータRead/Write処理を一時的に止めることになる。このため、FW適用中は、ホスト装置から仮想テープライブラリ装置へのアクセスが制限される。
【0005】
なお、関連する技術として、例えば、FWを適用中にホスト装置からのアクセスを継続させるために、FWの適用時間を基準に対象となるRAIDグループを2つにグループ化する技術が知られている。
【0006】
この技術では、例えば、2つのグループのうちの第1のグループに対してFWの適用を行ない、第2のグループはホストI/O(Input / Output)に係る処理を行なう。このとき、オンキャッシュのLV(Logical Volume)から優先して処理を行なう。
【0007】
なお、オフキャッシュのLVであってFW適用中の第1のグループ上のファイルシステムに格納されているLVに対するホストI/Oを処理する場合、該当するLVについてホストI/Oを処理可能な第2のグループのファイルシステムを用いる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2016−157270号公報
【特許文献2】特開2008−217202号公報
【特許文献3】特開2002−318666号公報
【特許文献4】特開2009−282834号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
上述したRAIDグループを2つにグループ化する技術では、システムのフルバックアップやフルリストアを行なうような大容量のデータに係るI/O処理をFW適用対象となるディスクに対して行なう場合に、以下の不都合が生じる場合がある。なお、大容量のデータとは、例えば、データのI/O処理に係る時間(例えば読み書き完了までの時間)がFW適用時間よりも長いデータである。
【0010】
このようなI/O処理が存在する場合、第1のグループでFWを適用している間に、第2のグループでI/O処理を完了できないことがある。その結果、第1のグループに対するFW適用、若しくは、ホスト装置からのアクセスのいずれか一方を停止させる事態に陥る場合がある。
【0011】
換言すれば、ディスクアレイ装置に対するFW適用により、仮想テープライブラリ装置の可用性が低下する場合がある。
【0012】
なお、上述した不都合は、仮想テープライブラリ装置にそなえられたディスクアレイ装置に限定されるものではなく、複数の記憶装置をそなえる種々のストレージ装置においても同様に発生する可能性がある。
【0013】
1つの側面では、本発明は、ストレージ装置の可用性の低下を抑制することを目的の1つとする。
【0014】
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
【課題を解決するための手段】
【0015】
1つの側面では、ストレージ制御装置は、特定部と、設定部と、適用部と、アクセス制御部とをそなえてよい。前記特定部は、上位装置からの第1アクセス要求であって、前記第1アクセス要求に応じた処理時間がファームウェアの適用処理の処理時間よりも長いデータに係る前記第1アクセス要求が発行された場合に、複数のストレージグループから、ファームウェアの適用対象である複数の記憶装置の各々が属するストレージグループを特定してよい。前記設定部は、特定したストレージグループごとの処理時間の推定値であって、前記特定したストレージグループを処理対象とする、前記第1アクセス要求を含む1以上の第2アクセス要求でアクセス対象に指定された全データの処理時間の推定値に基づいて、前記特定したストレージグループの各々に対してファームウェアの適用処理の優先度を設定してよい。前記適用部は、設定した優先度に応じた実行順序で、前記優先度が設定されたストレージグループに属する記憶装置に対して前記適用処理を行なってよい。前記アクセス制御部は、前記適用処理を実行中の第1ストレージグループ以外の第2ストレージグループに対して、前記第2ストレージグループを処理対象とする1以上の第2アクセス要求に応じた処理を行なってよい。さらに、前記設定部は、所定の条件を満たすストレージグループのうちの前記第1アクセス要求でアクセス対象に指定された複数のデータのうちのデータ単位の処理時間の推定値が最も大きいデータを割り当てられているストレージグループ、及び、前記1以上の第2アクセス要求に応じた処理時間の推定値が最も小さいストレージグループのうちの一方のストレージグループに対して前記適用処理が最後に実施される優先度を設定し、他方のストレージグループに対して前記適用処理が最後から二番目に実施される優先度を設定してよい。
【発明の効果】
【0016】
1つの側面では、ストレージ装置の可用性の低下を抑制することができる。
【図面の簡単な説明】
【0017】
図1】比較例に係るFW適用処理の動作例を示すフローチャートである。
図2】比較例に係るFW適用処理の動作例を示す図である。
図3】一実施形態に係るシステムの構成例を示すブロック図である。
図4】階層制御サーバのハードウェア構成例を示すブロック図である。
図5】階層制御サーバの機能構成例を示すブロック図である。
図6】仮想テープライブラリ装置におけるファイルシステムの一例を示す図である。
図7】ディスク情報テーブルの一例を示す図である。
図8】RAIDグループ情報テーブルの一例を示す図である。
図9】ファイルシステム情報テーブルの一例を示す図である。
図10】FW適用制御部によるFW適用分割数算出処理の動作例を示すフローチャートである。
図11】FW適用制御部によるFW適用分割数算出処理の動作例を示すフローチャートである。
図12】オンキャッシュLVの処理時間の算出結果(ソート後)の一例を示す図である。
図13】FW適用優先度決定処理の動作例を示すフローチャートである。
図14】RAIDグループごとのオンキャッシュLVの処理時間の一例を示す図である。
図15】FW適用優先度決定処理の動作例を示すフローチャートである。
図16】RAIDグループごとの優先度の一例を示す図である。
図17】FW適用処理の動作例を示すフローチャートである。
図18】FW適用前の各RAIDグループの状態例を示す図である。
図19】FW適用第1段階処理中の各RAIDグループの状態例を示す図である。
図20】ファイルシステム情報テーブルの状態変化の一例を示す図である。
図21】ディスク情報テーブルの状態変化の一例を示す図である。
図22】FW適用第2段階処理中の各RAIDグループの状態例を示す図である。
図23】ファイルシステム情報テーブルの状態変化の一例を示す図である。
図24】ディスク情報テーブルの状態変化の一例を示す図である。
図25】FW適用第3段階処理中の各RAIDグループの状態例を示す図である。
図26】ファイルシステム情報テーブルの状態変化の一例を示す図である。
【発明を実施するための形態】
【0018】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【0019】
〔1〕一実施形態
はじめに、図1及び図2を参照して、比較例に係るFW適用処理について説明する。
【0020】
図1に例示するように、仮想テープライブラリ装置のTVCを制御するサーバは、TVC内でFW適用対象のディスクが所属するRAIDグループを特定し(ステップS101)、対象となるディスクへのRead/Writeを一時停止させる(ステップS102)。
【0021】
次いで、サーバは、対象となるディスクに対して更新するFWを適用し(ステップS103)、FWの適用が完了すると、対象となるディスクへのRead/Writeを再開し(ステップS104)、処理が終了する。
【0022】
例えば、図2に示すように、FW適用を行なう前に、対象となるディスクへのデータのRead/Writeが行なわれているとすると(図2の(a)参照)、サーバは、当該Read/Writeを一時停止し、その間にディスクのファームウェア適用を行なう(図2の(b)参照)。そして、サーバは、FWの適用完了後に通常通りディスクへのRead/Writeを再開させる(図2の(c)参照)。
【0023】
比較例に係るFW適用処理では、FW適用対象のRAIDグループの全てのディスクに対するホストI/Oを停止させるため、FW適用中は仮想テープライブラリ装置の可用性が低下する場合がある。
【0024】
また、上述したように、RAIDグループを2つにグループ化する技術において、一方のグループに対してFW適用中に大容量のデータに係るI/O処理を他方のグループが処理する場合、当該I/O処理を完了できない場合がある。この場合にも、一方のグループに対するFW適用、若しくは、ホスト装置からのアクセスのいずれか一方を停止させる事態に陥り、仮想テープライブラリ装置の可用性が低下する場合がある。
【0025】
そこで、一実施形態においては、仮想テープライブラリ装置に対する入出力処理を継続しながら、各RAIDグループに対するFW適用処理を行なうことで、ストレージ装置の可用性の低下を抑制するシステムについて説明する。
【0026】
〔1−1〕システムの構成例
図3に示すように、一実施形態に係るシステム1は、例示的に、仮想テープライブラリ装置2と、仮想テープライブラリ装置2に接続されたホスト装置7とをそなえてよい。
【0027】
ホスト装置7は、仮想テープライブラリ装置2に対して、論理ボリュームをアクセス対象としたRead/Write等のI/Oを行なう上位装置の一例である。なお、以下の説明で、「I/O」とは、アクセス対象を指定する情報、及び、書込対象のデータ(書込アクセスの場合)を少なくとも含むアクセス要求であるものとする。
【0028】
ホスト装置7としては、サーバ、PC(Personal Computer)、タブレット、又は、PDA(Personal Digital Assistant)等のコンピュータが挙げられる。なお、ホスト装置7は、ネットワーク8を介さずに仮想テープライブラリ装置2に直接接続されてもよい。
【0029】
図3の例において、仮想テープライブラリ装置2とホスト装置7との間には、ネットワーク8が介在してもよい。ネットワーク8には、SAN(Storage Area Network)が含まれてもよく、また、LAN(Local Area Network)やWAN(Wide Area Network)等のイントラネット、或いはインターネット等が含まれてもよい。
【0030】
仮想テープライブラリ装置2は、ホスト装置7に対して仮想テープライブラリを提供するシステムであり、例示的に、仮想テープライブラリ3及びテープライブラリ6をそなえてよい。
【0031】
仮想テープライブラリ3は、ストレージ装置の一例である。仮想テープライブラリ3は、例示的に、階層制御サーバ4及びディスクアレイ装置5をそなえてよい。
【0032】
階層制御サーバ4は、ディスクアレイ装置5及びテープライブラリ6を用いた階層的な制御を行なうストレージ制御装置又は情報処理装置の一例である。階層制御サーバ4としては、サーバやPC等のコンピュータが挙げられる。階層制御サーバ4は、例えば、ホスト装置7に対する入出力制御、ディスクアレイ装置5に対するRAID管理及び制御、ディスクアレイ装置5及びテープライブラリ6に対する階層制御等を行なってよい。
【0033】
ディスクアレイ装置5は、仮想テープライブラリ装置2の一次キャッシュとして用いられる。以下、ディスクアレイ装置5をTVC5と表記する場合がある。ディスクアレイ装置5は、複数の記憶装置(図示省略)をそなえ、階層制御サーバ4による制御の下、これらの記憶装置を用いて複数のRAIDグループを構築してよい。なお、RAIDグループは、複数の記憶装置が属するストレージグループの一例である。一実施形態では、複数のRAIDグループは、テープライブラリ6において複数の可搬媒体のうちの1以上の可搬媒体の各々が記憶するデータの論理ボリュームを記憶してよい。
【0034】
ディスクアレイ装置5がそなえる複数の記憶装置としては、例えば、HDD等の磁気ディスク装置、SSD等の半導体ドライブ装置、不揮発性メモリ等が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、SCM(Storage Class Memory)、ROM(Read Only Memory)等が挙げられる。
【0035】
テープライブラリ6は、複数の可搬媒体を収容するライブラリ装置の一例である。図3に示すように、テープライブラリ6は、例示的に、ロボット61及びテープドライブ62をそなえてよい。なお、ロボット61及びテープドライブ62は、それぞれテープライブラリ6に複数そなえられてもよい。
【0036】
また、ライブラリ6には、複数の可搬媒体63が収容されてよい。なお、可搬媒体63としては、磁気テープカートリッジ、光磁気テープカートリッジ、光ディスク、又は、光ディスクカートリッジ等のPV(Physical Volume)が挙げられる。以下、可搬媒体63をPV63と表記する場合がある。
【0037】
ロボット61は、PV63のピックアップ、搬送、テープドライブ62への挿入又は接続等を行なう運搬装置の一例である。
【0038】
テープドライブ62は、挿入又は接続されたPV63に対して書き込み及び読み出し(例えば記録及び再生)等の種々のアクセスを行なう媒体処理装置の一例である。
【0039】
上述した仮想テープライブラリ装置2において、階層制御サーバ4は、例えば、ホスト装置7からデータのRead/Write要求があった場合、ホスト装置7に対して、従来のテープライブラリ(Library;LIB)として振る舞う。
【0040】
例えば、階層制御サーバ4は、TVC5を利用して、LV等のデータのRead/Writeを行なう。階層制御サーバ4は、データに対するアクセス性能がテープライブラリ6よりも良好なディスクアレイ装置5を用いてホスト装置7に対して応答を返すため、テープライブラリ6を単独で使用するよりも高速に処理を行なうことができる。
【0041】
なお、階層制御サーバ4は、TVC5に書き込まれたLVを、ホスト装置7を介さずにバックグラウンドでテープライブラリ6のPV63に保存する。PVへの保存処理は、例示的に、マイグレーション(Migration)処理と呼ばれてよい。
【0042】
また、階層制御サーバ4は、TVC5に書き込まれたLVによってTVC5の容量が圧迫されるのを防ぐために、頻繁なLV更新がなくマイグレーション済の大容量のLVをTVC5から消去する。
【0043】
さらに、階層制御サーバ4は、ホスト装置7によるRead/Write対象のLVがTVC5上に存在する場合(オンキャッシュ(On Cache)の場合)、TVC5のディスクからLVを読み込み、ホスト装置7に対して応答する。
【0044】
一方、ホスト装置7によるRead/Write対象のLVがTVC5上に存在しない場合(キャッシュミス(Cache Miss)の場合)、階層制御サーバ4は、テープライブラリ6から当該LVのデータをTVC5にロードしホスト装置7に対して応答する。データのTVC5へのロードは、例えば、テープライブラリ6における対象のPV63をテープドライブ62に挿入し、マイグレーション済のLVをテープドライブ62から読み込み、LVのデータをTVC5上に移すことで行なわれてよい。
【0045】
次に、図4を参照して、階層制御サーバ4のハードウェア構成例について説明する。図4に示すように、階層制御サーバ4は、例示的に、プロセッサ4a、メモリ4b、記憶部4c、テープIF(Interface)4d−1、入出力IF4d−2、ホストIF4d−3、ドライブIF4d−4、及び読取部4eをそなえてよい。
【0046】
プロセッサ4aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ4aは、各ブロック4b〜4eとバス4iで相互に通信可能に接続されてよい。プロセッサ4aとしては、CPU、MPU、DSP、ASIC、PLD(例えばFPGA)等の集積回路(IC)が用いられてもよい。なお、CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称であり、DSPはDigital Signal Processorの略称である。また、ASICはApplication Specific Integrated Circuitの略称であり、PLDはProgrammable Logic Deviceの略称であり、FPGAはField Programmable Gate Arrayの略称である。
【0047】
メモリ4bは、種々のデータやプログラムを格納するハードウェアの一例である。メモリ4bとしては、例えばRAM(Random Access Memory)等の揮発性メモリが挙げられる。
【0048】
記憶部4cは、種々のデータやプログラム等を格納するハードウェアの一例である。例えば、記憶部4cは、階層制御サーバ4の2次記憶装置として使用されてよく、ファームウェアプログラム及び各種データが格納されてよい。記憶部4cとしては、例えば、HDD等の磁気ディスク装置、SSD等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。記憶部4cは、階層制御サーバ4の各種機能の全部若しくは一部を実現するプログラム4fを格納してもよい。
【0049】
テープIF4d−1、入出力IF4d−2、ホストIF4d−3、及びドライブIF4d−4は、それぞれ、テープライブラリ6、入力装置4g、ホスト装置7、及びディスクアレイ装置5との間の接続及び通信の制御等を行なう通信インタフェースの一例である。入力装置4gは、例えば、マウス、キーボード、タッチパネル、操作ボタン等を含んでよい。入出力IF4d−2は、ディスプレイやプリンタ等の出力装置(図示省略)との間の接続及び通信の制御等を行なってもよい。
【0050】
なお、階層制御サーバ4は、作業者の作業端末との間の接続及び通信の制御等を行なう通信インタフェースをそなえてもよく、当該通信インタフェースを用いて、ネットワーク8又は図示しない他のネットワークからプログラム4fをダウンロードしてもよい。
【0051】
読取部4eは、記録媒体4hに記録されたデータやプログラムを読み出しプロセッサ4aに出力するリーダの一例である。読取部4eは、記録媒体4hを接続又は挿入可能な接続端子又は装置を含んでもよい。読取部4eとしては、例えばUSB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体4hにはプログラム4fが格納されてもよい。
【0052】
記録媒体4hとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。なお、CDとしては、例示的に、CD−ROM、CD−R、CD−RW等が挙げられる。また、DVDとしては、例示的に、DVD−ROM、DVD−RAM、DVD−R、DVD−RW、DVD+R、DVD+RW等が挙げられる。
【0053】
上述した階層制御サーバ4のハードウェア構成は例示である。従って、階層制御サーバ4内でのハードウェアの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
【0054】
〔1−2〕階層制御サーバ4の機能構成例
図5は、階層制御サーバ4の機能構成例の一例を示す図である。図5に示すように、階層制御サーバ4は、例示的に、構成管理部41、LV制御部42、FS(File System;ファイルシステム)制御部43、PV制御部44、及びFW適用制御部45をそなえてよい。なお、各機能ブロック41〜45の機能は、例えば、図4に示すプロセッサ4aが記憶部4cに格納されたプログラム4fをメモリ4bに展開して実行することにより実現されてよい。
【0055】
構成管理部41は、階層制御サーバ4の構成データを管理する。構成データとしては、例えば、LV53の情報やPV63の情報、TVC5に関する情報等が挙げられる。図5では、構成管理部41が管理するこれらの情報をまとめて、管理情報410として示している。なお、管理情報410は、例えば図4に示すメモリ4bの一部の記憶領域に格納されてよい。管理情報410の詳細については後述する。
【0056】
LV制御部42は、ホスト装置7とLV53との間のRead/Write等のI/Oを制御する。例えば、LV制御部42は、後述するFW適用制御部45と協働して、FW適用処理を実行中のRAIDグループ以外のRAIDグループに対して、ホスト装置7からのアクセス要求に応じた処理を行なうアクセス制御部の一例である。
【0057】
FS制御部43は、TVC5上のファイルシステム(FS)52を制御する。例えば、FS制御部43は、FS52のマウント/アンマウントを行なってよい。
【0058】
PV制御部44は、LV53とPV63との間のRead/Writeを制御する。
【0059】
FW適用制御部45は、TVC5へのFW適用処理を制御する。FW適用制御部45の詳細については後述する。
【0060】
図6に例示するように、TVC5では、複数のディスク51が1つのRAIDグループとして管理されており、RAIDグループごとに1つ以上のファイルシステム(FS)52が階層制御サーバ4上に作成(マウント)されている。階層制御サーバ4は、上述した機能ブロックによって、ホスト装置7からのI/Oに応じてFS52にLV53を書き込んだりテープライブラリ6のPV63からFS52上にLV53を読み込んだりすることで、ホスト装置7に対するI/Oの制御を実現できる。
【0061】
例えば、仮想テープライブラリ装置2の構成データを格納するために作成されたRAIDグループ#CNFにはFS52が1個作成され、階層制御サーバ4上には“CNF”(以下「構成領域」又は「管理領域」と表記する場合がある)としてマウントされる。
【0062】
一方、ユーザデータを格納するために作成されたRAIDグループ#DATA−M(M≧1)には1つのRAIDグループあたりN(N≧1)個のFS52が作成されている。これらのRAIDグループ#DATA−Mは、階層制御サーバ4上には“DATA−MN”(以下、「データ領域」と表記する場合がある)としてマウントされている。なお、「M」はRAIDグループの識別情報の一例であり、「N」はRAIDグループ内でのFS52の識別情報の一例である。
【0063】
(管理情報410について)
次に、図7図9を参照して、管理情報410について説明する。図7図9に示すように、管理情報410は、例示的に、ディスク情報テーブル411、RAIDグループ情報テーブル412、及びファイルシステム情報テーブル413の情報を含んでよい。なお、図7図9の説明では、管理情報410に含まれる各種の情報(例えば符号411〜413)を説明に適したテーブル形式で例示する。しかしながら、これらの情報はテーブル形式に限定されるものではなく、例えば配列、DB、ビットマップ等の種々の形式又は態様で管理されてよい。
【0064】
図7は、ディスク情報テーブル411のデータ構成例を示す図である。ディスク情報テーブル411には、例示的に、「ディスク名」、「ベンダ名」、「ファーム版数」、及び「所属先RAIDグループ名」が設定されてよい。「ディスク名」及び「ベンダ名」はそれぞれディスク51及びディスク51を製造したベンダの識別情報の一例である。「ファーム版数」は稼動中のディスクファーム版数を示す情報であり、「所属先RAIDグループ名」はディスク51が所属しているRAIDグループの識別情報の一例である。
【0065】
図8は、RAIDグループ情報テーブル412のデータ構成例を示す図である。RAIDグループ情報テーブル412には、例示的に、「RAIDグループ名」、「RAIDレベル」、及び「所属ディスク数」が設定されてよい。「RAIDグループ名」はRAIDグループの識別情報の一例である。「RAIDレベル」は当該RAIDグループに設定されたRAIDレベルを示す情報であり、例示的に、RAID0〜RAID6のいずれか1つ、又は、これらの2以上の組み合わせを含んでよい。「所属ディスク数」はRAIDグループを構成するディスク数を示す情報である。
【0066】
図9は、ファイルシステム情報テーブル413のデータ構成例を示す図である。ファイルシステム情報テーブル413には、例示的に、「ファイルシステム名」、「マウント状態」、及び「所属RAIDグループ名」が設定されてよい。「ファイルシステム名」はLV53が所属しているFS52の識別情報の一例である。「マウント状態」はFS52が階層制御サーバ4上にマウントされているかを表す状態情報である。「所属RAIDグループ名」はディスク51が所属しているRAIDグループの識別情報の一例である。
【0067】
構成管理部41は、ディスク51、RAIDグループ、又はFS52等の構成や状態に変更があった場合に、管理情報410に対してこれらのテーブル411〜413の情報を更新してよい。
【0068】
(FW適用制御部45の説明)
次に、FW適用制御部45について説明する。FW適用制御部45の処理は、例えば、仮想テープライブラリ装置2に搭載されているTVC5のディスクファーム(FW)適用指示が発行されたときに実行されてよい。FW適用指示は、例えば、ユーザによるファームアップツールの操作に応じて発行されてよい。なお、ファームアップツールは、例えば、階層制御サーバ4、ホスト装置7、又は図示しない作業端末等にインストールされたアプリケーションプログラムであってよい。
【0069】
仮想テープライブラリ装置2の通常の運用状態では、FW適用制御部45に対して、FWの適用時間を基準に対象となるRAIDグループを2つにグループ化する技術を適用してもよい。この場合、FW適用制御部45は、例えば、2つのグループのうちの第1のグループに対してFWの適用を行ない、第2のグループはホストI/Oに係る処理に用いてよい。なお、通常の運用状態とは、例えば、データのI/O処理に係る時間がFW適用時間よりも短いデータのI/Oが入力されている状態である。
【0070】
また、ホスト装置7の業務が停止している場合のように、仮想テープライブラリ装置2に対するI/O頻度が所定レベル以下の場合には、FW適用制御部45は、図1及び図2に示した手法によりFW適用処理を行なってもよい。例えば、FW適用制御部45は、FW適用対象のRAIDグループの全てのディスクに対するホストI/Oを停止させ、FW適用対象の全てのRAIDグループに対して一度にFWを適用してもよい。
【0071】
一方、仮想テープライブラリ装置2に対して、フルバックアップやフルリストアを行なうような大容量のデータに係るI/Oが発行されている場合、FW適用制御部45は、以下に説明する段階的なFW適用処理を行なってよい。なお、大容量のデータとは、例えば、データのI/O処理に係る時間(例えば読み書き完了までの時間)がFW適用時間よりも長いデータである。
【0072】
段階的なFW適用処理を行なうために、FW適用制御部45は、図5に例示するように、分割数算出部451、優先度決定部452、及びFW段階適用部453をそなえてよい。
【0073】
なお、以下の説明では、仮想テープライブラリ装置2において、TVC5に搭載されているディスク51は全て同一であり、「構成領域」を除く全てのディスク51にFW適用処理を実行することを前提とする。「構成領域」は運用中にFWを適用できないため、FW適用制御部45は、「構成領域」を段階的なFW適用処理の対象外としてよい。例えば、FW適用制御部45は、運用中には「構成領域」にFW適用を実施できないようリジェクトしてよい。
【0074】
分割数算出部451は、FW適用対象となる複数のRAIDグループを2以上のグループに分割する分割数Ndvdを算出する。一例として、分割数算出部451は、以下の(i)〜(iv)の手順で分割数Ndvdを算出してよい。
【0075】
(i)アクセス対象となるLV53のうちのデータの読み書きに最も時間がかかるLV53及びそのLV53単位の処理時間LVtmaxを取得する。なお、LV53の読み書きに要する時間は、階層制御サーバ4に登録されているLV53の有効データ量とデータの転送速度とから、例えば、有効データ量/転送速度の式により算出(推定)されてよい。アクセス対象となるLV53とは、例えば、ホスト装置7から発行されたデータのRead/Write等のI/O処理を実行するコマンドに指定されているLV53である。
【0076】
(ii)アクセス対象となるLV53が格納されているRAIDグループ番号Rdmaxを算出する。
【0077】
(iii)上記(i)及び(ii)の結果に基づき、ディスクファーム適用の分割数Ndvdを決定する。分割数Ndvdは、例えば、Ndvd=(LVtmax/Tfw)+1の式の演算により求められてよい。このとき、(LVtmax/Tfw)の端数は切り上げてよい。Tfwは1つのディスク51あたりのFW適用時間の推定値の一例である。なお、同一RAIDグループ内ではディスク51は同一の種類であるため、TfwとRAIDグループ全体のFW適用時間とは同一となる。
【0078】
(iv)分割数NdvdがFW適用対象となるRAIDグループ数を超える場合、次にデータの読み書きに時間のかかるLV53及びその処理時間LVtmaxと、当該LV53が所属するRAIDグループ番号とを再計算し、分割数Ndvdを求める。(iv)の処理は、分割数NdvdがFW適用対象となるRAIDグループ数以下になるまで繰り返し行なわれてよい。
【0079】
以上の手順により、分割数算出部451は、分割数Ndvd、分割数Ndvdにおいて有効な最もI/O処理に時間のかかるLV53及びその処理時間LVtmax、並びに当該LV53が属するRAIDグループ番号Rdmaxの情報を取得してよい。
【0080】
以上のように、分割数算出部451は、ホスト装置7からのアクセス要求に応じた処理対象である複数のRAIDグループから、ファームウェアの適用対象である複数のディスク51の各々が属するRAIDグループを特定する特定部の一例である。
【0081】
優先度決定部452は、複数のRAIDグループの各々に対してFW適用優先度(以下、「優先度」又は「ファームアップ優先度」と表記する場合がある)を設定する。FW適用優先度はFWの適用順序に対応してよく、分割数算出部451が取得した分割数Ndvd通りの優先度(分割数Ndvd個の段階数)を持ってよい。
【0082】
換言すれば、優先度決定部452は、複数のRAIDグループを、Ndvd個のグループ(以下、「FW適用グループ」と表記する場合がある)に分割し、これらのFW適用グループにFW適用優先度を設定するのである。
【0083】
一例として、優先度決定部452は、RAIDグループごとにアクセス対象となる全てのオンキャッシュのLV53の読み書きにかかる時間LVtmを推定し、推定したLVtmに基づき、FW適用優先度を設定してよい。
【0084】
一実施形態では、FW適用制御部45は、I/Oの処理時間が最も長いLV53が属するRAIDグループ(以下、「最長RAIDグループ」と表記する場合がある)がI/O処理を行なっている間に、他のFW適用グループに対してFW適用処理を行なう。なお、最長RAIDグループは、分割数算出部451により得られたRdmaxで特定されるRAIDグループである。
【0085】
「最長RAIDグループ」は、上述のように、I/OのLV53単位の処理時間の推定値が最も大きいLV53(例えば、処理時間LVtmaxのLV53)を割り当てられているRAIDグループの一例である。従って、優先度決定部452は、「最長RAIDグループ」に対しては、一番最後又は最後から2番目の優先度(換言すればFW適用順序)を割り当ててよい。
【0086】
ところで、上述した分割数Ndvdの算出式において、(LVtmax/Tfw)は、最長RAIDグループにおけるI/O処理が完了するまでに、(LVtmax/Tfw)回のFW適用が可能であることを意味する。従って、分割数Ndvdの算出式は、最長RAIDグループのI/O処理が完了するまでにFW適用を実施可能な回数と、最長RAIDグループ自身のFW適用を実施する回数(1)と、を加算した式となる。
【0087】
このため、(LVtmax/Tfw)が割り切れる場合、最長RAIDグループ(Rdmax)に一番最後の優先度を割り当てることで、最長RAIDグループにおけるI/O処理完了とFW適用処理開始との間の時間差を小さくできる。一方、(LVtmax/Tfw)に端数が出る場合、最長RAIDグループに一番最後の優先度が割り当てられると、最後から2番目の優先度のFW適用グループのFW適用処理中に、最長RAIDグループにおけるI/O処理が終了する。この場合、FW適用処理中にI/O処理が行なわれない期間が発生するため、I/O処理性能の低下に繋がる可能性がある。
【0088】
そこで、優先度決定部452は、I/O処理の処理時間とFW適用処理の処理時間とを最適化するために、以下の条件を満たす場合に、最長RAIDグループ(Rdmax)に対して最後から2番目の優先度を設定してよい。
【0089】
例えば、優先度決定部452は、(LVtmax/Tfw)の端数(小数部)Ndecmaxを算出してよい。なお、Ndecmaxが“0”の場合は“1”に補正する。また、優先度決定部452は、時間LVtmが最も短いRAIDグループRdmin、及び、その処理時間LVtminを取得し、(LVtmin/Tfw)の端数(小数部)Ndecminを算出してよい。
【0090】
そして、優先度決定部452は、NdecmaxとNdecminとを比較し、NdecmaxよりもNdecminの方が大きい場合に条件を満たすと判定し、最長RAIDグループRdmaxに対して最後から2番目の優先度を設定してよい。
【0091】
NdecmaxよりもNdecminの方が大きい場合、Rdminに対するFW適用処理が最後に行なわれ、Rdminに対するI/O処理は、例えば最後から2番目のFW適用処理中(最長RAIDグループに対するFW適用処理中)に行なわれる。この場合も、最後から2番目のFW適用処理中にRdminに対するI/O処理が終了し得る。しかし、NdecmaxよりもNdecminの方が大きいため、最後から2番目のFW適用処理中にI/O処理が行なわれない期間は、Rdminを最後の優先度にした方が、Rdmaxを最後の優先度にするよりも短くなる。
【0092】
以上のように、優先度決定部452は、上記の条件判定に基づいて、最長RAIDグループ、及び、処理時間LVtmの推定値が最も小さいRAIDグループのうちの一方に対して、FW適用処理が最後に実施される優先度を設定する。また、優先度決定部452は、他方に対しては、FW適用処理が最後から2番目に実施される優先度を設定する。これにより、I/O処理の処理時間とFW適用処理の処理時間とを最適化することができる。
【0093】
なお、最長RAIDグループRdmaxに最後から2番目の優先度を設定した場合、最後から3番目のFW適用処理が完了した時点では、最長RAIDグループRdmaxのI/O処理が完了していない場合がある。この場合、最後から2番目のFW適用処理の開始を、最長RAIDグループRdmaxのI/O処理完了まで待ち合わせてもよい。
【0094】
その他の優先度(例えば、「1番目」〜「最後から3番目」の優先度)については、優先度決定部452は、時間LVtmが長い順に、1つの優先度(FW適用グループ)あたり1以上のRAIDグループを振り分ければよい。例えば、時間LVtmが長いRAIDグループほど優先度が高くなる(換言すれば、FW適用の実行順序が先となる)ようにしてよい。FW適用を早い段階で行なうことにより、FW適用後にI/O処理を実施するまとまった時間を確保でき、I/O処理の処理時間とFW適用処理の処理時間とを最適化できるためである。
【0095】
以上のように、優先度決定部452は、FW適用対象のRAIDグループごとのI/O要求に応じた処理時間の推定値に基づいて、RAIDグループの各々に対してFWの適用処理の優先度を設定する設定部の一例である。
【0096】
FW段階適用部453は、優先度決定部452が決定した優先度に従って、分割数Ndvdの回数に亘って段階的に、ディスクファームをRAIDグループに適用する。
【0097】
各回におけるFW適用処理では、例えば、FW適用グループに含まれるRAIDグループに所属するFS52のアンマウント、当該RAIDグループに所属するディスク51のファームアップ、及びアンマウントしたFS52のマウント、が行なわれてよい。FS52のマウント及びアンマウントは、例えばFW段階適用部453がFS制御部43に実施させてもよい。
【0098】
なお、FW適用中のRAIDグループに対して、ホスト装置7からアクセス要求があった場合、FW段階適用部453は、FW適用完了まで当該アクセス要求を待ち状態としてよい。待ち状態の管理は、例えばFW段階適用部453がLV制御部42に実施させてもよい。
【0099】
以上のように、FW段階適用部453は、優先度決定部452が設定した優先度に応じた実行順序で、優先度が設定されたRAIDグループに属するディスク51に対してFW適用処理を行なう適用部の一例である。
【0100】
〔1−3〕動作例
次に、図10図26を参照して、一実施形態に係る仮想テープライブラリ装置2の動作例を説明する。
【0101】
なお、以下の説明は、ホスト装置7による大容量のデータに対するアクセスと並行して、FW適用処理が行なわれる場合を前提とする。このような場合としては、例えば、FW適用制御部45が、受信したアクセス要求に応じたアクセスの開始後にFW適用指示を受信した場合や、当該アクセス要求と同時にFW適用指示を受信した場合等が挙げられる。
【0102】
〔1−3−1〕FW適用分割数算出処理
はじめに、分割数算出部451によるFW適用分割数算出処理の動作例を説明する。
【0103】
FW適用指示では、ディスクファーム名や適用モード(例えば、活性/非活性)が指定されてよい。適用モードとは、FW適用中のディスクアクセス可否を示し、「活性」はアクセス可、「非活性」はアクセス不可を示す。
【0104】
図10に例示するように、分割数算出部451は、FW適用指示に基づき、ディスク51に適用するFWについて、適用可能ベンダNVendor、適用版数NVerを取得する(ステップS11)。
【0105】
また、分割数算出部451は、FW適用対象ディスク51の各々について、開発ベンダVendor、稼動版数Ver、所属RAIDグループRdGrを取得する(ステップS12)。
【0106】
次いで、分割数算出部451は、以下の(a)〜(d)の条件を全て満たすユーザ領域のRAIDグループを抽出する(ステップS13)。
【0107】
(a)FW適用指示で指定された適用可能ベンダNVendorと開発ベンダVendorとが一致する。
【0108】
(b)ディスク51の稼動版数VerがFW適用指示で指定された適用版数NVerと異なる。
【0109】
(c)所属RAIDグループRdGrがデータ領域である。
なお、「構成領域」は、運用を止めてFW適用を行なう必要があるため、FW適用対象から除外される。
【0110】
(d)適用モードが「非活性」である。
【0111】
そして、分割数算出部451は、FW適用対象となるディスク51の所属するRAIDグループ数Ndnumを取得し(ステップS14)、1個のディスク51あたりのFW適用時間Tfwを取得する(ステップS15)。
【0112】
FW適用時間Tfwは、例えば、FW適用指示に含まれており分割数算出部451がFW適用指示から取得してもよいし、ディスク51のアクセス性能と、適用するFWのサイズ等の情報とに基づいて算出されてもよい。図10に示す処理により、FW適用対象となるRAIDグループ数が算出される。
【0113】
なお、ステップS11及びS12は逆順でもよい。また、ステップS14及びS15は逆順でもよく、ステップS15はステップS13よりも前に実施されてもよい。
【0114】
次に、図11に例示するように、分割数算出部451は、Read/Write処理対象でオンキャッシュ、且つ、FW適用時間TfwよりもI/Oの処理時間が長いLV53を全て抽出する(ステップS16)。
【0115】
そして、分割数算出部451は、抽出したLV53を処理時間が長い順にソートする(ステップS17)。
【0116】
分割数算出部451は、変数iに“1”を設定し(ステップS18)、ソート結果からi番目に処理時間が長いLV53を抽出し、所属するRAIDグループRdmax、対象のLV53の処理時間LVtmaxを求める(ステップS19)。
【0117】
次いで、分割数算出部451は、分割数Ndvd=(LVtmax/Tfw)+1を求める(ステップS20)。なお、(LVtmax/Tfw)の小数点以下は切り上げる。
【0118】
分割数算出部451は、算出した分割数NdvdがNdnum以下か否かを判定し(ステップS21)、NdvdがNdnum以下の場合(ステップS21でYes)、処理が終了する。なお、分割数算出部451は、このときの分割数Ndvd、LVtmax、及びRdmaxをメモリ4b(図4参照)等に保存してよい。
【0119】
一方、NdvdがNdnum以下ではない(Ndnumよりも大きい)場合(ステップS21でNo)、分割数算出部451は変数iに“1”を加算し(ステップS22)、処理がステップS19に移行する。
【0120】
以上の処理により、FW適用中に“LV53に対するRead/Write処理”が必要なLV53のうちの一実施形態に係るFW適用処理の実行条件を満たす“LV53”及び“所属RAIDグループ”に基づき、FW適用分割数が抽出される。上述した例では、以下の(A)〜(C)の条件を満たすLV53が1つ抽出される。
【0121】
(A)オンキャッシュ状態であること。
【0122】
(B)分割したFW適用グループでのFW適用処理中にRead/Write処理が完了できること(Ndvd≦Ndnum)。
【0123】
(C)できるだけI/Oの処理時間が長いこと(最低でもTfwよりも大きいこと)。
【0124】
図12に、オンキャッシュLV53の処理時間の算出結果(ソート後)の一例を示す。なお、以下の説明では、FW適用対象のRAIDグループ数Ndnum=“5”、FW適用時間Tfw=“15”(秒)であると仮定する。
【0125】
図12に例示するように、LV53の処理時間が長い順に並び替えたとき、図11に示すステップS20及びS21の処理結果は以下のようになる。
【0126】
(1)RAIDグループ番号“#DATA−4”の場合
Ndvd=(65/15)+1=4.33…(端数切り上げ)+1=6
【0127】
ステップS20では上記のように分割数Ndvd”=“6”が得られる。ステップS21の判定では、NdvdがNdnum=“5”よりも大きいため、Ndvd=“6”、LVtmax=“65”、Rdmax=“#DATA−4”は採用されない。
【0128】
(2)RAIDグループ番号“#DATA−3”の場合
Ndvd=(30/15)+1=2+1=3
【0129】
次のループにおいて、ステップS20では上記のようにNdvd=“3”が得られる。ステップS21の判定ではNdvdがNdnum以下である。従って、処理が終了し、Ndvd=“3”、LVtmax=“30”、Rdmax=“#DATA−3”が得られる。
【0130】
〔1−3−2〕FW適用優先度決定処理
次に、優先度決定部452によるFW適用優先度決定処理の動作例を説明する。優先度決定部452による処理は、図10及び図11に示すFW適用分割数算出処理の完了後に実行されてよい。
【0131】
図13に例示するように、優先度決定部452は、RAIDグループごとに、Read/Write処理対象となる全オンキャッシュLV53の処理時間LVtmを算出する(ステップS31)。なお、RAIDグループ内にオンキャッシュ状態のLV53が1つも存在しない場合、LVtm=“0”とする。
【0132】
次いで、優先度決定部452は、LVtmが最も小さいRAIDグループRdminを取得する。また、優先度決定部452は、当該Rdminの処理時間LVtmを取得してLVtminへ代入する。これらの処理により、優先度決定部452は、RAIDグループRdmin及びその処理時間LVtminを取得する(ステップS32)。
【0133】
優先度決定部452は、Ndecmaxに(LVtmax/Tfw)の小数部を代入する(ステップS33)。このとき、小数部が“0”の場合はNdecmaxに“1”を加える。また、優先度決定部452は、Ndecminに(LVtmin/Tfw)の小数部を代入する(ステップS34)。
【0134】
そして、優先度決定部452は、NdecmaxとNdecminとを比較し、小さい方を最後から2番目にFW適用するRAIDグループに決定し(ステップS35)、大きい方を最後にFW適用するRAIDグループに決定する(ステップS36)。図13に示す処理により、最後から1番目及び最後から2番目にFW適用を行なうRAIDグループが決定される。
【0135】
なお、ステップS33及びS34は逆順でもよく、ステップS33はステップS32よりも前に実施されてもよい。また、ステップS35及びS36は逆順でもよい。
【0136】
図14に、RAIDグループごとのオンキャッシュLV53の処理時間の一例を示す。図14に例示するように、RAIDグループごとにRead/Write対象となる全オンキャッシュLV53の処理時間LVtmを算出した場合(図13のステップS31に対応)、図13に示すステップS32〜S36の処理結果は以下のようになる。
【0137】
なお、LVtmax、Rdmax、Tfwは、それぞれ図10及び図11の処理で得られた“30”、“#DATA−3”、“15”であると仮定する。
【0138】
・ステップS32:
Rdmin=“#DATA−2”、LVtmin=“5”
【0139】
・ステップS33:
Ndecmax=(30/15=2.0の小数部)=0.0(1を加算)⇒1.0
【0140】
・ステップS34:
Ndecmin=(5/15=0.33…の小数部)=0.33…
【0141】
・ステップS35及びS36:
Ndecmax(1.0)>Ndecmin(0.33…)
Rdmin“#DATA−2”=最後から2番目にFW適用するRAIDグループ
Rdmax“#DATA−3”=最後にFW適用するRAIDグループ
【0142】
次に、図15に例示するように、優先度決定部452は、一度にFW適用を行なうRAIDグループ数(換言すれば、同一の優先度を設定するRAIDグループの数)Nuに(Ndnum−2)/(Ndvd−2)を代入する(ステップS37)。なお、優先度決定部452は、(Ndnum−2)/(Ndvd−2)の小数点第1位を四捨五入してよい。Ndnum及びNdvdからそれぞれ“2”を減じる理由は、図13に示す処理で2つのFW適用グループが既に決定されているためである。
【0143】
また、優先度決定部452は、変数i及びjにそれぞれ“1”を設定する(ステップS38)。なお、変数i及びjに代えて共通の変数kを用いてもよい。
【0144】
次いで、優先度決定部452は、処理順序が決まっていないRAIDグループのうちのオンキャッシュLV53の処理時間が長い上位Nu個のRAIDグループについて、FW優先度をi番目に設定する(ステップS39)。
【0145】
そして、優先度決定部452は、i<Ndvd−2、且つ、(Ndnum−2)−j×Nu≧0の条件を満たすか否かを判定する(ステップS40)。
【0146】
上記条件を満たす場合(ステップS40でYes)、つまり、RAIDグループ未設定のFW適用グループが存在し、処理順序が決まっていないRAIDグループが残っている場合、処理がステップS41に移行する。ステップS41では、優先度決定部452は、i及びjにそれぞれ“1”を加算し、処理がステップS39に移行する。
【0147】
一方、上記条件を満たさない場合(ステップS40でNo)、優先度決定部452は、処理順序が決まっていない全てのRAIDグループに(Ndvd−2)番目のFW適用優先度を設定し(ステップS42)、処理が終了する。
【0148】
図16に、RAIDグループごとの優先度の一例を示す。なお、Ndnum、Ndvdは、それぞれ図10及び図11の処理で得られた“5”、“3”であると仮定する。
【0149】
図15のステップS37では、上記Ndnum、Ndvdの値から、Nu=(5―2)/(3−2)=3が得られる。
【0150】
図13の処理により、RdGr=“#DATA−2”及び“DATA−3”の優先度は決まっている。図15のステップS39では、処理順序が決まっていないRdGr=“#DATA−1”、“#DATA−4”、“#DATA−5”のNu(3)個のRAIDグループについて、i(1)番目の優先度が設定される。
【0151】
図16の例では、Ndvd=“3”であり、i=j=“1”におけるステップS39の実行により、ステップS40の条件を満たさなくなる。また、他に処理順序が決まっていないRAIDグループも存在しないため、処理が終了する。
【0152】
なお、Ndnum及びNdvdの値が大きく、ステップS40の条件を満たす場合には、ステップS40でYesのルートを経由して、2番目、3番目・・・等の優先度(FW適用グループ)が決定される。
【0153】
〔1−3−3〕FW適用処理
次に、FW段階適用部453によるFW適用処理の動作例を説明する。FW段階適用部453による処理は、図13及び図15に示すFW適用優先度決定処理の完了後に実行されてよい。FW段階適用部453は、優先度の値が小さい順にRAIDグループ単位でFW適用処理を実行する。
【0154】
図17に例示するように、FW段階適用部453は、変数iに“1”を設定し(ステップS51)、i番目にファームアップ対象となっているRAIDグループに所属するFS52を全てアンマウントする(ステップS52)。
【0155】
次いで、FW段階適用部453は、i番目にファームアップ対象となっているRAIDグループに所属するディスク51を全てファームアップする(ステップS53)。
【0156】
そして、FW段階適用部453は、i番目にファームアップ対象となっているRAIDグループに所属するFS52を全てマウントする(ステップS54)。
【0157】
FW段階適用部453は、iがNdvdよりも小さいか否かを判定し(ステップS55)、iがNdvdよりも小さければ(ステップS55でYes)、iに“1”を加算し(ステップS56)、処理がステップS52に移行する。
【0158】
一方、FW段階適用部453は、iがNdvdよりも小さくない(Ndvd以上である)場合(ステップS55でNo)、処理が終了する。
【0159】
図18図26に、各RAIDグループの状態遷移の一例、並びに、ディスク情報テーブル411及びファイルシステム情報テーブル413の状態遷移の一例を示す。なお、FW適用優先度として、図16に例示する優先度を用いるものとする。
【0160】
・FW適用前
FW適用前の状態を図18図20の(a)、及び図21の(A)に示す。図18に示すように、RAIDグループ“#CNF”は「構成領域」であるため、FW段階適用部453によるファームアップ対象から除外されてよい。ファームアップ対象であるRAIDグループ“#DATA−1”〜“#DATA−5”には、それぞれ、階層制御サーバ4において、“DATA−11〜DATA−1N”〜“DATA−51〜DATA−5N”のFS52がマウントされていると仮定する。
【0161】
図20の(a)に示すように、ファイルシステム情報テーブル413には、各FS52について、マウントされた状態を示す“Mounted”が設定されている。また、図21の(A)に示すように、各ディスク51にはFW版数として“FA88”が設定されている。
【0162】
以下の説明では、“Disk#02”〜“Disk#0B”がFW適用対象のディスク51であり、適用するFWの版数が“FA99”であると仮定する。
【0163】
・FW適用第1段階処理中(優先度“1”についてFW適用処理中)
FW適用第1段階の処理中の状態を図19図20の(b)に示す。構成管理部41による管理情報410の更新により、FW適用対象のRdGr“#DATA−1”、“#DATA−4”、“#DATA−5”に所属する全てのFS52がアンマウント状態となる(図20の(b)参照)。
【0164】
また、FW段階適用部453により、FW適用対象のRdGrに対してFWが適用される(図19参照)。なお、FW適用対象のRdGrに対してFW適用中にホスト装置7からRead/Write等のアクセス要求があった場合、FW段階適用部453は、FW適用第1段階が完了するまでアクセス要求を待ち状態として管理してよい。
【0165】
FW適用第1段階では、RdGr“#DATA−3”に対するRead/Write処理が実行されてよい。
【0166】
・FW適用第1段階完了(優先度“1”についてFW適用完了)
FW適用第1段階が完了したときの状態を図20の(c)、図21の(B)に示す。構成管理部41による管理情報410の更新により、FW適用対象のRdGrに所属する全てのFS52がマウント状態となり(図20の(c)参照)、対応するディスク51のFW版数が“FA99”に更新される(図21の(B)参照)。
【0167】
・FW適用第2段階処理中(優先度“2”についてFW適用処理中)
FW適用第2段階の処理中の状態を図22図23の(d)に示す。構成管理部41による管理情報410の更新により、FW適用対象のRdGr“#DATA−2”に所属する全てのFS52がアンマウント状態となる(図23の(d)参照)。
【0168】
また、FW段階適用部453により、FW適用対象のRdGrに対してFWが適用される(図22参照)。なお、FW適用対象のRdGrに対してFW適用中にホスト装置7からRead/Write等のアクセス要求があった場合、FW段階適用部453は、FW適用第2段階が完了するまでアクセス要求を待ち状態として管理してよい。
【0169】
FW適用第2段階では、RdGr“#DATA−3”に対するRead/Write処理がFW適用第1段階から継続して実行されてよい。
【0170】
・FW適用第2段階完了(優先度“2”についてFW適用完了)
FW適用第2段階が完了したときの状態を図23の(e)、図24の(C)に示す。構成管理部41による管理情報410の更新により、FW適用対象のRdGrに所属する全てのFS52がマウント状態となり(図23の(e)参照)、対応するディスク51のFW版数が“FA99”に更新される(図24の(C)参照)。
【0171】
・FW適用第3段階処理中(優先度“3”についてFW適用処理中)
FW適用第3段階の処理中の状態を図25図26の(f)に示す。構成管理部41による管理情報410の更新により、FW適用対象のRdGr“#DATA−3”に所属する全てのFS52がアンマウント状態となる(図2の(f)参照)。
【0172】
また、FW段階適用部453により、FW適用対象のRdGrに対してFWが適用される(図25参照)。なお、FW適用対象のRdGrに対してFW適用中にホスト装置7からRead/Write等のアクセス要求があった場合、FW段階適用部453は、FW適用第段階が完了するまでアクセス要求を待ち状態として管理してよい。
【0173】
FW適用第3段階では、RdGr“#DATA−1”、“#DATA−2”、“#DATA−4”、“#DATA−5”に対するRead/Write処理が実行されてよい。
【0174】
・FW適用第3段階完了(優先度“3”についてFW適用完了)
FW適用第3段階が完了したときの状態を図26の(g)、図24の(D)に示す。構成管理部41による管理情報410の更新により、FW適用対象のRdGrに所属する全てのFS52がマウント状態となり(図26の(g)参照)、対応するディスク51のFW版数が“FA99”に更新される(図24の(D)参照)。
【0175】
以上の処理により、仮想テープライブラリ装置2において、システムのフルバックアップ/フルリストアを行なうような大容量のデータを読み書きする処理と、FW適用処理とを同時に実行でき、且つ、双方の処理時間を最適化することができる。
【0176】
なお、FW適用第1〜第3段階処理中の状態例において、各RAIDグループに対するRead/Write処理を行なう期間は、図19図22図25に示す例に限定されるものではない。例えば、階層制御サーバ4は、各RAIDグループに対して、当該RAIDグループのFW適用処理の期間と異なる期間であれば、いずれの期間にRead/Write処理を行なってもよい。Read/Write処理を行なう期間は、I/Oを処理する階層制御サーバ4又はディスクアレイ装置5の制御装置等の処理性能やI/Oのデータ量等に応じて決定されてもよい。
【0177】
〔2〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
【0178】
例えば、階層制御サーバ4において、構成管理部41、LV制御部42、FS制御部43、PV制御部44、及びFW適用制御部45の機能は、任意の組み合わせで併合してもよく、分割してもよい。また、FW適用制御部45において、分割数算出部451、優先度決定部452、及びFW段階適用部453の機能は、任意の組み合わせで併合してもよく、分割してもよい。さらに、階層制御サーバ4内の上述した機能の少なくとも一部は、階層制御サーバ4とは異なる装置に含まれてもよい。
【0179】
一実施形態では、仮想テープライブラリ装置2にそなえられる階層制御サーバ4において、ディスク51のFW適用を行なう場合を例に挙げて説明したが、これに限定されるものではない。一実施形態に係る手法は、複数の記憶装置をそなえる種々のストレージ装置に対して適用されてもよい。
【0180】
一例として、複数の記憶装置をRAID構成としたRAID装置を複数そなえるストレージ装置(例えばスケールアウト型ストレージ)に対して、一実施形態に係る手法を適用してもよい。この場合、階層制御サーバ4としての機能は、RAID装置を制御するCM(Controller Module)等の制御装置がそなえてもよい。
【0181】
また、一実施形態では、テープライブラリ6が磁気テープカートリッジを用いるものとして説明したが、これに限定されるものではない。例えば、テープライブラリ6に代えて、CD、DVD、ブルーレイディスク、又は、HVD等の光ディスク又は光ディスクカートリッジを用いる光ディスクライブラリである場合にも、階層制御サーバ4に対して一実施形態に係る手法が適用されてよい。
【0182】
〔3〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【0183】
(付記1)
上位装置からのアクセス要求に応じた処理対象である複数のストレージグループから、ファームウェアの適用対象である複数の記憶装置の各々が属するストレージグループを特定する特定部と、
特定したストレージグループごとの前記アクセス要求に応じた処理時間の推定値に基づいて、前記特定したストレージグループの各々に対してファームウェアの適用処理の優先度を設定する設定部と、
設定した優先度に応じた実行順序で、前記優先度が設定されたストレージグループに属する記憶装置に対して前記適用処理を行なう適用部と、
前記適用処理を実行中のストレージグループ以外のストレージグループに対して、前記アクセス要求に応じた処理を行なうアクセス制御部と、をそなえる
ことを特徴とする、ストレージ制御装置。
【0184】
(付記2)
前記設定部は、前記アクセス要求に応じた処理時間の推定値が大きいストレージグループほど前記適用処理の実行順序が先となる優先度を設定する、
ことを特徴とする、付記1記載のストレージ制御装置。
【0185】
(付記3)
前記設定部は、前記アクセス要求でアクセス対象に指定された複数のデータのうちのデータ単位の処理時間の推定値が最も大きいデータを割り当てられているストレージグループに対して、前記適用処理が最後又は最後から二番目に実施される優先度を設定する、
ことを特徴とする、付記1又は付記2記載のストレージ制御装置。
【0186】
(付記4)
前記設定部は、前記データ単位の処理時間の推定値が最も大きいデータを割り当てられているストレージグループ、及び、前記アクセス要求に応じた処理時間の推定値が最も小さいストレージグループのうちの一方のストレージグループに対して前記適用処理が最後に実施される優先度を設定し、他方のストレージグループに対して前記適用処理が最後から二番目に実施される優先度を設定する、
ことを特徴とする、付記3記載のストレージ制御装置。
【0187】
(付記5)
前記設定部は、前記アクセス要求でアクセス対象に指定された複数のデータのうちのデータ単位の処理時間の推定値と、前記適用処理の処理時間と、前記特定したストレージグループの数とに基づいて、前記優先度の段階数を決定する、
ことを特徴とする、付記1〜4のいずれか1項記載のストレージ制御装置。
【0188】
(付記6)
前記設定部は、前記優先度の段階数と、前記特定したストレージグループの数とに基づいて、同一の優先度を設定するストレージグループの数を決定する、
ことを特徴とする、付記5記載のストレージ制御装置。
【0189】
(付記7)
前記複数のストレージグループは、複数の可搬媒体を収容するライブラリ装置において前記複数の可搬媒体のうちの1以上の可搬媒体の各々が記憶するデータの論理ボリュームを記憶し、
前記特定部は、前記アクセス要求でアクセス対象に指定された論理ボリュームを記憶する複数のストレージグループを、前記処理対象であると特定する、
ことを特徴とする、付記1〜6のいずれか1項記載のストレージ制御装置。
【0190】
(付記8)
前記特定部は、前記ストレージ制御装置に関する構成情報を記憶するストレージグループを、前記特定するストレージグループから除外する、
ことを特徴とする、付記1〜7のいずれか1項記載のストレージ制御装置。
【0191】
(付記9)
複数の記憶装置と、
前記複数の記憶装置の制御を行なうストレージ制御装置と、をそなえ、
前記ストレージ制御装置は、
上位装置からのアクセス要求に応じた処理対象である複数のストレージグループから、ファームウェアの適用対象である複数の記憶装置の各々が属するストレージグループを特定する特定部と、
特定したストレージグループごとの前記アクセス要求に応じた処理時間の推定値に基づいて、前記特定したストレージグループの各々に対してファームウェアの適用処理の優先度を設定する設定部と、
設定した優先度に応じた実行順序で、前記優先度が設定されたストレージグループに属する記憶装置に対して前記適用処理を行なう適用部と、
前記適用処理を実行中のストレージグループ以外のストレージグループに対して、前記アクセス要求に応じた処理を行なうアクセス制御部と、をそなえる
ことを特徴とする、ストレージ装置。
【0192】
(付記10)
コンピュータに、
上位装置からのアクセス要求に応じた処理対象である複数のストレージグループから、ファームウェアの適用対象である複数の記憶装置の各々が属するストレージグループを特定し、
特定したストレージグループごとの前記アクセス要求に応じた処理時間の推定値に基づいて、前記特定したストレージグループの各々に対してファームウェアの適用処理の優先度を設定し、
設定した優先度に応じた実行順序で、前記優先度が設定されたストレージグループに属する記憶装置に対して前記適用処理を行ない、
前記適用処理を実行中のストレージグループ以外のストレージグループに対して、前記アクセス要求に応じた処理を行なう
処理を実行させることを特徴とする、制御プログラム。
【0193】
(付記11)
前記設定は、前記アクセス要求に応じた処理時間の推定値が大きいストレージグループほど前記適用処理の実行順序が先となる優先度を設定する、
ことを特徴とする、付記10記載の制御プログラム。
【0194】
(付記12)
前記設定は、前記アクセス要求でアクセス対象に指定された複数のデータのうちのデータ単位の処理時間の推定値が最も大きいデータを割り当てられているストレージグループに対して、前記適用処理が最後又は最後から二番目に実施される優先度を設定する、
ことを特徴とする、付記10又は付記11記載の制御プログラム。
【0195】
(付記13)
前記設定は、前記データ単位の処理時間の推定値が最も大きいデータを割り当てられているストレージグループ、及び、前記アクセス要求に応じた処理時間の推定値が最も小さいストレージグループのうちの一方のストレージグループに対して前記適用処理が最後に実施される優先度を設定し、他方のストレージグループに対して前記適用処理が最後から二番目に実施される優先度を設定する、
ことを特徴とする、付記12記載の制御プログラム。
【0196】
(付記14)
前記設定は、前記アクセス要求でアクセス対象に指定された複数のデータのうちのデータ単位の処理時間の推定値と、前記適用処理の処理時間と、前記特定したストレージグループの数とに基づいて、前記優先度の段階数を決定する、
ことを特徴とする、付記10〜13のいずれか1項記載の制御プログラム。
【0197】
(付記15)
前記設定は、前記優先度の段階数と、前記特定したストレージグループの数とに基づいて、同一の優先度を設定するストレージグループの数を決定する、
ことを特徴とする、付記14記載の制御プログラム。
【0198】
(付記16)
前記複数のストレージグループは、複数の可搬媒体を収容するライブラリ装置において前記複数の可搬媒体のうちの1以上の可搬媒体の各々が記憶するデータの論理ボリュームを記憶し、
前記特定は、前記アクセス要求でアクセス対象に指定された論理ボリュームを記憶する複数のストレージグループを、前記処理対象であると特定する、
ことを特徴とする、付記10〜15のいずれか1項記載の制御プログラム。
【0199】
(付記17)
前記特定は、前記ストレージ制御装置に関する構成情報を記憶するストレージグループを、前記特定するストレージグループから除外する、
ことを特徴とする、付記10〜16のいずれか1項記載の制御プログラム。
【符号の説明】
【0200】
1 システム
2 仮想テープライブラリ装置
3 仮想テープライブラリ
4 階層制御サーバ
41 構成管理部
410 管理情報
411 ディスク情報テーブル
412 RAIDグループ情報テーブル
413 ファイルシステム情報テーブル
42 LV制御部
43 FS制御部
44 PV制御部
45 FW適用制御部
451 分割数算出部
452 優先度決定部
453 FW段階適用部
5 ディスクアレイ装置
51 ディスク
52 ファイルシステム
53 LV
6 テープライブラリ
61 ロボット
62 テープドライブ
63 PV
7 ホスト装置
8 ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26