JP7437428B2 - ストレージシステム、ドライブ移動方法、及びプログラム - Google Patents

ストレージシステム、ドライブ移動方法、及びプログラム Download PDF

Info

Publication number
JP7437428B2
JP7437428B2 JP2022013175A JP2022013175A JP7437428B2 JP 7437428 B2 JP7437428 B2 JP 7437428B2 JP 2022013175 A JP2022013175 A JP 2022013175A JP 2022013175 A JP2022013175 A JP 2022013175A JP 7437428 B2 JP7437428 B2 JP 7437428B2
Authority
JP
Japan
Prior art keywords
data
storage area
drive
target drive
drives
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.)
Active
Application number
JP2022013175A
Other languages
English (en)
Other versions
JP2023111360A (ja
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2022013175A priority Critical patent/JP7437428B2/ja
Priority to US17/902,767 priority patent/US11914868B2/en
Publication of JP2023111360A publication Critical patent/JP2023111360A/ja
Application granted granted Critical
Publication of JP7437428B2 publication Critical patent/JP7437428B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0653Monitoring storage devices or systems
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストレージシステムにおけるドライブの移動方法に関する。
ストレージシステムでは、保守及び性能改善を目的にドライブ、コントローラ、及びノード等の構成要素の交換が行われる。このとき、現在の稼働状態を維持したまま構成要素の交換を実現することが望まれる。ストレージシステムの構成変更に関する技術としては特許文献1及び特許文献2に記載の技術が知られている。
特許文献1には「ストレージ制御部と、記憶媒体を有するストレージドライブと、を備えたストレージシステムにおいて、ストレージ制御部は、ストレージドライブに格納されたデータへアクセスするためのデータ管理情報を有し、第1のストレージ制御部は、ストレージドライブに格納されたデータについてのデータ管理情報を第2のストレージ制御部にコピーし、データ管理情報のコピー開始後にホストからライト要求を受けた場合、第1のストレージ制御部と、第2のストレージ制御部とが、それぞれ、ライト要求にかかるライトデータをストレージドライブの別々の記憶領域に格納する。」ことが記載されている。
特許文献2には「ストレージ制御装置は、受付部、決定部、及び、移行部を含む。受付部は、複数のストレージに分散して配置された複数の分割データを含む複数のボリュームのうち、移行元のストレージから移行先のストレージへ移行する対象ボリュームの指定を受け付ける。決定部は、移行元のストレージ内に配置可能な分割データの数と、対象ボリュームの分割データの数とに基づいて、移行元のストレージ内に配置する対象ボリュームの分割データのレイアウトを決定する。移行部は、決定したレイアウトに基づいて、対象ボリュームの分割データを移行元のストレージに配置して、配置した複数の分割データを一括して移行先のストレージへ移行する制御を行う。」ことが記載されている。
特開2021-140402号公報 特開2016-192170号公報
特許文献1に記載の手法では、ドライブを搭載する構成要素の交換については言及されていない。特許文献2に記載の手法では、新たなノードは記憶装置を有している必要があり、交換するノードの全てのデータを新規ノードにコピーするため負荷が大きく、また、時間がかかるという問題もある。
本発明は、既存のドライブを有効に活用し、運用を止めることなく、ストレージシステム内の構成を変更するための技術を実現する。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、複数のノード及び複数のドライブを有するストレージシステムであって、複数のドライブを格納する少なくとも一つの格納領域を含み、前記ノードは、二つ以上の前記ドライブから構成されるパリティグループを管理し、前記複数のドライブに対するデータの読み出し及びデータの書き込みを制御し、第1格納領域に格納され、かつ、第1パリティグループに属するターゲットドライブを第2格納領域に移動させる場合、前記第1格納領域から前記第2格納領域への前記ターゲットドライブの移動期間中にデータ書き込みが行われた前記ターゲットドライブの記憶領域の位置を記録する差分情報を生成する第1処理と、前記第1パリティグループに属する前記ターゲットドライブ以外の前記ドライブに格納されるデータを用いて前記差分情報に記録された前記記憶領域に対して書き込まれたデータを復元し、前記第2格納領域に移動した前記ターゲットドライブに書き込む第2処理と、を実行する。
本発明によれば、既存のドライブを有効に活用し、運用を止めることなく、ストレージシステム内の構成を変更できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
実施例1のシステムの構成例を示す図である。 実施例1のPG管理情報のデータ構造の一例を示す図である。 実施例1のドライブ管理情報のデータ構造の一例を示す図である。 実施例1の差分管理情報のデータ構造の一例を示す図である。 実施例1のストレージシステムのドライブの移動例を示す図である。 実施例1のストレージシステムのドライブの移動例を示す図である。 実施例1のストレージシステムのドライブ移動処理の一例を説明するフローチャートである。 実施例1のストレージシステムのドライブ移動処理の一例を説明するフローチャートである。 実施例1のストレージシステムのドライブ移動処理の一例を説明するフローチャートである。 実施例1のストレージシステムが実行するリード処理の一例を説明するフローチャートである。 実施例1のストレージシステムが実行するライト処理の一例を説明するフローチャートである。 実施例1のストレージシステムのキャッシュ制御の一例を説明するフローチャートである。 実施例2のストレージシステムのドライブの移動例を示す図である。 実施例2のストレージシステムのドライブの移動例を示す図である。 実施例2のストレージシステムのドライブの移動例を示す図である。 実施例2のストレージシステムのドライブの移動例を示す図である。 実施例2のストレージシステムのドライブの移動例を示す図である。
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
図1は、実施例1のシステムの構成例を示す図である。
図1のシステムは、ストレージシステム100、管理用端末101、及びホスト端末102から構成される。管理用端末101及びホスト端末102は、ネットワーク105を介してストレージシステム100と接続する。ネットワーク105は、WAN(Wide Area Network)、LAN(Local Area Network)、SAN(Storage Area Network)等である。ネットワーク105の接続方式は有線及び無線のいずれでもよい。なお、管理用端末101とストレージシステム100との間のネットワークと、ホスト端末102とストレージシステム100との間のネットワークは異なっていてもよい。
管理用端末101は、ストレージシステム100を管理するための計算機である。ストレージシステム100の管理者は、管理用端末101を用いてストレージシステム100の設定及び制御を行う。
ホスト端末102は、ストレージシステム100を利用する計算機である。ホスト端末102は、ストレージシステム100に対してユーザデータを書き込み、また、ストレージシステム100からユーザデータを読み出す。
ストレージシステム100は、ホスト端末102に対してボリュームを提供する。ストレージシステム100は、複数のドライブ121からRAID(Redundant Arrays of Inexpensive Disks)を構成するPG(パリティグループ)140を生成し、PG140からボリュームを生成する。ドライブ121は、例えば、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等である。ボリュームは、例えば、LDEVである。
ストレージシステム100は、複数のノード110を備える。複数のノード110は、図示しないスイッチ等から構成される内部ネットワークを介して接続される。
ノード110は、ホスト端末102とドライブ121との間のユーザデータの送受信を制御し、また、ドライブ121に対するユーザデータの読み出し及び書き込みを制御する。ノード110は、一つ以上のCTL(ストレージコントローラ)120を有する。また、ノード110は、ドライブ121を搭載するためのインタフェース(図示省略)を有する。
以下の説明では、ノード110及びCTL120を区別する場合、ノード(i)110及びCTL(i)120と記載する。iは1以上の整数である。
CTL120は、ハードウェア構成として、図示しない、CPU、メモリ、CHB(CHannel Board)、及びDKB(DisK Board)等を有する。また、CTL120は、機能構成として、ユーザデータの送受信、読み出し、及び書き込み等を制御する処理部150を有する。また、ノード110内のCTL120は、差分管理情報153を管理する。差分管理情報153は、ドライブ121の搭載場所の移動に伴うデータコピーを制御するための情報である。差分管理情報153の詳細は図4を用いて説明する。
ストレージシステム100内の各ノード110は共有メモリ130を構成する。共有メモリ130には、PG管理情報151及びドライブ管理情報152が格納される。PG管理情報151は、PG140を管理するための情報である。PG管理情報151の詳細は図2を用いて説明する。ドライブ管理情報152は、ストレージシステム100に搭載されるドライブ121を管理するための情報である。ドライブ管理情報152の詳細は図3を用いて説明する。
実施例1では、ノード110内にドライブ121が搭載され、一つ以上のノード110のドライブ121群からPG140が構成されているものとする。
図2は、実施例1のPG管理情報151のデータ構造の一例を示す図である。
PG管理情報151は、PG番号201及びドライブリスト202を含むエントリを格納する。一つのエントリは一つのPG140に対応する。なお、エントリに含まれるフィールドは前述したものに限定されない。
PG番号201は、PG140の識別番号を格納するフィールドである。ドライブリスト202は、PG140を構成するドライブ121の情報を格納するフィールドである。ドライブリスト202には、ストレージシステム100内のドライブ121を識別するためのドライブ番号のリストが格納される。
図3は、実施例1のドライブ管理情報152のデータ構造の一例を示す図である。
ドライブ管理情報152は、ドライブ番号301、ドライブ識別情報302、移動状態303、ロケーション304、及び所属PG番号305を含むエントリを格納する。一つのエントリは一つのドライブ121に対応する。なお、エントリに含まれるフィールドは前述したものに限定されない。
ドライブ番号301は、ドライブ番号を格納するフィールドである。ドライブ識別情報302は、ドライブ121そのものを一意に識別するための識別情報を格納するフィールドである。移動状態303は、ドライブ121の移動に関する状態を示す値を格納するフィールドである。移動状態303には、ドライブ121の搭載場所の移動が完了していることを示す「移動済」、ドライブ121の搭載場所が変更され、かつ、認識がされていない状態を示す「移動中」、ドライブ121の搭載場所が変更され、かつ、リビルドが完了していない状態を示す「リビルド待ち」のいずれかが格納される。ロケーション304は、ドライブ121の搭載場所を格納するフィールドである。所属PG番号305は、ドライブ121が属するPG140の識別番号を格納するフィールドである。
図4は、実施例1の差分管理情報153のデータ構造の一例を示す図である。
差分管理情報153は、ドライブ番号401及び更新ビットマップ402を含むエントリを格納する。一つのエントリは搭載場所が変更されたドライブ121に対応する。
ドライブ番号401は、搭載場所が変更されたドライブ121のドライブ番号を格納するフィールドである。更新ビットマップ402は、搭載場所の移動中に、当該ドライブ121の更新されたデータの位置を特定するための更新ビットマップを格納するフィールドである。更新ビットマップは、例えば、512MBの記憶領域を1ビットとして扱うビットマップが考えられる。1ビットあたりの記憶領域の大きさは任意に設定できる。
図5A及び図5Bは、実施例1のストレージシステム100のドライブ121の移動例を示す図である。図6A、図6B、及び図6Cは、実施例1のストレージシステム100のドライブ移動処理の一例を説明するフローチャートである。
実施例1では、ストレージシステム100にノード(3)110が追加され、ノード(2)110に搭載され、かつ、PG140を構成するドライブ121群を、ノード(3)110に移動させる場合のストレージシステム100の制御について説明する。まず、管理者等は、ストレージシステム100にノード(3)を追加する。
管理者等は、搭載位置を移動させたいドライブ121があるか否かを確認する。移動させたいドライブ121がある場合、管理者等は、管理用端末101を用いて、ドライブ移動指示を送信する。なお、ドライブ移動指示には移動対象のドライブ121を指定するドライブ番号が含まれるものとする。
以下の説明では、搭載位置を移動させるドライブ121をターゲットドライブ121と記載する。
ドライブ移動指示を受信すると、ノード(2)110の処理部150は、ドライブ管理情報152及び差分管理情報153を更新する(ステップS101)。
具体的には、処理部150は、ドライブ管理情報152からターゲットドライブ121のエントリを検索し、当該エントリの移動状態303に「移動中」を設定する。また、処理部150は、差分管理情報153にエントリを追加し、追加されたエントリのドライブ番号401にターゲットドライブ121のドライブ番号を設定し、更新ビットマップ402に初期化されたビットマップを設定する。ここで初期化されたビットマップとは、全てのビットのフラグが削除された状態を示す。
ステップS101の処理の後、管理者等は、ノード(2)110から冗長度の範囲内で所定の数のドライブ121を取り出し、ノード(3)110にドライブ121を搭載する。
移動したいドライブをすべて移動した後、管理者等は、ホスト端末102との間のパス及びLDEVのオーナ権をノード(3)110に変更する。
ノード(3)110の処理部150は、搭載されたドライブ121を認識し(ステップS201)、当該ドライブ121から識別情報等を取得する。
ノード(3)110の処理部150は、ドライブ管理情報152を更新し(ステップS202)、その後、処理を終了する。
具体的には、処理部150は、ドライブ管理情報152から認識されたドライブ121のエントリを検索し、当該エントリの移動状態303の値を取得する。移動状態303の値が「移動中」である場合、処理部150は、当該エントリのロケーション304に現在の搭載位置を設定し、また、移動状態303に「リビルド待ち」を設定する。
リビルド実行ノード110が図6Cの処理を実行する。リビルド実行ノード110は、ドライブ121の移動元又は移動先のいずれかのノード110でもよいし、ストレージシステム100内で負荷が低いノード110でもよい。
リビルド実行ノード110の処理部150は、ドライブ管理情報152を参照して、移動状態303が「リビルド待ち」のドライブ121を特定する(ステップS301)。
リビルド実行ノード110の処理部150は、特定されたドライブ121のドライブ識別情報を含む、差分管理情報153の問合せを各ノード110に送信することによって、更新ビットマップを取得する(ステップS302)。
リビルド実行ノード110の処理部150は、更新ビットマップのフラグが設定されているビットの中から一つのビットを選択する(ステップS303)。
リビルド実行ノード110の処理部150は、選択したビットに対応するターゲットドライブ121の記憶領域に対して、PG140を構成するドライブ121を用いてコレクションコピーを実行する(ステップS304)。なお、コレクションコピーに使用するドライブ121にはターゲットドライブ121は含まれない。
本実施例では、ドライブ121全体のコレクションコピーは行われず、移動中に更新された領域についてのみコレクションコピーが行われる。
リビルド実行ノード110の処理部150は、選択したビットのフラグを削除する(ステップS305)。
リビルド実行ノード110の処理部150は、フラグが設定された全てのビットの処理が完了したか否かを判定する(ステップS306)。
フラグが設定された全てのビットの処理が完了していない場合、リビルド実行ノード110の処理部150は、ステップS303に戻り、同様の処理を実行する。
フラグが設定された全てのビットの処理が完了した場合、リビルド実行ノード110の処理部150は、ドライブ管理情報152を更新し(ステップS307)、その後、処理を終了する。
具体的には、処理部150は、ドライブ管理情報152の特定されたドライブ121のエントリの移動状態303に「移動済」を設定する。
なお、ステップS301において複数のドライブ121が特定された場合、各ドライブ121に対してステップS302からステップS307の処理が実行される。
さらに、ドライブ121を移動させる場合、管理者は、管理用端末101を用いてドライブ121の移動を指示する。これによって、図6A、図6B、及び図6Cの処理が実行される。
図7は、実施例1のストレージシステム100が実行するリード処理の一例を説明するフローチャートである。
処理部150は、リード要求を受信した場合、アクセス先のドライブ121を特定し、ドライブ管理情報152を参照して、当該ドライブ121に対応するエントリの移動状態303が「移動済」であるか否かを判定する(ステップS401)。
ドライブ121に対応するエントリの移動状態303が「移動済」である場合、処理部150は、当該ドライブ121からデータを読み出し、要求元に送信する(ステップS402)。
ドライブ121に対応するエントリの移動状態303が「移動済」でない場合、処理部150は、当該ドライブ121の更新ビットマップを取得し(ステップS403)、読み出し先のアドレスを含む記憶領域に対応するビットにフラグが設定されているか否かを判定する(ステップS404)。
読み出し先のアドレスを含む記憶領域に対応するビットにフラグが設定されていない場合、処理部150は、当該ドライブ121からデータを読み出し、要求元に送信する(ステップS402)。
読み出し先のアドレスを含む記憶領域に対応するビットにフラグが設定されている場合、処理部150は、当該ドライブ121が属するPG140の他のドライブ121からデータを取得してデータを復元し、要求元に送信する(ステップS405)。
図8は、実施例1のストレージシステム100が実行するライト処理の一例を説明するフローチャートである。
処理部150は、ライト要求を受信した場合、キャッシュにデータを書き込み、キャッシュの空き容量が閾値より小さくなった場合、処理部150は、ドライブ121へデータを書き込む。まず、処理部150は、書き込み先のドライブ121を特定し、ドライブ管理情報152を参照して、当該ドライブ121に対応するエントリの移動状態303が「移動中」であるか否かを判定する(ステップS501)。
以下の説明では書き込み先のドライブ121をターゲットドライブ121と記載する。
ターゲットドライブ121に対応するエントリの移動状態303が「移動中」でない場合、処理部150は、ターゲットドライブ121にデータを書き込む(ステップS502)。
ターゲットドライブ121に対応するエントリの移動状態303が「移動中」である場合、処理部150は、ターゲットドライブ121が属するPG140を構成するドライブ121からデータを読み出す(ステップS503)。このとき、移動状態303が「移動中」又は「リビルド待ち」のドライブ121は除外される。すなわち、処理部150は、PG140を構成し、かつ、移動状態303が「移動済」のドライブ121からデータを読み出す。
処理部150は、書き込むデータ及び読み出されたデータを用いてパリティを生成する(ステップS504)。
処理部150は、書き込み対象のドライブ121が属するPG140を構成するドライブ121に書き込みデータ及びパリティを書き込む(ステップS505)。このとき、移動状態303が「移動中」のドライブ121は除外される。すなわち、処理部150は、PG140を構成し、かつ、移動状態303が「移動中」ではないドライブ121にデータを書き込む。
処理部150は、ターゲットドライブ121の更新ビットマップを参照し、書き込み先のアドレスを含む記憶領域に対応するビットにフラグを設定する(ステップS506)。
図9は、実施例1のストレージシステム100のキャッシュ制御の一例を説明するフローチャートである。
各ノード110の処理部150は、周期的に、又は、実行指示を受け付けた場合、以下で説明するキャッシュ制御を実行する。本実施例では、LRU(Least Recently Used)方式でキャッシュの制御が行われているものとする。
ノード110の処理部150は、キャッシュにダーティデータが存在するか否かを判定する(ステップS601)。
キャッシュにダーティデータが存在しない場合、処理部150は処理を終了する。
キャッシュにダーティデータが存在する場合、処理部150は、ダーティデータを管理するキューからダーティデータを選択する(ステップS602)。キューにはアクセス時間が古い順にダーティデータが登録されており、処理部150は、最もアクセス時間が古いダーティデータを選択する。
処理部150は、選択したダーティデータのデータ量が閾値以下であるか否かを判定する(ステップS603)。
選択したダーティデータのデータ量が閾値より大きい場合、処理部150は処理を終了する。
選択したダーティデータのデータ量が閾値以下の場合、処理部150は、選択したダーティデータの書き込み先のドライブ121を特定し、ドライブ管理情報152を参照して、当該ドライブ121に対応するエントリの移動状態303が「移動中」であるか否かを判定する(ステップS604)。
選択したダーティデータの書き込み先のドライブ121に対応するエントリの移動状態303が「移動中」ではない場合、処理部150は処理を終了する。
選択したダーティデータの書き込み先のドライブ121に対応するエントリの移動状態303が「移動中」である場合、処理部150は、選択したダーティデータをキューの末尾に登録し(ステップS605)、その後、ステップS601に戻る。
図9に示す制御によって、移動状態303が「移動中」であるドライブ121へのデータの書き込みを抑制できる。これによって、当該ドライブ121に対するコレクションコピーの回数を抑えることができる。
実施例1では、PG140を構成する全てのドライブ121を移動させていたが、一部のドライブ121のみを移動させてもよい。
実施例1によれば、ノード110間でデータを保持したままドライブ121を移動させることができる。すなわち、既存のドライブ121を流用できる。応用として、新しく追加した移動先のノード110へのドライブ121移動の完了後、移動元のノード110を撤去することにより、ノード110の交換に伴うストレージシステムのアップグレードが無停止で容易に実現できる。また、ドライブ121の移動中にデータの書き込みが行われた場合、データ書き込みが行われた記憶領域についてコレクションコピーを実行することによって、短時間で最新の状態を復元できる。
実施例1のユースケースとしては、ストレージシステム100におけるノード110の入換及びスケールアウトが考えられる。いずれのユースケースでも、新規ノード110にドライブ121を用意する必要がなく、また、ホスト端末102のIOを止める必要がない。
実施例2のストレージシステム100はドライブボックス111を備える。以下、実施例1との差異を中心に実施例2について説明する。
実施例2のノード110の機能構成及びノード110が管理する情報は、実施例1と同一である。
図10A、図10B、図11A、図11B、及び図11Cは、実施例2のストレージシステム100のドライブ121の移動例を示す図である。
図10A及び図10Bは、ドライブボックス111の交換にあたり、ドライブボックス111間でドライブ121を移動させ、古いドライブボックス111を撤去する様子を示す。
管理者は、ストレージシステム100に新規ドライブボックス(2)111を追加し、ドライブボックス(1)111に搭載され、かつ、PG140を構成するドライブ121群を、ドライブボックス(2)111に移動させる。ドライブボックス(1)111の全てのドライブ121の移動が完了した後、管理者は、ドライブボックス(1)111を撤去する。
図11A、図11B、及び図11Cは、ドライブボックス111の交換に当たり、ドライブボックス111及びノード110の間でドライブ121を移動させ、さらに、新しいドライブボックス111にドライブ121を移動させる様子を示す。
管理者は、少なくとも一つのノード110に、ドライブボックス(1)111に搭載され、かつ、PG140を構成するドライブ121群を移動させ、ドライブボックス(1)111をドライブボックス(2)111に入れ替えた後、ドライブ121をドライブボックス(2)111に移動させる。
移動に伴う処理は実施例1と同様の処理であるため説明を省略する。なお、図6A、図6B、及び図6Cの処理は、一つのノード110の処理部150が実行してもよい。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
100 ストレージシステム
101 管理用端末
102 ホスト端末
105 ネットワーク
110 ノード
111 ドライブボックス
120 CTL
121 ドライブ
130 共有メモリ
140 パリティグループ
150 処理部
151 PG管理情報
152 ドライブ管理情報
153 差分管理情報

Claims (8)

  1. 複数のノード及び複数のドライブを有するストレージシステムであって、
    複数のドライブを格納する少なくとも一つの格納領域を含み、
    前記ノードは、
    二つ以上の前記ドライブから構成されるパリティグループを管理し、
    前記複数のドライブに対するデータの読み出し及びデータの書き込みを制御し、
    第1格納領域に格納され、かつ、第1パリティグループに属するターゲットドライブを第2格納領域に移動させる場合、前記第1格納領域から前記第2格納領域への前記ターゲットドライブの移動期間中にデータ書き込みが行われた前記ターゲットドライブの記憶領域の位置を記録した差分情報を生成する第1処理と、
    前記第1パリティグループに属する前記ターゲットドライブ以外の前記ドライブに格納されるデータを用いて前記差分情報に記録された前記記憶領域に対して書き込まれたデータを復元し、前記第2格納領域に移動した前記ターゲットドライブに書き込む第2処理と、を実行することを特徴とするストレージシステム。
  2. 請求項1に記載のストレージシステムであって、
    前記ノードは、
    前記複数のドライブの各々の前記格納領域間の移動状態を示す状態値を管理し、
    前記ノードは、
    前記ターゲットドライブの移動指示を受け付けた場合、前記ターゲットドライブの前記状態値として、前記第1格納領域から前記第2格納領域への移動が開始されたことを示す第1値を設定し、
    前記ターゲットドライブの前記状態値として前記第1値が設定された後、前記第1処理を実行し、
    前記ターゲットドライブが前記第2格納領域に設置されたことを検知した場合、前記ターゲットドライブの前記状態値として、前記ターゲットドライブへのデータのリビルド開始を示す第2値を設定し、
    前記ターゲットドライブの前記状態値として前記第2値が設定された後、前記第2処理を実行し、
    前記第2処理が終了した後、前記ターゲットドライブの前記状態値として、前記第1格納領域から前記第2格納領域への移動が終了したことを示す第3値を設定することを特徴とするストレージシステム。
  3. 請求項2に記載のストレージシステムであって、
    前記ノードは、
    前記ターゲットドライブからのデータを読み出す場合、前記ターゲットドライブの前記状態値が前記第3値であるか否かを判定し、
    前記ターゲットドライブの前記状態値が前記第3値ではないと判定された場合、前記差分情報を参照して、読み出し対象のデータが格納される記憶領域が、前記データ書き込みが行われた記憶領域であるか否かを判定し、
    前記読み出し対象のデータが格納される記憶領域が、前記データ書き込みが行われた記憶領域である場合、前記第1パリティグループに属する前記状態値が前記第3値の前記ドライブに格納されるデータを用いて前記読み出し対象のデータを復元し、要求元に送信することを特徴とするストレージシステム。
  4. 請求項2に記載のストレージシステムであって、
    前記ノードは、
    前記ターゲットドライブにデータを書き込む場合、前記ターゲットドライブの前記状態値が前記第1値であるか否かを判定し、
    前記ターゲットドライブの前記状態値が前記第1値であると判定された場合、書き込み対象のデータ及び前記第1パリティグループに属する前記状態値が前記第3値の前記ドライブに格納されるデータを用いてパリティを生成し、
    前記第1パリティグループに属する前記状態値が前記第2値又は前記第3値の前記ドライブに、前記書き込み対象のデータ及び前記パリティを格納し、
    前記差分情報に、前記書き込み対象のデータの書き込み先の記憶領域を記録することを特徴とするストレージシステム。
  5. 請求項1に記載のストレージシステムであって、
    前記ノードは、
    キャッシュを有し、
    前記キャッシュにダーティデータが存在する場合、書き込み先の前記ドライブが前記ターゲットドライブである前記ダーティデータの書き込みを抑止するようにキャッシュ制御を行うことを特徴とするストレージシステム。
  6. 請求項1に記載のストレージシステムであって、
    前記差分情報は、前記ターゲットドライブの所定のサイズの記憶領域を1ビットとするビットマップであって、
    前記ターゲットドライブに対するデータ書き込みが行われた記憶領域に対応するビットにはフラグが設定されることを特徴とするストレージシステム。
  7. 複数のノード及び複数のドライブを有するストレージシステムが実行するドライブ移動方法であって、
    前記ストレージシステムは、複数のドライブを格納する少なくとも一つの格納領域を含み、
    前記ノードは、
    二つ以上の前記ドライブから構成されるパリティグループを管理し、
    前記複数のドライブに対するデータの読み出し及びデータの書き込みを制御し、
    前記ドライブ移動方法は、
    前記ノードが、第1格納領域に格納され、かつ、第1パリティグループに属するターゲットドライブを第2格納領域に移動させる場合、前記第1格納領域から前記第2格納領域への前記ターゲットドライブの移動期間中にデータ書き込みが行われた前記ターゲットドライブの記憶領域の位置を記録した差分情報を生成する第1のステップと、
    前記ノードが、前記第1パリティグループに属する前記ターゲットドライブ以外の前記ドライブに格納されるデータを用いて前記差分情報に記録された前記記憶領域に対して書き込まれたデータを復元し、前記第2格納領域に移動した前記ターゲットドライブに書き込む第2のステップと、を含むことを特徴とするドライブ移動方法。
  8. 複数のノード及び複数のドライブを有するストレージシステムに実行させるためのプログラムであって、
    前記ストレージシステムは、複数のドライブを格納する少なくとも一つの格納領域を含み、
    前記ノードは、
    二つ以上の前記ドライブから構成されるパリティグループを管理し、
    前記複数のドライブに対するデータの読み出し及びデータの書き込みを制御し、
    前記プログラムは、
    第1格納領域に格納され、かつ、第1パリティグループに属するターゲットドライブを第2格納領域に移動させる場合、前記第1格納領域から前記第2格納領域への前記ターゲットドライブの移動期間中にデータ書き込みが行われた前記ターゲットドライブの記憶領域の位置を記録した差分情報を生成する第1の手順と、
    前記第1パリティグループに属する前記ターゲットドライブ以外の前記ドライブに格納されるデータを用いて前記差分情報に記録された前記記憶領域に対して書き込まれたデータを復元し、前記第2格納領域に移動した前記ターゲットドライブに書き込む第2の手順と、を前記ノードに実行させることを特徴とするプログラム。
JP2022013175A 2022-01-31 2022-01-31 ストレージシステム、ドライブ移動方法、及びプログラム Active JP7437428B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022013175A JP7437428B2 (ja) 2022-01-31 2022-01-31 ストレージシステム、ドライブ移動方法、及びプログラム
US17/902,767 US11914868B2 (en) 2022-01-31 2022-09-02 Storage system, method for moving drives, and non-transitory computer-readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022013175A JP7437428B2 (ja) 2022-01-31 2022-01-31 ストレージシステム、ドライブ移動方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2023111360A JP2023111360A (ja) 2023-08-10
JP7437428B2 true JP7437428B2 (ja) 2024-02-22

Family

ID=87432004

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022013175A Active JP7437428B2 (ja) 2022-01-31 2022-01-31 ストレージシステム、ドライブ移動方法、及びプログラム

Country Status (2)

Country Link
US (1) US11914868B2 (ja)
JP (1) JP7437428B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260236A (ja) 2005-03-17 2006-09-28 Hitachi Ltd 記憶制御システム及び記憶制御方法
JP2008046986A (ja) 2006-08-18 2008-02-28 Hitachi Ltd ストレージシステム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4500057B2 (ja) * 2004-01-13 2010-07-14 株式会社日立製作所 データ移行方法
JP4387261B2 (ja) * 2004-07-15 2009-12-16 株式会社日立製作所 計算機システム、および、記憶装置システムの移行方法
US9448735B1 (en) * 2013-12-31 2016-09-20 Emc Corporation Managing storage device rebuild in data storage systems
JP2016192170A (ja) * 2015-03-31 2016-11-10 富士通株式会社 ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
JP7145902B2 (ja) 2020-03-04 2022-10-03 株式会社日立製作所 ストレージシステム及びその制御方法
US11941301B2 (en) * 2021-01-22 2024-03-26 EMC IP Holding Company LLC Maintaining online access to data stored in a plurality of storage devices during a hardware upgrade
US11640343B2 (en) * 2021-05-06 2023-05-02 EMC IP Holding Company LLC Method for migrating data in a raid system having a protection pool of storage units

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260236A (ja) 2005-03-17 2006-09-28 Hitachi Ltd 記憶制御システム及び記憶制御方法
JP2008046986A (ja) 2006-08-18 2008-02-28 Hitachi Ltd ストレージシステム

Also Published As

Publication number Publication date
JP2023111360A (ja) 2023-08-10
US20230244387A1 (en) 2023-08-03
US11914868B2 (en) 2024-02-27

Similar Documents

Publication Publication Date Title
US6912669B2 (en) Method and apparatus for maintaining cache coherency in a storage system
JP4958739B2 (ja) 障害の発生した記憶装置に記憶されているデータを修復するストレージシステム
JP7266060B2 (ja) ストレージシステムの構成変更方法及びストレージシステム
WO2013018132A1 (en) Computer system with thin-provisioning and data management method thereof for dynamic tiering
US10296429B2 (en) Storage device
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
JP2007066129A (ja) ストレージシステムとストレージ装置及びその制御方法
JP4911198B2 (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御方法
JP2007265403A (ja) 階層型ストレージシステム間でのリモートミラー方式
US11128535B2 (en) Computer system and data management method
US20080005463A1 (en) Command queue ordering by flipping active write zones
CN113360082B (zh) 存储***及其控制方法
JPWO2015097751A1 (ja) 不揮発性キャッシュメモリにデータをバックアップするストレージシステム
US20110153954A1 (en) Storage subsystem
JP2007310618A (ja) 階層型ストレージ装置及びその記録媒体管理方法
US9342418B2 (en) Storage system, storage control device and data transfer method
JP2010049637A (ja) 計算機システム、ストレージシステム及び構成管理方法
US8429344B2 (en) Storage apparatus, relay device, and method of controlling operating state
US9122416B2 (en) Mainframe storage apparatus that utilizes thin provisioning
JP2003015826A (ja) ディスクアレイ制御装置における共有メモリコピー機能
US7073029B2 (en) Storage system using fast storage and log-structured storage
JPWO2019049224A1 (ja) 分散ストレージシステム及び分散記憶制御方法
US20180307427A1 (en) Storage control apparatus and storage control method
US20160259571A1 (en) Storage subsystem
JP7437428B2 (ja) ストレージシステム、ドライブ移動方法、及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220722

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231121

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: 20240206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240209

R150 Certificate of patent or registration of utility model

Ref document number: 7437428

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150