JPWO2008126169A1 - ストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置 - Google Patents

ストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置 Download PDF

Info

Publication number
JPWO2008126169A1
JPWO2008126169A1 JP2009508721A JP2009508721A JPWO2008126169A1 JP WO2008126169 A1 JPWO2008126169 A1 JP WO2008126169A1 JP 2009508721 A JP2009508721 A JP 2009508721A JP 2009508721 A JP2009508721 A JP 2009508721A JP WO2008126169 A1 JPWO2008126169 A1 JP WO2008126169A1
Authority
JP
Japan
Prior art keywords
data
storage
management
computer
check
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.)
Pending
Application number
JP2009508721A
Other languages
English (en)
Inventor
荻原 一隆
一隆 荻原
泰生 野口
泰生 野口
芳浩 土屋
芳浩 土屋
雅寿 田村
雅寿 田村
哲太郎 丸山
哲太郎 丸山
和一 大江
和一 大江
渡辺 高志
高志 渡辺
達夫 熊野
達夫 熊野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2008126169A1 publication Critical patent/JPWO2008126169A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Abstract

処理時間の短縮および処理負荷の軽減を図ることができる。データ格納用の複数のデータ格納領域(2a,2b)を備えるストレージ装置(3)の、データ格納領域(2a,2b)の読み書きチェックを行うコンピュータ(1)は以下の機能を有する。データチェック手段(4)は、データ格納領域(2a,2b)毎に設けられるフラグ(5a,5b)を参照し、データの有無を判断する。データ読み書き手段(6)は、データの存在しないデータ格納領域(2b)についてはデータの読み込み動作を行わない。

Description

