JP2011003111A - フラッシュメモリを用いたストレージシステムの管理方法及び計算機 - Google Patents

フラッシュメモリを用いたストレージシステムの管理方法及び計算機 Download PDF

Info

Publication number
JP2011003111A
JP2011003111A JP2009147182A JP2009147182A JP2011003111A JP 2011003111 A JP2011003111 A JP 2011003111A JP 2009147182 A JP2009147182 A JP 2009147182A JP 2009147182 A JP2009147182 A JP 2009147182A JP 2011003111 A JP2011003111 A JP 2011003111A
Authority
JP
Japan
Prior art keywords
information
management
fmd
surplus capacity
storage
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.)
Granted
Application number
JP2009147182A
Other languages
English (en)
Other versions
JP4874368B2 (ja
JP2011003111A5 (ja
Inventor
Shotaro Ono
正太郎 大野
Manabu Obana
学 尾花
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 JP2009147182A priority Critical patent/JP4874368B2/ja
Priority to US12/546,395 priority patent/US8909848B2/en
Priority to EP10250749A priority patent/EP2270644A3/en
Publication of JP2011003111A publication Critical patent/JP2011003111A/ja
Publication of JP2011003111A5 publication Critical patent/JP2011003111A5/ja
Application granted granted Critical
Publication of JP4874368B2 publication Critical patent/JP4874368B2/ja
Priority to US14/539,184 priority patent/US9069476B2/en
Priority to US14/739,253 priority patent/US9329957B2/en
Priority to US15/094,208 priority patent/US20160224257A1/en
Expired - Fee Related 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/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0608Saving storage space on storage 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/061Improving I/O performance
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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
    • 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
    • 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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1008Graphical user interface [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1059Parity-single bit-RAID5, i.e. RAID 5 implementations

Abstract

【課題】フラッシュメモリを記憶領域として利用するストレージシステムの管理を容易にする。
【解決手段】フラッシュメモリチップを備えるストレージシステムのコントローラは、フラッシュメモリチップの余剰容量値を管理し、パリティグループの定義または内部LUの定義または論理ユニットの定義の少なくとも一つの定義に基いて、管理サーバに余剰容量値に基づく値を送信する。管理サーバは受信した余剰容量値に基く値を用いてストレージシステムの状態を表示する。
【選択図】図3

Description

本発明は、複数の記憶デバイスを備えたストレージシステム及びストレージシステムの管理サーバに関する。
従来、情報システムで用いられるストレージシステムは記憶媒体としてHDD(ハードディスクドライブ)を採用した製品が普及している。
一方で、近年、フラッシュメモリのビットコストが低下しつつあることから、フラッシュメモリが、有力な記憶デバイスとなりつつある。特許文献1に開示の技術では、ストレージシステムが、複数のフラッシュメモリを備えたフラッシュメモリデバイスを複数個と、複数のフラッシュメモリデバイスのうち、外部装置から受信したI/Oリクエストで指定のアクセス先から特定されるフラッシュメモリデバイスにアクセスするI/O処理制御部を有するコントローラとを備え、さらに同一の内部構成を有するフラッシュメモリデバイスでパリティグループを構成することが開示されている。
米国特許公開公報第2007/0283079号
特許文献1の技術では高信頼又は高性能なフラッシュメモリを利用したストレージシステムを提供することができるが、ストレージシステムの管理者はフラッシュメモリであることを考慮した管理が困難である。
本発明は、フラッシュメモリを記憶領域として利用するストレージシステムの管理を容易にすることを目的とする。
本発明におけるフラッシュメモリチップを備えるストレージシステムのコントローラは、フラッシュメモリチップの余剰容量値を管理し、パリティグループの定義または内部LUの定義または論理ユニットの定義の少なくとも一つの定義に基いて、管理サーバに余剰容量値に基づく値を送信する。管理サーバは受信した余剰容量値に基く値を用いてストレージシステムの状態を表示する。
本発明によれば、フラッシュメモリを記憶領域として利用するストレージシステムの管理を容易にすることができる。
図1は、本発明の一実施形態に係る情報システムのハードウェア構成の一例を示す図である。 図2は、FMDのハードウェア構成及びソフトウェア構成のそれぞれの一例について示した図である。 図3は、本実施形態の概要を示す図である。 図4は、ホストとストレージシステムのそれぞれに存在するコンピュータプログラムと情報を示す図である。 図5は、ストレージコントローラにて保存されるFMD情報の例を示す図である。 図6は、PG構成情報の例を示す図である。 図7は、内部LU構成情報の例を示す図である。 図8は、RAID1+0のパリティグループのアドレス空間を示す。 図9は、RAID5のパリティグループのアドレス空間を示す。 図10は、図8のアドレス空間でのキャッシュ使用例を示す。 図11は、図9のアドレス空間でのキャッシュ使用例の一部を示す。 図12は、図9のアドレス空間でのキャッシュ使用例の残りの一部を示す。 図13は、LUパス情報の例を示す。 図14は、構成制御プログラムにて実行される、パリティグループの定義処理について示したフローである。 図15は、構成制御プログラムにて実行される、内部LUの定義処理について示したフローである。 図16は、構成制御プログラムにて実行される、LUのパス定義処理について示したフローである。 図17は、I/O処理プログラムがライトリクエストを受信した場合に行われる処理のフローである。 図18は、キャッシュ制御プログラムが繰り返し実行するパリティ作成とデステージングの処理を示す。 図19は、I/O処理プログラムがリードリクエストを受信した場合に行われる処理の流れの一例を示す。 図20は、アドレス空間の階層構造の一例を示す。 図21は、FMDのバリエーションの一つであるSFMDの例を示す。 図22は、FMDのバリエーションの一つである複数記憶領域提供FMDの例を示す。 図23は、図22の複数記憶領域提供FMDのFMDにより構成されたサブパリティグループの一例を示す。 図24は、管理サーバのソフトウェア構成の一例について示した図である。 図25は、管理側FMD情報の例を示した図である。 図26は、管理側PG構成情報の例を示した図である。 図27は、管理側内部LU構成情報の例を示した図である。 図28は、管理側LUパス情報の例を示した図である。 図29は、管理側代替候補FMD情報の例を示した図である。 図30は、管理サーバにおける第1の表示例である。 図31は、管理サーバにおける第2の表示例である。 図32は、管理サーバにおける第3の表示例である。 図33は、管理サーバにおける第4の表示例である。 図34は、管理サーバにおける第5の表示例である。 図35は、管理サーバにおける第6の表示例である。 図36は、管理サーバにおける第7の表示例である。 図37は、管理サーバにおける第8の表示例である。 図38は、余剰容量ポリシー情報の例を示した図である。 図39は、論理ユニット運用情報の例を示した図である。
以下、図面を参照して、本発明の実施の形態を説明する。なお、以後の説明では「xxxテーブル」、「xxxリスト」、「xxxDB」、「xxxキュー」等の表現にて本発明の情報を説明するが、これら情報は必ずしもテーブル、リスト、DB、キュー、等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「xxxテーブル」、「xxxリスト」、「xxxDB」、「xxxキュー」等について「xxx情報」と呼ぶことがある。さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いるが、これらについてはお互いに置換が可能である。さらに、データ内容を示すために「情報」という表現を用いているが、他の表現形式であってもよい。
以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ又はストレージシステム等の計算機、情報処理装置が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。また、各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
<1.情報システムの構成>。
図1は、本発明の一実施形態に係る情報システムのハードウェア構成の一例を示す図である。
情報システムは、例えば、ストレージシステム1000、ホストコンピュータ(以後ホストと省略する)1100及び管理サーバ1200から構成される。ストレージシステム1000、ホスト1100及び管理サーバ1200の数は、それぞれ、1以上とすることができる。ストレージシステム1000とホスト1100は、I/Oネットワーク1300を介して、相互に接続される。ストレージシステム1000と管理サーバ1200及びホスト1100は、管理ネットワーク(図示せず)またはI/Oネットワーク1300を介して、相互に接続される。
ホスト1100には、ホスト内部ネットワーク1104があり、そのネットワーク1104に、プロセッサ(図中ではProcと略記)1101と、メモリ(図中ではMemと略記)1102と、I/Oポート(図中ではI/O Pと略記)1103とが接続されている。
管理サーバ1200には、管理サーバ内部ネットワーク1204があり、そのネットワーク1204に、プロセッサ(図中ではProcと略記)1201と、メモリ(図中ではMemと略記)1202と、管理ポート(図中ではM Pと略記)1203と、入出力装置1205(図中ではI/Oデバイスと略記)とが接続されている。入出力装置の例としてはディスプレイとキーボードとポインタデバイスが考えられるが、これ以外の装置であってもよい。また、入出力装置の代替としてシリアルインターフェースやイーサーネットインターフェースを入出力装置とし、当該インターフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機を接続し、表示用情報を表示用計算機に送信したり、入力用情報を表示用計算機から受信することで、表示用計算機で表示を行ったり、入力を受け付けることで入出力装置での入力及び表示を代替してもよい。
また、管理サーバ1200は、管理操作リクエストを、ユーザー(例えば管理サーバ1200のオペレーター、単に管理者と呼ぶこともある)から受付け、その受け付けた管理操作リクエストを、ストレージシステム1000に送信することができる。管理操作リクエストは、ストレージシステム1000の操作のためのリクエストであり、例えば、パリティグループ作成リクエスト、内部LU作成リクエスト、及びパス定義リクエストがある。それぞれのリクエストについては、後述する。
以後、情報システムを管理し、本願発明の表示用情報を表示する一つ以上の計算機の集合を管理システムと呼ぶことがある。管理サーバ1200が表示用情報を表示する場合は管理サーバ1200が管理システムである、また、管理サーバ120と表示用計算機の組み合わせも管理システムである。また、管理処理の高速化や高信頼化のために複数の計算機で管理計算機と同等の処理を実現してもよく、この場合は当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機も含め)が管理システムである。
I/Oネットワーク1300は、ファイバーチャネルによる接続が第一に考えられるが、それ以外でも、FICON(FIbre CONnection:登録商標)やEthernet(登録商標)とTCP/IPとiSCSIの組み合わせや、EthernetとNFS(Network File System)やCIFS(Common Internet File System)等のネットワークファイルシステムの組み合わせ等が考えられる。さらに、I/Oネットワーク1300は、I/Oリクエストを転送可能な通信装置であればこれ以外でもよい。また、I/Oネットワーク1300と管理ネットワークは同じネットワークであってもよい。
ストレージシステム1000は、コントローラ(図中はCTLと表記)1010と、キャッシュメモリ(図中はCache/Shared Memと表記)1020と、複数のフラッシュメモリデバイス(Flash Memory Device:以後FMDと省略することがある)1030とを備える。 なお、典型的にはFMDは保守交換部品としてストレージシステムから抜き差し可能なデバイスであることが考えられるが、そうでなくてもよい。好ましい形態としては、コントローラ1010及びキャッシュメモリ1020は、それぞれ複数のコンポーネントから構成することが考えられる。なぜなら、コンポーネント単体に障害が発生して閉塞した(利用不可能となったことを指す)場合でも、残りのコンポーネントを用いてリードやライトに代表されるI/Oリクエストを引き続き受けることができるためである。
コントローラ1010は、ストレージシステム1000の動作を制御する装置(例えば回路基盤)である。コントローラ1010には、内部ネットワーク1016があり、そのネットワーク1016に、I/Oポート1013、キャッシュポート(図中ではC Pと表記)1015、管理ポート(図中ではM Pと表記)1016、バックエンドポート(図中ではB/E Pと表記)1014、プロセッサ(例えばCPU)1011及びメモリ1012が接続されている。コントローラ1010同士とキャッシュメモリ1020は、ストレージ内部ネットワーク1050にて相互に接続される。また、コントローラ1010と各FMD1030は、複数のバックエンドネットワーク1040にて相互接続される。なお、バックエンドネットワークとしてI/Oネットワーク1300で紹介した接続媒体及びプロトコルを採用してもよいが、SAS、SATA、またはPCI−Express等の他の媒体及びプロトコルであってもよい。
なお、ホスト1100及びストレージシステム1000の内部のネットワークは、好ましくは、I/Oポート1013の有する転送帯域より広帯域であり、また、バスやスイッチ型のネットワークによって全てまた一部が代替されてもよい。また、図1では、I/Oポート1013は、コントローラ1010に一つ存在することになっているが、実際には、複数のI/Oポート1013がコントローラ1010に存在してもよい。
以上のハードウェア構成によって、ストレージシステム1000のFMD1030に保存された全てまたは一部のデータを、ホスト1100が読出したり書き込んだりすることができ、管理サーバ1200が情報システムを管理できるようになる。
図4は、ホスト1100とストレージシステム1000のそれぞれに存在するコンピュータプログラムと情報を示す図である。なお、管理サーバ1200が有するコンピュータプログラムと情報については後ほど記す。
コントローラ1010では、プロセッサ1011とメモリ1012とI/Oポート1013とバックエンドポート1014とキャッシュポート1015とのうちの少なくとも一つによって、FMD情報4050とPG構成情報4060と内部LU構成情報4070とLUパス情報4080を保持し、且つ、I/O処理プログラム4010とキャッシュ制御プログラム4020と構成制御プログラム4030を実行する。なお、コントローラ1010で保持される情報の一部または全ては、ストレージシステム1000内部でコントローラ1010外部の領域(例えばキャッシュメモリ1020や、FMD1030の一部)にて保持されてもよい。
以下、プログラムが主語になる場合は、実際にはそのプログラムを実行するプロセッサによって処理が行われるものとする。
I/O処理プログラム4010は、ホスト1100からI/Oリクエスト(例えばリードリクエスト又はライトリクエスト)を受け、そのI/Oリクエストに従う処理を実行する。具体的には、例えば、I/O処理プログラム4010は、キャッシュメモリ1020に保存されたデータ(リードリクエストに従う読出し対象データ)を、ホスト1100へ転送したり、ホスト1100から受信したデータ(ライトリクエストに従う書込み対象データ)を、キャッシュメモリ1020へ保存する。なお、ホスト1100からのI/Oリクエストがブロックアクセス形式の場合は、I/O処理プログラム4010は、アクセス対象である論理ボリューム(例えばSCSIでの論理ユニット(LUと略すことがある))を提供するための処理も行うことができる。また、ホスト1100からのI/Oリクエストがファイル形式の場合は、I/O処理プログラム4010は、アクセス対象であるファイルやディレクトリを提供するための処理を行うことができる。なお、I/O処理プログラム4010は、前記以外のI/Oリクエスト(例えば、データベースクエリーやCKD形式のI/Oリクエスト)でのアクセスを提供するために必要な処理を行っても良い。
キャッシュ制御プログラム4020は、I/O処理プログラム4010と連動または自律的に、FMD1030が保存するデータをキャッシュメモリ1020へコピー(移動を含む)したり、キャッシュメモリ1020が保存するデータをFMD1030へコピーしたりすることができる。キャッシュ制御プログラム4020は、さらに、信頼性を向上させるための処理として、例えば、RAIDに代表される冗長化データを、キャッシュメモリ1020に保存されたデータから作成する及び/又は更新することを行ってもよい。
構成制御プログラム4030は、構成変更及び/又は構成参照のリクエストに応答して、FMD情報4050、PG構成情報4060、内部LU構成情報4070及びLUパス情報4080のうちの少なくとも一つを参照及び/又は更新する処理を行うことができる。構成変更及び/又は構成参照のリクエストは、例えば、管理サーバ1200、ホスト1100及びその他コンピュータのうちの少なくとも一つから発行される。なお、構成制御プログラム4030は後述の管理サーバ1200から他のリクエストを受信し、当該リクエストに対して応答を行う。
FMD情報4050は、FMD1030に関する情報を含む。PG構成情報4060は、パリティグループ(Parity Group: 以後PGと省略することがある)の構成情報を含む。内部LU構成情報4060は、パリティグループに含まれるFMDの一部または全ての領域を内部的な論理ユニット(以後、「内部論理ユニット」や「内部LU」と省略する)として構成するための情報を含む。LUパス情報は、内部LUとI/Oポート1013がホスト1100に対して提供するLUとの間の対応関係を表す情報を含む。なお、以後の説明では、内部LUは複数のパリティグループの領域に跨らない場合を中心に説明するが、本発明はこれに限定されるものではない。内部LUは、複数のパリティグループの領域を跨ってConcatenateやストライピングを伴って構成されてもよい。
内部LUは、一つの記憶領域に対して複数のポートを対応付ける場合や、一時的にでもすべてのポートとの対応付けが無い場合に備えて存在する論理的な存在である。また、論理ユニットに対する容量又はブロックサイズを問い合わせるリクエストがホスト1000又は管理サーバ1200から受信した場合、コントローラ1010は、問い合わせリクエストで指定された論理ユニットに対応する内部LUの容量またはブロックサイズを送信してもよい。同様に、論理ユニットに対する識別子を問い合わせるリクエストがホスト1000又は管理サーバ1200から受信した場合、コントローラ1010は論理ユニットに割り当てられたLUNに基く値を送信したり、又は論理ユニットに対応する内部論理ユニットの識別子に基く値を送信してもよい。
なお、FMD情報4050、内部LU構成情報4060、内部LU構成情報4070、及びLUパス情報4080の一つ以上または全てをまとめてストレージ構成情報と呼ぶことがある。またストレージ構成情報には他の情報が含まれても良い。
ホスト1100では、プロセッサ1101とメモリ1102とI/Oポート1103の少なくとも一つによって、OS4101とファイルシステム4102とアプリケーションプログラム(以後アプリケーションと省略する)4103の少なくとも一つが実行される。
アプリケーション4103は、OS4101やファイルシステム4102に依頼することで、ファイル等のデータを読み書きしつつ、ユーザーや他のコンピュータからのリクエストに応じて業務処理等を行うプログラム(例えばWebサーバプログラムやデータベース管理プログラム)である。
OS4101は、アプリケーション4103やファイルシステム4102から発行されるI/Oリクエストを、ストレージシステム1000のI/Oポート1013への送信や、データをストレージシステム1000からの受信を行う。ファイルシステム4102は、アプリケーションからのファイル形式のI/Oリクエストを、ブロック形式のI/Oリクエストやネットワークファイルシステムプロトコル形式のI/Oリクエストに変換してOS4101へI/Oリクエストの転送を依頼することができる。なお、OS4101及びファイルシステム4102はこれら以外の処理を含んでも良い。
なお、ホスト1100は、これ以外のプログラムが実行されていてもよい。また、ホスト1100は、ブロックI/OリクエストやファイルI/Oリクエスト以外にデータベースクエリーやCKD方式のリクエストを送信及び受信してもよい。また、ホスト1100やコントローラ1010で実行されるOSやファイルシステムを含めたプログラムは、一部または全ての処理をハードウェアにて実装されてもよい。
図24は管理サーバ1200に存在するコンピュータプログラムと情報を示す図である。メモリ1210は、システム管理プログラム12010、管理側FMD情報12050、管理側PG構成情報12060、管理側内部LU構成情報12070、管理側LUパス情報12080、管理側代替候補FMD情報12090、余剰容量ポリシー情報12100、及び論理ユニット運用情報12110を格納する。なおメモリ1210はこれ以外のデータを格納してもよく、上記情報の一部の格納を省略してもよい。
システム管理プログラム12010は、ストレージシステム1000又はホスト1100を管理するプログラムである。
管理側FMD情報12050は、ストレージシステム1000に設置されたFMD1030についての情報を格納する。
管理側PG構成情報12060は、ストレージシステム1000に定義されたパリティグループについての情報を格納する。
管理側内部LU構成情報12070は、ストレージシステム1000に定義された内部LUについての情報を格納する。
管理側LUパス情報12080は、ストレージシステム1000に定義された論理ユニットについての情報を格納する。
管理側代替候補FMD情報12090は、ストレージシステム1000の代替候補FMDの情報を格納する。
余剰容量ポリシー情報は12100は、FMD1030の余剰容量値に基く運用ポリシーを格納する。
論理ユニット運用情報12110は、論理ユニットの運用に関する情報を格納する。
なお、管理サーバ1200は、CD−ROM等の媒体を用いて、システム管理プログラム12010をメモリ1210へ格納されてもよい。また、管理サーバ1200は、配布計算機から配布されたシステム管理プログラム12010をメモリ1210へ格納してもよく、または配布計算機から配布されたインストールプログラムを実行することでシステム管理プログラム12010をメモリ1210へ格納してもよい。
なお、管理側FMD情報12050、管理側内部LU構成情報12060、管理側内部LU構成情報12070、及び管理側LUパス情報12080の一つ以上または全てをまとめて管理側ストレージ構成情報と呼ぶことがある。また管理側ストレージ構成情報には他の情報が含まれても良い。
<2.本実施形態の概要>。
フラッシュメモリ(以後FMと省略することがある)は、ブロック型の記憶デバイスであり、ページ及びイレースブロック(またはブロック)と呼ばれる単位でデータ管理が行われる。具体的に述べると、フラッシュメモリに対する読み書きは以下の3つの操作で実現される。
(操作1)ページを指定対象としたデータ読み込み操作
(操作2)ページを指定対象としたデータ書き込み操作
(操作3)ブロックを指定対象としたデータ消去操作
なお、ブロックは複数のページをまとめた単位である。
フラッシュメモリはHDDと比較してヘッドシークや回転待ちが存在しないため、特にランダムアクセスに適している。しかし、フラッシュメモリはデータ書き込み又は消去頻度に関連してデータ格納に支障をきたすことがある(ただし、データ格納に支障を及ぼす要因はこれ以外にも存在する)。例えば、あるページに対する書き込み又はイレースが所定の回数を超えた場合、当該ページでのデータ格納が失敗する確率が高くなることが指摘されている。
こうした課題を克服する技術として、ウェアレベリングと呼ばれる特許文献1記載の書き換え対策技術がある。ウェアレベリング技術では、フラッシュメモリを利用した記憶デバイスであるFMDに対して書き込み局所性のあるアクセスを受け続ける場合に、フラッシュメモリを制御するコントローラは、ホスト等外部からからアクセスで指定されたアドレスを、FMDが有するアドレス変換情報を用いてフラッシュメモリチップのページアドレス又はブロックアドレスに変換して、フラッシュメモリチップのページに対して読み込み又は書き込みを行ったり、またはブロックに対して消去を行う。そして、フラッシュメモリを制御するコントローラは、FMDが外部に提供するアドレス空間の特定アドレスが常に特定のフラッシュメモリのページ又はブロックと対応することがないように制御を行う。
その一方でFMDは、デバイスとしてコントローラ1010に提供する記憶容量(以後、提供容量または提供記憶容量と呼ぶ)とこれを実現するために必要となる管理情報や冗長コード格納で必要な容量の記憶領域に加えて、ある程度のページまたはブロックに支障が発生した場合に備えて、余剰記憶領域(以後、余剰領域と呼ぶ)を持つ。この余剰領域を確保することで、仮に一部のページ又はブロックで障害が発生した場合でもその時点で余剰領域とされたページまたはブロックを割り当てなおすことでFMDは提供容量分のデータ格納ができるよう工夫している。なお、余剰領域は障害が発生するまでは割り当てやウェアレベリングで利用されない場合や、障害発生前からウェアレベリングで利用されている(別な言い方をすれば、たまたま余剰領域として管理されていただけ)のどちらでも構わない。
なお、ストレージ装置におけるブロックはホストからの最小アクセス単位であることを指すことから、混乱を防ぐために、以後の説明ではフラッシュメモリチップのページをブロック、ブロックをセグメントと呼ぶことにする。
このようにしてFMDを用いたストレージシステムはホストからのアクセスリクエストを処理しているが、ストレージシステムを管理する管理者からはフラッシュメモリの特性を考慮した管理を行うことが困難であった。以下がその理由の一例である。
(理由1)ウェアレベリングを用いたとしても、フラッシュメモリのブロックまたはセグメント障害によるFMDの障害が発生する一方で、ウェアレベリング処理によってこれら障害は隠蔽されてしまうため、管理者はFMDの障害状況を分析することが容易でない。さらに、ストレージシステムはFMDの外部でもRAID処理に代表されるデータ格納領域の統合と分割、又は/および一つのデータ格納領域を分割して論理ユニットとして提供する、等の複数のFMDを用いて複数の記憶領域をホストに提供するための複雑なアドレス変換をストレージシステム内部で行っている。さらに、ストレージシステムの実現方法によってはスペアリングやデータマイグレーション等によってアドレス変換内容が変化し、場合によってはストレーシステムが自律的に変化を行うこともあるため、管理者によるFMDの障害状況の分析はより容易でなくなる。
(理由2)余剰領域が残り少ないFMDであっても書き込みを行わない用途であれば有効活用できるが、現在は余剰領域の容量(すなわち余剰容量)を考慮したFMDの使い分けが出来ていない。
図3は本発明の概要を示した図である。
図3ではストレージシステム1000が5つのFMD1030−1〜1030−5が備えられる場合を例として説明する。ここで、FMD1030−1とFMD1030−2とFMD1030−5は内部に1つのフラッシュメモリチップ(以後、FMCと呼ぶことがある)を有し、FMD1030−3とFMD1030−4は内部に2つのFMCを有すものとする。また、FMD1030−とFMD1030−2とでパリティグループ1を構成し、FMD1030−3とFMD1030−4とでパリティグループ2を構成する。FMD1030−5はFMD1030−1乃至1030−4に障害が発生した時に代替のFMDとして用いる代替候補FMDである。LU1乃至LU3はホストがアクセス対象とするLUであり、LU1がパリティグループ1に、LU2及びLU3がパリティグループ2にそれぞれ対応しているものとする。
FMD1030−1、FMD1030−2、及びFMD1030−5は一つのFMCを有し、FMD1030−3及びFMD1030−4のそれぞれは二つのFMCを有する。図4の各FMCの中に描かれた7つの四角形はセグメントを指し、「×」がついた四角形は障害が発生してデータ格納には不適なセグメントを指している。なお、障害管理の単位がブロックの場合はFMCの中の四角形をブロックに置き換えればよい。
本例に於けるFMD1030−1乃至1030−5の状況は以下の通りである。
1セグメントのサイズ: 50GB
FMD1030−1: 提供容量=200GB、余剰容量=150GB、障害容量=0GB
FMD1030−2: 提供容量=200GB、余剰容量=50GB、障害容量=100GB
FMD1030−3: 提供容量=200GB、余剰容量=150GB、障害容量=350GB
FMD1030−4: 提供容量=200GB、余剰容量=350GB、障害容量=150GB
FMD1030−5: 提供容量=200GB、余剰容量=100GB、障害容量=50GB
LU1:ホスト提供容量=100GB
LU2:ホスト提供容量=50GB
LU3:ホスト提供容量=150GB
なお、上記例ではセグメントサイズを大きな値にしているが、当然ながら他のサイズであってもよい。例えば、本願発明時点では1セグメントは数キロ〜数十キロバイト(又はビット)であり、典型的にはホストがストレージにアクセスするSCSI等の通信プロトコルで指定可能なブロックの規格上の最小サイズである512バイトよりも大きな値である。同様にパリティグループ、FMD、LU、及びFMCの数の関係は1対1、多対1、1対多、多対多のいずれであっても良く、ここの存在ごとにそれぞれの数の関係が異なっていても良い。なお、容量効率及び性能の観点から考えた場合、パリティグループを構成するFMD1030同士で提供容量及びFMCの数、ブロックサイズ、セグメントサイズ及びFMDコントローラの特性が同一または近いことが望ましいが、必ずしもそうでなくてもよい。さらに、パリティグループに対応するFMD1030の数、提供容量、FMD内部構成などの少なくとも一つがパリティグループ1とパリティグループ2で異なってもよい。当然ながら、各FMD1030が内蔵するFMCのブロックサイズ、セグメントサイズ、容量が異なっていてもよく、FMCの数も異なっても良い。
コントローラ1010は前述の通り、以下の情報を有する。
FMD情報4050:少なくとも各FMDの提供容量及び余剰容量値を含む。
PG構成情報4060:少なくとも各FMDとパリティグループの対応関係を含む。
内部LU構成情報及びLUパス情報を含む情報:少なくとも各パリティグループと論理ユニットとの対応関係を含む。
管理サーバ1200は、このストレージシステムの構成情報に基いて、論理ユニットに対するフラッシュメモリの余剰容量値(例えば、余剰容量をバイトやビットで表した値や、ブロックやセグメント数、余剰容量率(提供容量に対する余剰容量の割合)やこれら値に数学的処理を行った値)を得る。そして、管理サーバ1200は、得た値を管理者に表示したり、一つ以上のホスト1100による各論理ユニットの使い分けを行う。図4の例では、情報システムはLU1である論理ユニットについて余剰容量率が最も低いため、25%という値が十分に低いものと判断されるのであれば、LU1である論理ユニットをアーカイブ用途に変更している。
なお、この余剰容量値は、定められた値(例えばゼロ)に近くなると、FMDの余剰領域が不足することによって、新しく受信したライトデータの格納に失敗したり、後術する縮退状態となることによるデータ格納の信頼性低下、の可能性が高いことを示せれば他の具体例でもよい。
なお、管理サーバは論理ユニット以外にも以下について余剰容量値を表示することが考えられる。
(値1)FMDに対する余剰容量値の表示。余剰容量率を例とすれば、FMDの余剰容量に対するFMDの提供容量の割合を、管理サーバは表示する。本情報を参照した管理者の運用の一例としては、余剰領域不足が原因で交換が必要なFMDが無いか確認し、余剰容量率が低いFMDは交換の対象とすることが考えられる。また、本情報を参照することでFMDの増設計画を立てることも考えられる。
(値2)パリティグループに対する余剰容量値の表示。余剰容量率を例とすれば、パリティグループに属する一つ以上のFMDの余剰容量率の最小値や、さらに最小値の次に小さな値や、平均値や分散値を、管理サーバは表示する。RAID技術に代表されるデータ冗長化技術を採用したストレージシステムではパリティグループの状態として余剰容量値を表示することで縮退状態または閉塞状態になる可能性を管理者が容易に把握しやすい。また限られた表示スペースしかない表示画面においてはパリティグループ単位の情報表示は一覧性に優れる。
(値3)論理ユニットに対する余剰容量値の表示。余剰容量率を例とすれば、対応する一つ以上のパリティグループの余剰容量率を、管理サーバは表示する。なお、後述する内部LUについても同様の表示を行っても良い。ホストは論理ユニットを指定することでストレージシステムの記憶領域を用いることから、論理ユニット又は内部論理ユニットに対する余剰容量率の表示は管理者がホストを管理する場合に状況把握が容易な表示となる。
(値4)代替候補FMDに対するフラッシュメモリの余剰に関する値の表示。パリティグループを新しく定義する場合や、ダイナミックスペアリングを行う場合等に用いる代替候補FMDの確認を、値そのものや、値1又は値2等との比較によって行うことが出来る。また、ストレージシステムがダイナミックスペアリングによって新たに外されたFMDを代替候補FMDとして管理する場合は、本情報によって余剰領域不足でパリティグループから外されたFMDを新たにスペアリングに使わないように管理者に促すことが可能である。
なお、上記で述べた以外の理由でこれら表示情報を用いても良い。
ところで、余剰容量値の元となるFMDの余剰容量は、FMDに対する書き込み回数又は書き込みデータ量が増えるに従って減少する。そのため、ホスト又はストレージシステムにてFMD、パリティグループ、論理ユニット、又は内部LUへの書き込み回数または書き込みデータ量を測定し、その値に基いて余剰容量値を推定してもよい。しかし、余剰容量値はウェアレベリングを実現している部位(例えば、FMD1030のFMコントローラや、コントローラ1010)が管理している障害ブロック(または障害セグメント)の数や実際のフラッシュメモリチップ上のブロックの数に基いた値であることが精度上はより好ましい。理由の一例を以下に示す。
(理由A)FMDがこのストレージシステムに取り付けられる前に、フラッシュメモリチップの製造元又は販売元によるテスト書き込みが行われる場合がある。また、フラッシュメモリチップの製造工程で最初から障害が発生したブロックが存在する場合がある。
(理由B)ストレージシステム1000が有するキャッシュメモリの働きによって、必ずしもホストからのライトリクエストに付随するデータが毎回FMDに転送されて書き込まれるとは限らない。
(理由C)ウェアレベリング処理によっても実際のフラッシュメモリへの書き込みまたはイレース回数は変わる。しかし、ウェアレベリング技術はFMD1030又はストレージシステム1000の製造ベンダーによって異なる方式を採用する場合があり、ウェアレベリングを実際に処理していない部位での推定はより難しい。
(理由D)FMD内部にもキャッシュメモリを有する場合がある。
なお、上記理由は、状況次第で一部または全ての理由を考慮しなくても良い理由もある。例えば、理由Aは高品質なチップが製造可能であれば無視しても問題ない程度の理由となる。
さらに管理サーバは、FMDに代表される物理コンポーネントや、パリティグループ及び論理ユニット及び内部LUのような論理的なコンポーネントの、少なくとも一つについてフラッシュメモリの余剰容量値について管理者によって設定された閾値を下回った場合、管理者に対して、余剰容量値が閾値を下回ったことと共に、閾値を下回った当該値に対応するコンポーネント(論理的、物理的を問わず)を特定する情報(識別子等)を通知してもよい。
さらに管理サーバは、論理ユニットに対するフラッシュメモリの余剰容量値について、管理者によって設定された閾値を下回った場合、閾値を下回った当該値に対応する論理ユニット(余剰領域不足論理ユニットと呼ぶ場合がある)をWORMやアーカイブ等の更新頻度が少ないデータ格納用途向けに用いるようにホスト1100やホスト利用者等の外部へ当該論理ユニットを特定可能な用途切り替えリクエストを出すことも考えられる。
なお前述の余剰領域不足論理ユニットを「更新頻度が少ないデータ格納用途向け」として用いる実現例としては以下が考えられる(以下の処理は各実行主体が用途切り替えリクエスト受信に応じて行うことは言うまでもない)。
(実現例1)余剰領域不足論理ユニットに書き込みを行っていた第一のホスト(又はホスト上のアプリケーション又はホストの利用者)が用途切り替えリクエストを受信したら、上記論理ユニットに対して書き込む代わりに別な論理ユニットに対してデータ書き込みを行う(上記論理ユニットに格納されたデータの一部更新であれば更新前に別な論理ユニットに対してデータ移動又はコピーを実施してもよい)。
(実現例2)余剰領域不足論理ユニットに書き込みを行っていた第一のホストとは別な、アーカイブプログラム等の低更新頻度のデータ更新を行うホスト(第二のホスト)の設定変更を行い、余剰領域不足論理ユニットを第二のホストが低更新頻度用途で利用可能とする。具体的には、第一のホストは余剰領域不足論理ユニットのデータを第一のホストがアクセス可能な他の論理ユニットに移動させ、その後第一ホストは余剰領域不足論理ユニットの使用を抑止する設定を行う。そして、第二ホストは上記余剰領域不足論理ユニットを認識し、フォーマット等のアーカイブサーバが利用するための設定を行う。なお、アーカイブプログラムの一例としては、格納データに対して定められた期間は外部要求からの削除及び更新を抑止するファイルサーバプログラムやデータベースサーバプログラムであることが考えられるが、一例に過ぎない。また、アーカイブプログラムを実行する計算機をアーカイブ計算機、又はアーカイブサーバと呼ぶことがある。
(実現例3)ストレージシステムが、余剰領域不足論理ユニットのデータマイグレーション(つまり、余剰領域不足論理ユニットに当初対応するパリティグループ(移行元パリティグループ)に属するFMDから別なパリティグループ(移行先パリティグループ)に属するFMDへ、余剰領域不足論理ユニットのデータを移行すること)を行う。そして、
(A)ストレージシステムが、他のパリティグループに定義された「更新頻度が少ないデータ格納用途向け」の論理ユニットを上記移行元パリティグループへデータマイグレーションする。
(B)移行元パリティグループに「更新頻度が少ないデータ格納用途向け」の論理ユニット(実際は後述する内部LU)を定義し、実現例2に示す第二のホストに提供する。
のいずれかまたは両方を行う。
しかし、余剰領域不足論理ユニットに対応するパリティグループに格納されたデータについて更新頻度が少なくなるようなホスト、管理サーバ、ストレージシステムの処理であれば、上記実現例以外を採用してもよい。
なお、前述のコンポーネント(論理的、物理的を問わず)に対するフラッシュメモリの余剰容量値の算出は、算出の元となる情報をストレージシステムが管理していることから、より迅速または正確な値を取得できる点ではストレージシステムが算出することが好適であるが、管理サーバ側で必要な情報を受信して算出してもよい。当然ながらストレージシステムと管理サーバ側で算出を分担してもよい。なお、ストレージシステムの実装形態によってはパリティグループという概念のないケースもある。この場合も、本願発明は適用可能である。すなわち、パリティグループが関連する処理をFMDに関する処理として読み替えればよいからである。同様にストレージシステムの実施形態によっては内部LUという概念が無いケースもある。この場合も本願発明は適用可能である。すなわち、内部LUに関する説明を論理ユニットに置き換えればよい。
以上、本願発明の概要を記したが、本願発明は概要に示さなかった課題、効果、処理、構成などについても権利化と権利行使をしないことを示すものではない。当然ながら、フラッシュメモリの余剰容量値の表示について上記に記した少なくとも1項目又は全てを必ず表示するのみで、「更新頻度が少ないデータ格納用途向け」の論理ユニットを実現する処理を行わなくても良い。また反対に、フラッシュメモリの余剰容量値の表示を行わず、「更新頻度が少ないデータ格納用途向け」の論理ユニットを実現する処理のみを行ってもよく、両方行っても良い。
また、図には記していないが、ストレージシステム1000に、FMD1030とHDDが混在した構成としてもよい。その場合、HDDとFMD1030では、I/O特性(例えば、ランダムアクセスかシーケンシャルアクセスか、ライトが多いのかリードが多いのか)が異なるため、HDD同士でパリティグループを構成し、FMDについては、本実施形態で説明するパリティグループとすることができる。つまり、HDDのパリティグループとFMDのパリティグループとが一つのストレージシステム1000に混在してもよい。
<3.詳細>。
<3.0.ブロックサイズ>。
より詳細な説明に入る前に、本実施形態におけるブロックサイズについて、図20を用いて説明する。本実施形態では、アドレス空間(正確には、デバイスの識別子とデバイス内のアドレス空間を指す)が、以下の4レイヤに分かれており、それぞれのレイヤで、異なるブロックサイズを採用することができる。
(レイヤ1)FMCにアクセスするときに用いるアドレス空間。以後の説明で、本レイヤを明示する時は、単語の末尾に'[C]'をつけることがある。
(レイヤ2)FMD1030にアクセスする時に用いるアドレス空間。FMD1030は、FMCとは異なるブロックサイズを採用することがある。なぜなら、FMD1030は、複数のFMCから構成されており、また、後述するフラッシュメモリの特徴を回避するためである。以後の説明で、本レイヤを明示する時は、単語の末尾に'[D]'をつけることがある。
(レイヤ3)コントローラ1010がキャッシュメモリ1020上のデータを管理するための、パリティグループに割り当てられたアドレス空間。本実施形態では、さまざまなブロックサイズを持つFMD1030がコントローラ1010に接続されることが考えられる。そこで、I/O処理やキャッシュ制御処理ではそのような異なるブロックサイズをできるだけ考慮しなくてもよい様に、コントローラ1010が、所定のブロックサイズ(例えば、SCSIで最も一般的な最小ブロックサイズである512バイト)でパリティグループにアドレス空間を割り当てることができる。そのために、キャッシュメモリ1020とFMD1030間でデータをコピーするステージングやデステージング処理の時点でブロックサイズの変換が行われる。以後の説明で、本レイヤを明示する時は、単語の末尾に'[G]'をつけることがある。
(レイヤ4)LU(または後述する内部LU)にアクセスする時に用いるアドレス空間。ホスト1100に対して512バイトのブロックサイズ以外のLUを提供することがあるために、キャッシュのレベルとは異なるブロックサイズが採用される。以後の説明で、本レイヤを明示する時は、単語の末尾に'[L]'をつけることがある。なお、レイヤ1からレイヤ4までの各ブロックには制御用のデータまたは冗長コードが含まれることがある(例えば、コントローラ1010は、データと共に冗長コードをFMD1030のブロック[D]に保存するようにI/Oリクエストを発行する)。
<3.1.FMD>。
<3.1.1.概要>。
図2は、FMDのハードウェア構成及びソフトウェア構成のそれぞれの一例について示した図である。
FMD1030は、I/Oポート2030と、FMDコントローラ2010と、複数のFMC2020とを備える。I/Oポート2030は、バックエンドネットワーク1040と、FMDコントローラ2010とに接続される。FMDコントローラ2010は、複数のFMC2020に接続される。
なお、好ましくは、FMD1030は、複数のI/Oポート2030を備える。なぜならば、バックエンドネットワーク1040が冗長化されているために、冗長化された各々のバックエンドネットワーク1040とFMD1030が独立の部品で接続されたほうが冗長性維持のためには望ましいからである。しかし、FMD1030は一つのI/Oポートであってもよい。
ところで、FMC2020は、前述の特徴以外に、HDDやDRAM(Dynamic Random Access Memory)には無い以下に例示する(A1)乃至(A4)の特徴を有する。
(A1)アクセス単位はブロックである。
(A2)ブロックデータを更新する場合、複数ブロックをまとめたセグメント単位でデータを削除するイレースコマンドの使用が必要である。
(A3)同一ブロックに更新を繰り返すと更新処理が失敗することがある。
(A4)更新を契機として別ブロックのデータ化けが発生することがある。
これらの特徴を考慮したI/O処理(コントローラ1010からのI/Oリクエストに応じてデータ更新や読み出し等)を行うために、FMDコントローラ2010には、例えば、FMD I/O処理プログラム2011やFMD内部構成情報通知プログラム2014やFMDアドレス変換情報2012やFMD内部構成情報2013が備えられる。また、上記特徴に鑑み、FMD1030は、複数のFMC2020の総記憶容量より少ない記憶容量を提供容量としてコントローラ1010へ報告することで、余剰領域を確保することができる。
FMDアドレス変換情報2012は、FMDコントローラ2010が受信するI/Oリクエストに含まれるブロックアドレスとFMC2020のブロックの対応関係を含む。例えば、FMDアドレス変換情報2012は、以下に例示する種類(B1)及び(B2)の情報を各論理ブロックアドレス単位に持つことが考えられる(ただしB2は無くても良い)。
(B1)アドレス[D]のデータが実際に保存されているFMCの識別子とブロックアドレス[C]。
(B2)アドレス[D]が参照された回数。
FMD内部構成情報2013は、各フラッシュメモリチップの障害状況を管理する情報で、好ましくは、各FMC2020内のセグメントを一つ以上集めた領域単位で以下に例示する種類(C1)及び(C2)の情報を保持している。
(C1)障害状況。
(C2)イレース済み情報。
当該情報2013は、また、FMDとしてコントローラ1010に提供する記憶領域(言い換えればアドレス空間)の属性(例えば、ブロックサイズ[D]、ブロック数[D])と、余剰ブロックを管理するための情報を保持している。
FMD I/O処理プログラム2011は、I/Oポート2030を通じてFMDコントローラ2010が受信したI/Oリクエストを解析し、FMC2020が保存するデータの更新や、FMCからデータを読み出し後にコントローラ1010へのデータ転送等を行う。
<3.1.2.FMDのI/O処理>。
以下に、FMD I/O処理プログラム2011の処理内容を示す。
(Step1)FMD I/O処理プログラム2011は、I/Oリクエストを受信する。
(Step2)もし、リクエストがリードリクエストの場合、FMD I/O処理プログラム2011は、当該リクエストに含まれる開始論理ブロックアドレス[D]とブロック長[D]とFMDアドレス変換情報から、データが保存されている一つ以上のフラッシュメモリチップ2020と当該チップ内のブロック [C]を特定し、特定したブロック [C]からデータを読み出して、読み出したデータを、リクエスト送信元(コントローラ1010)に返し、Step1へ戻る。もし、リクエストがライトリクエストの場合は、FMD I/O処理プログラム2011は、受信したブロックデータ毎にStep3以降を実行する。
(Step3)FMD I/O処理プログラム2011は、最近データ保存したFMC2020の次のFMCから、以下の条件(D1)乃至(D3)の全てを満たすブロック[C]を検索する。
(D1)障害が発生していないこと。
(D2)未使用領域である。
(D3)イレースコマンド実施済みのセグメントに含まれる。
なお、最近データ保存したFMC2020は、例えば、FMD内部構成情報2013に、FMD1030に搭載される各FMC2020に対応した情報エリアを設け、最近データ保存したFMCに対応する情報エリアに、情報を立て(例えば“1”を書き)、その前にデータ保存したFMCに対応する情報エリアの情報を倒す(例えば“1”を“0”に変える)ことで、特定することができる。他の方式としては、FMDコントローラ2010がFMCへデータ保存をした時点で当該コントローラ内部にFMCの識別子を保存することでも特定することができる。また、次のFMCとは、例えば、前回データ保存したFMC2020の番号より1大きい番号のFMCとすることができる。
上記条件に適合するブロック[C]が当該FMCから見つからない場合は、FMD I/O処理プログラム2011は、更に次のFMCから検索を繰り返す。
(Step4)FMD I/O処理プログラム2011は、見つけたブロック[C]に対して、ライトデータ(ライトリクエストに従うライト対象のデータ)の一部またはすべてを保存する。なお、当該プログラム2011は、保存処理に付随して以下の(E1)及び(E2)のいずれかまたはすべての処理を行ってもよい。
(E1)保存前に、ライトデータからLRC(Longitudinal Redundancy Check)やCRC(Cyclic Redundancy Check)等の冗長コードを計算し、その冗長コードと共にライトデータを保存する。なお、当該冗長コードは、リードリクエスト受付時に、データ化けの有無を確認するために使うもので、データ化けが発生した場合は、当該リードリクエストでエラーを返し、FMD内部構成情報2013に、ブロック障害が発生したことを記録する。
(E2)保存後に、FMC2020から当該ブロックデータを読み込んで比較を行う。比較が失敗した場合は、FMD内部構成情報2013にブロックに障害が発生したことを記録し、再びStep3からやり直す。
(Step5)FMD I/O処理プログラム2011は、アドレス変換情報2012のブロックアドレス[D]に対応するFMC2020とブロックアドレス[C]を、新たにデータ保存したFMCのブロック[C]を示すように更新し、更新前のブロック[C]は未使用領域とする。
なお、FMD I/O処理プログラム2011は、別処理として、新たに未使用領域となったブロックをイレースコマンドで書き込み可能にする処理(イレース処理)を実行することが考えられる。しかし、イレースコマンドは、複数ブロックを集めたセグメント単位でしか実行できないため、ブロックデータ移動によってセグメント全体を未使用領域としてからイレースコマンドを実行し、完了した後に、FMD内部構成情報2013に、イレース済み情報を立てる(すなわちイレース済みセグメントであることを記録する)ことが考えられる。当該処理は、リクエスト処理と連動あるいは非同期のタイミングで繰り返し行うことができる。
なお、これまで説明してきたイレース処理やリードやライトの処理方法については、前記(A1)から(A4)の特徴に鑑み、以下の(F1)乃至(F4)の一部または全ての条件を備えていれば、ほかの処理で代替されてもよい。
(F1)フラッシュメモリチップ内の同一ブロックへの更新集中の回避。
(F2)フラッシュメモリチップ内のブロック上書き前のイレース処理の実行。
(F3)冗長コードを伴ったデータ化けの検知及び修復。
(F4)複数のフラッシュメモリチップへのアクセスを分散可能とするウェアレベリング処理(例えば、特許3507132号に記載の方法)。
<3.1.3.FMD内部構成情報通知プログラム>。
FMD内部構成情報通知プログラム2014は、FMDの内部情報をコントローラ1010等に通知するプログラムである。当該プログラム2014が提供する情報の例を、以下(G1)乃至(G8)に示す。
(G1)FMD1030のブロックサイズ[D](コントローラ1010は、当該ブロックサイズ単位でアクセスを行ってくる)。
(G2)FMDの提供ブロック数[D](コントローラ1010は、当該ブロック数とブロックサイズ[D]から提供記憶容量を知ることがある)。
(G3)FMD内部の余剰容量値(ブロック数での表現も可)。当該余剰容量値を提供する処理としては、FMD内部構成情報2013での障害が発生したセグメント数(またはブロック数)を求めて以下の計算、
余剰ブロック数=(全フラッシュメモリチップのブロック数)−(障害発生ブロック数)−((G2)に記載のブロック数)、又は未使用ブロック数(FMD使用開始時点から提供ブロック数[D]が提供容量分だけ必ず割り当てられている場合)
が行われればよい。なお、フラッシュメモリチップの一部の領域を管理用や内部冗長化等に用いている場合は、そのブロック数を考慮して(例えば減じて)計算してもよい。また、上記計算式は、FMCのブロックサイズを基準としているため、情報提供に当たってはFMDのブロックサイズに換算して提供することができる。なお、上記例ではブロック数での計算式を示したが、ブロック数に所定の値を掛けることで他の余剰容量値が得られることは言うまでも無いことである。
(G4)スレッショルド値。
(G5)(G3)の余剰ブロック数[D]を(G2)の利用可能ブロック数[D]で割った値が(G4)のスレッショルド値以下になった場合の警告。なお、この警告は、例えば、HDDが障害発生時に提供していた警告と同じ値を提供することで、HDDをエミュレーションしてもよい。
(G6)FMD1030が搭載するFMC数。または、FMD1030が搭載するFMC数から障害によって利用できないと判断したFMC数を引いた数。その他、FMD内部構成情報通知プログラム2014は、以下の場合等に、I/Oリクエストのエラーメッセージをコントローラ1010へ通知してもよい。
(G7)FMD1030へ提供される電圧または電力が不足していることや、FMD1030の内部バスやFMDコントローラ2010の破損。
(G8)FMDコントローラ2010による、FMCに保存されたデータのデータ化けの検知。
なお、FMD1030とコントローラ1010との接続媒体及び通信プロトコルはどのようなものでもよい。さらにはFMD1030へのライトリクエストはFMD1030が格納するデータを更新するリクエストであれば良く、FMD1030へのリードリクエストはFMD1030が格納するデータを参照するリクエストであれば良い。
<3.2.ストレージシステムで管理する情報>。
図5は、コントローラ1010にて保存されるFMD情報4050の例を示す図である。
FMD情報4050は、それぞれのFMD1030に対応するFMD1030の識別子毎に以下の(H1)乃至(H6)の情報を持つ。
(H1)閉塞情報。閉塞情報は、当該FMDに対して使用不可能な状況の場合に閉塞状態となり、そうではない場合に、正常状態となる。なお、使用不可能な状況の例は、ハードウェア障害や、FMD1030を抜き取った場合や、図2に示すFMD1030の場合が余剰領域が不足または枯渇した場合がある。
(H2)WWN(World Wide Name)。FMD1030にアクセスするために必要なFibreChannelの通信識別子。なお、実際のFibreChannelではWWNからポート番号(ポートIDと呼ぶことがある)を作成して、その値を使って通信を行っているため、ポート番号を登録してもよい。また、これ以外にも、コントローラ1010からFMD1030に通信するための他の識別子(例えば、IPアドレス、TCP/IPのポート番号、iSCSI Name等)で代替されてもよい。
(H3)LUN(Logical Unit Number)。本実施形態では、FMDは一つの論理ユニットしか提供していないので、FMDが提供するLUの番号を保存すればよい。当然ながらFMD1030が固定のLUNのみ応答することが明らかであれば、本エントリは省略してもよい。
(H4)FMDの型番。ストレージシステム1000を長期間継続的に利用する場合、保守作業によって複数型番を併用することも考えられるため。
(H5)FMDの提供容量とブロックサイズ[D]とフラッシュメモリパッケージ枚数。これらの情報のうちの少なくとも一つが、FMD1030のFMD内部構成情報通知プログラム2014によって、コントローラ1010に提供される。
(H6)FMDの余剰容量値。余剰容量についてはFMD1030から繰り返し情報取得をすることで繰り返し更新される。
なお、図には記述されていないが、各FMD1030についてストレージシステムに搭載した物理的な場所が判る情報が、FMD情報4050に含められてもよい。
図6は、PG構成情報4060の例を示す図である。
PG構成情報4060は、それぞれのパリティグループ(PG)の識別子毎に、以下の(I1)乃至(I3)の情報を持つ。
(I1)閉塞情報。閉塞情報はPGが使用不可能な状況の場合に閉塞状態となり、そうではない場合に正常状態となる。なお、使用不可能な状況とは、以下に例示する事象が多重に発生した場合が考えられる。
(事象1)ハードウェア障害。
(事象2)FMD1030の抜き取り。
(事象3)図2に示すFMD1030の場合は余剰領域が少ない、又は不足することによってコントローラ1010が報告を受信。
(I2)RAIDレベル。
(I3)パリティグループに属するFMD1030の数と、そのFMDの識別子。
なお、前述のとおり、コントローラ1010は、パリティグループに対してアドレス空間を割り当てることができる。図8は、RAID1+0を例に採ったパリティグループのアドレス空間[G]と、FMD1030のアドレス空間[D]の関係を示す。図9は、RAID5を例に採った場合の同様の関係を示す。
用例の説明:
図8及び図9は、4つのFMD8200、8210、8222、8230を用いてパリティグループ8100を構成する場合を示している。ハッチングされた箱8010は、FMDのブロック[D]を示し、そのブロックアドレス[D]を8011に示している。箱8010の中の点線の枠を持つ箱8020は、コントローラ1010がパリティグループ8100に割り当てたブロック[G]で、コントローラ1010が割り当てるブロックアドレス[G]を8021に示す。なお、ブロック8020のブロックサイズ[G]は、SCSIの規格が提供しうる最低のブロックサイズである512バイトとすることが考えられるが、これ以外のサイズでもよい。
RAID1+0:
RAID1+0の場合、ミラーリングのために、コントローラ1010は、二つのFMDで同じアドレス空間を割り当て(例では、FMD8200と8210、FMD8220と8230)、その後ストライピングする。ストライピングの場合、コントローラ1010は、定められたブロック数(以後、ストライピング用連続ブロック数と呼ぶ)毎に、続きのアドレス空間[G]を別なFMDへ切り替える(例では、ブロック[G]では4つ、ブロック[D]では2つ)。なお、ストライプサイズ(パリティグループ内の全FMDからデータを読み書きすることで行うI/Oサイズ)は、以下の式で算出することができる。
ストライプサイズ=(ストライピング用連続ブロック数[G])×(FMDの数/2)×(ブロックサイズ[G])。
なお、RAID1の場合は、RAID1+0のストライピングを省略したものであるため、説明は省略する。
RAID5:
RAID5の場合も、コントローラ1010は、ストライピング用連続ブロック数を単位にストライピング処理を行ったり、パリティ保存領域を割り当てる(例では、アドレスP0からP3が、アドレス0から11までのパリティを保存する領域)。RAID5の場合のストライプサイズは、以下の式で算出することができる。
ストライプサイズ=(ストライピング用連続ブロック数[G])×(FMD数−1)×(ブロックサイズ[G])。
図7は、内部LU構成情報4070の例を示す図である。
内部LU構成情報4070は、それぞれの内部LUの識別子毎に以下の(J1)乃至(J4)情報を持つ。なお、ホスト1100に記憶領域として提供されるLUは、この内部LUを元にパスを定義することによって、外部に提供される。なお、ここで言う「外部」とは、ホスト1100に代えて又は加えて、他種の装置、例えば、仮想化スイッチや別のストレージシステムであっても良い。換言すれば、該他種の装置が、ホスト1100に代わって又は加えて、ストレージシステムにI/Oリクエストを発行することができる。
(J1)閉塞情報。閉塞情報は当該内部LUに対して使用不可能な状況(例えば、パリティグループが閉塞している場合や、当該内部LUに領域が割り当てられていない場合)の場合に閉塞状態となり、そうではない場合に正常状態となる。
(J2)PG識別子と開始アドレス[G]と終了アドレス[G]。当該内部LUの記憶領域として用いるパリティグループと、パリティグループ内の開始ブロックアドレス[G]と終了ブロックアドレス[G]を示す。なお、本エントリは、コントローラ1010で管理されている。このため、当該ブロックアドレスは、コントローラにとってのブロックで管理されるが、その場合も、開始アドレス[G]と終了アドレス[G]はFMD1030のブロックサイズやストライプサイズを考慮した値とすることで、複数の内部LUが同じストライピングやFMDのブロック[D]を用いないようにすることができる。なお、内部LUに対して、複数のパリティグループの記憶領域を割り当てる場合、内部LU構成情報4070のエントリは、(J2)の情報が複数個登録され、さらに、(J2)で定義した空間を結合するための情報が加えられることになる。
(J3)ブロックサイズ[L]。コントローラ1010は、例えば、512バイトをブロックサイズとしているが、ホスト1100はこれより大きいブロックサイズを希望する場合があるため、ホスト1100からのリクエストが前提とするブロックサイズが保持される。
(J4)コンペア情報。コントローラ1010がキャッシュメモリ1020へステージングする際に、パリティやミラーの情報と比較するかどうかを指定するためのオプションである。そのような比較が行われれば、信頼性を向上させることができる。
図13は、LUパス情報4080の例を示した図である。
LUパス4080情報には、例えば、以下の(K1)乃至(K3)の情報が保持される。
(K1)ホスト1100に対して提供する内部LUの識別子。
(K2)WWN(またはI/Oポート1013の識別子)。本情報は、ホスト1100に対して提供する内部LUを、どのポート1013から提供するかを示す。なお、前述したように、WWNに代えて、ポート番号など、他種の識別子で代替されてもよい。なお、以後は「ポートの識別子」と記載した場合はこれらいずれかの値であるものとする。
(K3)LUN。本情報は、ホストへ向けて提供する内部LUを、(K2)に記載のWWNのどのLUNとして提供するかを示す。
なお、LUNは限られた数しか定義できないため、ストレージシステム1000内で定義された全ての内部LUにWWNとLUNを割り当てる必要はなく、あるWWNとLUNをある時間帯はある内部LUに割り当て、別な時間は別な内部LUに割り当てることで、LUNの有効利用が行われても良い。
<3.3.パリティグループ定義>。
図14は、構成制御プログラム4030にて実行される、パリティグループの定義処理について示したフローである。以下に個々のステップの説明を記す。
(Step14001)構成制御プログラム4030は、必要に応じて、管理サーバ1200へ、FMD情報4050の一部または全ての情報を提供する。なお、管理サーバ1200は、以下の(方法1)及び(方法2)のいずれかまたはすべてを実施してもよい。
(方法1)型番、提供容量、ブロックサイズ、余剰容量値の一つ以上を基準に構成されたグループを表示装置に表示する。
(方法2)フラッシュメモリチップ(FMC)数を基に構成されたグループを表示装置に表示する。
また、「必要に応じて」とは、例えば、管理サーバ1200が、ユーザーからの要求
にて、コントローラ内部の情報を表示する必要が出たために、情報のリクエストを送信し、構成制御プログラム4030が、そのリクエストを受信したときである。
(Step14002)構成制御プログラム4030は、管理サーバ1200から、複数のFMD1030の識別子(識別子は、物理的なストレージシステムへの搭載位置や論理的な識別情報でも代替可能である)とRAIDレベルとを含んだパリティグループ定義リクエストを受信し、そのリクエストに付随した情報(各FMD識別子及びRAIDレベル)を基に、PG構成情報4060を作成及び/又は更新する。なお、前記処理の前に以下の(チェック1)乃至(チェック5)の少なくとも一つのチェック処理(または、チェックの結果を表示する処理)を加えることで、好ましくないパリティグループ構成の定義が回避されてもよい。
(チェック1)ストレージシステム1000内のFMDを除いた各コンポーネント(コントローラ、キャッシュメモリ、バックエンドI/Oネットワーク等を指す)の一つが障害等によって閉塞した場合に、パリティグループ定義リクエストに含まれる複数のFMD1030のうち二つ以上のFMD1030にアクセス(I/Oリクエストによるリード・ライトを含む)可能か否かのチェック。アクセス不可能であれば、パリティグループのデータ復元処理が失敗することになる。このチェックは、1点閉塞でI/Oリクエストを停止させないことを目的としたチェックである。なお、RAID1やRAID1+0等ミラーリングを伴うRAIDレベルでは、ミラーリング関係にある二つのFMDの両方についてこの(チェック1)が行われても良い。
(チェック2)パリティグループ定義リクエストで指定された全てのFMD1030においてFMC数が異なるか否かのチェック。このチェックは、パリティグループ構成定義を支援するためのチェックである。
(チェック3)パリティグループ定義リクエストで指定された全てのFMD1030において型番が異なるか否かのチェック。FMD1030の型番にFMC数が関係している場合は、(チェック2)が含まれてもよい。ただし、在庫切れなどの理由により、全て同じ型番のFMD1020を指定できない場合は、本チェックによる警告を無視してパリティグループ構成を定義することも考えられる。
(チェック4)パリティグループ定義リクエストに指定された全てのFMD1030において提供容量が異なるか否かのチェック。提供容量の有効利用を図ることが目的のチェックである。ただし、在庫切れなどで全て同じ容量のFMDを指定できない場合は、本チェックによる警告を無視してパリティグループ構成を定義することも考えられる。
(チェック5)パリティグループ定義リクエストで指定された複数のFMD1030のブロックサイズ[D]が異なるか否かのチェック。FMDのブロックサイズ[D]はキャッシュメモリ1020へのステージングやデステージング時のデータ単位となるため、パリティグループ内でI/O性能の変化を軽減するためのチェックである。
また、例えば、チェック6として、構成制御プログラム4030は、一つのパリティグループについて異種の記憶デバイス(例えば、HDDとFMD1030)が指定されているか否かをチェックし、異種の記憶デバイスが指定されている場合には、管理サーバ1200に報告しても良い。
(Step14003)構成制御プログラムは、パリティグループを初期化(ミラーデータやパリティデータの作成を含む)
(Step14004)構成制御プログラム4030は、PG構成情報4060の該当するパリティグループの閉塞情報を閉塞状態から正常状態へ変更し、利用可能なことを示し、管理サーバ1200に完了メッセージを返す。
なお、FMD1030の型番によってFMC数や総記憶容量を一意に特定できる場合、ストレージシステム1000の外部(例えば、ストレージシステム1000の製造会社のコンピュータ)で、各種チェック毎に、パリティグループの定義が可能なFMDの型番リストを作成し、当該リストをコントローラ1010へダウンロードして前記チェックに用いてもよい。
<3.4.内部LU定義>。
図15は、構成制御プログラム4030にて実行される、内部LUの定義処理について示したフローである。以下に個々のステップの説明を記す。
(Step15001)構成制御プログラム4030は、必要に応じて、管理サーバ1200からのリクエストに応じて、PG構成情報4060の一部または全てを管理サーバへ送信する。
(Step15002)構成制御プログラム4030は、管理サーバ1200から、以下に例示する(引数1)乃至(引数5)の一部または全ての情報を含んだ内部LU定義リクエストを受信したら、当該リクエストに付随した情報を基に、内部LU構成情報4070を作成及び/又は更新する。
(引数1)パリティグループの識別子。
(引数2)パリティグループの開始アドレス[G]。
(引数3)内部LUの記憶容量またはパリティグループの終了アドレス[G]。
(引数4)内部LUのブロックサイズ[L]。
(引数5)内部LUのコンペア情報。
なお、(引数3)については、終了アドレスが当該パリティグループのストライピングサイズの整数倍となることで、一つのパリティデータが複数の内部LUで共有することを回避するチェックを実施してもよい。また、(引数2)と(引数3)は、パリティグループのブロックサイズで指定するとしたが、ストライピングサイズを単位として当該引数の値を受け取ってもよい。同様に、最終的にパリティグループの開始アドレス[G]と終了アドレス[G]を求められるのであれば、他の形式で引数を受け取ってもよい。
(Step15003)構成制御プログラム4030は、必要に応じて、内部LUの初期化処理を行う。例えば、初期化処理の一環として内部LUの管理領域を作成してもよい。
(Step15004)構成制御プログラム4030は、内部LU構成情報4070の該当する内部LUの閉塞情報を閉塞状態から正常状態へ変更することで内部LUが利用可能であることを示し、管理サーバ1200に完了メッセージを返す。
<3.5.LUパス定義>。
図16は、構成制御プログラム4030にて実行される、LUのパス定義処理について示したフローである。以下に個々のステップの説明を記す。
(Step16001)構成制御プログラム4030は、必要に応じて、管理サーバ1200からの要求に応じて、内部LU構成情報4070とLUパス情報4080の一部または全てを管理サーバへ送信する。
(Step16002)構成制御プログラム4030は、管理サーバ1200から、内部LUの識別子とポート情報(最終的にI/Oポート1013の識別子またはWWNへ変換可能な識別情報であればこれら以外の情報でもよい)とLUNを含んだパス定義リクエストを受信する。
(Step16003)構成制御プログラム4030は、リクエストで指定されたWWNとLUNが割り当て済みでないか確認し、割り当て済みの場合はエラーで応答して終了する。未割り当ての場合はStep16004を行う。
(Step16004)構成制御プログラム4030は、リクエストに付随した情報を元に、LUパス情報4080を作成及び/又は更新し、完了メッセージを管理サーバ1200へ返す。
なお、ホスト1100からのアクセスパス多重化のために、内部LUに対して複数のパス定義を行っても良い。また、定義されたパスの解除処理の場合は、管理サーバ1200から、内部LUの識別子か、或いは、WWNとLUNの組み合わせを用いて、LUパス情報の対応エントリを見つけ、当該エントリを削除することによって、パス設定を解除してもよい。また、LUパス定義リクエストでWWNとLUNを指定する代わりに、構成制御プログラム4030が空いているWWNとLUNを探して割り当ててもよい。
<3.6.閉塞検知>。
構成制御プログラム4030は、障害や電源断やコンポーネントの抜き去り等が原因のコンポーネント閉塞を検知する。以下に閉塞検知処理のフローを示す。
(L1)構成制御プログラム4030は、各コンポーネントの状態を取得する。なお、コンポーネントがコントローラやFMDの場合は当該コンポーネント上で動作するプログラムの状態やログでもよい。また、当該プログラム4030は、問い合わせの代替として各コンポーネントからの報告を本処理に用いてもよい。
(L2)構成制御プログラム4030は、取得した状態をチェックすることで、各コンポーネント閉塞の有無を判断し、閉塞が無い場合は(L1)に戻る。
(L3)(L2)にて閉塞と判断した場合、構成制御プログラム4030は、閉塞と判断したコンポーネントの識別子を管理サーバ1200へ転送し、ユーザーに表示する。
なお、FMD1030の閉塞検知とその後のダイナミックスペアリングについては後述する。また、FMD1030以外のコンポーネント閉塞によって一部のFMD1030に対してアクセス不可能な状況が発生することもあるが、その場合も後述するような処理(特にダイナミックスペアリング)を行ってもよい。
<3.6.1.FMD1030の閉塞検知>。
以下に、構成制御プログラム4030にて実行される、FMD1030の閉塞検知処理のフローについて記す。
(M1)FMD1030は、構成制御プログラムからのリクエストに応じて、(G1)乃至(G8)の少なくともひとつの情報を返すか、あるいは能動的にこれらの情報を送信する。
(M2)構成制御プログラム4030は、受け取った情報をチェックし、FMDの閉塞の有無を判断する。判断方法の一例を以下に挙げる。
(判断方法1)I/Oリクエストエラーに代表される処理失敗の情報の場合は、規定回数(1回以上を含む)受け取ったことで判断する。
(判断方法2)3.1.3章に記載した余剰容量値に関連する情報(3.1.3章に記載の(G3)余剰ブロック数を(G2)の提供ブロック数で割った値が考えられる)の場合は、定められたスレッショルド値(本情報はコントローラ1020内部で保持されており、管理サーバ1200経由でコントローラ1020へ設定されてもよい)を下回ったことで判断する。
(判断方法3)3.1.3章に記載した(G6)FMC数の場合は、出荷時や仕様書の数から一定の割合以下となったことで判断する。
なお、FMDの実装のバリエーションとして、上記判断方法をFMD1030内部で実現し、該当した場合は、コントローラ1010に、HDDと同様のデバイス障害として報告を行うことが考えられる。その場合は、コントローラ1010は、当該障害を(判断方法1)によって判断すればよい。
(M3)構成制御プログラム4030は、FMD構成情報4050の閉塞と判断したFMDの閉塞情報を閉塞状態に変更し、FMDが利用不可能であることを示す。
(M4)構成制御プログラム4030は、PG構成情報とFMD構成情報を参照することで、閉塞したFMD1030によってパリティグループがリード・ライトリクエストを処理できない状態かどうかを判断し、処理不可能な場合は該当するパリティグループの閉塞情報を閉塞状態(すなわち利用不可能)に変更する。なお、前記判断方法は、RAID1+0などのミラーリングを伴う冗長化方式の場合は、データを二重化しているペアとなるFMDが両方とも閉塞状態かどうかで判断し、RAID5の場合はパリティグループ中の閉塞状態のFMDの数が2以上かどうかで判断する。
(M5)構成制御プログラム4030は、内部LU構成情報を参照することで、閉塞したパリティグループ上にデータが保存された内部LUの閉塞情報を閉塞状態(すなわち利用不可能)とする。
(M6)構成制御プログラム4030は、必要に応じて、閉塞したFMD1030の識別情報を管理サーバ1300に通知する。この通知には閉塞の理由となる情報(例えばどの判断方法で閉塞と判断したのか)を付随させてもよい。また、FMD1030の閉塞によって閉塞したパリティグループや内部LUやLUが存在する場合は、これらの識別情報を管理サーバ1300に通知してもよい。なお、本通知を受け取った管理サーバ1300は障害情報としてユーザーにこれらの情報を表示することが考えられる。
なお、以後の説明では、閉塞状態のFMDを含み、かつ、I/Oリクエストが可能なパリティグループの状態を、「縮退状態」と呼ぶ。この縮退状態のパリティグループに対するI/Oリクエストでは、データ復元処理を行って当該リクエストに応答する。なお、データ復元処理とは、冗長データから閉塞したFMDのデータを復元することを指す。ミラーリングの場合は、閉塞したFMDと同じデータが別のFMDに存在するため、当該処理は当該別のFMDのデータを使用する。パリティ方式の場合は、本処理は閉塞せずに残ったデータとパリティから閉塞したFMDのデータを計算することで復元する。
<3.6.2.FMDのダイナミックスペアリング>。
以下に、構成制御プログラム4030による、ダイナミックスペアリング処理について説明する。
(N1)構成制御プログラム4030は、障害検知処理でFMD閉塞を検知するまで待つ。
(N2)構成制御プログラム4030は、N1で閉塞と検知したFMDが関連する(例えばそのFMDが含まれる)パリティグループを、PG構成情報4060を参照することにより、見つける。
(N3)構成制御プログラム4030は、見つけたパリティグループについて、データ復元処理が実行可能であるかどうか判断し、実行不可能な場合はあきらめる(例えば終了する)。実行可能な場合は、N4以降を行う。
(N4)構成制御プログラム4030は、パリティグループに適合する代替FMDを検索する。なお、検索条件としては、パリティグループ定義で提供した情報やチェック項目と類似な以下に例示の条件が考えられる。
(条件1)FMDのデータ容量や型番やFMC数やブロックサイズ[D]。
(条件2)FMD以外のコンポーネント一点閉塞でFMD1030の二重閉塞とならないFMD1030の選択(パリティグループ閉塞をできるだけ回避するため)。
(条件3)パリティグループに残存するFMD1030の余剰容量率と代替FMD1030の余剰容量率。例えば、残存するFMD1030の余剰容量率よりも多い余剰容量率の代替FMD1030を選ぶことでダイナミックスペアリング後の余剰領域不足によるパリティグループ閉塞を回避することが考えられる。一方で、アーカイブ用途向きの論理ユニットしか格納されない場合は、代替FMDとして余剰領域が大きすぎるFMDを用いることはコスト視点からは望ましくないため、残存するFMD1030の余剰容量率から定められた範囲内の余剰容量率を持つFMDを代替FMDとすることも考えられる。
(条件4)いずれかのパリティグループに属さないFMD。
(N5)構成制御プログラム4030は、データ復元処理で代替FMDへデータを復元する(以後復元コピー処理と呼ぶ)。より具体的な復元コピー処理の内容を以下に例示する。
(N5−1)構成制御プログラム4030は、コピーの完了位置を示す情報(コピー完了位置情報)をFMDの先頭アドレスへ初期設定する。
(N5−2)構成制御プログラム4030は、コピー完了位置情報から、複数ブロック分だけ閉塞FMDのデータを復元(3.6.1章に記載の処理方法で)し、代替FMDへ書き込む。
(N5−3)構成制御プログラム4030は、コピー完了位置情報を書き込み済みブロック数分だけ進める。
(N5−4)コピー完了位置情報がFMDの終了アドレスに進むまで、構成制御プログラム4030は、(N5−1)から(N5−3)を繰り返す。
(N6)構成制御プログラム4030は、代替FMDを新たにパリティグループに登録し、閉塞FMDを除外する。
なお、FMDの閉塞理由が余剰領域不足の場合は、FMDへ保存されているデータに対するリードリクエストが可能であるため、(N5−2)のデータ復元処理の代替として、パリティデータやミラーデータを用いずに、閉塞FMDからデータを読み込んでも良い。
上記復元コピー中の閉塞FMDに対するI/Oリクエストについては、コピー完了位置情報以前のブロック[D]について代替FMDにデータが復元されているため、コントローラ1010は、そのデータをホスト1100へ返したり(リードの場合)、代替FMDに対してライトデータを保存してもよい(ライトの場合)。なお、コピー完了位置情報以降のブロックアドレスに対しては、コントローラ1010は、以下の処理を実行することができる。
(O1)リードリクエストを受けた場合でFMDの閉塞理由が余剰領域不足の場合は、データ復元処理として、閉塞FMDからキャッシュメモリにデータをステージングした後に、そのデータをホスト1100へ返す
(O2)(O1)以外でリードリクエストを受けた場合、データ復元処理で閉塞したFMD1030に保存されたデータをキャッシュメモリ1020へ復元し、そのデータをホスト1100へ返す
(O3)ライトリクエストを受けた場合、冗長データ(パリティデータやミラーデータ)を更新し、これ以降のリードリクエストやライトリクエストで本リクエストのライトデータを復元できるようにする。
<3.7.ライト処理>。
図17は、I/O処理プログラム4010がライトリクエストを受信した場合に行われる処理のフローである。また、図10は、図8のRAID1+0のパリティグループのFMD8200とFMD8210とキャッシュ2枚(CM−AとCM−B)上のデータの流れや変化の例を示す概要図である。さらに、図11と図12は、図9のRAID1パリティグループのFMD9200とFMD9230とキャッシュ2枚(CM−AとCM−B)上のデータの流れや変化の例を示す概要図である。
<3.7.1.概要図の前提と用例>。
図10から12は、ホスト1100に対して、ブロックサイズ[L]を512B(Byte)で公開しており、かつ、パリティグループの先頭から領域を割り当てられた内部LUについて、ブロック'3'にライトリクエストが到着した場合の、キャッシュメモリとFMDと間のデータの流れとデータの変化を示した図である。また、キャッシュメモリとFMD上の数字つきの箱は、パリティグループにコントローラ1010が割り当てたブロック[G]と、当該ブロック[G]のアドレスを指す。本例では、FMDブロックサイズ[D]は、ブロックサイズ[G]の二倍である。
なお、キャッシュメモリ1020の領域管理では、キャッシュメモリ上のデータ領域とFMD上のデータ領域を対応付ける情報を小さくするために、FMDの連続した複数ブロック[D](例で4ブロック[G]かつ、2ブロック[D])で、キャッシュ上の連続アドレス領域(キャッシュセグメント)を割り当てるようにしている。そのため、例えば、コントローラ1010は、キャッシュセグメント毎に、以下に例示する(Q1)乃至(Q6)の属性情報を管理している。
(Q1)キャッシュセグメント上のアドレス。
(Q2)パリティグループの識別子とパリティグループ上のブロックアドレス[G]。
(Q3)キャッシュセグメント内のブロック[G]毎のステージング情報。概要図ではキャッシュ上のブロック[G]の下に黒帯がある場合は当該データがステージング済みを意味している。
(Q4)キャッシュセグメント内のブロック[G]毎のダーティ(更新済みだが、FMDへは未反映であること)情報。概要図では、キャッシュブロック内のブロック[G]の上に黒帯がある場合はダーティを意味している。
(Q5)旧データ情報。
(6)パリティ更新要情報。図11と12の数字なしのPと書かれた箱の上に黒帯がある場合は、パリティ更新が必要なことを意味し、数字なしのPと書かれた箱のみの場合は更新不要を意味する。
また、両概要図とも、リード用にブロック[G]の'0'と'1'はステージング済みの状態から説明を始める。
<3.7.2.ライトリクエスト処理フロー>。
図17のフローと図10から12までの例を用いて、I/O処理プログラム4010がライトリクエストを受信した時の処理内容を説明する。
(Step17001)I/O処理プログラム4010は、コントローラ1010が受け取ったライトリクエストからWWNとLUNと開始ブロックアドレス[L]と、ブロック長[L]とライトデータを取得する。繰り返すが、予めコントローラ1010は当該LUNのブロックサイズ[L]として対応する内部LUの内部LU構成情報4070のブロックサイズを報告しており、ライトリクエストの開始ブロックアドレスとブロック長は当該ブロックサイズ[L]を前提としている。なお、実際のライトリクエストにはWWNのかわりにPortIDが含まれるため、PortIDをWWNに変換する必要がある。
(Step17002)I/O処理プログラム4010は、WWNとLUNとLUパス情報から内部LU番号を求める。なお、ネットワークとしてFibreChannel以外を用いている場合は、ライトリクエストから内部LU番号を求めるほかの方法によってStep17001とStep17002を代替してもよい。例えば、iSCSIの場合は、IPアドレスとPort番号の組み合わせや、iSCSIターゲット名がWWNの代わりとなり、LUNと組み合わせることで内部LU番号を求めることができる。
(Step17003)I/O処理プログラム4010は、内部LU構成情報4070を用いて、リクエストの開始ブロックアドレス[L]とブロック長[L]を、パリティグループの識別子と開始ブロックアドレス[G]と終了ブロックアドレス[G]へ変換する。変換計算は、以下の式で行う。
・開始ブロックアドレス[G] =(ブロックサイズ[L]*開始ブロックアドレス[L]/ブロックサイズ[G])+(内部LU構成情報の開始ブロックアドレス[G])
・終了ブロックアドレス[G] =(ブロックサイズ[L]*ブロック長[L]/ブロックサイズ[G])+開始ブロックアドレス[G]。
(Step17005)I/O処理プログラム4010は、キャッシュ上にライトデータを保存する。この時、キャッシュ上に必要なブロック[G]のデータがステージング済の場合は、キャッシュ上のデータをライトデータで更新する。しかし、ステージング済みのブロックデータが存在する場合でも、本実施形態では、パリティ更新要情報がNo(更新済み)で、保存対象ブロックのダーティ情報が立っている場合(すなわち、前回のパリティ更新で元としたライトデータ)は、今回のパリティ更新で旧データとして用いる必要があるため、別キャッシュセグメントを確保してライトデータを保存する。キャッシュ上にライトデータがない場合も、必要に応じて、キャッシュセグメントを確保してライトデータを保存する。
なお、ライトデータは二枚のキャッシュ両方に保存することで、キャッシュが1枚閉塞してもライトデータを保持できるようにする。また保存と共に、I/O処理プログラム4010は、保存したブロックのステージング情報とダーティ情報とパリティ更新要情報を立てて、ライトリクエストに対する応答をホスト1100へ返す。図10と図11の(1)では、ブロック[G]'3'のライトデータがキャッシュ2枚にライトされ、ステージング情報とダーティ情報が立っている。
以上が、I/O処理プログラム4010のフローである。
<3.7.2.パリティ作成からデステージングまで>。
キャッシュ制御プログラム4020が繰り返し実行するパリティ作成とデステージングの手順を図18に示す。
(Step18001)キャッシュ制御プログラム4020は、LRU(Least Recently Used)等のキャッシュアルゴリズムによってパリティ作成またはデステージ対象のキャッシュセグメントを選択する。図10〜12(以下、「概要図」と記載することもある)ではブロック'2'と'3'が選択された。
(Step18002)キャッシュ制御プログラム4020は、デステージ対象のキャッシュセグメントのパリティグループIDやブロックアドレスを元にした計算式で、2枚のキャッシュのどちらに保存されたライトデータを、パリティ生成やデステージングに用いるか決定する。概要図ではCM−A上のライトデータを用いることにした。
(Step18003)キャッシュ制御プログラム4020は、デステージング対象キャッシュセグメントを、デステージング先となるFMD1030のブロックサイズ[D]に合わせて、セグメント中の未ステージ済みブロック[G]を埋める。これは、キャッシュメモリに対して、キャッシュメモリのブロック単位でデータを読み書きできるようにするために行われる。
具体的には、キャッシュセグメント中の複数ブロック[G]を先頭からFMDブロックサイズ[D]毎に区切り(つまり、デステージング単位に区切り)、その区切り毎にダーティなブロック[G]を持ち、かつ部分的未ステージング状態のブロック[G]がある場合は、FMD1030から未ステージ状態のブロック[G]に対応するデータをコピーする。この時のコピーは、最初に、キャッシュ上の別領域にダーティなブロック[G](例えばブロック‘2’)と未ステージング状態のブロック[G](例えばブロック‘3’)を含むブロック[D]をステージングし、そこから未ステージング状態のブロック[G]だけコピーする。概要図(例えば図10(1))ではブロック‘3’が未ステージング状態である。
(Step18004)キャッシュ制御プログラム4020は、デステージング対象キャッシュセグメントについて、パリティ生成が必要な場合はStep18005を行い、ミラーリングが必要な場合はStep18011を行う。
(Step18005)キャッシュ制御プログラム4020は、パリティ生成のためにキャッシュセグメントのデステージング先FMD1030に保存された旧データを、デステージング対象のキャッシュセグメントとは別なキャッシュセグメントにステージングする。なお、このステージングはStep18003で行ったFMDブロックサイズ化でステージングしたキャッシュセグメントと同じ領域を用いてもよいし、予めStep18003で両方に必要なデータをステージングしておいてもよい(概要図の図11の(2)では、両方に必要なデータをまとめてステージングした)。また、キャッシュ上に前回のパリティ更新で用いたデータがある場合は、ステージングを省略することができる。
(Step18006)キャッシュ制御プログラム4020は、デステージング対象のキャッシュセグメントに対応するパリティが保存されたブロック[L]を、FMD1020からキャッシュセグメントへステージングする(概要図の図11の(2)では、CM−Bへブロック‘P2’と‘P3’をステージングする)。なお、キャッシュ上に前回計算したパリティが存在する場合は、ステージングを省略することができる。
(Step18007)キャッシュ制御プログラム4020は、デステージング対象のキャッシュセグメント上のライトデータと、Step18005でステージングした旧データと、Step18006でステージングした現在のパリティとを用いて、新たなパリティを計算し、それを、現在のパリティとは別なキャッシュセグメントへダーティ情報を立てて保存する。当該プログラム4020は、また、デステージ対象キャッシュセグメントのパリティ更新要情報を下げて、Step18005とStep18006でステージングした旧データとパリティのキャッシュセグメントを破棄する。概要図の図11の(3)で、ブロック‘2’のパリティ‘P2’がダーティとなっている。
(Step18008)キャッシュ制御プログラム4020は、Step18007で計算した新たなパリティのキャッシュセグメントをデステージし、ダーティ情報を下げる。概要図の図12の(4)では、パリティ‘2’と‘P3’をデステージングしている。
(Step18009)キャッシュ制御プログラム4020は、デステージング対象キャッシュセグメントをデステージし、ダーティ情報を下げる。デステージングが完了したら片方のキャッシュ上のライトデータを破棄してデステージングが完了する。なお、本ステップとStep18008の順序は問わない。
(Step18011)キャッシュ制御プログラムは、Step18003で未ステージング済みブロックを埋めるために別キャッシュセグメントへステージングしたデータを破棄する。そして、キャッシュ制御プログラム4020は、デステージング対象キャッシュセグメントのライトデータをミラー関係の二つのFMD1030へデステージングする。当該プログラムは、両方とも完了するまで待った後、キャッシュの片方のライトデータを破棄する。概要図の図10の(3)は、CM−Aからブロック‘2’と‘3’がデステージされたことを示す。
以上がパリティ生成処理である。
次に前記処理で用いられていたデステージングの処理内容を示す。
(R1)キャッシュ制御プログラム4020は、キャッシュセグメントのパリティグループのブロックアドレス[G]を、ストライピングの計算とブロックサイズの変換によって、FMDの識別子とFMDのブロックアドレス[D]に変換する。
(R2)キャッシュ制御プログラム4020は、(R1)で求めたブロックアドレス[D]で、(R1)で求めたFMDに対して、ライトリクエストを送信する。
リードについても同様に、キャッシュ制御プログラム4020は、パリティグループのブロックアドレス[G]をFMDの識別子とFMDのブロックアドレス[D]に変換して、リードリクエストをFMD1030に対して送信する。
また、信頼性向上のため、キャッシュ制御プログラム4020は、FMD1030へのデステージング時に、LRCやCRC等の冗長コードをライトデータに付加し、ステージング時にチェックしてもよい。さらに、キャッシュ制御プログラム4020は、デステージング後に、FMDに保存されたデータとキャッシュ上のデータを比較して、データが確実に保存されたことを確認してもよい。いずれの場合も、チェックで異常を検出した場合、キャッシュ制御プログラム4020は、FMD閉塞検知処理やデータ復元処理を行うことができる。
さらに、内部LU構成情報4070のデータコンペア情報がYesとなっている内部LUに対応するステージングについては、信頼性を向上させるために、キャッシュ制御プログラム4020は、RAID1であれば、本来のデータをFMD1030からキャッシュメモリ1020へコピーするとともに、ミラーリングペアの別FMDからもデータを読み出して比較する。同様に、RAID5の場合は、キャッシュ制御プログラム4020は、本来のデータをFMD1030からキャッシュメモリ1020へコピーするとともに、他のFMDからパリティデータと他のデータを用いて回復させたデータと当該FMDから読み出したデータを比較する。HDDの場合、回復処理はヘッドの移動や回転待ちを伴うアクセスパターンが増加する場合もあり、回復処理で行うI/Oリクエスト数の増加以上の性能低下も考慮が必要であるが、FMDの場合はこうした性能低下の考慮は不要である。
<3.8.リード処理>。
図19は、I/O処理プログラム4010がリードリクエストを受信した場合に行われる処理の流れの一例を示す。以下、各ステップを説明する。
(Step19001)I/O処理プログラム4010は、コントローラ1010が受け取ったリードリクエストから、WWN、LUN、開始ブロックアドレス、ブロック長及びライトデータを取得する。
(Step19002)I/O処理プログラム4010は、WWNとLUNを、LUパス情報に基づいて、内部LUNに変換する。なお、ライト処理と同様の方法でStep19001とStep19002を代替してもよい。
(Step19003)I/O処理プログラム4010は、内部LU構成情報4070を用いて、リードリクエストの開始アドレスとブロック長(ホスト1100へ予め通知したブロックサイズをベースとした開始ブロックアドレスとブロック長)を、コントローラ1010内部で管理するブロック長をベースとした値へ、変換する。
(Step19004)I/O処理プログラム4010は、さらに、内部LU構成情報4070を用いて、内部LUNと変換した開始ブロックアドレスとブロック長とを、パリティグループIDとパリティグループ上での開始ブロックアドレスと終了ブロックアドレスへ変換する。変換のための計算では、内部LU構成情報4070の開始アドレスに開始ブロックアドレスを加えた値をパリティグループ上での開始ブロックアドレスとし、パリティグループ上での開始ブロックアドレスにブロック長を加えた値をパリティグループ上での終了ブロックアドレスとする。
(Step19005)I/O処理プログラム4010は、リードリクエストで要求されたデータがキャッシュに存在するか確認し、存在しない場合はキャッシュセグメントを確保し、ステージング処理でキャッシュにデータをコピーする。
(Step19006)I/O処理プログラム4010は、キャッシュ上のデータをホスト1100へ転送する。
以上が、I/O処理プログラム4010のフローである。なお、本手順のいずれかのステップでWWNやLUNや開始ブロックアドレスやブロック長のチェックを行っても良い。
なお、本実施形態としては、LUのブロックサイズよりFMDのブロックサイズが大きい形態で用いられることがある。なぜならば、FMDのFMDアドレス変換情報2012のエントリ量は、FMDの記憶容量をブロックサイズで割った値に関係しており、将来はエントリ量が増加することが予測され、その結果、I/Oリクエストで必要なデータを見つけるための検索時間が増えてしまい、FMDのブロックサイズを8192バイトなど大きなブロックサイズにすることが考えられるからである。一方、通常のホストでは、ブロックサイズは、現時点では512Bブロックを基本としているからでもある。ただし、これは、ほかの関係を否定するものではない。LUのブロックサイズがFMDのブロックサイズ以上であれば、キャッシュ上のステージングやデステージング処理が効率が良いと考えられるので、こうした構成を積極的に採用することもありえる。
また、ストレージシステム1000は、一つの装置から構成される必要はない。例えば、FMD1030とコントローラ1010は別の装置として存在し、バックエンドI/Oネットワークにて接続されることも考えられる。さらに、コントローラ1010に、LUに対してアクセス可能なホストを限定するアクセス制御プログラムを付加したり、LUのレプリカを同じストレージシステム1000内に作成するローカルレプリケーションプログラムや、異なるストレージシステムへミラーリングを行うリモートミラーリングプログラムを実行してもよい。より具体的には、例えば、リモートミラーリングを行うにあたってはコピー元とコピー先でFMD1030を用いたストレージシステムを採用することも考えられる。さらに、コピー元のストレージシステムは、FMD1030を用いたストレージシステム1000を採用し、コピー先のストレージシステムには、HDDを用いたストレージを採用したリモートミラーリングを実施することも考えられる。その理由としては、FMD1030とHDDの性能特性やビットコストが異なる事や、FMDに内蔵されたフラッシュメモリが電荷を操作することでデータを保持するのに対して、HDDの場合は磁気によってデータを保持するため、データ消失やデータ化けを起こしやすい環境(例えば、温度、湿度、X線、電場、及び磁場のうちの少なくとも一つを含む)が異なることを利用して耐障害性を向上させる事を挙げることができる。
さて、以下、更に説明を続ける。
<4.FMD1030の代替デバイス>。
<4.1.SFMD1030(2)>。
FMD1030には、いくつかのバリエーションが考えられる。図21に、その一例を示す。
SFMD1030(2)は、FMD1030のsubstituteデバイスである。SFMD1030(2)は、SFMDマスターコントローラ21010と、複数のI/Oポート2030(2)と、複数のFMD1030とを備える。各FMD1030は、I/Oポート2030を介してSFMDマスターコントローラ21010と接続されている。なお、I/Oポート2030は内部バスで代替してもよく、図が示すように一つのI/Oポート2030が接続された形態でも、複数のI/Oポートが接続された形態でもよい。なお、一つのSFMD1030(2)に含まれるFMD1030は、以下の項目(T1)乃至(T3)が同じであるほうが望ましいと考えられる。
(T1)記憶容量[D]。
(T2)ブロックサイズ[D]。
(T3)FMDコントローラ2010の性能。
SFMDマスターコントローラ21010は、複数のFMD1030をまとめて一つの記憶領域を提供するため、ストライピング処理を行う。すなわち、コントローラ1010が、SFMD1030(2)にアクセスする際は、FMD1030のアドレス空間[D]ではなく、新たなアドレス空間[SD]を用いる。I/Oリクエストを受信したSFMDマスターコントローラ21010は、ストライピング処理を行うことで、I/Oリクエストに含まれる開始アドレス[SD]とブロック長[SD]から、データが保存されているFMD1030とその開始アドレス[D]とブロック長[D]を得て、I/Oリクエストを送信する。なお、SFMD1030(2)に対するI/Oリクエストのブロック長[SD]が長い場合は、データ受信又はデータ送信の途中で、前記変換とFMD1030に対するI/Oリクエストの送信が行われることは、FMD1030の場合と同じである。
好ましくは、SFMD1030(2)のブロックサイズ[SD]は、FMD1010のブロックサイズ[D]と等しいと考えられる。また、SFMD1030(2)のブロック数[SD](または記憶容量 [SD])は、内蔵するFMD1030のブロック数[D](または記憶容量[D])の総数に等しいが、制御目的にFMD1030のブロック[D]の一部を用いる場合は、総数から当該ブロック分を差し引いた数でもよい。
SFMDマスターコントローラ21010は、以下の(U1)乃至(U4)の情報を、コントローラ1010へ送信することができる。
(U1)ブロック数[SD]。
(U2)ブロックサイズ[SD]。
(U3)余剰ブロック数[SD]。
(U4)FMC2020の数、及び/又は、FMD1030の数。
なお、SFMDマスターコントローラ21010は、上記情報に加えて、FMD内部構成情報通知プログラム2013が提供する情報の一部または全てをコントローラ1010へ送信してもよい。
ところで、SFMD1030(2)は、FMD1030と異なり、或るFMD1030の余剰ブロック数がゼロになった時点で、たとえ他のFMD1030の余剰ブロック数がゼロ以上であっても、ライトリクエストは失敗する。そのため、(U3)の余剰ブロック数[SD]の値は、各FMD1030の余剰ブロック数の最小値(または最小値にFMD1030の数を掛けた数)を報告することが考えられる。
SFMD1030(2)は、FMD1030と比較して、以下に示す欠点と利点があると考えられる。
(欠点)FMCの利用効率が悪い。アクセスパターンによっては、特定のFMD1030にライトリクエストが集中するため、コンポーネントが閉塞になるまでの時間が短い。
(利点)ボトルネック箇所が少ない。FMDコントローラ2010で行われる余剰領域管理やアドレス変換は、FMDアドレス変換情報2012の検索を必要とする負荷が低くない処理であるため、FMD1030に内蔵するFMCの数を増加させても、FMDコントローラ21010のボトルネック化によって、性能が向上しない場合がある。これを回避するため、ブロックサイズ[D]を大きくすることで、FMD1030のアドレス変換時に検索するFMDアドレス変換情報2012の大きさを小さくして性能向上する方法も考えられる。しかし、大きすぎるブロックサイズは、ランダムアクセスが多い環境ではアクセスに直接関係ないデータまでステージングやデステージングをしてしまうため、性能が劣化する。SFMD1030(2)の場合は、アドレス変換は、複数のFMDコントローラ2010にて分散して処理されるため、ボトルネックとなりにくく、かつ大容量のFMCを多く搭載してもブロックサイズを大きくする必要がない。
なお、上記欠点を解決するため、コントローラ1010で行われる以下の一つ以上の処理をSFMDマスターコントローラ21010でも実行することも考えられる。
(処理1)ダイナミックスペアリング。SFMD1030(2)に内蔵するFMD1030の一部をスペア用途として扱い、稼働中のFMD1030の余剰ブロック数が少なくなった場合に、ダイナミックスペアリングを行う。冗長領域を割り当てるためにFMCの利用効率は下がるが、特定のFMD1030にアクセスが集中することによるコンポーネント閉塞までの時間は長くなる。
(処理2)ミラーリングやパリティ等の冗長データの付加。
なお、上記の処理の有無について、SFMDマスターコントローラ21010がコントローラ1010からの要求に応じて情報を送信することが考えられる。また、SFMD1030(2)の型番によって有無がわかるのであれば、当該情報をコントローラ1010が取得することによって前記情報取得に代えてもよい。
<4.2.SFMDとFMDの混在ストレージシステム>。
SFMD1030(2)とFMD1030は、コントローラ1010から同じ方法でリードリクエストやライトリクエストを送信できる。そのため、ストレージシステム1000は、複数のSFMD1030(2)を搭載することができ、こうした構成でも、これまで説明してきた処理が実行可能である。さらに、ストレージシステム1000は、SFMD1030(2)とFMD1030の両方を搭載することも可能である。こうした構成は、FMD1030におけるFMC数の違いと同様の理由にて発生しうる。この場合、SFMD1030(2)とFMD1030では、内部構造に起因するI/O特性の差や閉塞までの時間(耐久性)が異なるため、パリティグループにSFMD1030(2)とFMD1030が混在しないような構成をとることが考えられる。これを実現するため、コントローラ1010は、両デバイスの内部構造に関連する情報を取得し、その情報を、パリティグループ構成定義時にユーザーに提供したり、チェック処理に用いたりすることが考えられる。また、ユーザーがLUを利用するときに、当該LUが、SFMD1030(2)かFMD1030のいずれで構成されているのかを表示することで、ストレージ階層を意識したシステム活用を促進することも考えられる。しかし、デバイスが不足している場合等の理由が考えられるため、パリティグループに両デバイスが混在してもよい。
さらに、SFMD1030(2)は、ダイナミックスペアリングや冗長データの有無によって部品点数が増加するかわりに耐久性を向上させることができるため、前記と同様に、内部構造(ダイナミックスペアリングや冗長データの有無を含める)をコントローラ1010が取得し、SFMD1030(2)の中でもさらに、ダイナミックスペアリング有りのデバイスだけでパリティグループを構成したり、冗長データ有りのデバイスだけでパリティグループを構成したりすることも考えられる。
<5.FMD1030の代替デバイスその2>。
<5.1.複数記憶領域提供FMD>。
図22に示す、複数記憶領域提供FMD1030(3)は、内蔵する複数のFMD1030をコントローラ1010へ提供する。提供方式の一例としては、I/Oポート2030(3)が持つWWNに属するLUとして各FMD1030を提供する方法が考えられる。コンバーター22010は、例えば、コントローラ1010から指定されたFMD1030へアクセスリクエストを振り分けたり、又はFMD1030のポート2030がポート2030(2)と異なる転送媒体である場合に変換処理を行ったりする。一方、コントローラ1010は、複数記憶領域提供FMD1030(3)に内蔵された複数のFMD1030を認識し、障害発生の有無は当該FMD1030を単位として管理する。なお、保守員は複数記憶領域提供FMD1030(3)単位で保守交換を行うことができる。なお、複数記憶領域提供FMD1030(3)はコンバータ22010を介さず、各FMD1030毎にコントローラ1010と接続するポートを有しても良い。
<5.2.複数記憶領域提供FMD1030(3)を用いたパリティグループ構成>。
複数記憶領域提供FMD1030(3)を用いてパリティグループを構成する場合、コントローラ1010は、或る複数記憶領域提供FMD1030(3)から複数のFMD1030を選択してパリティグループを構成しないようにする必要がある。なぜならば、物理的な障害の単位、電源断の単位、及び、デバイスの抜き差しを行う単位のうちの少なくとの一つの単位は、複数記憶領域提供FMD1030(3)であるため、同一デバイスから複数のFMD1030を用いていた状況でデバイス障害が発生すると、パリティグループのデータ復元処理が不可能になってしまうからである。
上記パリティグループ構成を支援するために、コントローラ1010は、パリティグループ構成を定義する場合に以下の二つの方法を用いることが考えられる。
(方法1)パリティグループ構成定義時、コントローラ1010は、例えば、GUI(Graphical User Interface)により、複数記憶領域提供FMD1030(3)とそこに内蔵されているFMD1030の対応関係を表示し、ユーザーから、複数のFMD1030の指定を受け付ける。その指定を受けたコントローラ1010は、指定された複数のFMD1030の一部が同じ複数記憶領域提供FMD1030(3)に属していないかチェックを行う。
(方法2)パリティグループ構成定義時、コントローラ1010は、例えば、GUIにより、マルチLU−FMD1030(3)の一覧を表示し、ユーザーから、複数のマルチLU−FMD1030(3)の指定を受け付ける。指定を受けたコントローラ1010は、指定された複数の複数記憶領域提供FMD1030(3)が、それぞれ互いに、搭載されたFMD1030の数と記憶容量が等しいことをチェックする。その後、コントローラ1010は、図23に例示するように、各マルチLU−FMD1030(3)のFMD1030により構成するサブパリティグループを定義し、さらに、マルチLU−FMD1030(3)内の複数のサブパリティグループを、Concatenate等で結合した領域をパリティグループとして用いたり、ユーザーに提供したりする。なお、"Concatenate"について説明すると、例えば、LU1にLU2をConcatenateするとは、LU1のアドレス空間の最後尾にLU2のアドレス空間の先頭を結合することである。
<5.2.ダイナミックスペアリングと閉塞検知>。
複数記憶領域提供FMD1030(3)を用いる場合も、SFMD1030(2)と同様に、特定のFMD1030にライトリクエストが集中することがある。そのため、コントローラ1010は、各複数記憶領域提供FMD1030(3)内の各FMDの余剰容量値を把握し、いずれかのFMD1030に対して余剰ブロック数が少なくなってきた時点で、当該FMD1030を他の複数記憶領域提供FMD1030(3)に内蔵されたFMD1030へダイナミックスペアリングを行う。あるいは、各複数記憶領域提供FMD1030(3)利用時にあらかじめスペアリング用のFMD1030を確保しておき、或るFMD1030の余剰ブロック数が少なくなってきた時点で、当該FMD1030から、当該FMD1030と同じ複数記憶領域提供FMD1030(3)に内蔵されるスペアリング用のFMD1030へダイナミックスペアリングを行う方法も考えられる。あるいは、コントローラ1010が、余剰ブロック数が少なくなった複数記憶領域提供FMD1030(3)内に、スペアリング用のFMD1030が無い場合には、他の複数記憶領域提供FMD1030(3)のFMDを自己のスペアリング用のFMD1030として使う方法も考えられる。また、コントローラ1010(例えば構成制御プログラム4030)が、コピー先のスペアリング用のFMD1030を、コピー元のFMD1030が属していたパリティグループ(或いはサブパリティグループ)の要素とし、そのコピー元のFMD1030を、そのパリティグループ(或いはサブパリティグループ)から外すことができる。具体的には、例えば、PG構成情報4060において、そのパリティグループ(或いはサブパリティグループ)に対応する欄に、コピー先のスペアリング用のFMD1030のIDを追加し、その欄から、コピー元のFMD1030のIDを削除することができる。
なお、複数記憶領域提供FMD1030(3)を内蔵したストレージシステムについても、これまで説明した処理が適用可能である。例えば、ユーザーがパリティグループ構成を定義する際は、各複数記憶領域提供FMD1030から、内蔵するFMCの数、提供容量、余剰容量値、またはFMD1030の数を取得し、同じ数又は容量のデバイス同士でパリティグループを構成する等がある。
また、複数記憶領域提供FMD1030(3)を内蔵したストレージシステムの場合、閉塞検知は、FMD1030単位で行うことができる。そのため、パリティグループとしてみた場合は、データ復元処理が不可能な場合でも、サブパリティグループとしてみた場合は、データ復元処理が可能または不要でI/Oリクエストを処理可能な場合がある。もし、内部LUが、このようなI/Oリクエストを処理可能なサブパリティグループだけで構成されている場合は、コントローラ1010は、パリティグループとしてはデータ復元処理が不可能と判断した場合でも、内部LUを閉塞とせずにI/Oリクエストを継続させてもよい。
<6.ホストの詳細>。
管理サーバ1200の説明に必要となるホストLUについて説明する。
前述の通り、ホスト1100はストレージシステムが提供する論理ユニットに対してアクセスリクエストを送信することでフラッシュメモリによる記憶領域を利用することができる。そのために、ホスト1100にて実行されるOS4101は、ホストLUを管理する。
ホストLUとはホスト1100のOS4101が論理ユニットに対応するようにOS4101が定義する論理的な存在である。OS4101はホストLUに対する情報として少なくとも以下の情報を格納する。
* ホストLUの識別子。当該識別子はOS4101によって割り当てられた識別子であるが、割り当てに際してホスト管理者の指示が介在することがある。
* ホストLUに対応する論理ユニットのポートID及びLUN。
* ホストLUに対応する論理ユニットの提供容量。
ホストLUはアプリケーション4103又はファイルシステム4102に提供される。アプリケーション4103又はファイルシステム4102は、ホストLUの識別子を直接的または間接的に指定することで、論理ユニットに対するアクセスリクエストを送信している。
また、データベースプログラム、Webサーバプログラム、メールサーバ等のアプリケーション4103では複数の定義情報(アプリケーションデータの格納場所を含む)を設定し、定義情報毎に異なるテーブル、HTMLファイル、メールデータを提供することがある。こうした状況を説明するため、アプリケーションの定義情報に基いて処理を行う論理的なコンポーネントとして実行インスタンスを導入する。なお、定義情報の無いアプリケーション4103を本発明に適用する場合は実行インスタンスとした説明をアプリケーション4103に置き換えればよい。
<7.管理サーバの詳細>。
次に管理サーバ1200について説明する。
<7.1.管理サーバが有する情報の詳細>。
図25は、管理側FMD情報12050の例を示した図である。
管理側FMD情報12050は各ストレージシステムに取り付けられたFMD1030に関する以下の情報を格納する。
(MA1) FMD1030の識別子。
(MA2) FMD1030の閉塞情報。
(MA3) FMD1030の型番。
(MA4) FMD1030の提供容量とブロックサイズ[D]とフラッシュメモリパッケージ枚数。
(MA5) FMD1030の余剰容量値。
なお、上記(MA1)乃至(MA5)のそれぞれの意味は図5で説明したFMD情報4050の意味と同じである。しかし、管理側FMD情報12050とFMD情報4050とは同じデータ構造である必要は無い。同様に管理側FMD情報12050とFMD情報4050とは同じ意味を持つ情報を有する場合も同じデータ表現形式で格納する必要は無い。
図26は、管理側PG構成情報12060の例を示した図である。
管理側PG構成情報12060は各ストレージシステムに定義されたパリティグループに関する以下の情報を格納する。
(MB1) パリティグループの識別子。
(MB2) パリティグループの閉塞情報。
(MB3) パリティグループのRAIDレベル。
(MB4) パリティグループに属するFMDの数とFMDの識別子。
(MB5) パリティグループの余剰容量率。
なお、上記(MB1)乃至(MB4)のそれぞれの意味は図6で説明したPG構成情報4060の意味と同じである。しかし、管理側PG構成情報12060とPG構成情報4060とは同じデータ構造である必要は無い。同様に管理側PG構成情報12060とPG構成情報4060とは同じ意味を持つ情報を有する場合も同じデータ表現形式で格納する必要は無い。
図27は管理側内部LU構成情報12070の例を示した図である。
管理側内部LU構成情報12070は各ストレージシステムに定義された内部LUに関する以下の情報を格納する。
(MC1) 内部LUの識別子。
(MC2) 内部LUの閉塞情報。
(MC3) 内部LUが定義されたパリティグループの識別子。
(MC4) 内部LUのブロックサイズ。
(MC5) 内部LUのコンペア情報
(MC6) 内部LUの提供容量。本容量はコントローラ1010が内部LU構成情報4070の開始アドレス及び終了アドレス及びブロックサイズに基いて計算された値をコントローラ1010から受信した値であることが考えられる。しかし、内部LU構成情報4070の開始アドレス及び終了アドレスを管理サーバ1200が受信できるのであれば、管理サーバ1200にて算出してもよい。
(MC7) 内部LUの余剰容量率。
なお、上記(MC1)乃至(MC5)のそれぞれの意味は図7で説明した内部LU構成情報4070の意味と同じである。しかし、管理側内部LU構成情報12070と内部LU構成情報4070とは同じ同じデータ構造である必要は無い。同様に管理側内部LU構成情報12070と内部LU構成情報4070とは同じ意味を持つ情報を有する場合も同じデータ表現形式で格納する必要は無い。
図28は管理側LUパス情報12080の例を示した図である。
管理側LUパス情報12080は各ストレージシステムに定義された論理ユニットに関する以下の情報を格納する。
(MD1) ホスト1100に対して提供する内部LUの識別子。
(MD2) WWN(またはI/Oポート1013の識別子)。本情報は、ホスト1100に対して提供する内部LUを、どのポート1013から提供するかを示す。なお、前述したように、WWNに代えて、ポート番号など、他種の識別子で代替されてもよい。また、LUパス情報4080の該当する情報と異なる内容であってもよい(例えば、ストレージシステムはWWNで管理し、管理サーバはポート番号で管理する)。
(MD3) LUN。
なお、上記(MD1)及び(MD3)のそれぞれの意味は図13で説明したLUパス情報4080の意味と同じである。しかし、管理側LUパス情報12080とLUパス情報4080とは同じデータ構造である必要は無い。同様に管理側LUパス情報12080とLUパス情報4080とは同じ意味を持つ情報を有する場合も同じデータ表現形式で格納する必要は無い。
図29は管理側代替候補FMD情報12090の例を示した図である。
管理側代替候補FMD情報12090は各ストレージシステム毎に代替候補FMDに関する情報を管理する情報で、以下の情報を持つ。
(ME1) 代替FMDとなりうるFMD1030(省略して代替候補FMDと呼ぶことがある)の数。
(ME2) 代替候補FMDの余剰容量率の平均値又は最小値。
(ME3) 代替候補FMD1030の識別子
なお、代替候補FMD1030の特定は、ストレージシステムに取り付けられているが、パリティグループに属していないFMD1030であることが考えられる。しかし、他の案として、コントローラが管理者からのFMD1030を指定した設定リクエストに応じて代替候補FMD1030のグループ(以後、代替候補FMDグループと呼ぶ)を定義することも考えられ、この場合はストレージシステムから代替候補FMDグループに属するFMD1030の識別子を取得すればよい。
図38は余剰容量ポリシー情報12100の例を示した図である。
余剰容量ポリシー情報12100は余剰容量値に関するポリシー(以後、余剰容量ポリシー又はポリシーと呼ぶことがある)の情報について格納した情報で、以下の情報を持つ。
(MF1) ポリシーの識別子。
(MF2) 余剰容量率を評価する閾値。なお、余剰容量率を評価する基準であれば閾値以外を採用してもよい。
(MF3) 評価基準に適合した場合に、実行するアクションを識別する名前(または識別子)。
(MF4) 評価基準に適合した場合に、実行するアクションの実現するアクション指示。なお、アクション指示はプログラムであったり、スクリプトであってもよい。
図39は論理ユニット運用情報12110の例を示した図である。
論理ユニット運用情報12110は、ホスト1100に定義されたホストLUに関する情報を格納する。
(MG1) ホストLUを定義したスト1100の識別子。
(MG2) ホストLUの識別子。
(MG3) ホストLUに対応する論理ユニットのポート識別子とLUN。
(MG4) ホストLUの状態。
(MG5) ホストLUに適用するポリシーの識別子。
(MG6) ホストLUを使用するアプリケーションの実行インスタンスの識別子。
<7.2.管理サーバの処理>。
以下に管理サーバのシステム管理プログラム12010について説明する。
<7.2.1.ホストからの管理情報受信>。
システム管理プログラム12010は、以下の処理を行うことでホスト1100の情報を受信する。
(Step1)システム管理プログラム12010は、ホスト1100からホスト管理情報を受信する。
(Step2)システム管理プログラム12010は、前述のホスト管理情報に基いて、論理ユニット運用情報12110を生成または更新する。
なお、ホスト1100が送信するホスト管理情報はホスト1100が有するアプリケーション4103の定義情報及びホストLUの情報に基いて作成される。そのため、ホスト管理情報は、アプリケーション4103の定義情報及びホストLUの情報の一部または全てまたはまたは前回送信分からの差分を含む情報であることが考えられるが、これら情報と同じデータ構造やデータ表現形式で含める必要は無い。また、ホスト設定情報は、アプリケーション4103の実行インスタンスとホストLUとの関係、及びホストLUと論理ユニットとの関係を含むのであればどのような情報表現形式や送信形式であってもよい。
なお、上記処理は管理者による管理サーバへの指示を契機として実施しても良く、一部の情報がホスト1100を経由せずに管理者から管理サーバへ入力された情報に基いても良く、繰り返し実行してもよい。
<7.2.2.ストレージシステムからの管理情報受信>。
システム管理プログラム12010は、以下の処理を行うことでストレージシステム1000の情報を受信する。
(Step1)システム管理プログラム12010は、ストレージシステム1000からストレージシステムの管理情報を受信する。
(Step2)システム管理プログラム12010は、前述のストレージシステム管理情報に基いて以下の情報を作成または更新する。
* 管理側FMD情報12050
* 管理側PG構成情報12060
* 管理側内部LU構成情報12070
* 管理側LUパス情報12080
* 管理側代替候補FMD情報12090
なお、ストレージシステム1000が送信するストレージシステム管理情報はストレージシステム1000が有する以下の情報に基いて作成される。
* FMD情報4050
* PG構成情報4060
* 内部LU構成情報4070
* LUパス情報4080
ストレージシステム管理情報は、上記情報の一部または全てまたは前回送信分からの差分を含むことが考えられるが、これら情報と同じデータ構造やデータ表現形式でストレージシステム管理情報に含める必要は無い。また、ストレージシステム管理情報は、少なくとも一つの物理的又は論理的なコンポーネントの余剰容量値と当該値に対応するコンポーネントの識別子を含み、FMD1030とパリティグループと内部LUと論理ユニットとのいずれか二つ以上または全ての関係を示す情報を含むのであれば、どのような情報表現形式や送信形式であってもよい。つまり余剰容量値と上記関係は別々な通信で送信されてもよい。さらには上記関係は管理サーバの入力によって関係構築がなされている場合があるため、ストレージシステム管理情報に含めなくても良い。
また、上記関係を示す情報については2回目以降のストレージシステム管理情報には含めなくても良い。その一つの形態として、ストレージシステム管理情報は、FMD1030の識別子とFMDの余剰容量値だけを含む情報であっても構わない。
同様に、ストレージシステムからの管理情報を受信する処理は、ストレージシステム管理情報に含まれる少なくとも一つの論理的又は物理的なコンポーネントの余剰容量値に基いて、管理サーバ1200が有する情報の余剰容量値(または余剰容量率)を更新できればよい。その一例として、ストレージシステム管理情報に含まれる余剰容量値をそのまま管理サーバ1200が有する情報の余剰容量値(または余剰容量率)に格納することも考えられるが、何らかの変換を行った後に格納してもよい。
なお、上記処理は管理者による管理サーバ1200への指示を契機として実施しても良く、関係に関する情報については一部の情報がホスト1100を経由せずに管理者から管理サーバへ入力された情報に基いても良い。また、本処理は繰り返し実行してもよい。
<7.2.3.余剰容量運用ポリシーの設定>。
システム管理プログラム12010は、以下の処理を行うことで余剰容量ポリシー情報12100又は論理ユニット運用情報12110を作成または更新する。
(Step1)システム管理プログラム12010は、入出力装置を介して、管理者から以下の情報を受信する。
* ポリシーを適用する閾値
* 余剰容量率の評価基準。より具体的には閾値。
* アクション名。
* アクション指示。
(Step2)システム管理プログラム12010は、管理者から受信した情報に基き、余剰容量ポリシー情報12100を作成または更新する。具体的には以下の通りである:
* 受信した情報がポリシーの新規追加であれば、システム管理プログラム12010は新しいポリシー識別子を生成し、余剰容量ポリシー情報12100に上記情報を共に格納する。
* 受信した情報がポリシーの更新であれば、システム管理プログラム12010は余剰容量ポリシー情報12100の変更対象情報を更新する。
(Step3)システム管理プログラム12010は、管理者からポリシーを特定する情報とポリシーを適用するホストLUまたは使用アプリケーションの実行インスタンスを特定する情報を受信する。なお、ポリシーを特定する情報の例としてはポリシー識別子がある。また、ポリシーを適用するホストLUまたは使用アプリケーションの実行インスタンスを特定する情報の例としては、ホストLUの識別子や、使用アプリケーションの実行インスタンスの識別子がある。
(Step4)システム管理プログラム12010は、Step3で受信した情報に基いて、論理ユニット運用情報12110を更新する。
なお、システム管理プログラム12010は、Step1及びStep2とは独立に、Step3及びStep4を実行することで、入力済みのポリシーを適用するホストLUの変更を行っても良い。
<7.2.4.各コンポーネントの余剰容量値の算出処理>。
システム管理プログラム12010は、以下の情報を算出して更新する。
(算出1)管理側PG構成情報12060のパリティグループに対する余剰容量率: 管理側PG構成情報12060の参加FMDの識別子を参考に、管理側FMD情報12050に格納された算出対象パリティグループに属する一つ以上のFMDの余剰容量率を取得する(実際には、余剰容量と提供容量を取得してから余剰容量率を算出する)。そして、取得した余剰容量率から最小の余剰容量率を管理側PG構成情報12060の算出対象パリティグループの余剰容量率としてこの最小値を格納する。本算出処理は少なくとも、管理側FMD情報の提供容量又は余剰容量値の変化(たとえば、上述のストレージシステム管理情報受信の契機や、FMDを交換した場合や、さらにはストレージ装置から余剰容量値の変化を意味するメッセージを受領した場合がある)、または管理側PG構成情報の参加FMDの識別子の変化(例えば、ダイナミックスペアリングを実行した場合、パリティグループの新規定義または定義更新を行った場合)を検知した際に行えばよい。
(算出2)管理側内部LU構成情報12070の内部LUに対する余剰容量率: 管理側内部LU構成情報12070のパリティグループの識別子を参考に、管理側PG構成情報12060の算出対象の内部LUが定義されたパリティグループの余剰容量率を管理側PG構成情報12060から取得する。さらに取得した値を、算出対象の内部LUの余剰容量率として、管理側内部LU構成情報12070に格納する。なお、内部LUが複数のパリティグループを用いて定義されている場合は、各パリティグループに対応する余剰容量率のうち、最小値を算出対象の内部LUの余剰容量率としてもよい。本算出処理は少なくとも、算出対象の内部LUに対応するパリティグループの余剰容量率の変化を検知したり、内部LUとパリティグループの対応関係の変化(例えば、内部LUのデータを透過的にあるパリティグループから他のパリティグループへ移動させる)を検知した場合に行えばよい。
(算出3)管理側代替候補FMD情報12090の代替候補FMDの余剰容量率の平均値または最小値: 代替候補FMDについて、管理側FMD情報12050に格納された余剰容量率を取得する(実際には、余剰容量と提供容量を取得してから余剰容量率を算出する)。そして取得した余剰容量率の平均値または最小値を、管理側代替候補FMD情報12090に格納する。
<7.3.管理情報表示及び表示処理>。
次に、管理サーバ1200の情報表示について表示内容の算出処理と共に説明する。なお、それぞれの表示は管理サーバ1200が有する以下の情報に基く。
* 管理側FMD情報12050
* 管理側PG構成情報12060
* 管理側内部LU構成情報12070
* 管理側LUパス情報12080
* 管理側代替候補FMD情報12090
* 余剰容量ポリシー情報12100
* 論理ユニット運用情報12110
なお、以後の説明では管理サーバ1200が管理する上記情報をまとめてシステム管理情報と呼ぶことがある。なお、このシステム管理情報は上記情報が全て含まれるとは限らない。例えば本発明はポリシーを用いない運用も可能であり、またホストLUやアプリケーションを考慮せずにポリシーを設定する場合もあるため、そうした実施形態の際には上記全ての情報が必要ではないからである。
<7.3.1.管理サーバの画面表示例>。
図30は、管理サーバ1200がストレージシステム1000又はホスト1100に関する情報を入出力装置を用いて表示する画面の一例である。
画面表示は第1ペイン30010、第2ペイン30020、及び第3ペイン30030の3つを含み、それぞれのペインでは以下に示すような情報を表示し、また入出力装置による入力を支援する。
(第1ペイン)管理サーバ1200が管理するストレージシステム1000及びストレージシステム1000の物理的コンポーネント(たとえばFMD)又はストレージシステム1000への設定で論理的に生成された論理コンポーネント(たとえばパリティグループ、内部LU、論理ユニット)を意味する表示オブジェクトを表示する。なお、図30における表示オブジェクトはアイコン又は/及び文字列を指すが、他の映像又は音声であってもよい。第1ペインはさらに、管理サーバ1200が管理するホスト1100、及びホスト1100の物理的又は論理的なコンポーネント(例えばアプリケーションの実行インスタンス)を意味する表示オブジェクトを表示する。さらに、第1ペインは表示オブジェクト間の上位関係又は下位関係を表示する(図30ではアイコン間の点線が該当する)。第1ペインはストレージシステム1000及びホスト1100の各々に対応したコンポーネント全体を示す表示オブジェクトを表示する(以後、このような表示オブジェクトと強調する場合は一覧表示オブジェクトと呼ぶことにし、特に一覧表示オブジェクトと前出の表示オブジェクトと区別しないでよい場合は単に表示オブジェクトと呼ぶ)。図30の「記憶デバイス」、「代替候補デバイス」、「パリティグループ」、「内部LU」、「ポート」等それぞれのコンポーネントを一意に特定する識別子を伴わない表示オブジェクトが、一覧表示オブジェクトである。
(第2ペイン)第1ペインを用いて入出力装置から指定された表示オブジェクトに対応するストレージシステム1000又はホスト1100のコンポーネント(物理的、論理的を問わず)の管理情報を表示する。なお、第1ペインで一覧表示オブジェクトが指定された場合は、第2ペインでは一覧表示オブジェクトに対応するコンポーネント(論理的、物理的を問わず)の要約管理情報を表示する。
(第3ペイン)第1ペインを用いて入出力装置から一覧表示オブジェクトを指定された場合に、当該一覧表示オブジェクトに対応する一つ以上のコンポーネント(論理的、物理的を問わず)のそれぞれの管理情報を表示する。
なお、「表示オブジェクトAは表示オブジェクトBの上位(または上位関係)にある」と説明した場合、第1ペインにおけるツリー表示において表示オブジェクトAは表示オブジェクトBよりも根に近いことを指す。「表示オブジェクトAは表示オブジェクトBの下位(または下位関係)にある」と説明した場合、第1ペインにおけるツリー表示において表示オブジェクトAは表示オブジェクトBよりも葉に近いことを指す。
なお、入出力装置にポインティングデバイス(例えばマウス、タッチパッド、タッチスクリーン、ペンタブレット)を含む場合は、表示オブジェクトをダブルクリックで指定することで、管理サーバ1200は指定された表示オブジェクトの下位関係に該当する表示オブジェクトを展開表示する。また、図30又は以後説明する図31乃至図37の例ではGUIを想定しているが、コマンドラインインターフェース(CLI)を用いたコンソール出力であってもよい。
<7.3.2.FMDに関する表示>。
引き続き図30を用いて、管理サーバが、記憶デバイスとしてFMD1030を指定された時に、表示する情報について説明する。
なお、図30の例ではSTG1の表示オブジェクトをポインティングデバイスでダブルクリックすることでSTG1で識別されるストレージシステムに属するコンポーネント(論理的、物理的を問わず)として、「記憶デバイス」、「代替候補デバイス」、「パリティグループ」、「内部LU」、「ポート」の各々に対応した一覧表示オブジェクトが画面表示されている(別な言い方をすればSTG1の表示オブジェクトから下位の関係に当たるそれぞれの表示オブジェクトが表示されるとも言える)。さらに、図30の例では、「記憶デバイス」の一覧表示オブジェクトをポインティングデバイスでダブルクリックすることでSTG1で識別されるストレージシステム1000に設置された一つ以上のFMDに対応した表示オブジェクト(つまり、FMD1乃至FMD3の文字列を有する表示オブジェクト)が画面表示されている。
そして、管理者が画面表示を介し、ポインティングデバイスカーソル30040が所定のFMD1030の表示オブジェクト(図30ではFMD3の識別子を持つ表示オブジェクト)をクリックすることで、管理サーバ1200は所定のFMD1030を指定した管理情報表示リクエストを受信する。
管理情報表示リクエストを受信した管理サーバ1200は、第2ペインに所定のFMD1030に関する管理情報として以下の少なくとも一つを表示する。
* 記憶デバイスを特定する識別子として、所定のFMD1030の識別子を表示する。本表示は管理側FMD情報12050のFMD識別子に基いて行われる。
* 記憶デバイスの取り付け位置に関する情報を表示する。本表示は管理側FMD情報12050のFMD識別子に基いて取り付け位置を算出することで行われる。
* 記憶デバイスの型番として、所定のFMD1030の型番を表示する。本表示は管理側FMD情報12050の型番に基いて行われる。
* 記憶デバイスの構成の一部として、所定のFMD1030のFMC枚数及びブロックサイズ[D]を表示する。本表示は管理側FMD情報12050のFMC枚数及びブロックサイズに基いて行われる。
* 記憶デバイスの提供容量として、所定のFMD1030の提供容量を表示する。本表示は管理側FMD情報12050の提供容量に基いて行われる。
* 記憶デバイスの余剰容量率として、所定のFMD1030の余剰容量率を表示する。本表示は管理側FMD情報12050の余剰容量値又は/及び提供容量に基いて行われる。
* 記憶デバイスの状態として、所定のFMD1030の状態を表示する。本表示は管理側FMD情報12050の閉塞情報と余剰容量率に基いて行われる。
なお、FMD1030の状態として以下のいずれかの値を表示することが考えられるが、他の値を表示しても良い。
(状態1)正常(I/O処理受付可能という意味)
(状態2)閉塞(利用不可能という意味)
(状態3)余剰領域不足(図中では省略して余剰不足と表現することがある)
また、管理サーバ1200は、複数のFMD1030の各々について、上記所定のFMD1030に関する管理情報を第3ペインに表示してもよい。なお、そのときの契機としては、管理者が画面表示を介し、ポインティングデバイスカーソル30040が記憶デバイスの文字列を持つ一覧表示オブジェクトをクリックすることにより、管理サーバ1200は所定のFMD1030を指定した管理情報表示リクエストを受信した時点であることが考えられる。
<7.3.3.パリティグループに関する表示>。
図31を用いて、管理サーバ1200が、所定のパリティグループを指定された時に表示する情報について説明する。
なお、図31の例ではSTG1の表示オブジェクトをポインティングデバイスでダブルクリックすることでSTG1で識別されるストレージシステムに属するコンポーネント(論理的、物理的を問わず)として、「記憶デバイス」、「代替候補デバイス」、「パリティグループ」、「内部LU」、「ポート」の各々に対応した一覧表示オブジェクトが画面表示されている。さらに、図31の例では、「パリティグループ」の一覧表示オブジェクトをポインティングデバイスでダブルクリックすることでSTG1で識別されるストレージシステム1000に定義された一つ以上のパリティグループに対応した表示オブジェクト(つまり、PG1、PG2、及びPGxの表示オブジェクト)が画面表示されている。
そして、管理者が画面表示を介し、ポインティングデバイスカーソル30040が所定のパリティグループの表示オブジェクト(図31ではPG1の識別子を持つ表示オブジェクト)をクリックすることで、管理サーバ1200は所定のパリティグループを指定した管理情報表示リクエストを受信する。
管理情報表示リクエストを受信した管理サーバ1200は、第2ペインに所定のパリティグループに関する管理情報として以下の少なくとも一つを表示する。
* パリティグループを特定する識別子として、所定のパリティグループの識別子を表示する。本表示は管理側PG構成情報12060のパリティグループ識別子に基いて行われる。
* パリティグループのRAIDレベルとして、所定のパリティグループのRAIDレベルを表示する。本表示は管理側PG構成情報12060のRAIDレベルに基いて行われる。
* パリティグループの記憶デバイス数として、所定のパリティグループに属するFMD1030の数を表示する。本表示は管理側PG構成情報12060のFMD数に基いて行われる。
* パリティグループの提供容量として、所定のパリティグループのRAID処理化後に実現される容量を表示する。本表示は管理側PG構成情報12060の参加FMD識別子及びRAIDレベル、及び管理側FMD情報12050の提供容量に基いて行われる。
* パリティグループの余剰容量率として、所定のパリティグループの余剰容量率を表示する。本表示は管理側PG構成情報12060の余剰容量率に基いて行われる。
* パリティグループの状態として、所定のパリティグループの状態を表示する。本表示は管理側PG構成情報12060の閉塞情報と余剰容量率に基いて行われる。
なお、パリティグループの状態として以下のいずれかの値を表示することが考えられるが、他の値を表示しても良い。
(状態1)正常(I/O処理受付可能という意味)
(状態2)縮退(3.6.1.章の定義を参照。また、別な言葉で表現すればパリティグループに属する正常状態のFMD1030が一つ閉塞した時点でデータ消失が発生する状態とも言える(特にRAID5の場合))
(状態3)閉塞(利用不可能という意味)
(状態4)余剰領域不足(図中では省略して余剰不足と表現している)
(状態5)縮退かつ余剰領域不足(縮退状態のパリティグループに属するFMD1030の少なくとも一つが余剰領域不足状態であることを指す)
なお、図31の画面表示で余剰容量率として表示する値は以下の値の少なくとも一つであることが考えられる。
* パリティグループに属する一つ以上のFMD1030の余剰容量率のうち、もっとも小さな値。余剰領域不足によるパリティグループの縮退状態化を回避するために監視する場合は当該値が好適である。
* パリティグループに属する一つ以上のFMD1030の余剰容量率のうち、もっとも小さな値とその次に小さな値。余剰領域不足によるパリティグループの閉塞状態化を回避するために監視する場合は当該値が好適である。
* パリティグループに属する一つ以上のFMD1030の余剰容量率の平均値と分散値。
さらに、管理情報表示リクエストを受信した管理サーバ1200は、第3ペインに所定のパリティグループに属する一つ以上のFMD1030の各々に関する管理情報を一覧表示してもよい。なお、当該管理情報については図30で説明した値であることが考えられるほが他の値であってもよい。
また図32のように、管理サーバ1200は、複数のパリティグループの各々について、上記所定のパリティグループに関する管理情報を第3ペインに表示してもよい。なお、そのときの契機としては、管理者が画面表示を介し、ポインティングデバイスカーソル30040が「パリティグループ」の文字列を持つ一覧表示オブジェクトをクリックすることにより、管理サーバ1200がパリティグループを指定した管理情報表示リクエストを受信した時点であることが考えられる。このときに第2ペインに表示する情報としては、以下が考えられるが他の集約情報を表示してもよい。
* クリックした「パリティグループ」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムの識別子。
* クリックした「パリティグループ」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムに定義されたパリティグループの数。
* クリックした「パリティグループ」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムに定義されたパリティグループの余剰容量率の最小値又は平均値。
さらに、管理情報表示リクエストを受信した管理サーバ1200は、第3ペインにストレージシステム1000に定義された一つ以上パリティグループの各々に関する管理情報を一覧表示してもよい。なお、当該管理情報については図31で説明した値に加えて、各々のパリティグループに属するFMD1030に関する情報であることが考えられるほが他の値であってもよい。
<7.3.4.内部LUに関する表示>。
図33を用いて管理サーバ1200が所定の内部LUを指定された時に画面表示する情報について説明する。
なお、図33の例ではSTG1の表示オブジェクトをポインティングデバイスでダブルクリックすることでSTG1で識別されるストレージシステムに属するコンポーネント(論理的、物理的を問わず)として、「記憶デバイス」、「代替候補デバイス」、「パリティグループ」、「内部LU」、「ポート」の各々に対応した一覧表示オブジェクトが画面表示されている。さらに、図33の例では、「パリティグループ」の一覧表示オブジェクトをポインティングデバイスでダブルクリックすることでSTG1で識別されるストレージシステム1000に定義された一つ以上の内部LUに対応した表示オブジェクト(つまり、I−LU1乃至I−LU3、及びI−LUxの文字列を持つ表示オブジェクト)が画面表示されている。
そして、管理者が画面表示を介し、ポインティングデバイスカーソル30040が所定の内部LUの表示オブジェクト(図33ではI−LU1の識別子を持つ内部LU)をクリックすることで、管理サーバ1200は所定の内部LUを指定した管理情報表示リクエストを受信する。
管理情報表示リクエストを受信した管理サーバ1200は、第2ペインに所定の内部LUに関する管理情報として以下の少なくとも一つを表示する。
* 内部LUを特定する識別子として、所定の内部LUの識別子を表示する。本表示は管理側内部LU構成情報12070の内部LUの識別子に基いて行われる。
* 内部LUが定義されたパリティグループの識別子として、所定の内部LUが定義されたパリティグループの識別子を表示する。本表示は管理側内部LU構成情報12070のパリティグループ識別子に基いて行われる。
* 内部LUのブロックサイズとして、所定の内部LUのブロックサイズを表示する。本表示は管理側内部LU構成情報12070のブロックサイズに基いて行われる。
* 内部LUの提供容量として、所定の内部LUの提供容量を表示する。本表示は管理側内部LU構成情報12070の提供容量に基いて行われる。
* 内部LUの余剰容量率として、所定の内部LUが定義されたパリティグループの余剰容量率を表示する。本表示は管理側内部LU構成情報12070の余剰容量率に基いて行われる。
* 内部LUの状態として、所定の内部LUの状態を表示する。本表示は管理側内部LU構成情報12070の閉塞情報及び余剰容量率に基いて行われる。
なお、内部LUの状態として以下のいずれかの値を表示することが考えられるが、他の値を表示しても良い。
(状態1)正常(I/O処理受付可能という意味)
(状態2)縮退(3.6.1.章の定義を参照。また、別な言葉で表現すれば、所定の内部LUが定義されたパリティグループに属する、正常状態のFMD1030が一つ閉塞した時点でデータ消失が発生する状態とも言える(特にRAID5の場合))
(状態3)閉塞(利用不可能という意味)
(状態4)余剰領域不足(図中では省略して余剰不足と表現することがある)
(状態5)縮退かつ余剰領域不足(所定の内部LUが定義された縮退状態のパリティグループに属する、FMD1030の少なくとも一つが余剰領域不足状態であることを指す)
なお、図33の画面表示で余剰容量率として表示する値は図31及び図32で説明したパリティグループに関する表示で説明した値を表示してもよい。
さらに、管理情報表示リクエストを受信した管理サーバ1200は、第3ペインに所定の内部LUが定義された一つ以上のパリティグループの各々に関する管理情報を一覧表示してもよい。なお、当該管理情報については図31及び図32で説明した値であることが考えられるほが他の値であってもよい。
また、管理サーバ1200は、複数の内部LUの各々について、上記所定の内部LUに関する管理情報を第3ペインに一覧表示してもよい。なお、そのときの契機としては、管理者が画面表示を介し、ポインティングデバイスカーソル30040が「内部LU」の文字列を持つ一覧表示オブジェクトをクリックすることにより、管理サーバ1200がパリティグループを指定した管理情報表示リクエストを受信した時点であることが考えられる。このときに第2ペインに表示する情報としては、以下が考えられるが他の集約情報を表示してもよい。
* クリックした「内部LU」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムの識別子。
* クリックした「内部LU」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムに定義された内部LUの数。
* クリックした「パリティグループ」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムに定義された内部LUの余剰容量率の最小値又は平均値。
<7.3.5.論理ユニットに関する表示>。
図34を用いて管理サーバ1200が所定のLUを指定された時に画面表示する情報について説明する。
なお、図34の例ではSTG1の表示オブジェクトをポインティングデバイスでダブルクリックすることでSTG1で識別されるストレージシステムに属するコンポーネント(論理的、物理的を問わず)として、「記憶デバイス」、「代替候補デバイス」、「パリティグループ」、「内部LU」、「ポート」の各々に対応した一覧表示オブジェクトが画面表示されている。さらに、図34の例では、「ポート」の一覧表示オブジェクトをポインティングデバイスでダブルクリックすることでSTG1で識別されるストレージシステム1000が有する一つ以上のポートの各々に対応した表示オブジェクト(つまり、yy及びzzの文字列を有する表示オブジェクト)が画面表示されている。さらに、zzの「ポート」一覧表示オブジェクトをポインティングデバイスでダブルクリックすることでzzの識別子を持つポートに定義された一つ以上の論理ユニットの各々に対応した表示オブジェクト(つまり、LUN0及びLUN1の文字列を有する表示オブジェクト)が画面表示されている。
そして、管理者が画面表示を介し、ポインティングデバイスカーソル30040が所定のLUの表示オブジェクト(図33ではLUN0の識別子を持つ表示オブジェクト)をクリックすることで、管理サーバ1200は所定の論理ユニットを指定した管理情報表示リクエストを受信する。
管理情報表示リクエストを受信した管理サーバ1200は、第2ペインに所定の論理ユニットに関する管理情報として以下の少なくとも一つを表示する。
* 論理ユニットが定義されたポートを特定する識別子として、所定の論理ユニットが定義されたポートを特定する識別子を表示する。なお、当該識別子はファイバーチャネルの場合はWWNやポートID、Ethernetの場合はMACアドレスやIPアドレスが考えられるが、他の識別子であってもよい。本表示は管理側LUパス情報12080のポート識別子に基いて行われる。
* 論理ユニットを特定する識別子として、所定の論理ユニットの識別子を表示する。なお、当該識別子としてはSCSIのLUNであることが考えられるが、他の識別子でもよい。本表示は管理側LUパス情報12080のLUNに基いて行われる。
* 論理ユニットが対応する内部LUの識別子として、所定の論理ユニットが対応する内部LUの識別子を表示する。本表示は管理側LUパス情報12080の内部LU識別子に基いて行われる。
* 論理ユニットのブロックサイズとして、所定の論理ユニットのブロックサイズを表示する。本表示は管理側LUパス情報12080の内部LUの識別子、及び管理側内部LU構成情報12070のブロックサイズに基いて行われる。
* 論理ユニットの提供容量として、所定の論理ユニットに対応する内部LUの提供容量を表示する。本表示は管理側LUパス情報12080の内部LUの識別子、及び管理側内部LU構成情報12070の提供容量に基いて行われる。
* 論理ユニットの余剰容量率として、所定の論理ユニットに対応する内部LUの余剰容量率を表示する。本表示は管理側LUパス情報12080の内部LUの識別子、及び管理側内部LU構成情報12070の余剰容量率に基いて行われる。
* 論理ユニットの状態として、所定の論理ユニットの状態を表示する。本表示は管理側LUパス情報12080の内部LUの識別子、及び管理側内部LU構成情報12070の閉塞情報及び余剰容量率に基いて行われる。
なお、論理ユニットの状態として以下のいずれかの値を表示することが考えられるが、他の値を表示しても良い。
(状態1)正常(I/O処理受付可能という意味)
(状態2)縮退(3.6.1.章の定義を参照。また、別な言葉で表現すれば、所定の論理ユニットに対応するパリティグループに属する、正常状態のFMD1030が一つ閉塞した時点でデータ消失が発生する状態とも言える(特にRAID5の場合))
(状態3)閉塞(利用不可能という意味)
(状態4)余剰領域不足(図中では省略して余剰不足と表現することがある)
(状態5)縮退かつ余剰領域不足(所定の論理ユニットに対応する縮退状態のパリティグループに属する、FMD1030の少なくとも一つが余剰領域不足状態であることを指す)
なお、図34の画面表示で余剰容量率として表示する値は図31及び図32で説明したパリティグループに関する表示で説明した値を表示してもよい。
さらに、管理情報表示リクエストを受信した管理サーバ1200は、第3ペインに所定の論理ユニットに対応する一つ以上のパリティグループの各々に関する管理情報を一覧表示してもよい。なお、当該管理情報については図31及び図32で説明した値であることが考えられるほが他の値であってもよい。
また、管理サーバ1200は、複数の論理ユニットの各々について、上記所定の論理ユニットに関する管理情報を第3ペインに表示してもよい。なお、そのときの契機としては、管理者が画面表示を介し、ポインティングデバイスカーソル30040が「ポート」の文字列を持つ一覧表示オブジェクトをクリックすることにより、管理サーバ1200が所定のポートを指定した管理情報表示リクエストを受信した時点であることが考えられる。このときに第2ペインに表示する情報としては、以下が考えられるが他の集約情報を表示してもよい。
* クリックした「ポート」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムの識別子。
* クリックした「ポート」の一覧表示オブジェクトに対応するポートに対して定義された一つ以上の論理ユニットの数。
* クリックした「ポート」の一覧表示オブジェクトに対応するポートに対して定義された一つ以上の論理ユニットの余剰容量率の最小値又は平均値。
さらに、管理情報表示リクエストを受信した管理サーバ1200は、第3ペインにストレージシステム1000に定義された一つ以上パリティグループの各々に関する管理情報を一覧表示してもよい。なお、当該管理情報については図31で説明した値に加えて、各々のパリティグループに属するFMD1030に関する情報であることが考えられるほが他の値であってもよい。
<7.3.6.代替候補FMDに関する表示>。
図35を用いて、管理サーバが、代替候補デバイスを指定された時に、表示する情報について説明する。
なお、図35の例ではSTG1の表示オブジェクトをポインティングデバイスでダブルクリックすることでSTG1で識別されるストレージシステムに属するコンポーネント(論理的、物理的を問わず)として、「記憶デバイス」、「代替候補デバイス」、「パリティグループ」、「内部LU」、「ポート」の各々に対応した一覧表示オブジェクトが画面表示されている。
そして、管理者が画面表示を介し、ポインティングデバイスカーソル30040が代替候補デバイスの一覧表示オブジェクトをクリックすることで、管理サーバ1200は代替候補デバイスを指定した管理情報表示リクエストを受信する。
管理情報表示リクエストを受信した管理サーバ1200は、第2ペインに代替候補デバイスに関する管理情報として以下の少なくとも一つを表示する。
* クリックした「代替候補デバイス」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムの識別子。本表示は管理側代替候補FMD情報12090のストレージシステムの識別子に基いて行われる。
* クリックした「代替候補デバイス」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムが有する代替候補FMD1030の数。本表示は管理側代替候補FMD情報12090のFMD数に基いて行われる。
* クリックした「代替候補デバイス」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムが有する代替候補デバイスの平均余剰容量率又は最小余剰容量率。本表示は管理側代替候補FMD情報12090の余剰容量率に基いて行われる。
また、管理サーバ1200は、複数の代替候補FMD1030の各々について、代替候補FMD1030に関する下記の少なくとも一つの管理情報を第3ペインに表示してもよい。なお、表示する情報としては、FMD1030を指定することで第2ペインに表示された情報の少なくとも一つを含むことが考えられるが、他の情報を表示してもよい。
<7.3.7.アプリケーションに関する表示>。
図36を用いて、管理サーバ1200が、所定のホスト及び所定のホストが認識した論理ユニット(以後、ホストが認識した論理ユニットをホストLUと呼ぶ)を指定された時に表示する情報について説明する。
なお、図36の例ではHost1の表示オブジェクトをポインティングデバイスをダブルクリックすることでHost1で識別されるホスト1100に属するコンポーネント(論理的、物理的を問わず)として、「アプリケーション」及び「LU」の各々に対応した一覧表示オブジェクトが画面表示されている。さらに、図36の例では「アプリケーション」の一覧表示オブジェクトをポインティングデバイスでダブルクリックすることで、Host1で識別されるホスト1100に設定された一つ以上のアプリケーションの実行インスタンスに対応した一覧表示オブジェクト(つまり、「メールサーバ」、「アーカイブ1」、「Webサーバ1」それぞれの表示オブジェクト)が画面表示されている。さらに、図36の例では「Webサーバ1」の一覧表示オブジェクトをポインティングデバイスでダブルクリックすることで、Webサーバ1で識別されるアプリケーション実行インスタンスがデータ格納又は参照に用いている一つ以上のホストLUの表示オブジェクト(つまり、「sda1」と「sda2」それぞれの表示オブジェクト)が画面表示されている。
そして、管理者が画面表示を介し、ポインティングデバイスカーソル30040が所定のホストLUの表示オブジェクト(図36では「sda2」の表示オブジェクト)をクリックすることで、管理サーバ1200は所定のホストLUを指定した管理情報表示リクエストを受信する。
管理情報表示リクエストを受信した管理サーバ1200は、第2ペインに所定のホストLUに関する管理情報として以下の少なくとも一つを表示する。
* アプリケーション種別またはアプリケーションの実行インスタンスを識別する情報として、所定のホストLUの表示オブジェクトの上位に該当するアプリケーションの一覧表示オブジェクトに対応する、アプリケーションの実行インスタンスの識別子を表示する。なお、所定のホストLUを複数のアプリケーション実行インスタンスが共有している場合は、複数のアプリケーション実行インスタンスの識別子を表示してもよい。本表示は論理ユニット運用情報12110の使用アプリケーションの実行インスタンスの識別子に基いて行われる。
* ホストLUの識別子として、所定のホストLUのホスト1100が割り当てた識別子を表示する。本表示は論理ユニット運用情報12110のホストLU識別子に基いて行われる。
* ホストLUを論理ユニットとして提供しているポートの識別子とLUN番号として、所定のホストLUに対応する論理ユニットが定義されたポートの識別子とLUN番号を表示する。本表示は論理ユニット運用情報12110のLUNに基いて行われる。
* ホストLUの提供容量として、所定のホストLUとしてホスト1100が検知した容量、または所定のホストLUに対応する論理ユニットに対応する内部LUの提供容量を表示する。本表示は論理ユニット運用情報12110の使用アプリケーションのポート識別子及びLUN、管理側LUパス情報の内部LU識別子、及び管理側内部LU構成情報の提供容量に基いて行われる。
* ホストLUの余剰容量率として、所定のホストLUに対応する論理ユニットに対応する内部LUの余剰容量率を表示する。本表示は論理ユニット運用情報12110の使用アプリケーションのポート識別子及びLUN、管理側LUパス情報の内部LU識別子、及び管理側内部LU構成情報の余剰容量率に基いて行われる。
* ホストLUに提供された運用ポリシーの情報として、所定のホストLUに適用された運用ポリシーの識別子と、当該運用ポリシーの余剰容量率に対する閾値と閾値を下回った場合のアクションを含む情報を表示する。本表示は論理ユニット運用情報12110の適用ポリシー識別子、及び余剰容量ポリシー情報12100に基いて行われる。
* ホストLUの状態として、所定のホストLUの状態を表示する。なお、当該ホストLUの状態としては、以下に示す状態を表示することが考えられる。本表示は論理ユニット運用情報12110の状態に基いて行われる。
* 対応する論理ユニット又は内部LUの状態
* アプリケーションの実行インスタンスの所定のホストLUの利用設定に関連した状態。論理ユニットにアーカイブデータの格納中であることを指すアーカイブ中や、論理ユニットにアーカイブデータを格納完了したことを指すアーカイブ済みといった状態や、アプリケーションが認識している所定のホストLUの用途としてアーカイブ運用中といった状態が考えられる。
* ホスト1100又はI/Oネットワーク1300の障害状況を考慮した状態(例えば、通信断絶)
なお、後述するが、ホストLUの状態は管理者の指定によりアプリケーションに応じた任意の文字列を表示してもよい。その場合に新たに追加表示する情報として、ホストLUに対応する論理ユニットに対応する内部LUの状態を表示してもよい。なお、表示に際して参照する情報について図34の説明と同じである。
なお、図30乃至図36に示した画面表示にて余剰容量率の変わりとして、他の余剰容量値を表示してもよい。また、図中では現時点の余剰容量率を表示しているが、過去の余剰容量値を含めてグラフ等の形で表示を行っても良い。過去の値を参照することで管理者は今後の余剰容量値の推定することができるからである。
さらに、上記説明にて第1ペインを用いた管理情報表示リクエストで指定する論理的又は物理的なコンポーネントを指定する方法についても述べたが、本発明はこれに限定されない。管理情報表示リクエストで以下の指定が出来るのであれば他の表示、指定方法で実現してもよい。
* 特定の論理的または物理的なコンポーネントを指定する(例えば、あるパリティグループを指定する場合)
* 所定のストレージシステム(または所定のコンポーネント)が関係する、ある種別の論理的または物理的なコンポーネントを指定する(例えば、ストレージシステムSTG1に定義されたパリティグループ全体を指定する)
なお、これら指定条件として事前設定した条件に基く指定または表示内容のフィルタリングを行っても良い。さらに説明した情報以外の情報が画面表示されてもよく、逆に説明した情報の一部を省略してもよい。
<7.4.ポリシーに基く処理>。
システム管理プログラム12010は、内部LUの余剰容量率の変化に応じて、余剰容量率が変化した内部LUに関して以下の処理を行う。
(Step1)システム管理プログラム12010は、余剰容量率が変化した内部LUに対応する論理ユニットを、管理側LUパス情報12080に基いて特定する。
(Step2)システム管理プログラム12010は、Step1で特定した論理ユニットに対応するホストLUを、論理ユニット運用情報12110に基いて特定する。
(Step3)システム管理プログラム12010は、Step2で特定したホストLUの適用ポリシー識別子を参照する。参照の結果、適用ポリシーの識別子が格納されていなければ処理を終了する。参照の結果、適用ポリシーの識別子が格納されている場合は、適用ポリシーを特定する。
(Step4)システム管理プログラム12010は、Step3で特定した適用ポリシーの全てについて、以下の処理を行う。
(Step4A)システム管理プログラム12010は、余剰容量ポリシー情報12100を参照することで、変化した内部LUの余剰容量率を閾値に登録された評価基準で判断する。
(Step4B)Step4Aで評価基準に適合していると判断した場合、システム管理プログラム12010は、アクション指示に格納された内容に基いた処理を行う。
<7.5.アクション指示の内容>。
<7.5.1.ホストLU状態指示>。
前述の通り、アクション指示の内容は管理者が指定することができ、それによってより多くのアプリケーションに対応した運用管理を実現している。さらにアクション指示にはホストLUの状態を変化させる指示を記載することができる(以後の説明では当該指示をホストLU状態指示と呼ぶ)。多くのアプリケーションに対応した運用管理を実現するためには、ホストLUの状態として表示すべき状態についてもアプリケーションに応じた柔軟な状態を表示したほうがより好適だと考えたことによるものである。以下がホストLU状態指示の指示例である。
> HOSTLUSTAT ”任意の文字列”
アクション指示の内容を参照したシステム管理プログラム12010は、ホストLU状態指示を検知することで論理ユニット運用情報の状態を”任意の文字列”へ更新する。
<7.5.2.アクション指示の一例>。
アクション指示の内容の一例を以下に示す。
(例1)ホストLUが閾値を下回ったことを示す電子メール又はSNMPトラップを送信する。
(例2)閾値を下回ったホストLUを利用しているアプリケーションの実行インスタンスに対して、当該ホストLUをアーカイブ用途で用いさせるためのコマンド又はプログラムを実行する。
(例3)閾値を下回ったホストLUを利用しているアプリケーションの実行インスタンス又は/及びホスト1100のプログラムに対して、当該ホストLUに格納したアプリケーションデータを他のホストLUに移動するためのコマンド又はプログラムを実行する。それと連携して、当該実行インスタンスに対して当該ホストLUへの少なくとも書き込みを抑止するコマンド又はプログラムを実行する。そして、アーカイブプログラムの実行インスタンスに当該ホストLUをアーカイブデータ格納用に用いさせるためのコマンド又はプログラムを実行する。
<7.5.3.閾値に関連するデータマイグレーション処理>。
FMD1030に対応した内部LUは、HDDと比較して特に高いランダムリード性能を有し、ライト性能についてはFMD及びRAIDレベル次第ではあるがHDDとあまり変わらない性能をもつ。そのため、FMD1030に対応した内部LUは、高速用途向けとされる場合がある。一方で、本発明により書き込み回数には制限があるものの、ランダムリード性能に優れる高速アーカイブ用途向けとされるパリティグループ及び内部LUが新たに存在し得ることになった。ここではストレージシステム1000が行うデータマイグレーションを用いた、高速用途向けの内部LUの集合である高速Tierと、高速アーカイブ用途向けの内部LUの集合である高速アーカイブTierとの管理について説明する。
まず、コントローラ1010の構成制御プログラム4030は、以下のデータマイグレーションのどちらかまたは両方を実行する。
(データマイグレーション処理ケース1)
(Step1)構成制御プログラム4030は、管理サーバから移行対象の内部LUの識別子と、移行先となる内部LUの識別子を指定したデータマイグレーション指示を受信する。
(Step2)構成制御プログラム4030は、移行対象の内部LUとして格納されているライトデータを、移行対象の内部LUに現在対応している移行元となるパリティグループのFMD1030から読み出す。
(Step3)構成制御プログラム4030は、Step2で読み出したデータを移行先となる内部LUに対応する移行先となるパリティグループに属するFMD1030へ書き込む。なお、FMD1030の書き込み先のアドレス範囲は移行先となる内部LUに対応したアドレス範囲である。
(Step4)内部LU構成情報4070に格納された移行対象の内部LUの識別子と、移行先となる内部LUの識別子を交換する。
(データマイグレーション処理ケース2)
(Step1)構成制御プログラム4030は、管理サーバから移行対象の内部LUの識別子と、移行対象の内部LUの提供容量以上の未割り当て領域が存在する移行先となるパリティグループの識別子を指定したデータマイグレーション指示を受信する。
(Step2)構成制御プログラム4030は、移行対象の内部LUとして格納されているライトデータを、移行対象の内部LUに現在対応している移行元となるパリティグループのFMD1030から読み出す。
(Step3)構成制御プログラム4030は、Step2で読み出したデータを移行先となるパリティグループに属するFMD1030へ書き込む。なお、FMD1030の書き込み先のアドレス範囲は未割り当てのアドレス範囲である。
(Step4)内部LU構成情報4070に格納された移行対象の内部LUのパリティグループの識別子を移行先となるパリティグループの識別子に変更する。また、内部LU構成情報4070に格納された移行対象の内部LUの開始アドレスと終了アドレスを、FMD1030の書き込み先のアドレス範囲をパリティグループのアドレス範囲に変換したパリティグループ上のアドレス範囲の先頭と終わりに変更する。
システム管理プログラム12010は、上述のストレージシステム1000でのデータマイグレーションを利用して、以下の処理を行うことで二つのTierの管理を行う。
(Step0)システム管理プログラム12010は、所定の閾値を上回る余剰容量率の内部LUを高速Tierに属する内部LUとして管理する。
(Step1)システム管理プログラム12010は、所定の閾値を下回ったパリティグループの存在を検知、及び当該パリティグループの識別子を特定する。そして、当該パリティグループに定義された一つ以上の内部LUを移行元内部LUとして特定する。
(Step2)システム管理プログラム12010は、移行元内部LUの所属を高速Tierから高速アーカイブTierに変更し、必要に応じて移行元内部LUの所属Tierを高速アーカイブTierと表示する。
(Step3)システム管理プログラム12010は、以下の全ての条件を持つ内部LUを移行先となる内部LUとして特定する。
* 所定の閾値を下回ったパリティグループとは異なるパリティグループに定義される。
* 前述の移行元内部LUと同容量である。
* ホスト1100が使用していない。
なお、この時点で画面表示を行う場合は、移行先となる内部LUは高速Tierに所属すると表示する。
(Step4)システム管理プログラム12010は、前述の移行元内部LUの識別子と、前述の移行先となる内部LUの識別子を指定したデータマイグレーションリクエストをコントローラ1010に送信する。コントローラ1010はリクエストに従って内部LUのデータをマイグレーションする。
(Step5)システム管理プログラム12010は、データマイグレーション完了を検知したら、画面表示にて、前述の移行先となった内部LUが高速アーカイブ用途向けのTierに変化したことを表す。また、移行元の内部LUは高速Tierに所属することを表示する。図38の画面表示はその一例であり、データマイグレーション前はライトリクエストにも対応可能な高速Tierに所属していた移行先となった内部LUは、高速アーカイブ用途向けに新たに所属することを示すように第1ペインの表示が変化している。当該表示によって、管理者は移行先となった内部LUが高速アーカイブ用途向けとなったことを把握でき、余剰領域が不足しつつあるFMD1030の有効利用を図ることができる。
以上はデータマイグレーション処理ケース1を前提とした説明であったが、データマイグレーション処理ケース2を用いた場合は、移行先となる内部LUの代わりとして移行先となるパリティグループを指定または表示すればよい。さらには、高速アーカイブ用途向けとなったパリティグループについてはシステム管理プログラム12010が自動で所定の提供容量を持つ内部LUを定義するリクエストをストレージシステム1000に送信し、その結果定義された内部LUが高速アーカイブTierに所属するよう表示を行っても良い。なお、図38で高速アーカイブTierに所属すると表示された内部LUまたはパリティグループに対する運用例としては以下が考えられる。
* システム管理プログラム12010は、高速アーカイブTierに所属すると表示された内部LUまたはパリティグループをアーカイブプログラムまたはアーカイブサーバに割り当てる割り当てリクエストを管理者から受信する。システム管理プログラム12010はアーカイブサーバまたはアーカイブプログラムの設定を変更させて、高速アーカイブTierに所属すると表示された内部LUまたはパリティグループをアーカイブプログラムに割り当てる。
* システム管理プログラム12010は、ある内部LUを移行対象、高速アーカイブTierに所属すると表示された内部LUまたはパリティグループを移行先として指定したデータマイグレーションリクエストを管理者から受信する。システム管理プログラム12010はデータマイグレーションリクエストを受信し、ストレージシステムにある内部LUを移行対象、高速アーカイブTierに所属すると表示された内部LUまたはパリティグループを移行先として指定したデータマイグレーションリクエストを送信する。なお、前述の「ある内部LU」の例としてはHDD又はFMD1030が属するパリティグループに定義され、かつ更新頻度が少ない(またはアーカイブデータが格納されている)内部LUがある。
なお、本表示、及びポリシーに基く処理は、余剰容量率の変わりとして、他の余剰容量値を用いても良い。
以上、本発明の実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、コントローラ1010は、他の構成を採用することもできる。例えば、上記の構成に代えて、上位装置との通信を制御する複数の第一の制御部(例えば制御回路基板)と、FMD1030との通信を制御する複数の第二の制御部(例えば制御回路基板)と、上位装置とFMD1030との間で授受されるデータを記憶することができるキャッシュメモリと、ストレージシステム1000を制御するためのデータを記憶することができる制御メモリと、各第一の制御部、各第二の制御部、キャッシュメモリ及び制御メモリを接続する接続部(例えば、クロスバスイッチなどのスイッチ)とを備えることができる。この場合、第一の制御部と第二の制御部の一方が、又は双方が協働して、前述したコントローラ1010としての処理を行うことができる。制御メモリは無くても良く、その場合、キャッシュメモリに、制御メモリが記憶する情報を記憶する領域が設けられても良い。
また、以上の説明ではウェアレベリングをFMDコントローラ2010が行っているために、余剰容量値をコントローラ1010がFMDコントローラ2010から取得し、本値に基いて算出されたFMD1030の余剰容量値を管理サーバ1200に送信していた。もしウェアレベリングをコントローラ1010で処理する場合は、余剰容量値の算出をコントローラ1010が管理している余剰領域の情報に基いて行っても良い。また、以上の説明では、FMD以外の物理的または論理的なコンポーネントの余剰容量値の算出を管理サーバ1200にて実現したが、コントローラ1010にて算出してもよい。また、画面表示に提供容量を表示するものと説明したが、代替として提供ブロック数等の提供容量に関連する情報を表示してもよい。また、内部LUに対する余剰容量値に基いて表示または処理を行っている処理又は表示については、論理ユニットに対する余剰容量値、パリティグループに対する余剰容量値、ホストLUに対する余剰容量値に置き換えて表示または処理を行っても良い。
以上、本発明の一つの視点として、計算機と、フラッシュメモリデバイスと、ストレージ構成情報を有するストレージコントローラと、キャッシュメモリと、を有し、前記フラッシュメモリデバイスを用いて前記計算機に論理ユニットを提供するストレージシステムと、前記ストレージシステムと前記計算機とを管理する管理システムと、を有する情報システムであって、前記ストレージコントローラは、前記フラッシュメモリデバイスの余剰領域の容量に基く値である第一の余剰容量値をストレージ構成情報に記憶し、前記ストレージ構成情報に基いてストレージ管理情報を生成し、前記ストレージ管理情報を前記管理システムへ送信し、前記管理システムは、前記ストレージ管理情報を受信し、前記ストレージ管理情報に基いて、前記ストレージシステムに関連する管理用の余剰容量値を表示する、情報システムを開示した。
また、本発明の別な視点として、前記ストレージコントローラは、前記フラッシュメモリデバイスを用いたパリティグループの定義を示す情報と、前記論理ユニットと前記パリティグループとの対応を示す情報と、を前記ストレージ構成情報に格納し、前記ストレージコントローラは、前記パリティグループの定義に基いて、前記論理ユニットを指定したライトリクエストのライトデータを、前記指定された論理ユニット対応する前記パリティグループに属する前記フラッシュメモリデバイスに、分散または冗長化して書き込み、前記管理用の余剰容量値の表示は、前記パリティグループに対する第二の余剰容量値、又は前記第二の余剰容量値に表示用の変換を行った値、の表示としてもよいことを開示した。
また、本発明の別な視点として、前記ストレージ管理情報は、前記フラッシュメモリデバイスに対する第一の余剰容量値を含み、前記管理システムは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基き、前記パリティグループに対する前記第二の余剰容量値を算出してもよいことを開示した。
また、本発明の別な視点として、前記ストレージコントローラは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基いて、前記パリティグループに対する前記第二の余剰容量値を算出し、前記ストレージ管理情報は、前記第二の余剰容量値を含めてもよいことを開示した。
また、本発明の別な視点として、前記ストレージコントローラは、前記フラッシュメモリデバイスを用いたパリティグループの定義を示す情報と、前記パリティグループを用いて定義する内部論理ユニットとの対応を示す情報と、前記内部論理ユニットと前記論理ユニットとの対応を示す情報と、を前記ストレージ構成情報に格納し、前記ストレージコントローラは、前記論理ユニットを指定したデバイス問い合わせリクエストの応答として、前記指定された論理ユニットに対応する内部論理ユニットの識別情報を送信し、前記ストレージコントローラは、前記パリティグループの定義及び前記内部論理ユニットの定義に基き、前記指定された論理ユニットを指定したライトリクエストのライトデータを、前記指定された論理ユニットに対応する前記パリティグループに属する、前記フラッシュメモリデバイスに分散または冗長化して書き込み、前記管理用の余剰容量値の表示は、前記内部論理ユニットに対する第三の余剰容量値、又は前記第三の余剰容量値に表示用の変換を行った値、の表示としてもよいことを開示した。
また、本発明の別な視点として、前記ストレージ管理情報は、前記フラッシュメモリデバイスに対する第一の余剰容量値を含み、前記管理システムは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基き、前記内部論理ユニットに対する前記第三の余剰容量値を算出してもよいことを開示した。
また、本発明の別な視点として、前記ストレージコントローラは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基いて、前記内部論理ユニットに対する前記第三の余剰容量値を算出し、前記ストレージ管理情報は、前記第三の余剰容量値を含めてもよいことを開示した。
また、本発明の別な視点として、前記管理用の余剰容量値の表示は、前記論理ユニットに対する第四の余剰容量値、又は前記第四の余剰容量値に表示用の変換を行った値、の表示であり、前記ストレージ管理情報は、前記フラッシュメモリデバイスに対する第一の余剰容量値を含み、前記管理システムは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基き、前記論理ユニットに対する前記第四の余剰容量値を算出してもよいことを開示した。
また、本発明の別な視点として、前記管理用の余剰容量値の表示は、前記論理ユニットに対する第四の余剰容量値、又は前記第四の余剰容量値に表示用の変換を行った値、の表示であり、前記管理システムは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基き、前記論理ユニットに対する前記第四の余剰容量値を算出し、前記ストレージ管理情報は、前記第四の余剰容量値を含めてもよいことを開示した。
また、本発明の別な視点として、前記管理システムは、前記管理用の余剰容量値を評価するポリシーを格納し、前記管理システムは、前記ストレージ管理情報と前記ポリシーに基いて、前記論理ユニットに対応する前記フラッシュメモリデバイスの余剰領域が不足と判断した前記論理ユニットを低更新頻度用途と表示又は管理してもよいことを開示した。
また、本発明の別な視点として、前記計算機はアーカイブプログラムを実行し、前記管理システムは、前記低更新頻度用途と判断した前記論理ユニットを前記アーカイブプログラムに割り当てる割り当てリクエストを、前記計算機に送信してもよいことを開示した。
また、本発明の別な視点として、前記管理システムは、前記低更新頻度用途と判断した論理ユニットを移行先とするデータマイグレーションリクエストを、前記ストレージシステムに送信してもよいことを開示した。
また、本発明の別な視点として、計算機と、フラッシュメモリデバイスを用いて前記計算機に論理ユニットを提供するストレージシステムと、を管理する管理システムであって、前記管理システムは、前記ストレージシステムからフラッシュメモリデバイスの余剰領域の容量に関する値である第一の余剰容量値を受信するポートと、ストレージの構成情報及び前記第一の余剰容量値を格納する管理側ストレージ構成情報を格納したメモリと、前記ポートを用いてストレージシステムを監視するプロセッサと、前記管理側ストレージ構成情報を用いてストレージシステムの状態を表示する入出力装置と、を有し、前記プロセッサは、前記管理側ストレージ管理情報に基いて、前記ストレージシステムに関連する管理用の余剰容量値を生成し、前記入出力装置は前記管理用の余剰容量値を表示することを開示した。
また、本発明の別な視点として、前記管理側ストレージ構成情報は、前記ストレージシステムに定義されたパリティグループに対する第二の余剰容量値を格納し、前記管理用の余剰容量値は、前記パリティグループに対する第二の余剰容量値としてもよいことを開示した。
また、本発明の別な視点として、計算機と、フラッシュメモリデバイスを用いて前記計算機に論理ユニットを提供するストレージシステムと、を管理する管理システムにおける管理方法であって、前記管理システムは、前記ストレージシステムからフラッシュメモリデバイスの余剰領域の容量に関する値である第一の余剰容量値を受信し、前記管理システムは、ストレージの構成情報及び前記第一の余剰容量値を格納する管理側ストレージ構成情報を格納し、前記管理システムは、前記管理側ストレージ管理情報に基いて、前記ストレージシステムに関連する管理用の余剰容量値を生成し、前記管理システムは、前記管理システムが有する入出力装置を用いて前記管理用の余剰容量値を表示することを開示した。
しかし、本発明はこれら以外の視点についても開示されている。
1000…ストレージシステム 1010…コントローラ 1020…キャッシュメモリ 1030…FMD(フラッシュメモリデバイス) 1200…管理サーバ

Claims (15)

  1. 計算機と、
    フラッシュメモリデバイスと、ストレージ構成情報を有するストレージコントローラと、キャッシュメモリと、を有し、前記フラッシュメモリデバイスを用いて前記計算機に論理ユニットを提供するストレージシステムと、
    前記ストレージシステムと前記計算機とを管理する管理システムと、
    を有する情報システムであって、
    前記ストレージコントローラは、前記フラッシュメモリデバイスの余剰領域の容量に基く値である第一の余剰容量値をストレージ構成情報に記憶し、前記ストレージ構成情報に基いてストレージ管理情報を生成し、前記ストレージ管理情報を前記管理システムへ送信し、
    前記管理システムは、前記ストレージ管理情報を受信し、前記ストレージ管理情報に基いて、前記ストレージシステムに関連する管理用の余剰容量値を表示する、
    ことを特徴とした情報システム。
  2. 請求項1記載の情報システムであって、
    前記ストレージコントローラは、前記フラッシュメモリデバイスを用いたパリティグループの定義を示す情報と、前記論理ユニットと前記パリティグループとの対応を示す情報と、を前記ストレージ構成情報に格納し、
    前記ストレージコントローラは、前記パリティグループの定義に基いて、前記論理ユニットを指定したライトリクエストのライトデータを、前記指定された論理ユニット対応する前記パリティグループに属する前記フラッシュメモリデバイスに、分散または冗長化して書き込み、
    前記管理用の余剰容量値の表示は、前記パリティグループに対する第二の余剰容量値、又は前記第二の余剰容量値に表示用の変換を行った値、の表示である、
    ことを特徴とした情報システム。
  3. 請求項2記載の情報システムであって、
    前記ストレージ管理情報は、前記フラッシュメモリデバイスに対する第一の余剰容量値を含み、
    前記管理システムは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基き、前記パリティグループに対する前記第二の余剰容量値を算出する、
    ことを特徴とした情報システム。
  4. 請求項2記載の情報システムであって、
    前記ストレージコントローラは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基いて、前記パリティグループに対する前記第二の余剰容量値を算出し、
    前記ストレージ管理情報は、前記第二の余剰容量値を含む、
    ことを特徴とした情報システム。
  5. 請求項1記載の情報システムであって、
    前記ストレージコントローラは、前記フラッシュメモリデバイスを用いたパリティグループの定義を示す情報と、前記パリティグループを用いて定義する内部論理ユニットとの対応を示す情報と、前記内部論理ユニットと前記論理ユニットとの対応を示す情報と、を前記ストレージ構成情報に格納し、
    前記ストレージコントローラは、前記論理ユニットを指定したデバイス問い合わせリクエストの応答として、前記指定された論理ユニットに対応する内部論理ユニットの識別情報を送信し、
    前記ストレージコントローラは、前記パリティグループの定義及び前記内部論理ユニットの定義に基き、前記指定された論理ユニットを指定したライトリクエストのライトデータを、前記指定された論理ユニットに対応する前記パリティグループに属する、前記フラッシュメモリデバイスに分散または冗長化して書き込み、
    前記管理用の余剰容量値の表示は、前記内部論理ユニットに対する第三の余剰容量値、又は前記第三の余剰容量値に表示用の変換を行った値、の表示である、
    ことを特徴とした情報システム。
  6. 請求項5記載の情報システムであって、
    前記ストレージ管理情報は、前記フラッシュメモリデバイスに対する第一の余剰容量値を含み、
    前記管理システムは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基き、前記内部論理ユニットに対する前記第三の余剰容量値を算出する、
    ことを特徴とした情報システム。
  7. 請求項5記載の情報システムであって、
    前記ストレージコントローラは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基いて、前記内部論理ユニットに対する前記第三の余剰容量値を算出し、
    前記ストレージ管理情報は、前記第三の余剰容量値を含む、
    ことを特徴とした情報システム。
  8. 請求項1記載の情報システムであって、
    前記管理用の余剰容量値の表示は、前記論理ユニットに対する第四の余剰容量値、又は前記第四の余剰容量値に表示用の変換を行った値、の表示であり、
    前記ストレージ管理情報は、前記フラッシュメモリデバイスに対する第一の余剰容量値を含み、
    前記管理システムは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基き、前記論理ユニットに対する前記第四の余剰容量値を算出する、
    ことを特徴とした情報システム。
  9. 請求項1記載の情報システムであって、
    前記管理用の余剰容量値の表示は、前記論理ユニットに対する第四の余剰容量値、又は前記第四の余剰容量値に表示用の変換を行った値、の表示であり、
    前記管理システムは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基き、前記論理ユニットに対する前記第四の余剰容量値を算出し、
    前記ストレージ管理情報は、前記第四の余剰容量値を含む、
    ことを特徴とした情報システム。
  10. 請求項1記載の情報システムであって、
    前記管理システムは、前記管理用の余剰容量値を評価するポリシーを格納し、
    前記管理システムは、前記ストレージ管理情報と前記ポリシーに基いて、前記論理ユニットに対応する前記フラッシュメモリデバイスの余剰領域が不足と判断した前記論理ユニットを低更新頻度用途と表示又は管理する、
    ことを特徴とした情報システム。
  11. 請求項10記載の情報システムであって、
    前記計算機はアーカイブプログラムを実行し、
    前記管理システムは、前記低更新頻度用途と判断した前記論理ユニットを前記アーカイブプログラムに割り当てる割り当てリクエストを、前記計算機に送信する、
    ことを特徴とした情報システム。
  12. 請求項10記載の情報システムであって、
    前記管理システムは、前記低更新頻度用途と判断した論理ユニットを移行先とするデータマイグレーションリクエストを、前記ストレージシステムに送信する、
    ことを特徴とした情報システム。
  13. 計算機と、フラッシュメモリデバイスを用いて前記計算機に論理ユニットを提供するストレージシステムと、を管理する管理システムであって、
    前記管理システムは
    前記ストレージシステムからフラッシュメモリデバイスの余剰領域の容量に関する値である第一の余剰容量値を受信するポートと、
    ストレージの構成情報及び前記第一の余剰容量値を格納する管理側ストレージ構成情報を格納したメモリと、
    前記ポートを用いてストレージシステムを監視するプロセッサと、
    前記管理側ストレージ構成情報を用いてストレージシステムの状態を表示する入出力装置と、
    を有し、
    前記プロセッサは、前記管理側ストレージ管理情報に基いて、前記ストレージシステムに関連する管理用の余剰容量値を生成し、
    前記入出力装置は前記管理用の余剰容量値を表示する、
    ことを特徴とした情報システム。
  14. 請求項13記載の管理システムであって、
    前記管理側ストレージ構成情報は、前記ストレージシステムに定義されたパリティグループに対する第二の余剰容量値を格納し、
    前記管理用の余剰容量値は、前記パリティグループに対する第二の余剰容量値である、
    ことを特徴とした管理システム。
  15. 計算機と、フラッシュメモリデバイスを用いて前記計算機に論理ユニットを提供するストレージシステムと、を管理する管理システムにおける管理方法であって、
    前記管理システムは、前記ストレージシステムからフラッシュメモリデバイスの余剰領域の容量に関する値である第一の余剰容量値を受信し、
    前記管理システムは、ストレージの構成情報及び前記第一の余剰容量値を格納する管理側ストレージ構成情報を格納し、
    前記管理システムは、前記管理側ストレージ管理情報に基いて、前記ストレージシステムに関連する管理用の余剰容量値を生成し、
    前記管理システムは、前記管理システムが有する入出力装置を用いて前記管理用の余剰容量値を表示する、
    ことを特徴とした情報システム。
JP2009147182A 2009-06-22 2009-06-22 フラッシュメモリを用いたストレージシステムの管理方法及び計算機 Expired - Fee Related JP4874368B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2009147182A JP4874368B2 (ja) 2009-06-22 2009-06-22 フラッシュメモリを用いたストレージシステムの管理方法及び計算機
US12/546,395 US8909848B2 (en) 2009-06-22 2009-08-24 Method for managing storage system using flash memory, and computer
EP10250749A EP2270644A3 (en) 2009-06-22 2010-04-09 Method for managing storage system using flash memory, and computer
US14/539,184 US9069476B2 (en) 2009-06-22 2014-11-12 Method for managing storage system using flash memory, and computer
US14/739,253 US9329957B2 (en) 2009-06-22 2015-06-15 Method for managing storage system using flash memory, and computer
US15/094,208 US20160224257A1 (en) 2009-06-22 2016-04-08 Method for managing storage system using flash memory, and computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009147182A JP4874368B2 (ja) 2009-06-22 2009-06-22 フラッシュメモリを用いたストレージシステムの管理方法及び計算機

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011254575A Division JP5222388B2 (ja) 2011-11-22 2011-11-22 フラッシュメモリを用いたストレージシステムの管理システム及び管理方法

Publications (3)

Publication Number Publication Date
JP2011003111A true JP2011003111A (ja) 2011-01-06
JP2011003111A5 JP2011003111A5 (ja) 2011-04-14
JP4874368B2 JP4874368B2 (ja) 2012-02-15

Family

ID=43355281

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009147182A Expired - Fee Related JP4874368B2 (ja) 2009-06-22 2009-06-22 フラッシュメモリを用いたストレージシステムの管理方法及び計算機

Country Status (2)

Country Link
US (4) US8909848B2 (ja)
JP (1) JP4874368B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014038073A1 (ja) * 2012-09-07 2014-03-13 株式会社日立製作所 記憶装置システム
US8904065B2 (en) 2011-03-14 2014-12-02 Kabushiki Kaisha Toshiba Buffer management device, buffer management method, and storage device
JPWO2016001962A1 (ja) * 2014-06-30 2017-04-27 株式会社日立製作所 ストレージシステム及び記憶制御方法
WO2018002999A1 (ja) * 2016-06-28 2018-01-04 株式会社日立製作所 記憶デバイス及びストレージ装置

Families Citing this family (220)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI428917B (zh) * 2009-11-25 2014-03-01 Silicon Motion Inc 快閃記憶裝置、資料儲存系統、以及資料儲存系統之運作方法
US8239584B1 (en) * 2010-12-16 2012-08-07 Emc Corporation Techniques for automated storage management
WO2012168962A1 (en) 2011-06-07 2012-12-13 Hitachi, Ltd. Storage system comprising flash memory, and storage control method
JP5776436B2 (ja) * 2011-08-22 2015-09-09 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
US8984211B2 (en) 2011-12-21 2015-03-17 Hitachi, Ltd. Computer system and management system
US9021201B2 (en) * 2012-01-17 2015-04-28 International Business Machines Corporation Demoting partial tracks from a first cache to a second cache
EP2829976A4 (en) * 2012-03-22 2015-11-11 Nec Corp DISTRIBUTED STORAGE SYSTEM, STORAGE CONTROL METHOD, AND PROGRAM
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US11630585B1 (en) 2016-08-25 2023-04-18 Pure Storage, Inc. Processing evacuation events in a storage array that includes a plurality of storage devices
US9990258B2 (en) 2014-01-31 2018-06-05 Hitachi, Ltd. Management computer and management program
US10133488B2 (en) * 2014-03-17 2018-11-20 Primaryio, Inc. Apparatus and method for cache provisioning, configuration for optimal application performance
US10146437B2 (en) 2014-03-17 2018-12-04 Primaryio, Inc. Tier aware caching solution to increase application performance
US10175885B2 (en) * 2015-01-19 2019-01-08 Toshiba Memory Corporation Memory device managing data in accordance with command and non-transitory computer readable recording medium
US9716755B2 (en) 2015-05-26 2017-07-25 Pure Storage, Inc. Providing cloud storage array services by a local storage array in a data center
US11102298B1 (en) 2015-05-26 2021-08-24 Pure Storage, Inc. Locally providing cloud storage services for fleet management
US9594678B1 (en) 2015-05-27 2017-03-14 Pure Storage, Inc. Preventing duplicate entries of identical data in a storage device
US11503031B1 (en) 2015-05-29 2022-11-15 Pure Storage, Inc. Storage array access control from cloud-based user authorization and authentication
US9444822B1 (en) 2015-05-29 2016-09-13 Pure Storage, Inc. Storage array access control from cloud-based user authorization and authentication
US10021170B2 (en) 2015-05-29 2018-07-10 Pure Storage, Inc. Managing a storage array using client-side services
US9300660B1 (en) 2015-05-29 2016-03-29 Pure Storage, Inc. Providing authorization and authentication in a cloud for a user of a storage array
US9588691B2 (en) 2015-06-10 2017-03-07 Pure Storage, Inc. Dynamically managing control information in a storage device
US9594512B1 (en) 2015-06-19 2017-03-14 Pure Storage, Inc. Attributing consumed storage capacity among entities storing data in a storage array
US9547441B1 (en) * 2015-06-23 2017-01-17 Pure Storage, Inc. Exposing a geometry of a storage device
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US10296236B2 (en) 2015-07-01 2019-05-21 Pure Storage, Inc. Offloading device management responsibilities from a storage device in an array of storage devices
US9892071B2 (en) 2015-08-03 2018-02-13 Pure Storage, Inc. Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array
US9851762B1 (en) 2015-08-06 2017-12-26 Pure Storage, Inc. Compliant printed circuit board (‘PCB’) within an enclosure
US20170046218A1 (en) * 2015-08-11 2017-02-16 Qualcomm Incorporated Systems and methods of memory bit flip identification for debugging and power management
US9846612B2 (en) 2015-08-11 2017-12-19 Qualcomm Incorporated Systems and methods of memory bit flip identification for debugging and power management
US11294588B1 (en) 2015-08-24 2022-04-05 Pure Storage, Inc. Placing data within a storage device
US11625181B1 (en) 2015-08-24 2023-04-11 Pure Storage, Inc. Data tiering using snapshots
US10198194B2 (en) 2015-08-24 2019-02-05 Pure Storage, Inc. Placing data within a storage device of a flash array
US10514978B1 (en) 2015-10-23 2019-12-24 Pure Storage, Inc. Automatic deployment of corrective measures for storage arrays
US9384082B1 (en) 2015-10-23 2016-07-05 Pure Storage, Inc. Proactively providing corrective measures for storage arrays
US11360844B1 (en) 2015-10-23 2022-06-14 Pure Storage, Inc. Recovery of a container storage provider
US10284232B2 (en) 2015-10-28 2019-05-07 Pure Storage, Inc. Dynamic error processing in a storage device
US9740414B2 (en) 2015-10-29 2017-08-22 Pure Storage, Inc. Optimizing copy operations
US10374868B2 (en) 2015-10-29 2019-08-06 Pure Storage, Inc. Distributed command processing in a flash storage system
US10353777B2 (en) 2015-10-30 2019-07-16 Pure Storage, Inc. Ensuring crash-safe forward progress of a system configuration update
US11762764B1 (en) 2015-12-02 2023-09-19 Pure Storage, Inc. Writing data in a storage system that includes a first type of storage device and a second type of storage device
US9760479B2 (en) 2015-12-02 2017-09-12 Pure Storage, Inc. Writing data in a storage system that includes a first type of storage device and a second type of storage device
US11616834B2 (en) 2015-12-08 2023-03-28 Pure Storage, Inc. Efficient replication of a dataset to the cloud
US10326836B2 (en) 2015-12-08 2019-06-18 Pure Storage, Inc. Partially replicating a snapshot between storage systems
US10162835B2 (en) 2015-12-15 2018-12-25 Pure Storage, Inc. Proactive management of a plurality of storage arrays in a multi-array system
US11347697B1 (en) 2015-12-15 2022-05-31 Pure Storage, Inc. Proactively optimizing a storage system
US10379742B2 (en) 2015-12-28 2019-08-13 Netapp, Inc. Storage zone set membership
US10346043B2 (en) 2015-12-28 2019-07-09 Pure Storage, Inc. Adaptive computing for data compression
US20180267714A1 (en) * 2016-01-22 2018-09-20 Hewlett Packard Enterprise Development Lp Managing data in a storage array
US9886314B2 (en) 2016-01-28 2018-02-06 Pure Storage, Inc. Placing workloads in a multi-array system
US10572460B2 (en) 2016-02-11 2020-02-25 Pure Storage, Inc. Compressing data in dependence upon characteristics of a storage system
US9760297B2 (en) 2016-02-12 2017-09-12 Pure Storage, Inc. Managing input/output (‘I/O’) queues in a data storage system
US10514984B2 (en) 2016-02-26 2019-12-24 Netapp, Inc. Risk based rebuild of data objects in an erasure coded storage system
US9959043B2 (en) 2016-03-16 2018-05-01 Pure Storage, Inc. Performing a non-disruptive upgrade of data in a storage system
US10055317B2 (en) * 2016-03-22 2018-08-21 Netapp, Inc. Deferred, bulk maintenance in a distributed storage system
US9990256B1 (en) * 2016-03-30 2018-06-05 EMC IP Holding Company, LLC Storage management system and method
US11112990B1 (en) 2016-04-27 2021-09-07 Pure Storage, Inc. Managing storage device evacuation
US11809727B1 (en) 2016-04-27 2023-11-07 Pure Storage, Inc. Predicting failures in a storage system that includes a plurality of storage devices
US9841921B2 (en) 2016-04-27 2017-12-12 Pure Storage, Inc. Migrating data in a storage array that includes a plurality of storage devices
US9811264B1 (en) 2016-04-28 2017-11-07 Pure Storage, Inc. Deploying client-specific applications in a storage system utilizing redundant system resources
US10303390B1 (en) 2016-05-02 2019-05-28 Pure Storage, Inc. Resolving fingerprint collisions in flash storage system
US11231858B2 (en) 2016-05-19 2022-01-25 Pure Storage, Inc. Dynamically configuring a storage system to facilitate independent scaling of resources
US9507532B1 (en) 2016-05-20 2016-11-29 Pure Storage, Inc. Migrating data in a storage array that includes a plurality of storage devices and a plurality of write buffer devices
US10691567B2 (en) 2016-06-03 2020-06-23 Pure Storage, Inc. Dynamically forming a failure domain in a storage system that includes a plurality of blades
US10452310B1 (en) 2016-07-13 2019-10-22 Pure Storage, Inc. Validating cabling for storage component admission to a storage array
US11706895B2 (en) 2016-07-19 2023-07-18 Pure Storage, Inc. Independent scaling of compute resources and storage resources in a storage system
US10459652B2 (en) 2016-07-27 2019-10-29 Pure Storage, Inc. Evacuating blades in a storage array that includes a plurality of blades
US10474363B1 (en) 2016-07-29 2019-11-12 Pure Storage, Inc. Space reporting in a storage system
US11886922B2 (en) 2016-09-07 2024-01-30 Pure Storage, Inc. Scheduling input/output operations for a storage system
US10671439B1 (en) 2016-09-07 2020-06-02 Pure Storage, Inc. Workload planning with quality-of-service (‘QOS’) integration
US11531577B1 (en) 2016-09-07 2022-12-20 Pure Storage, Inc. Temporarily limiting access to a storage device
US10146585B2 (en) 2016-09-07 2018-12-04 Pure Storage, Inc. Ensuring the fair utilization of system resources using workload based, time-independent scheduling
US11481261B1 (en) 2016-09-07 2022-10-25 Pure Storage, Inc. Preventing extended latency in a storage system
US11960348B2 (en) 2016-09-07 2024-04-16 Pure Storage, Inc. Cloud-based monitoring of hardware components in a fleet of storage systems
US10908966B1 (en) 2016-09-07 2021-02-02 Pure Storage, Inc. Adapting target service times in a storage system
US10235229B1 (en) 2016-09-07 2019-03-19 Pure Storage, Inc. Rehabilitating storage devices in a storage array that includes a plurality of storage devices
US10331588B2 (en) 2016-09-07 2019-06-25 Pure Storage, Inc. Ensuring the appropriate utilization of system resources using weighted workload based, time-independent scheduling
US11422719B2 (en) * 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US11379132B1 (en) 2016-10-20 2022-07-05 Pure Storage, Inc. Correlating medical sensor data
US10007459B2 (en) 2016-10-20 2018-06-26 Pure Storage, Inc. Performance tuning in a storage system that includes one or more storage devices
US10162566B2 (en) 2016-11-22 2018-12-25 Pure Storage, Inc. Accumulating application-level statistics in a storage system
US11620075B2 (en) 2016-11-22 2023-04-04 Pure Storage, Inc. Providing application aware storage
US10353640B2 (en) * 2016-12-06 2019-07-16 Dell Products L.P. Seamless data migration in a clustered environment
US10198205B1 (en) 2016-12-19 2019-02-05 Pure Storage, Inc. Dynamically adjusting a number of storage devices utilized to simultaneously service write operations
US11461273B1 (en) 2016-12-20 2022-10-04 Pure Storage, Inc. Modifying storage distribution in a storage system that includes one or more storage devices
US10489307B2 (en) 2017-01-05 2019-11-26 Pure Storage, Inc. Periodically re-encrypting user data stored on a storage device
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US11340800B1 (en) 2017-01-19 2022-05-24 Pure Storage, Inc. Content masking in a storage system
US10503700B1 (en) 2017-01-19 2019-12-10 Pure Storage, Inc. On-demand content filtering of snapshots within a storage system
US11163624B2 (en) 2017-01-27 2021-11-02 Pure Storage, Inc. Dynamically adjusting an amount of log data generated for a storage system
JP2018136719A (ja) * 2017-02-21 2018-08-30 富士ゼロックス株式会社 送受信システム、情報処理装置、および、プログラム
US10521344B1 (en) 2017-03-10 2019-12-31 Pure Storage, Inc. Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems
US11675520B2 (en) 2017-03-10 2023-06-13 Pure Storage, Inc. Application replication among storage systems synchronously replicating a dataset
US10454810B1 (en) 2017-03-10 2019-10-22 Pure Storage, Inc. Managing host definitions across a plurality of storage systems
US11442825B2 (en) 2017-03-10 2022-09-13 Pure Storage, Inc. Establishing a synchronous replication relationship between two or more storage systems
US11169727B1 (en) 2017-03-10 2021-11-09 Pure Storage, Inc. Synchronous replication between storage systems with virtualized storage
US11089105B1 (en) 2017-12-14 2021-08-10 Pure Storage, Inc. Synchronously replicating datasets in cloud-based storage systems
US10503427B2 (en) 2017-03-10 2019-12-10 Pure Storage, Inc. Synchronously replicating datasets and other managed objects to cloud-based storage systems
US11941279B2 (en) 2017-03-10 2024-03-26 Pure Storage, Inc. Data path virtualization
US11803453B1 (en) 2017-03-10 2023-10-31 Pure Storage, Inc. Using host connectivity states to avoid queuing I/O requests
US9910618B1 (en) 2017-04-10 2018-03-06 Pure Storage, Inc. Migrating applications executing on a storage system
US10459664B1 (en) 2017-04-10 2019-10-29 Pure Storage, Inc. Virtualized copy-by-reference
US11868629B1 (en) 2017-05-05 2024-01-09 Pure Storage, Inc. Storage system sizing service
US11422731B1 (en) 2017-06-12 2022-08-23 Pure Storage, Inc. Metadata-based replication of a dataset
CN110720088A (zh) 2017-06-12 2020-01-21 净睿存储股份有限公司 集成到大容量存储设备的可访问快速耐久存储
US11210133B1 (en) 2017-06-12 2021-12-28 Pure Storage, Inc. Workload mobility between disparate execution environments
US10976962B2 (en) 2018-03-15 2021-04-13 Pure Storage, Inc. Servicing I/O operations in a cloud-based storage system
US10789020B2 (en) 2017-06-12 2020-09-29 Pure Storage, Inc. Recovering data within a unified storage element
US11016824B1 (en) 2017-06-12 2021-05-25 Pure Storage, Inc. Event identification with out-of-order reporting in a cloud-based environment
US10552090B2 (en) 2017-09-07 2020-02-04 Pure Storage, Inc. Solid state drives with multiple types of addressable memory
US11592991B2 (en) 2017-09-07 2023-02-28 Pure Storage, Inc. Converting raid data between persistent storage types
US11340939B1 (en) 2017-06-12 2022-05-24 Pure Storage, Inc. Application-aware analytics for storage systems
US11609718B1 (en) 2017-06-12 2023-03-21 Pure Storage, Inc. Identifying valid data after a storage system recovery
US10853148B1 (en) 2017-06-12 2020-12-01 Pure Storage, Inc. Migrating workloads between a plurality of execution environments
US10417092B2 (en) 2017-09-07 2019-09-17 Pure Storage, Inc. Incremental RAID stripe update parity calculation
US10613791B2 (en) 2017-06-12 2020-04-07 Pure Storage, Inc. Portable snapshot replication between storage systems
US10884636B1 (en) 2017-06-12 2021-01-05 Pure Storage, Inc. Presenting workload performance in a storage system
US11442669B1 (en) 2018-03-15 2022-09-13 Pure Storage, Inc. Orchestrating a virtual storage system
US11561714B1 (en) 2017-07-05 2023-01-24 Pure Storage, Inc. Storage efficiency driven migration
US10795583B2 (en) * 2017-07-19 2020-10-06 Samsung Electronics Co., Ltd. Automatic data placement manager in multi-tier all-flash datacenter
US11477280B1 (en) 2017-07-26 2022-10-18 Pure Storage, Inc. Integrating cloud storage services
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US11455168B1 (en) 2017-10-19 2022-09-27 Pure Storage, Inc. Batch building for deep learning training workloads
US10671435B1 (en) 2017-10-19 2020-06-02 Pure Storage, Inc. Data transformation caching in an artificial intelligence infrastructure
US10360214B2 (en) 2017-10-19 2019-07-23 Pure Storage, Inc. Ensuring reproducibility in an artificial intelligence infrastructure
US10452444B1 (en) 2017-10-19 2019-10-22 Pure Storage, Inc. Storage system with compute resources and shared storage resources
US11861423B1 (en) 2017-10-19 2024-01-02 Pure Storage, Inc. Accelerating artificial intelligence (‘AI’) workflows
US11494692B1 (en) 2018-03-26 2022-11-08 Pure Storage, Inc. Hyperscale artificial intelligence and machine learning infrastructure
US10484174B1 (en) 2017-11-01 2019-11-19 Pure Storage, Inc. Protecting an encryption key for data stored in a storage system that includes a plurality of storage devices
US10817392B1 (en) 2017-11-01 2020-10-27 Pure Storage, Inc. Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices
US10467107B1 (en) 2017-11-01 2019-11-05 Pure Storage, Inc. Maintaining metadata resiliency among storage device failures
US10671494B1 (en) 2017-11-01 2020-06-02 Pure Storage, Inc. Consistent selection of replicated datasets during storage system recovery
US10509581B1 (en) 2017-11-01 2019-12-17 Pure Storage, Inc. Maintaining write consistency in a multi-threaded storage system
US10929226B1 (en) 2017-11-21 2021-02-23 Pure Storage, Inc. Providing for increased flexibility for large scale parity
US10990282B1 (en) 2017-11-28 2021-04-27 Pure Storage, Inc. Hybrid data tiering with cloud storage
US10936238B2 (en) 2017-11-28 2021-03-02 Pure Storage, Inc. Hybrid data tiering
US10795598B1 (en) 2017-12-07 2020-10-06 Pure Storage, Inc. Volume migration for storage systems synchronously replicating a dataset
US11036677B1 (en) 2017-12-14 2021-06-15 Pure Storage, Inc. Replicated data integrity
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10992533B1 (en) 2018-01-30 2021-04-27 Pure Storage, Inc. Policy based path management
US11861170B2 (en) 2018-03-05 2024-01-02 Pure Storage, Inc. Sizing resources for a replication target
US11150834B1 (en) 2018-03-05 2021-10-19 Pure Storage, Inc. Determining storage consumption in a storage system
US10521151B1 (en) 2018-03-05 2019-12-31 Pure Storage, Inc. Determining effective space utilization in a storage system
US10942650B1 (en) 2018-03-05 2021-03-09 Pure Storage, Inc. Reporting capacity utilization in a storage system
US10296258B1 (en) 2018-03-09 2019-05-21 Pure Storage, Inc. Offloading data storage to a decentralized storage network
US10917471B1 (en) 2018-03-15 2021-02-09 Pure Storage, Inc. Active membership in a cloud-based storage system
US11048590B1 (en) 2018-03-15 2021-06-29 Pure Storage, Inc. Data consistency during recovery in a cloud-based storage system
US11288138B1 (en) 2018-03-15 2022-03-29 Pure Storage, Inc. Recovery from a system fault in a cloud-based storage system
US11210009B1 (en) 2018-03-15 2021-12-28 Pure Storage, Inc. Staging data in a cloud-based storage system
US10924548B1 (en) 2018-03-15 2021-02-16 Pure Storage, Inc. Symmetric storage using a cloud-based storage system
US11171950B1 (en) 2018-03-21 2021-11-09 Pure Storage, Inc. Secure cloud-based storage system management
US11095706B1 (en) 2018-03-21 2021-08-17 Pure Storage, Inc. Secure cloud-based storage system management
US10838833B1 (en) 2018-03-26 2020-11-17 Pure Storage, Inc. Providing for high availability in a data analytics pipeline without replicas
US11392553B1 (en) 2018-04-24 2022-07-19 Pure Storage, Inc. Remote data management
US11436344B1 (en) 2018-04-24 2022-09-06 Pure Storage, Inc. Secure encryption in deduplication cluster
US11954220B2 (en) 2018-05-21 2024-04-09 Pure Storage, Inc. Data protection for container storage
US11128578B2 (en) 2018-05-21 2021-09-21 Pure Storage, Inc. Switching between mediator services for a storage system
US11455409B2 (en) 2018-05-21 2022-09-27 Pure Storage, Inc. Storage layer data obfuscation
US11675503B1 (en) 2018-05-21 2023-06-13 Pure Storage, Inc. Role-based data access
US10871922B2 (en) 2018-05-22 2020-12-22 Pure Storage, Inc. Integrated storage management between storage systems and container orchestrators
US11403000B1 (en) 2018-07-20 2022-08-02 Pure Storage, Inc. Resiliency in a cloud-based storage system
US11416298B1 (en) 2018-07-20 2022-08-16 Pure Storage, Inc. Providing application-specific storage by a storage system
US11146564B1 (en) 2018-07-24 2021-10-12 Pure Storage, Inc. Login authentication in a cloud storage platform
US11954238B1 (en) 2018-07-24 2024-04-09 Pure Storage, Inc. Role-based access control for a storage system
US11632360B1 (en) 2018-07-24 2023-04-18 Pure Storage, Inc. Remote access to a storage device
US20200034041A1 (en) * 2018-07-30 2020-01-30 EMC IP Holding Company LLC Utilizing groups of data protection policies that are assignable to storage objects
US11860820B1 (en) 2018-09-11 2024-01-02 Pure Storage, Inc. Processing data through a storage system in a data pipeline
US10671302B1 (en) 2018-10-26 2020-06-02 Pure Storage, Inc. Applying a rate limit across a plurality of storage systems
US11023179B2 (en) 2018-11-18 2021-06-01 Pure Storage, Inc. Cloud-based storage system storage management
US10963189B1 (en) 2018-11-18 2021-03-30 Pure Storage, Inc. Coalescing write operations in a cloud-based storage system
US11340837B1 (en) 2018-11-18 2022-05-24 Pure Storage, Inc. Storage system management via a remote console
US11526405B1 (en) 2018-11-18 2022-12-13 Pure Storage, Inc. Cloud-based disaster recovery
CN109542727B (zh) * 2018-11-19 2021-10-29 郑州云海信息技术有限公司 一种信息提示方法和装置
US11650749B1 (en) 2018-12-17 2023-05-16 Pure Storage, Inc. Controlling access to sensitive data in a shared dataset
US11003369B1 (en) 2019-01-14 2021-05-11 Pure Storage, Inc. Performing a tune-up procedure on a storage device during a boot process
US11042452B1 (en) 2019-03-20 2021-06-22 Pure Storage, Inc. Storage system data recovery using data recovery as a service
US11221778B1 (en) 2019-04-02 2022-01-11 Pure Storage, Inc. Preparing data for deduplication
US11068162B1 (en) 2019-04-09 2021-07-20 Pure Storage, Inc. Storage management in a cloud data store
US11392555B2 (en) 2019-05-15 2022-07-19 Pure Storage, Inc. Cloud-based file services
US11853266B2 (en) 2019-05-15 2023-12-26 Pure Storage, Inc. Providing a file system in a cloud environment
US11327676B1 (en) 2019-07-18 2022-05-10 Pure Storage, Inc. Predictive data streaming in a virtual storage system
US11126364B2 (en) 2019-07-18 2021-09-21 Pure Storage, Inc. Virtual storage system architecture
US11093139B1 (en) 2019-07-18 2021-08-17 Pure Storage, Inc. Durably storing data within a virtual storage system
US11861221B1 (en) 2019-07-18 2024-01-02 Pure Storage, Inc. Providing scalable and reliable container-based storage services
US11487715B1 (en) 2019-07-18 2022-11-01 Pure Storage, Inc. Resiliency in a cloud-based storage system
US11526408B2 (en) 2019-07-18 2022-12-13 Pure Storage, Inc. Data recovery in a virtual storage system
US11550514B2 (en) 2019-07-18 2023-01-10 Pure Storage, Inc. Efficient transfers between tiers of a virtual storage system
US11086553B1 (en) 2019-08-28 2021-08-10 Pure Storage, Inc. Tiering duplicated objects in a cloud-based object store
JP2021034091A (ja) 2019-08-29 2021-03-01 キオクシア株式会社 メモリシステムおよび制御方法
US11693713B1 (en) 2019-09-04 2023-07-04 Pure Storage, Inc. Self-tuning clusters for resilient microservices
US11797569B2 (en) 2019-09-13 2023-10-24 Pure Storage, Inc. Configurable data replication
US11360689B1 (en) 2019-09-13 2022-06-14 Pure Storage, Inc. Cloning a tracking copy of replica data
US11573864B1 (en) 2019-09-16 2023-02-07 Pure Storage, Inc. Automating database management in a storage system
US11669386B1 (en) 2019-10-08 2023-06-06 Pure Storage, Inc. Managing an application's resource stack
US11119855B2 (en) * 2019-10-24 2021-09-14 International Business Machines Corporation Selectively storing parity data in different types of memory
US20210173945A1 (en) 2019-12-06 2021-06-10 Pure Storage, Inc. Replicating data to a storage system that has an inferred trust relationship with a client
US11733901B1 (en) 2020-01-13 2023-08-22 Pure Storage, Inc. Providing persistent storage to transient cloud computing services
US11720497B1 (en) 2020-01-13 2023-08-08 Pure Storage, Inc. Inferred nonsequential prefetch based on data access patterns
US11709636B1 (en) 2020-01-13 2023-07-25 Pure Storage, Inc. Non-sequential readahead for deep learning training
US11637896B1 (en) 2020-02-25 2023-04-25 Pure Storage, Inc. Migrating applications to a cloud-computing environment
US11868622B2 (en) 2020-02-25 2024-01-09 Pure Storage, Inc. Application recovery across storage systems
JP7316242B2 (ja) * 2020-03-18 2023-07-27 株式会社日立製作所 ストレージシステムおよびデータ転送方法
US11321006B1 (en) 2020-03-25 2022-05-03 Pure Storage, Inc. Data loss prevention during transitions from a replication source
US11301152B1 (en) 2020-04-06 2022-04-12 Pure Storage, Inc. Intelligently moving data between storage systems
US11630598B1 (en) 2020-04-06 2023-04-18 Pure Storage, Inc. Scheduling data replication operations
US11494267B2 (en) 2020-04-14 2022-11-08 Pure Storage, Inc. Continuous value data redundancy
US11921670B1 (en) 2020-04-20 2024-03-05 Pure Storage, Inc. Multivariate data backup retention policies
US11431488B1 (en) 2020-06-08 2022-08-30 Pure Storage, Inc. Protecting local key generation using a remote key management service
US11349917B2 (en) 2020-07-23 2022-05-31 Pure Storage, Inc. Replication handling among distinct networks
US11442652B1 (en) 2020-07-23 2022-09-13 Pure Storage, Inc. Replication handling during storage system transportation
US11397545B1 (en) 2021-01-20 2022-07-26 Pure Storage, Inc. Emulating persistent reservations in a cloud-based storage system
US11853285B1 (en) 2021-01-22 2023-12-26 Pure Storage, Inc. Blockchain logging of volume-level events in a storage system
US20220365827A1 (en) 2021-05-12 2022-11-17 Pure Storage, Inc. Rebalancing In A Fleet Of Storage Systems Using Data Science
US11816129B2 (en) 2021-06-22 2023-11-14 Pure Storage, Inc. Generating datasets using approximate baselines
US11714723B2 (en) 2021-10-29 2023-08-01 Pure Storage, Inc. Coordinated snapshots for data stored across distinct storage environments
US11893263B2 (en) 2021-10-29 2024-02-06 Pure Storage, Inc. Coordinated checkpoints among storage systems implementing checkpoint-based replication
US11914867B2 (en) 2021-10-29 2024-02-27 Pure Storage, Inc. Coordinated snapshots among storage systems implementing a promotion/demotion model
US11922052B2 (en) 2021-12-15 2024-03-05 Pure Storage, Inc. Managing links between storage objects
US11847071B2 (en) 2021-12-30 2023-12-19 Pure Storage, Inc. Enabling communication between a single-port device and multiple storage system controllers
US11860780B2 (en) 2022-01-28 2024-01-02 Pure Storage, Inc. Storage cache management
US11886295B2 (en) 2022-01-31 2024-01-30 Pure Storage, Inc. Intra-block error correction

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003046931A (ja) * 2001-08-01 2003-02-14 Canon Inc 情報管理装置及び方法
JP2003223342A (ja) * 2002-01-28 2003-08-08 Toshiba Corp 情報蓄積管理装置
JP2007323224A (ja) * 2006-05-31 2007-12-13 Hitachi Ltd フラッシュメモリストレージシステム
WO2008032711A1 (fr) * 2006-09-13 2008-03-20 Panasonic Corporation Contrôleur mémoire, dispositif de stockage non volatil, dispositif d'accès et système de stockage non volatil
JP2008070935A (ja) * 2006-09-12 2008-03-27 Hitachi Ltd ストレージシステムの論理ボリューム管理方法、論理ボリューム管理プログラム、及びストレージシステム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7190617B1 (en) 1989-04-13 2007-03-13 Sandisk Corporation Flash EEprom system
US6347997B1 (en) * 1997-10-01 2002-02-19 Brad A. Armstrong Analog controls housed with electronic displays
JP3507132B2 (ja) 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
US5920884A (en) 1996-09-24 1999-07-06 Hyundai Electronics America, Inc. Nonvolatile memory interface protocol which selects a memory device, transmits an address, deselects the device, subsequently reselects the device and accesses data
JP3242890B2 (ja) 1998-12-16 2001-12-25 株式会社ハギワラシスコム 記憶装置
JP2005100259A (ja) 2003-09-26 2005-04-14 Hitachi Ltd ドライブの2重障害を防止するアレイ型ディスク装置、プログラム、及び方法
JP2005190288A (ja) * 2003-12-26 2005-07-14 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
US7096338B2 (en) 2004-08-30 2006-08-22 Hitachi, Ltd. Storage system and data relocation control device
TW200805311A (en) * 2006-07-05 2008-01-16 Dotop Technology Inc External hard drive with capacity indicator
TWI358068B (en) * 2007-10-19 2012-02-11 Phison Electronics Corp Writing method for non-volatile memory and control
TWI354996B (en) * 2007-12-31 2011-12-21 Phison Electronics Corp Wear leveling method and controller thereof
US8291152B2 (en) * 2009-01-07 2012-10-16 Silicon Motion, Inc. Method for operating non-volatile memory and data storage system using the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003046931A (ja) * 2001-08-01 2003-02-14 Canon Inc 情報管理装置及び方法
JP2003223342A (ja) * 2002-01-28 2003-08-08 Toshiba Corp 情報蓄積管理装置
JP2007323224A (ja) * 2006-05-31 2007-12-13 Hitachi Ltd フラッシュメモリストレージシステム
JP2008070935A (ja) * 2006-09-12 2008-03-27 Hitachi Ltd ストレージシステムの論理ボリューム管理方法、論理ボリューム管理プログラム、及びストレージシステム
WO2008032711A1 (fr) * 2006-09-13 2008-03-20 Panasonic Corporation Contrôleur mémoire, dispositif de stockage non volatil, dispositif d'accès et système de stockage non volatil

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904065B2 (en) 2011-03-14 2014-12-02 Kabushiki Kaisha Toshiba Buffer management device, buffer management method, and storage device
WO2014038073A1 (ja) * 2012-09-07 2014-03-13 株式会社日立製作所 記憶装置システム
JP5820078B2 (ja) * 2012-09-07 2015-11-24 株式会社日立製作所 記憶装置システム
JPWO2016001962A1 (ja) * 2014-06-30 2017-04-27 株式会社日立製作所 ストレージシステム及び記憶制御方法
WO2018002999A1 (ja) * 2016-06-28 2018-01-04 株式会社日立製作所 記憶デバイス及びストレージ装置

Also Published As

Publication number Publication date
US9329957B2 (en) 2016-05-03
JP4874368B2 (ja) 2012-02-15
US20100325345A1 (en) 2010-12-23
US20150074342A1 (en) 2015-03-12
US20160224257A1 (en) 2016-08-04
US8909848B2 (en) 2014-12-09
US9069476B2 (en) 2015-06-30
US20150278054A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
JP4874368B2 (ja) フラッシュメモリを用いたストレージシステムの管理方法及び計算機
JP4818812B2 (ja) フラッシュメモリストレージシステム
US8984221B2 (en) Method for assigning storage area and computer system using the same
JP5502232B2 (ja) ストレージシステム、及びその制御方法
JP5451875B2 (ja) 計算機システム及びその記憶制御方法
US9658779B2 (en) Computer system and control method for computer system
JP5427630B2 (ja) 動的ページ再割当てストレージシステムにおけるアプリケーション及び階層構成の管理
US9477405B2 (en) Storage system
US8539142B2 (en) Storage system comprising nonvolatile semiconductor storage media
US8578121B2 (en) Computer system and control method of the same
US8667098B2 (en) Cluster storage setting method, system, and management system
GB2536514A (en) Storage device and method for controlling storage device
JP2007310495A (ja) 計算機システム
WO2015198441A1 (ja) 計算機システム、管理計算機、および管理方法
JP5597266B2 (ja) ストレージシステム
JP5222388B2 (ja) フラッシュメモリを用いたストレージシステムの管理システム及び管理方法
EP2270644A2 (en) Method for managing storage system using flash memory, and computer

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110228

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110228

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110630

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

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

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141202

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4874368

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees