(57)【要約】ユーザ間のセキュリティ隔離を維持しつつ、ストレージ設備５００をインフラストラクチャアズアサービス（ＩａａＳ）システムの複数の異なるユーザによって共用可能にするコンピュータシステム１００が提供される。コンピュータシステムで使用されるように構成されているコントローラ１５０と、対応する方法及びコンピュータプログラムも提供される。コンピュータシステム１００は、命令を実行する１つ又は複数の処理ユニットを備える論理ブロック１０１を含み、論理ブロック１０１は、第１のインタフェース１０２を介して、ストレージへの読み出し及び書き込みのリクエストを発行するように構成されている。コンピュータシステム１００は、コントローラ１５０を含み、コントローラ１５０は、ストレージ５００への通信リンクを実装し、第２のコンピュータシステム２００への通信リンク３００を実装し、第２のコンピュータシステム２００から論理ブロック１０１の現在のユーザを識別する情報を受信し、第１のインタフェース１０２を介して論理ブロック１０１からストレージへの読み出し及び書き込みのリクエストを受信し、リクエストを完了するように構成されている。第１のインタフェース１０２は、論理ブロック１０１とコントローラ１５０との間の専用の物理的インタフェースであり、それにより、コントローラ１５０は、第１のインタフェース１０２を介した通信が論理ブロック１０１との通信であると判定することができる。コントローラ１５０は、第２のコンピュータシステム２００によって識別される論理ブロック１０１の現在のユーザが使用を許可されているストレージ５００の１つ又は複数の記憶位置を使用して、ストレージへの読み出し及び書き込みのリクエストを完了するように構成されている。【選択図】図１
2021510871.tif 000002
【特許請求の範囲】
【請求項１】
複数の異なるユーザにコンピューティングリソースを提供するサーバシステムにおいて使用されるコンピュータシステム（１００）であって、
命令を実行する１つ又は複数の処理ユニットを含む論理ブロック（１０１）であって、第１のインタフェース（１０２）を介してストレージへの読み出し及び書き込みのリクエストを発行するように構成されている、論理ブロックと、
コントローラ（１５０）であって、
ストレージ（５００）への通信リンクを実装し、
第２のコンピュータシステム（２００）への通信リンク（３００）を実装し、前記第２のコンピュータシステムから、前記論理ブロックの現在のユーザを識別する情報を受信し、
前記第１のインタフェースを介して前記論理ブロックからストレージへの読み出し及び書き込みのリクエストを受信し、前記リクエストを完了する、コントローラと、
を含み、
前記第１のインタフェース（１０２）は、前記論理ブロックと前記コントローラとの間の専用の物理的インタフェースであり、それにより、前記コントローラは、前記第１のインタフェースを介した通信が前記論理ブロックとの通信であることを判定することができ、
前記コントローラは、前記第２のコンピュータシステムによって識別される前記論理ブロックの前記現在のユーザが使用を許可されている前記ストレージの１つ又は複数の記憶位置を使用して、ストレージへの読み出し及び書き込みの前記リクエストを完了するように構成されている、コンピュータシステム。
【請求項２】
前記コントローラは、前記論理ブロックの後続のユーザを識別する情報を前記第２のコンピュータシステムから受信することに応答して、前記論理ブロックの前記後続のユーザが使用を許可されている前記ストレージの１つ又は複数の事前定義された記憶位置を使用して、前記論理ブロックからのストレージへの読み出し及び書き込みの前記リクエストを完了するように構成されている、請求項１に記載のコンピュータシステム。
【請求項３】
前記論理ブロックと前記コントローラとの間のコントロール接続をさらに含み、前記コントローラは、前記コントロール接続を使用して前記論理ブロックを電源投入又はリセットするように構成されている、請求項１又は２に記載のコンピュータシステム。
【請求項４】
前記コントローラは、前記第２のコンピュータシステムから、前記論理ブロックを電源投入又はリセットする命令を受信することに応答して、前記論理ブロックを電源投入又はリセットするように構成されている、請求項３に記載のコンピュータシステム。
【請求項５】
前記コントローラは、前記第２のコンピュータシステムから命令を受信することに応答して、前記論理ブロックの後続のユーザが使用するために前記論理ブロックを構成するように、前記論理ブロックを電源投入又はリセットするように構成されている、請求項３又は４に記載のコンピュータシステム。
【請求項６】
前記論理ブロックを後続のユーザが使用するために構成する前記命令は、前記論理ブロックの前記後続のユーザを識別する情報を含む、請求項５に記載のコンピュータシステム。
【請求項７】
前記論理ブロックを前記後続のユーザが使用するために構成する前記命令は、前記論理ブロックをリセットする前に、前記コントローラに、前記論理ブロックからストレージへの読み出し及び書き込みのリクエストの通信を停止させる命令を含む、請求項５又は６に記載のコンピュータシステム。
【請求項８】
前記論理ブロックは、前記第１のインタフェースを介して前記ストレージへの読み出し及び書き込みのリクエストを発行するときに、１つ又は複数の事前定義された記憶位置を特定するように構成されており、前記コントローラは、前記論理ブロックによって特定される前記事前定義された記憶位置を、前記第２のコンピュータシステムによって識別される前記論理ブロックの前記ユーザが使用を許可されているユーザ固有の記憶位置に変換し、前記ユーザ固有の記憶位置を使用して前記リクエストを完了するように構成されている、請求項１から７のいずれか一項に記載のコンピュータシステム。
【請求項９】
前記論理ブロックは、ストレージへの読み出し及び書き込みのリクエストを発行するときに、前記１つ又は複数の事前定義された記憶位置を特定するように論理的にハード配線される、請求項８に記載のコンピュータシステム。
【請求項１０】
前記コントローラは、前記第２のコンピュータシステムによって識別される前記論理ブロックの前記現在のユーザが使用を許可されているユーザ固有の記憶位置を、前記論理ブロックに提供するように構成されており、前記論理ブロックは、ストレージへの読み出し及び書き込みのリクエストを発行するときに、前記ユーザ固有の記憶位置を特定するように構成されている、請求項１から７のいずれか一項に記載のコンピュータシステム。
【請求項１１】
前記コントローラは、前記論理ブロックによって特定される前記記憶位置が前記第２のコンピュータシステムによって識別された前記論理ブロックの前記現在のユーザに関連付けられた前記ユーザ固有の記憶位置と一致することを検証するようにさらに構成されている、請求項１０に記載のコンピュータシステム。
【請求項１２】
前記論理ブロックは、前記論理ブロックの電源投入時又はリセット時に前記コントローラから使用を許可されている前記ユーザ固有の記憶位置をリクエストするように構成されている、請求項１０又は１１に記載のコンピュータシステム。
【請求項１３】
前記論理ブロックは、前記論理ブロックの電源投入時又はリセット時に前記コントローラから使用を許可されている前記ユーザ固有の記憶位置をリクエストするように論理的にハード配線される、請求項１２に記載のコンピュータシステム。
【請求項１４】
前記コントローラは、ネットワークと通信するためのネットワークインタフェースを備え、前記コントローラは、前記ネットワークインタフェースを介して前記ネットワークから受信したネットワークデータを、前記第１のインタフェースを介して前記論理ブロックに送信し、前記第１のインタフェースを介して前記論理ブロックから受信したネットワークデータを、前記ネットワークインタフェースを介して前記ネットワークに送信するように構成されている、請求項１から１３のいずれか一項に記載のコンピュータシステム。
【請求項１５】
前記コントローラは、前記第２のコンピュータシステムによって識別される前記論理ブロックの前記現在のユーザに従って、前記第１のインタフェースを介して前記論理ブロックに対して送信及び受信される前記ネットワークデータに、事前定義されたユーザ固有のネットワークアクセスルールを課すように構成されている、請求項１４に記載のコンピュータシステム。
【請求項１６】
前記論理ブロックは、前記第１のインタフェースを介してネットワークデータを送信及び受信するように構成されている、請求項１４又は１５に記載のコンピュータシステム。
【請求項１７】
前記論理ブロックは、第１の通信プロトコルに従って、前記第１のインタフェースを介してストレージへの読み出し及び書き込みのリクエストを発行するように構成されており、前記論理ブロックは、第２の通信プロトコルに従って、前記第１のインタフェースを介してネットワークデータを送信及び受信するように構成されている、請求項１４から１６のいずれか一項に記載のコンピュータシステム。
【請求項１８】
前記第１及び第２の通信プロトコルは、前記第１のインタフェースを介して多重化される、請求項１７に記載のコンピュータシステム。
【請求項１９】
前記第１の通信プロトコルは、前記第２の通信プロトコルを介してトンネリングされ、或いは前記第２の通信プロトコルは、前記第１の通信プロトコルを介してトンネリングされる、請求項１７に記載のコンピュータシステム。
【請求項２０】
前記論理ブロックは、前記論理ブロックと前記コントローラとの間の第２のインタフェースを介してネットワークデータを送信及び受信するように構成されている、請求項１４又は１５に記載のコンピュータシステム。
【請求項２１】
前記ストレージは、ネットワークベースのストレージを含み、前記コントローラは、前記ネットワークインタフェースを介して、前記ネットワークベースのストレージを使用して、ストレージへの読み出し及び書き込みの前記リクエストを完了するように構成されている、請求項１４から２０のいずれか一項に記載のコンピュータシステム。
【請求項２２】
前記論理ブロックは、前記論理ブロックの電源投入時又はリセット時に、前記第１のインタフェースを介して前記コントローラからの起動命令をリクエストするように構成されている、請求項１から２１のいずれか一項に記載のコンピュータシステム。
【請求項２３】
前記論理ブロックは、前記論理ブロックの電源投入時又はリセット時に、前記コントローラからの起動命令をリクエストするように論理的にハード配線される、請求項２２に記載のコンピュータシステム。
【請求項２４】
前記論理ブロックは、ＡＳＩＣ、ＰＬＤ又はリードオンリーメモリに記憶された命令のうちの１つ又は複数を使用して、論理的にハード配線される、請求項９、１３及び２２のいずれか一項に記載のコンピュータシステム。
【請求項２５】
前記コントローラは、前記論理ブロックからの起動命令の前記リクエストを受信することに応答して、前記第２のコンピュータシステムによって識別される前記論理ブロックの現在のユーザが使用を許可されている前記ストレージの１つ又は複数の事前定義された記憶位置を使用して、前記リクエストを完了し、前記論理ブロックにユーザ固有の起動命令を提供するように構成されている、請求項２２から２４のいずれか一項に記載のコンピュータシステム。
【請求項２６】
前記コントローラは、前記論理ブロックからの起動命令の前記リクエストを受信することに応答して、前記第２のコンピュータシステムによって提供される事前定義された起動命令を前記論理ブロックに提供するように構成されている、請求項２２から２４のいずれか一項に記載のコンピュータシステム。
【請求項２７】
前記論理ブロックは、それ自身の永続性ストレージを含む、請求項１から２６のいずれか一項に記載のコンピュータシステム。
【請求項２８】
前記論理ブロックと前記コントローラとの間のコントロール接続をさらに含み、前記コントローラは、前記コントロール接続を使用して前記論理ブロックを電源投入又はリセットするように構成されており、前記コントローラは、後続のユーザが使用するために前記論理ブロックを構成する、前記第２のコンピュータシステムからの命令を受信することに応答して、
前記論理ブロックが前記コントローラからの起動命令をリクエストするように、前記論理ブロックを電源投入又はリセットし、
前記第２のコンピュータシステムによって提供される事前定義された起動命令を前記論理ブロックに提供し、ここで、前記事前定義された起動命令は、前記論理ブロックに前記論理ブロック自身の永続性ストレージを上書きさせて、前記論理ブロック自身の永続性ストレージのコンテンツが前記論理ブロックによってもはや回復可能ではないようにする命令を含み、
前記論理ブロックが前記コントローラからの起動命令をリクエストするように、前記論理ブロックをリセットし、
前記第２のコンピュータシステムによって識別される前記論理ブロックの前記現在のユーザが使用を許可されている前記ストレージの１つ又は複数の事前定義された記憶位置を使用して、ストレージへの読み出し又は書き込みの前記リクエストを完了して、ユーザ固有の起動命令を前記論理ブロックに提供するように、
構成されている、請求項２７に記載のコンピュータシステム。
【請求項２９】
前記論理ブロックと前記コントローラとの間のコントロール接続をさらに含み、前記コントローラは、前記コントロール接続を使用して前記論理ブロックを電源投入又はリセットするように構成されており、前記コントローラは、後続のユーザが使用するために前記論理ブロックを構成する、前記第２のコンピュータシステムからの命令を受信することに応答して、
前記論理ブロックが前記コントローラからの起動命令をリクエストするように、前記論理ブロックを電源投入又はリセットし、
前記第２のコンピュータシステムによって提供される事前定義された起動命令を前記論理ブロックに提供し、ここで、前記事前定義された起動命令は、前記論理ブロックに前記論理ブロック自身の永続性ストレージを上書きさせて、前記論理ブロック自身の永続性ストレージのコンテンツが前記論理ブロックによってもはや回復可能ではないようにし、さらに前記論理ブロックに前記コントローラからの起動命令のさらなるセットをリクエストさせるようにする命令を含み、
前記第２のコンピュータシステムによって識別される前記論理ブロックの前記現在のユーザが使用を許可されている前記ストレージの１つ又は複数の事前定義された記憶位置を使用して、ストレージへの読み出し又は書き込みの前記リクエストを完了して、ユーザ固有の起動命令を前記論理ブロックに提供するように、
構成されている、請求項２７に記載のコンピュータシステム。
【請求項３０】
前記論理ブロックは、ｅＭＭＣなどのストレージプロトコルに従って、前記第１のインタフェースを介してストレージへの読み出し及び書き込みのリクエストを発行するように構成されている、請求項１から２９のいずれか一項に記載のコンピュータシステム。
【請求項３１】
前記コントローラは、ＦＧＰＡ又はＡＳＩＣなどを使用して、ハードウェアで実装される、請求項１から３０のいずれか一項に記載のコンピュータシステム。
【請求項３２】
前記コントローラは、形式的に検証可能なソフトウェアを使用して実装される、請求項１から３１のいずれか一項に記載のコンピュータシステム。
【請求項３３】
前記論理ブロックは、前記コントローラを介することを除いて、前記コンピュータシステムの外部へのインタフェースを有さない、請求項１から３２のいずれか一項に記載のコンピュータシステム。
【請求項３４】
前記記憶位置は、バイト範囲又はブロック範囲などのデータ範囲である、請求項１から３３のいずれか一項に記載のコンピュータシステム。
【請求項３５】
前記ストレージは、
前記コントローラのネットワークインタフェースを介してアクセス可能な１つ又は複数の記憶媒体、
前記通信リンクを介して管理コンピュータシステムにアクセス可能な１つ又は複数の記憶媒体、及び、
前記コンピュータシステム内の１つ又は複数の記憶媒体、
のうちの１つ又は複数を含む、請求項１から３４のいずれか一項に記載のコンピュータシステム。
【請求項３６】
各々が命令を実行する１つ又は複数の処理ユニットを含む、１つ又は複数の追加の論理ブロックをさらに含み、
前記追加の論理ブロックの各々は、前記論理ブロックの各々と前記コントローラとの間の各々の専用の物理的インタフェースを介して、前記ストレージへの読み出し及び書き込みのリクエストを発行するように構成されており、前記コントローラは、どの論理ブロックと通信しているかを判定することができ、
前記コントローラは、前記追加の論理ブロックのために、
前記第２のコンピュータシステムから、前記追加の論理ブロックの各々の現在のユーザを識別する情報を受信し、
前記追加の論理ブロックの各々からのストレージへの読み出し及び書き込みのリクエストを受信し、前記第２のコンピュータシステムによって識別される前記論理ブロックの各々の前記現在のユーザが使用を許可されている前記ストレージのそれぞれ事前定義された記憶位置を使用して、前記リクエストの各々を完了するようにさらに構成されている、請求項１から３５のいずれか一項に記載のコンピュータシステム。
【請求項３７】
前記第２のコンピュータシステムをさらに含む、請求項１から３６のいずれか一項に記載のコンピュータシステム。
【請求項３８】
前記第２のコンピュータシステムは、前記コンピュータシステムの複数の異なるユーザの各々が使用を許可されている前記記憶位置を前記コントローラに提供するように構成されている、請求項３６に記載のコンピュータシステム。
【請求項３９】
請求項１から３８のいずれか一項に記載のコンピュータシステムで使用されるように構成されている、コントローラ。
【請求項４０】
コンピュータシステムを動作させる方法であって、前記コンピュータシステムは、コントローラと、命令を実行する１つ又は複数の処理ユニットを備える論理ブロックとを含み、
前記コントローラにより、第２のコンピュータシステムから、前記論理ブロックの現在のユーザを識別する情報を受信することと、
前記コントローラにより、前記論理ブロックから、第１のインタフェースを介して、ストレージへの読み出し及び書き込みのリクエストを受信することであって、前記第１のインタフェースは、前記論理ブロックと前記コントローラとの間の専用の物理的インタフェースであって、それにより、前記コントローラは、前記第１のインタフェースを介した通信が前記論理ブロックとの通信であると判定することができることと、
第２のコンピュータシステムによって識別される前記論理ブロックの前記現在のユーザが使用を許可されている前記ストレージの１つ又は複数の記憶位置を使用して、ストレージへの読み出し及び書き込みのリクエストを完了することと、
を含む、方法。
【請求項４１】
請求項３９に記載のコントローラで実行されると、請求項４０に記載の方法を前記コントローラに実施させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の異なるユーザによって使用されるストレージリソースを安全に共用するためのコンピュータシステム及び方法に関する。
【背景技術】
【０００２】
インフラストラクチャアズアサービス（ＩａａＳ）は、アマゾン（登録商標）のＥｌａｓｔｉｃ  Ｃｏｍｐｕｔｅ  Ｃｌｏｕｄ(登録商標）、マイクロソフト（登録商標）、及びデジタルオーシャン(登録商標）などの様々な「クラウド」プロバイダによって提供される。ＩａａＳサービスでは、物理的なコンピューティングインフラストラクチャの中央プールは、任意の所与の顧客のデータ及びプロセスが他の顧客のものから隔離されることを保証するためのセキュリティ分離を使用することによって、複数の独立した顧客（又は「ユーザ」）によって使用される。
【０００３】
この隔離は、任意の所与の時点及び異なる時点の両方に関連する必要がある。これは、第１の時間（Ｔ１）に１つの顧客（顧客Ａ）によって使用されたコンピューティングインフラストラクチャが、その後の時間（Ｔ２）に他の顧客（顧客Ｂ）によって使用される可能性があるためである。顧客Ｂのプロセスが顧客Ａのデータへのアクセスを得ること、又は顧客Ａのプロセスが時間Ｔ２まで持続し、顧客Ｂのデータへのアクセスを得ること（又は顧客Ｂのプロセスの挙動を修正すること）は、可能であってはならない。
【０００４】
既存のＩａａＳは、仮想化層又はハイパーバイザ層を使用して、この隔離を実施する。仮想化技術は、ＩａａＳプロバイダが隔離された「仮想マシン」を定義することを可能にし、その各々は、異なる顧客によって使用され得る。任意の所与の時点で仮想マシンを互いに隔離することに加えて、仮想化技術は、任意の所与の仮想マシンがその時点でその仮想マシンを使用している顧客に属するデータのみにアクセスできるようにすることによって、複数の時点にわたって隔離を提供することも行う。
【０００５】
しかしながら、場合により、仮想化によって提供される隔離レベルが、顧客のセキュリティ要件に十分ではない場合がある。仮想化技術の脆弱性（たとえば、ＶＥＮＯＭの脆弱性）により、悪意のある顧客が、同じ物理的ホスト上で仮想マシンを動作させている他の顧客に属するデータ及びプロセスへのアクセスを得る可能性がある。
【０００６】
これらの懸念のいくつかに対処するために、顧客は、顧客間のより強力な隔離レベルを提供するために、仮想マシンではなく、自分自身の専用の物理的装置（処理リソース、及び潜在的に永続性ストレージ（persistent storage）などの周辺機器を含む）を提供され得る。
【０００７】
しかしながら、これは、ある時点での適切な隔離を提供するが、それ自身では複数の時点にわたる隔離を提供しない。例えば、専用の物理的装置Ｐ１が時間Ｔ１に顧客Ａによって使用され、次いで時間Ｔ２に顧客Ｂによって使用される場合、顧客Ａのプロセスは時間Ｔ２まで持続し、顧客Ｂのデータへのアクセスを得ることがある。他の例として、Ｐ１が永続性ストレージを含む場合、顧客Ｂは、顧客Ａによって永続性ストレージに保存されたデータにアクセスし得る。顧客Ａがデータを暗号化していたとしても、顧客Ｂが暗号化されたデータを上書きして、顧客Ａが時間Ｔ３にＰ１を使用するために戻ってきたときに、そのデータは利用できなくなっていることがあり得る。
【０００８】
さらに、顧客Ａは、異なる物理的装置（Ｐ２）が割り当てられた場合であっても、時間Ｔ３に自分のデータへのアクセスを得ることを望むことがある。これを可能にするために、顧客Ａのデータは、時間Ｔ１にＰ１からアクセス可能で、時間Ｔ３にＰ２からアクセス可能な何らかの共用ストレージ設備に記憶される必要がある。これは、Ｐ１及びＰ２にも接続するネットワークに接続されているネットワーク接続ストレージ（ＮＡＳ）装置によって提供されてもよい。この場合、顧客間の適切な隔離を達成するために、任意の所与の物理的装置は、その時点でその所与の物理的装置が割り当てられている顧客によって所有されている、共用ストレージ設備に記憶されたデータだけにアクセス可能でなければならない。
【０００９】
この隔離要件を実施するための様々なアプローチが存在する。例えば、ｉＳＣＳＩ又はＮＢＤなどのネットワークストレージプロトコルを使用するストレージ装置は、装置にアクセスしている物理的装置のネットワーク識別に基づいてアクセス制御を実施する能力を提供し得る。しかしながら、これらのプロトコルは、典型的には比較的複雑であって、ＴＣＰ、ＩＰ、及びイーサネットなどの、低いレベルのプロトコルに依存する。
【００１０】
この複雑さのため、これらのプロトコルのサポートは、典型的には、攻撃者によって悪用され得るセキュリティ脆弱性を含む方法で実装される。顧客がセキュリティについて非常に懸念しており、仮想化技術に頼ることを望まない場合、顧客は、そのようなアクセス制御によって提供されるセキュリティのレベルに満足する可能性は低い。
【００１１】
英国特許出願公開第ＧＢ２５４５０１０号は、所与の時点で顧客に自身の専用の物理的論理ブロックを割り当てることができ、それによってある時点における顧客間の隔離を提供するＩａａＳコンピュータシステムを記載している。複数の時点にわたる隔離を提供するために、各々の論理ブロックは、論理ブロックの電源投入時又はリセット時に、専用ストレージコントローラからの起動命令をリクエストするように事前構成されており、ストレージコントローラは、コントロール接続（control connection）を使用して論理ブロックの電源投入及びリセットを行うことができる。コントロール接続を使用して論理ブロックの電源投入又はリセットを行うことにより、ストレージコントローラは、それが提供する起動命令の実行結果である状態に、各々の論理ブロックを配置することができる。論理ブロックが起動命令をストレージコントローラに書き込まないようにする手順を実行することで、起動命令の実行結果である既知の状態は、論理ブロックで実行されるソフトウェアが電源投入時又はリセット時に実行される起動命令を変更できない「既知の良好な（known good）」状態になる。この方法では、顧客が論理ブロックに割り当てられるたびに、ロジックが電源投入又はリセットをされ、顧客は論理ブロックがこの「既知の良好」状態で開始することを認識する。
【００１２】
ＧＢ２５４５０１０に記載されているシステムは、ある時点において、及び複数の時点にわたって、顧客間の隔離を提供し、高保証の方法で実装されることができる一方で、顧客に永続性ストレージへの制限されたアクセスを提供する。各々の論理ブロックがそれ自身の永続性ストレージを備えていれば、複数の時点にわたる顧客間の隔離レベルが大幅に低減され、顧客が後で異なる論理ブロックを割り振られた場合に、顧客が自身のデータにアクセスすることもできない。論理ブロックに共用ストレージリソースを提供することで後者の問題は解決されるが、この場合、ある顧客が他の顧客の保存されたデータにアクセス又は上書きし得ることがあり、特定の時点において及び特定の複数の時点にわたっての両方で顧客間の隔離レベルが低下する可能性がある。
【発明の概要】
【００１３】
本明細書で説明される実施形態は、ＩａａＳシステムの複数の異なる顧客がストレージ設備を共用することを可能にし、ある時点において、及び複数の時点にわたって、顧客間の隔離（isolation）を提供する。
【００１４】
本発明は独立請求項に定義されており、ここでは、独立請求項を参照する。好ましい特徴は、従属請求項に記載されている。
【００１５】
本発明の一態様によれば、複数の異なるユーザにコンピューティングリソースを提供するサーバシステムにおいて使用されるコンピュータシステムが提供される。コンピュータシステムは、命令を実行する１つ又は複数の処理ユニットを含む論理ブロック（処理ブロックとも称される）であって、第１のインタフェース（第1の接続とも称される）を介してストレージへの読み出し及び書き込みのリクエストを発行するように構成されている、論理ブロックを含む。コンピュータシステムは、ストレージへの通信リンクを実装し、第２のコンピュータシステムへの通信リンクを実装し、第２のコンピュータシステムから、論理ブロックの現在のユーザを識別する情報を受信し、第１のインタフェースを介して論理ブロックからストレージへの読み出し及び書き込みのリクエストを受信し、リクエストを完了する、コントローラをさらに含む。第１のインタフェースは、論理ブロックとコントローラとの間の専用の物理的インタフェースであり、それにより、コントローラは、第１のインタフェースを介した通信が論理ブロックとの通信であると判定することができる。コントローラは、第２のコンピュータシステムによって識別される論理ブロックの現在のユーザが使用を許可されているストレージの１つ又は複数の記憶位置を使用して、ストレージへの読み出し及び書き込みのリクエストを完了するように構成されている。
【００１６】
論理ブロックとコントローラとの間に専用の物理的インタフェース（すなわち、専用の物理的接続）（すなわち、論理ブロックとコントローラとの間の物理的なポイントツーポイントインタフェース（すなわち、物理的なポイントツーポイント接続））を提供することによって、コントローラは、論理ブロックから受信されるデータと論理ブロックから受信されないデータとを完全に確実に区別することができる。言い換えると、コントローラは、受信したデータではなく、データを受信した物理的インタフェースに基づいて、通信が論理ブロックから来たものであると判断するため、論理ブロックは、うまく他のエンティティになりすましたり、他のエンティティになりすまされたりすることはできない。これは、システムの物理的な内部構造にアクセスしないと変更できない。これは、特に、コンピュータシステムが複数の論理ブロックを含み、その各々がコントローラへの専用の物理的インタフェースを有している場合に、コントローラが完全に安全で信頼性のある方法で論理ブロックを区別することを意味するために、重要である。
【００１７】
さらに、コントローラが論理ブロックから完全に独立している第２のコンピュータシステムから論理ブロックの現在のユーザ（すなわち、論理ブロックに現在割り当てられている顧客）の識別（identity）を受信するので、コントローラは、論理ブロックがコントローラによるユーザの判定に影響を及ぼすことができないことを完全に確信することができる。実際、第２のコンピュータシステムが信頼されている限り、コントローラは現在のユーザの識別を絶対的に確信することができる。
【００１８】
さらに、これは、コントローラがストレージへの読み出し又は書き込みのリクエストを受信したとき、コントローラは、リクエストの要求元による使用が確実に許可され得る共用ストレージリソースの記憶位置を識別し得ることを意味する。このようにして、実施形態は、論理ブロックのユーザ間の高度な隔離を維持しながら、ストレージ設備を複数の異なるユーザによって共用することを可能にする。
【００１９】
コントローラは、論理ブロックの後続のユーザを識別する情報を第２のコンピュータシステムから受信することに応答して、論理ブロックの後続のユーザが使用を許可されているストレージの１つ又は複数の事前定義された記憶位置を使用して、論理ブロックからのストレージへの読み出し及び書き込みのリクエストを完了するように構成されていてもよい。後続のユーザは、本開示では新たなユーザとも称されるが、現在のユーザとは異なるユーザであり、現在／前のユーザとは異なるユーザであるという意味で「新たな」ユーザであってもよい。疑いを避けるために、後続のユーザは現在／前のユーザに続くが、以前に論理ブロックを使用していてもよい。論理ブロックの新たなユーザに関する命令は、論理ブロックから独立した第２のコンピュータシステムから受信されるので、コンピュータシステムが、論理ブロック上で実行されているソフトウェアによって騙されて、論理ブロックの真の現在のユーザがアクセスを許可されていない記憶位置へのデータの読み出し又は書き込みを行うことはない。
【００２０】
コンピュータシステムは、論理ブロックとコントローラとの間のコントロール接続をさらに含んでもよく、コントローラは、コントロール接続を使用して、論理ブロックを電源投入又はリセットするように構成されていてもよい。コントローラは、第２のコンピュータシステムから命令を受信することに応答して、論理ブロックを電源投入又はリセットするように構成されていてもよい。論理ブロックで実行されているソフトウェアは、電源切断又はリセットされると存続できないため、論理ブロック上でソフトウェアが実行されている論理ブロックを「フラッシュ（flush）」する機能が提供される。これは、異なる顧客が使用するために論理ブロックを準備する場合、又は論理ブロックがマルウェアを実行していると考えられる場合に役立ち得る。
【００２１】
コントローラは、第２のコンピュータシステムから命令を受信することに応答して、後続のユーザが使用するために論理ブロックを構成するように、論理ブロックを電源投入又はリセットするように構成されていてもよい。論理ブロックをリセットすることは、論理ブロックの前のユーザのプロセスが論理ブロックの後続のプロセス及びデータに影響を与えないようにするのに役立つ。
【００２２】
論理ブロックを後続のユーザが使用するために構成する命令は、論理ブロックの後続のユーザを識別する情報を含んでもよい。コントローラは、異なるユーザ間のセキュリティ分離を維持しながら、論理ブロックの後続のユーザによって発行されるリクエストを処理して、ストレージへのデータの読み出し及び書き込みを行う場合、論理ブロックの後続のユーザのアイデンティティを知る必要がある。
【００２３】
論理ブロックを後続のユーザが使用するために構成する命令は、論理ブロックをリセットする前に、コントローラに、論理ブロックからストレージへの読み出し及び書き込みのリクエストの通信を停止させる命令を含んでもよい。
【００２４】
論理ブロックは、例えば、論理的にハード配線され、第１のインタフェースを介してストレージへの読み出し及び書き込みのリクエストを発行するときに、１つ又は複数の事前定義された記憶位置を特定するように構成されていてもよい。この場合、コントローラは、論理ブロックによって特定される事前定義された記憶位置を、第２のコンピュータシステムによって識別される論理ブロックのユーザが使用を許可されているユーザ固有の記憶位置に変換し、ユーザ固有の記憶位置を使用してリクエストを完了するように構成されていてもよい。このように、論理ブロックは、論理ブロックのユーザに関係なく、常に同じ記憶位置を特定するので、ユーザ固有の記憶位置を論理ブロックに伝える必要はない。これにより、論理ブロックのユーザ間の切り替え処理を簡略化することができる。また、使用中に侵害される可能性がある論理ブロックは、ユーザ固有の記憶位置を知らないため、それらをコンピュータシステムの外部へ通信することができず、セキュリティを向上させ得る。論理ブロックを論理的にハード配線して記憶位置を特定することにより、論理ブロック上で動作するソフトウェアによって動作を変更することができないので、さらなるセキュリティが提供される。
【００２５】
コントローラは、第２のコンピュータシステムによって識別される論理ブロックの現在のユーザが使用を許可されているユーザ固有の記憶位置を、論理ブロックに提供するように構成されていてもよく、この場合、論理ブロックは、ストレージへの読み出し及び書き込みのリクエストを発行するときに、これらのユーザ固有の記憶位置を特定するように構成され得る。これにより、コントローラが論理ブロックから受信する記憶位置を変換する必要がないので、コントローラの処理要件及び複雑さを低減することができる。この場合、コントローラは、論理ブロックによって特定される記憶位置が、第２のコンピュータシステムによって識別された論理ブロックの現在のユーザに関連付けられたユーザ固有の記憶位置と一致することを検証するように構成されていてもよい。このように、論理ブロックが使用中に侵害され、ユーザがアクセスを許可されていない保管場所が特定される可能性があるため、セキュリティ実施が提供される。
【００２６】
論理ブロックは、例えば論理的にハード配線され、論理ブロックの電源投入時又はリセット時にコントローラから使用を許可されているユーザ固有の記憶位置をリクエストするように構成されていてもよい。この動作を論理ブロックの起動シーケンスに統合することで、より堅牢なシステムを提供することができる。
【００２７】
コントローラは、ネットワークと通信するためのネットワークインタフェースを備えてもよく、コントローラは、ネットワークインタフェースを介して受信したネットワークデータを論理ブロックに送信し、論理ブロックから受信したネットワークデータを、ネットワークインタフェースを介してネットワークに送信するように構成されていてもよい。コンピュータシステムへのネットワークインタフェースの追加によって、論理ブロックに追加機能が提供され、ストレージとネットワークアクセスとの両方に対する単一のセキュリティ管理が提供される。
【００２８】
コントローラは、第２のコンピュータシステムによって識別される論理ブロックの現在のユーザに従って、第１のインタフェースを介して論理ブロックに対して送信及び受信されるネットワークデータに、事前定義されたユーザ固有のネットワークアクセスルールを課すように構成されていてもよい。これにより、使用中に論理ブロックが侵害されるリスクをさらに低減させることに加えて、論理ブロックの構成を変更することなく、論理ブロックの外部脅威への露出を論理ブロックのユーザの要件に合わせて調整することが可能になる。
【００２９】
論理ブロックは、第１のインタフェースを介してネットワークデータを送信及び受信するように構成されていてもよい。あるいは、論理ブロックは、論理ブロックとコントローラとの間の第２のインタフェース（これは第２の接続とも称される）を介してネットワークデータを送信及び受信するように構成されていてもよい。ネットワークデータ及びストレージデータが同じ第１のインタフェースを介して送信される場合、第１及び第２のプロトコルは、例えば時分割多重化を使用して、第１のインタフェースを介して多重化されてもよい。あるいは、第１の通信プロトコルが、第２の通信プロトコルを介してトンネリングされてもよく、又は第２の通信プロトコルが、第１の通信プロトコルを介してトンネリングされてもよい。ネットワークデータ及びストレージデータが別々の専用の物理的インタフェース上で送信される場合、論理ブロックは、第１の通信プロトコルに従って、第１のインタフェースを介してストレージへの読み出し及び書き込みのリクエストを発行するように構成されていてもよく、論理ブロックは、第２の通信プロトコルに従って、第１のインタフェースを介してネットワークデータを送信及び受信するように構成されていてもよい。
【００３０】
ネットワークデータ及びストレージデータを同じインタフェースを介して送信することにより、コントローラと論理ブロックとの間の物理的接続の数を減らすことができ、これにより、コントローラへのより多くの論理ブロックの接続など他の用途のためにハードウェアピンを節約することができる。ただし、ネットワークデータとストレージデータとを別々の物理的インタフェースを介して送信することも可能である。
【００３１】
ストレージは、ネットワークベースのストレージを含んでもよく、コントローラは、ネットワークインタフェースを介して、ネットワークベースのストレージに対する、ストレージへの読み出し及び書き込みのリクエストを完了するように構成されていてもよい。
【００３２】
論理ブロックは、例えば論理的にハード配線され、論理ブロックの電源投入時又はリセット時に、第１のインタフェースを介してコントローラからの起動命令をリクエストするように構成されていてもよい。論理ブロックは、ＡＳＩＣ、ＰＬＤ、又はリードオンリーメモリ（ＲＯＭ）に格納された命令の１つ又は複数を使用して、論理的にハード配線されてもよい。ＲＯＭ命令は、論理ブロックに格納されてもよい。論理ブロックの電源投入時又はリセット時に、論理ブロックがコントローラから起動命令をリクエストするように、論理ブロックを事前構成することにより、論理ブロックが新しいユーザに切り替えられたときに、コントローラが論理ブロックの開始状態を制御することできる。また、論理ブロックが、電源投入時又はリセット時に実行する起動命令に変更を加えた結果として、論理ブロックが「応答なし（bricked）」となる危険性も低減する。
【００３３】
コントローラは、論理ブロックからの起動命令のリクエストを受信することに応答して、第２のコンピュータシステムによって識別される論理ブロックの現在のユーザが使用を許可されているストレージの１つ又は複数の記憶位置を使用して、リクエストを完了し、論理ブロックにユーザ固有の起動命令を提供するように構成されていてもよい。これにより、論理ブロックの所与のユーザは、論理ブロックをユーザ固有の状態で起動させることができる。この状態は、ユーザに望まれる可能性がある一方で、マルウェアの影響を受ける状態となり得る。しかしながら、コントローラがユーザ固有の記憶位置からのデータを返すだけであるということは、他のユーザが（所与の時間であっても、複数の時点にわたっても）影響を受ける状態から依然として隔離されていることを意味する。
【００３４】
さらに、又は代替的に、コントローラは、論理ブロックからの起動命令のリクエストを受信することに応答して、第２のコンピュータシステムによって提供される事前定義された起動命令を論理ブロックに提供するように構成されていてもよい。これにより、論理ブロックは、「クリーン」な起動命令として知られている、第２のコンピュータシステムによって提供される起動命令の実行に起因する「既知の良好な」状態に起動され得る。これにより、起動命令を安全な方法で更新することができる。さらに、これにより、ユーザ自身のユーザ固有の起動命令が何らかの方法で侵害された場合に論理ブロックを既知の良好な状態に起動することができ、その時点で、ユーザ固有の起動命令を修復することができる。
【００３５】
論理ブロックは、それ自身の永続性ストレージをさらに含み得る。これにより、論理ブロックのユーザに追加機能が提供される。
【００３６】
論理ブロックがそれ自身の永続性ストレージを含み、コンピュータシステムが論理ブロックとコントローラとの間のコントロール接続を含む場合、コントローラは、第２のコンピュータシステムからの命令を受信することに応答して、論理ブロックがコントローラからの起動命令をリクエストするように、前記論理ブロックを電源投入又はリセットすることと、第２のコンピュータシステムによって提供される事前定義された起動命令を論理ブロックに提供することであって、ここで、事前定義された起動命令は、論理ブロックに論理ブロック自身の永続性ストレージを上書きさせて、論理ブロック自身の永続性ストレージのコンテンツが論理ブロックによってもはや回復可能ではないようにする命令を含むことと、論理ブロックがコントローラからの起動命令をリクエストするように、論理ブロックをリセットすることと、第２のコンピュータシステムによって識別される論理ブロックの現在のユーザが使用を許可されているストレージの１つ又は複数の事前定義された記憶位置にリクエストを通信して、ユーザ固有の起動命令を論理ブロックに提供することとによって、新たなユーザが使用するために論理ブロックを構成するように構成されている。
【００３７】
論理ブロックにそれ自身の永続性ストレージを提供することにより、コンピュータシステムのユーザに追加機能が提供されるが、それによって、複数の時点にわたる異なるユーザ間の隔離が減少する可能性がある。しかしながら、このようにコントロール接続及びハード配線された起動シーケンスを利用することにより、コントローラは、あるユーザによって論理ブロックの永続性ストレージに格納されたデータが、論理ブロックの後続のユーザによってアクセスされたり、後続のユーザに影響を与えたりすることができないことを保証することができる。
【００３８】
あるいは、論理ブロックにそれ自身の永続性ストレージを上書きさせる起動命令を実行させた後に論理ブロックをリセットするのではなく、起動命令は、論理ブロックに他の起動命令のセットをリクエストさせる最終命令を含んでもよい。それから、コントローラは、第２のコンピュータシステムによって識別される論理ブロックの現在のユーザが使用を許可されている、ストレージの１つ又は複数の事前定義された記憶位置に、そのリクエストを通信して、ユーザ固有の起動命令を論理ブロックに提供してもよい。このアプローチは、コントローラが論理ブロックを２回リセットする必要がないので、実行するのがより簡単になり得る。
【００３９】
論理ブロックは、ｅＭＭＣなどのストレージプロトコルに従って、第１のインタフェースを介してストレージへの読み出し及び書き込みのリクエストを発行するように構成されていてもよい。ｅＭＭＣなどの単純なストレージプロトコルの使用は、コントローラが、例えばＦＧＰＡ又はＡＳＩＣを使用して、又は形式的に検証可能なソフトウェアを使用して、高保証の方法で実装されることを可能にする。これは、侵害された論理ブロックが、第１のインタフェースを介した通信を使用して、コントローラを侵害し得る危険性を低減する。
【００４０】
論理ブロックは、コントローラを介することを除いて、コンピュータシステムの外部へのインタフェースを有さなくてもよい。これにより、コントローラは、コンピュータシステムのユーザ間のセキュリティ分離を提供することができる。
【００４１】
記憶位置は、バイト範囲又はブロック範囲などのデータ範囲であってもよい。
【００４２】
ストレージは、コントローラのネットワークインタフェースを介してアクセス可能な１つ又は複数の記憶媒体、通信リンクを介して管理コンピュータシステムにアクセス可能な１つ又は複数の記憶媒体、及び、コンピュータシステム内の１つ又は複数の記憶媒体、のうちの１つ又は複数を含んでもよい。
【００４３】
コンピュータシステムは、各々が命令を実行する１つ又は複数の処理ユニットを含む、１つ又は複数の追加の論理ブロックをさらに含んでもよい。追加の論理ブロックの各々は、論理ブロックの各々とコントローラとの間の各々の専用の物理的インタフェースを介して、ストレージへの読み出し及び書き込みのリクエストを発行するように構成されていてもよく、これにより、コントローラは、どの論理ブロックと通信しているかを判定することができる。コントローラは、追加の論理ブロックのために、第２のコンピュータシステムから、追加の論理ブロックの各々の現在のユーザを識別する情報を受信し、追加の論理ブロックの各々からのストレージへの読み出し及び書き込みのリクエストを受信し、第２のコンピュータシステムによって識別される論理ブロックの各々の現在のユーザが使用を許可されているストレージのそれぞれ事前定義された記憶位置を使用して、リクエストの各々を完了するように、さらに構成されていてもよい。
【００４４】
コンピュータシステムは、第２のコンピュータシステムをさらに含んでもよい。
【００４５】
第２のコンピュータシステムは、コンピュータシステムの複数の異なるユーザの各々が使用を許可されている記憶位置をコントローラに提供するように構成されていてもよい。
【００４６】
第２のコンピュータシステムは、ユーザ固有のネットワークアクセスルールをコントローラに提供するように構成されていてもよい。
【００４７】
コントローラもまた個別に提供される。
【００４８】
コントローラと、命令を実行する１つ又は複数の処理ユニットを備える論理ブロックとを含むコンピュータシステムを動作させる対応する方法も提供される。この方法は、コントローラにより、第２のコンピュータシステムから、論理ブロックの現在のユーザを識別する情報を受信することと、コントローラにより、論理ブロックから、第１のインタフェースを介して、ストレージへの読み出し及び書き込みのリクエストを受信することであって、第１のインタフェースは、論理ブロックとコントローラとの間の専用の物理的インタフェースであって、それにより、コントローラは、第１のインタフェースを介した通信が論理ブロックとの通信であると判定することができることと、第２のコンピュータシステムによって識別される論理ブロックの現在のユーザが使用を許可されているストレージの１つ又は複数の記憶位置を使用して、ストレージへの読み出し及び書き込みのリクエストを完了することと、を含む。
【００４９】
コントローラで実行されると、上記の方法をコントローラに実行させる、コンピュータプログラムも提供される。
【図面の簡単な説明】
【００５０】
本発明の実施形態を、単なる例として、添付の図面を参照してさらに説明する。
【図１】図１は、一実施形態に係る第１及び第２のコンピュータシステムの模式図である。
【図２】図２は、論理ブロックを電源投入又はリセットするためのコントロール接続を含む、図１のものに対する追加の詳細を示す、一実施形態に係る第１及び第２のコンピュータシステムのさらなる模式図である。
【図３】図３は、論理ブロックがそれ自身の永続性ストレージを有する、一実施形態に係る第１及び第２のコンピュータシステムのさらなる概略図である。
【図４】図４は、インタフェースコントローラは、ネットワークを介して論理ブロックとの通信のルーティングをもする、一実施形態に係る第１及び第２のコンピュータシステムのさらなる概略図である。
【００５１】
説明及び図面全体を通して、同様の要素には同様の参照番号が使用される。
【発明を実施するための形態】
【００５２】
図１は、第１のコンピュータシステム１００及び第２のコンピュータシステム２００を示す。参考のために、第１のコンピュータシステムは、ＩａａＳコンピュータシステム１００と称され、第２のコンピュータシステムは、管理コンピュータシステム２００と称される。
【００５３】
ＩａａＳコンピュータシステム１００は、典型的には、それぞれが１つ又は複数の処理ユニット及びいくつかのＲＡＭ(図示せず）を備える１つ又は複数の論理ブロック１０１ａ、１０１ｂ、１０１ｃと、専用インタフェースコントローラ１５０とを備える。論理ブロック１０１ａ、１０１ｂ、１０１ｃは、処理機能を実行するので、処理ブロック、処理回路、又は論理回路とも称される。それぞれの論理ブロック１０１ａ、１０１ｂ、１０１ｃは、それ自身の専用の物理的なポイントツーポイントインタフェース１０２ａ、１０２ｂ、１０２ｃを介してインタフェースコントローラ１５０に接続される。「インタフェース」という用語は、この文脈では、論理ブロック１０１ａ、１０１ｂ、１０１ｃとインタフェースコントローラ１５０との間の接続を指すために使用される。論理ブロック１０１ａ、１０１ｂ、１０１ｃの各々は、ＩａａＳコンピュータシステム内の他の専用構成要素（図３を参照して以下で説明される、専用の永続性ストレージなど）を含んでもよく、或いはそれへの他の接続を有してもよいが、論理ブロック１０１ａ、１０１ｂ、１０１ｃは、論理ブロック１０１ａ、１０１ｂ、１０１ｃによって共用される構成要素への他の接続も、インタフェースコントローラ１５０を介するものを除いて、ＩａａＳコンピュータシステム１００の外部への接続も有さない。
【００５４】
論理ブロック１０１ａ、１０１ｂ、１０１ｃとインタフェースコントローラ１５０との間の接続は、論理ブロック１０１ａ、１０１ｂ、１０１ｃがストレージプロトコルなどの適切な通信プロトコルを使用してストレージへの読み出し及び書き込みのリクエストをインタフェースコントローラ１５０に発行できるように確立される。
【００５５】
インタフェースコントローラ１５０は、選択されたプロトコルに従って、それぞれの専用の物理的インタフェース１０２ａ、１０２ｂ、１０２ｃを介して、論理ブロック１０１ａ、１０１ｂ、１０１ｃと通信することができる。したがって、インタフェースコントローラ１５０は、論理ブロック１０１ａ、１０１ｂ、１０１ｃによって発行された読み出し及び書き込みのリクエストを受信することができ、（以下でより詳細に説明されるように）適切な方法でリクエストを処理し、リクエストを完了するために必要がある場合には、論理ブロック１０１ａ、１０１ｂ、１０１ｃに、それらの専用の物理的インタフェース１０２ａ、１０２ｂ、１０２ｃを介してデータを返すことができる。
【００５６】
論理ブロック１０１ａ、１０１ｂ、１０１ｃ及びインタフェースコントローラ１５０は、例えばボールグリッドアレイなどの、別個のチップパッケージに実装されてもよい。この場合、１つの論理ブロックとインタフェースコントローラ１５０との間の専用の物理的インタフェースは、論理ブロックパッケージのピンとインタフェースコントローラパッケージの適切な専用のピンとの間のＰＣＢ上に金属接続を生成することによって達成されてもよい。それから、他の論理ブロックが、それぞれの専用の物理的インタフェースを達成するために、インタフェースコントローラパッケージ上の他のピンに接続される。
【００５７】
あるいは、論理ブロック１０１ａ、１０１ｂ、１０１ｃ及びインタフェースコントローラ１５０は、単一のシリコン基板内の個別の回路として実装されてもよい。この場合、１つの論理ブロックとインタフェースコントローラ１５０との間の専用の物理的インタフェースは、例えばリソグラフィ（lithography）を使用して、基板上に適切な導電性トラックを形成することによって達成されてもよい。
【００５８】
好ましくは、ｅＭＭＣのような非常に単純なストレージプロトコルが、それぞれの専用の物理的インタフェース１０２ａ、１０２ｂ、１０２ｃを介した、インタフェースコントローラ１５０と論理ブロック１０１ａ、１０１ｂ、１０１ｃとの間の通信のために選択される。非常に単純なプロトコルを選択することによって、インタフェースコントローラの機能を高保証（high-assurance）の方式で実装することが可能になる。これは、悪意のある当事者が論理ブロック１０１ａ、１０１ｂ、１０１ｃ上で実行され得る悪意のあるソフトウェアを使用して、インタフェースコントローラ１５０の機能を侵害する手段としてプロトコルを使用することを非常に困難にする。高保証のアプローチの一例は、例えばＦＰＧＡ又はＡＳＩＣを使用する、ハードウェアでのインタフェースコントローラ１５０の実装である。このようなハードウェアベースの実装の機能は、装置の内部にアクセスせずに変更できないため、特に安全になる。高保証のアプローチの他の例は、形式的な方法を使用して開発されたソフトウェアを使用する、インタフェースコントローラの実装である。これはより複雑なプロトコルを使用することを可能にする一方で、より危険であり、困難であり、高保証の方式で実装するのに費用がかかる。
【００５９】
インタフェースコントローラ１５０はまた、管理コンピュータシステム２００への通信リンク３００を実装する。これは数多くの異なる方法で達成され得るが、重要なことは、通信リンク３００が専用の物理的インタフェース１０２ａ、１０２ｂ、１０２ｃのいずれとも独立していることである。これによって、論理ブロック１０１ａ、１０１ｂ、１０１ｃは、通信リンク３００を介して第２のコンピュータシステム２００からインタフェースコントローラ１５０が受信するデータに影響を及ぼすことができない。
【００６０】
ある実装では、通信リンク３００は、管理コンピュータシステム２００が含まれる管理ネットワーク３００へのリンクである。他の実装では、第２のコンピュータシステム２００が、実際にＩａａＳコンピュータシステム１００の一部である。これに関わらず、インタフェースコントローラ１５０と管理コンピュータシステム２００との間の通信リンク３００は、インタフェースコントローラ１５０と論理ブロック１０１ａ、１０１ｂ、１０１ｃとの間の専用の物理的インタフェース１０２ａ、１０２ｂ、１０２ｃのいずれとも独立している。
【００６１】
通信リンク３００は、ＩａａＳコンピュータシステム１００と管理コンピュータシステム２００との間の物理的な有線接続として、或いは、有線及び／又は無線ネットワーク接続として実装され得る。通信リンクは、このリンク３００を介した通信にＩａａＳコンピュータシステム１００の他のいかなる構成要素もアクセスできないような方法で実装されてもよい。例えば、一実装では、インタフェースコントローラ１５０は、ケーブルを介して管理コンピュータシステム２００に接続される物理的通信ポートを含む。他の実装では、インタフェースコントローラ１５０は、ＩａａＳ起動コンピュータシステム１００の他の構成要素が暗号化トラフィックにアクセスできるが、復号化又は暗号化するために必要なキーへのアクセスを有さないような方法で、管理コンピュータシステム２００への暗号化リンクを実装する。
【００６２】
管理コンピュータシステム２００は、典型的には、ＩａａＳコンピュータシステム１００のオペレータに関連付けられる。例えば、管理コンピュータシステム２００は、ＩａａＳコンピュータシステム１００の顧客への論理ブロック１０１ａ、１０１ｂ、１０１ｃの使用の割り当てを管理することに責任を負ってもよい。代替的又は追加的に、この情報は、管理コンピュータシステム２００に提供されてもよいし、オペレータ又はＩａａＳコンピュータシステム１００のオペレータに関連付けられた他のエンティティによって入力されてもよい。このようにして、管理コンピュータシステム２００は、任意の所与の時点で論理ブロック１０１ａ、１０１ｂ、１０１ｃのユーザの識別を知り、この情報を、通信リンク３００を介してインタフェースコントローラ１５０に通信することができる。
【００６３】
インタフェースコントローラ１５０はまた、ストレージ５００への通信リンクを実装し、これにより、インタフェースコントローラ１５０は、論理ブロック１０１ａ、１０１ｂ、１０１ｃからのリクエストを処理するために、ストレージ５００へのデータの読み出し及び書き込みを行うことができる。
【００６４】
図１は、ストレージ５００をＩａａＳコンピュータシステム１００及び管理コンピュータシステム２００の両方の外部の単一のストレージデバイスとして示しているが、これは一例にすぎず、ストレージ５００の正確な位置は重要ではなく、共用ストレージ５００は、ＩａａＳコンピュータシステム１００及び管理コンピュータシステム２００の内部及び外部の両方にあり、場合によってはそれぞれ異なる位置にある、複数のストレージデバイスの形態を取ってもよいことを理解されたい。重要なことは、論理ブロック１０１ａ、１０１ｂ、１０１ｃが、共用ストレージ５００から／へ直接、読み出し又は書き込みを行うことができず、その代わりに、インタフェースコントローラ１５０を介して、専用の物理的インタフェース１０２ａ、１０２ｂ、１０２ｃを介してリクエストを発行することによって行わなければならないことである。
【００６５】
ストレージ５００は、ＩａａＳコンピュータシステム１００の複数の異なるユーザのストレージニーズを処理するという点で、共用ストレージリソースである。異なるユーザは、異なる時間における同一の論理ブロックのユーザであってもよく、及び／又は同一又は異なる時間における異なる論理ブロックのユーザであってもよいことは理解されよう。
【００６６】
ＩａａＳコンピュータシステム１００の異なるユーザ間のセキュリティ分離を提供するために、各々のユーザは、彼らは使用（すなわち、読み出し及び書き込み）を許可されているが他のユーザは使用を許可されていないストレージ５００の記憶位置（例えば、ブロック又はバイト範囲）を有する。使用時には、インタフェースコントローラ１５０は、（管理コンピュータシステム２００によって示される）論理ブロック１０１ａ、１０１ｂ、１０１ｃの現在のユーザが使用を許可されている記憶位置の知識を有する。
【００６７】
インタフェースコントローラ１５０は、多くの異なる方法で、これらの記憶位置の知識を得ることができる。ある実装では、記憶位置は、ＩａａＳコンピュータシステム１００の異なるユーザに予め割り当てられ、インタフェースコントローラ１５０は、異なるユーザの各々が使用を許可されている記憶位置を知るように、（例えば、管理コンピュータシステム２００によって）予め設定される。他の実装では、管理コンピュータシステム２００が論理ブロックの現在のユーザの識別をインタフェースコントローラ１５０に提供するとき、論理ブロックのユーザが使用を許可されている記憶位置をもインタフェースコントローラ１５０に提供する。さらに、インタフェースコントローラ１５０は、ＩａａＳコンピュータシステム１００の新規又は既存のユーザに、以前に割り当てられていない記憶位置を割り当てることができてもよい。
【００６８】
さらに、インタフェースコントローラ１５０は、（管理コンピュータシステム２００によって示される）論理ブロックの現在のユーザが使用を許可されている記憶位置のみを使用する（すなわち、アクセス又は書き込みする）ことによって、論理ブロックからそれぞれの専用の物理的インタフェースを介して受信した読み出し及び書き込みのリクエストに応答する。この態様の正確な実装は、変化し得る。例えば、ある実装では、論理ブロックのユーザが何らかの読み出し／書き込みのリクエストを発行する前に、インタフェースコントローラ１５０は、（管理コンピュータシステム２００によって示される）論理ブロックのユーザが使用を許可されている記憶位置（例えば、ブロック又はバイト範囲）を論理ブロックに提供する。続いて、インタフェースコントローラ１５０は、読み出し及び書き込みのリクエスト内の論理ブロックによって特定される記憶位置が、ユーザが使用を許可されている記憶位置に対応することを検証し、検証されたリクエストのみをプロキシする。他の実装では、各々の論理ブロックは、論理ブロックのユーザに関係なく、任意の（例えば、事前定義された）記憶位置を特定するように事前に構成される（例えば、論理的にハード配線される）。例えば、論理ブロックは、論理ブロック内にあるＲＯＭにプログラムされた記憶位置を使用してもよく、或いはそれらの記憶位置は、論理ブロックのハード配線された回路によって提供されてもよい。これらの実施形態では、インタフェースコントローラ１５０は、論理ブロックによって発行されたリクエストで特定される任意の記憶位置を、論理ブロックのユーザが使用を許可されている記憶位置に変換する。
【００６９】
上述したＩａａＳシステム１００及び管理コンピュータシステム２００の動作を説明するために、実施例を提供する。
【００７０】
所与の時間（Ｔ１）に、ＩａａＳコンピュータシステム１００の顧客（顧客Ａ）は、使用のために特定の論理ブロック（例えば、論理ブロック１０１ａ）が割り当てられている。ＩａａＳコンピュータシステム１００が複数の論理ブロックを含む場合、他の顧客（顧客Ｂ）は、時間Ｔ１において他の論理ブロック（例えば、論理ブロック１０１ｂ）を割り当てられていてもよい。
【００７１】
インタフェースコントローラ１５０は、管理コンピュータシステム２００から、顧客Ａを（時間Ｔ１における）論理ブロック１０１ａの現在のユーザとして識別する情報を受信する。同様に、インタフェースコントローラ１５０は、管理コンピュータシステム２００から、顧客Ｂを論理ブロック１０１ｂの現在のユーザとして識別する情報を受信する。インタフェースコントローラ１５０と管理コンピュータシステム２００との間の通信リンク３００がインタフェースコントローラ１５０と論理ブロック１０１ａ、１０１ｂとの間の専用の物理的インタフェース１０２ａ、１０２ｂから完全に独立しているので、論理ブロック１０１ａ、１０１ｂは、インタフェースコントローラ１５０が管理コンピュータシステム２００から受信する識別情報に影響を及ぼすことができない。したがって、インタフェースコントローラ１５０は、論理ブロック１０１ａ、１０１ｂの現在のユーザの識別を確実に知ることができる。また、管理コンピュータシステム２００は、顧客Ａ及び顧客Ｂが使用を許可されている記憶位置を識別してもよい。あるいは、インタフェースコントローラ１５０は、情報を予め設定されていてもよい。
【００７２】
共用ストレージリソース５００へのデータの読み出し及び書き込みを行うために、顧客Ａの論理ブロック１０１ａは、論理ブロック１０１ａの専用の物理的インタフェース１０２ａを介して、インタフェースコントローラ１５０を介して読み出し及び書き込みのリクエストを発行する。同様に、共用ストレージリソース５００へのデータの読み出し及び書き込みを行うために、顧客Ｂの論理ブロック１０１ｂは、論理ブロック１０１ｂの専用の物理的インタフェース１０２ｂを介して、インタフェースコントローラ１５０を介して読み出し及び書き込みのリクエストを発行する。
【００７３】
インタフェースコントローラ１５０は、論理ブロック１０１ａによって発行された読み出し及び書き込みのリクエストを、専用の物理的インタフェース１０２ａを介して受信する。インタフェース１０２ａの専用の物理的な性質のために、インタフェースコントローラ１５０は、インタフェース１０２ａを介して受信したリクエストが論理ブロック１０１ａによって発行されたことを絶対的に確信することができる。言い換えると、インタフェースコントローラ１５０は、リクエストの送信元の判定を、受信したデータの内容ではなく、リクエストを受信したインタフェースに基づいて行う。これは、論理ブロック１０１ａが（論理ブロック１０１ｂなどの）他のエンティティを偽装することができず、同様に（論理ブロック１０１ｂなどの）他のエンティティが論理ブロック１０１ａを偽装することができないことを意味する。同様に、インタフェースコントローラ１５０は、論理ブロック１０１ｂによって発行された読み出し及び書き込みのリクエストを、専用の物理的インタフェース１０２ｂを介して受信する。インタフェース１０２ｂの専用の物理的な性質のために、インタフェースコントローラ１５０は、インタフェース１０２ｂを介して受信したリクエストが論理ブロック１０１ｂによって発行されたことを絶対的に確信することができる。
【００７４】
インタフェースコントローラ１５０は、それから、インタフェース１０２ａを介して論理ブロック１０１ａから受信したリクエストを、ユーザ、すなわち管理コンピュータシステム２００によって示される論理ブロック１０１ａの現在のユーザである顧客Ａに関連付けることができる。同様に、インタフェースコントローラ１５０は、インタフェース１０２ｂを介して論理ブロック１０１ｂから受信したリクエストを、ユーザ、すなわち管理コンピュータシステム２００によって示される論理ブロック１０１ｂの現在のユーザである顧客Ｂに関連付けることができる。
【００７５】
最後に、インタフェースコントローラ１５０は、顧客Ａによって発行された読み出し及び書き込みのリクエストを処理する。その中で、インタフェースコントローラ１５０は、顧客Ａが使用を許可されている共用ストレージ５００の記憶位置のみを使用し（読み出し／書き込みを行い）、顧客Ａが使用を許可されていない共用ストレージの記憶位置への読み出し又は書き込みを決して行わない。同様に、インタフェースコントローラ１５０は、顧客Ｂが使用を許可されている共用ストレージ５００の記憶位置のみを使用して、顧客Ｂによって発行された読み出し及び書き込みのリクエストを処理する。このようにして、ＩａａＳコンピュータシステム１００は、ＩａａＳコンピュータシステム１００の複数の異なる顧客がストレージリソース５００を共用することを可能にするが、異なる顧客間の隔離を維持する。
【００７６】
その後、Ｔ２において、インタフェースコントローラ１５０は、管理コンピュータシステム２００から、論理ブロック１０１ａの新しいユーザである顧客Ｃを識別する情報を受信する。したがって、インタフェースコントローラ１５０は、論理ブロック１０１ａによって発行される後続の読み出しリクエスト及び書き込みのリクエストに、顧客Ｃが使用を許可されている共用ストレージ５００の記憶位置のみを使用することによって、応答する。言い換えると、ＩａａＳコンピュータシステムの論理ブロックの現在のユーザが顧客Ａから顧客Ｃに変更されると、インタフェースコントローラ１５０は、顧客Ａが使用を許可されている記憶位置への読み出し／書き込みのリクエストのプロキシを停止し、代わりに、顧客Ｃが使用を許可されている記憶位置への読み出し／書き込みのリクエストをプロキシする。
【００７７】
図２は、ＩａａＳコンピュータシステム１００がコントロール接続１０３ａ、１０３ｂ、１０３ｃをさらに含む実施形態を示す。
【００７８】
図からわかるように、図２のＩａａＳコンピュータシステム１００は、図１のＩａａＳコンピュータシステム１００と同じ構成要素、接続、及びインタフェースを含むが、論理ブロック１０１ａ、１０１ｂ、１０１ｃをインタフェースコントローラ１５０に接続するコントロール接続１０３ａ、１０３ｂ、１０３ｃをさらに含む。インタフェースコントローラ１５０は、コントロール接続１０３ａ、１０３ｂ、１０３ｃを使用して、それぞれの論理ブロック１０１ａ、１０１ｂ、１０１ｃを電源投入することができ、それぞれの論理ブロックを電源切断することができ、或いはそれぞれの論理ブロックをリセットすることができる。特に、コントロール接続１０３ａ、１０３ｂ、１０３ｃは、インタフェースコントローラ１５０が論理ブロックを非アクティブ状態から独立して電源投入すること、又は論理ブロックを独立してリセットすることを可能にする。
【００７９】
本明細書で使用される「リセット」という用語は、論理ブロック１０１ａ、１０１ｂ、１０１ｃのパワーサイクル（論理ブロックを電源切断してから、論理ブロックを電源投入するシーケンス）と、「ハードウェアリセット」との両方を含む。ハードウェアリセットは、電源切断／電源投入のシーケンスを経ることなく、論理ブロックにその初期起動プロセスを実行させるハードウェアレベルの方法である。
【００８０】
本明細書で使用される「電源投入（power-up）」という用語は、論理ブロックが比較的長時間インアクティブな状態にあった、インアクティブ、電源切断状態から、論理ブロックを電源投入することを指す。論理ブロックが電源投入されるときはいつでも、電源投入がいずれかの時点で電源切断によって先行されることを理解されたい。しかしながら、「電源投入」という用語は、本明細書では、先行する電源切断後に比較的短時間で電源投入が起こるパワーサイクルリセットとは対照的に使用される。
【００８１】
各々のコントロール接続１０３ａ、１０３ｂ、１０３ｃは、インタフェースコントローラ１５０を、それぞれの論理ブロック１０１ａ、１０１ｂ、１０１ｃを実装する１つ又は複数の集積回路の電圧入力ピンに接続していてもよい。このようにして、インタフェースコントローラ１５０は、論理ブロック１０１ａ、１０１ｂ、１０１ｃを実装する１つ又は複数の集積回路に電圧が印加されるか否かを制御することができ、これによって、それぞれの論理ブロック１０１ａ、１０１ｂ、１０１ｃの電力状態を制御することができる。
【００８２】
代替的に又は追加的に、各々のコントロール接続１０３ａ、１０３ｂ、１０３ｃは、インタフェースコントローラ１５０を、それぞれの論理ブロック１０１ａ、１０１ｂ、１０１ｃを実装する集積回路のハードウェアリセットピンに接続していてもよい。ハードウェアリセットピンに電圧をローに引いて電圧をハイに戻すことによって、それぞれの論理ブロック１０１ａ、１０１ｂ、１０１ｃがリセットされる。
【００８３】
インタフェースコントローラ１５０は、図２には示されていない電力管理集積回路（ＰＭＩＣ）を含んでもよい。インタフェースコントローラがＰＭＩＣを含む場合、コントロール接続１０３ａ、１０３ｂ、１０３ｃは、ＰＭＩＣを、それぞれの論理ブロック１０１ａ、１０１ｂ、１０１ｃを実装する１つ又は複数の集積回路の電圧入力ピン及び／又はハードウェアリセットピンに接続していてもよい。
【００８４】
ある実施形態によれば、インタフェースコントローラ１５０は、管理コンピュータシステム２００から命令を受信することに応答して、ＩａａＳシステム１００の異なる顧客が使用するためにそれぞれの論理ブロック１０１ａ、１０１ｂ、１０１ｃを準備するように、コントロール接続１０３ａ、１０３ｂ、１０３ｃを使用して、それぞれの論理ブロック１０１ａ、１０１ｂ、１０１ｃを電源投入又はリセットするように構成されている。電源投入又はリセットの前に論理ブロックで実行されているソフトウェアプロセスは、電源投入又はリセットの後まで残存せず、したがって、新しい顧客による使用の前に論理ブロックをフラッシュする効果を有し、異なる顧客を複数の時点にわたって隔離するのに役立つ。
【００８５】
これらの実施形態では、管理コンピュータシステム２００は、異なる顧客（顧客Ｂ）が使用するために論理ブロック１０１ａ、１０１ｂ、１０１ｃを準備すべく、以下のステップを行うようにインタフェースコントローラ１５０に命令することができる。
ｉ）論理ブロックから共用ストレージ設備への読み出し及び書き込みのリクエストをプロキシすることを一時的に停止する。
ｉｉ）それぞれのコントロール接続を使用して論理ブロックをリセットする。
ｉｉｉ）論理ブロックからの後続の読み出し及び書き込みのリクエストに応答して、顧客Ｂに割り当てられている共用ストレージ設備の記憶位置のみへの読み出し及び書き込みを行うようにする。
【００８６】
上述の図１の説明から理解されるように、ステップ３は、インタフェースコントローラ１５０が、論理ブロックによって特定された任意の事前定義された記憶位置を、顧客Ｂが使用を許可されている記憶位置に変換することを含んでもよい。任意の事前定義された記憶位置は、論理ブロック１０１ａ、１０１ｂ、１０１ｃのハード配線された回路によって提供されてもよく、或いは論理ブロック１０１ａ、１０１ｂ、１０１ｃのＲＯＭに記憶されていてもよい。
【００８７】
あるいは、論理ブロックのリセットの後、インタフェースコントローラ１５０は、論理ブロックに、（管理コンピュータシステム２００によって識別される）論理ブロックのユーザが使用を許可されている記憶位置を提供してもよく、その後、その読み出し及び書き込みのリクエストにおいて論理ブロックによって特定される記憶位置を検証してもよい。これらの実施形態では、論理ブロック１０１ａ、１０１ｂ、１０１ｃのハード配線された回路又はそれらのＲＯＭに記憶された命令は、電源投入時又はリセット時に、論理ブロック１０１ａ、１０１ｂ、１０１ｃに、それらの専用の物理的インタフェース１０２ａ、１０２ｂ、１０２ｃを介して、インタフェースコントローラ１５０から記憶位置を探させてもよい。
【００８８】
好ましくは、論理ブロック１０１ａ、１０１ｂ、１０１ｃは、論理ブロック１０１ａ、１０１ｂ、１０１ｃの電源投入又はリセットの直後に、それぞれの専用の物理的インタフェース１０２ａ、１０２ｂ、１０２ｃを介してインタフェースコントローラ１５０から起動命令を探すように論理的にハード配線される。このようにして、インタフェースコントローラ１５０は、論理ブロックの現在のユーザが変更されるときに、論理ブロック１０１ａ、１０１ｂ、１０１ｃによって実行される起動命令に対する制御を有する。図３を参照して以下でより詳細に説明されるように、これは、「クリーン」であることが分かっている起動命令を実行した結果として生じる「既知の良好」状態に、論理ブロックを配置するために使用されることができ、及び／又は管理コンピュータシステム２００によって識別される論理ブロックのユーザに応じて、ユーザ固有の起動命令を論理ブロックに提供するために使用されることができる。ただし、論理ブロック１０１ａ、１０１ｂ、１０１ｃの起動シーケンスは、複数の時点にわたるユーザ間の隔離レベルを低下させる可能性があるため、論理ブロック内の専用の永続性ストレージに依存しないことが重要である。
【００８９】
本明細書で使用される「論理的にハード配線される（logically hardwired）」という用語は、電源投入時又はリセット時の論理ブロックの動作が、電源投入又はリセット前の時点に論理ブロックで実行されているソフトウェアによって変更されることがない様々な実装を指すことは理解されよう。代わりに、動作は、装置の内部にアクセスすることによってのみ変更され得る。論理的にハード配線された機能の例には、ＡＳＩＣ、ＰＬＤの使用、及びＲＯＭに格納されたソフトウェア命令の使用が含まれる。
【００９０】
図２では、管理コンピュータシステム２００が、ＩａａＳコンピュータシステム１００のインタフェースコントローラ１５０に接続される管理ネットワーク３００の一部として示されていることに留意されたい。しかしながら、これは必須ではなく、管理コンピュータシステム２００は、例えば、図１を参照して上述したように、ＩａａＳコンピュータシステム１００の一部とされ得ることを理解されたい。
【００９１】
図３は、ＩａａＳコンピュータシステム１００の論理ブロック１０１が、専用の永続性ストレージ１０４へのアクセス及び場合によっては他の周辺装置１０５へのアクセスを有する実施形態を示す。図３は単一の論理ブロック１０１を示しているが、これは説明を容易にするためだけの目的であることを理解されたい。本明細書で説明されるいずれの実施形態においても、論理ブロックの数は１つであってもよく、或いは２つ以上の任意の数であってもよい。
【００９２】
ＩａａＳコンピュータシステム１００の論理ブロック１０１に独自の永続性ストレージ１０４を設けることは必須ではないが、顧客がＩａａＳコンピュータシステムの使用のセッションにおいて、よりローカルにデータを記憶することを可能にするため、ある状況では望ましい場合がある。典型的には、読み出し及び書き込みのリクエストが、専用の永続性ストレージ１０４に対して行われる場合、より迅速に完了されるので、ユーザにとって便利であり、また、システムの性能を向上させることができる。しかしながら、論理ブロック１０１に専用の永続性ストレージ１０４を設けることは、複数の時点にわたる顧客間の隔離を低減する可能性を有する。特に、顧客Ａが時間Ｔ１で論理ブロック１０１を使用し、永続性ストレージ１０４にデータを書き込んだ後、顧客Ｂが時間Ｔ２で論理ブロック１０１を使用すると、顧客Ｂは顧客Ａのデータにアクセスしたり変更したりすることができる。同様に、顧客Ａのプロセスが、時間Ｔ２まで持続し、顧客Ｂのデータにアクセスし得る。実施形態は、複数の時点にわたるセキュリティ分離を維持しながら、論理ブロック１０１への専用の永続性ストレージ１０４の提供を可能にする。
【００９３】
第１に、論理ブロック１０１の起動シーケンスは、提供される永続性ストレージ１０４に依存すべきではない。例えば、上述したように、論理ブロック１０１は、電源投入時又はリセット時に専用の物理的インタフェース１０２を介してその起動命令を探すように論理的にハード配線されてもよく、それによって、永続性ストレージに記憶され得るデータへの依存性を排除してもよい。
【００９４】
第２に、顧客Ｂが顧客Ａのデータにアクセスすることを防止するための措置が講じられるべきである。これは顧客に永続性ストレージ１０４に記憶されているデータを暗号化することをリクエストすることによって達成され得るが、代替のアプローチとして、論理ブロック１０１の使用が顧客Ｂに割り当てられた後に顧客Ａのデータが回復可能でないことを保証することがある。一実装では、論理ブロック１０１のユーザが顧客Ａから顧客Ｂに切り替えられるときに、これが達成される。
ｉ）管理コンピュータシステム２００は、インタフェースコントローラ１５０に、コントロール接続１０３を使用して論理ブロック１０１をリセットするように命令する。これにより、論理ブロック１０１は、専用の物理的インタフェース１０２を介して起動命令をリクエストする。
ｉｉ）インタフェースコントローラ１５０は、実行されると論理ブロックに永続性ストレージ１０４を上書きさせて顧客Ａのデータを回復可能ではなくす起動命令を、論理ブロック１０１に提供する。この起動命令は、管理コンピュータシステム２００によって設定されてもよく、インタフェースコントローラ１５０は、起動命令を含むストレージに論理ブロック１０１を読み出し専用の方法で接続することによって、命令を提供してもよい。
ｉｉｉ）管理コンピュータシステム２００は、インタフェースコントローラ１５０に、コントロール接続１０３を使用して論理ブロック１０１をリセットするように命令する。これにより、論理ブロック１０１は、専用の物理的インタフェース１０２を介して起動命令をリクエストする。あるいは、インタフェースコントローラ１５０に、論理ブロック１０１を再びリセットするように命令するのではなく、上記のステップ（ｉｉ）でコントローラ１５０によって提供される命令が、実行されると論理ブロック１０１に他の起動命令のセットを探させる最終命令を含むことができる。言い換えれば、ステップ（ｉｉ）でコントローラ１５０によって提供される命令は、顧客Ａのデータが回復可能でないように永続性ストレージ１０４を上書きした後に、以下のステップ（ｉｖ）において提供される、ブートイメージの残りを論理ブロック１０１に探させる「ブートローダ（boot loader）」であってもよい。
ｉｖ）インタフェースコントローラ１５０は、論理ブロック１０１に、動作のための起動命令を提供する。これは、顧客Ｂが使用を許可されている記憶位置において、共用ストレージ設備５００に記憶される、ユーザ固有の起動命令であってもよい。あるいは、それは、論理ブロック１０１が「既知の良好」状態に起動されるように、管理コンピュータシステム２００によってセットされる「クリーン」な起動命令であってもよい。
【００９５】
このようにして、実施形態は、異なる顧客によって使用されるＩａａＳコンピュータシステムが、所与の時点における顧客と複数の時点にわたる顧客との間の高度な隔離を維持しながら、専用の永続性ストレージと共用の永続性ストレージとの両方をユーザに提供することを可能にする。
【００９６】
図４は、ＩａａＳコンピュータシステム１００が、インタフェースコントローラ１５０のネットワークインタフェースを介して、インターネットなどのネットワーク４００に接続されている実施形態を示す。
【００９７】
上述したように、共用ストレージリソースへのデータの読み出し及び書き込みのリクエストを処理することに加えて、インタフェースコントローラ１５０は、論理ブロック１０１ａ、１０１ｂ、１０１ｃ間の通信を、ネットワーク４００を介して、ＩａａＳコンピュータシステム１００の外部にある任意の他のコンピュータにルーティングする役割を果たし得る。
【００９８】
これを達成するために、ＩａａＳコンピュータシステムは、各々の論理ブロック１０１ａ、１０１ｂ、１０１ｃとインタフェースコントローラとの間に他の専用の物理的インタフェース（図示せず）をさらに備えてもよい。それから、論理ブロック１０１ａ、１０１ｂ、１０１ｃは、適切なプロトコルに従って、この追加の専用の物理的インタフェースを介して、インタフェースコントローラ１５０との間で（ネットワークデータパケットなどの）ネットワークデータを送信及び受信してもよい。あるいは論理ブロック１０１ａ、１０１ｂ、１０１ｃは、ストレージへの読み出し及び書き込みのリクエストを発行するのと同じインタフェース、すなわち専用の物理的インタフェース１０２ａ、１０２ｂ、１０２ｃを介して、ネットワークデータを送信及び受信してもよい。これは、例えば時分割多重化を使用して、同じ物理的インタフェース１０２ａ、１０２ｂ、１０２ｃにおいて、（１つはストレージ用、１つはネットワークデータ用に）２つの異なるプロトコルを多重化することにより実行され得る。あるいは、これは、（ｉＳＣＳＩなどを使用して）ネットワークプロトコルを介してストレージプロトコルをトンネリングすること、或いは、（ＳＤＩＯなどを使用して）ストレージプロトコルを介してネットワークプロトコルをトンネリングすることにより実行され得る。
【００９９】
インタフェースコントローラ１５０は、典型的には、論理ブロック１０１ａ、１０１ｂ、１０１ｃとの通信によってコントローラが侵害されるリスクを低減するために、比較的単純なプロトコルを使用して、論理ブロック１０１ａ、１０１ｂ、１０１ｃに対してネットワークデータの送信及び受信を行う。しかしながら、インタフェースコントローラ１５０のネットワークインタフェースとネットワーク４００との間の通信は、ＨＴＴＰのような上位レベルのプロトコルを使用してもよい。
【０１００】
インタフェースコントローラ１５０は、論理ブロック１０１ａ、１０１ｂ、１０１ｃがインタフェースネットワークコントローラを介して送信及び受信するネットワーク通信に対するネットワークアクセスルールを実施してもよく、ネットワークアクセスルールには、（管理コンピュータシステム２００によって識別される）論理ブロックの現在のユーザの識別に基づくユーザ固有のネットワークアクセスルールが含まれる。たとえば、顧客Ａは、ポート２２宛てで、特定のＩＰアドレスから発信されたＴＣＰ通信のみが論理ブロックに転送されるようにリクエストしてもよく、一方で、顧客Ｂは、ポート８０へのＴＣＰ通信がソースアドレスとは無関係に論理ブロックに転送されるようにリクエストしてもよい。インタフェースコントローラ１５０は、使用前の時点で、管理コンピュータシステム２００によって、これらのユーザ固有のルールを有するように構成されていてもよい。追加的に又は代替的に、管理コンピュータシステム２００は、インタフェースコントローラに論理ブロックの現在／新規のユーザの識別を通知するときに、ユーザ固有のルールをインタフェースコントローラ１５０に提供してもよい。
【０１０１】
図４は論理ブロック１０１ａ、１０１ｂ、１０１ｃに接続された専用の永続性ストレージ又は他の周辺装置を示していないが、これは単に説明を容易にする目的であることに留意されたい。本明細書に記載されるいずれかの実施形態において、専用の永続性ストレージ１０４が存在してもよい。
【０１０２】
また、図４は、図１〜図３を参照して上述した共用ストレージ５００が実際には１つ又は複数の共用ストレージデバイス５００ａ、５００ｂ、５００ｃの形態をとることができ、それらは、論理ブロック１０１ａ、１０１ｂ、１０１ｃからインタフェースコントローラ１５０を介してアクセスされ得る限り、システムに対して任意の場所に配置され得ることを示すことにも留意されたい。例えば、共用ストレージは、ネットワークアタッチトストレージ（ＮＡＳ）５００ａと、管理ネットワーク３００の一部であるストレージ５００ｂと、ＩａａＳコンピュータシステム１００の一部であるストレージ５００ｃとを含んでもよい。
【０１０３】
様々な任意選択の特徴を有する数々の実施形態を上述した。任意の相互に排他的な特徴を除いて、任意選択の特徴のうちの１つ又は複数の任意の組み合わせが可能であることを理解されたい。
【図１】
2021510871.tif 000003
【図２】
2021510871.tif 000004
【図３】
2021510871.tif 000005
【図４】
2021510871.tif 000006
【国際調査報告】
2021510871.tif 000007
2021510871.tif 000008
2021510871.tif 000009