本発明はストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置に関し、特に、データ格納用の複数のデータ格納領域を備えるストレージ装置の、データ格納領域の読み書きチェックを行うストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置に関する。
磁気ディスク装置においては、データを格納している領域に色々な要因でバッドブロック(不良セクタ)と呼ばれる不良箇所が発生する。バッドブロックが発生すると、そこに格納されていたデータが読み出せなくなってしまうため、ボリュームチェックを行う。ボリュームチェックでは、バッドブロックを見つけ、その不良箇所を報告したり、代替領域で置き換えたりするためにディスク全体に対してリード/ライトを行う。運用が始まった後ではデータをリードできるか確認し、リードできればデータを実際リードし、そのデータをライトするといったことを行う。このようなチェックを行った後に、データ管理を容易にするための制御方法も知られている(例えば、特許文献1参照)。
特開2005−293119号公報
ところで、実際には有効なデータが入っていない領域に対しては、リードを行う必要はなく、ライトだけでよい。しかしながら従来の方法では、有効なデータが入っていない領域に対しても、データの存在確認を行うことなく常に有効なデータがあるものとして処理を行っていた。そのため、処理時間が長く、処理の負荷も増大するという問題があった。
本発明はこのような点に鑑みてなされたものであり、処理時間の短縮および処理負荷の軽減を図ることができるストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置を提供することを目的とする。
本発明では上記問題を解決するために、図1に示すような処理をコンピュータ1に実行させるためのストレージ管理プログラムが提供される。
本発明に係るストレージ管理プログラムは、データ格納用の複数のデータ格納領域2a,2bを備えるストレージ装置3の、データ格納領域2a,2bの読み書きチェックを行うプログラムである。
このストレージ管理プログラムを実行するコンピュータ1は以下の機能を有する。
データチェック手段4は、データ格納領域2a,2b毎に設けられるフラグ5a,5bを参照し、データの有無を判断する。
データ読み書き手段6は、データの存在しないデータ格納領域2bについてはデータの読み込み動作を行わない。
このようなストレージ管理プログラムによれば、データチェック手段4により、データ格納領域2a,2b毎に設けられるフラグ5a,5bが参照され、データの有無が判断される。データ読み書き手段6により、データの存在しないデータ格納領域2bについてはデータの読み込み動作が行われない。
本発明によれば、読み書きチェック時に、データの存在しないデータ格納領域についてはデータの読み込み動作を行わないようにしたので、迅速かつ効率的なチェックを行うことができる。また、チェックの負荷を軽減することができ、消費電力を節減することができる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
本発明の概要を示す図である。 本実施の形態の分散ストレージシステム構成例を示す図である。 本実施の形態に用いるストレージノードのハードウェア構成例を示す図である。 論理ボリュームのデータ構造を示す図である。 スライスの構成を示す図である。 分散ストレージシステムの各装置の機能を示すブロック図である。 スライス管理情報のデータ構造例を示す図である。 スライス管理情報群記憶部のデータ構造例を示す図である。 第1のメディアチェック方法を示すフローチャートである。 データ有スライスのメディアチェックを示すフローチャートである。 データ無スライスのメディアチェックを示すフローチャートである。 第2のメディアチェック方法におけるコントロールノードの処理を示すフローチャートである。 通知を受けたストレージノードによるメディアチェックを示すフローチャートである。
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
まず、本発明の概要について説明し、その後、実施の形態を説明する。
図1は、本発明の概要を示す図である。
コンピュータ1は、ストレージ装置3にデータの読み書きを行うストレージノードを構成している。
コンピュータ1は、データチェック手段4とデータ読み書き手段6とを有している。
データチェック手段4とデータ読み書き手段6とは、読み書きチェック(ボリュームチェック)時に動作する。
データチェック手段4は、ストレージ装置3におけるデータ毎の複数のデータ格納領域2a,2b毎に設けられるフラグ5a,5bを参照し、データの有無を判断する。ここでデータ格納領域に格納されるデータは、コンピュータ1が、外部から書き込み要求とともに受け取ったデータである。コンピュータ1は、データ格納領域2a,2bにデータを書き込む際に、対応するフラグ5a,5bを「有」に設定する。図1では、データ格納領域2aのみにデータが格納されている。
データ読み書き手段6は、データチェック手段4から受け取った情報を参照し、データの存在しないデータ格納領域2bについてはデータの読み込み動作を行わない。すなわち、データが格納されていないデータ格納領域2bについてはデータの読み出し動作のみを行う。
このようなストレージ管理プログラムによれば、データチェック手段4により、データ格納領域2a,2b毎に設けられるフラグ5a,5bが参照され、データの有無が判断される。データ読み書き手段6により、データの存在しないデータ格納領域2bについてはデータの読み込み動作が行われない。
以下、本発明の実施の形態を説明する。
図2は、本実施の形態の分散ストレージシステム構成例を示す図である。
本実施の形態では、ネットワーク10を介して、複数のストレージノード100,200,300,400、コントロールノード500、およびアクセスノード600が接続されている。ストレージノード100,200,300,400それぞれには、ストレージ装置110,210,310,410が接続されている。
ストレージ装置110には、複数のハードディスク装置(HDD)111,112,113,114が実装されている。ストレージ装置210には、複数のHDD211,212,213,214が実装されている。ストレージ装置310には、複数のHDD311,312,313,314が実装されている。ストレージ装置410には、複数のHDD411,412,413,414が実装されている。各ストレージ装置110,210,310,410は、内蔵するHDDを用いたRAIDシステムである。本実施の形態では、各ストレージ装置110,210,310,410のRAID5のディスク管理サービスを提供する。
ストレージノード100,200,300,400は、例えば、IA(Intel Architecture)と呼ばれるアーキテクチャのコンピュータである。ストレージノード100,200,300,400は、接続されたストレージ装置110,210,310,410に格納されたデータを管理し、管理しているデータをネットワーク10経由で端末装置21,22,23に提供する。また、ストレージノード100,200,300,400は、冗長性を有するデータを管理している。すなわち、同一のデータが、少なくとも2つのストレージノードで管理されている。
さらに、ストレージノード100,200,300,400は、二重化したデータの整合性をチェックする二重化保全処理を行う。なお、ストレージノード100,200,300,400は個々の判断に基づいてデータ二重化保全処理を行ってもよいし、外部からの指示によりデータ二重化保全処理を行ってもよい。本実施の形態では、コントロールノード500からの指示により二重化保全処理を行うものとする。以下、このデータ二重化保全処理をパトロールと呼ぶ。
パトロールでは、二重化したそれぞれのデータを保持するストレージノード同士が互いに通信し合い、冗長性のあるデータの整合性がチェックされる。その際、あるストレージノードで管理されているデータで不具合が検出されれば、他のストレージノードの対応するデータを用いてデータの復旧が行われる。
コントロールノード500は、ストレージノード100,200,300,400を管理する。例えば、コントロールノード500は、所定のタイミングで、各ストレージノード100,200,300,400に対してパトロールの指示を出力する。
アクセスノード600には、ネットワーク20を介して複数の端末装置21,22,23が接続されている。アクセスノード600は、ストレージノード100,200,300,400それぞれが管理しているデータの格納場所を認識しており、端末装置21,22,23からの要求に応答して、ストレージノード100,200,300,400へデータアクセスを行う。
図3は、本実施の形態に用いるストレージノードのハードウェア構成例を示す図である。
ストレージノード100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、HDDインタフェース103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
HDDインタフェース103には、ストレージ装置110が接続されている。HDDインタフェース103は、ストレージ装置110に内蔵されたRAIDコントローラ115と通信し、ストレージ装置110に対するデータの入出力を行う。ストレージ装置110内のRAIDコントローラ115は、RAID0〜5の機能を有し、複数のHDD111〜114をまとめて1台のハードディスクとして管理する。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。
通信インタフェース106は、ネットワーク10に接続されている。通信インタフェース106は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、ストレージノード100とストレージ装置110との構成のみを示したが、他のストレージノード200,300,400や他のストレージ装置210,310,410も同様のハードウェア構成で実現できる。
さらに、コントロールノード500、アクセスノード600、および端末装置21〜23も、ストレージノード100とストレージ装置110との組合せと同様のハードウェア構成で実現できる。ただし、コントロールノード500、アクセスノード600、および端末装置21〜23については、ストレージ装置110のようなRAIDシステムではなく、単体のHDDがHDDコントローラに接続されていてもよい。
図2に示すように、複数のストレージノード100,200,300,400がネットワーク10に接続され、それぞれのストレージノード100,200,300,400は他のストレージノードとの間で通信を行う。この分散ストレージシステムは、端末装置21〜23に対して、仮想的なボリューム(以下、論理ボリュームと呼ぶ)として機能する。
図4は、論理ボリュームのデータ構造を示す図である。
論理ボリューム700には、「LVOL−A」という識別子(論理ボリューム識別子)が付与されている。また、ネットワーク経由で接続された4台のストレージ装置110,210,310,410には、個々のストレージノードの識別のためにそれぞれ「DP−1」、「DP−2」、「DP−3」、「DP−4」というノード識別子が付与されている。
各ストレージノード100,200,300,400が有するストレージ装置110,210,310,410それぞれにおいてRAID5の論理ディスクが構成されている。この論理ディスクは5つのスライスに分割され個々のストレージノード内で管理されている。
図4の例では、ストレージ装置110内の記憶領域は、5つのスライス121〜125に分けられている。ストレージ装置210内の記憶領域は、5つのスライス221〜225に分けられている。ストレージ装置310内の記憶領域は、5つのスライス321〜325に分けられている。ストレージ装置410内の記憶領域は、5つのスライス421〜425に分けられている。
なお、論理ボリューム700は、セグメント710,720,730,740という単位で構成される。セグメント710,720,730,740の記憶容量は、ストレージ装置110,210,310,410における管理単位であるスライスの記憶容量と同じである。例えば、スライスの記憶容量が1ギガバイトとするとセグメントの記憶容量も1ギガバイトである。論理ボリューム700の記憶容量はセグメント1つ当たりの記憶容量の整数倍である。セグメントの記憶容量が1ギガバイトならば、論理ボリューム700の記憶容量は4ギガバイトといったものになる。
セグメント710,720,730,740は、それぞれプライマリスライス711,721,731,741とセカンダリスライス712,722,732,742との組から構成される。同じセグメントに属するスライスは別々のストレージノードに属する。個々のスライスを管理する領域には論理ボリューム識別子やセグメント情報や同じセグメントを構成するスライス情報の他にフラグがあり、そのフラグにはプライマリあるいはセカンダリ等を表す値が格納される。
図4の例では、スライスの識別子を、「P」または「S」のアルファベットと数字との組合せで示している。「P」はプライマリスライスであることを示している。「S」はセカンダリスライスであることを示している。アルファベットに続く数字は、何番目のセグメントに属するのかを表している。例えば、1番目のセグメント710のプライマリスライスが「P1」で示され、セカンダリスライスが「S1」で示される。
このような構造の論理ボリューム700の各プライマリスライスおよびセカンダリスライスが、ストレージ装置110,210,310,410内のいずれかのスライスに対応付けられる。例えば、セグメント710のプライマリスライス711は、ストレージ装置410のスライス424に対応付けられ、セカンダリスライス712は、ストレージ装置210のスライス222に対応付けられている。
そして、各ストレージ装置110,210,310,410では、自己のスライスに対応するプライマリスライスまたはセカンダリスライスのデータを記憶する。
図5は、スライスの構成を示す図である。
図5に示すスライスSL1は、複数のブロックを有している。各ブロックの容量は、例えば512B(バイト)程度である。データのリード/ライトは、ブロック単位で行われる。すなわち、各分散データの格納単位であるスライスの、対応するブロック毎にリード/ライトが行われる。
図6は、分散ストレージシステムの各装置の機能を示すブロック図である。
アクセスノード600は、論理ボリュームアクセス制御部610を有している。論理ボリュームアクセス制御部610は、端末装置21,22,23からの論理ボリューム700内のデータを指定したアクセス要求に応じて、対応するデータを管理するストレージノードに対してデータアクセスを行う。具体的には、論理ボリュームアクセス制御部610は、論理ボリューム700の各セグメントのプライマリスライスまたはセカンダリスライスと、ストレージ装置110,210,310,410内のスライスとの対応関係を記憶している。そして、論理ボリュームアクセス制御部610は、端末装置21,22,23からセグメント内のデータアクセスの要求を受け取ると、該当するセグメントのプライマリスライスに対応するスライスを有するストレージ装置に対してデータアクセスを行う。
コントロールノード500は、論理ボリューム管理部510とスライス管理情報群記憶部520とを有している。
論理ボリューム管理部510は、ストレージノード100,200,300,400が有するストレージ装置110,210,310,410内のスライスを管理する。例えば、論理ボリューム管理部510は、システム起動時に、ストレージノード100,200,300,400に対してスライス管理情報取得要求を送信する。そして、論理ボリューム管理部510は、スライス管理情報取得要求に対して返信されたスライス管理情報を、スライス管理情報群記憶部520に格納する。
また、論理ボリューム管理部510は、論理ボリューム700におけるセグメントごとに、パトロールを実行するタイミングを管理する。パトロールは、所定の時間間隔で実行したり、あらかじめスケジュールされた時刻に実行したりする。また、分散ストレージシステムの負荷状況を監視し、負荷が少ない時間にパトロールを実行することもできる。論理ボリューム管理部510は、パトロールの実行時間になると、実行対象のセグメントのプライマリスライスを管理するストレージノードに対して、パトロール実行指示を送信する。
スライス管理情報群記憶部520は、ストレージノード100,200,300,400から収集されたスライス管理情報を記憶する記憶装置である。例えば、コントロールノード500内のRAMの記憶領域の一部がスライス管理情報群記憶部520として使用される。
ストレージノード100は、データアクセス部130、データ管理部140、およびスライス管理情報記憶部150を有している。
データアクセス部130は、アクセスノード600からの要求に応答して、ストレージ装置110内のデータにアクセスする。具体的には、データアクセス部130は、アクセスノード600からデータのリード要求を受け取った場合、リード要求で指定されたデータをストレージ装置110から取得し、アクセスノード600に送信する。また、データアクセス部130は、アクセスノード600からデータのライト要求を受け取った場合、ライト要求に含まれるデータをストレージ装置110内に格納する。
また、データアクセス部130は、バッドブロック(不良セクタ)の発生を検出するためのメディアチェックを行う。このメディアチェックの方法については、後に詳述する。なお、データアクセス部130が、データチェック手段およびデータ読み書き手段の主要部を構成している。
データ管理部140は、ストレージ装置110内のデータを管理する。具体的には、データ管理部140はコントロールノード500からの指示に従って、ストレージ装置110内のデータのパトロールを行う。パトロールを行う場合、データ管理部140は、チェック対象のプライマリスライスに対応するセカンダリスライスを管理する他のストレージノードに対して、チェック要求メッセージを送信する。また、データ管理部140は、他のストレージノードからチェック要求メッセージを受け取ると、指定されたスライス内のデータのパトロールを行う。
さらに、データ管理部140は、論理ボリューム管理部510からのスライス管理情報取得要求に応答して、スライス管理情報記憶部150に記憶されたスライス管理情報を論理ボリューム管理部510に対して送信する。
スライス管理情報記憶部150は、スライス管理情報を記憶する記憶装置である。例えば、RAM102内の記憶領域の一部がスライス管理情報記憶部150として使用される。
なお、スライス管理情報記憶部150に格納されるスライス管理情報は、システム停止時にはストレージ装置110内に格納され、システム起動時にスライス管理情報記憶部150に読み込まれる。
他のストレージノード200,300,400は、ストレージノード100と同様の機能を有している。すなわち、ストレージノード200は、データアクセス部230、データ管理部240、およびスライス管理情報記憶部250を有している。ストレージノード300は、データアクセス部330、データ管理部340、およびスライス管理情報記憶部350を有している。ストレージノード400は、データアクセス部430、データ管理部440、およびスライス管理情報記憶部450を有している。ストレージノード200,300,400内の各要素は、ストレージノード100内の同名の要素と同じ機能を有している。
図7は、スライス管理情報のデータ構造例を示す図である。
スライス管理情報記憶部150に格納されたスライス管理情報は、テーブル化されて格納されている。
スライス管理テーブル151には、SID(スライスID)、FLAG、PDEV、LBA、SIZE、ATTRの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
SIDの欄には、スライスを一意に識別するスライスIDが格納される。
FLAGの欄には、スライスを管理する領域から取得したフラグが格納される。フラグには、「Prim」、「Sec」および「Free」がある。「Prim」は、データが存在し、かつ、そのデータを格納しているスライスがプライマリスライスであることを意味し、「Sec」は、データが存在し、かつ、そのデータを格納しているスライスがセカンダリスライスであることを意味する。以下、「Prim」および「Sec」を「データ有」という。「Free」は、データが存在しないことを意味する。以下、「Free」を「データ無」という。
PDEVの欄には、スライスが存在するデバイス名が格納される。
LBAの欄には、スライス開始位置(開始ブロック)が格納される。
SIZEの欄には、スライスサイズ(ブロック数)が格納される。
ATTRの欄には、スライスが備えるその他の属性(例えば、スライスIDのアクセス時刻等の情報)が格納される。
同様のスライス管理テーブルが、他のストレージノード200,300,400のスライス管理情報記憶部250,350,450にも格納されている。
コントロールノード500は、システム起動時に各ストレージノード100,200,300,400からスライス管理情報を収集し、スライス管理情報群記憶部520に格納する。
図8は、スライス管理情報群記憶部のデータ構造例を示す図である。
スライス管理情報群記憶部520には、収集したスライス管理情報のうち、メディアチェックに必要な部分情報152,252,352,452が格納されている。なお、図8では、部分情報352の図示を省略している。部分情報152はストレージノード100から取得したものである。部分情報252はストレージノード200から取得したものである。部分情報352はストレージノード300から取得したものである。部分情報452はストレージノード400から取得したものである。
以上のような構成の分散ストレージシステムにおいて、データアクセス部130,230,330,430により、ストレージノード100,200,300,400のメディアチェックが実施される。ストレージノード100,200,300,400のメディアチェックは、以下の2つの方法のいずれかにより実行することができる。
<第1のメディアチェック方法>
第1のメディアチェック方法は、データアクセス部130,230,330,430が、それぞれ独立してストレージノード100,200,300,400のメディアチェックを行う方法である。以下、代表的にストレージノード100のメディアチェックについて説明する。
図9は、第1のメディアチェック方法を示すフローチャートである。
まず、パラメータとして用意したIndexを0に初期化する(ステップS11)。
次に、Indexの値がスライス管理テーブル151に格納されているスライスの個数(テーブルサイズ)に等しいか否かを判断する(ステップS12)。
Indexの値がスライスの個数に等しい場合(ステップS12のYes)、ステップS11に移行して、それ以降の処理を繰り返す。
Indexの値がスライスの個数に等しくない場合、すなわちスライスの個数未満の場合(ステップS12のNo)、スライス管理テーブル151の、Indexの値に該当するスライスIDのFLAGの欄が「データ有」か否かを判断する(ステップS13)。
「データ有」の場合(ステップS13のYes)、そのスライスIDを備えるスライスに対しデータ有メディアチェックを行う(ステップS14)。データ有メディアチェックが終了すると、ステップS12に移行してそれ以降の処理を繰り返す。一方、「データ有」ではない場合(ステップS13のNo)、そのスライスIDを備えるスライスに対しデータ無メディアチェックを行う(ステップS15)。データ無メディアチェックが終了すると、ステップS12に移行してそれ以降の処理を繰り返す。
なお、本実施の形態では、メディアチェックを行い続ける例(ステップS12のYesの場合、ステップS11に移行して動作を継続する例)について説明したが、本発明はこれに限らず、例えば、Indexの値がスライスの個数に等しい場合、動作を終了し、他の処理との関係でCPUの負荷が所定値以下になった場合に動作を再開するようにしてもよい。
次に、データ有メディアチェックについて説明する。
図10は、データ有スライスのメディアチェックを示すフローチャートである。
まず、スライス管理テーブル151のIndexの値に該当するスライスIDを、(チェック)対象スライスとする(ステップS21)。
次に、パラメータとして用意したチェック用LBA(以下、「CHKLBA」という)に、チェック対象スライスのLBAの欄の値を代入する(ステップS22)。
次に、CHKLBAの値からCHKSIZE分のブロックに格納されたデータをリードする(ステップS23)。例えば、図7のスライスID「1000」の場合、最終的には100番目のブロックから1024個分のブロックのデータをチェックしなければならない。1024個分のブロックのデータすべてを同時にリードしてもよいが、負荷等の要因も考慮してCHKSIZEを1024の約数としてもよい。具体的には128や256等をCHKSIZEとする。
次に、リードしたデータを用いて再びチェック対象スライスにライトする(ステップS24)。
次に、CHKLBAの値にCHKSIZEの値を加えた値を新たなCHKLBAの値とする(ステップS25)。
次に、CHKLBAの値が、チェック対象スライスのLBAの欄の値にチェック対象スライスのSIZEの欄の値の和に等しいか否かを判断する(ステップS26)。
等しくない場合(ステップS26のNo)、ステップS23に移行し、それ以降の処理を繰り返す。
一方、等しい場合(ステップS26のYes)、データ有メディアチェックを終了する。
次に、データ無スライスのメディアチェックについて説明する。
図11は、データ無スライスのメディアチェックを示すフローチャートである。
ステップS31、S32:ステップS21、S22とそれぞれ同様の処理を行う。
次に、データ初期値(NULL値等)をチェック対象スライスにライトする(ステップS33)。
ステップS34、S35:ステップS25、S26とそれぞれ同様の処理を行う。
<第2のメディアチェック方法>
第2のメディアチェック方法は、コントロールノード500がメディアチェックの指示を出し、データアクセス部130,230,330,430は、この指示によってメディアチェックを行う点が第1のメディアチェックと異なっている。
図12は、第2のメディアチェック方法におけるコントロールノードの処理を示すフローチャートである。
まず、コントロールノード500が、メディアチェックを行うスライスを選択する(ステップS41)。
次に、選択されたスライスを備えるストレージ装置に対応するストレージノードに、選択したスライスIDを通知する(ステップS42)。
その後、通知したストレージノードからの応答を所定時間待機する(ステップS43)。
コントロールノード500は、上記ステップS41〜S43の動作を繰り返し行う。
次に、通知を受けたストレージノードによるメディアチェックについて説明する。
図13は、通知を受けたストレージノードによるメディアチェックを示すフローチャートである。
まず、コントロールノード500が送信したスライスIDを受け取る(ステップS51)。
次に、受け取ったスライスIDのFLAGの欄が「データ有」か否かを判断する(ステップS52)。
「データ有」の場合(ステップS52のYes)、そのスライスIDを備えるスライスに対しデータ有メディアチェックを行う(ステップS53)。チェックが終了すると、コントロールノード500に応答を返す(ステップS55)。以上でメディアチェックを終了する。
一方、「データ有」ではない場合(ステップS52のNo)、そのスライスIDを備えるスライスに対しデータ無メディアチェックを行う(ステップS54)。チェックが終了すると、コントロールノード500に応答を返す(ステップS55)。以上でメディアチェックを終了する。
ところで、分散ストレージシステムでは、メディアチェックによりバッドブロックが発見された場合は、「データ有」と「データ無」によって、それぞれバッドブロックへの対処が行われる。
データ有りスライスの場合には、リードした結果バッドブロックを検出すれば、それをレポートする。ストレージ装置内でバッドブロック中にあったデータを回復できるのであればストレージ装置がデータをブロック再割当とともにデータを回復させる。ストレージ装置内でデータ回復できなければ前述したパトロールを行うことによりデータを回復させる。リードした結果バッドブロックを検出しなければ、リードしたデータをそのままそのスライスへ書き込む。これは、リードでは触ることのできないミラー領域(RAID1の場合)やパリティ領域(RAID5の場合)を担当しているディスクやディスクの一部に触るためである。書き込みを行うことにより、ミラー領域やパリティ領域にバッドブロックがあった場合には例えばブロックの再割当を発生させることができる。
データ無スライスの場合でも、データ初期値を書き込むことによりバッドブロックがあった場合にはブロックの再割当を発生させることができる。
以上述べたように、本実施の形態の分散ストレージシステムによれば、データアクセス部130,230,330,430それぞれが、ストレージ装置110,210,310,410のデータアクセス時にデータ有スライスの場合は、リードおよびライトを行い、データ無スライスの場合は、リードを行わず、ライトのみを行うようにしたので、システム全体のチェックの効率化または省電力化を図ることができる。
また、第1のメディアチェック方法によれば、コントロールノード500の指示を仰ぐことなく、ストレージノード自身でメディアチェックを行うことができるため、システムにおける処理を簡易なものとすることができる。
また、第2のメディアチェック方法によれば、ある論理ボリュームのプライマリやセカンダリを重点的にチェックしたい等、目的に応じてシステム全体を考慮したメディアチェックを行うことができる。また、コントロールノード500がストレージノード100,200,300,400それぞれでのメディアチェック状況を管理することにより、システムの状況を考慮した各ストレージノードの運用、例えば、ある処理によってシステム全体の負荷が高い場合、1つまたは複数のストレージノードに対してメディアチェックを控える指示を出すことにより、システムの負荷を下げること等を容易に行うことができる。
以上、本発明のストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
また、本発明は、前述した各実施の形態のうちの、任意の2以上の構成(特徴)を組み合わせたものであってもよい。
なお、本実施の形態では、メディアチェックを分散ストレージシステムに適用した場合について説明したが、本発明は、これに限らず、冗長性がないボリューム(通常の物理ディスクやJBOD(Just a Bunch Of Disks)等)にも適用することができる。この場合において、データありスライスの場合、リードした結果バッドブロックを検出すれば、それをレポートするよう構成するのが好ましい。データなしスライスの場合、null値等でライトし、バッドブロックを検出すれば別の領域にあるブロックを割り当てるよう構成するのが好ましい。リードしてからnull値等でライトしてもよいが、リードしなくてもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ストレージノード100,200,300,400が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープ等が挙げられる。光ディスクとしては、例えば、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等が挙げられる。光磁気記録媒体としては、例えば、MO(Magneto-Optical disk)等が挙げられる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
ストレージ管理プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
符号の説明
1 コンピュータ
2a,2b データ格納領域
3 ストレージ装置
4 データチェック手段
5a,5b フラグ
6 データ読み書き手段
21,22,23 端末装置
100,200,300,400 ストレージノード
110,210,310,410 ストレージ装置
130,230,330,430 データアクセス部
140,240,340,440 データ管理部
150,250,350,450 スライス管理情報記憶部
151 スライス管理テーブル
152,252,352,452 部分情報
500 コントロールノード
510 論理ボリューム管理部
520 スライス管理情報群記憶部
600 アクセスノード
610 論理ボリュームアクセス制御部
700 論理ボリューム

