JP2021005121A - ストレージ装置、及び制御方法 - Google Patents

ストレージ装置、及び制御方法 Download PDF

Info

Publication number
JP2021005121A
JP2021005121A JP2019116944A JP2019116944A JP2021005121A JP 2021005121 A JP2021005121 A JP 2021005121A JP 2019116944 A JP2019116944 A JP 2019116944A JP 2019116944 A JP2019116944 A JP 2019116944A JP 2021005121 A JP2021005121 A JP 2021005121A
Authority
JP
Japan
Prior art keywords
address
stored
address translation
information
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019116944A
Other languages
English (en)
Inventor
幸恵 田島
Yukie Tajima
幸恵 田島
晋太郎 伊藤
Shintaro Ito
晋太郎 伊藤
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 JP2019116944A priority Critical patent/JP2021005121A/ja
Priority to CN202010107143.8A priority patent/CN112214162A/zh
Priority to US16/808,259 priority patent/US11372583B2/en
Publication of JP2021005121A publication Critical patent/JP2021005121A/ja
Pending legal-status Critical Current

Links

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/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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/217Hybrid disk, e.g. using both magnetic and solid state storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】電力の供給が停止する前に管理されていたデータに対して適切にアクセスできるようにする。【解決手段】ホスト計算機120からのI/O要求を受け付け、I/O要求に対応するI/O処理を実行するストレージ装置100において、CPU101と、不揮発媒体103と、不揮発媒体103よりもアクセス性能が高いメモリ102と、を備え、CPU101は、I/O処理を実行する制御に関わる制御用情報を、メモリ102及び不揮発媒体103に格納し、不揮発媒体103に格納される制御用情報には、I/O要求の対象のデータが格納されるドライブ104の物理アドレスと、物理アドレスに格納されるデータの論理的な領域を示す論理アドレスと、を変換するためのアドレス変換情報が含まれるようにする。【選択図】図1

Description

