(57)【要約】【課題】ストレージ装置においてＮＡＳとＳＡＮとを効率的に統合できるようにする。【解決手段】仮想化ＯＳ２００上において、ＳＡＮ制御を行なうＳＡＮ用ＯＳ４００と、ＮＡＳ制御を行なうＮＡＳ用ＯＳ３００とを動作させる処理部と、ＮＡＳ用ＯＳ３００とＳＡＮ用ＯＳ４００との間でデータを授受するＯＳ間通信部５１０と、ＮＡＳ用ＯＳ３００において受信したＮＡＳ入出力要求を、前記ＯＳ間通信部５１０を介してＳＡＮ用ＯＳ４００に送信する送信制御部３１１と、ＳＡＮ用ＯＳ４００において、送信制御部３１１から受信したＮＡＳ入出力要求を処理するＮＡＳ要求処理部４４１とを備える。【選択図】図７
2015069352.tif 000002
【特許請求の範囲】
【請求項１】
仮想化オペレーティングシステム上において、ＳＡＮ制御を行なうＳＡＮ用オペレーティングシステムと、ＮＡＳ制御を行なうＮＡＳ用オペレーティングシステムとを動作させる処理部と、
前記ＮＡＳ用オペレーティングシステムと前記ＳＡＮ用オペレーティングシステムとの間でデータを授受するＯＳ間通信部と、
前記ＮＡＳ用オペレーティングシステムにおいて受信したＮＡＳ入出力要求を、前記ＯＳ間通信部を介して前記ＳＡＮ用オペレーティングシステムに送信する送信制御部と、
前記ＳＡＮ用オペレーティングシステムにおいて前記送信制御部から受信した前記ＮＡＳ入出力要求を処理するＮＡＳ要求処理部と、
を備えることを特徴とする、ストレージ制御装置。
【請求項２】
前記ＳＡＮ用オペレーティングシステムにおいて、
前記ＮＡＳ要求処理部によって処理された前記ＮＡＳ入出力要求に対する応答を、前記ＯＳ間通信部を介して前記ＮＡＳ用オペレーティングシステムに送信する応答制御部を備えることを特徴とする、請求項１記載のストレージ制御装置。
【請求項３】
前記ＯＳ間通信部は、
前記ＮＡＳ用オペレーティングシステムと前記ＳＡＮ用オペレーティングシステムとで共用される共用メモリと、
前記共用メモリにデータを書き込んだ後、データ送信先の前記ＳＡＮ用オペレーティングシステムもしくは前記ＮＡＳ用オペレーティングシステムに割り込み通知を行なう通知部と
を備えることを特徴とする、請求項１又は２記載のストレージ制御装置。
【請求項４】
前記ＮＡＳ用オペレーティングシステムに対する処理要求と前記ＳＡＮ用オペレーティングシステムに対する処理要求とを入力可能な入力画面において入力された処理要求を、前記ＳＡＮ用オペレーティングシステムもしくは前記ＮＡＳ用オペレーティングシステムにおいて処理した後に、当該処理結果を、前記ＯＳ間通信部を介して前記ＮＡＳ用オペレーティングシステムもしくは前記ＳＡＮ用オペレーティングシステムに送信することを特徴とする、請求項１〜３のいずれか１項に記載のストレージ制御装置。
【請求項５】
仮想化オペレーティングシステム上において、ＳＡＮ制御を行なうＳＡＮ用オペレーティングシステムと、ＮＡＳ制御を行なうＮＡＳ用オペレーティングシステムとを動作させ、
前記ＮＡＳ用オペレーティングシステムにおいて受信したＮＡＳ入出力要求を、ＯＳ間通信を介して前記ＳＡＮ用オペレーティングシステムに送信し、
前記ＳＡＮ用オペレーティングシステムにおいて受信した前記ＮＡＳ入出力要求を処理することを特徴とする、ストレージ制御方法。
【請求項６】
仮想化オペレーティングシステム上において、ＳＡＮ制御を行なうＳＡＮ用オペレーティングシステムと、ＮＡＳ制御を行なうＮＡＳ用オペレーティングシステムとを動作させ、
前記ＮＡＳ用オペレーティングシステムにおいて受信したＮＡＳ入出力要求を、オペレーティングシステム間通信を介して前記ＳＡＮ用オペレーティングシステムに送信し、
前記ＳＡＮ用オペレーティングシステムにおいて受信した前記ＮＡＳ入出力要求を処理する
処理をコンピュータに実行させることを特徴とする、ストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置，ストレージ制御方法及びストレージ制御プログラムに関する。
【背景技術】
【０００２】
ネットワークストレージシステムとして、ＮＡＳ（Network Attached Storage）やＳＡＮ（Storage Area Network）が知られている
既存のイーサネット（登録商標）ネットワークに接続するＮＡＳは、ＳＡＮに比べて管理は簡単だが、性能面で劣り、又、容量不足に陥ることが多い。一方ＳＡＮは、一般にＮＡＳに比べて高速で、より多くのデータ保存が可能だが高価である。
【０００３】
これらのＮＡＳとＳＡＮとのそれぞれの長所をうまく組み合わせ、データ保存の効率向上およびコスト削減を図るために、ＳＡＮとＮＡＳとを統合する手法が知られており、具体的には、ＮＡＳゲートウェイを備えることでＳＡＮとＮＡＳとの統合を実現している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２２０２１６号公報
【特許文献２】特表２００８−５３５０９９号公報
【特許文献３】国際公開第２００６／０２２１６１号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このような従来のストレージシステムにおいて、ＳＡＮとＮＡＳとを統合するためには、ＮＡＳゲートウェイとして機能させるためのサーバ機を備えることにより、システムを構成するコストが上昇するという課題がある。
また、このように、ＳＡＮとＮＡＳとをＮＡＳゲートウェイを設置することで統合したネットワークストレージシステムにおいては、ＳＡＮの設定とＮＡＳの設定とを個別に行なう必要があり、管理者による運用のための作業量が増大するという課題もある。
【０００６】
１つの側面では、本発明は、ストレージ装置においてＮＡＳとＳＡＮとを効率的に統合できるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【０００７】
このため、このストレージ制御装置は、仮想化オペレーティングシステム（Operating System；ＯＳ）上において、ＳＡＮ制御を行なうＳＡＮ用オペレーティングシステムと、ＮＡＳ制御を行なうＮＡＳ用オペレーティングシステムとを動作させる処理部と、前記ＮＡＳ用オペレーティングシステムと前記ＳＡＮ用オペレーティングシステムとの間でデータを授受するＯＳ間通信部と、前記ＮＡＳ用オペレーティングシステムにおいて受信したＮＡＳ入出力要求を、前記ＯＳ間通信部を介して前記ＳＡＮ用オペレーティングシステムに送信する送信制御部と、前記ＳＡＮ用オペレーティングシステムにおいて、前記送信制御部から受信した前記ＮＡＳ入出力要求を処理するＮＡＳ要求処理部とを備える。
【発明の効果】
【０００８】
一実施形態によれば、ストレージ装置においてＮＡＳとＳＡＮとを効率的に統合することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態の一例としてのストレージ装置のハードウェア構成を模式的に示す図である。
【図２】実施形態の一例としてのストレージ装置におけるハイパーバイザ上の複数のＯＳを模式的に示す図である。
【図３】実施形態の一例としてのストレージ装置におけるハイパーバイザ上のＮＡＳ用ＯＳ及びＳＡＮ用ＯＳの機能構成を模式的に示す図である
【図４】実施形態の一例としてのストレージ装置におけるゲストＯＳ間通信を説明する図である。
【図５】実施形態の一例としてのストレージ装置のハイパーバイザ上におけるＮＡＳ用ＯＳ及びＳＡＮ用ＯＳの詳細な機能構成を示す図である。
【図６】実施形態の一例としてのストレージ装置におけるボリューム作成画面を例示する図である。
【図７】実施形態の一例としてのストレージ装置におけるＳＡＮ用ＯＳの機能構成を模式的に示す図である。
【図８】実施形態の一例としてのストレージ装置における処理の一例を説明するシーケンス図である。
【図９】実施形態の一例としてのストレージ装置におけるＮＡＳ専用ボリュームの作成処理を説明するシーケンス図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本ストレージ制御装置，ストレージ制御方法及びストレージ制御プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１１】
図１は実施形態の一例としてのストレージ装置１のハードウェア構成を模式的に示す図である。
本ストレージ装置１は、ドライブエンクロージャ（ＤＥ：Drive Enclosure）３０に格納された記憶装置３１を仮想化して、仮想ストレージ環境を形成する。そしてストレージ装置１は、仮想ボリュームを上位装置である図示しないホスト装置に提供する。
【００１２】
本ストレージ装置１は、１以上のホスト装置に対して通信可能に接続されている。ホスト装置とストレージ装置１とは、後述するＣＡ（Communication Adapter）１０１，１０２により接続されている。
ホスト装置は、例えば、サーバ機能をそなえた情報処理装置であり、本ストレージ装置１との間において、ＮＡＳやＳＡＮのコマンドを送受信する。このホスト装置は、例えば、ストレージ装置１に対してＮＡＳにおけるリード／ライト等のディスクアクセスコマンドを送信することにより、ストレージ装置１が提供するボリュームにデータの書き込みや読み出しを行なう。
【００１３】
そして、本ストレージ装置１は、ホスト装置からボリュームに対して行なわれる入出力要求（例えば、リードコマンドやライトコマンド）に応じて、このボリュームに対応する実ストレージに対して、データの読み出しや書き込み等の処理を行なう。なお、ホスト装置からの入出力要求のことをＩ／ＯコマンドもしくはＩ／Ｏ要求という場合がある。
本ストレージ装置１は、図１に示すように、複数（本実施形態では２つ）のＣＭ（Controller Module）１００ａ，１００ｂ及び１つ以上（図１に示す例では１つ）のドライブエンクロージャ３０をそなえる。
【００１４】
ドライブエンクロージャ３０は、１以上（図１に示す例では４つ）の記憶装置（物理ディスク）３１を搭載可能であり、これらの記憶装置３１の記憶領域（実ボリューム，実ストレージ）を、本ストレージ装置１に対して提供する。
例えば、ドライブエンクロージャ３０は、複数段のスロット（図示省略）をそなえ、これらのスロットに、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の記憶装置３１を挿入することにより、実ボリューム容量を随時変更することができる。又、複数の記憶装置３１を用いてＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を構成することができる。
【００１５】
ドライブエンクロージャ３０は、ＣＭ１００ａのデバイスアダプタ（Device Adapter：ＤＡ）１０３，１０３とＣＭ１００ｂのＤＡ１０３，１０３とそれぞれ接続されている。そして、ドライブエンクロージャ３０には、ＣＭ１００ａ，１００ｂのいずれからもアクセスして、データの書き込みや読み出しを行なうことができる。すなわち、ドライブエンクロージャ３０の記憶装置３１に対して、ＣＭ１００ａ，１００ｂのそれぞれを接続することにより、記憶装置へのアクセス経路が冗長化されている。
【００１６】
コントローラエンクロージャ４０は、１以上（図１に示す例では２つ）のＣＭ１００ａ，１００ｂを備える。
ＣＭ１００ａ，１００ｂは、ストレージ装置１内の動作を制御するコントローラ（ストレージ制御装置）であり、ホスト装置から送信されるＩ／Ｏコマンドに従って、ドライブエンクロージャ３０の記憶装置３１へのアクセス制御等、各種制御を行なう。又、ＣＭ１００ａ，１００ｂは互いにほぼ同様の構成を有している。以下、ＣＭを示す符号としては、複数のＣＭのうち１つを特定する必要があるときには符号１００ａ，１００ｂを用いるが、任意のＣＭを指すときには符号１００を用いる。又、ＣＭ１００ａをＣＭ＃１と、ＣＭ１００ｂをＣＭ＃２と、それぞれ表す場合がある。
【００１７】
また、図中、同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
ＣＭ１００ａ，１００ｂは二重化されており、通常は、ＣＭ１００ａがプライマリとして各種制御を行なう。しかし、このプライマリＣＭ１００ａの故障時には、セカンダリのＣＭ１００ｂがプライマリとしてＣＭ１００ａの動作を引き継ぐ。
【００１８】
ＣＭ１００ａ，１００ｂはＣＡ１０１，１０２を介して、それぞれホスト装置に接続される。そして、これらのＣＭ１００ａ，１００ｂは、ホスト装置から送信されるリード／ライト等のコマンドを受信し、ＤＡ１０３等を介して記憶装置３１の制御を行なう。又、ＣＭ１００ａ，１００ｂは、PCI Express 等の図示しないインタフェースを介して相互に接続されている。
【００１９】
ＣＭ１００は、図１に示すように、ＣＡ１０１，１０２と複数（図１に示す例では２つ）のＤＡ１０３，１０３とをそなえるとともに、ＣＰＵ（Central Processing Unit）１１０，メモリ１０６，ＳＳＤ１０７及びＩＯＣ１０８をそなえる。
ＣＡ１０１，１０２は、ホスト装置等から送信されたデータを受信したり、ＣＭ１００から出力するデータをホスト装置等に送信する。すなわち、ＣＡ１０１，１０２は、ホスト装置等の外部装置との間でのデータの入出力（Ｉ／Ｏ）を制御する。
【００２０】
ＣＡ１０１は、ＮＡＳを介してホスト装置と通信可能に接続するネットワークアダプタであり、例えば、ＬＡＮ（Local Area Network）インタフェース等である。
ＣＭ１００は、このＣＡ１０１により図示しない通信回線を介してホスト装置等とＮＡＳにより接続され、Ｉ／Ｏコマンドの受信やデータの送受信等を行なう。図１に示す例においては、ＣＭ１００ａ，１００ｂのそれぞれに２つのＣＡ１０１，１０１がそなえられている。
【００２１】
ＣＡ１０２は、ＳＡＮを介してホスト装置と通信可能に接続するネットワークアダプタであり、例えば、ｉＳＣＳＩインタフェースやＦＣ（Fibre Channel）インタフェースである。
ＣＭ１００は、このＣＡ１０１により図示しない通信回線を介してホスト装置等とＳＡＮにより接続され、Ｉ／Ｏコマンドの受信やデータの送受信等を行なう。図１に示す例においては、ＣＭ１００ａ，１００ｂのそれぞれに１つのＣＡ１０２がそなえられている。
【００２２】
ＤＡ１０３は、ドライブエンクロージャ３０や記憶装置３１等と通信可能に接続するためのインタフェースである。ＤＡ１０３は、ドライブエンクロージャ３０の記憶装置３１が接続され、ＣＭ１００は、ホスト装置から受信したＩ／Ｏコマンドに基づき、これらの記憶装置３１に対するアクセス制御を行なう。
ＣＭ１００は、このＤＡ１０３を介して、記憶装置３１に対するデータの書き込みや読み出しを行なう。又、図１に示す例においては、ＣＭ１００ａ，１００ｂのそれぞれに２つのＤＡ１０３，１０３がそなえられている。そして、ＣＭ１００ａ，１００ｂのそれぞれにおいて、各ＤＡ１０３にドライブエンクロージャ３０が接続されている。
【００２３】
これにより、ドライブエンクロージャ３０の記憶装置３１には、ＣＭ１００ａ，１００ｂのいずれからもデータの書き込みや読み出しを行なうことができる。
ＳＳＤ１０７は、ＣＰＵ１１０が実行するプログラムや種々のデータ等を格納する記憶装置である。
メモリ１０６は、種々のデータやプログラムを一時的に格納する記憶装置であり、図示しないメモリ領域とキャッシュ領域とをそなえる。キャッシュ領域は、ホスト装置から受信したデータや、ホスト装置に対して送信するデータを一時的に格納する。メモリ領域には、ＣＰＵ１１０がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。
【００２４】
ＩＯＣ（Input Output Controller）１０８は、ＣＭ１００内におけるデータ転送を制御する制御装置であり、例えば、メモリ１０６に格納されたデータをＣＰＵ１１０を介することなく転送させるＤＭＡ転送（Direct Memory Access）を実現する。
ＣＰＵ１１０は、種々の制御や演算を行なう処理装置であり、マルチコアプロセッサ（マルチＣＰＵ）である。ＣＰＵ１１０は、ＳＳＤ１０７等に格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。
【００２５】
ＣＰＵ１１０は、仮想化ＯＳであるハイパーバイザ（Hypervisor）２００を実行し、このハイパーバイザ上で複数の仮想マシン（Virtual Machine；ＶＭ）を実行することで複数のＯＳを実行させることができる。以下、このハイパーバイザ２００上で動作するＯＳをゲストＯＳ（Guest OS）もしくはＧＯＳという場合がある。
複数のゲストＯＳはＣＰＵ１１０やメモリ１０６，ＳＳＤ１０７等のハードウェア資源を共有することができる。
【００２６】
なお、複数のＣＰＵ１１０を備え、これらの複数のＣＰＵ１１０上でハイパーバイザ２００を実行してもよい。
図２は実施形態の一例としてのストレージ装置１におけるハイパーバイザ２００上の複数のＯＳを模式的に示す図である。
本実施形態においては、図２に示すように、ハイパーバイザ２００上で、ＳＡＮ用ＯＳ４００とＮＡＳ用ＯＳ３００とを実行する。
【００２７】
ＳＡＮ用ＯＳ４００は、ＳＡＮ制御を行なうＯＳであり、カーネル４０１とファンクションファームウェア４０２とを備える。ＳＡＮ用ＯＳ４００としては既知の種々のＯＳを用いることができるが、本実施形態においてはＷｉｎｄ  Ｒｉｖｅｒ社のＶｘＷｏｒｋｓ（登録商標）を用いた例を示す。
ＮＡＳ用ＯＳ３００は、ＮＡＳ制御を行なうＯＳであり、カーネル３０１とファンクションファームウェア３０２とを備える。ＮＡＳ用ＯＳ３００としては既知の種々のＯＳを用いることができるが、本実施形態においてはＬｉｎｕｘ（登録商標）を用いた例を示す。
【００２８】
そして、ＣＰＵ１１０が、ストレージ制御プログラムを実行することにより、上述したハイパーバイザ２００，ＳＡＮ用ＯＳ４００及びＮＡＳ用ＯＳ３００として機能する。
なお、これらのハイパーバイザ２００，ＳＡＮ用ＯＳ４００及びＮＡＳ用ＯＳ３００としての機能を実現するためのプログラム（ストレージ制御プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００２９】
ハイパーバイザ２００，ＳＡＮ用ＯＳ４００及びＮＡＳ用ＯＳ３００としての機能を実現する際には、内部記憶装置（本実施形態ではメモリ１０６やＳＳＤ１０７）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１１０）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００３０】
図３は実施形態の一例としてのストレージ装置１におけるハイパーバイザ２００上のＮＡＳ用ＯＳ３００及びＳＡＮ用ＯＳ４００の機能構成を模式的に示す図である。
ＮＡＳ用ＯＳ３００は、図３に示すように、Ｓａｍｂａ／ＮＦＳサーバソフトウェア３５０，ファイルシステム３４０，ＯＳシステム制御部３９０及びＳＣＳＩドライバ群３６０を備える。
【００３１】
一方、ＳＡＮ用ＯＳ４００は、インテリジェントＣＡエージェント４１０を備える。又、ＮＡＳ用ＯＳ３００とＳＡＮ用ＯＳ４００とを連結するＧＯＳ間通信部５００が備えられている。
Ｓａｍｂａ／ＮＦＳサーバソフトウェア３５０は、ファイルシステムベースのアプリケーションであり、ホスト装置から受信したＮＡＳのＩ／Ｏ要求をＳａｍｂａやＮＦＳで受信して、ファイルシステム３４０に受け渡す。
【００３２】
ファイルシステム３４０は、例えば、ＶＦＳ（Virtual file system）やｅｘｔ３等のファイルシステムであり、Ｓａｍｂａ／ＮＦＳサーバソフトウェア３５０から受け取ったＩ／Ｏ要求を関連するローカルファイルシステムごとのＡＰＩに変換し、ＳＣＳＩドライバ群３６０に受け渡す。
ＯＳシステム制御部３９０は、ＮＡＳ用ＯＳとしての一般的な各種制御を行なうものであり、例えば、デバイスの追加要求等のイベント要求をＳＣＳＩドライバ群３６０（ＬＬＤ３１０）に発行する。
【００３３】
ＳＣＳＩドライバ群３６０は、ＳＣＳＩデバイスを制御するための複数のドライバである。
ＳＣＳＩドライバ群３６０は、図３に示すように、ＵＬＤ（Upper Level  Driver；上位層）３３０，ＭＬＤ（Middle Level Driver；中位層）３２０及びＬＬＤ（Lower Level Driver；下位層）３１０の３階層で構成された階層化アーキテクチャを有する。
【００３４】
ＵＤＬ３３０は、ＳＣＳＩのカーネルと主要なデバイス・タイプのドライバの最上位レベルのインタフェースを備える。
このＵＬＤ３３０には、ＳＤ，ＳＲ，ＳＴ及びＳＧの４種のドライバが用意されており、これらのドライバは、ＳＣＳＩデバイスの種類によって使い分けられる。ここで、ＳＤはＨＤＤへのアクセス時に使用され、ブロック型である。ＳＲは、ＣＤ−ＲＯＭへのアクセス時に使用され、ブロック型である。ＳＴは、テープ装置へのアクセス時に使用され、ブロック型である。ＳＧは、ホストバスアダプタ（ハード）を介さない場合に使用される擬似ホストアダプタであり、キャラクタ型である。
【００３５】
ＭＤＬ３２０は、ＵＬＤ３３０とＬＬＤ３１０とに向けてＳＣＳＩドライバＡＰＩ（Application Programming Interface，ライブラリ）を提供する。ＳＣＳＩドライバはこのＭＬＤ３２０を読み出して制御を行なう。
ＬＬＤ３１０は、ＳＣＳＩに適用可能な物理インタフェースに対応する実際のドライバを備え、ホストバスアダプタに相当する。ＬＬＤ３１０は、ハードインタフェースを制御するドライバ層であり、使用されるドライバは装置固有である。例えば、このＬＬＤ３１０には、図５に示すように、ｉＳＣＳＩドライバ３１３やＦＣドライバ３１２が備えられる。更に、本ストレージ装置１においては、このＬＬＤ３１０にインテリジェントＳＣＳＩドライバ３１１を備える。なお、ＵＬＤ３３０やＭＬＤ３２０には既存のＬｉｎｕｘドライバを使用することができる。
【００３６】
ホスト装置からのＩ／Ｏ要求は、ＮＡＳ用ＯＳ３００において、図３に示すように、Ｓａｍｂａ／ＮＦＳサーバソフトウェア３５０，ファイルシステム３４０、ＵＬＤ３３０及びＭＬＤ３２０を介してＬＬＤ３１０のインテリジェントＳＣＳＩドライバ３１１に到達する。
インテリジェントＳＣＳＩドライバ３１１は、ファイルシステム３４０からのＩ／Ｏ要求を受け付け、このＩ／Ｏ要求を後述するＧＯＳ間通信部５００経由でＳＡＮ用ＯＳ４００側のインテリジェントＣＡエージェント４１０に送信する。なお、このＩ／Ｏ要求は、インテリジェントＳＣＳＩドライバ３１１においてＳＣＳＩコマンドの形式で要求を受け付けられる。
【００３７】
また、インテリジェントＳＣＳＩドライバ３１１は、送信したＳＣＳＩコマンドに対する応答（結果）を、インテリジェントＣＡエージェント４１０から受信し、この受け取った結果をＳＣＳＩドライバレイヤ３６０のＵＬＤ３３０へ通知する。
インテリジェントＳＣＳＩドライバ３１１は、ホスト装置等からＮＡＳのＩ／Ｏ要求を受信すると、ＳＡＮ専用ボリューム５０１（図５参照）への直接のアクセスを抑止し、後述するＧＯＳ間通信部５００を介したゲスト間通信により、ＳＡＮ用ＯＳ４００に対してこのＮＡＳのＩ／Ｏ要求を送信する。
【００３８】
さらに、インテリジェントＳＣＳＩドライバ３１１は、ＮＡＳ用ＯＳ３００のＯＳシステム制御部３９０から受けるデバイスに関するイベント要求を処理する。例えば、このイベント要求が、デバイスの追加要求である場合には、インテリジェントＳＣＳＩドライバ３１１は、この追加要求を受けて“ /dev”ディレクトリにデバイスファイルを追加（定義）する。
【００３９】
ＧＯＳ間通信部５００は、ゲストＯＳ間でのデータの授受を行なうものであり、本ストレージ装置１においては、ＮＡＳ用ＯＳ３００とＳＡＮ用ＯＳ４００との間でデータの授受を行なう。具体的には、ＮＡＳ用ＯＳ３００において受信したＩ／Ｏ要求（ＳＣＳＩコマンド）をインテリジェントＳＣＳＩドライバ３１１からＳＡＮ用ＯＳ４００側のインテリジェントＣＡエージェント４１０に受け渡す。
【００４０】
また、ＧＯＳ間通信ドライバ５１０は、このＩ／Ｏ要求に対する応答（結果）を、ＳＡＮ用ＯＳ４００のインテリジェントＣＡエージェント４１０からＮＡＳ用ＯＳ３００のインテリジェントＳＣＳＩドライバ３１１に受け渡す。
図４は実施形態の一例としてのストレージ装置１におけるＧＯＳ間通信を説明する図である。
【００４１】
ＧＯＳ間通信部５００は、これらのＳＡＮ用ＯＳ４００とＮＡＳ用ＯＳ３００とのそれぞれにＧＯＳ間通信ドライバ５１０を設けることで、ゲストＯＳ間の通信を制御する。
また、このゲストＯＳ間通信には、ＮＡＳ用ＯＳ３００とＳＡＮ用ＯＳ４００とで共有される共有メモリ５２０（図９参照）とＩＰＩ（Inter-Processor Interrupt）方式による割込みとを使用する。ＩＰＩは、ハイパーバイザ２００を介したゲストＯＳ間における割り込み制御である。
【００４２】
すなわち、データの送信側のゲストＯＳのＧＯＳ間通信ドライバ５１０が、共有メモリ５２０の所定の領域（例えば、要求を受け渡すための制御領域）にデータを送信するためのリクエストを意味する情報（データ）をライトする。そして、ハイパーバイザ２００経由でＩＰＩ機能を使用することで、送信先のゲストＯＳのＧＯＳ間通信ドライバ５１０に割込み通知を行なう。この割込みを受けたＧＯＳ間通信ドライバ５１０は、共有メモリ５２０における前記領域をリードすることにより送信データの受け入れ準備を認識する。このようにして、ゲストＯＳ間でのデータ授受（通信）が完了する。
【００４３】
また、実際のデータ転送においては、共有メモリ５２０におけるキャッシュ領域と各ゲストＯＳ用領域との間のデータ移動は、前述したＩＯＣ１０８のＤＭＡ転送機能により実現される。それらデータを授受するための制御情報のやりとりとして、REQUEST/RESPONSEを共有メモリ５２０及びＩＰＩ方式による割り込みを用いて実現する。
図４に示す例においては、太破線がＮＡＳ用ＯＳ３００からＳＡＮ用ＯＳ４００へのＩＰＩ通知を示しており、太実線がＳＡＮ用ＯＳ４００からＮＡＳ用ＯＳ３００へのＩＰＩ通知を示している。
【００４４】
この図４に示す例においては、ＮＡＳ用ＯＳ３００においては、ＯＳシステム制御部３９０やインテリジェントＳＣＳＩドライバ３１１が、ＧＯＳ間通信ドライバ５１０に対してデータ送信指示を行ない、又、その応答をＧＯＳ間通信ドライバ５１０から受信している。一方、ＳＡＮ用ＯＳ４００においては、インテリジェントＣＡドライバ４１０やシステム制御部４１９が、ＧＯＳ間通信ドライバ５１０に対してデータ送信指示を行ない、又、その応答をＧＯＳ間通信ドライバ５１０から受信する。
【００４５】
また、ＳＡＮ用ＯＳ４００からＮＡＳ用ＯＳ３００へのデータ送信時は、ＩＰＩによる割込みをハイパーバイザ２００がハンドリングして、ＮＡＳ用ＯＳ３００へ通知される。ただし、ＮＡＳ用ＯＳ３００からＳＡＮ用ＯＳ４００へのデータ送信時は、図４中の矢印Ａ０１，Ａ０２に示すように、ハイパーバイザ２００を介さず、直接ＳＡＮ用ＯＳ４００へ通知するダイレクト割り込み（Direct Interruption ）方式を用いる。ダイレクト割り込みは、ハイパーバイザ２００を介さないゲストＯＳ間における割り込み通知である。
【００４６】
これにより、ＮＡＳ用ＯＳ３００からＳＡＮ用ＯＳ４００へのデータ送信（ゲスト間通信）を高速化することができる。
図５は実施形態の一例としてのストレージ装置１のハイパーバイザ２００上におけるＮＡＳ用ＯＳ３００及びＳＡＮ用ＯＳ４００の詳細な機能構成を示す図である。
ＮＡＳ用ＯＳ３００は、図５に示すように、ＳＣＳＩドライバレイヤ３６０，ファイルシステム３４０，Ｓａｍｂａ／ＮＦＳサーバソフトウェア３５０，ＳＣＳＩアプリケーション３７０，及びネットワークレイヤ３８０を備える。
【００４７】
ネットワークレイヤ３８０は、ネットワーク層での通信制御を行ない、例えば、ホスト装置からＮＡＳのＩ／Ｏ要求を受信する。
ＳＣＳＩドライバレイヤ３６０は、ＳＣＳＩデバイスを制御するためのドライバ群であり、図３に示したＳＣＳＩドライバ群３６０に相当する。
ＮＡＳ用ＯＳ３００においては、ファイルシステム３４０を介して、このＳＣＳＩドライバレイヤ３６０にＩ／Ｏ制御要求が行なわれる。
【００４８】
このＳＣＳＩドライバレイヤ３６０において、ＳＣＳＩディスクドライバが図３に示したＵＬＤ３３０に相当し、コモンサービスがＭＬＤ３２０に相当する。
また、ＳＣＳＩドライバレイヤ３６０においては、前述したＬＬＤ３１０に相当する、ｉＳＣＳＩドライバ３１３やＦＣドライバ３１２を備える。これらのＮＡＳ用ＯＳ３００としての各部の機能は、例えば、Ｌｉｎｕｘ等において既知であり、その詳細な説明を省略する。
【００４９】
そして、本ストレージ装置１においては、このＳＣＳＩドライバレイヤ３６０のＬＬＤ３１０に、上述したインテリジェントＳＣＳＩドライバ３１１が備えられる。
ＳＡＮ用ＯＳ４００は、図５に示すように、インテリジェントＣＡドライバ４２０，ターゲットドライバ４３０，ＣＡスレッド４４０，ベーシックコントロール４５０，バックグランドコントロール４６０，ＦＣ−ＣＡドライバ４２５，ｉＳＣＳＩ−ＣＡドライバ４２４及びＳＡＳ−ＣＡドライバ４２３を備える。
【００５０】
なお、これらのうち、ターゲットドライバ４３０，ＣＡスレッド４４０，ベーシックコントロール４５０，バックグランドコントロール４６０，ＦＣ−ＣＡドライバ４２５，ｉＳＣＳＩ−ＣＡドライバ４２４及びＳＡＳ−ＣＡドライバ４２３としての機能は、ＶｘＷｏｒｋｓ等のＳＡＮ用ＯＳ４００において既知であり、その説明は省略する。
インテリジェントＣＡドライバ４２０は、ＳＡＮ用ＯＳ４００におけるＳＡＮ制御のチャネルアダプタドライバ層に追加されるＮＡＳの仮想ドライバ層である。このインテリジェントＣＡドライバ４２０は、ＮＡＳ用ＯＳ３００との間でＮＡＳのＩ／Ｏ要求や応答の授受を行なう。このインテリジェントＣＡドライバ４２０は、ＳＣＳＩコマンドキュー４２１及びＳＣＳＩステータスキュー４２２を備える。
【００５１】
ＳＣＳＩコマンドキュー４２１には、例えば、ＮＡＳ用ＯＳ３００から受信するＩ／Ｏコマンドが格納され、ＳＣＳＩステータスキュー４２２には、ＮＡＳ用ＯＳ３００に応答するステータス情報等が格納される。
ターゲットドライバ４３０には、インテリジェントＣＡエージェント４１０が備えられる。このインテリジェントＣＡエージェント４１０は、ターゲットドライバ４３０に追加されたＮＡＳ専用機能であり、ゲストＯＳ間通信を介して受信されたＮＡＳ用ＯＳ３００からのＩ／Ｏ要求を制御するブロックである。このインテリジェントＣＡエージェント４１０を、ＮＡＳ制御ブロック４４１ｂという場合もある。このインテリジェントＣＡエージェント４１０（ＮＡＳ制御ブロック４４１ｂ）の機能については後述する。
【００５２】
ＣＡスレッド４４０には、オプティマイズドＮＡＳＩ／Ｏレイヤ４５１が備えられている。オプティマイズドＮＡＳＩ／Ｏレイヤ４５１は、ＮＡＳ用ＯＳ３００からのＩ／Ｏ要求を処理するものであり、ＳＡＮのＣＡスレッド（ＣＡドライバを含む）をカスタマイズしたものである。このオプティマイズドＮＡＳＩ／Ｏレイヤ４５１をＣＡ制御ブロック４４１ａという場合がある。このオプティマイズドＮＡＳＩ／Ｏレイヤ４５１（ＣＡ制御ブロック４４１ａ）の機能については後述する。
【００５３】
さらに、ハイパーバイザ２００上においては、１つ以上のＳＡＮ専用ボリューム５０１やＮＡＳ専用ボリューム５０２が備えられる。ＳＡＮ専用ボリューム５０１は、ＳＡＮによるＩ／Ｏ要求が行なわれる記憶領域であり、ＮＡＳ用ボリューム５０２は、ＮＡＳによるＩ／Ｏ要求が行なわれる記憶領域である。すなわち、これらのＳＡＮ専用ボリューム５０１やＮＡＳ専用ボリューム５０２はゲストＯＳ専用ボリュームである。
【００５４】
これらのＳＡＮ専用ボリューム５０１やＮＡＳ専用ボリューム５０２は、例えば、図示しない管理装置により設定・管理がされ、この管理装置のディスプレイ等にその管理画面等が表示される。
図６は実施形態の一例としてのストレージ装置１におけるボリューム作成画面８００を例示する図である。
【００５５】
本ストレージ装置１においては、管理装置のディスプレイ上に、種々の管理画面が表示される。例えば、ボリュームを作成する際には、図６に示すようなボリューム作成画面８００が表示される。管理者は、図示しないマウスやキーボード等の入力装置を操作して、このボリューム作成画面８００において種々の情報入力を行なうことで、ＳＡＮ専用ボリューム５０１やＮＡＳ専用ボリューム５０２が作成される。
【００５６】
管理装置のディスプレイ上に表示される管理画面は、例えば、管理装置が作成してディスプレイ上に表示させてもよく、又、プライマリのＣＭ１００のＣＰＵ１１０等がこれらの処理を行なってもよい。
図６に示す例においては、ボリューム作成画面８００には、入力領域８０１〜８０４が備えられている。例えば、入力領域８０１には作成するボリュームのボリューム名を任意に入力することができる。入力領域８０２には作成するボリュームのＲＡＩＤ種類を任意に入力することができる。この図６に示す例においては、プルダウンメニューにより、ＲＡＩＤ１〜６のいずれかを選択することができる。
【００５７】
入力領域８０３には作成するボリュームのサイズを任意に入力することができる。又、入力領域８０４には、作成するボリュームの属性を任意に入力することができる。例えば、図６に示す例においては、属性として、ＳＡＮボリュームとＮＡＳボリュームとのいずれかを選択することができ、更に、ＳＡＮボリュームとしては「通常」，「シンプロビジョニング」及び「コピー」のいずれかを選択することができる。
【００５８】
例えば、ボリュームの属性に「ＳＡＮ  通常」，「ＳＡＮ  シンプロビジョニング」，「ＳＡＮ  コピー」のいずれかを選択することでＳＡＮのボリュームが作成され、「ＮＡＳ」を選択することでＮＡＳのボリュームが作成される。
上記入力領域８０１〜８０４にそれぞれ情報を入力した後に、作成ボタン８０５を選択することで、ボリューム作成を指示するＩ／Ｏ要求が例えばＳＡＮ用ＯＳ４００に対して送信される。
【００５９】
また、本ストレージ装置１においては、一つのボリューム作成画面８００において、ＳＡＮボリュームとＮＡＳボリュームとを選択的に作成することができる。すなわち、一の管理画面で、ＳＡＮボリュームとＮＡＳボリュームとを管理・運用することができ、利便性が高い。
図７は実施形態の一例としてのストレージ装置１におけるＳＡＮ用ＯＳ４００の機能構成を模式的に示す図である。
【００６０】
ＳＡＮ用ＯＳ４００には、ＮＡＳ用ＯＳ３００からのＩ／Ｏ要求を処理するためのＮＡＳエージェント４４１が備えられる。
ＮＡＳエージェント４４１は、インテリジェントＳＣＳＩドライバ３１１から受信したＮＡＳ入出力要求を処理する。
ＮＡＳエージェント４４１は、ＮＡＳ用ＯＳ３００からのＩ／Ｏ要求を制御するＮＡＳ制御ブロック４４１ａと、そのＩ／Ｏ要求を処理するＣＡ制御ブロック４４１ｂとを備える。
【００６１】
図５に示したインテリジェントＣＡエージェント４１０がＮＡＳ制御ブロック４４１ａとして機能し、又、図５に示したオプティマイズドＮＡＳＩ／Ｏレイヤ４５１がＣＡ制御ブロック４４１ｂとして機能する。すなわち、これらのインテリジェントＣＡエージェント４１０及びオプティマイズドＮＡＳＩ／Ｏレイヤ４５１が、ＮＡＳエージェント４４１として機能する。
【００６２】
ＮＡＳ制御ブロック４４１ｂは、ＮＡＳ用ＯＳ３００からＧＯＳ間通信部５００を介して受信するＩ／Ｏ要求を制御する。
例えば、ＮＡＳ制御ブロック４４１ｂは、ＮＡＳ用ＯＳ３００からの要求をＳＡＮ用ＯＳ４００において処理するための仮想的なホスト（ダミーホスト）のログインを行なう機能を有し、ＣＡ制御ブロック４４１ａへの通知を行なう。
【００６３】
また、ＮＡＳ制御ブロック４４１ｂは、ＮＡＳ用ＯＳ３００からのＳＣＳＩコマンドを解析及びチェックし、ＣＡ制御部４４１ａへ通知する。
ＮＡＳ制御ブロック４４１ｂにおいてサポートされるＳＣＳＩコマンドは、例えば、以下のものが挙げられる。
READ6(10)，WRITE6(10)， READ CAPACITY（16），SYNCHORONIZE CACHE，TEST UNIT READY，INQUIRY（Standard, Page 00, 80, 83, 86, 8F, B0, B2, F0, F1, F2）及びMODE SENSE（page 00, 01, 02, 03, 04, 07, 08, 0A,1C）。
【００６４】
なお、これらのコマンドにおけるカッコ“（）”内の数字はビット数やページ数等の各種パラメータを例示するものであり、種々変形して実施することができる。
また、ＮＡＳ制御ブロック４４１ｂは、後述するＣＡ制御ブロック４４１ａからの転送要求内容に応じて、共有メモリ５２０における、キャッシュ領域とＮＡＳ用ＯＳ領域との間でのデータ転送及びＤＩＦ（Data Integrity Field）制御を、例えばＳＡＳ（Serial Attached SCSI）ドライバを介してＩＯＣ１０８に依頼する。
【００６５】
ＣＡ制御ブロック４４１ａは、ＮＡＳ用ＯＳ３００からＧＯＳ間通信部５００を介して受信したＩ／Ｏ要求を処理する。ＣＡ制御ブロック４１２は、以下の機能を備える。
すなわち、ポート管理域のうちＮＩＣ（Network Interface Card）搭載ポート域をＮＡＳ制御ブロック４４１ａに解放し、キュー（Queue）管理やブロック制御等のコマンド管理を行なう。
【００６６】
また、ＣＡ制御ブロック４４１ｂは、ＮＡＳ制御ブロック４４１ａにて作成したコマンドやイベントをベーシックコントロール４５０（図５参照）へ通知する。更に、このベーシックコントロール４５０からのデータ転送要求時に、ＮＡＳ制御ブロック４４１ｂを呼び出し、処理結果に応じて処理する。すなわち、異常センス作成や転送依頼等を行なう。
なお、図７中におけるリソース／キャッシュ４８０は、図５中におけるベーシックコントロール４５０に相当する。又、保守部４７０は本ストレージ装置１内における保守系の制御を行なうメンテナンスコントロールである。
【００６７】
上述の如く構成された実施形態の一例としてのストレージ装置１における処理の一例を図８に示すシーケンス図に従って説明する。なお、この図８においては、ＮＡＳのリードコマンドを処理する例について示す。
ＮＡＳのリード要求が行なわれると、ステップＡ１において、ＮＡＳ用ＯＳ３００においてインテリジェントＳＣＳＩドライバ３１１が、共有メモリ５２０のＮＡＳ用領域にリードデータ格納領域を準備する。
【００６８】
ステップＡ２において、ＮＡＳ用ＯＳ３００のインテリジェントＳＣＳＩドライバ３１１から、ＧＯＳ間通信部５００を介して、ＳＡＮ用ＯＳ４００のインテリジェントＣＡドライバ４２０にリードコマンドが通知される（ＧＯＳ間通信）。なお、このＧＯＳ間通信を、ハイパーバイザ２００を介さないダイレクト割り込み方式により行なうことで、通信に要する時間を短縮することができる。
【００６９】
ステップＡ３において、インテリジェントＣＡドライバ４２０がリードコマンドを受信する。このように、ＮＡＳ用ＯＳ３００とＳＡＮ用ＯＳ４００との間でＧＯＳ間通信が行なわれる。
ステップＡ４において、インテリジェントＣＡドライバ４２０は、受信したコマンドの解析を行ない、リードコマンドであることを認識する。ＣＡスレッド４４０を経由して（ステップＡ５）、ステップＡ６において、リソース／キャッシュ４８０によりキャッシュ領域が獲得される。
【００７０】
ステップＡ７において、リソース／キャッシュ４８０が、獲得したキャッシュ領域にリードデータを配置する処理を行ない、キャッシュ領域には、リードデータが配置済みの状態となる（ステップＡ８）。キャッシュ領域にリードデータを配置した旨の通知が、ＣＡスレッドを経由して（ステップＡ９）、インテリジェントＣＡドライバ４２０に行なわれる。
【００７１】
ステップＡ１０において、インテリジェントＣＡドライバ４２０が、ＩＯＣ１０８に対して、データ転送及びＢＣＣ（Block Check Character）チェック並びに付加したＢＣＣの除去を依頼する。ＩＯＣ１０８がこれらの処理を行なうと、キャッシュ領域のリードデータが、ステップＡ１においてインテリジェントＳＣＳＩドライバ３１１が確保したリードデータ格納領域に格納される（ステップＡ１２）。
【００７２】
また、ＩＯＣ１０８からインテリジェントＣＡドライバ４２０に対して完了通知が行なわれ（ステップＡ１３）、ステップＡ１４において、インテリジェントＣＡドライバ４２０から、ＧＯＳ間通信部５００を介して、インテリジェントＳＣＳＩドライバ３１１に完了通知が送信される（ＧＯＳ間通信）。ここでも、ＳＡＮ用ＯＳ４００とＮＡＳ用ＯＳ３００との間でＧＯＳ間通信が行なわれる。
【００７３】
次に、実施形態の一例としてのストレージ装置１におけるＮＡＳ専用ボリューム５０２（図５参照）の作成処理を、図９に示すフローチャート（ステップＢ１〜Ｂ１０）に従って説明する。
このＮＡＳ専用ボリューム５０２の作成指示は、図６に示したボリューム作成画面８００において、入力領域８０４において属性として「ＮＡＳ」を選択した状態で作成ボタン８０５を選択することで行なわれる。
【００７４】
ステップＢ１において、ＳＡＮ用ＯＳ４００において、ボリューム作成画面８００において入力された各情報の解析が行なわれ、これらの情報に基づき、ステップＢ２において、ＳＡＮボリュームの作成処理が行なわれる。ステップＢ３において、作成されたＳＡＮボリュームがフォーマットされる。
その後、ステップＢ４において、作成したＳＡＮボリュームの属性をＮＡＳボリュームに変更する処理が行なわれ、作成されたボリュームの情報（例えば、属性情報やサイズ等）が、ＳＳＤ１０７等にある構成情報のデータベースに格納される。
【００７５】
ステップＢ６において、ＧＯＳ間通信インタフェース変換制御が行なわれ、ＧＯＳ間通信により共有メモリ５２０を介して、ステップＢ２において作成したボリュームのボリューム番号が、ＮＡＳ用ＯＳ３００に対してＮＡＳボリュームの作成指示とともに通知される。
ＮＡＳ用ＯＳ３００においては、先ず、ステップＢ７において、ＧＯＳ間通信により通知されたＮＡＳボリューム作成指示に従い、ボリューム番号に基づきデバイスの作成が行なわれ、更に、デバイスの登録（/dev）が行なわれる。これにより、ＳＡＮにおいて作成されたボリュームがＮＡＳ用ＯＳ３００において使用可能なハードウェアとして認識される。
【００７６】
また、作成されたボリュームに対して、ステップＢ８においてパーティションが作成され、ステップＢ９においてマウントポイントが作成され、更に、ステップＢ１０において、ファイルシステムのフォーマットが行なわれる。
その後、完了通知がＳＡＮ用ＯＳ４００に対して行なわれ、ＳＡＮ用ＯＳ４００において、画面の完了復帰が行なわれて（ステップＢ１１）、処理を終了する。
【００７７】
なお、この図９に示す例においては、ボリューム作成画面８００において入力された処理要求を、ＳＡＮ用ＯＳ４００において処理した後に、ＧＯＳ間通信部５００を介してＮＡＳ用ＯＳ３００に受け渡し、ＮＡＳ用ＯＳ３００において処理する例を示しているが、これに限定されるものではない。
すなわち、ＮＡＳの処理要求とＳＡＮの処理要求を入力可能な入力画面で入力された処理要求を、ＮＡＳ用ＯＳ３００において処理した後に、ＧＯＳ間通信部５００を介してＳＡＮ用ＯＳ４００に受け渡し、ＳＡＮ用ＯＳ４００において処理してもよく、種々変形して実施することができる。
【００７８】
このように、実施形態の一例としてのストレージ装置１によれば、マルチコアプロセッサであるＣＰＵ１１０上で仮想化ＯＳであるハイパーバイザ２００を実行し、このハイパーバイザ２００上でＮＡＳ用ＯＳ３００とＳＡＮ用ＯＳ４００とを実行する。これにより、従来においては専用のサーバ装置でインプリメントされていたファイルシステム制御を、ストレージ装置１内のゲストＯＳとして搭載することができる。従って、サーバ装置の導入コストを低減することができる。
【００７９】
ＮＡＳ用ＯＳ３００において、インテリジェントＳＣＳＩドライバ３１１が、ホスト装置等からＮＡＳのＩ／Ｏ要求を受信すると、ＳＡＮ専用ボリューム５０２への直接のアクセスを抑止し、ＧＯＳ間通信部５００を介したゲストＯＳ間通信により、ＳＡＮ用ＯＳ４００に対してＮＡＳのＩ／Ｏ要求を送信する。
この際、このゲストＯＳ間通信を、ハイパーバイザ２００を介さないダイレクト割り込み方式により行なうことで、通信に要する時間を短縮することができる。
【００８０】
ＳＡＮ用ＯＳ４００において、インテリジェントＣＡドライバ４２０が、ＮＡＳ用ＯＳ３００との間でＮＡＳのＩ／Ｏ要求や応答の授受を行なう。その後、ＳＡＮ用ＯＳ４００のＮＡＳエージェント４４１において、ＮＡＳ制御ブロック４４１ｂが、受信したＩ／Ｏ要求を制御し、ＣＡ制御ブロック４４１ａが、そのＩ／Ｏ要求を処理する。このように、ＳＡＮ用ＯＳ４００においてＮＡＳのＩ／Ｏ要求を処理することができ、ＮＡＳとＳＡＮとを統合して取り扱うことができる。
【００８１】
Ｉ／Ｏ要求の処理結果等の応答は、インテリジェントＣＡドライバ４２０からＧＯＳ間通信部５００を介してＮＡＳ用ＯＳ３００のインテリジェントＳＣＳＩドライバ３１１に送信される。ＮＡＳ用ＯＳ３００はこの応答をホスト装置に送信する。
すなわち、ホスト装置の機能構成に特別な変更等を加えることなく、ストレージ装置１に対してＮＡＳ及びＳＡＮのＩ／Ｏ要求を行ない、その処理結果を受信することができる。
【００８２】
ハイパーバイザ２００上で、ＮＡＳ用ＯＳ３００とＳＡＮ用ＯＳ４００とを実行し、同一のメニュー画面でＮＡＳの操作とＳＡＮの操作とを入力できるように構成する。又、この際、ＳＡＮ用ＯＳ４００とＮＡＳ用ＯＳとの間のデータの授受をＧＯＳ間通信部５００により行なう。これにより、ＮＡＳ用ＯＳ３００とＳＡＮ用ＯＳ４００とで統一したユーザインタフェースによる運用を行なうことができ、利便性が高く、システムの運用管理者の作業負担が軽減する。すなわち、ＳＡＮもＮＡＳも共通のユーザインタフェース画面で統合的に設計・管理・保守を行なうことができ、利便性が高い。
【００８３】
なお、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
例えば、上述した実施形態においては、ＳＡＮ用ＯＳ４００としてのＶｘＷｏｒｋｓを用いるとともに、ＮＡＳ用ＯＳ３００としてＬｉｎｕｘを用いた例を示しているが、これに限定されるものではなく、他のＯＳを用いる等、種々変形して実施することができる。
【００８４】
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
仮想化オペレーティングシステム上において、ＳＡＮ制御を行なうＳＡＮ用オペレーティングシステムと、ＮＡＳ制御を行なうＮＡＳ用オペレーティングシステムとを動作させる処理部と、
前記ＮＡＳ用オペレーティングシステムと前記ＳＡＮ用オペレーティングシステムとの間でデータを授受するＯＳ間通信部と、
前記ＮＡＳ用オペレーティングシステムにおいて受信したＮＡＳ入出力要求を、前記ＯＳ間通信部を介して前記ＳＡＮ用オペレーティングシステムに送信する送信制御部と、
前記ＳＡＮ用オペレーティングシステムにおいて前記送信制御部から受信した前記ＮＡＳ入出力要求を処理するＮＡＳ要求処理部と、
を備えることを特徴とする、ストレージ制御装置。
【００８５】
（付記２）
前記ＳＡＮ用オペレーティングシステムにおいて、
前記ＮＡＳ要求処理部によって処理された前記ＮＡＳ入出力要求に対する応答を、前記ＯＳ間通信部を介して前記ＮＡＳ用オペレーティングシステムに送信する応答制御部を備えることを特徴とする、付記１記載のストレージ制御装置。
【００８６】
（付記３）
前記ＯＳ間通信部は、
前記ＮＡＳ用オペレーティングシステムと前記ＳＡＮ用オペレーティングシステムとで共用される共用メモリと、
前記共用メモリにデータを書き込んだ後、データ送信先の前記ＳＡＮ用オペレーティングシステムもしくは前記ＮＡＳ用オペレーティングシステムに割り込み通知を行なう通知部と
を備えることを特徴とする、付記１又は２記載のストレージ制御装置。
【００８７】
（付記４）
前記ＮＡＳ用オペレーティングシステムに対する処理要求と前記ＳＡＮ用オペレーティングシステムに対する処理要求とを入力可能な入力画面において入力された処理要求を、前記ＳＡＮ用オペレーティングシステムもしくは前記ＮＡＳ用オペレーティングシステムにおいて処理した後に、当該処理結果を、前記ＯＳ間通信部を介して前記ＮＡＳ用オペレーティングシステムもしくは前記ＳＡＮ用オペレーティングシステムに送信することを特徴とする、付記１〜３のいずれか１項に記載のストレージ制御装置。
【００８８】
（付記５）
仮想化オペレーティングシステム上において、ＳＡＮ制御を行なうＳＡＮ用オペレーティングシステムと、ＮＡＳ制御を行なうＮＡＳ用オペレーティングシステムとを動作させ、
前記ＮＡＳ用オペレーティングシステムにおいて受信したＮＡＳ入出力要求を、ＯＳ間通信を介して前記ＳＡＮ用オペレーティングシステムに送信し、
前記ＳＡＮ用オペレーティングシステムにおいて受信した前記ＮＡＳ入出力要求を処理することを特徴とする、ストレージ制御方法。
【００８９】
（付記６）
前記ＳＡＮ用オペレーティングシステムにおいて、
前記処理されたＮＡＳ入出力要求に対する応答を、前記ＯＳ間通信を介して前記ＮＡＳ用オペレーティングシステムに送信することを特徴とする、付記５記載のストレージ制御方法。
【００９０】
（付記７）
前記ＯＳ間通信は、
前記ＮＡＳ用オペレーティングシステムと前記ＳＡＮ用オペレーティングシステムとで共用される共用メモリにデータを書き込んだ後、データ送信先の前記ＳＡＮ用オペレーティングシステムもしくは前記ＮＡＳ用オペレーティングシステムに割り込み通知を行なうことを特徴とする、付記５又は６記載のストレージ制御方法。
【００９１】
（付記８）
前記ＮＡＳ用オペレーティングシステムに対する処理要求と前記ＳＡＮ用オペレーティングシステムに対する処理要求とを入力可能な入力画面において入力された処理要求を、前記ＳＡＮ用オペレーティングシステムもしくは前記ＮＡＳ用オペレーティングシステムにおいて処理した後に、当該処理結果を、前記ＯＳ間通信を介して前記ＮＡＳ用オペレーティングシステムもしくは前記ＳＡＮ用オペレーティングシステムに送信することを特徴とする、付記５〜７のいずれか１項に記載のストレージ制御方法。
（付記９）
仮想化オペレーティングシステム上において、ＳＡＮ制御を行なうＳＡＮ用オペレーティングシステムと、ＮＡＳ制御を行なうＮＡＳ用オペレーティングシステムとを動作させ、
前記ＮＡＳ用オペレーティングシステムにおいて受信したＮＡＳ入出力要求を、オペレーティングシステム間通信を介して前記ＳＡＮ用オペレーティングシステムに送信し、
前記ＳＡＮ用オペレーティングシステムにおいて受信した前記ＮＡＳ入出力要求を処理する
処理をコンピュータに実行させることを特徴とする、ストレージ制御プログラム。
【００９２】
（付記１０）
前記ＳＡＮ用オペレーティングシステムにおいて、
前記処理されたＮＡＳ入出力要求に対する応答を、前記ＯＳ間通信を介して前記ＮＡＳ用オペレーティングシステムに送信することを特徴とする、付記９記載のストレージ制御プログラム。
【００９３】
（付記１１）
前記ＯＳ間通信は、
前記ＮＡＳ用オペレーティングシステムと前記ＳＡＮ用オペレーティングシステムとで共用される共用メモリにデータを書き込んだ後、データ送信先の前記ＳＡＮ用オペレーティングシステムもしくは前記ＮＡＳ用オペレーティングシステムに割り込み通知を行なうことを特徴とする、付記９又は１０記載のストレージ制御プログラム。
【００９４】
（付記１２）
前記ＮＡＳ用オペレーティングシステムに対する処理要求と前記ＳＡＮ用オペレーティングシステムに対する処理要求とを入力可能な入力画面において入力された処理要求を、前記ＳＡＮ用オペレーティングシステムもしくは前記ＮＡＳ用オペレーティングシステムにおいて処理した後に、当該処理結果を、前記ＯＳ間通信を介して前記ＮＡＳ用オペレーティングシステムもしくは前記ＳＡＮ用オペレーティングシステムに送信することを特徴とする、付記９〜１１のいずれか１項に記載のストレージ制御プログラム。
【符号の説明】
【００９５】
１    ストレージ装置
３０    ドライブエンクロージャ
３１    記憶装置
４０    コントローラエンクロージャ
１００ａ，１００ｂ，１００    ＣＭ
１０１，１０２    ＣＡ
１０３    ＤＡ
１０６    メモリ
１０７    ＳＳＤ
１０８    ＩＯＣ
１１０    ＣＰＵ
２００    ハイパーバイザ
３００    ＮＡＳ用ＯＳ
３０１    ＮＡＳ用ＯＳ（カーネル）
３０２    ＮＡＳ用ＯＳ（ファンクションファームウェア）
３１０    ＬＬＤ
３１１    インテリジェントＳＣＳＩドライバ（送信制御部）
３１２    ＦＣドライバ
３１３    ｉＳＣＳＩドライバ
３２０    ＭＬＤ
３３０    ＵＬＤ
３４０    ファイルシステム
３５０    Ｓａｍｂａ／ＮＦＳサーバソフトウェア
３６０    ＳＣＳＩドライバ群
３７０    ＳＣＳＩアプリケーション
３８０    ネットワークレイヤ
３９０    ＯＳシステム制御部
４００    ＳＡＮ用ＯＳ
４０１    ＳＡＮ用ＯＳ（カーネル）
４０２    ＳＡＮ用ＯＳ（ファンクションファームウェア）  
４１０    インテリジェントＣＡエージェント
４１９    システム制御部
４２０    インテリジェントＣＡドライバ（応答制御部）
４２１    ＳＣＳＩコマンドキュー
４２２    ＳＣＳＩステータスキュー
４２３    ＳＡＳ−ＣＡドライバ
４２４    ｉＳＣＳＩ−ＣＡドライバ
４２５    ＦＣ−ＣＡドライバ
４３０    ターゲットドライバ
４４０    ＣＡスレッド
４４１    ＮＡＳエージェント（ＮＡＳ要求処理部）
４４１ａ    ＣＡ制御ブロック
４４１ｂ    ＮＡＳ制御ブロック
４５０    ベーシックコントロール
４６０    バックグランドコントロール
４７０    保守部
４８０    リソース／キャッシュ
４５１    オプティマイズドＮＡＳＩ／Ｏレイヤ
５００    ＧＯＳ間通信部（ＯＳ間通信部）
５０１    ＳＡＮ専用ボリューム
５０２    ＮＡＳ専用ボリューム
５１０    ＧＯＳ間通信ドライバ（通知部）
５２０    共有メモリ
８００    ボリューム作成画面（入力画面）
８０１，８０２，８０３，８０４    入力領域
８０５    作成ボタン  
【図１】
2015069352.tif 000003
【図２】
2015069352.tif 000004
【図３】
2015069352.tif 000005
【図４】
2015069352.tif 000006
【図５】
2015069352.tif 000007
【図６】
2015069352.tif 000008
【図７】
2015069352.tif 000009
【図８】
2015069352.tif 000010
【図９】
2015069352.tif 000011