Claims (18)

  1. データ格納用の複数のデータ格納領域を備えるストレージ装置の前記データ格納領域の読み書きチェックを行うストレージ管理プログラムにおいて、
    コンピュータを、
    前記データ格納領域毎に設けられるフラグを参照し、前記データの有無を判断するデータチェック手段、
    前記データの存在しない前記データ格納領域については前記データの読み込み動作を行わないデータ読み書き手段、
    として機能させることを特徴とするストレージ管理プログラム。
  2. 前記コンピュータは、前記ストレージ装置に前記データの読み書きを行うストレージノードで構成されることを特徴とする請求の範囲第1項記載のストレージ管理プログラム。
  3. 前記データ読み書き手段は、前記データの存在する前記データ格納領域については前記データの書き込み動作および書き込み動作を行い、前記データの存在しない前記データ格納領域については前記データの書き込み動作のみを行うことを特徴とする請求の範囲第1項記載のストレージ管理プログラム。
  4. 前記コンピュータを、前記データ格納領域毎の前記フラグを一括して管理するフラグ管理情報群記憶手段として機能させ、前記データチェック手段は、前記フラグ管理情報群記憶手段を参照して前記データの有無を判断することを特徴とする請求の範囲第1項記載のストレージ管理プログラム。
  5. 前記データチェック手段は、当該コンピュータを管理する管理コンピュータの指示により動作することを特徴とする請求の範囲第1項記載のストレージ管理プログラム。
  6. 前記管理コンピュータに複数の前記コンピュータが接続されている場合、前記管理コンピュータは、前記コンピュータ毎の前記データ格納領域および前記フラグの関係を一括して管理する情報記憶手段を有することを特徴とする請求の範囲第5項記載のストレージ管理プログラム。
  7. データ格納用の複数のデータ格納領域を備えるストレージ装置の前記データ格納領域の読み書きチェックをコンピュータが行うストレージ管理方法において、
    データチェック手段が、前記データ格納領域毎に設けられるフラグを参照し、前記データの有無を判断し、
    データ読み書き手段が、前記データの存在しない前記データ格納領域については前記データの読み込み動作を行わない、
    ことを特徴とするストレージ管理方法。
  8. 前記コンピュータは、前記ストレージ装置に前記データの読み書きを行うストレージノードで構成されることを特徴とする請求の範囲第7項記載のストレージ管理方法。
  9. 前記データ読み書き手段は、前記データの存在する前記データ格納領域については前記データの書き込み動作および書き込み動作を行い、前記データの存在しない前記データ格納領域については前記データの書き込み動作のみを行うことを特徴とする請求の範囲第7項記載のストレージ管理方法。
  10. 前記コンピュータを、前記データ格納領域毎の前記フラグを一括して管理するフラグ管理情報群記憶手段として機能させ、前記データチェック手段は、前記フラグ管理情報群記憶手段を参照して前記データの有無を判断することを特徴とする請求の範囲第7項記載のストレージ管理方法。
  11. 前記データチェック手段は、当該コンピュータを管理する管理コンピュータの指示により動作することを特徴とする請求の範囲第7項記載のストレージ管理方法。
  12. 前記管理コンピュータに複数の前記コンピュータが接続されている場合、前記管理コンピュータは、前記コンピュータ毎の前記データ格納領域および前記フラグの関係を一括して管理する情報記憶手段を有することを特徴とする請求の範囲第11項記載のストレージ管理方法。
  13. データ格納用の複数のデータ格納領域を備えるストレージ装置の前記データ格納領域の読み書きチェックを行うストレージ管理装置において、
    前記データ格納領域毎に設けられるフラグを参照し、前記データの有無を判断するデータチェック手段と、
    前記データの存在しない前記データ格納領域については前記データの読み込み動作を行わないデータ読み書き手段と、
    を有することを特徴とするストレージ管理装置。
  14. 前記コンピュータは、前記ストレージ装置に前記データの読み書きを行うストレージノードで構成されることを特徴とする請求の範囲第1項記載のストレージ管理装置。
  15. 前記データ読み書き手段は、前記データの存在する前記データ格納領域については前記データの書き込み動作および書き込み動作を行い、前記データの存在しない前記データ格納領域については前記データの書き込み動作のみを行うことを特徴とする請求の範囲第1項記載のストレージ管理装置。
  16. 前記コンピュータを、前記データ格納領域毎の前記フラグを一括して管理するフラグ管理情報群記憶手段として機能させ、前記データチェック手段は、前記フラグ管理情報群記憶手段を参照して前記データの有無を判断することを特徴とする請求の範囲第1項記載のストレージ管理装置。
  17. 前記データチェック手段は、当該コンピュータを管理する管理コンピュータの指示により動作することを特徴とする請求の範囲第1項記載のストレージ管理プログラム。
  18. 前記管理コンピュータに複数の前記コンピュータが接続されている場合、前記管理コンピュータは、前記コンピュータ毎の前記データ格納領域および前記フラグの関係を一括して管理する情報記憶手段を有することを特徴とする請求の範囲第17項記載のストレージ管理装置。