本発明は、ストレージ装置で管理されるユーザデータへのアクセス制御に関わる制御用情報を管理する技術に関する。
ストレージ装置においては,停電等が発生して電源からの給電がなくなり、その後、電源からの給電が復旧した復電後に、停電等の発生前に作成したユーザデータ(単にデータともいう)にアクセスできることが要請されている。
ストレージ装置は、ストレージ装置が有する制御用情報を用いて、データへのI/O処理(アクセス処理)を実施している。そのため、復電時に停電前と同様のI/O処理を実現するには、復電時に停電前と同等の制御用情報を有しておく必要がある。
例えば、特許文献1には、データを揮発性メモリに格納し、停電等が発生して電源からの給電がなくなった場合に、バッテリからの給電により、揮発性メモリのデータを不揮発メモリにコピーする技術が開示されている。
特開2008−108026号公報
例えば、ストレージ装置が、ストレージ制御プログラムを汎用サーバ上で動作させることにより構成されるSDS(Software Defined Storage)である場合においては、SDSを構成する汎用サーバがバッテリを搭載していない場合には、停電発生時にバッテリ給電により、制御用情報を不揮発媒体にコピーすることができない。
また、バッテリを有するストレージ装置であっても、バッテリの異常等によって、停電発生時にバッテリ給電を適切に行うことができずに、制御用情報を不揮発媒体にコピーすることができない虞がある。
本発明は、上記事情に鑑みなされたものであり、その目的は、電力の供給が停止する前に管理されていたデータに対して適切にアクセスすることができる技術を提供することにある。
上記目的を達成するため、一観点に係るストレージ装置は、ホスト計算機からのI/O要求を受け付け、I/O要求に対応するI/O処理を実行するストレージ装置であって、プロセッサ部と、不揮発媒体と、不揮発媒体よりもアクセス性能が高いメモリと、を備え、プロセッサ部は、I/O処理を実行する制御に関わる制御用情報を、メモリ及び不揮発媒体に格納し、不揮発媒体に格納される制御用情報には、I/O要求の対象のデータが格納される記憶デバイスの物理アドレスと、物理アドレスに格納されるデータの論理的な領域を示す論理アドレスと、を変換するためのアドレス変換情報が含まれる。
本発明によれば、電力の供給が停止する前に管理されていたデータに対して適切にアクセスすることができる。
図1は、第1実施形態に係る計算機システムの全体構成図である。 図2は、第1実施形態に係るストレージ装置のメモリの構成図である。 図3は、第1実施形態に係るメモリ、不揮発媒体、及びドライブに格納された情報を説明する図である。 図4は、第1実施形態に係る論物アドレス変換テーブルの構成図である。 図5は、第1実施形態に係る物論アドレス変換テーブルの構成図である。 図6は、第1実施形態に係るモニタ情報の構成図である。 図7は、第1実施形態に係るキャッシュの構成図である。 図8は、第1実施形態に係るI/O処理のフローチャートである。 図9は、第1実施形態に係る物理アドレス取得処理のフローチャートである。 図10は、第1実施形態に係るデータアクセス処理のフローチャートである。 図11は、第1実施形態に係るモニタ情報取得処理のフローチャートである。 図12は、第1実施形態に係るモニタ情報表示処理のフローチャートである。 図13は、第1実施形態に係る性能情報表示画面の構成図である。 図14は、第1実施形態に係る起動処理のフローチャートである。 図15は、第1実施形態に係る論物テーブル更新処理のフローチャートである。 図16は、第1実施形態に係る終了処理のフローチャートである。 図17は、第2実施形態に係る計算機システムの全体構成図である。 図18は、第2実施形態に係る不揮発メモリに格納された情報を説明する図である。 図19は、第3実施形態に係るメモリ及び不揮発メモリに格納された情報を説明する図である。
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
以下の説明では、「AAAテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAAテーブル」を「AAA情報」と呼ぶことができる。
また、以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサである。1以上のプロセッサの各々は、シングルコアでもよいしマルチコアでもよい。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
また、以下の説明では、「プログラム」を動作主体として処理を説明する場合があるが、プログラムは、プロセッサ部によって実行されることで、定められた処理を、適宜に記憶部(メモリ等)及びインターフェース部のうちの少なくとも1つを用いながら行うため、処理の主語が、プロセッサ部(或いは、プロセッサ部を有する計算機又は計算機システム)とされてもよい。プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記憶メディアであってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。また、プログラムが実行されることによって実現される処理のうちの少なくとも一部が、ハードウェア回路(例えばASIC(Application Specific Integrated Circuit)又はFPGA(Field-Programmable Gate Array))によって実現されてもよい。
図1は、第1実施形態に係る計算機システムの全体構成図である。
計算機システム1は、1台以上のストレージ装置100と、1台以上の管理用計算機110と、1台以上のホスト計算機120とを備える。ストレージ装置100と、管理用計算機110と、ホスト計算機120とは、全て又は一部が、同一の物理計算機で構成されていてもよい。
ストレージ装置100と、管理用計算機110と、ホスト計算機120とは、ネットワーク130を介して接続されている。ネットワーク130は、有線LAN(Local Area Network)、無線LAN、インターネット等により構成される。なお、ストレージ装置100と管理用計算機110とを接続するネットワークと、ストレージ装置100とホスト計算機120とを接続するネットワークとは、別のネットワークであってもよい。
ホスト計算機120は、例えば、アプリケーションプログラムを実行する計算機である。ホスト計算機120は、ストレージ装置100が提供する論理的な記憶領域(仮想ボリューム)にネットワーク130経由でアクセスする。ホスト計算機120は、ストレージ装置100に対して、I/O(Input/Output)要求であるリード要求やライト要求を発行することで、ストレージ装置100の仮想ボリュームに格納されたデータ(ユーザデータ)にアクセスする。
管理用計算機110は、リソース管理プログラム111を実行することにより、ストレージ装置100のリソース、例えば、記憶領域の構成等を管理する。
ストレージ装置100は、例えば、汎用サーバやPC(Personal Computer)等の計算機により構成されている。ストレージ装置100は、1つ以上のCPU101と、メモリ102と、不揮発媒体103と、記憶デバイスの一例としてのドライブ104と、を有する。
CPU101は、メモリ102及び/又はドライブ104に格納されているプログラムに従って各種処理を実行する。メモリ102は、例えば、RAM(Random Access Memory)で構成され、CPU101で実行されるプログラムや、必要な情報を記憶する。メモリ102のレイテンシは、不揮発媒体103のレイテンシよりも短い。ドライブ104は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などであり、CPU101で実行されるプログラムや、CPU101に利用されるデータや、ホスト計算機120で利用されるユーザデータ等を記憶する。
不揮発媒体103は、電源の供給がない場合であってもデータの記憶を維持することのできる媒体であって、例えば、フラッシュメモリ等の不揮発メモリや、HDDやSSD等のドライブであってもよい。なお、図1においては、不揮発媒体103とドライブ104とを別体として表記しているが、ドライブ104を不揮発媒体103として用いるようにしてもよく、この場合には、ドライブ104と別に不揮発媒体103を備える必要がない。
次に、ストレージ装置100のメモリ102の構成について説明する。
図2は、第1実施形態に係るストレージ装置のメモリの構成図である。
ストレージ装置100のメモリ102は、OS(Operating System)200と、1以上のストレージ制御プログラム210と、制御用情報220とを記憶する。制御用情報220は、メモリ102上ではI/O処理で変更があれば都度更新され、ストレージ稼働の正常終了時等の長周期でドライブ104内の制御用情報に反映させる。
OS200は、CPU101に実行されることにより、ストレージ装置100におけるプログラムの実行を制御する処理等を実行する。例えば、OS200は、メモリ102等の記憶領域をストレージ制御プログラム210の仮想アドレス空間300(図3参照)に割り当てる処理等を行う。
ストレージ制御プログラム210は、リソース管理プログラム211と、I/O実施プログラム212とを有する。各プログラムの処理については、後述する。
制御用情報220は、ストレージ制御プログラム210により用いられ、ホスト計算機120からのI/O要求に対応するI/O処理の制御に利用等する情報である。制御用情報220は、物論アドレス変換テーブル221と、論物アドレス変換テーブル222と、モニタ情報223と、キャッシュ224とを含む。なお、制御用情報220に含まれる各種情報については後述する。
次に、ストレージ制御プログラム210が使用する、メモリ102、不揮発媒体103、ドライブ104に格納されている情報について説明する。
図3は、第1実施形態に係るメモリ、不揮発媒体、及びドライブに格納された情報を説明する図である。
メモリ102には、物論アドレス変換テーブル221、論物アドレス変換テーブル222、モニタ情報223、及びキャッシュ224が格納される。
ストレージ制御プログラム210には、OS200によって、CPU101やメモリ102が提供される。OS200によりストレージ制御プログラム210に割り当てられたメモリ102の領域は、ストレージ制御プログラム210におけるアドレス空間、すなわち、仮想アドレス空間300として管理されている。仮想アドレス空間300においては、物論アドレス変換テーブル301、論物アドレス変換テーブル302、モニタ情報303、キャッシュ304が仮想的に格納されている。すなわち、仮想アドレス空間300の物論アドレス変換テーブル301の実体は、メモリ102の物論アドレス変換テーブル221であり、論物アドレス変換テーブル302の実体は、メモリ102の論物アドレス変換テーブル222であり、モニタ情報303の実体は、メモリ102のモニタ情報223であり、キャッシュ304の実体は、メモリ102のキャッシュ224である。
ストレージ制御プログラム210を実行するCPU101は、仮想アドレス空間300上の仮想アドレスを用いて各種情報に対するアクセス要求を発行することにより、各種情報を取得する。このとき、OS200を実行するCPU101は、ストレージ制御プログラム210からのアクセス要求を検出すると、この仮想アドレスをメモリ102上の位置を示す物理アドレスに変換し、物理アドレスを用いてメモリ102上に格納された情報にアクセスを行い、ストレージ制御プログラム210にアクセス結果を返す。
不揮発媒体103には、制御用情報の中の物論アドレス変換テーブル310が格納されている。
ドライブ104には、所定の時点(例えば、ストレージ装置100の前回の終了時点)におけるメモリ102の制御用情報に相当する制御用情報320と、ドライブ104に正常な制御用情報320が格納されているか否かを示す正常格納情報の一例としての格納済みフラグ321が格納されている。格納済みフラグは、ストレージ装置の稼働時には削除され、正常に稼働終了した場合に格納する。ドライブ104に格納される制御用情報320としては、メモリ102における、物論アドレス変換テーブル221と、論物アドレス変換テーブル222と、モニタ情報223と、キャッシュ224とを含んでいてもよいし、物論アドレス変換テーブル221のみであってもよい。
次に、論物アドレス変換テーブル222について詳細に説明する。
ストレージ制御プログラム210は、ドライブ104にI/O要求を発行するプログラムである。ストレージ制御プログラム210は、物理アドレスと、論理アドレスとを使用する。
物理アドレスは、I/O要求を発行する対象のドライブ104のデータの格納位置を一意に識別する値である。物理アドレスは、ドライブ104の記憶領域に対して、シーケンシャルに番号を割り当てたものとなっている。
一方、論理アドレスは、ドライブ104へのアクセスを容易にするためにストレージ制御プログラム210により生成される値であり、ストレージ制御プログラム210が容易に管理できるように、論理的な記憶領域についてのスペースに番号を割り当てたものとなっている。論理アドレスは、例えば、ホスト計算機120に対して通知されるアドレスであり、ホスト計算機120からのI/O要求には、論理アドレスが指定される。論理アドレスと、物理アドレスとは、一対一で対応する。
論物アドレス変換テーブル222は、論理アドレスを物理アドレスに変換する、すなわち、論理アドレスから物理アドレスを一意に特定するためのテーブルである。論理アドレスは、スペースに番号を割り当てたものとなっており、論理アドレス空間は、物理アドレス空間と比較して大きなサイズとなる。そのため、論理アドレスと物理アドレスとの対応関係を1段のテーブルで管理すると、論理アドレス変換テーブル222のデータ量が大きくなってしまう。そこで、本実施形態では、論理アドレス変換テーブル222のデータ量の巨大化を防ぐために、多段のテーブル構成としている。
図4は、第1実施形態に係る論物アドレス変換テーブルの構成図である。
論物アドレス変換テーブル222は、多段テーブル400と、空領域リスト410とを有する。空領域リスト410は、多段テーブル400に割当可能な空領域のエントリ411のリストである。空領域リスト410で管理されるエントリ411には、値が格納されていない。空領域リスト410のエントリ411は、多段テーブル400へのエントリの割当が必要となった時点で、空領域リスト410から解放され、多段テーブル400に割り当てられる。
多段テーブル400は、複数段のテーブル401〜407で構成されている。各段のテーブルは、対象となる論理アドレスに対応するエントリを管理しており、論理アドレスに対応するエントリを識別して、識別したエントリの値によって、下段のテーブルへと辿ることができるようになっている。そして、論理アドレスによって一意に辿ることのできる最下段のテーブルのエントリから、この論理アドレスに対応する物理アドレスを取得することができる。なお、対象となる論理アドレスに対して、物理アドレスが未割当の場合には、論理アドレスによって識別されるエントリが空となっている。例えば、この論理アドレスに物理アドレスを割り当てる場合には、空領域リスト410の末尾のエントリ411を開放し、このエントリを、論理アドレスによって識別されるテーブルのエントリとして用い、このエントリを、割り当てる物理アドレスを取得できるように設定する。
ここで、論物アドレス変換テーブル222を用いて、論理アドレス422(例えば、abcdef)に対応する物理アドレスを取得する例について説明する。まず、一段目のテーブル401から論理アドレス422に対応するエントリ(例えば、000のエントリ)を識別する。このエントリから、2段目のテーブル402に辿ることができる。次いで、2段目のテーブル402から論理アドレス422に対応するエントリを識別する。このエントリから、3段目のテーブル404を辿ることができ、同様にして、4段目のテーブル406に辿ることができる。4段目のテーブル406から論理アドレス422に対応するエントリを識別する。このエントリのポインタを辿ることにより、物理アドレス432(例えば、123456)を取得することができる。
次に、論物アドレス変換テーブル222に対して、論理アドレス421(例えば、02468a)に対応する物理アドレスを登録する例について説明する。まず、論理アドレス421により、各段のテーブルを辿ることにより、4段目のテーブル407を特定することができる。ここで、テーブル407から論理アドレス421に対応するエントリを識別すると、物理アドレスが未割当であるので、エントリが空となっている。この際、空領域リスト410の末尾のエントリ411を空領域リスト410から解放し、4段目のテーブル407のエントリとして割り当てる。次いで、このエントリに、論理アドレス421に割り当てる物理アドレス431へのポインタを格納する。これにより、以降において、論理アドレス421に対応する物理アドレス431を取得することができるようになる。
次に、物論アドレス変換テーブル221について詳細に説明する。
図5は、第1実施形態に係る物論アドレス変換テーブルの構成図である。
物論アドレス変換テーブル221は、物理アドレスを論理アドレスに変換する、すなわち、物理アドレスから論理アドレスを一意に特定するためのテーブルである。物理アドレス空間は、論理アドレス空間よりもサイズが小さい。このため、物論アドレス変換テーブル221は、論物アドレス変換テーブル222とは異なり、1段のテーブルで構成してもで、比較的データ量を抑えることができる。そこで、本実施形態では、物論アドレス変換テーブル221を1段のテーブルとして構成している。
物論アドレス変換テーブル221は、各物理アドレスに対応するエントリを格納する。各エントリは、例えば、物理アドレスの昇順に並べられている。物論アドレス変換テーブル221のエントリは、物理アドレス501と、論理アドレス502とのフィールドを含む。物理アドレス501には、ドライブ104の物理アドレスが格納される。論理アドレス502には、エントリの物理アドレス501の物理アドレスに割り当てられている論理アドレスが格納される。
図5の物論アドレス変換テーブル221の一行目のエントリによると、物理アドレス432(値が1234356)から、論理アドレス422(値がabcdef)を取得することができる。
ここで、I/O要求により、ドライブ104のデータにアクセスするためには、論理アドレスと物理アドレスとを変換するために必要な論理アドレスと物理アドレスとの対応関係が必須となる。論理アドレスと物理アドレスとの対応関係は、物論アドレス変換テーブル221と、論物アドレス変換テーブル222とに管理されている。これら両方のテーブルが消失してしまうと、論理アドレスと物理アドレスとの対応関係を生成できない。したがって、物論アドレス変換テーブル221又は論物アドレス変換テーブル222のいずれか一方の情報が、I/O要求に対応するデータにアクセスするために必須な情報であり、且つ消失時に生成できない情報ということができる。本実施形態では、物論アドレス変換テーブル221は1段のテーブルでありテーブルサイズが小さいこと、および、I/O要求毎に参照しないことから、物論アドレス変換テーブル221を保存対象情報としている。なお、制御用情報における物論アドレス変換テーブルを含む一部の情報を保存対象情報としてもよい。
次に、モニタ情報223について詳細に説明する。
図6は、第1実施形態に係るモニタ情報の構成図である。
モニタ情報223は、ストレージ装置100のリソースの情報が格納される。モニタ情報223は、リソース毎のエントリを格納する。モニタ情報223のエントリは、種別511と、ID512と、更新時刻513と、リードIOPS514と、ライトIOPS515と、リード転送速度516と、ライト転送速度517と、キャッシュヒット率518とのフィールドを含む。
種別511には、エントリに対応するリソースの種別が格納される。ID512には、エントリに対応するリソースを一意に識別するIDが格納される。更新時刻513には、エントリの内容を更新した更新時刻が格納される。リードIOPS514には、エントリに対応するリソース(ここでは、ボリューム)におけるリードに関するIOPS(Input/Output per second)が格納される。ライトIOPS515には、エントリに対応するリソース(ここでは、ボリューム)におけるライトに関するIOPSが格納される。リード転送速度516には、エントリに対応するリソースにおけるリード時の転送速度が格納される。ライト転送速度517には、エントリに対応するリソースにおけるライト時の転送速度が格納される。キャッシュヒット率518には、エントリに対応するリソースにおけるキャッシュのヒット率が格納される。
なお、モニタ情報223に登録するリソースとしては、ボリューム以外のリソース、例えば、CPU等であってもよい。また、エントリに格納するリソースの情報としては、上記した以外の性能に関する情報を含んでもよく、また、ボリュームの使用率等のリソースの使用状況に関する情報を含んでもよい。
例えば、モニタ情報223のエントリ520は、IDが002で識別されるボリューム(Vol)についての情報が格納されている。このエントリによると、エントリの情報は、10:15に更新されており、ボリュームのリードIOPSが10kであり、ライトIOPSが0であり、リード転送速度が10000MB/sであり、ライト転送速度が0MB/sであり、キャッシュヒット率が80%であることがわかる。
次に、キャッシュ224について説明する。
図7は、第1実施形態に係るキャッシュの構成図である。
キャッシュ224は、アクセスにおける応答性能を向上するために一部のユーザデータを管理する。キャッシュ224は、キャッシュしたユーザデータごとのエントリを格納する。キャッシュ224のエントリは、論理アドレス521と、格納データ522とのフィールドを含む。論理アドレス521には、エントリに対応する論理アドレスが格納される。格納データ522には、エントリの論理アドレス521の論理アドレスに対応するドライブ104の物理アドレスに格納されているユーザデータが格納される。
例えば、キャッシュ224のエントリ530には、論理アドレスabcdefで識別されるドライブ104の記憶領域のユーザデータである0x101010が格納されている。なお、キャッシュ224を、論物アドレス変換テーブル222と同様に多段テーブルで管理してもよい。
次に、ストレージ装置100による処理動作について説明する。
図8は、第1実施形態に係るI/O処理のフローチャートである。
ストレージ制御プログラム210のI/O実施プログラム212(厳密には、I/O実施プログラム212を実行するCPU101)は、ホスト計算機120からI/O要求を受信すると(ステップ601)、I/O要求の発行先のドライブ104の物理アドレスを取得する物理アドレス取得処理(図9参照)を実行する(ステップ602)。
次いで、I/O実施プログラム212は、ステップ602で取得した物理アドレスで識別されるドライブ104の記憶領域に対してデータアクセス処理(図10参照)を実施することにより、ドライブ104に対するアクセスを行う(ステップ603)。
次いで、I/O実施プログラム212は、データアクセス処理の結果を、ホスト計算機120に応答(通知)する(ステップ604)。
次に、物理アドレス取得処理(ステップ602)について説明する。
図9は、第1実施形態に係る物理アドレス取得処理のフローチャートである。なお、図9及び以降の図面において、物論アドレス変換テーブルを物論テーブルと記載し、論物アドレス変換テーブルを論物テーブルと記載する場合がある。
ストレージ制御プログラム210のI/O実施プログラム212(厳密には、I/O実施プログラム212を実行するCPU101)は、受信したI/O要求に含まれるI/O要求先の論理アドレス(この処理の説明において、対象論理アドレスという)を取得し、メモリ102の論物アドレス変換テーブル222を参照し、対象論理アドレスに対応する物理アドレスを探す(ステップ701)。
この結果、対象論理アドレスに対応する物理アドレスが論物アドレス変換テーブル222に格納されている場合(ステップ701:アドレスあり)には、I/O実施プログラム212は、この物理アドレスを取得し(ステップ702)、物理アドレス取得処理を終了する。
一方、対象論理アドレスに対応する物理アドレスが論物アドレス変換テーブル222に格納されていない場合(ステップ701:アドレスなし)には、I/O実施プログラム212は、物論アドレス変換テーブル221を参照し、対象論理アドレスを探す(ステップ703)。
この結果、対象論理アドレスが物論アドレス変換テーブル221に格納されている場合(ステップ703:アドレスあり)には、電断等によって論物アドレス変換テーブル222に対象論理アドレスについての物理アドレスが格納されていないことを意味しているので、I/O実施プログラム212は、物論アドレス変換テーブル221を参照し、対象論理アドレスに対応する物理アドレスを取得し(ステップ704)、処理をステップ709に進める。
一方、対象論理アドレスが物論アドレス変換テーブル221に格納されていない場合(ステップ703:アドレスなし)には、この論理アドレスには物理アドレスが割り当てられていないことを意味しており、I/O実施プログラム212は、I/O要求のアクセス種別を確認する(ステップ705)。
この結果、I/O要求のアクセス種別がライトである場合(ステップ705:ライト)には、I/O実施プログラム212は、対象論理アドレスに対応する物理アドレスを割り当て(ステップ706)、不揮発媒体103の物論アドレス変換テーブル310に、対象論理アドレスと割り当てた物理アドレスとの組を登録し(ステップ707)、仮想アドレス空間300の物論アドレス変換テーブル301に、対象論理アドレスと割り当てた物理アドレスとの組を格納する(ステップ708)。I/O実施プログラム212により、仮想アドレス空間300の物論アドレス変換テーブル301に、対象論理アドレスと割り当てた物理アドレスとの組が格納されると、OS200によって、仮想アドレス空間300の領域に対応するメモリ102の物論アドレス変換テーブル221に、対象論理アドレスと割り当てた物理アドレスとの組が格納されることとなる。
ステップ704又はステップ708を実施した後には、I/O実施プログラム212は、対象論理アドレスと、対応する物理アドレスとの組を論物アドレス変換テーブル222に登録し(ステップ709)、物理アドレス取得処理を終了する。
一方、ステップ705で、I/O要求のアクセス種別がリードである場合(ステップ705:リード)には、I/O実施プログラム212は、ゼロが格納されている領域(ゼロ格納済領域)の物理アドレスを取得し(ステップ710)、物理アドレス取得処理を終了する。
I/O要求毎に実施される物理アドレス取得処理においては,論物アドレス変換テーブルに物理アドレスが格納済であれば,論物アドレス変換テーブルへのアクセスのみで物理アドレス取得が可能である。
次に、データアクセス処理(ステップ603)について説明する。
図10は、第1実施形態に係るデータアクセス処理のフローチャートである。
ストレージ制御プログラム210のI/O実施プログラム212(厳密には、I/O実施プログラム212を実行するCPU101)は、受信したI/O要求に含まれるアクセス種別を確認する(ステップ801)。
この結果、アクセス種別がライトである場合(ステップ801:ライト)には、I/O実施プログラム212は、キャッシュ224の論理アドレス521にI/O要求のアクセス対象のアドレス(アクセス対象アドレス)を格納し、格納データ522に、このI/O要求でライトする対象のデータ(ライトデータ)を格納する(ステップ802)。次いで、I/O実施プログラム212は、ステップ602で取得した物理アドレスによって識別されるドライブ104の記憶領域に対して、ライトデータを格納し(ステップ803)、データアクセス処理を終了する。
一方、ステップ801で、アクセス種別がリードである場合(ステップ801:リード)には、I/O実施プログラム212は、キャッシュ224を参照し、論理アドレス521に、I/O要求のアクセス対象アドレスが格納されているかを探す(ステップ804)。
この結果、論理アドレス521に、I/O要求のアクセス対象アドレスが格納されている場合(ステップ804:あり)には、I/O実施プログラム212は、対応するエントリの格納データ522からデータを取得(リード)し(ステップ805)、データアクセス処理を終了する。
一方、論理アドレス521に、I/O要求のアクセス対象アドレスが格納されていない場合(ステップ804:なし)には、I/O実施プログラム212は、ステップ602で取得した物理アドレスによって識別されるドライブ104の記憶領域からデータを取得(リード)し(ステップ806)、データアクセス処理を終了する。
次に、モニタ情報取得処理について説明する。
モニタ情報取得処理は、対象リソースをモニタして得られるモニタ情報を取得する処理であり、例えば、定期的に実施されてもよく、I/O処理の延長としてモニタ情報223のエントリ520に格納する情報が更新されたことを契機として実施されてもよく、また、ユーザによる指示を契機として実施されてもよい。
図11は、第1実施形態に係るモニタ情報取得処理のフローチャートである。
ストレージ制御プログラム210のリソース管理プログラム211(厳密には、リソース管理プログラム211を実行するCPU101)は、対象リソースについてのモニタ情報223のエントリ520に格納する情報を取得し、モニタ情報223に格納し(ステップ901)、モニタ情報取得処理を終了する。なお、モニタ情報を収集する対象リソースとしては、例えば、ストレージ制御プログラム210が制御対象とする全リソースとしてもよいし、ユーザにより指示されたリソースのみとしてもよい。
次に、モニタ情報表示処理について説明する。
モニタ情報表示処理は、例えば、ユーザによる指示を契機として実施されてもよく、定期的に実施されてもよい。
図12は、第1実施形態に係るモニタ情報表示処理のフローチャートである。
ストレージ装置100内のストレージ制御プログラム210のリソース管理プログラム211は、メモリ102のモニタ情報223に格納されているエントリ520を、管理用計算機110のリソース管理プログラム111に送信する(ステップ1001)。
一方、管理用計算機110のリソース管理プログラム111(厳密には、リソース管理プログラム111を実行する管理用計算機110のプロセッサ)は、ストレージ装置100のストレージ制御プログラム210から送信されたモニタ情報223のエントリを受信する(ステップ1002)。
次いで、リソース管理プログラム111は、受信したモニタ情報のエントリ520の更新時刻513の更新時刻を、前回更新時刻、すなわち、前回の表示時に使用したモニタ情報223における更新時刻と比較する(ステップ1003)。
この結果、受信したモニタ情報に格納されている更新時刻が、前回更新時刻と等しい場合(ステップ1003:前回更新時刻と等しい)には、現在の表示が最新の状態であるので、リソース管理プログラム111は、処理を終了する。
一方、受信したモニタ情報に格納されている更新時刻が、前回更新時刻と異なる場合(ステップ1003:前回更新時刻と異なる)には、モニタ情報223が新たに更新されたことを意味しているので、リソース管理プログラム111は、性能情報表示画面1100(図13参照)に、受信したモニタ情報323のエントリ520から得られる情報を表示する(ステップ1004)。次いで、リソース管理プログラム111は、前回更新時刻を、ステップ1002で受信したモニタ情報223に格納されている更新時刻に変更し(ステップ1005)、モニタ情報表示処理を終了する。
なお、管理用計算機110のリソース管理プログラム111は、モニタ情報の表示を行う処理以外に、例えば、モニタ情報を用いてストレージ装置100におけるリソースの割り当てを変更する処理を行って、ストレージ装置100における負荷分散を実施してもよい。
次に、性能情報表示画面1100について説明する。
図13は、第1実施形態に係る性能情報表示画面の構成図である。
性能情報表示画面1100には、性能情報表示領域1101と、更新ボタン1102と、閉じるボタン1103とが表示される。
性能情報表示領域1101には、モニタ情報223から得られる、対象リソースについての性能に関する時系列のグラフが表示される。性能情報表示領域1101には、例えば、モニタ情報223のリード転送速度516から得られるリード転送速度に基づいて、対象リソースについての時系列のグラフが表示される。図13の例では、時間9:15〜10:15までのVol1001、V0l1102で識別されるボリュームについてのリード転送速度を示すグラフが表示されている。なお、性能情報表示領域1101に表示する時刻範囲は、図13の例と異なってもよい。また、性能情報表示領域1101で表示対象とする性能情報の種別は、リード転送速度に限られず、他の性能情報、例えば、IOPSやキャッシュヒット率であってもよい。また、モニタ情報223に、ボリュームの使用率の情報が格納されている場合は、このボリュームの使用率の情報を表示してもよい。
更新ボタン1102は、モニタ情報表示処理の実行を受け付けるボタンである。ユーザにより更新ボタン1102が押下されると、リソース管理プログラム111は、図12に示すモニタ情報表示処理の実行を開始する。これにより、性能情報表示画面1100には、最新の性能情報が表示されることとなる。なお、更新ボタン1102の押下を契機として、ストレージ装置100が図11に示すモニタ情報取得処理の実行を開始するようにしてもよい。
閉じるボタン1103は、性能情報表示画面1100を閉じる指示を受け付けるボタンである。ユーザにより閉じるボタン1103が押下されると、リソース管理プログラム111は、性能情報表示画面1100を閉じて、動作を終了する。
次に、ストレージ装置100が起動された際に実行される起動処理について説明する。
図14は、第1実施形態に係る起動処理のフローチャートである。
ストレージ制御プログラム210(厳密には、ストレージ制御プログラム210を実行するCPU101)は、OS220から割り当てられたメモリ102の空間を自身における仮想アドレス空間300に対応付けることにより、仮想アドレス空間300を生成する処理を行う(ステップ1201)。
次いで、ストレージ制御プログラム210は、ドライブ104に格納されている格納済みフラグ321を参照する(ステップ1202)。この結果、格納済みフラグ321がオンである場合(ステップ1202:オン)には、正常に制御用情報がドライブ104に格納されていることを意味しているので、ストレージ制御プログラム210は、ドライブ104に格納されている制御用情報320を仮想アドレス空間300内に書き込み(ステップ1203)、処理をステップ1208に進める。
一方、格納済みフラグ321がオフである場合(ステップ1202:オフ)には、ドライブ104に正常に制御用情報が格納されていないことを意味しているので、ストレージ制御プログラム210は、不揮発媒体103に格納されている物論アドレス変換テーブル310を仮想アドレス空間300内に書き込む(ステップ1204)。
次いで、ストレージ制御プログラム210は、仮想アドレス空間300上の物論アドレス変換テーブル301を参照する(ステップ1205)。この結果、物論アドレス変換テーブル301に物理アドレスと論理アドレスの組(エントリ)が格納されている場合(ステップ1205:エントリあり)には、そのエントリに対応する物理アドレスと論理アドレスとの対応関係を論物アドレス変換テーブルに登録する必要があるので、ストレージ制御プログラム210は、論物テーブル更新処理(図15参照)を実行し(ステップ1206)、処理をステップ1208に進める。なお、ステップ1206においては、ストレージ制御プログラム210は、物理アドレスが未割当である容量分の空領域を空領域リストに格納する。
一方、物論アドレス変換テーブル301にエントリが格納されていない場合(ステップ1205:空)には、ストレージ装置100のドライブ104にはユーザデータが格納されていないことを意味しているので、ストレージ制御プログラム210は、論物アドレス変換テーブル222を新規に仮想アドレス空間300内に生成し(ステップ1207)、処理をステップ1208に進める。なお、ステップ1207では、ストレージ制御プログラム210は、論物アドレス変換テーブル222に格納されるエントリには空を設定し、割り当て可能な容量分の空領域を空領域リスト410に格納する。
ステップ1208では、ストレージ制御プログラム210は、ドライブ104の格納済みフラグ321をオフに設定し、処理を終了する。
なお、ステップ1202で格納済みフラグがオフの場合においては、モニタ情報223及びキャッシュ224は、新規に生成されることとなる。
上記した起動処理によると、停電等により電源の供給が遮断され(電断が発生し)、ドライブ104に制御用情報320を正常に格納できなかった場合であっても、不揮発媒体103の物論アドレス変換テーブル310により、論物アドレス変換テーブル302(222も同様)を正確に再生することができ、以降において、論物アドレス変換テーブル302により、論理アドレスに対応する物理アドレスを適切に特定して、対応するドライブ114の領域にアクセスすることができる。
次に、論物テーブル更新処理(ステップ1206)について説明する。
図15は、第1実施形態に係る論物テーブル更新処理のフローチャートである。
ストレージ制御プログラム210(厳密には、ストレージ制御プログラム210を実行するCPU101)は、物論アドレス変換テーブル221を参照する(ステップ1701)。この結果、物論アドレス変換テーブル301内に論物アドレス変換テーブル302への更新を実施していない、物理アドレスと論理アドレスとの組がない場合(ステップ1701:未更新アドレスなし)には、ストレージ制御プログラム210は、物論アドレス変換テーブル301に登録されている、すべての物理アドレスと論理アドレスとの組について、論物アドレス変換テーブル302に反映させたことを意味しているので、論物テーブル更新処理を終了する。
一方、物論アドレス変換テーブル301内に論物アドレス変換テーブル302の更新を実施していない、物理アドレスと論理アドレスとの組がある場合(ステップ1701:未更新アドレスあり)には、ストレージ制御プログラム210は、論物アドレス変換テーブル302への更新を実施していない、物理アドレスと論理アドレスとの組を1つ取得する(ステップ1702)。
次いで、ストレージ制御プログラム210は、論物アドレス変換テーブル302の1段目のテーブルを参照対象とし(ステップ1703)、ステップ1702で取得した論理アドレスに基づいて、参照対象のテーブル内のエントリを識別する(ステップ1704)。
この結果、識別したエントリが空ではない場合(ステップ1705:空ではない)には、ストレージ制御プログラム210は、処理をステップ1708に進める。一方、識別したエントリが空の場合(ステップ1705:空)には、ストレージ制御プログラム210は、空領域リスト410からエントリを取得し(ステップ1706)、取得したエントリを、識別したエントリとして割り当て(ステップ1707)、処理をステップ1708に進める。
ステップ1708では、ストレージ制御プログラム210は、参照対象のテーブルが最終段であるか否かを判定する。
この結果、参照対象のテーブルが最終段ではない場合(ステップ1708:最終段ではない)には、ストレージ制御プログラム210は、ステップ1705で識別したエントリから次段のテーブルを識別して参照対象とし(ステップ1709)、処理をステップ1704に進める。
一方、参照対象のテーブルが最終段である場合(ステップ1708:最終段)には、ストレージ制御プログラム210は、ステップ1705で識別したエントリ、又はステップ1707で割り当てたエントリに対して、ステップ1702で取得した物理アドレスを登録し、処理をステップ1701に進める。
この論物テーブル更新処理によると、不揮発媒体103に格納されていた物論アドレス変換テーブル310に基づいて生成された物論アドレス変換テーブル301により、その状態に対応する論物アドレス変換テーブル302を適切に再生することができる。
次に、ストレージ装置100を終了させる場合の終了処理について説明する。
図16は、第1実施形態に係る終了処理のフローチャートである。
ストレージ制御プログラム210(厳密には、ストレージ制御プログラム210を実行するCPU101)は、プログラムの終了要求を受信する(ステップ1301)と、後続の処理を実行する。なお、終了要求は、ユーザの指示に基づいて発行されてもよいし、ストレージ制御プログラム210が自身の異常等を検出して自身に対して発行してもよい。
次いで、ストレージ制御プログラム210は、I/O要求の受信を終了する(ステップ1302)。次いで、ストレージ制御プログラム210は、受信済のI/O要求をすべて実行し、実行結果を要求元に応答する(ステップ1303)。
次いで、ストレージ制御プログラム210は、仮想アドレス空間300に格納されている制御用情報をドライブ104に転送して、制御用情報320を作成する(ステップ1304)。次いで、ストレージ制御プログラム210は、格納済みフラグ321をオンに設定し(ステップ1305)、自身を終了する(ステップ1306)。
この終了処理によると、I/O要求に対応する処理を行った後における仮想アドレス空間300に格納されている制御用情報、すなわち、メモリ102に格納されている制御用情報をドライブ104に格納することができ、このように、メモリ102に格納されている制御用情報をドライブ104に正常に格納することができた後に、格納済みフラグ321をオンとすることができる。このため、格納済みフラグ321がオンであるによって、ドライブ104の制御用情報が終了処理で正しく格納された制御用情報であることを表すことができる。
以上説明したように、第1実施形態に係る計算機システムでは、物論アドレス変換テーブル301(222と同様)に更新があった場合に、不揮発媒体103の物論アドレス変換テーブル310についても更新するようにしたので、物論アドレス変換テーブル310の最新の状態を電断が発生した時に消失してしまうことがなく、電断後にストレージ装置100を起動した場合には、物論アドレス変換テーブル310に基づいて、I/O要求の論理アドレスに対応する物理アドレスを取得することができるので、適切にデータにアクセスすることができる。
次に、本発明の第2実施形態に係る計算機システムについて説明する。なお、第2実施形態においては、第1実施形態に係る計算機システムと異なる部分を中心に説明する。
まず、第2実施形態に係る計算機システムの全体構成について説明する。
図17は、第2実施形態に係る計算機システムの全体構成図である。
第2実施形態に係る計算機システム1Aは、第1実施形態に係る計算機システム1における不揮発媒体103として、不揮発媒体103の一例としての不揮発メモリ1301を有するようにしたシステムである。不揮発メモリ1301は、例えば、FM(Flash Memory)、PRAM(Phase-change Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、ReRAM(Resistive Random Access Memory)又はFeRAM(Ferroelectric Random Access Memory)であってよい。
図18は、第2実施形態に係る不揮発メモリに格納された情報を説明する図である。
第2実施形態の不揮発メモリ1301は、第1実施形態のメモリ102に格納されていた制御用情報である、物論アドレス変換テーブル221、論物アドレス変換テーブル222、モニタ情報223、及びキャッシュ224を格納している。なお、第2実施形態においては、メモリ102は、物論アドレス変換テーブル221、論物アドレス変換テーブル222、モニタ情報223、及びキャッシュ224を格納していない。また、第2実施形態のドライブ104は、制御用情報320を格納していなくてよい。
ストレージ制御プログラム210の仮想アドレス空間300には、OS200によって不揮発メモリ1301の記憶領域が割り当てられている。なお、第1実施形態と第2実施形態とでは、仮想アドレス空間300を同一にすることができるので、ストレージ制御プログラム210は、仮想アドレス空間300に実際に割り当てられている領域が、メモリ102であるか不揮発メモリ1301であるかによって、物論アドレス変換テーブル221、論物アドレス変換テーブル222、モニタ情報223、及びキャッシュ224に対するデータのアクセス処理を変える必要がない。
次に、第2実施形態に係る計算機システム1Aにおける処理動作について説明する。
計算機システム1Aにおいては、図8に示すI/O処理と同様な処理を実行する。なお、図8における各ステップにおいては、第1実施形態に係る計算機システムの処理と異なる部分がある場合がある。これについては、以下に記載する。
計算機システム1Aにおける物理アドレス取得処理では、図9に示す物理アドレス取得処理において、ステップ707の処理を実行しなくてもよい。
また、計算機システム1Aにおける起動処理では、図14に示す起動処理におけるステップ1201において、ストレージ制御プログラム210(厳密には、ストレージ制御プログラム210を実行するCPU101)は、OS220から割り当てられた不揮発メモリ1301のメモリ空間を自身における仮想アドレス空間300に対応付けることにより、仮想アドレス空間を生成する処理を行う(ステップ1201)。そして、ステップ1201の処理が終了した後に、ステップS1205を実行する。そして、ステップS1205の結果、物論アドレス変換テーブル301にデータが格納されていない場合(ステップ1205:空)にステップ1207の処理を行い、データが格納されている場合には、処理を終了する。
また、計算機システム1Aにおける終了処理においては、図16に示す終了処理において、ステップ1304及びステップ1305を実行しない。
以上説明したように、第2実施形態に係る計算機システムでは、物論アドレス変換テーブル221、論物アドレス変換テーブル222、モニタ情報223、及びキャッシュ224を不揮発メモリ1301に格納して管理するようにしたので、これらの情報を電断時に消失してしまうことを防止でき、電断後にストレージ装置100を起動した場合に、I/O要求の論理アドレスに対応する物理アドレスを取得することができるので、適切にドライブ104のデータにアクセスすることができる。また、論物アドレス変換テーブル222、モニタ情報223、及びキャッシュ224をメモリ102に格納しないようにしているので、メモリ102の空き容量を多く確保することができる。
次に、本発明の第3実施形態に係る計算機システムについて説明する。なお、第3実施形態に係る計算機システムの全体構成は、第2実施形態に係る計算機システム1Aと同様にあり、ここでは、第1実施形態に係る計算機システムと異なる部分を中心に説明する。
図19は、第3実施形態に係る不揮発メモリに格納された情報を説明する図である。
メモリ102には、論物アドレス変換テーブル222、モニタ情報223、キャッシュ224が格納される。
不揮発媒体1301には、制御用情報の中の物論アドレス変換テーブル1601が格納されている。物論アドレス変換テーブル1601は、物論アドレス変換テーブル221と同様な構成である。
本実施形態においては、ストレージ制御プログラム210には、OS200によって、CPU101やメモリ102、不揮発メモリ1301が提供される。OS200によりストレージ制御プログラム210に割り当てられたメモリ102及び不揮発メモリ1301の領域は、ストレージ制御プログラム210におけるアドレス空間、すなわち、仮想アドレス空間300として管理されている。仮想アドレス空間300においては、物論アドレス変換テーブル301、論物アドレス変換テーブル302、モニタ情報303、キャッシュ304が仮想的に格納されている。本実施形態では、仮想アドレス空間300の物論アドレス変換テーブル301の実体は、不揮発メモリ1301の物論アドレス変換テーブル1601であり、論物アドレス変換テーブル302の実体は、メモリ102の論物アドレス変換テーブル222であり、モニタ情報303の実体は、メモリ102のモニタ情報223であり、キャッシュ304の実体は、メモリ102のキャッシュ224である。
ストレージ制御プログラム210を実行するCPU101は、仮想アドレス空間300上の仮想アドレスを用いて各種情報に対するアクセス要求を発行することにより、各種情報を取得する。このとき、OS200を実行するCPU101は、ストレージ制御プログラム210からのアクセス要求を検出すると、この仮想アドレスをメモリ102、又は不揮発メモリ1301上の位置を示す物理アドレスに変換し、物理アドレスを用いてメモリ102又は不揮発メモリ1301上に格納された情報にアクセスを行い、ストレージ制御プログラム210にアクセス結果を返す。したがって、本実施形態においては、ストレージ制御プログラム210においては、仮想アドレス空間300の領域の情報に対するアクセスにおいては、仮想アドレス空間300の情報の実体が、不揮発メモリ1301に格納されているか、メモリ102に格納されているかを意識することがない。
ドライブ104には、所定の時点(例えば、ストレージ装置100の前回の終了時点)におけるメモリ102の制御用情報に相当する制御用情報320と、ドライブ104に正常な制御用情報320が格納されているか否かを示す正常格納情報の一例としての格納済みフラグ321が格納されている。ドライブ104に格納される制御用情報320としては、物論アドレス変換テーブル221と、論物アドレス変換テーブル222と、モニタ情報223と、キャッシュ224とを含んでいてもよいし、物論アドレス変換テーブル221のみであってもよい。
次に、第3実施形態に係る計算機システムにおける処理動作について説明する。
計算機システムにおいては、図8に示すI/O処理と同様な処理を実行する。なお、図8における各ステップにおいては、第1実施形態に係る計算機システムの処理と異なる部分がある場合がある。これについては、以下に記載する。
計算機システムにおける物理アドレス取得処理では、図9に示す物理アドレス取得処理において、ステップ707の処理を実行しなくてもよい。
また、計算機システムにおける起動処理では、図14に示す起動処理におけるステップ1201において、ストレージ制御プログラム210(厳密には、ストレージ制御プログラム210を実行するCPU101)は、OS220から割り当てられた不揮発メモリ1301及びメモリ102のメモリ空間を自身における仮想アドレス空間300に対応付けることにより、仮想アドレス空間を生成する処理を行う(ステップ1201)。そして、ステップ1201以降の処理においては、ステップS1204以外の処理を実行する。
なお、第3実施形態においては、ドライブ104に制御用情報320を格納しないようにしてもよい。この場合においては、起動処理および終了処理におけるドライブ104との間の制御用情報の転送処理は実施しない。
以上説明したように、第3実施形態に係る計算機システムでは、物論アドレス変換テーブルを、不揮発メモリ1301で管理するようにし、メモリ102で管理しないようにしたので、I/O処理時に、論理アドレスに対して物理アドレスを新たに割り当てた際に、メモリ102に格納せずに済む。
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
例えば、上記実施形態では、ストレージ装置をSDSとしていたが、本発明はこれに限られず、ストレージ装置は、バッテリを搭載している専用のストレージ装置であってもよい。この場合には、バッテリの電源障害等が発生した場合において、適切に障害前のデータに対してアクセスすることができる。
また、上記実施形態では、制御用情報をテーブル形式で管理していたが、本発明はこれに限られず、例えば、ログ形式の情報で管理してもよく、要は、更新結果を特定可能な情報を管理しておけばよい。例えば、物論アドレス変換情報については、不揮発媒体103又は不揮発メモリ1301においては、その全体のログを格納してもよく、ドライブ104に格納されているログ以降のログを格納するようにしてもよい。
また、上記実施形態では、図14に示す起動処理を実行し、起動時において、論物アドレス変換テーブル302を更新して最新の状態としていたが、本発明はこれに限られず、図14に示す起動処理を実行しないで、図8のI/O処理を実行するようにしてもよい。この場合においては、論物アドレス変換テーブル302に登録のない論理アドレスに対するI/O要求があった場合には、図9の物理アドレス取得処理におけるステップ703、704、及び709により、アクセスのあった論理アドレスの物理アドレスを取得して、論物アドレス変換テーブルを更新することができる。これにより、このI/O要求に対するデータをドライブ104から適切に取得することができる。このように、図14に示す起動処理を実行しない場合には、論物アドレス変換テーブル302の全体を復元する必要がなく、迅速にI/O処理を行うことができる。
1…計算機システム、100…ストレージ装置、101…CPU、102…メモリ、103…不揮発媒体、104…ドライブ、110…管理用計算機、120…ホスト計算機、130…ネットワーク、220…制御用情報、221,301,310…物論アドレス変換テーブル、222,302…論物アドレス変換テーブル、300…仮想アドレス空間、1301…不揮発メモリ



Claims (13)

  1. ホスト計算機からのI/O要求を受け付け、I/O要求に対応するI/O処理を実行するストレージ装置であって、
    プロセッサ部と、
    不揮発媒体と、
    前記不揮発媒体よりもアクセス性能が高いメモリと、
    を備え、
    前記プロセッサ部は、I/O処理を実行する制御に関わる制御用情報を、前記メモリ及び前記不揮発媒体に格納し、
    前記不揮発媒体に格納される制御用情報には、前記I/O要求の対象のデータが格納される記憶デバイスの物理アドレスと、前記物理アドレスに格納されるデータの論理的な領域を示す論理アドレスと、を変換するためのアドレス変換情報が含まれる
    ことを特徴とするストレージ装置。
  2. 請求項1において、
    前記プロセッサ部は、前記制御用情報のアドレス変換情報を、前記メモリ及び前記不揮発媒体に同期して格納し、
    前記プロセッサは、前記メモリに格納したアドレス変換情報を用いてI/O処理を実行する
    ことを特徴とするストレージ装置。
  3. 請求項2において、
    前記プロセッサ部は、
    前記アドレス変換情報を含む制御用情報を、前記メモリ及び前記不揮発媒体に同期して格納する第1の格納と、
    前記第1の格納よりも小さい頻度で、前記制御用情報を不揮発性の記憶媒体に格納する第2の格納と、
    を行うことを特徴とするストレージ装置。
  4. 請求項2において、
    前記同期してメモリに格納するアドレス変換情報と、不揮発媒体に格納するアドレス変換情報とは、対象のアドレスが同じであり形態が異なるものである
    ことを特徴とするストレージ装置。
  5. 請求項1において、
    前記アドレス変換情報は、前記物理アドレスと前記論理アドレスとを互いに逆方向に変換する、一段のテーブルで管理される第1のアドレス変換情報と、多段のテーブルで管理される第2のアドレス変換情報と、を含み、
    前記第1のアドレス変換情報を前記不揮発媒体に格納し、前記前記第2のアドレス変換情報を前記メモリに格納する
    ことを特徴とするストレージ装置。
  6. 請求項5において、
    前記第1のアドレス変換情報は、前記物理アドレスを前記論理アドレスに変換する物論アドレス変換情報であり、
    前記第2のアドレス変換情報は、前記論理アドレスを前記物理アドレスに変換する論物アドレス変換情報であり、
    前記プロセッサ部は、前記論物アドレス変換情報を用いて、前記記憶デバイスのデータへアクセスする
    ことを特徴とするストレージ装置。
  7. 請求項5において、
    前記メモリに格納した制御用情報を、さらに不揮発性の記憶媒体に格納するともに、正常に格納したことを示す格納フラグを格納し、
    前記格納フラグが有る場合に、前記第2のアドレス変換情報を前記不揮発性の記憶媒体から読み出し、
    前記格納フラグが無い場合に、前記第2のアドレス変換情報を前記不揮発媒体内の前記第1のアドレス変換情報から作成する、
    ことを特徴とするストレージ装置。
  8. 請求項3において、
    前記メモリに格納した制御用情報を、さらに前記不揮発性の記憶媒体に前記第2の格納を行うともに、正常に格納したことを示す格納フラグを格納し、
    前記格納フラグが有る場合に、前記第2の格納を行ったアドレス変換情報を前記不揮発性の記憶媒体から読み出し、
    前記格納フラグが無い場合に、前記第1の格納を行ったアドレス変換情報を前記不揮発媒体内から読み出す、
    ことを特徴とするストレージ装置。
  9. 請求項1において、
    前記メモリに格納される制御用情報には、キャッシュ、モニタ情報及び前記アドレス変換情報の一部が含まれる
    ことを特徴とするストレージ装置。
  10. 請求項9において、
    前記不揮発媒体に格納される制御用情報には、キャッシュ、モニタ情報は含まれない
    ことを特徴とするストレージ装置。
  11. 請求項1において、
    前記不揮発媒体は、前記I/O処理にかかるデータを格納する記憶デバイスである
    ことを特徴とするストレージ装置。
  12. 請求項1において、
    前記メモリは揮発性あることを特徴とするストレージ装置。
  13. ホスト計算機からのI/O要求を受け付け、I/O要求に対応するI/O処理を実行するストレージ装置における制御方法であって、
    前記ストレージ装置は、不揮発媒体と、前記不揮発媒体よりもアクセス性能が高いメモリと、を備え、
    前記プロセッサ部は、I/O処理を実行する制御に関わる制御用情報を、前記メモリ及び前記不揮発媒体に格納し、
    前記不揮発媒体に格納される制御用情報には、前記I/O要求の対象のデータが格納される記憶デバイスの物理アドレスと、前記物理アドレスに格納されるデータの論理的な領域を示す論理アドレスと、を変換するためのアドレス変換情報が含まれる
    ことを特徴とするストレージ装置における制御方法。

JP2019116944A 2019-06-25 2019-06-25 ストレージ装置、及び制御方法 Pending JP2021005121A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019116944A JP2021005121A (ja) 2019-06-25 2019-06-25 ストレージ装置、及び制御方法
CN202010107143.8A CN112214162A (zh) 2019-06-25 2020-02-21 存储装置和控制方法
US16/808,259 US11372583B2 (en) 2019-06-25 2020-03-03 Storage device and control method for maintaining control information in the event of power failure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019116944A JP2021005121A (ja) 2019-06-25 2019-06-25 ストレージ装置、及び制御方法

Publications (1)

Publication Number Publication Date
JP2021005121A true JP2021005121A (ja) 2021-01-14

Family

ID=74044622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019116944A Pending JP2021005121A (ja) 2019-06-25 2019-06-25 ストレージ装置、及び制御方法

Country Status (3)

Country Link
US (1) US11372583B2 (ja)
JP (1) JP2021005121A (ja)
CN (1) CN112214162A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11989412B2 (en) 2021-06-22 2024-05-21 Hitachi, Ltd. Storage system and method for minimizing node down time

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11288435B1 (en) * 2020-11-13 2022-03-29 Renesas Electronics Corporation Failure analysis apparatus, computer readable recording medium and failure analysis method
US11947818B2 (en) * 2022-04-20 2024-04-02 Silicon Motion, Inc. Method for accessing flash memory module and associated flash memory controller and electronic device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000122906A (ja) * 1998-10-12 2000-04-28 Hitachi Ltd ディスク内容障害回復方法及び計算装置
JP2003263276A (ja) * 2002-03-08 2003-09-19 Toshiba Corp ディスクシステムおよびディスクアクセス方法
JP2006079522A (ja) * 2004-09-13 2006-03-23 Nec Infrontia Corp データ2重化システム
US20190018602A1 (en) * 2017-07-11 2019-01-17 SK Hynix Inc. Data storage device and method of operating the same

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000227871A (ja) * 1999-02-05 2000-08-15 Seiko Epson Corp 不揮発性記憶装置、その制御方法、および、情報記録媒体
JP2004139503A (ja) * 2002-10-21 2004-05-13 Matsushita Electric Ind Co Ltd 記憶装置及びその制御方法
JP4437489B2 (ja) 2006-10-25 2010-03-24 株式会社日立製作所 揮発性キャッシュメモリと不揮発性メモリとを備えたストレージシステム
JP2011180963A (ja) * 2010-03-03 2011-09-15 Renesas Electronics Corp 半導体集積回路装置
US9383927B2 (en) * 2014-05-28 2016-07-05 SandDisk Technologies LLC Method and system for creating a mapping table cache from an interleaved subset of contiguous mapping data for a storage device
TWI575374B (zh) * 2015-08-04 2017-03-21 群聯電子股份有限公司 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元
KR20170053278A (ko) * 2015-11-06 2017-05-16 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9927985B2 (en) * 2016-02-18 2018-03-27 SK Hynix Inc. Method of dynamic table journaling
KR102667430B1 (ko) * 2016-08-04 2024-05-23 삼성전자주식회사 호스트 메모리를 이용하는 데이터 저장 장치 및 그것의 동작 방법
JP6732684B2 (ja) * 2017-03-15 2020-07-29 キオクシア株式会社 情報処理装置、ストレージデバイスおよび情報処理システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000122906A (ja) * 1998-10-12 2000-04-28 Hitachi Ltd ディスク内容障害回復方法及び計算装置
JP2003263276A (ja) * 2002-03-08 2003-09-19 Toshiba Corp ディスクシステムおよびディスクアクセス方法
JP2006079522A (ja) * 2004-09-13 2006-03-23 Nec Infrontia Corp データ2重化システム
US20190018602A1 (en) * 2017-07-11 2019-01-17 SK Hynix Inc. Data storage device and method of operating the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11989412B2 (en) 2021-06-22 2024-05-21 Hitachi, Ltd. Storage system and method for minimizing node down time

Also Published As

Publication number Publication date
US20200409604A1 (en) 2020-12-31
US11372583B2 (en) 2022-06-28
CN112214162A (zh) 2021-01-12

Similar Documents

Publication Publication Date Title
US9996542B2 (en) Cache management in a computerized system
US10606803B2 (en) Data cloning in memory-based file systems
JP5309043B2 (ja) ストレージシステム及びストレージシステムでの重複データ削除のための方法
US10891074B2 (en) Key-value storage device supporting snapshot function and operating method thereof
US20210216220A1 (en) Storage device and operation method thereof
JP2016517122A (ja) システムメモリから不揮発性データストレージに移行されるアプリケーションプログラムデータの選択的保持
US11372583B2 (en) Storage device and control method for maintaining control information in the event of power failure
US9836223B2 (en) Changing storage volume ownership using cache memory
JP2007328734A (ja) ストレージ装置及びストレージ装置の制御方法
US20130111103A1 (en) High-speed synchronous writes to persistent storage
US10642493B2 (en) Mobile device and data management method of the same
US10579540B2 (en) Raid data migration through stripe swapping
US20160196085A1 (en) Storage control apparatus and storage apparatus
CN109313593B (zh) 存储系统
KR20230012440A (ko) 이기종 메모리 시스템에서의 로드 밸런싱을 위한 시스템 및 방법
JP2021149374A (ja) データ処理装置
US11966637B1 (en) Method and system for storing data in portable storage devices
JP2021114164A (ja) ストレージ装置及びストレージ制御方法
JP2018106573A (ja) ストレージ制御装置及び制御プログラム
US10430287B2 (en) Computer
JP5660557B2 (ja) ネットワークブートシステム
JP2006277563A (ja) ファイルを指定日時のバージョンに復帰させるためのバックアップ・システム、バックアップ方法および該方法をコンピュータに実行させるためのプログラム
JP6056211B2 (ja) 情報管理装置、情報管理プログラム、及び情報管理方法
US11714805B1 (en) Method and system for streaming data from portable storage devices
US11748259B2 (en) System and method to conserve device lifetime for snapshot generation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210518

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210716

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210902

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220125