(57)【要約】【課題】本発明に係る大容量格納装置は，仮想マシンを意識した仮想フラッシュ変換階層を提供する。【解決手段】各々複数の物理ページを含む複数の物理ブロックの分離された第１セット及び第２セットを含むフラッシュメモリ、及び第１仮想フラッシュ変換階層インスタンス及び第２仮想フラッシュ変換階層インスタンスを実行するように構成されるコントローラを含む。第１仮想フラッシュ変換階層インスタンスは論理ページナンバに向けられたストレージアクセス要請を受信し、第１セット内の物理ページナンバに向けられたストレージアクセス要請を生成するように構成され、第２仮想フラッシュ変換階層インスタンスは論理ページナンバに向けられたストレージアクセス要請を受信し、第２セット内の物理ページナンバに向けられたストレージアクセス要請を生成するように構成される。【選択図】図３
2017151988.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理ブロックを含むフラッシュメモリであって、前記複数の物理ブロックの各々が複数の物理ページを含み、前記複数の物理ブロックが第１セットの物理ブロック及び、前記第１セットの物理ブロックとは分離された（ｄｉｓｊｏｉｎｔ）第２セットの物理ブロックを含む、フラッシュメモリと、
第１仮想フラッシュ変換階層インスタンス及び第２仮想フラッシュ変換階層インスタンスを具現するように構成されたコントローラと、を含み、
前記第１仮想フラッシュ変換階層インスタンスは、論理ページナンバに向けられたストレージアクセス要請を受信して、前記第１セットの物理ブロック内の物理ページナンバに向けられたストレージアクセス要請を生成するように構成され、
前記第２仮想フラッシュ変換階層インスタンスは、論理ページナンバに向けられたストレージアクセス要請を受信して、前記第２セットの物理ブロック内の物理ページナンバに向けられたストレージアクセス要請を生成するように構成される、ことを特徴とする大容量格納装置。
【請求項２】
前記第１仮想フラッシュ変換階層インスタンス及び前記第２仮想フラッシュ変換階層インスタンスは、前記第１セットの物理ブロック及び第２セットの物理ブロックに対するガーベッジコレクション動作を各々遂行するように構成される、ことを特徴とする請求項１に記載の大容量格納装置。
【請求項３】
前記第１仮想フラッシュ変換階層インスタンスは、第１加重値を有し、前記第２仮想フラッシュ変換インスタンスは、第２加重値を有し、
前記第１セットの物理ブロックは、ガーベッジコレクション動作の間におけるデータの格納のために予約された第１追加提供ブロック（ｏｖｅｒｐｒｏｖｉｓｉｏｎ）を含み、
前記第２セットの物理ブロックは、ガーベッジコレクション動作の間におけるデータの格納のために予約された第２追加提供ブロックを含み、
前記第１セットの物理ブロックにおける物理ブロックの数に対する前記第１追加提供ブロックの物理ブロックの数の第１比率、及び前記第２追加提供ブロックの物理ブロックの数に対する前記第２セットの物理ブロックの数の第２比率の積は、前記第１加重値に対する前記第２加重値の比率に等しい、ことを特徴とする請求項２に記載の大容量格納装置。
【請求項４】
前記大容量格納装置は、
前記第１仮想フラッシュ変換階層インスタンスに割当されたページを各々含む１つ又はそれ以上の第１パッケージと、
前記第１仮想フラッシュ変換階層インスタンスに割当されたページを含まない１つ又はそれ以上の第２パッケージと、をさらに含み、
前記コントローラは、ストレージアクセス要請に応答して前記第１仮想フラッシュ変換階層インスタンスにページを割当するように構成されるページ割当器をさらに含み、
前記第１仮想フラッシュ変換階層インスタンスにページを割当することは、ページが前記１つ又はそれ以上の第１パッケージで利用可能である場合、前記１つ又はそれ以上の第１パッケージにページを割当することと、ページが前記１つ又はそれ以上の第１パッケージで利用可能でない場合、前記１つ又はそれ以上の第２パッケージにページを割当することと、を含む、ことを特徴とする請求項１に記載の大容量格納装置。
【請求項５】
大容量格納装置と、
前記大容量格納装置と連結されたホストと、を含み、
前記ホストは、
第１名称空間（ｎａｍｅｓｐａｃｅ）と連関され、前記大容量格納装置内でインスタンス化された（ｉｎｓｔａｎｔｉａｔｅｄ）第１仮想フラッシュ変換階層インスタンスへのストレージアクセス要請を送信するように構成される第１仮想マシンと、
第２名称空間と連関され、前記大容量格納装置でインスタンス化された（ｉｎｓｔａｎｔｉａｔｅｄ）第２仮想フラッシュ変換階層インスタンスへのストレージアクセス要請を送信するように構成された第２仮想マシンと、を含む、ことを特徴とするシステム。
【請求項６】
前記ホストは、前記第２名称空間と連関され、前記第２仮想フラッシュ変換階層インスタンスへのストレージアクセス要請を受信するように構成される第３仮想マシンをさらに含む、ことを特徴とする請求項５に記載のシステム。
【請求項７】
前記ホストは、前記第１仮想マシン及び前記第２仮想マシンの各々に前記第１仮想マシン及び前記第２仮想マシンの各々の予測される書込み動作レベルに比例する加重値を割当するように構成されるハイパバイザ（ｈｙｐｅｒｖｉｓｅｒ）をさらに含む、ことを特徴とする請求項５に記載のシステム。
【請求項８】
前記ホストは、前記第１仮想マシン及び前記第２仮想マシンの各々に対して前記第１仮想マシン及び前記第２仮想マシンの各々のサービスの永久ストレージ品質（ｓｅｒｖｉｃｅ  ｏｆ  ｐｅｒｓｉｓｔｅｎｔ  ｓｔｏｒａｇｅ  ｑｕａｌｉｔｙ）に比例する加重値を割当するように構成されるハイパバイザをさらに含む、ことを特徴とする請求項５に記載のシステム。
【請求項９】
前記大容量格納装置は、
複数の物理ブロックを含むフラッシュメモリであって、前記複数の物理ブロックの各々が複数の物理ページを含み、前記複数の物理ブロックが第１セットの物理ブロック及び前記第１セットの物理ブロックと異なる第２セットの物理ブロックを含む、フラッシュメモリと、
前記第１仮想フラッシュ変換階層インスタンス及び前記第２仮想フラッシュ変換階層インスタンスを実行するように構成されたコントローラと、を含み、
前記第１仮想フラッシュ変換階層インスタンス及び前記第２仮想フラッシュ変換階層インスタンスの各々は、前記第１セットの物理ブロック及び前記第２セットの物理ブロックの各々に対するガーベッジコレクション動作を遂行するように構成される、ことを特徴とする請求項５に記載のシステム。
【請求項１０】
前記第１仮想フラッシュ変換階層インスタンスは、第１加重値を有し、前記第２仮想フラッシュ変換階層インスタンスは、第２加重値を有し、
前記第１セットの物理ブロックは、ガーベッジコレクション動作の間におけるデータの格納のために予約された第１追加提供ブロックを含み、
前記第２セットの物理ブロックは、ガーベッジコレクション動作の間におけるデータの格納のために予約された第２追加提供ブロックを含み、
第１値に対する第２値の比率は、前記第１加重値に対する前記第２加重値の比率に等しく、
前記第１値は、前記第１セットの物理ブロックの数に対する前記第１追加提供ブロックの物理ブロックの数の比率を示し、
前記第２値は、前記第２セットの物理ブロックの数に対する前記第２追加提供ブロックの物理ブロックの数の比率を示す、ことを特徴とする請求項９に記載のシステム。
【請求項１１】
前記大容量格納装置は、
前記第１仮想フラッシュ変換階層インスタンスに割当されたページを各々含む１つ又はそれ以上の第１パッケージと、
前記第１仮想フラッシュ変換階層インスタンスに割当されたページを含まない１つ又はそれ以上の第２パッケージと、をさらに含み、
前記コントローラは、ストレージアクセス要請に応答して前記第１仮想フラッシュ変換階層インスタンスにページを割当するように構成されるページ割当器をさらに含み、
前記第１仮想フラッシュ変換階層インスタンスにページを割当することは、ページが前記１つ又はそれ以上の第１パッケージの何れかにおいて利用可能である場合、前記１つ又はそれ以上の第１パッケージの内の利用可能な何れかのページにページを割当することと、ページが前記１つ又はそれ以上の第１パッケージの何れにおいても利用可能でない場合、前記１つ又はそれ以上の第２パッケージにページを割当することと、を含む、ことを特徴とする請求項９に記載のシステム。
【請求項１２】
複数の物理ブロックを含む大容量格納装置の第１仮想フラッシュ変換階層インスタンスによって、第１論理ページナンバに向けられた（ｄｉｒｅｃｔｅｄ  ｔｏ）第１ストレージアクセス要請を受信する段階と、
前記第１仮想フラッシュ変換階層インスタンスによって、前記複数の物理ブロックの第１サブセット内の物理ページナンバに向けられたストレージアクセス要請を生成する段階と、
前記大容量格納装置の第２仮想フラッシュ変換階層インスタンスによって、第２論理ページナンバに向けられた第２ストレージアクセス要請を受信する段階と、
前記第２仮想フラッシュ変換階層インスタンスによって、前記複数の物理ブロックの第２サブセット内の物理ページナンバに向けられたストレージアクセス要請を生成する段階と、を含み、
前記第１サブセット及び前記第２サブセットは、互いに分離される（ｄｉｓｊｏｉｎｔ）、ことを特徴とする方法。
【請求項１３】
ホストによって、第１名称空間及び第２名称空間を生成する段階と、
前記ホストによって、前記第１仮想フラッシュ変換階層インスタンスと通信（ｉｎｔｅｒａｃｔ）するように構成された第１仮想機能に前記第１名称空間を添付する段階と、
前記ホストによって、前記第２仮想フラッシュ変換階層インスタンスと通信するように構成された第２仮想機能に前記第２名称空間を添付する段階と、をさらに含む、ことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記ホストによって、第１仮想マシン及び第２仮想マシンを生成する段階と、
前記ホストによって、前記第１仮想機能を前記第１仮想マシンに割当する段階と、
前記ホストによって、前記第２仮想機能を前記第２仮想マシンに割当する段階と、をさらに含む、ことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記ホスト上のゲスト装置ドライバによって、前記第１名称空間を含む読出し要請を構成する段階と、
前記大容量格納装置によって、前記第１仮想機能を通じて前記読出し要請を受信する段階と、
前記第１仮想フラッシュ変換階層インスタンスによって前記読出し要請を処理する段階と、
前記第１仮想機能を通じて前記読出し要請の結果を返還する段階と、をさらに含む、ことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記ホスト上のゲスト装置ドライバによって、書き込まれるべきデータ及び前記第１名称空間に対する識別子を含む書込み要請を構成する段階と、
前記大容量格納装置によって、前記第１仮想機能を通じて前記書込み要請を受信する段階と、
前記第１仮想フラッシュ変換階層インスタンスによって、前記書込み要請を処理する段階と、
前記第１仮想フラッシュ変換階層インスタンスによって、前記大容量格納装置のページ割当器から書込み可能な物理ページに対応する１つ又はそれ以上の物理ページナンバを要請する段階と、
前記ページ割当器から１つ又はそれ以上の物理ページナンバを受信する段階と、
前記受信された１つ又はそれ以上の物理ページナンバと対応する１つ又はそれ以上の物理ページに前記データを書き込む段階と、をさらに含む、ことを特徴とする請求項１４に記載の方法。
【請求項１７】
前記第１仮想フラッシュ変換階層インスタンスによって、前記第１サブセットに対するガーベッジコレクション動作を遂行する段階をさらに含む、ことを特徴とする請求項１２に記載の方法。
【請求項１８】
前記第１仮想フラッシュ変換階層インスタンスは、第１加重値を有し、前記第２仮想フラッシュ変換階層インスタンスは、第２加重値を有し、
前記第１サブセットは、ガーベッジコレクション動作の間におけるデータの格納のために予約された第１の複数の追加提供ブロックを含み、
前記第２サブセットは、ガーベッジコレクション動作の間におけるデータの格納のために予約された第２の複数の追加提供ブロックを含み、
前記第１サブセットの物理ブロック数に対する前記第１の複数の追加提供されたブロックの物理ブロック数の第１比率、及び前記第２セットの物理ブロック数に対する前記第２の複数の追加提供されたブロックの物理ブロック数の第２比率の積は、前記第２加重値に対する前記第１加重値の比率と同一である、ことを特徴とする請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明に係る実施形態の１つ又はそれ以上の様相（ａｓｐｅｃｔ）は大容量格納装置に係り、さらに詳細には、仮想フラッシュ変換階層インスタンス（ｖｉｒｔｕａｌ  ｆｌａｓｈ  ｔｒａｎｓｌａｔｉｏｎ  ｌａｙｅｒ  ｉｎｓｔａｎｃｅｓ）を通じた大容量ストレージへのアクセスを提供する方法及びシステムに関する。
【背景技術】
【０００２】
ソリッドステートドライブ（半導体（大容量）格納装置、以下、フラッシュ（永久）ストレージと同義に用いる）を含むホストマシン（ｈｏｓｔ  ｍａｃｈｉｎｅ）が複数の仮想マシン（ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅｓ）を駆動（ｒｕｎ）するシステムにおいて、シングルルート入出力仮想化（ＳＲ−ＩＯＶ、ｓｉｎｇｌｅ  ｒｏｏｔ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｖｉｒｔｕａｌｉｚａｔｉｏｎ）は、各仮想マシンが、インタフェイスを通じて永久ストレージ（ｐｅｒｓｉｓｔｅｎｔ  ｓｔｏｒａｇｅ）と相互作用（ｉｎｔｅｒａｃｔ）することを可能にする。
ここで該インタフェイスは各仮想マシンに対して独立した大容量格納装置をエミュレート（ｅｍｕｌａｔｅ）する。しかし、仮に該インタフェイスが前記ソリッドステートドライブにおいて共有されたフラッシュ変換階層を使用すれば、１つの仮想マシンと相互作用する永久ストレージインタフェイスの性能が、他の仮想マシン及び永久ストレージ間の相互作用によって影響を受けるか、又は低下し得る。
【０００３】
即ち、仮想マシンの各々の永久ストレージアクセス動作の最中に、複数の仮想マシンの相互作用を減少する方法及びシステムが必要である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第９，００３，０７１号公報
【特許文献２】米国特許公開第２０１４／０３０４４５３号明細書
【特許文献３】米国特許公開第２０１５／０１３４９３０号明細書
【特許文献４】米国特許公開第２０１５／０１４９６６１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の実施形態の目的は、仮想マシンを意識した（ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ  ａｗａｒｅ）仮想フラッシュ変換階層を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の実施形態による大容量格納装置は、
複数の物理ブロックを含むフラッシュメモリであって、前記複数の物理ブロックの各々が複数の物理ページを含み、前記複数の物理ブロックが第１セットの物理ブロック及び、前記第１セットの物理ブロックとは分離された（ｄｉｓｊｏｉｎｔ）第２セットの物理ブロックを含む、フラッシュメモリと、
第１仮想フラッシュ変換階層インスタンス、及び第２仮想フラッシュ変換階層インスタンスを具現するように構成されたコントローラと、を含み、
前記第１仮想フラッシュ変換階層インスタンスは、論理ページナンバに向けられたストレージアクセス要請を受信して、前記第１セットの物理ブロック内の物理ページナンバに向けられたストレージアクセス要請を生成するように構成され、前記第２仮想フラッシュ変換階層インスタンスは、論理ページナンバに向けられたストレージアクセス要請を受信して、前記第２セットの物理ブロック内の物理ページナンバに向けられたストレージアクセス要請を生成するように構成される。
【０００７】
一実施形態で、前記第１仮想フラッシュ変換階層インスタンス及び前記第２仮想フラッシュ変換階層インスタンスは、前記第１セットの物理ブロック及び第２セットの物理ブロックに対するガーベッジコレクション動作を各々遂行するように構成される。
一実施形態で、前記第１仮想フラッシュ変換階層インスタンスは、第１加重値を有し、前記第２仮想フラッシュ変換インスタンスは、第２加重値を有し、前記第１セットの物理ブロックは、ガーベッジコレクション動作の間におけるデータの格納のために予約された第１追加提供（ｏｖｅｒｐｒｏｖｉｓｉｏｎ）ブロックを含み、前記第２セットの物理ブロックは、ガーベッジコレクション動作の間におけるデータの格納のために予約された第２追加提供ブロックを含み、
前記第１セットの物理ブロックにおける物理ブロックの数に対する前記第１追加提供ブロックの物理ブロックの数の第１比率、及び前記第２追加提供ブロックの物理ブロックの数に対する前記第２セットの物理ブロックの数の第２比率の積は、前記第１加重値に対する前記第２加重値の比率に等しい。
一実施形態で、前記大容量格納装置は、前記第１仮想フラッシュ変換階層インスタンスに割当されたページを各々含む１つ又はそれ以上の第１パッケージと、前記第１仮想フラッシュ変換階層インスタンスに割当されたページを含まない１つ又はそれ以上の第２パッケージと、をさらに含み、前記コントローラは、ストレージアクセス要請に応答して前記第１仮想フラッシュ変換階層インスタンスにページを割当するように構成されるページ割当器をさらに含み、前記第１仮想フラッシュ変換階層インスタンスにページを割当することは、ページが前記１つ又はそれ以上の第１パッケージで利用可能である場合、前記１つ又はそれ以上の第１パッケージにページを割当することと、ページが前記１つ又はそれ以上の第１パッケージで利用可能でない場合、前記１つ又はそれ以上の第２パッケージにページを割当することと、を含む。
【０００８】
本発明の実施形態によるシステムは、大容量格納装置と、前記大容量格納装置と連結されたホストと、を含み、前記ホストは、第１名称空間（ｎａｍｅｓｐａｃｅ）と連関され、前記大容量格納装置内でインスタンス化された（ｉｎｓｔａｎｔｉａｔｅｄ）第１仮想フラッシュ変換階層インスタンスへのストレージアクセス要請を送信するように構成された第１仮想マシンと、第２名称空間と連関され、前記大容量格納装置でインスタンス化された第２仮想フラッシュ変換階層インスタンスへのストレージアクセス要請を送信するように構成された第２仮想マシンと、を含む。
【０００９】
一実施形態で、前記ホストは、前記第２名称空間と連関され、前記第２仮想フラッシュ変換階層インスタンスへのストレージアクセス要請を受信するように構成された第３仮想マシンをさらに含む。
一実施形態で、前記ホストは、前記第１仮想マシン及び前記第２仮想マシンの各々に対して、前記第１仮想マシン及び前記第２仮想マシンの各々の予測される書込み動作レベルに比例する加重値を割当するように構成されるハイパバイザ（ｈｙｐｅｒｖｉｓｏｒ）をさらに含む。
一実施形態で、前記ホストは、前記第１仮想マシン及び前記第２仮想マシンの各々に対して、前記第１仮想マシン及び前記第２仮想マシンの各々のサービスの永久ストレージ品質（ｓｅｒｖｉｃｅ  ｏｆ  ｐｅｒｓｉｓｔｅｎｔ  ｓｔｏｒａｇｅ  ｑｕａｌｉｔｙ）に比例する加重値を割当するように構成されるハイパバイザをさらに含む。
一実施形態で、前記大容量格納装置は、複数の物理ブロックを含むフラッシュメモリであって、前記複数の物理ブロックの各々が複数の物理ページを含み、前記複数の物理ブロックが第１セットの物理ブロック及び前記第１セットの物理ブロックと異なる第２セットの物理ブロックを含むフラッシュメモリと、前記第１仮想フラッシュ変換階層インスタンス及び前記第２仮想フラッシュ変換階層インスタンスを実行するように構成されたコントローラと、を含み、前記第１仮想フラッシュ変換階層インスタンス及び前記第２仮想フラッシュ変換階層インスタンスの各々は、前記第１セットの物理ブロック及び前記第２セットの物理ブロックの各々に対するガーベッジコレクション動作を遂行するように構成される。
一実施形態で、前記第１仮想フラッシュ変換階層インスタンスは、第１加重値を有し、前記第２仮想フラッシュ変換階層インスタンスは、第２加重値を有し、前記第１セットの物理ブロックは、ガーベッジコレクション動作の間におけるデータの格納のために予約された第１追加提供ブロックを含み、前記第２セットの物理ブロックは、ガーベッジコレクション動作の間におけるデータの格納のために予約された第２追加提供ブロックを含み、第１値に対する第２値の比率は、前記第１加重値に対する前記第２加重値の比率に等しく、前記第１値は、前記第１セットの物理ブロックの数に対する前記第１追加提供ブロックの物理ブロックの数の比率を示し、前記第２値は、前記第２セットの物理ブロックの数に対する前記第２追加提供ブロックの物理ブロックの数の比率を示す。
一実施形態で、前記大容量格納装置は、前記第１仮想フラッシュ変換階層インスタンスに割当されたページを各々含む１つ又はそれ以上の第１パッケージと、前記第１仮想フラッシュ変換階層インスタンスに割当されたページを含まない１つ又はそれ以上の第２パッケージと、をさらに含み、前記コントローラは、ストレージアクセス要請に応答して前記第１仮想フラッシュ変換階層インスタンスにページを割当するように構成されるページ割当器をさらに含み、前記第１仮想フラッシュ変換階層インスタンスにページを割当することは、ページが前記１つ又はそれ以上の第１パッケージの何れかにおいて利用可能である場合、前記１つ又はそれ以上の第１パッケージの内の利用可能な何れかのページにページを割当することと、ページが前記１つ又はそれ以上の第１パッケージの何れにおいても利用可能でない場合、前記１つ又はそれ以上の第２パッケージにページを割当することと、を含む。
【００１０】
本発明の実施形態による方法は、複数の物理ブロックを含む大容量格納装置の第１仮想フラッシュ変換階層インスタンスによって、第１論理ページナンバに向けられた（ｄｉｒｅｃｔｅｄ  ｔｏ）第１ストレージアクセス要請を受信する段階と、前記第１仮想フラッシュ変換階層インスタンスによって、前記複数の物理ブロックの第１サブセット内の物理ページナンバに向けられたストレージアクセス要請を生成する段階と、前記大容量格納装置の第２仮想フラッシュ変換階層インスタンスによって、第２論理ページナンバに向けられた第２ストレージアクセス要請を受信する段階と、前記第２仮想フラッシュ変換階層インスタンスによって、前記複数の物理ブロックの第２サブセット内の物理ページナンバに向けられたストレージアクセス要請を生成する段階と、を含む。前記第１サブセット及び前記第２サブセットは、互いに分離される（ｄｉｓｊｏｉｎｔ）。
【００１１】
一実施形態で、ホストによって、第１名称空間及び第２名称空間を生成する段階と、前記ホストによって、前記第１仮想フラッシュ変換階層インスタンスと通信（ｉｎｔｅｒａｃｔ）するように構成された第１仮想機能に前記第１名称空間を添付する段階と、前記ホストによって、前記第２仮想フラッシュ変換階層インスタンスと通信するように構成された第２仮想機能に前記第２名称空間を添付する段階と、をさらに含む。
一実施形態で、前記ホストによって、第１仮想マシン及び第２仮想マシンを生成する段階と、前記ホストによって、前記第１仮想機能を前記第１仮想マシンに割当する段階と、前記ホストによって、前記第２仮想機能を前記第２仮想マシンに割当する段階と、をさらに含む。
一実施形態で、前記ホスト上のゲスト装置ドライバによって、前記第１名称空間を含む読出し要請を構成する段階と、前記大容量格納装置によって、前記第１仮想機能を通じて前記読出し要請を受信する段階と、前記第１仮想フラッシュ変換階層インスタンスによって前記読出し要請を処理する段階と、前記第１仮想機能を通じて前記読出し要請の結果を返還する段階と、をさらに含む。
一実施形態で、前記ホスト上のゲスト装置ドライバによって、書き込まれるべきデータ及び前記第１名称空間に対する識別子を含む書込み要請を構成する段階と、前記大容量格納装置によって、前記第１仮想機能を通じて前記書込み要請を受信する段階と、前記第１仮想フラッシュ変換階層インスタンスによって、前記書込み要請を処理する段階と、前記第１仮想フラッシュ変換階層インスタンスによって、前記大容量格納装置のページ割当器から書込み可能な物理ページに対応する１つ又はそれ以上の物理ページナンバを要請する段階と、前記ページ割当器から１つ又はそれ以上の物理ページナンバを受信する段階と、前記受信された１つ又はそれ以上の物理ページナンバと対応する１つ又はそれ以上の物理ページに前記データを書き込む段階と、をさらに含む。
一実施形態で、前記第１仮想フラッシュ変換階層インスタンスによって、前記第１サブセットに対するガーベッジコレクション動作遂行する段階をさらに含む。
一実施形態で、前記第１仮想フラッシュ変換階層インスタンスは、第１加重値を有し、前記第２仮想フラッシュ変換階層インスタンスは、第２加重値を有し、前記第１サブセットは、ガーベッジコレクション動作の間におけるデータの格納のために予約された第１複数の追加提供ブロックを含み、前記第２サブセットは、ガーベッジコレクション動作の間におけるデータの格納のために予約された第２の複数の追加提供ブロックを含み、前記第１サブセットの物理ブロック数に対する前記第１の複数の追加提供されたブロックの物理ブロック数の第１比率，及び前記第２セットの物理ブロック数に対する前記第２の複数の追加提供されたブロックの物理ブロック数第２比率の積は前記第２加重値に対する前記第１加重値の比率と同一である。
【発明の効果】
【００１２】
本発明の実施形態によれば、仮想マシンを意識した仮想フラッシュ変換階層が提供され、これに従ってシステムの性能が向上される。
【図面の簡単な説明】
【００１３】
本発明の特徴及び長所は詳細な説明、特許請求の範囲、及び以下の添付された図面を参照して理解され、認定される。
【図１】本発明の実施形態による大容量格納装置と連結されたホストのブロック図である。
【図２】従来技術のフラッシュ変換階層を含む大容量格納装置と接続した複数の仮想マシンのブロック図である。
【図３】本発明の実施形態に係る複数の仮想フラッシュ変換階層インスタンスを含む大容量格納装置と接続した複数の仮想マシンのブロック図である。
【図４】本発明の実施形態に係る仮想マシンを意識したＮＡＮＤページ割当器及び複数の仮想フラッシュ変換階層インスタンスを通じて大容量格納装置と接続した複数の仮想マシンのブロック図である。
【図５】フラッシュメモリの従来技術のフラッシュ変換階層、ＮＡＮＤページ割当器、及びフラッシュメモリの複数の物理ブロックのブロック図である。
【図６】本発明の実施形態に係る仮想マシンを意識したＮＡＮＤページ割当器及び複数の仮想フラッシュ変換階層インスタンスを含む大容量格納装置と接続した複数の仮想マシンのブロック図である。
【図７】本発明の実施形態に係る仮想マシン意識したＮＡＮＤページ割当器及び複数の仮想フラッシュ変換階層インスタンスを含む大容量格納装置と接続した複数の仮想マシンのブロック図である。
【図８】本発明の実施形態に係る大容量格納装置のフラッシュパッケージ及びパッケージのフラッシュブロックの組織化（ｏｒｇａｎｉｚａｔｉｏｎ）を示すブロック図である。
【図９】本発明の実施形態に係る複数のフラッシュブロックと接続した複数の仮想フラッシュ変換階層インスタンスのブロック図である。
【図１０】本発明の実施形態に係るガーベッジコレクションの間における追加提供ブロック（ｏｖｅｒｐｒｏｖｉｓｉｏｎ  ｂｌｏｃｋｓ）へのデータマイグレーションを説明するデータ流れ図である。
【図１１】本発明の実施形態に係る装置初期化の順序図である。
【図１２】本発明の実施形態に係る読出し要請処理の順序図である。
【図１３】本発明の実施形態に係る書込み要請処理の順序図である。
【発明を実施するための形態】
【００１４】
添付された図面と連関される詳細な記述は、本発明に従って提供されるソリッドステートドライブ（ＳＳＤ、ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ）のための仮想マシンを意識した（ＶＭ−ａｗａｒｅ）フラッシュ変換階層（ＦＴＬ、ｆｌａｓｈ  ｔｒａｎｓｌａｔｉｏｎ  ｌａｙｅｒ）設計の例示的な実施形態の説明を意図し、本発明が構成されるか、或いは活用される唯一の形態を示すとは意図していない。詳細な記述は説明された実施形態と連関されて本発明の特徴を示す。しかし、同一又は等価な機能及び構造は、本発明の思想及び範囲内に含まれる意図を有する他の実施形態によっても達成できることは、よく理解されるべきである。本文の他の箇所にも記載されたように、類似な参照番号は類似な構成又は特徴を示す。
【００１５】
図１はソリッドステートドライブ１０３と連結されたホスト１０２を示す。図２は、ＳＲ−ＩＯＶ  ＮＶＭｅ  ＳＳＤ｛以下、「ＳＲ−ＩＯＶ」  「ＮＶＭｅ」  「ＳＳＤ」に分割すると、「ＳＲ−ＩＯＶ」（Ｓｉｎｇｌｅ  Ｒｏｏｔ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ、シングルルート入出力仮想化）、  「ＮＶＭｅｍ」（Ｎｏｎ  Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｅｘｐｒｅｓｓ、不揮発性メモリエキスプレス）、  「ＳＳＤ」（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ、ソリッドステートドライブ）を使用する従来技術によるシステム構造（ａｒｃｈｉｔｅｃｔｕｒｅ）を示す。複数の仮想マシン１００はホスト１０２上で動作（ｒｕｎ）する。ホスト１０２はプロセッサ（例えば、マイクロプロセッサ）及びメモリを含む。仮想マシン１００は多様な仮想機能１０５（ｖｉｒｔｕａｌ  ｆｕｎｃｔｉｏｎｓ）を呼出（ｃａｌｌ）して永久ストレージ（ｐｅｒｓｉｓｔｅｎｔ  ｓｔｏｒａｇｅ）と相互作用（ｉｎｔｅｒａｃｔ）する。
仮想機能１０５はホスト１０２のゲスト装置ドライバによって提供される。本文で使用されるように、“ホスト”は１つ又はそれ以上の大容量格納装置と連結され、これを使用するコンピュータ（例えば、サーバ）である。各仮想マシンはストレージアクセス要請（例えば、永久ストレージからのデータ読出し、永久ストレージへのデータ書込み、又は永久ストレージのデータ消去に対する要請）を生成する。各ストレージアクセス要請は仮想機能としての呼出（ｃａｌｌ）を通じて生成される。永久ストレージはハードディスク、及び／又はＳＳＤ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ）、及び／又はＵＳＢスティック或いはサムドライブ（ｔｈｕｍｂ  ｄｒｉｖｅ）、及び／又はメモリカード等のような大容量格納装置により具現される。
シングルルート入／出力仮想化（ＳＲ−ＩＯＶ）は、多様なＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）ハードウェア機能の中で、大容量格納装置に対して、その資源へのアクセスを区分可能にするために使用される。
これらの機能は、ＰＣＩｅ物理的機能ＰＦ（１０７）及び１つ又はそれ以上のＰＣＩｅ仮想機能（ＶＦｓ）１０５を含む。各物理的機能１０７及び仮想機能１０５には、入／出力メモリ管理部１０４（ＩＯＭＭＵ、ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｍｅｍｏｒｙ  ｍａｎａｇｅｍｅｎｔ  ｕｎｉｔ）が相異なるトラフィックストリーム（ｔｒａｆｆｉｃ  ｓｔｒｅａｍｓ）を区分可能にする一意的なＰＣＩｅ  ＲＩＤ（Ｒｅｑｕｅｓｔｅｒ  ｉｄｅｎｔｉｆｉｅｒ、要求者識別子）が割当てられる。斯くして、仮想機能１０５を相異なる仮想マシン１００（ＶＭｓ）に割当ててあるので、仮想マシン１００及び大容量格納装置の間でデータを伝送する間において、他の仮想マシン１００の入／出力ストリームと互いに干渉することを防止できる。
【００１６】
ソリッドステートドライブ１０３のフラッシュメモリは物理ブロック１１０（ｐｈｙｓｉｃａｌ  ｂｌｏｃｋｓ）（又はフラッシュブロック）及び物理ページ１２０（ｐｈｙｓｉｃａｌ  ｐａｇｅｓ）として組織化される。物理ブロック１１０は１回の動作で消去される最も小さいメモリ単位であり、物理ページ１２０は１回の動作で書き込まれる最も小さいメモリ単位である。各物理ブロック１１０は複数の物理ページ１２０を含む。物理ページ１２０の大きさは具現に従って変わる。フラッシュメモリのページはＮＡＮＤページ割当器１３０（ＮＡＮＤ  ｐａｇｅ  ａｌｌｏｃａｔｏｒ）によって割当される。
ホスト１０２は論理ページナンバ（ｌｏｇｉｃａｌ  ｐａｇｅ  ｎｕｍｂｅｒｓ）に向けられた（ｄｉｒｅｃｔｅｄ  ｔｏ）ストレージアクセス要請（例えば、論理ページナンバのページに格納されたデータを要請すること、論理ページナンバのページにデータ書込みを要請すること、又は論理ページナンバのページに格納されたデータの消去を要請すること）等を使用して大容量格納装置と相互作用（ｉｎｔｅｒａｃｔ）する。
物理ページ１２０に新しいデータを書き込むことが、物理ページ１２０を含む物理ブロック１１０の全体のコンテンツを他のところに格納（セーブ）し、物理ブロック１１０を消去し、同一のページ位置に以前データを代替する新しいデータが格納されたコンテンツを該物理ブロックに再び書き込むことを要求するので、論理ページナンバを物理ページナンバに直接的又は静的に（ｄｉｒｅｃｔｌｙ  ｏｒ  ｓｔａｔｉｃａｌｌｙ）マッピングすることは非効率的である。本文で使用されるように、“物理ページナンバ”は大容量格納装置内でページを一意的に識別する識別子（ｉｄｅｎｔｉｆｉｅｒ）（例えば、数字）である。
【００１７】
このような面倒な動作を回避するために、フラッシュ変換階層１２５は論理ページナンバを動的に（ｄｙｎａｍｉｃａｌｌｙ）物理ページナンバに変換するか、又はマッピングする。新しいデータを或る論理ページナンバのページにデータに上書き（ｏｖｅｒｗｒｉｔｅ）する場合、物理ページ１２０を含む物理ブロック１１０を消去する代わりに、フラッシュ変換階層１２５は現在の論理ページナンバと現在対応する物理ページ１２０を無効（ｉｎｖａｌｉｄ）としてマーキングする。フラッシュ変換階層１２５は論理ページナンバから物理ページ１２０へのマッピングを更新して、論理ページナンバを新しい物理ページ１２０にマッピングし、新しい物理ページ１２０に新しいデータを書き込む。
時には、フラッシュ変換階層１２５は“ガーベッジコレクション（ｇａｒｂａｇｅ  ｃｏｌｌｅｃｔｉｏｎ）”であると称される動作を遂行する。この動作により、物理ブロック１１０の有効なコンテンツが１つ又はそれ以上の他の物理ブロック１１０内の他の物理ページ１２０に移動した後に、無効としてマーキングされた物理ページ１２０の大きい部分（例えば、設定閾値を超過する部分）を含む物理ブロック１１０が消去され、この消去された物理ブロック１１０に新しいデータを書き込むことが可能になる。フラッシュ変換階層１２５はソリッドステートドライブ１０３のコントローラ（例えば、マイクロコントローラ）で駆動されるソフトウェア形態で具現される。
【００１８】
一部の実施形態で、複数の仮想機能１０５は相異なる複数の仮想マシン１００に割当され、各仮想機能１０５は大容量格納装置上に予約された名称空間（ｎａｍｅｓｐａｃｅ）（例えば、図２の名称空間Ａ（ＮＳＡ）及び名称空間Ｂ（ＮＳＢ）として記載された名称空間）と連関される。図２の例示的なシステムで、第１仮想機能ＶＦ１、第２仮想機能ＶＦ２のような２つの仮想機能は１つの名称空間（ＮＳＢ）を共有する。相異なる仮想マシン１００（例えば、第０仮想マシンＶＭ０）からのストレージアクセス要請は相異なる仮想機能１０５（この場合、第０仮想機能ＶＦ０）を呼出（ｃａｌｌ）することによって処理される。これはホスト管理下の仮想マシン１００と大容量格納装置のホストインタフェイス階層（ＨＩＬ、ｈｏｓｔ  ｉｎｔｅｒｆａｃｅ  ｌａｙｅｒ）の間において、入／出力経路が分離される結果をもたらす。
【００１９】
しかし、相異なる仮想マシン１００に割当された物理ページ１２０が物理ブロック１１０を共有する可能性がある。相異なる仮想マシン１００からのストレージアクセス要請は大容量格納装置において論理ページナンバで識別される論理ページにマッピングされ、論理ページナンバに向けられたストレージアクセス要請のフォーマットに載せてフラッシュ変換階層１２５に伝達される。斯くして、フラッシュ変換階層１２５の入力には、該入力の起源となった仮想マシンと特定ストレージアクセス要請を連結する意味ある情報が無いことがあり得る。
結果的に、例えば、第１仮想マシン（例えば、ＶＭ１）からの書込み要請は物理ページ１２０の無効化をもたらし、次いで、該物理ページ１２０の無効化は物理ブロック１１０に影響を与えるガーベッジコレクションを発生させる。これは、ストレージアクセス要請、例えば、同一の物理ブロック１１０の物理ページ１２０にマッピングされた論理ページに対する、第２仮想マシン（例えば、ＶＭ２）によって伝送された読出し要請の処理を遅延させる。このように、或る仮想マシン１００に提供されるサービス品質が他の仮想マシン１００によって伝送されたストレージアクセス要請によって影響を受ける。即ち、サービス品質が低下し、より予測不能になる。
【００２０】
シングルルート入出力仮想化（ＳＲ−ＩＯＶ）が有する特徴の装置仮想化をさらに向上するために、フラッシュ変換階層（ＦＴＬ）１２５が仮想化（ｖｉｒｔｕａｌｉｚｅｄ）される。例えば、フラッシュ変換階層１２５が、複数の仮想フラッシュ変換階層（ｖＦＴＬ、ｖｉｒｔｕａｌ  ｆｌａｓｈ  ｔｒａｎｓｌａｔｉｏｎ  ｌａｙｅｒ）インスタンス２１０により置換されて、入／出力経路は複数の相異なる仮想マシン１００に対する複数の仮想フラッシュ変換階層インスタンス２１０の時点で分離される。
【００２１】
図３は、本発明の実施形態に係る複数の仮想フラッシュ変換階層インスタンスを含む大容量格納装置と接続した複数の仮想マシンのブロック図である。
図３において、破線内が本発明に係る大容量格納装置に属し、破線外の仮想マシン１００（ＶＭ１、ＶＭ２、ＶＭ３）がホスト（１０２、即ち、ユーザコンピュータ）に属する。破線内の機能ブロックのうち、複数の物理ブロック１１０がハードウェアであるのに対して、残りは全てコントローラ上で動くソフトウェアであり、コントローラのハードウェアは、コア部と外部入出力部（対仮想マシン（ホスト）、対物理ブロック）を含むが、全て記載を省略してある。
図３を参照すれば、一実施形態で、仮想フラッシュ変換階層（ＦＴＬ）インスタンス２１０が各割当された仮想機能又は名称空間に対して生成される。特定の仮想機能からのストレージアクセス要請が該仮想機能の名称空間と連関され、従って、名称空間と連関された仮想フラッシュ変換階層インスタンス２１０に伝達される。図２のシステムの状況と異なり、図３の実施形態では、名称空間は論理ページナンバのセット（集合）又は範囲にマッピングされない代わりに、個別の仮想フラッシュ変換階層インスタンス２１０（例えば、ｖＦＴＬ１、ｖＦＴＬ２）にマッピングされる。結果的に、相異なる仮想装置１００からのストレージアクセス要請は仮想フラッシュ変換階層で分離されているので、１つの仮想マシンが提出したストレージアクセス要請が、他の仮想マシンの享受するサービス品質に及ぼす悪影響を軽減できる。物理ページ１２０は仮想マシンを意識したＮＡＮＤページ割当器（ＶＭ−ａｗａｒｅ  ＮＡＮＤ  ｐａｇｅ  ａｌｌｏｃａｔｏｒ）２３０によって割当される。
【００２２】
図４を参照すれば、一実施形態で上述されたように、各仮想フラッシュ変換階層（ｖＦＴＬ）インスタンス２１０は大容量格納装置（例えば、ソリッドステートドライブ１０３）のコントローラ上で駆動されるファームウェアのフラッシュ変換階層（ＦＴＬ）におけるソフトウェア構成要素である。これは従来技術のフラッシュ変換階層（ＦＴＬ）ソフトウェアのフル機能を有するが、そのようなフラッシュ変換階層（ＦＴＬ）ソフトウェアと異なり、仮想マシン及び仮想機能名称空間（ｖｉｒｔｕａｌ  ｆｕｎｃｔｉｏｎ  ｎａｍｅｓｐａｃｅ）に従って、又は大容量格納装置名称空間に従って組織化され、設計される。
図４で、第１仮想マシンＶＭ１及び第２仮想マシンＶＭ２の２つの仮想マシン１００が示される。各仮想マシンは装置名称空間管理者１０６によって別々の装置名称空間（ｓｅｐａｒａｔｅ  ｄｅｖｉｃｅ  ｎａｍｅｓｐａｃｅ）に割当される。第１仮想マシンＶＭ１がストレージアクセス要請、例えば、書込み要請を発行する場合、大容量格納装置は該ストレージアクセス要請を第１仮想フラッシュ変換階層インスタンス２１０ａ（ｖＦＴＬ１）に伝送（ｒｏｕｔｅ）する。書込み要請は例えば、８セクタサイズを有する論理ページ（そして対応する物理ページ）の割当を要求する。物理ページは物理ページナンバ（ｐｐｎ、ｐｈｙｓｉｃａｌ  ｐａｇｅ  ｎｕｍｂｅｒ）によって識別される。
第１仮想フラッシュ変換階層インスタンス２１０ａは、ＶＭを意識したＮＡＮＤページ割当器２３０に対する、対応するストレージアクセス要請を生成して物理ページ１２０のナンバ（即ち、物理ページナンバ（ｐｐｎ））を提供するよう要求する。ここで物理ページ１２０のナンバは、書込み要請を実行するのに必要なメモリの大きさ（例えば、８セクタ）に対応する。以後、割当された物理フラッシュページに書込みデータをフラッシュ（ｆｌｕｓｈ、一斉書き込み）する。従ってストレージアクセス要請は割当された物理ページの物理ページナンバ（ｐｐｎ）を要請することをさらに含む。
最後に、仮想フラッシュ変換階層インスタンス２１０ａは論理から物理へのマッピング（ｌｏｇｉｃａｌ  ｔｏ  ｐｈｙｓｉｃａｌ  ｍａｐｐｉｎｇｓ）（例えば、仮想マシン論理ブロックアドレス（ＶＭ−ＬＢＡ）又は論理ページナンバ（ｌｐｎ）からＮＡＮＤフラッシュページナンバなどの物理ページナンバ（ｐｐｎ）へのマッピング）を更新する。他方、第２仮想マシンＶＭ２によって生成されたストレージアクセス要請は追加処理のために第２仮想フラッシュ変換階層インスタンス２１０ｂに伝送（ｒｏｕｔｅ）される。
情報又は要請を交換することを必要としない点で、第１及び第２仮想フラッシュ変換階層インスタンス２１０ａ、２１０ｂなどの仮想フラッシュ変換階層インスタンスは、互いに独立的であり、互いを意識しない（ｕｎａｗａｒｅ）。このようにして、本システムは第１仮想マシンＶＭ１によって生成されたストレージアクセス要請及び第２仮想マシンＶＭ２によって生成されたストレージアクセス要請の間の干渉を防止できる。
【００２３】
図５を参照すれば、上述されたように従来技術によるフラッシュ変換階層１２５及びＮＡＮＤページ割当器１３０は、入力されるストレージアクセス要請のソース（ｓｏｕｒｃｅ）に従って区分しない。例えば、３つの相異なる仮想マシン１００からのデータが同一の物理ブロック１１０に書き込まれ得る。図５で、第１仮想マシンＶＭ１、第２仮想マシンＶＭ２、及び第３仮想マシンＶＭ３のような３つの仮想マシン１００からのデータを含むページはＤ１、Ｄ２、及びＤ３の参照番号が各々付与される。図示されたように、物理ブロック１１０の各々で、多数の相異なる仮想マシン１００からのデータが混合される。
【００２４】
それに対して、図６を参照すれば、本発明の或る実施形態では、第１仮想マシンＶＭ１、第２仮想マシンＶＭ２、及び第３仮想マシンＶＭ３からなる３つの仮想マシン１００からのストレージアクセス要請は、各々、３つの別々の仮想フラッシュ変換階層インスタンスｖＦＴＬ１、ｖＦＴＬ２、ｖＦＴＬ３によって処理され、該仮想フラッシュ変換階層インスタンスの各々は、それらの各々の名称空間（及び仮想マシン１００）と既に連関されたブロックのページに対する要請を、又は利用可能であるページがあまりにも少ない場合、現在何れの名称空間又は仮想マシンとも連関されないブロックのページに対する要請を、ＶＭを意識したＮＡＮＤページ割当器２３０に向けて生成する。
このようにして、ＶＭを意識したＮＡＮＤページ割当器２３０は結果的に、図６で、Ｄ１、Ｄ２、及びＤ３の参照番号が付与された各々、第１仮想マシンＶＭ１、第２仮想マシンＶＭ２、及び第３仮想マシンＶＭ３からのデータは混合されず、区分された物理ブロック１１０に書き込まれる。
【００２５】
図７を参照すれば、一実施形態で、仮想マシンを意識したＮＡＮＤページ割当器２３０はリストを維持する。該リストは、各仮想フラッシュ変換階層インスタンス２１０に対して、「自由」（ｆｒｅｅ、有効データが書き込まれていない）ページを含む単数又は複数の物理ブロック１１０である“オープンフラッシュブロック（ＯＦＢ、ｏｐｅｎ  ｆｌａｓｈ  ｂｌｏｃｋ）”を含む。任意の仮想フラッシュ変換階層インスタンス２１０が新しい物理ページナンバを要請する場合、仮想マシンを意識したＮＡＮＤページ割当器２３０は要請した仮想フラッシュ変換階層インスタンス２１０に対してリスティングされたオープンフラッシュブロック１１０の内の次に利用可能である物理ページナンバを返還（ｒｅｔｕｒｎ）する。
書込み要請が仮想フラッシュ変換階層インスタンス２１０から受信され、要請した仮想フラッシュ変換階層インスタンス２１０に対してリスティングされたオープンフラッシュブロック１１０の空間が充分でない場合、又は書込み要請の実行が現在のオープンフラッシュブロック１１０を万杯に満たす場合、仮想マシンを意識したＮＡＮＤページ割当器２３０は書込み要請を遂行するために新しい物理ブロック１１０を割当する。
書込み要請の完了の後に新しい物理ブロック１１０が部分的に空いた空間（ｐａｒｔｉａｌｌｙ  ｅｍｐｔｙ）を維持する場合、仮想マシンを意識したＮＡＮＤページ割当器２３０は新しい物理ブロック１１０のアドレスをオープンフラッシュブロック１１０のリストに追加する。
例えば、図７の第２仮想フラッシュ変換階層インスタンス（ｖＦＴＬ２）と連関されたオープンフラッシュブロック１１０が書込み要請によって満杯になり全てのページが使用された場合、仮想マシンを意識したＮＡＮＤページ割当器２３０は新しい物理ブロック１１０’を割当し、それを第２仮想フラッシュ変換階層インスタンスｖＦＴＬ２のオープンフラッシュブロックとして認識する。
【００２６】
図８を参照すれば、仮想マシンを意識したＮＡＮＤページ割当器２３０は、相異なる仮想フラッシュ変換階層インスタンス２１０の物理ブロック１１０を、相異なるフラッシュパッケージ、ダイ、又はプレーンに優先的に分散するように新しいフラッシュブロック１１０を割当するように構成される。パッケージはチャンネル（例えば、図示されたように、Ｃｈａｎｎｅｌ＃０、Ｃｈａｎｎｅｌ＃１、等）に組織化される。これは、例えば、特定仮想フラッシュ変換階層インスタンス２１０が新しいブロックに対する要請を生成する時、仮想フラッシュ変換階層インスタンス２１０に割当された他の物理ブロック１１０を既に含むパッケージの物理ブロック１１０を割当することによって具現される。又はどのパッケージも「自由」物理ブロック１１０を含まない場合、どの物理ブロック１１０も未だ割当されなかったパッケージの物理ブロック１１０を割当することによって具現される。
斯くして、例えば、第１仮想フラッシュ変換階層インスタンスに割当された第１物理ブロック（図８に“フラッシュブロック１（Ｆｌａｓｈ  ｂｌｏｃｋ  １）”と記載される）は第１仮想フラッシュ変換階層インスタンスに割当された他の物理ブロック１１０と共に大容量格納装置のパッケージナンバ０（Ｐｋｇ＃０）に割当される。第２仮想フラッシュ変換階層インスタンスに割当された第２物理ブロック（図８に“フラッシュブロック２（Ｆｌａｓｈ  ｂｌｏｃｋ  ２）”と記載される）は第２仮想フラッシュ変換階層インスタンスに割当された他の物理ブロック１１０と共に大容量格納装置のパッケージナンバ１（Ｐｋｇ＃１）に割当される。このようなパッケージは、例えば、大容量格納装置（例えば、ソリッドステートドライブ１０３）の印刷回路基板（又は印刷配線基板）にハンダ付けされた（ｓｏｌｄｅｒｅｄ）集積回路である。
【００２７】
図９を参照すれば、一部の実施形態で、「自由」フラッシュブロックの数が大容量格納装置のために定義された閾値（ｔｈｒｅｓｈｏｌｄ）より低くなる度に、ガーベッジコレクションＧＣが遂行される。各仮想フラッシュ変換階層インスタンス２１０は自らガーベッジコレクションを管理する。各、仮想フラッシュ変換階層インスタンス２１０を初期化する間に、特定な数の追加提供フラッシュブロック（ｏｖｅｒｐｒｏｖｉｓｉｏｎ  ｆｌａｓｈ  ｂｌｏｃｋｓ）１１０が該、仮想フラッシュ変換階層インスタンス２１０に割当される。
ガーベッジコレクション動作の間において、設定された閾値を超過する無効物理ページ部分を含む物理ブロックは、該物理ブロックの有効物理ページのコンテンツが他の物理ブロック、例えば追加提供ブロック（ｏｖｅｒｐｒｏｖｉｓｉｏｎ  ｂｌｏｃｋｓ）に先ず移動された後に、消去され、新規な格納（書込み）のために使用可能になる。
このように、追加提供ブロックは、無効化された物理ページ１２０を含む物理ブロック１１０が消去され、格納のために再び使用可能になる前に、一部の格納空間を、例えば、無効化された物理ページ１２０の空間を使用せず放置しながら、ストレージの特定の容量を提供するために使用される。
例えば、図１０に示したように、ガーベッジコレクションを遂行して多数の無効物理ページ１２０を含む物理ブロック１１０を解除（ｆｒｅｅ  ｕｐ、ガーベッジの無い状態にする）する場合、各仮想フラッシュ変換階層インスタンス２１０は先ず有効データを含む物理ページの内容（図１０では「有効」と記載）を追加提供ブロック１１０の「自由」ページ（図１０では、「空き」と記載）へ移動し、その後に、物理ブロック１１０を消去して解除（ｆｒｅｅｄ＿ｕｐ）する。
繰り返して述べると、追加提供（ｏｖｅｒｐｒｏｖｉｓｉｏｎ）は無効ページを消去する前に、ガーベッジコレクションによって無効ページを含む物理ブロック１１０から有効データが移動される「自由」ページを含む、追加的な「自由」フラッシュブロック１１０を提供できる。
【００２８】
基本的に、各仮想フラッシュ変換階層インスタンス２１０に提供される追加提供フラッシュブロック１１０の数は、仮想フラッシュ変換階層インスタンス２１０に割当された物理ブロック１１０の数に比例する。しかし、一部の実施形態で、割当されたブロックの数に対する追加提供フラッシュブロック１１０の数の比率は各仮想フラッシュ変換階層インスタンス２１０に割当された加重値に従って調節（例えば、加重値に従って比例するように調節）されることができる。例えば、各仮想フラッシュ変換階層インスタンス２１０の加重値は使用者によって定義（ｕｓｅｒ−ｄｅｆｉｎｅｄ）される。一部の実施形態で、各仮想マシンは加重値（例えば、使用者によって定義された加重値、又はハイパバイザによって割当された加重値（ｈｙｐｅｒｖｉｓｏｒ−ａｓｓｉｇｎｅｄ  ｗｅｉｇｈｔ））を有する。各仮想フラッシュ変換階層インスタンス２１０の加重値は仮想フラッシュ変換階層インスタンス２１０と連結された仮想マシンの加重値である。又は複数の仮想マシンが仮想フラッシュ変換階層インスタンス２１０を共有する場合、各仮想フラッシュ変換階層インスタンス２１０の加重値はこのような仮想マシンの加重値の合計（ｔｏｔａｌ）である。
【００２９】
仮想マシンの加重値は、仮想マシンの予想される書込み動作レベル（例えば、該仮想マシンが書込み動作を要請する周期、又は該仮想マシンに予想される単位時間当たり書込みデータの総量）、又は該仮想マシンに適したサービス品質に比例する。
【００３０】
大容量格納装置が第１仮想マシンＶＭ１及び第２仮想マシンＶＭ２に対して仮想フラッシュ変換階層インスタンス２１０を各々設定する場合、ホスト１０２は第１仮想マシンＶＭ１及び第２仮想マシンＶＭ２の各々の加重値を設定する。以後、第１仮想マシンＶＭ１及び第２仮想マシンＶＭ２に各々対応するファームウェア、例えば第１仮想フラッシュ変換階層インスタンス及び第２仮想フラッシュ変換階層インスタンスは第１仮想フラッシュ変換階層インスタンス及び第２仮想フラッシュ変換階層インスタンスに割当された物理的容量に基づいて多数の追加提供ブロックを割当する。
【００３１】
一実施形態で、装置初期化（ｄｅｖｉｃｅ  ｉｎｉｔｉａｌｉｚａｔｉｏｎ）は図１１に示したように遂行される。
６００段階で、ホスト１０２はＳＲ−ＩＯＶ（シングルルート入出力仮想化）を活性化し、大容量格納装置に対して第１仮想機能ＶＦ０を含む仮想機能１０５（図３及び関連段落の記述を参照）を設定する。
６０２段階で、ホスト１０２は仮想フラッシュ変換階層の特徴を活性化する。
６０４段階で、ホスト１０２は名称空間（ｎａｍｅｓｐａｃｅ）を生成し、名称空間を第１仮想機能ＶＦ０に添付する。
６０６段階で、大容量格納装置は第１仮想機能ＶＦ０の名称空間の論理ブロックアドレス範囲に従って仮想フラッシュ変換階層インスタンスを生成する。
６０８段階で、ホスト１０２は第１仮想機能ＶＦ０を第１仮想マシンに割当し、第１仮想機能ＶＦ０を活性化する。このようなプロセスは他の仮想マシン及び名称空間に対して反複され得る。
【００３２】
一実施形態で、読出し要請処理は図１２に図示されたように遂行される。
６１０段階で、仮想マシンは、例えば開始論理ブロックアドレス０及び８セクタサイズの読出し要請を発行する。
６１２段階で、ホスト１０２上のゲスト装置ドライバは、要請情報（ｒｅｑｕｅｓｔ  ｉｎｆｏｒｍａｔｉｏｎ）を含む、対応するＮＶＭｅ（Ｎｏｎ  Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｅｘｐｒｅｓｓ）読出し要請を構成する。ＮＶＭｅ読出し要請は名称空間識別子をまた含む。
６１４段階で、大容量格納装置は要請した仮想マシンに添付された仮想機能を通じて読出し要請を受信する。
６１６段階で、大容量格納装置は読出し要請を管理し、要請した仮想マシンが付着された仮想フラッシュ変換階層インスタンスに読出し要請を伝送（ｐａｓｓ）する。
６１８段階で、仮想フラッシュ変換階層インスタンスは読出し要請が要請したフラッシュページを読み出し、対応する仮想機能の完了キュー（ＣＱ、ｃｏｍｐｌｅｔｉｏｎ  ｑｕｅｕｅ）に完了応答を伝送する。以後にゲスト装置ドライバはサブミッションキュー（ＳＱ、ｓｕｂｍｉｓｓｉｏｎ  ｑｕｅｕｅ）を通知する。
６２０段階で、ゲスト装置ドライバはインタラプトを管理し、サブミッションキューを更新する。読出し動作の結果は仮想機能によって仮想マシンへ返還される。
【００３３】
一実施形態で、書込み要請処理は図１３に示したように遂行される。
６２２段階で、仮想マシンは例えば、開始論理ブロックアドレス０及び８セクタサイズを有する書込み要請を発行する。
６２４段階で、ホスト１０２のゲスト装置ドライバは要請情報を含む、対応するＮＶＭｅ書込み要請を構成する。ＮＶＭｅ書込み要請は名称空間識別子をまた含む。
６２６段階で、大容量格納装置は要請した仮想マシンに添付された仮想機能を通じて書込み要請を受信する。
６２８段階で、大容量格納装置は書込み要請を管理し、要請した仮想マシンが付着された仮想フラッシュ変換階層インスタンスに書込み要請を伝送する。
６３０段階で、仮想フラッシュ変換階層インスタンスはＮＡＮＤページ割当器に新しい物理ページナンバを要請し、（例えば、仮想フラッシュ変換階層インスタンスはＮＡＮＤページ割当器から新しい物理ページナンバを要請する）データをフラッシュページに書き込み、マッピングエントリを更新する。
６３２段階で、仮想フラッシュ変換階層インスタンスは対応する仮想機能の完了キュー（ＣＱ）に書込み完了を伝送する。
６３４段階で、ホスト１０２のゲスト装置ドライバはインタラプトを管理し、サブミッションキュー（ＳＱ）を更新する。
【００３４】
このように、本実施形態は、仮想マシンを意識した仮想フラッシュ変換階層を提供し、これに従ってシステムの性能が向上される。
【００３５】
ハードウェア、ファームウェア、及びソフトウェアの組合せを含む“コントローラ（ｃｏｎｔｒｏｌｌｅｒ）”の用語が本文で使用され、データ又はデジタル信号を処理するために採用される。コントローラハードウェアは、例えばＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、汎用又は特殊目的中央処理ユニット、ＤＳＰ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（ｇｒａｐｈｉｃｓ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、及びＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙｓ）のようにプログラム可能なロジック装置を含む。コントローラで、本文に記載されたように、各機能が各機能を遂行するように物理的に接続され、構成されたハードウェアによって各機能が遂行される。又はＣＰＵのように非一時的なストレージ媒体に格納された命令語を実行するように構成されたさらに汎用のハードウェアによって各機能が遂行される。コントローラは単一印刷配線基板（ＰＷＢ、ｐｒｉｎｔｅｄ  ｗｉｒｉｎｇ  ｂｏａｒｄ）で製作されるか、又はＰＷＢが多数連結された構造に分散され得る。コントローラは他のコントローラを含み得る。例えば、コントローラはＰＷＢ上に連結されたＦＰＧＡ、及びＣＰＵのように２つのコントローラを含む。
【００３６】
本文に記載された本発明の実施形態に係る大容量格納装置及び／又は他の関連された装置又は構成は、適切なハードウェア、ファームウェア（例えば、ＡＳＩＣ）、ソフトウェア、又はそれらの組合せを活用して具現される。例えば、大容量格納装置の多様な要素は単一の集積回路（ＩＣ、ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）チップ又は別々のＩＣチップ上に形成される。また、大容量格納装置の多様な要素は軟性印刷回路フィルム、テープキャリヤパッケージ（ＴＣＰ）、印刷回路基板（ＰＣＢ）上に具現されるか、又は１つの基板上に形成される。
また、大容量格納装置の多様な要素は、１つ又はそれ以上のコンピューティング装置で本文に記載された多様な機能を遂行するために他のシステム構成要素と相互作用し、コンピュータプログラム命令語を実行し、１つ又はそれ以上のプロセッサで駆動（ｒｕｎ）する、プロセス又はスレッドである。コンピュータプログラム命令語はランダムアクセスメモリ（ＲＡＭ、ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）などの標準メモリ装置を使用してコンピューティング装置内に具現されるメモリに格納される。コンピュータプログラム命令語はＣＤ−ＲＯＭ、フラッシュドライブ等の他の非一時的なコンピュータ読出し可能な媒体に格納される。
また、当業者は、本発明の以上の例示的な実施形態の思想から逸脱することなく、多様なコンピューティング装置の機能が１つのコンピューティング装置に組合わされるか、又は集積でき、特定のコンピューティング装置の機能が１つ又はそれ以上の他のコンピューティング装置にわたって分散できることを認知すべきである。
【００３７】
たとえば、“第１”、“第２”、“第３”等の用語が、本文で、多様な要素、構成、領域、階層、及び／又はセクションを説明するために使用されるが、該要素、構成、領域、階層、及び／又はセクションはこのような用語に限定されない。このような用語は単純に１つの要素、構成、領域、階層、及び／又はセクションを他の１つの要素、構成、領域、階層、及び／又はセクションから区分するために使用される。即ち、第１の要素、構成、領域、階層、又はセクションは本発明の技術的思想及び範囲からの逸脱することなく、第２の要素、構成、領域、階層、及び／又はセクションを指し得る。
【００３８】
本文で使用された用語は、単に特定の実施形態を説明するために使用されており、本発明を限定する意図はない。本文で使用されるように、“実質的に（ｓｕｂｓｔａｎｔｉａｌｌｙ）”、“約（ａｂｏｕｔ）”及び類似の用語は、近似用語（ｔｅｒｍｓ  ｏｆ  ａｐｐｒｏｘｉｍａｔｉｏｎ）として使用され、程度（ｄｅｇｒｅｅ）の用語として使用されていないので、当業者ならば認識されるであろう、測定値又は演算値における固有の偏差（ズレ）を説明することと意図される。
【００３９】
本文で使用されるように、文脈上そうではないと明確に指指されない限り、単数用語は複数の用語を含むと意図される。“含む”の用語が本文で使用される場合、この用語は特徴、整数、段階、動作、要素、及び／又は構成要素の存在を明示するが、追加的な１つ又はそれ以上の特徴、整数、段階、動作、要素、構成要素、及び／又はそれらのグループの存在を排除しないことはよく理解されよう。本文で使用されたように、“及び／又は”の用語は列挙された要素の１つ又はそれ以上の組合せの全体を含む。“少なくとも１つ”のような表現が列挙された要素の先に使用される場合、要素の全体リストを変形し、リストの個別的な要素を変形しない。また、“であり得る（ｍａｙ）”の用語は本発明の実施形態を説明している際には、“本発明の１つ又はそれ以上の実施形態”を参照する。また、“例示的な（ｅｘｅｍｐｌａｒｙ）”の用語は例又は説明を参照するように意図される。本文で使用されるように、“使用（ｕｓｅ）”の用語は“活用する時（ｕｔｉｌｉｚｅ）”の用語と類似と看做される。
【００４０】
１つの要素が他の１つの要素と連結される（ｃｏｎｎｅｃｔｅｄ  ｔｏ、ｃｏｕｐｌｅｄ  ｔｏ）と称される場合、これは直接的な連結されるか、又は１つ又はそれ以上の中間要素が存在する。それに反して、１つの要素が他の１つの要素と直接的（ｄｉｒｅｃｔｌｙ  ｏｎ）又は直接的連結（ｄｉｒｅｃｔｌｙ  ｃｏｎｎｅｃｔｅｄ  ｔｏ、ｄｉｒｅｃｔｌｙ  ｃｏｕｐｌｅｄ  ｔｏ）と称される場合、中間要素が存在しない。
【００４１】
本文の数値的な範囲は参照された範囲内に含まれた同一の数値的精度（ｎｕｍｅｒｉｃａｌ  ｐｒｅｃｉｓｉｏｎ）の全てのサブ範囲（ｓｕｂ−ｒａｎｇｅ）を含むと意図される。例えば、“１．０〜１０．０“の範囲は１．０の最小値及び１０．０の最大値の間の全てのサブ範囲、即ち、１．０より大きいか、或いは同一の最小値及び１０．０より小さいか、或いは同一の最大値を有する全てのサブ範囲、例えば、２．４〜７．６の範囲を含むと意図される。本文で参照された最大数値上の制限はそれに含まれたそれより低い数値的制限を全て含むと意図される。本文で参照された最小数値上の制限はそれに含まれたそれより高い数値的制限を全て含むことと意図される。
【００４２】
「ＳＲ−ＩＯＶ  ＮＶＭｅ  ＳＳＤ」（シングルルート−入出力仮想化  不揮発性メモリエキスプレス  ソリッドステートドライブ）のための「ＶＭを意識したＦＴＬ」（仮想マシンを意識したフラッシュ変換階層）設計の例示的な実施形態が本文で詳細に説明されたが、多様な変形及び変化は当業者によって遂行されよう。従って、本発明の理論に従って構成されたＳＲ−ＩＯＶ  ＮＶＭｅ  ＳＳＤのためのＶＭを意識したＦＴＬ設計は、本文で詳細に記載されたのと異なる場合を含み得るが、本発明は以下の特許請求の範囲及びそれらの均等物で定義される。
【符号の説明】
【００４３】
１００      仮想マシン（ＶＭ１、ＶＭ２、ＶＭ３、・・・）
１０２      ホスト
１０３      ソリッドステートドライブ（ＳＳＤ）
１０４      入力／出力メモリ管理部（ＩＯＭＭＵ）
１０５      仮想機能（ＶＦ０、ＶＦ１、ＶＦ２、・・・）
１０６      装置名称空間管理者
１０７      物理的機能（ＰＦ）
１１０、１１０’      物理ブロック、フラッシュブロック
１２０      物理ページ
１２５      フラッシュ変換階層（ＦＴＬ）
１３０      ＮＡＮＤページ割当器
２１０      仮想フラッシュ変換階層（ｖＦＴＬ）インスタンス
２１０ａ、２１０ｂ      第１、第２  
２３０      ＶＭを意識したＮＡＮＤページ割当器
ＬＢＡ      論理ブロックアドレス
ＮＳＡ、ＮＳＢ      名称空間Ａ、Ｂ
ＯＦＢ      オープンフラッシュブロック
ｐｐｎ      物理ページナンバ
【図１】
2017151988.tif 000003
【図２】
2017151988.tif 000004
【図３】
2017151988.tif 000005
【図４】
2017151988.tif 000006
【図５】
2017151988.tif 000007
【図６】
2017151988.tif 000008
【図７】
2017151988.tif 000009
【図８】
2017151988.tif 000010
【図９】
2017151988.tif 000011
【図１０】
2017151988.tif 000012
【図１１】
2017151988.tif 000013
【図１２】
2017151988.tif 000014
【図１３】
2017151988.tif 000015