JP2009508721A 2007-03-12 2007-03-12 ストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置 Pending JPWO2008126169A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/054781 WO2008126169A1 (ja) 2007-03-12 2007-03-12 ストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置

Publications (1)

Publication Number Publication Date
JPWO2008126169A1 true JPWO2008126169A1 (ja) 2010-07-15

Family

ID=39863353

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009508721A Pending JPWO2008126169A1 (ja) 2007-03-12 2007-03-12 ストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置

Country Status (3)

Country Link
US (1) US20090319834A1 (ja)
JP (1) JPWO2008126169A1 (ja)
WO (1) WO2008126169A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9171031B2 (en) 2012-03-02 2015-10-27 Cleversafe, Inc. Merging index nodes of a hierarchical dispersed storage index
WO2017119091A1 (ja) * 2016-01-07 2017-07-13 株式会社日立製作所 分散型ストレージシステム、データ格納方法、およびソフトウェアプログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03105658A (ja) * 1989-09-20 1991-05-02 Fujitsu Ltd 差分記憶装置
JPH05216768A (ja) * 1992-02-06 1993-08-27 Seiko Epson Corp 情報処理装置
JPH10105346A (ja) * 1996-10-01 1998-04-24 Hitachi Ltd ディスク記憶システム
JP2006127106A (ja) * 2004-10-28 2006-05-18 Hitachi Ltd ストレージシステム及びその制御方法
JP2006338201A (ja) * 2005-05-31 2006-12-14 Toshiba Corp 論理ボリューム管理装置、論理ボリューム管理方法およびプログラム
JP2006351181A (ja) * 1994-08-31 2006-12-28 Sony Corp 再生装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0668735B2 (ja) * 1987-02-09 1994-08-31 日本電気アイシーマイコンシステム株式会社 キヤツシユメモリ−
EP1912422A2 (en) * 1994-08-31 2008-04-16 Sony Corporation Still picture system
JP2773740B2 (ja) * 1996-06-18 1998-07-09 日本電気株式会社 ディスク装置の診断システム
JP2001075853A (ja) * 1999-09-03 2001-03-23 Hitachi Ltd 計算機システム、及び該計算機システムに用いられる計算機並びに記憶装置
JP2004021811A (ja) * 2002-06-19 2004-01-22 Hitachi Ltd 不揮発メモリを使用したディスク制御装置
JP2005266871A (ja) * 2004-03-16 2005-09-29 Ultra X:Kk ハードディスク装置の診断/消去機能を有するコンピュータ装置およびそのマザーボード
JP4143040B2 (ja) * 2004-03-31 2008-09-03 東芝ソリューション株式会社 ディスクアレイ制御装置、同装置に適用されるデータ欠損検出時の処理方法及びプログラム
JP4933211B2 (ja) * 2006-10-10 2012-05-16 株式会社日立製作所 ストレージ装置、制御装置及び制御方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03105658A (ja) * 1989-09-20 1991-05-02 Fujitsu Ltd 差分記憶装置
JPH05216768A (ja) * 1992-02-06 1993-08-27 Seiko Epson Corp 情報処理装置
JP2006351181A (ja) * 1994-08-31 2006-12-28 Sony Corp 再生装置
JPH10105346A (ja) * 1996-10-01 1998-04-24 Hitachi Ltd ディスク記憶システム
JP2006127106A (ja) * 2004-10-28 2006-05-18 Hitachi Ltd ストレージシステム及びその制御方法
JP2006338201A (ja) * 2005-05-31 2006-12-14 Toshiba Corp 論理ボリューム管理装置、論理ボリューム管理方法およびプログラム

