(57)【要約】      （修正有）【課題】ストレージコントローラとSSDコントローラの双方で必要なアドレス変換処理の管理リソースの消費を抑える。【解決手段】ホストからのデータを圧縮するストレージコントローラは、ホストに対し、論理的な記憶領域として第１の論理アドレス空間を提供し、第１の論理アドレス空間と対応し、複数の不揮発ドライブの記憶領域をそれぞれ管理する複数の第１の物理アドレス空間を有する。複数の不揮発メモリドライブのそれぞれは、不揮発メモリの物理記憶領域を管理する第２の物理アドレス空間と、第２の物理アドレス空間に対応し、複数の第１の物理アドレス空間にそれぞれ対応する、第２の論理アドレス空間を有する。そして、複数の不揮発メモリの全ての第２の論理アドレス空間は、第１の論理アドレス空間と、共通のサイズと管理サイズで管理され、管理サイズで先頭アドレスが揃えられている。【選択図】図５
2020135134.tif 000002
【特許請求の範囲】
【請求項１】
ホストに接続されるストレージコントローラと、ストレージコントローラに接続される複数の不揮発メモリドライブを有するストレージシステムにおいて、
前記ストレージコントローラは、
ホストからのデータを圧縮し、
ホストに対し、論理的な記憶領域として第１の論理アドレス空間を提供し、前記第１の論理アドレス空間に圧縮前データを格納するよう管理し、前記第１の論理アドレス空間と対応し、前記複数の不揮発ドライブの記憶領域をそれぞれ管理する複数の第１の物理アドレス空間に対し、圧縮後のデータを書き込むように管理し、
前記複数の不揮発メモリドライブのそれぞれは、
不揮発メモリを有し、
前記不揮発メモリの物理記憶領域を管理する第２の物理アドレス空間と、前記第２の物理アドレス空間に対応し、前記複数の第１の物理アドレスにそれぞれ対応する、第２の論理アドレス空間を有し、前記第２の論理アドレス空間に圧縮後のデータを格納するように管理し、前記第２の物理アドレス空間に圧縮データを書き込み、
前記第２の論理アドレス空間は、前記複数の第１の物理アドレス空間の一つと、共通のサイズと管理サイズで管理され、前記第１の論理アドレス空間は、前記複数の第１の物理空間と、共通のサイズと管理サイズで管理され、
前記第１の論理アドレス空間、前記複数の第１の物理アドレス空間、複数の前記第２の論理アドレス空間は、前記管理サイズで先頭アドレスが揃えられていることを特徴とするストレージシステム。
【請求項２】
請求項１に記載のストレージシステムにおいて、
前記複数の不揮発メモリドライブのそれぞれは、
前記複数の第１の物理アドレス空間の一つと共通のサイズで対応するように、前記第２の物理アドレス空間を拡張する拡張機能を有することを特徴とするストレージシステム。
【請求項３】
請求項２記載のストレージシステムにおいて、
前記ストレージコントローラは、管理サイズ毎に、データの圧縮後のサイズを管理する圧縮後データサイズ情報を有することを特徴とするストレージシステム。
【請求項４】
請求項２に記載のストレージシステムにおいて、
前記複数の不揮発メモリドライブのそれぞれは、自身が前記ストレージコントローラに提供する前記第２の論理アドレス空間の論理アドレスと、前記不揮発メモリの物理アドレスとの対応関係を管理する論物変換テーブルを有することを特徴とするストレージシステム。
【請求項５】
請求項２に記載のストレージシステムにおいて、
前記ストレージコントローラは、
ホストからライトデータを受領すると、構成情報に従って、ライトデータを分割し、
前記分割されたライトデータを圧縮前管理サイズで分割し、
圧縮前管理サイズで分割されたライトデータを圧縮して圧縮後データを生成し、
前記圧縮後データと圧縮前管理サイズの差分にゼロデータを付与し、
前記圧縮後データを前記第２の論理アドレス空間に格納するよう管理し、
前記第２の論理アドレス空間に対応する前記第２の物理アドレス空間に前記圧縮データを書き込むことを特徴とするストレージシステム。
【請求項６】
請求項５に記載のストレージシステムにおいて、
前記ストレージコントローラは、
圧縮後のデータにゼロデータを付与した第１のデータと、
前記ライトデータが書き込まれる前記第１の論理アドレス空間のアドレスに格納されている旧データを読み出し、読み出された旧データにゼロデータを付与した第２のデータと、
前記旧データのパリティデータを旧パリティデータとして読み出し、前記旧パリティデータにゼロデータを付与した第３のデータと、
前記第１のデータ、前記第２のデータ及び前記第３のデータからパリティを生成し、前記生成したパリティからゼロデータを除去した新パリティを前記第２の物理アドレス空間に書き込むことを特徴とするストレージシステム。
【請求項７】
ホストに接続されるストレージコントローラと、ストレージコントローラに接続される複数の不揮発メモリドライブを有するストレージシステムのデータ圧縮方法において、
前記ストレージコントローラは、
ホストからのデータを圧縮し、
ホストに対し、論理的な記憶領域として第１の論理アドレス空間を提供し、前記第１の論理アドレス空間に圧縮前データを格納するよう管理し、前記第１の論理アドレス空間と対応し、前記複数の不揮発ドライブの記憶領域をそれぞれ管理する複数の第１の物理アドレス空間に対し、圧縮後のデータを書き込むように管理し、
前記複数の不揮発メモリドライブのそれぞれは、
不揮発メモリを有し、
前記不揮発メモリの物理記憶領域を管理する第２の物理アドレス空間と、前記第２の物理アドレス空間に対応し、前記複数の第１の物理アドレスにそれぞれ対応する、第２の論理アドレス空間を有し、前記第２の論理アドレス空間に圧縮後のデータを格納するように管理し、前記第２の物理アドレス空間に圧縮データを書き込み、
前記第２の論理アドレス空間は、前記複数の第１の物理アドレス空間の一つと、共通のサイズと管理サイズで管理され、前記第１の論理アドレス空間は、前記複数の第１の物理空間と、共通のサイズと管理サイズで管理され、
前記第１の論理アドレス空間、前記複数の第１の物理アドレス空間、複数の前記第２の論理アドレス空間は、前記管理サイズで先頭アドレスが揃えられていることを特徴とするストレージシステムのデータ圧縮方法。
【請求項８】
請求項７に記載のストレージシステムのデータ圧縮方法において、
前記複数の不揮発メモリドライブのそれぞれは、
前記複数の第１の物理アドレス空間の一つと共通のサイズで対応するように、前記第２の物理アドレス空間を拡張することを特徴とするストレージシステムのデータ圧縮方法。
【請求項９】
請求項８に記載のストレージシステムのデータ圧縮方法において、
前記ストレージコントローラは、
ホストからライトデータを受領すると、構成情報に従って、ライトデータを分割し、
前記分割されたライトデータを圧縮前管理サイズで分割し、
圧縮前管理サイズで分割されたライトデータを圧縮して圧縮後データを生成し、
前記圧縮後データと圧縮前管理サイズの差分にゼロデータを付与し、
前記圧縮後データを前記第２の論理アドレス空間に格納するよう管理し、
前記第２の論理アドレス空間に対応する前記第２の物理アドレス空間に前記圧縮データを書き込むことを特徴とするストレージシステムのデータ圧縮方法。
【請求項１０】
請求項９に記載のストレージシステムのデータ圧縮方法において、
前記ストレージコントローラは、
圧縮後のデータにゼロデータを付与した第１のデータと、
前記ライトデータが書き込まれる前記第１の論理アドレス空間のアドレスに格納されている旧データを読み出し、読み出された旧データにゼロデータを付与した第２のデータと、
前記旧データのパリティデータを旧パリティデータとして読み出し、前記旧パリティデータにゼロデータを付与した第３のデータと、
前記第１のデータ、前記第２のデータ及び前記第３のデータからパリティを生成し、前記生成したパリティからゼロデータを除去した新パリティを前記第２の物理アドレス空間に書き込むことを特徴とするストレージシステムのデータ圧縮方法。
【請求項１１】
ホストに接続され、該ホストからのデータを圧縮するストレージコントローラと、ストレージコントローラに接続され、前記ストレージコントローラで圧縮された圧縮データを不揮発メモリに書き込む複数の不揮発メモリドライブを有するストレージシステムにおいて、
前記ストレージコントローラは、
ホストに対し、論理的な記憶領域として第１の論理アドレス空間を提供し、前記第１の論理アドレス空間と対応し、前記複数の不揮発ドライブの記憶領域をそれぞれ管理する複数の第１の物理アドレス空間を有し、
前記複数の不揮発メモリドライブのそれぞれは、
前記不揮発メモリの物理記憶領域を管理する第２の物理アドレス空間と、前記第２の物理アドレス空間に対応し、前記複数の第１の物理アドレス空間にそれぞれ対応する、第２の論理アドレス空間を有し、
前記複数の不揮発メモリの全ての前記第２の論理アドレス空間は、前記第１の論理アドレス空間と、共通のサイズと管理サイズで管理され、前記管理サイズで先頭アドレスが揃えられていることを特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムのデータ圧縮技術に関する。
【背景技術】
【０００２】
ストレージコントローラは、上位装置から受領したデータを、RAID（Redundant Arrays of Inexpensive Disks）技術を用いて、ドライブ上に配置する。この際、ストレージシステムの構成情報に基づいて単純な計算で算出可能な位置にデータを格納している。
【０００３】
一方、ストレージコントローラで圧縮、重複排除を実現する場合、実際の容量よりも多くのデータを格納するため、圧縮後のデータを詰めて配置する必要がある。また、データによりその圧縮率が異なることから圧縮後のデータの長さが異なり、上記のような単純な計算ではなく、複雑なアドレス管理を行うためのアドレス変換論理が必要となる。
【０００４】
さらに、格納先のドライブがNAND Flashを使用した不揮発メモリドライブであるSSDの場合は、NANDの性質（上書き不可、消去単位＞ライト単位(消去単位がライト単位より大きい)）から、NAND Flashを搭載するSSD(Solid State Drive)のSSDコントローラでも位置の変換（論理-物理アドレス変換：アドレス変換論理）が必要となる。
【０００５】
これらストレージコントローラによるアドレス変換論理やSSDコントローラのアドレス変換論理は、ストレージコントローラやSSDコントローラのプロセッサやメモリリソースを消費する。特に、データを圧縮する場合、その容量管理単位を小さくするほど容量効率が向上するが、逆に管理リソースは増大するため、管理リソースの大きさには注意が必要となる。
【０００６】
アドレス変換論理に関して、特許文献１がある。この特許文献１は、データ長が可変する圧縮後のデータを管理するメモリシステムが開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１８−４９５２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１のメモリシステムは、ホストが、書き込みデータのデータ長と圧縮データのデータ長との差分に基づいて、アドレス変換テーブルを、書き込みデータが書き込まれるべき第１論理アドレス範囲の先頭論理アドレスから始まり圧縮データのデータ長に対応する第１範囲内の論理アドレスそれぞれに物理アドレスをマッピングし、前記差分に対応する第２範囲内の論理アドレスの各々を物理アドレスがマッピングされていない状態に設定する。
【０００９】
しかしながら、特許文献１のメモリシステムは、上位装置であるホストに接続される単独のSSDを対象としており、単独のSSDの物理アドレスをホスト上のアドレス変換テーブルで管理し、ホストからのライトデータを、ストレージコントローラのデータ冗長化技術、例えばRAID技術等、により複数のSSDに書き込む際のストレージコントローラ側のアドレス変換論理については記載されていない。
【００１０】
その結果、ストレージコントローラ側のアドレス変換論理とSSDコントローラ側のアドレス変換論理の双方による管理リソースの浪費という課題についても言及されていない。
【００１１】
そこで、本発明の目的は、ストレージコントローラとSSDコントローラの双方で、アドレス変換処理が必要となり、管理リソースを多く消費するという課題を解決するストレージシステム及び圧縮方法を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明のストレージシステム一態様は、ホストに接続されるストレージコントローラと、ストレージコントローラに接続される複数の不揮発メモリドライブを有するストレージシステムにおいて、ストレージコントローラは、ホストからのデータを圧縮し、ホストに対し、論理的な記憶領域として第１の論理アドレス空間を提供し、第１の論理アドレス空間に圧縮前データを格納するよう管理し、第１の論理アドレス空間と対応し、複数の不揮発ドライブの記憶領域をそれぞれ管理する複数の第１の物理アドレス空間に対し、圧縮後のデータを書き込むように管理する。そして、複数の不揮発メモリドライブのそれぞれは、不揮発メモリを有し、不揮発メモリの物理記憶領域を管理する第２の物理アドレス空間と、第２の物理アドレス空間に対応し、複数の第１の物理アドレスにそれぞれ対応する、第２の論理アドレス空間を有し、第２の論理アドレス空間に圧縮後のデータを格納するように管理し、第２の物理アドレス空間に圧縮データを書き込み、第２の論理アドレス空間は、複数の第１の物理アドレス空間の一つと、共通のサイズと管理サイズで管理され、第１の論理アドレス空間は、複数の第１の物理空間と、共通のサイズと管理サイズで管理され、第１の論理アドレス空間、複数の第１の物理アドレス空間、複数の第２の論理アドレス空間は、管理サイズで先頭アドレスが揃えられている。
【発明の効果】
【００１３】
本発明によれば、ストレージシステムのストレージコントローラの論物アドレス変換と、ＳＳＤのコントローラの論物アドレス変換とを２重に行うことによる管理リソースの浪費を解消することができる。
【図面の簡単な説明】
【００１４】
【図１】情報処理システム構成図である。
【図２】SSDドライブの構成図である。
【図３】ストレージコントローラで管理される圧縮後データサイズ情報を示した図である。
【図４Ａ】SSDで管理される論物変換テーブルの一例を示した図である。
【図４Ｂ】SSDで管理される論物変換テーブルの一例を示した図である。
【図５】ライト時の動作概念図である。
【図６Ａ】上書き動作を示す動作概念図である。
【図６Ｂ】上書き動作を示す動作概念図である。
【図７Ａ】ライト時のRAID制御動作を示す概念図である。
【図７Ｂ】ストレージコントローラのストライピング動作の概念図である。
【図８】ストライピング実行時のライト動作を示す概念図である。
【図９】ストレージコントローラのライド動作を示すフローチャートである。
【図１０】ストレージコントローラのリード動作を示すフローチャートである。
【図１１Ａ】圧縮後のデータを使用したRAID処理の一例を示すフローチャートである。
【図１１Ｂ】圧縮前のデータを使用したRAID処理の一例を示すフローチャートである。
【図１２】データ圧縮後のRAID処理の動作を説明する図である。
【発明を実施するための形態】
【００１５】
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１６】
以下の説明では、［AAAテーブル］の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、［AAAテーブル］を［AAA情報］とすることができる。
【００１７】
また、以下の説明では、プロセッサは、典型的には、CPU（Central  Processing  Unit）である。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
【００１８】
また、以下の説明では、［プログラム］を動作の主体として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）等を用いながら行うため、実際の処理の主体はプロセッサである。従って、プログラムを動作の主体として説明された処理は、プロセッサを含む装置が行う処理としてもよい。また、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでもよい。
【００１９】
コンピュータプログラムは、プログラムソースから装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ、又は、計算機が読み取り可能な記憶メディアであってもよい。
【実施例】
【００２０】
＜１．システム構成＞
図１は、本実施例による情報処理システム構成図である。
【００２１】
この情報処理システム100は、１又は複数のホストコンピュータ101と、ストレージコントローラ102と複数の不揮発メモリドライブであるSolid State Drive（SSD）を備える。ストレージコントローラ102と複数のSSDで、ストレージシステムを構成する。ホスト101とストレージコントローラ102は、Local Area Network（ＬＡＮ）又はインターネット等からなるネットワークを介して相互に接続されて構成されている。
【００２２】
ホスト101は、Central Processing Unit（ＣＰＵ）及びメモリ等の情報資源を備えたコンピュータ装置であり、例えば、オープン系のサーバや、クラウドサーバ等から構成される。ホスト101は、ユーザ操作や、実装されたプログラムからの要求に応じてネットワークを介してストレージコントローラ102にライトコマンドやリードコマンドを送信する。
【００２３】
ストレージコントローラ102は、ストレージとしての機能をホスト101に提供するための必要なソフトウエアが実装された装置である。通常、ストレージコントローラ102は、冗長化された複数のストレージコントローラから構成される。
【００２４】
ストレージコントローラ102は、ＣＰＵ（プロセッサ）103、メモリ105、フロントエンドインタフェース（ネットワークI/F）104及び記憶装置106と、これらを接続するバス107を備える。
【００２５】
プロセッサ103は、ストレージコントローラ102全体の動作制御を司るハードウェアである。プロセッサ103は、ホスト101から与えられたリードコマンドやライトコマンドに応じて、対応するSSD120にデータを読み書きする。
【００２６】
またメモリ105は、例えば、Synchronous Dynamic Random Access Memory（ＳＤＲＡＭ）等の半導体メモリから構成され、必要なプログラム（Operating System（ＯＳ）を含む）やデータを記憶保持するために利用される。メモリ105は、プロセッサ103の主記憶であり、プロセッサ103が実行するプログラム（ストレージ制御プログラム等）や、プロセッサ103が参照する管理テーブル等が格納される。
【００２７】
図１では、管理テーブル110、113が記憶装置106に格納され、メモリ105に読み出される形態を示しているが、記憶装置106から読み出す形態ではなく、予めメモリ105が格納しても良い。また、メモリ105は、ストレージコントローラ102のディスクキャッシュ（キャッシュメモリ）としても使用される。
【００２８】
プロセッサ103が、記憶装置106に格納されたプログラムをメモリ105に読み出し、実行することにより、ストレージ機能をホスト101等に提供する。そのため、実際の処理主体はプロセッサ103であっても、各プログラムの処理を分かりやすく説明するため、プログラムを主語にして説明する場合がある。
【００２９】
ネットワークI/F104は、ホスト101に対するインタフェースであり、ネットワークを介したホスト101との通信時におけるプロトコル制御を行う。
【００３０】
記憶装置106には、ＯＳやストレージ制御プログラム、管理テーブルのバックアップ等が格納される。本実施例では、ストレージ制御プログラムとして、圧縮プログラム108、容量管理プログラム109、ドライブIOプログラム111、RAID制御プログラム112を用いて説明する。これ以外にも、スナップショットや重複排除が含まれるが、本実施例の動作の説明に用いないため説明を割愛する。RAID制御プログラム112としては、データ保護機能であるRAID機能の他、ボリュームや各ボリュームを構成するSSD等のRAIDを構成するための構成情報を含んでいる。尚、記憶装置106は、例えばＨＤＤやSolid State Drive (ＳＳＤ)から構成される。
【００３１】
ストレージコントローラ102にバックエンドIF(図示せず)を介して、複数のSSD120が接続される。
【００３２】
圧縮プログラム108は、ホストから受信したデータを圧縮する機能を実現する。容量管理プログラム109は、SSD120の全容量、データを格納することによって使用された使用容量、データが格納されていない空き容量を管理する。また、ドライブIOプログラム111は、SSDドライブ120に対し、IO処理を実行する。RAID制御プログラム112は、RAID機能を実現し、ホストからのデータをRAID構成に応じてストライピングし、ストライピングされたデータを格納するため各SSDドライブ120の所定のアドレスを算出する。構成情報113は、ホスト101に提供する記憶領域であるボリュームとボリュームを構成するSSDの関係等、RAID制御プログラム112が参照するテーブルが格納されている。構成情報113は、ストレージコントローラ102に接続される全SSDドライブ120のアドレスを管理し、容量管理プログラム109によって、使用済み物理容量や空き物理容量が管理される。
【００３３】
＜２．ドライブ筐体の構成＞
図２は、SSDの構成図である。SSD120は、ドライブの制御と、外部から記憶装置であるドライブに読み書きする機能を提供するための必要なソフトウエアが実装された装置である。
【００３４】
また、SSD120は、プロセッサ（CPU）201、メモリ202、I/F205及びバス204、記憶装置であるNAND フラッシュメモリ203（以下、NANDと呼ぶ）とを備える。ストレージシステムの記憶領域を構成し、ホストからのデータを格納する記憶装置である。NAND203は、限定されないが、複数のNANDフラッシュメモリチップを含んでいてもよい。NAND203は、メモリセルアレイを含む。このメモリセルアレイは、多数のNANDブロック（ブロック）Ｂｍ−１を含む。ブロックＢ０〜Ｂｍ−１は、消去単位として機能する。ブロックは「物理ブロック」または「消去ブロック」と称されることもある。
【００３５】
ブロックは多数のページ（物理ページ）を含む。つまり、ブロックの各々は、ページＰ０〜Ｐｎ−１を含む。ＮＡＮＤ203においては、データのリードおよびデータのライトはページ単位で実行される。データの消去はブロック単位で実行される。
【００３６】
プロセッサ201は、SSD120全体の動作制御を司るハードウェアである。プロセッサ201、ストレージコントローラ102から与えられたリードコマンドやライトコマンドに応じて、対応するNAND203にデータを読み書きするとともに、ストレージコントローラ102から与えられたデータ転送コマンドに応じて、ホスト101との間のデータ転送を行う。
【００３７】
またメモリ202は、例えば、Synchronous Dynamic Random Access Memory（ＳＤＲＡＭ）等の半導体メモリから構成され、必要なプログラム（Operating System（ＯＳ）を含む）やデータを記憶保持するために利用され、キャッシュメモリとして機能する。
【００３８】
メモリ202は、プロセッサ201の主記憶であり、プロセッサ201が実行するプログラム（SSDドライブ制御プログラム等）や、プロセッサ201が参照する管理テーブル等が格納される。本実施例では、プログラムとして、NAND制御210、容量拡張211、論物変換212を含み、管理テーブルとして、論物変換情報213を一例として示している。
【００３９】
NAND制御プログラム210は、NAND Flash Memoryのデータのリード、ライト操作を制御する。容量拡張プログラム211は、NANDの実際の容量よりも大きな容量をストレージコントローラ102に提供する機能を実現する。SSD120自身は、圧縮機能を備えていないが、実際の物理容量より大きな論理アドレス空間をストレージコントローラ102に提供する。これにより、ストレージコントローラ102がホスト101に提供する論理アドレス空間に揃えることができる。つまり、ストレージコントローラ102の物理アドレス空間に、SSDの論理アドレス空間を対応させ、それぞれの先頭アドレスを対応付けることで、アドレスの管理体系を共通化し、ストレージコントローラ102の複雑な論物アドレス変換を簡単なものとしている。
【００４０】
論物変換プログラム212は、SSDドライブ120がストレージコントローラ102に提供する論理アドレス空間と、実際にデータの書き込みが行われるNAND203の物理アドレス空間の対応を算出する。論物変換情報213は、所謂マッピング情報であり、SSDドライブ120がストレージコントローラ102に提供する論理アドレス空間と、データの書き込みが行われるNAND203の物理アドレス空間の対応を管理する。本実施例は、SSD120の物理容量を容量拡張プログラム211により拡張し、SSD120がストレージコントローラ102に提供する論理アドレス空間を作成し、この拡張された論理アドレス空間をストレージコントローラ102が管理する物理アドレス空間に揃えることで、アドレスの管理体系を共通化し、ストレージコントローラ102の論物アドレス変換を単純な計算で求めることができるようにしている。
【００４１】
メモリ202に格納されたプログラムをプロセッサ201が実行することにより、各種処理が実行される。そのため、実際の処理主体はプロセッサ201であっても、各プログラムの処理を分かりやすく説明するため、プログラムを主語にして説明する場合がある。
【００４２】
ネットワークI/F205は、SCSI、Serial Attached SCSI（SAS）、ATA、Serial ATA(SATA）、PCI Express（PCIe）、Ethernet（登録商標）、Fibre channel、NVM Express（NVMe）（登録商標）等を使用して接続されている。
【００４３】
＜３．各種管理情報＞
図３は、ストレージコントローラで管理される圧縮後データサイズ情報を示した図である。圧縮後データサイズ情報110は、ストレージコントローラ102の記憶装置106に格納される。
【００４４】
圧縮後データサイズ情報110は、先頭アドレス301、圧縮後のデータサイズ302を先頭アドレス301に対応して管理する。先頭アドレス301は、「0x0000」「0x0020」と圧縮管理サイズ間隔で管理される。本実施例では、圧縮管理サイズを１６kBで説明するが、これに限るものではない。先頭アドレスとは、ストレージコントローラ102が認識する物理アドレス空間であって、SSDドライブ120が提供する論理アドレス空間に対応するアドレスである。
【００４５】
尚、圧縮後データサイズ情報は、容量管理プログラム109によって参照され、SSDドライブ120の空き容量が把握される。SSD120の容量拡張プログラム211によって実際のNANDの物理容量より大きな容量が論理アドレス空間として、SSD120からストレージコントローラ102に提供されるため、システム稼働中にストレージコントローラ102でNANDの物理容量が枯渇しないように管理するためである。
【００４６】
ストレージコントローラ102がリード処理の際に、圧縮前サイズでリードし、有効データ(ゼロデータが続く範囲を除く)を判断し、圧縮後のデータサイズを求める構成とすれば、圧縮後データサイズ情報110を不要とすることができる。
【００４７】
図４Ａは、SSDで管理される論物変換テーブルの一例を示した図である。
論物変換情報213は、SSD120がストレージコントローラ102に提供する論理アドレス401、論理アドレス401に対応するNAND Flash Memory203の物理アドレス402を管理する。例えば、論理アドレス「0x0000」に対して、物理アドレス「NAND#10-Block#20-Page#30-Offset#0」が対応していることを示している。尚、論理アドレス「0x0030」に対しては、物理アドレスが割当たっていない状態、即ち、論理アドレス「0x0030」はデータが格納されていない状態であることを示している。この論理アドレス401は、容量拡張プログラム211によって、実際のNANDの物理容量より大きな空間を表す情報となっている。
【００４８】
図４Ａの例では、論理アドレス401はSSD120内のアドレス管理単位である8KBの場合を示している。論理アドレスをSSD120のアドレス管理単位と異なるように実施する場合、SSD内のアドレス管理単位を中間アドレスとして、例えば中間アドレスの整数倍の論理アドレスとすることもできる。
【００４９】
また、ライト先の物理アドレス402はNANDや格納数によって異なる。ここでは例として、NANDが16個程度、16kBのページに対してライトしていき、ページの途中から始まるデータの位置はオフセットで管理する例を示している。例えば、物理アドレス「NAND#10-Block#20-Page#30-Offset#0」は、NANDの識別子が「10」、ブロック番号が「20」、パージ番号が「30」で、オフセットが「0」で、複数NANDの内の物理アドレスを特定している。
【００５０】
図４Ｂは、SSDで管理される論物変換テーブルの一例を示した図である。図４Ｂは、図４Ａの状態から、論理アドレス「0x0040」に上書き処理が行われた場合の物理アドレスの変化を示している。論理アドレス「0x0040」に対応する物理アドレス「NAND#4-Block#40-Page#40-Offset#7」に対するデータの上書き命令があった場合、論理アドレス「0x0040」は変更されることないが、NANDの特性である上書き不可のため、物理アドレス「NAND#4-Block#40-Page#40-Offset#7」は論理アドレス「0x0040」との対応が解消（アンマップ）され、別の物理アドレス「NAND#10-Block#14-Page#21-Offset#4」が論理アドレス「0x0040」に割り当てられる。
【００５１】
＜４．ライト動作＞
図５は、ライト時の動作概念図であり、圧縮ライト処理を説明する。ストレージコントローラ102は、ホスト101に論理的な記憶領域として提供する論理アドレス空間501と、SSDドライブ120の記憶領域を管理するアドレス空間である物理アドレス空間502との対応を管理する。論理アドレス空間501と、物理アドレス空間502は共通のサイズ、共通の管理単位とする。例えば、共通の管理単位は、同じサイズ、同じ管理単位であるが、同じサイズ、同じ管理単位は、実質的同一のものと簡単に置換できるものも含まれる。
【００５２】
SSD120は、ストレージコントローラ102に提供する論理アドレス空間503とNANDのアドレス空間である物理アドレス空間504の対応を管理する。SSD120の物理記憶領域を管理する物理アドレス空間504は、NAND203の物理ページ（16kB）506に対応する。SSDドライブ120側の論理アドレス空間503は、容量拡張プログラム211によって、実際のNANDの物理容量（物理アドレス空間504）より大きな空間となり、ストレージコントローラ102の物理アドレス空間502と共通のサイズ、管理単位で対応する。つまり、アドレス管理の共通化を図る。共通のサイズ、管理単位は、例えば、同じサイズ、同じ管理単位であるが、同じサイズ、同じ管理単位は、実質的同一のものと簡単に置換できるものも含まれる。
【００５３】
図５では、ライトデータ（１）511a、ライトデータ（２）512a、ライトデータ（３）513a、ライトデータ（４）514aの順でライト処理が行われる例を説明する。
【００５４】
ライトデータ（１）511aは、ストレージコントローラ102で圧縮され、圧縮データ(1)511bが生成される。論理アドレス空間501には、ライトデータ（１）511aが書き込まれ、物理アドレス空間502には、圧縮データ（１）511bが書き込まれる。論理アドレス空間501や物理アドレス空間502はアドレスを管理するための情報であるため、これら空間に実際のデータの書き込むことはなく、書き込んだように管理される。
【００５５】
ここで、ストレージコントローラ102の論理アドレス空間501と物理アドレス空間502は共通のサイズ、管理単位で対応し、それぞれの管理単位の先頭アドレスは揃えられている。例えば、共通のサイズ、共通の管理単位は、同じサイズ、同じ管理単位であるが、同じサイズ、同じ管理単位は、実質的同一のものと簡単に置換できるものも含まれる。
【００５６】
SSD120は、ストレージコントローラ102から圧縮データ511bを受け取ると、ライトデータ（１）511cとして、論理アドレス空間503に書き込む。論理アドレス空間503に書き込まれたライトデータは論物変換情報213を参照し、NAND物理ページ506aにライトデータ（１）511dとして書き込まれる。論理アドレス空間503はアドレスを管理するための情報であるため、これら空間に実際のデータの書き込むことはなく、書き込んだように管理される。
【００５７】
同様に、ライトデータ（２）512aも圧縮されて物理アドレス空間502に圧縮データ(2)512bとして書き込まれ、SSD120に送られる。SSD120では、ライトデータ512cとして論理アドレス空間503に書き込まれ、二つの物理ページ506a、506bにライトデータ(2)’512d、ライトデータ(2)”512dとして書き込まれる。尚、ライトデータ(2)’512dはライトデータ(1)511dの後続するアドレスに書き込まれる。
【００５８】
同様にライトデータ(3)513aも圧縮され、ストレージコントローラ102の物理アドレス空間、SSD120の論理アドレス空間503、SSD120の物理アドレス空間504にそれぞれ書き込まれ、物理ページ506bにライトデータ(3)513dとして格納される。尚、ライトデータ(3)513dは、ライトデータ(2)”512ｄの後続する物理アドレスに書き込まれる。
【００５９】
ライトデータ(4)は、ライトデータ(2)の一部を上書きするデータである。ライトデータ(4)514aは、論理アドレス空間501に書き込まれ、圧縮データが物理アドレス空間502に書き込まれる。SSD120側でも論理アドレス空間503に書き込まれる。その際、論理アドレス空間503では、旧データであるライトデータ(2)512Cの一部が新データであるライトデータ(4)514Cによって上書きされる。物理アドレス空間504では、新データであるライトデータ(4)は、ライトデータ(2)’(2)”とは異なる物理アドレスにライトデータ(4)514dとして書き込まれる。
【００６０】
図５に示したように、ストレージコントローラ102の論理アドレス空間501と物理アドレス空間502は、共通のサイズ、管理単位で対応し、それぞれの管理単位の先頭アドレスは揃えられ、ストレージコントローラ102の物理アドレス空間502に対応するSSDの論理アドレス空間503の共通のサイズ、管理単位で対応し、それぞれの管理単位の先頭アドレスも同様に揃えられている。つまり、アドレスの管理体系を共通化している。例えば、共通のサイズ、共通の管理単位は、同じサイズ、同じ管理単位であるが、同じサイズ、同じ管理単位は、実質的同一のものと簡単に置換できるものも含まれる。
【００６１】
従って、ストレージコントローラ102は、圧縮前データの先頭アドレスをそのまま使用して、データをライトする。SSD120は論理アドレス空間503として、所有する物理アドレス空間504よりも大きな空間（圧縮分）を提供する。
【００６２】
ストレージコントローラ102は、圧縮前データの先頭アドレスをそのまま使用するために、圧縮単位によるパディングを実施する。詳細は、図１１Ａ、図１２を用いて説明する。また、圧縮前データの先頭アドレスは、圧縮前管理サイズで分割後のそれぞれの先頭アドレスを用いる場合もある。このときの詳細は図９、図１０を用いて説明する。
【００６３】
図６Ａは、上書き動作を示す動作概念図である。
【００６４】
（１）初回ライト
まず、初回ライトの動作を説明する。ストレージコントローラ102は圧縮管理単位(圧縮前データサイズ)である１６kBの「Data-A」を論理アドレス空間501のアドレス「0x20」に書き込む。ストレージコントローラ102は、「Data-A」を圧縮し、「圧縮後Data-A」を生成する。「圧縮後Data-A」のサイズは、１２kBである。圧縮管理単位(圧縮前データサイズ)である１６kBは一例であって、３２kB、６４kB他のサイズであっても構わない。
【００６５】
１２kBの圧縮後Data-Aは物理アドレス空間502に書き込まれて、SSD120に送られる。圧縮後Data-Aは、SSD120の論理アドレス空間503の論理アドレス「0x20」に書き込まれる。圧縮後Data-Aは、物理アドレス空間504の物理アドレス「0x140」に書き込まれる。
【００６６】
（２）内部処理
次に、論理アドレス空間501のアドレス「0x20」に16kBの「Data-B」のライトを受領する。ストレージコントローラ102はData-Bを圧縮し、９kBの「圧縮後Data-B」を生成し、物理アドレス空間502に書き込む。
【００６７】
図６Ｂは、上書き動作を示す動作概念図であり、図６Ａの続きである。
【００６８】
（３）アンマップ
次に、データ更新時は、圧縮前データサイズ（通常圧縮管理単位×N）にアンマップを発行し、旧データを無効化したのち、新データを同一アドレスにライトする。SSDの機能により、論物変換を行い、適切な物理アドレスへデータを格納する。図６Ｂでは、論理アドレス空間501のアドレス「0x20」の圧縮前データサイズ(16kB)に対して、解放指示(アンマップ)を指示する。すると、SSD120は、論理アドレス「0x20」に対する物理アドレス「0x140」の割当を解消する。
【００６９】
（４）ライト(上書き)
ストレージコントローラ102は圧縮管理単位である１６kBの「Data-B」を論理アドレス空間501のアドレス「0x20」に書き込む。ストレージコントローラ102は、「Data-B」を圧縮し、「圧縮後Data-B」を生成する。「圧縮後Data-B」のサイズは、９kBである。９kBの圧縮後Data-Bは物理アドレス空間502に書き込み、SSD120に送る。圧縮後Data-Bは、SSD120の論理アドレス空間503の論理アドレス「0x20」に書き込まれる。圧縮後Data-Bは、物理アドレス空間504の物理アドレス「0x260」に書き込まれる。
【００７０】
以上のように、ストレージコントローラ102の論理アドレス空間501、物理アドレス空間502、SSD120の論理アドレス空間503の共通のサイズ、管理単位で対応し、それぞれの管理単位の先頭アドレスは、圧縮管理サイズで揃えられているため、その間のアドレス変換は必要なく、SSD120の論理アドレスと物理アドレスの変換を行えば良いことになり、ストレージシステムのストレージコントローラの論物アドレス変換と、ＳＳＤのコントローラの論物アドレス変換とを２重に行うことによる管理リソースの浪費を解消することができる。例えば、共通のサイズ、共通の管理単位は、同じサイズ、同じ管理単位であるが、同じサイズ、同じ管理単位は、実質的同一のものと簡単に置換できるものも含まれる。
【００７１】
図７Ａは、ライト時のRAID制御動作を示す概念図である。ストレージコントローラ102はデータ保護のため、ホスト101からのライトデータを、RAID構成情報に従って各ドライブに書き込むため分割(ストライピング)する。
【００７２】
図７Ｂは、ストライピングの動作概念を示している。ホスト101からのデータ「０，１，２，３・・」は、RAID制御プログラム112の管理情報として格納されている構成情報に従って、分割されて各ドライブに書き込まれる(ストライピング)。各ドライブに書き込まれるデータ「０」「１」等のサイズは６４kBである。このサイズは、単なる例示であって、他のサイズであっても構わない。
【００７３】
図７Ａに戻り、ＲＡＩＤ制御の説明を行う。
ストレージコントローラ102の論理アドレス空間501はホスト101に提供され、ホスト101からライトデータ711ａ、712ａを受領する。ライトデータ（１）は、RAID制御プログラム112により分割（最大６４kB）されて、ドライブ120a、120bに書き込むデータとなる。分割されたデータは、圧縮管理単位毎(１６kB)に圧縮されて、圧縮後データ711bとなる。図７Ａでは、ライトデータ(1)711aが二つのストライプデータに分割されている例を示している。ストライプデータを圧縮管理単位に分割し、圧縮管理単位毎に分割されたライトデータを圧縮する。ストレージコントローラ102の物理アドレス空間502、SSD120の論理アドレス空間503、物理アドレス空間504、NANDの各ページ506の圧縮データの書き込み動作（圧縮ライト処理）は、図５で説明した動作と通りであるため、説明を割愛する。
【００７４】
ストレージコントローラ102によって制御されるRAID機能であるRAID制御プログラム112は、ライトデータをストライピングする。ストレージコントローラ102は、ストライピングしたデータを圧縮管理単位毎に圧縮して圧縮後データを生成する。ストレージコントローラの論理アドレス空間、複数のSSDの論理アドレスに対応するストレージコントローラの物理アドレス空間、複数のSSDの論理アドレス空間が、共通のサイズ、共通の管理単位で対応し、それぞれの管理単位の先頭アドレスも揃えられているため、各SSDは、ストレージコントローラ102が生成した圧縮後データを格納するため、自身の物理リソースを管理する物理アドレス空間504と、物理アドレス空間に対応する論理アドレス空間503との対応関係を示す論物変換情報213（論物変換テーブル）を管理するだけで、RAID機能に対応することができる。
【００７５】
図８は、ストライピング実行時のライト動作を示す概念図である。図８は図５と多くの点で共通であるが、図５が説明を簡単にするため、一つのSSDの例を示したのに対し、図８は複数のSSD120a、120bを示し、ストライピング実行時のライト動作を示したものである。
【００７６】
ストレージコントローラ102の論理アドレス501を構成するための物理アドレス502は、SSD120aの論理アドレス空間及びSSD120bの論理アドレス空間にそれぞれ対応する、物理アドレス空間502a、物理アドレス空間502bから構成されている。ストレージコントローラ102の物理アドレス空間502aは、SSD120aの論理アドレス空間503aに対応している。つまり、SSD120a、120bの論理アドレスに、ストレージコントローラの複数の物理アドレス空間502a、502bを対応させ、一つの論理アドレス501に統合している。
【００７７】
ストレージコントローラ102は、各SSDから提供される複数の論理アドレス空間503を複数の物理アドレス空間502のそれぞれに対応させ、複数の物理アドレス空間502で一つの論理アドレス空間501を構成している。従って、ストレージコントローラ102は、物理アドレス空間502を用いて、RAIDの構成情報を管理でき、各SSDドライブにデータのストライピングを行うことができる。尚、各SSD120からストレージコントローラ102に提供される論理アドレス空間503は、物理アドレス空間504を容量拡張プログラム211により拡張された実際の物理容量より大きな空間である。
【００７８】
容量拡張プログラム211による拡張率は、任意に定めることができる。基本的に各SSDで同じ値が基本であるが、SSD毎に異なる拡張率を適応することもできる。例えば、NAND203の書き込み回数に応じて、減少させても良い。つまり、書き込み回数が一定以上となると書き込み動作を抑止するため、論理アドレス空間を小さくするようにする。何れにしても、ストレージコントローラ102は、物理容量の使用状況を管理する必要があるため、拡張率は、ストレージコントローラ102から各SSD120に設定するか、各SSD120から拡張率に関する情報をストレージコントローラ102が受け取ることができるように構成されている。
【００７９】
図９は、ストレージコントローラのライト動作を示すフローチャートである。
【００８０】
ホスト101からライトデータを受領することでライト処理を開始する（S900）。ストレージコントローラ102は、RAIDの構成情報113を参照して、RAID制御プログラム112がライトデータを、例えば６４kB単位に、ストライピングする（S901）。ストライピングされたライトデータを、圧縮プログラム108が圧縮前管理サイズに分割する（S902）。圧縮前管理サイズは、例えば、１６kBである。
【００８１】
次に、圧縮プログラム108は、圧縮前管理サイズに分割されたデータが圧縮可能であるかを判定し(S903)、圧縮可能であれば、ステップS905に進み、そうでなければステップS904に進む。ステップS904では、分割された前後のデータを取得し、圧縮できるデータとする(S904)。ステップS905において、圧縮プログラム108は圧縮前管理サイズに分割されたデータを圧縮し(S905)、全ての圧縮前管理サイズに分割されたデータが圧縮されたか否かを判定する（S906）。圧縮されていないデータがある場合には、ステップS902に戻り同様の処理を行う。
【００８２】
圧縮前管理サイズに分割されたデータの全ての圧縮が終了すると、圧縮前管理サイズの余った場所（圧縮により小さくなったデータにより、空きとなったアドレス空間）に、「０」を書き込むパディングを行う(S907)。ライトデータが同じ論理アドレスに対する書き込みであった場合、旧データの領域を解放するため、ストレージコントローラ102の論理アドレス空間の圧縮前管理サイズの解放指示を行う(S908)。その後、圧縮後のデータをSSD120が物理アドレス空間に書き込み（S909）。全データが終了するまで、ステップS907からステップ910の処理を繰り返す。
【００８３】
その後、容量管理プログラム109が圧縮後データサイズ情報を更新し、物理容量の管理を行い(S911)、ライト処理を終了する(S912)。
【００８４】
尚、ステップS908の解放指示は、ステップS909の圧縮後サイズのデータのSSD120への書き込みの後、或いは、ステップ911の圧縮後データサイズ情報を更新の後に行われても良い。
【００８５】
＜５．リード動作＞
図１０は、ストレージコントローラのリード動作を示すフローチャートである。
ストレージコントローラ102がホスト101からリードコマンドを受領することで、リード処理が開始される（S1001）。リードコマンドに含まれるリードデータ長を圧縮前管理サイズに分割する（S1002）。その後、RAIDプログラム112は、圧縮後データサイズ情報110を参照し、圧縮後のデータサイズを取得する(S1003)。
【００８６】
ドライブIOプログラム111は、圧縮後のデータをSSD120から読み出す(S1004)。読み出した圧縮データを圧縮プログラム108が伸長する（S1005）。
【００８７】
圧縮前管理サイズに分割された全データについて処理が完了したか判定し(S1006)、処理が完了していない場合、ステップS1003に戻り処理を繰り返す。処理が完了していたら、ストレージコントローラ102はホスト101にリードデータを転送し（S1007）、リード処理を終了する。
【００８８】
＜６．ライト動作（RAID制御）＞
図１１Ａは、圧縮後のデータを使用したRAID処理の一例を示すフローチャートである。  ストレージコントローラ102は、ホスト101からライトコマンドを受領すると、ライト処理を開始する（S1101）。ストレージコントローラ102は、RAIDプログラム112により、SSD120に格納された圧縮済み旧データ、旧パリティをリードする（S1102）。
【００８９】
次に、RAIDプログラム112は、圧縮後新データと、圧縮後旧データ、圧縮後旧パリティにそれぞれゼロデータを付与して圧縮前データサイズに拡張する（S1103）。RAID制御プログラム112は、拡張したデータを使用して、仮の新パリティを生成する（S1104）。仮の新パリティのゼロデータ部を除去して、格納用新パリティを生成し（S1105）、新データ、格納用新パリティを圧縮ライト処理に従って、書き込む（S1106）。
【００９０】
図１１Ａに示したライト動作は、圧縮データを伸長することなしに、パリティ計算を行うため、伸長処理を不要にすることでき、処理の高速化を図ることができる。
【００９１】
図１１Ｂは、図１１Ａと異なる圧縮前のデータを使用したRAID処理の一例を示すフローチャートである。
ストレージコントローラ102は、ホスト101からライトコマンドを受領すると、ライト処理を開始する（S1111）。ストレージコントローラ102は、SSDに格納された圧縮済み旧データ、旧パリティをリードする(S1112)。次に、圧縮プログラム108により旧データ、旧パリティを伸長する（S1113）。RAIDプログラム112は、圧縮前新データと、伸長済み旧データ、旧パリティから、新パリティを生成する（S1114）。新データ、新パリティを圧縮ライト処理に従って、書き込む(S1115)。
【００９２】
図１１Ｂで示した処理は、図１１Ａの処理と比較し、圧縮データを一旦伸長しなければならないが、圧縮データにゼロデータをパディングする処理や、仮の新パリティからゼロデータを除去する必要がない。本実施例のストレージコントローラ102の論理アドレス空間501、物理アドレス空間502、SSD120の論理アドレス空間503の同じサイズ、同じ管理単位で対応し、それぞれの管理単位の先頭アドレスは、圧縮管理サイズで揃える圧縮ライト処理では、図１１Ａの方がデータの管理が容易である。
【００９３】
図１２は、データ圧縮後のRAID処理の動作を説明する図である。
（１）ストレージコントローラ102がホスト101からライトデータ（新データ）1201を受領する。
【００９４】
新データに対応する旧データ（ストライプデータ）をSSD120a、SSD120bから読み出す。
【００９５】
新データを圧縮し、圧縮前データサイズとなるようゼロデータ1211bを付与する。同様にSSD120a、SSD120bから読み出された旧データ1212a、1213a（ストライプデータ）に圧縮前データサイズとなるようゼロデータ1212b、1213bを付与し、ゼロデータが付与された新データと旧データからパリティ1220aを生成する。
【００９６】
圧縮後の新データはSSD120a’に書き込まれると共に、ゼロデータを除去された新パリティ1220aもSSD120bに書き込まれる。
【００９７】
ここでは、例えば、圧縮前データの管理単位を16kB、圧縮後を0.5kBとした場合、ライトデータは16kBごとに分割され、その先頭アドレスから0.5kB単位の長さのデータが生成される。また、上書き時には16kB単位のデータの解放(WriteSameコマンドなどによるSSD側論物テーブルの解放)を行うことで、圧縮後データ長の変化に対応した上書きを行う。
【００９８】
以上本実施例は、SSD側で容量拡張機能をサポートし、ストレージコントローラ側で圧縮後に通常のアドレス割り当てを行う（ログ形式ではなく上書き形式）ことによって、複雑なテーブルが必要となる論物変換をSSD側で実施する。
【００９９】
ストレージコントローラ102は、各SSDから提供される複数の論理アドレス空間503を複数の物理アドレス空間502と対応させ、複数の物理アドレス空間502で一つの論理アドレス空間501を構成している。従って、ストレージコントローラ102は、物理アドレス空間502を用いて、RAIDの構成情報を管理でき、各SSDドライブにデータのストライピングを行うことができる。
【０１００】
また、ストレージコントローラの論理アドレス空間、複数のSSDの論理アドレスに対応するストレージコントローラの物理アドレス空間、複数のSSDの論理アドレス空間が、共通のサイズ、共通の管理単位で対応し、それぞれの管理単位の先頭アドレスも揃えられているため、各SSDは、ストレージコントローラ102が生成した圧縮後データを格納するため、自身の物理リソースを管理する物理アドレス空間504と、物理アドレス空間に対応する論理アドレス空間503との対応関係を示す論物変換情報213（論物変換テーブル）を管理するだけで、RAID機能に対応することができる。
【符号の説明】
【０１０１】
101：ホスト、102：ストレージコントローラ、103：CPU、104：インタフェース、105：メモリ、106：記憶装置、120：SSD、201：CPU、202：メモリ、203：NAND、501：ストレージコントローラの論理アドレス空間、502：ストレージコントローラの物理アドレス空間、503：SSDの論理アドレス空間、504：SSDの物理アドレス空間、506：NANDの物理ページ。
【図１】
2020135134.tif 000003
【図２】
2020135134.tif 000004
【図３】
2020135134.tif 000005
【図４Ａ】
2020135134.tif 000006
【図４Ｂ】
2020135134.tif 000007
【図５】
2020135134.tif 000008
【図６Ａ】
2020135134.tif 000009
【図６Ｂ】
2020135134.tif 000010
【図７Ａ】
2020135134.tif 000011
【図７Ｂ】
2020135134.tif 000012
【図８】
2020135134.tif 000013
【図９】
2020135134.tif 000014
【図１０】
2020135134.tif 000015
【図１１Ａ】
2020135134.tif 000016
【図１１Ｂ】
2020135134.tif 000017
【図１２】
2020135134.tif 000018