Also Published As

Publication number Publication date
US20090319834A1 (en) 2009-12-24
WO2008126169A1 (ja) 2008-10-23

Similar Documents

Publication Publication Date Title
US8234467B2 (en) Storage management device, storage system control device, storage medium storing storage management program, and storage system
JP4606455B2 (ja) ストレージ管理装置、ストレージ管理プログラムおよびストレージシステム
JP5158074B2 (ja) ストレージ管理プログラム、ストレージ管理方法、ストレージ管理装置およびストレージシステム
JP4519179B2 (ja) 論理ボリューム管理プログラム、論理ボリューム管理装置、論理ボリューム管理方法、および分散ストレージシステム
JP4818812B2 (ja) フラッシュメモリストレージシステム
JP5099128B2 (ja) ストレージ管理プログラム、ストレージ管理装置およびストレージ管理方法
US8032784B2 (en) Duplication combination management program, duplication combination management apparatus, and duplication combination management method
JP5412882B2 (ja) 論理ボリューム構成情報提供プログラム、論理ボリューム構成情報提供方法、および論理ボリューム構成情報提供装置
JP5396836B2 (ja) データ分散制御プログラム、ストレージ管理プログラム、制御ノード、およびディスクノード
JP5218284B2 (ja) 仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法
US8433949B2 (en) Disk array apparatus and physical disk restoration method
CN116204137B (zh) 基于dpu的分布式存储系统、控制方法、装置及设备
US20180307427A1 (en) Storage control apparatus and storage control method
JPWO2008126169A1 (ja) ストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置
JP5640618B2 (ja) 管理プログラム、管理装置、および管理方法
US20090177917A1 (en) Process, apparatus, and program for system management
JP6957845B2 (ja) ストレージ制御装置及びストレージ装置
JP2009252114A (ja) ストレージシステム及びデータ退避方法
JP5924117B2 (ja) コンピュータ、データ格納方法、データ格納プログラム及び情報処理システム
JP7319514B2 (ja) ストレージ装置およびデータ配置方法
JP2002175157A (ja) ディスクアレイ装置
JP2023110180A (ja) ストレージ装置および制御方法
JP5636703B2 (ja) ブレードサーバ
JP2010225229A (ja) ハードディスクドライブ管理装置及び方法
JPH1166692A (ja) ディスク記憶装置およびその制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110901

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111011