JP6464777B2 - 情報処理装置及びプログラム - Google Patents
情報処理装置及びプログラム Download PDFInfo
- Publication number
- JP6464777B2 JP6464777B2 JP2015016471A JP2015016471A JP6464777B2 JP 6464777 B2 JP6464777 B2 JP 6464777B2 JP 2015016471 A JP2015016471 A JP 2015016471A JP 2015016471 A JP2015016471 A JP 2015016471A JP 6464777 B2 JP6464777 B2 JP 6464777B2
- Authority
- JP
- Japan
- Prior art keywords
- virtual
- data
- shared data
- sharing area
- shared
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
例えば、コンピュータシステムに備えられた複数の処理モジュールと、メイン・メモリとをコンピュータシステム内の別々のパーティションとして構成し、異なるパーティション内で複数のOSを並行に実行する。
また、共用メモリにデータが格納されたことは、割込み通知により他方のパーティションに通知される。
例えば、仮想化OSであるハイパーバイザ(Hypervisor)上において複数の仮想OSが実行されるシステムにおいては、ハイパーバイザ経由でIPI(Inter-Processor Interrupt)機能を使用することで、送信先の仮想OSに割込み通知を行なう。IPIは、ハイパーバイザを介したゲストOS(Guest OS)間における割り込み制御である。この割込みを受けた送信先の仮想OSにおいては、共有メモリにおける前記領域をリードすることにより送信データの受け入れ準備を認識する。このようにして、仮想OS間でのデータ授受(通信)が完了する。なお、以下、ゲストOSをGOSという場合がある。
GOSにおいてIPIを発行すると、ハイパーバイザ層まで処理が遷移するが、このハイパーバイザにおいてはソフトウェア処理のオーバーヘッドが大きく、IPIを発行するまでに時間がかかるからである。
図1は実施形態の一例としてのストレージ装置1のハードウェア構成を模式的に示す図である。
本ストレージ装置1は、ドライブエンクロージャ(DE:Drive Enclosure)30に格納された記憶装置31を仮想化して、仮想ストレージ環境を形成する。そしてストレージ装置1は、仮想ボリュームを上位装置である図示しないホスト装置に提供する。
ホスト装置は、例えば、サーバ機能をそなえた情報処理装置であり、本ストレージ装置1との間において、NAS(Network Attached Storage)やSAN(Storage Area Network)のコマンドを送受信する。このホスト装置は、例えば、ストレージ装置1に対してNASにおけるリード/ライト等のディスクアクセスコマンドを送信することにより、ストレージ装置1が提供するボリュームにデータの書き込みや読み出しを行なう。
本ストレージ装置1は、図1に示すように、複数(本実施形態では2つ)のCM(Controller Module)100a,100b及び1つ以上(図1に示す例では1つ)のドライブエンクロージャ30をそなえる。
例えば、ドライブエンクロージャ30は、複数段のスロット(図示省略)をそなえ、これらのスロットに、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の記憶装置31を挿入することにより、実ボリューム容量を随時変更することができる。又、複数の記憶装置31を用いてRAID(Redundant Arrays of Inexpensive Disks)を構成してもよい。
CM100a,100bは、ストレージ装置1内の動作を制御するコントローラ(ストレージ制御装置,情報処理装置)であり、ホスト装置から送信されるI/Oコマンドに従って、ドライブエンクロージャ30の記憶装置31へのアクセス制御等、各種制御を行なう。又、CM100a,100bは互いにほぼ同様の構成を有している。以下、CMを示す符号としては、複数のCMのうち1つを特定する必要があるときには符号100a,100bを用いるが、任意のCMを指すときには符号100を用いる。又、CM100aをCM#1と、CM100bをCM#2と、それぞれ表す場合がある。
CM100a,100bは二重化されており、通常は、CM100aがプライマリとして各種制御を行なう。しかし、このプライマリCM100aの故障時には、セカンダリのCM100bがプライマリとしてCM100aの動作を引き継ぐ。
10,メモリ106,SSD107及びIOC108をそなえる。
CA101,102は、ホスト装置等から送信されたデータを受信したり、CM100から出力するデータをホスト装置等に送信する。すなわち、CA101,102は、ホスト装置等の外部装置との間でのデータの入出力(I/O)を制御する。
であり、例えば、LAN(Local Area Network)インタフェース等である。
CM100は、このCA101により図示しない通信回線を介してホスト装置等とNASにより接続され、I/Oコマンドの受信やデータの送受信等を行なう。図1に示す例においては、CM100a,100bのそれぞれに2つのCA101,101がそなえられている。
ある。
CM100は、このCA102により図示しない通信回線を介してホスト装置等とSANにより接続され、I/Oコマンドの受信やデータの送受信等を行なう。図1に示す例においては、CM100a,100bのそれぞれに1つのCA102がそなえられている。
CM100は、このDA103を介して、記憶装置31に対するデータの書き込みや読み出しを行なう。又、図1に示す例においては、CM100a,100bのそれぞれに2つのDA103,103がそなえられている。そして、CM100a,100bのそれぞれにおいて、各DA103にドライブエンクロージャ30が接続されている。
SSD107は、CPU110が実行するプログラムや種々のデータ等を格納する記憶装置である。
メモリ106は、種々のデータやプログラムを一時的に格納する記憶装置であり、図示しないメモリ領域とキャッシュ領域とをそなえる。キャッシュ領域は、ホスト装置から受信したデータや、ホスト装置に対して送信するデータを一時的に格納する。メモリ領域には、CPU110がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。
CPU110は、種々の制御や演算を行なう処理装置であり、マルチコアプロセッサ(マルチCPU)である。CPU110は、SSD107等に格納されたOSやプログラムを実行することにより、種々の機能を実現する。
複数のゲストOSはCPU110やメモリ106,SSD107等のハードウェア資源を共有することができる。
図2は実施形態の一例としてのストレージ装置1におけるハイパーバイザ200上の複数のOSを模式的に示す図である。
本実施形態においては、図2に示すように、ハイパーバイザ200上で、SAN用OS400とNAS用OS300とを実行する。
NAS用OS300は、NAS制御を行なうOS(第1の仮想OS)であり、カーネル301とファンクションファームウェア302とを備える。NAS用OS300としては既知の種々のOSを用いることができるが、本実施形態においてはLinux(登録商標)を用いた例を示す。
なお、これらのハイパーバイザ200,SAN用OS400及びNAS用OS300としての機能を実現するためのプログラム(ストレージ制御プログラム)は、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
NAS用OS300は、図3に示すように、Samba/NFS(Network File System)サーバソフトウェア350,ファイルシステム340,OSシステム制御部390及びSCSIドライバ群360を備える。
Samba/NFSサーバソフトウェア350は、ファイルシステムベースのアプリケーションであり、ホスト装置から受信したNASのI/O要求をSambaやNFSで受信して、ファイルシステム340に受け渡す。
OSシステム制御部390は、NAS用OSとしての一般的な各種制御を行なうものであり、例えば、デバイスの追加要求等のイベント要求をSCSIドライバ群360(LLD310)に発行する。
SCSIドライバ群360は、図3に示すように、ULD(Upper Level Driver;上位層)330,MLD(Middle Level Driver;中位層)320及びLLD(Lower Level Driver;下位層)310の3階層で構成された階層化アーキテクチャを有する。
このULD330には、SD,SR,ST及びSGの4種のドライバが用意されており、これらのドライバは、SCSIデバイスの種類によって使い分けられる。ここで、SDはHDDへのアクセス時に使用され、ブロック型である。SRは、CD−ROMへのアクセス時に使用され、ブロック型である。STは、テープ装置へのアクセス時に使用され、ブロック型である。SGは、ホストバスアダプタ(ハード)を介さない場合に使用される擬似ホストアダプタであり、キャラクタ型である。
LLD310は、SCSIに適用可能な物理インタフェースに対応する実際のドライバを備え、ホストバスアダプタに相当する。LLD310は、ハードインタフェースを制御するドライバ層であり、使用されるドライバは装置固有である。例えば、このLLD310には、図4に示すように、iSCSIドライバ313やFCドライバ312が備えられる。更に、本ストレージ装置1においては、このLLD310にインテリジェントSCSIドライバ311を備える。なお、ULD330やMLD320には既存のLinuxドライバを使用することができる。
インテリジェントSCSIドライバ311は、ファイルシステム340からのI/O要求を受け付け、このI/O要求を後述するGOS間通信部500経由でSAN用OS400側のインテリジェントCAエージェント410に送信する。なお、このI/O要求は、インテリジェントSCSIドライバ311においてSCSIコマンドの形式で要求を受け付けられる。
インテリジェントSCSIドライバ311は、ホスト装置等からNASのI/O要求を受信すると、SAN専用ボリューム501(図4参照)への直接のアクセスを抑止し、後述するGOS間通信部500を介したゲストOS間通信により、SAN用OS400に対してこのNASのI/O要求を送信する。
NAS用OS300は、図4に示すように、SCSIドライバレイヤ360,ファイルシステム340,Samba/NFSサーバソフトウェア350,SCSIアプリケーション370,及びネットワークレイヤ380を備える。
SCSIドライバレイヤ360は、SCSIデバイスを制御するためのドライバ群であり、図3に示したSCSIドライバ群360に相当する。
NAS用OS300においては、ファイルシステム340を介して、このSCSIドライバレイヤ360にI/O制御要求が行なわれる。
また、SCSIドライバレイヤ360においては、前述したLLD310に相当する、iSCSIドライバ313やFCドライバ312を備える。これらのNAS用OS300としての各部の機能は、例えば、Linux等において既知であり、その詳細な説明を省略する。
SAN用OS400は、図4に示すように、インテリジェントCAドライバ420,ターゲットドライバ430,CAスレッド440,ベーシックコントロール450,バックグランドコントロール460,FC−CAドライバ425,iSCSI−CAドライバ424及びSAS−CAドライバ423を備える。
インテリジェントCAドライバ420は、SAN用OS400におけるSAN制御のチャネルアダプタドライバ層に追加されるNASの仮想ドライバ層である。このインテリジェントCAドライバ420は、NAS用OS300との間でNASのI/O要求や応答の授受を行なう。このインテリジェントCAドライバ420は、SCSIコマンドキュー421及びSCSIステータスキュー422を備える。
ターゲットドライバ430には、インテリジェントCAエージェント410が備えられる。このインテリジェントCAエージェント410は、ターゲットドライバ430に追加されたNAS専用機能であり、ゲストOS間通信を介して受信されたNAS用OS300からのI/O要求を制御するブロックである。
さらに、ハイパーバイザ200上においては、1つ以上のSAN専用ボリューム501やNAS専用ボリューム502が備えられる。SAN専用ボリューム501は、SANによるI/O要求が行なわれる記憶領域であり、NAS用ボリューム502は、NASによるI/O要求が行なわれる記憶領域である。すなわち、これらのSAN専用ボリューム501やNAS専用ボリューム502はゲストOS専用ボリュームである。
GOS間通信部500は、ゲストOS間でのデータの授受を行なうものであり、本ストレージ装置1においては、NAS用OS(第1の仮想OS)300とSAN用(第2の仮想OS)OS400との間でデータの授受を行なう。具体的には、例えば、NAS用OS300において受信したI/O要求(SCSIコマンド)をインテリジェントSCSIドライバ311からSAN用OS400側のインテリジェントCAエージェント410に受け渡す。
図5は実施形態の一例としてのストレージ装置1におけるGOS間通信を説明する図、図6はGOS間通信部500の機能構成を示す図である。
図6に示すように、GOS間通信ドライバ510aは、第1送信処理部11,モード確認部25,第2受信処理部26及び第3受信処理部27としての機能を備える。
また、GOS間通信ドライバ510bは、第1受信処理部12,負荷判断部21,第2送信処理部22,第3送信処理部23及び閾値更新部24としての機能を備える。
GOS間通信には、NAS用OS300とSAN用OS400とで共有される共有メモリ520が用いられる。
データ共有領域521には、一方のGOSから他のGOSへ受け渡される(送信される)データ(共有データ)が格納される。すなわち、SAN用OS400からNAS用OS300へ送信されるデータと、NAS用OS300からSAN用OS400へ送信されるデータがそれぞれ格納される。
送信カウンタ値格納領域522には、送信カウンタ値(第1のカウンタ値)が格納される。送信カウンタ値は、後述する送信カウンタ更新部112によって更新され、また後述する更新判断部122によって読み出される。
モード情報格納領域524には、SAN用OS400からNAS用OS300へのデータ送信についてのモードを表すモード情報が格納される。このモード情報は、後述する負荷判断部21によって設定されるものであり、その詳細については後述する。
NAS用OS300からSAN用OS400へのデータ通信には、第1送信処理部11及び第1受信処理部12が用いられる。
また、第1受信処理部12は、第1読出処理部121,更新判断部122及び受信カウンタ更新部123を備える。
第1格納処理部(第1格納処理部)111は、共有データの送信元であるNAS用OS300において、SAN用OS400に送信するデータ(共有データ)を、共有メモリ520のデータ共有領域521に格納する。
更新判断部122は、送信カウンタ値格納領域522に格納されている送信カウンタ値と、受信カウンタ値格納領域523に格納されている受信カウンタ値とを比較する。そして、更新判断部122は、これらの送信カウンタ値と受信カウンタ値とが不一致の場合に、共有メモリ520のデータ共有領域521が更新された、すなわち、NAS用OS300から送信される新たな共有データがデータ共有領域521に格納されたと判断する。
図7は実施形態の一例としてのストレージ装置1における更新判断部122の第1の更新判断タイミングを例示する図である。
更新判断部122には、図示しないタイマから定期的な割り込み(タイマ割り込み)が入力されるようになっており、第1の更新判断タイミングとして、このタイマ割り込みが入力されたタイミングで、データ共有領域521の更新状況をポーリングする。
また、更新判断部122は、データ共有領域521の更新状況のポーリングを、実行する処理の切り替え時(タスク切替時、スレッド切替時)や、処理の非実行状態(アイドル時)にも実施する。
上述の如くタイマ割り込みをきっかけにデータ共有領域521の更新状況をポーリングする場合に、タイマ割り込みの周期が長くすると、割込み要因の発生から検出までに時間を要する。その一方で、タイマ割り込みの周期を短くすると、CPU110の負荷が高くなり、他の処理に支障が生じるおそれがある。
ここで、タスクの切れ間とはタスクが切り替えられるタイミングであり、スレッドの切れ間とはスレッドが切り替えられるタイミングである。アイドル中とは稼動中のCPU110やOSが遊休状態にあり、処理を実行していない状態(処理の非実行状態)である。
この図8に示す例においては、符号P1〜P4によって示される各タイミング(第2の更新判断タイミング)でポーリングが実行されている。具体的には、タスクAからタスクBへの切り替えられるタイミング(符号P1参照)や、タスクBからアイドル状態へ移行するタイミング(符号P2参照)でポーリングが実行される。また、タスクAにおいてスレッドA−1からスレッドA−2へ切り替えられるタイミング(符号P3参照)においてもポーリングが実行される。さらに、アイドル状態(符号P4参照)においてもポーリングが実行される。
また、ストレージ装置1においては、例えばホスト装置からのI/O要求に基づいて実行されるI/Oコマンド毎にタスクやスレッドの切り替えが発生するので、タスクの切れ間やスレッドの切れ間が頻繁に発生する。従って、第1受信処理部12が、上述の如き第2の更新判断タイミングでポーリングを実行することで、データ共有領域521の更新状況を効率的にポーリングすることができる。
すなわち、第1読出処理部121(第1受信処理部12)は、共有メモリ520が更新されている場合に、共有メモリ520のデータ共有領域521から共有データを読み出す。
一方、SAN用OS400からNAS用OS300へのデータ通信には、負荷判断部21,第2送信処理部22,第3送信処理部23,閾値更新部24,モード確認部25,第2受信処理部26及び第3受信処理部27が用いられる。
そして、負荷判断部21は、この算出した負荷状態値を閾値Tと比較して、負荷状態値が閾値T以上であるか否かを判断する。すなわち、負荷判断部21は、SAN用OS400における負荷状態を表す負荷状態値が閾値T以上であるか否かを判断する負荷判断部として機能する。負荷状態値が閾値T以上である状態はSAN用OS400が高負荷状態であることを示し、負荷状態値が閾値T未満である状態はSAN用OS400が低負荷状態であることを示す。
IPIモードにおいては、SAN用OS400の第2送信処理部22が共有データの送信を行ない、NAS用OS300の第2受信処理部26が共有データの受信を行なう。
第2送信処理部22は、図6に示すように、第2格納処理部221,IPI通知部222を備える。
IPI通知部222は、ハイパーバイザ200経由でIPI機能を使用することで、送信先のNAS用OS300のGOS間通信ドライバ510aに割込み通知を行なう。すなわち、IPI通知部222は、NAS用OS300に対して、第2格納処理部221が共有メモリ520のデータ共有領域521に共有データを格納したことを割り込み信号により通知する通知部として機能する。なお、以下、IPI機能による割込み通知をIPI通知という場合がある。
具体的には、IPI通知部222からIPI通知が入力されると、NAS用OS300において割込みハンドラが受信処理タスクを起動し、第2受信処理部26(第2読出処理部261)としての機能が開始される。
第3送信処理部23は、図6に示すように、第3格納処理部231,モード設定部232及びIPI通知部233を備える。
モード設定部232は、共有メモリ520のモード情報格納領域524に動作モードの設定を行なう。
モード設定部232は、その後、SAN用OS400の高負荷状態が継続している場合には、共有メモリ520のモード情報格納領域524の動作モード情報の変更は行なわない(変更を抑止する)。
IPI通知部233は、ハイパーバイザ200経由でIPI機能を使用することで、送信先のNAS用OS300のGOS間通信ドライバ510aに割込み通知を行なう。すなわち、IPI通知部233は、NAS用OS300に対して、第3格納処理部231が共有メモリ520のデータ共有領域521に共有データを格納したことを割り込み信号(IPI通知)により通知する通知部として機能する。
閾値更新部24は、閾値Tの値を更新して最適な閾値を設定する。閾値更新部24は、SAN用OS400からNAS用OS300へのデータ通信時において、モード設定部232により動作モードの変更が行なわれた場合に、その動作モードの変更による効果を判定する。
ここで、負荷状態としては、例えば、基準時間あたりの共有データの送信回数が用いられる。また、本実施形態においては、基準時間として16.6msec(1/60秒)を用いる例について示す。なお、基準時間はこれに限定されるものではなく適宜変更して実施することができる。
このように閾値Tを引き上げることにより、以後、同等の負荷で動作モードの変更が行なわれることを阻止し、処理を効率化することができる。すなわち閾値更新部24は閾値Tの最適化を行なう。
第3受信処理部27としての機能は、IPI通知部233からのIPI通知をきっかけに開始される。
タイマ処理部272は、図示しないタイマを起動させて所定時間の経過を測定する。タイマが所定時間の経過を検知するとタイムアウト出力が行なわれる。タイムアウトが出力されると、タイマ処理部272は第3読出処理部271に通知を行なう。
モード確認部25は、共有メモリ520のモード情報格納領域524に格納されている動作モード情報の確認を行なう。すなわち、モード確認部25は、モード情報格納領域524から動作モード情報を読み出し、IPIモードであるかポーリングモードであるかを確認する。このモード確認部25は、上述した第2読出処理部261や第3読出処理部271が共有メモリ520のデータ共有領域521から共有データの読み出しを行なう毎に、動作モード情報の確認を行なう。
(B)動作
上述の如く構成された、実施形態の一例としてのストレージ装置1のGOS間通信部500によるNAS用OS300からSAN用OS400へのゲストOS間通信を、図9を用いて説明する。
送信側のNAS用OS300において、第1格納処理部111が、共有メモリ520のデータ共有領域521に共有データを格納する(符号S1参照)。また、送信カウンタ更新部112が、共有メモリ520の送信カウンタ値格納領域522の送信カウンタ値をインクリメント(+1)する(符号S2参照)。
また、更新判断部122は受信処理タスク(受信処理関数)をコールし(符号S5参照)、これにより第1読出処理部121の処理が開始される。第1読出処理部121はデータ共有領域521の共有データを、共有メモリ520のデータ共有領域521から読み出す(符号S6参照)。
次に、実施形態の一例としてのストレージ装置1のGOS間通信部500によるSAN用OS400からNAS用OS300へのゲストOS間通信を、図10(a),(b)を用いて説明する。
また、初期状態において、共有メモリ520の送信カウンタ値格納領域522の送信カウンタ値と受信カウンタ値格納領域523の受信カウンタ値とはそれぞれリセットされている。
図10(a),(b)に示すように、モード設定部232は、共有メモリ520のモード情報格納領域524に、SAN用OS400が高負荷状態である場合にはポーリングモードである旨を表す値を、また、SAN用OS400が低負荷状態である場合にはIPIモードである旨を表す値を、動作モード情報として設定する。
IPI通知を受信した受信側のNAS用OS300においては、割込みハンドラが受信処理タスクを起動する(符号S13参照)。すなわち、第2受信処理部26の第2読出処理部261が、共有メモリ520のデータ共有領域521に格納されているデータを読み出す(符号S14参照)。
一方、負荷判断部21が高負荷状態と判断した場合には、ポーリングモードでSAN用OS400からNAS用OS300へのゲストOS間通信が行なわれる。すなわち、IPIモードで共有データの通信が行なわれている状態において、負荷判断部21が高負荷状態と判断した場合には、ポーリングモードへの変更が行なわれる。
IPI通知を受信した受信側のNAS用OS300においては、割込みハンドラが受信処理タスクを起動する(符号S24参照)。
NAS用OS300の受信処理タスクにおいては、第3受信処理部27の第3読出処理部271が、共有メモリ520のデータ共有領域521に共有データが格納されているか否かを確認し、共有データが格納されている場合には、データ共有領域521からその共有データを読み出す(符号S25参照)。
以後、SAN用OS400において高負荷状態が継続している場合には、SAN用OS400(GOS間通信ドライバ510b)においては、上述した第3格納処理部231によるデータ共有領域521への共有データの格納(符号S21参照)だけが実施され、符号S22,S23の処理の実行は抑止される。すなわち、ポーリングモードにおいて、SAN用OS400の高負荷状態が続く場合には、SAN用OS400からNAS用OS300へのIPI通知は発行されない。これにより、IPI通知を送信するために要する時間等のオーバーヘッドを低減することができ、ゲストOS間通信における処理性能を向上させることができる。
なお、ポーリングモードにおいて、SAN用OS400の負荷が低下して低負荷状態に移行した場合には、IPIモードに変更される。
次に、実施形態の一例としてのストレージ装置1における、SAN用OS400からNAS用OS300へのデータ通信時のIPIモードからポーリングモードへの変更時の処理を、図12及び図13を参照しながら、図11に示すフローチャート(ステップA1〜A12)に従って説明する。
負荷状態値Aが閾値Tよりも大きい場合には(ステップA1のYESルート参照)、SAN用OS400が高負荷状態である。この場合には、ステップA2において、モード設定部232がIPIモードからポーリングモードに変更する。すなわち、モード設定部232は、共有メモリ520のモード情報格納領域524に格納されている動作モード情報をIPIモードからポーリングモードに変更する。
ステップA3において、閾値更新部24が、ポーリングモードでSAN用OS400からNAS用OS300に共有データが送信された回数を取得し、この送信回数を値B(送信回数B)とする。
具体的には、閾値更新部24は、負荷状態値Aを60で除算した値(A/60)と、値Cと値Bとの差(C−B)とを比較する。すなわち、(A/60)が(C−B)よりも大きいか否かを判断する。
(A/60)が(C−B)よりも大きい場合には(ステップA6のYESルート参照)、ステップA2でポーリングモードに変更した効果がないと判断することができる。そこで、ステップA7において、モード設定部232はポーリングモードからIPIモードに動作モードを戻すよう変更する。
図12に示す例においては、符号C1により示す各部分において、閾値Tの値が引き上げられている。
一方、ステップA6における比較の結果、(A/60)が(C−B)以下の場合には(ステップA6のNOルート参照)、ステップA2でポーリングモードに変更した効果が表れたと判断することができる。そこで、ポーリングモードからIPIモードへの変更は行なわれない。
図13に示す例においては、符号C2により示す部分において、閾値Tの値が引き下げられている。
ステップA1における比較の結果、負荷状態値Aが閾値T以下である場合には(ステップA1のNOルート参照)、ステップA10において、閾値Tと負荷状態値Aとの差(T−A)が所定の基準値Nよりも小さいか否かを確認する。閾値Tと負荷状態値Aとの差(T−A)が基準値N以上である場合には(ステップA10のNOルート参照)、処理を終了する。
閾値Tと負荷状態値Aとの差(T−A)が基準値Nよりも小さい状態が一定時間以上続いた場合には(ステップA11のYESルート参照)、閾値Tを若干下回る状態の負荷が一定時間継続していることを表す。このような場合には、ステップA12において、閾値更新部24は、閾値Tの値を予め規定された所定値分だけ引き下げる。
図13に示す例においては、符号C3により示す部分において、閾値Tの値が引き下げられている。
なお、図15〜図17は、それぞれ実施形態の一例としてのストレージ装置1におけるSAN用OS400からNAS用OS300への共有データの送信回数の実測例を示す図であり、IPIモード及びポーリングモードでの各1秒あたりの送信回数の実績値を閾値Tととともにグラフとして示す。ただし、図16においては、ポーリングモードでの1秒あたりの送信回数と閾値Tとを示す。また、図15〜図17中において、横軸は時間(単位:秒)を、縦軸は1秒あたりの送信回数(単位:回)を表す。
負荷状態値Xが閾値Tよりも大きい場合には(ステップB1のYESルート参照)、SAN用OS400が高負荷状態である。次に、ステップB2において、この高負荷状態が予め規定された一定時間以上継続しているか否かを判断する。高負荷状態が一定時間以上継続しない場合には(ステップB2のNOルート参照)、一時的に高負荷状態となっただけと考えられるので、処理を終了する。
これにより、SAN用OS400の第2送信処理部22が共有データの送信を行ない、NAS用OS300の第2受信処理部26が共有データの受信を行なう。
そして、ステップB5において、一定時間(例えば、16.6msec)待った後、ステップB6において、閾値更新部24は、IPIモードによってSAN用OS400からNAS用OS300に共有データが送信された回数を取得し、この送信回数を値Z(送信回数Z)とする。なお、16.6msecは1/60秒を近似的に表す値であり、後述するステップB7において、ステップB3でIPIモードに変更したことによる効果を判定するための基準時間として用いられる。
具体的には、閾値更新部24は、負荷状態値Xを60で除算した値(X/60)と、値Zと値Yとの差(Z−Y)とを比較する。すなわち、(X/60)が(Z−Y)よりも大きいか否かを判断する。
(X/60)が(Z−Y)よりも大きい場合には(ステップB7のYESルート参照)、ステップB3でIPIモードに変更した効果がないと判断することができる。そこで、ステップB8において、モード設定部232はIPIモードからポーリングモードに動作モードを戻すよう変更する。
図15に示す例においては、符号C41により示す部分において、IPIモードへの変更が行なわれている。これにより、IPIモードでの1秒あたりの送信回数が閾値Tを超える場合が生じるが、その場合には前述した図11のステップA8における処理により閾値Tが引き上げられ(符号C42参照)、閾値Tが最適化される。
一方、ステップB7における比較の結果、(X/60)が(Z−Y)以下の場合には(ステップB7のNOルート参照)、ステップB3でIPIモードに変更した効果が表れたと判断することができる。そこで、IPIモードからポーリングモードへの変更は行なわれない。
図16に示す例においては、符号C5により示す部分において、閾値Tの値が引き下げられている。このように、IPIモードでの1秒あたりの送信回数が、一定期間、閾値Tよりも大きく下回る場合には、閾値Tが引き下げられる。
ステップB1における比較の結果、負荷状態値Xが閾値T以下である場合には(ステップB1のNOルート参照)、ステップB11において、モード設定部232がポーリングモードからIPIモードに変更する。すなわち、モード設定部232は、共有メモリ520のモード情報格納領域524に格納されている動作モード情報をポーリングモードからIPIモードに変更する。
(C)効果
このように、実施形態の一例としてのストレージ装置1によれば、NAS用OS300からSAN用OS400へのデータ通信において、第1送信処理部11の第1格納処理部111が共有メモリ520のデータ共有領域521に共有データを格納し、第1受信処理部12がこのデータ共有領域521に格納された共有データをポーリングにより読み出す。
これにより、NAS用OS300からIPI通知を行なう必要がなく、ゲストOS間通信に要する時間を短縮して高速化することができる。
そして、第1受信処理部12においては、更新判断部122は、共有メモリ520の送信カウンタ値格納領域522の送信カウンタ値と受信カウンタ値格納領域523の受信カウンタ値とを比較する。そして、これらが不一致の場合に、更新判断部122は、共有メモリ520のデータ共有領域521に共有データが新たに格納されたと判断する。
従って、IPI通知を行なうことなく、NAS用OS300からSAN用OS400へのデータ通信を高速に行なうことができる。
また、本ストレージ装置1によれば、SAN用OS400からNAS用OS300へのデータ通信において、SAN用OS400が低負荷状態においては、SAN用OS400からNAS用OS300へのデータ通信はIPIモードで行なわれる。
SAN用OS400が高負荷状態においては、SAN用OS400からNAS用OS300へのデータ通信はポーリングモードで行なわれる。すなわち、IPI通知部233によるIPI通知を抑止することでIPI通知のオーバーヘッドを減らすことができ、共有データの通信を高速で処理することができる。また、この際、モード設定部232による共有メモリ520のSAN用OS400が高負荷状態においては、モード設定部232によるモード情報確報領域524へのモード情報の格納も抑止され、これによってもSAN用OS400におけるオーバーヘッドを減らすことができ、共有データの通信を高速で処理することができる。
その一方で、動作モードを変更したことによる効果が得られた場合には、閾値更新部24は、閾値Tの値を予め規定された所定値分だけ引き下げる。これにより、以後、同等の負荷となる前にIPIモードに変更させることができ、閾値Tが最適化される。
(D)その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
また、上述した実施形態においては、閾値更新部24が、動作モード変更前後の負荷状態値として基準時間あたりの共有データの送信回数を用いているが、これに限定されるものではなく、例えば、CPU110の使用率やメモリ106の使用率を用いる等、種々変形して実施することができる。
また、上述した実施形態においては、第3格納処理部231がデータ共有領域521に共有データを格納する際に所定のフラグを設定し、第3読出処理部271がこの共有データを読み出す際に、このフラグを削除する。そして、第3読出処理部271がこのフラグの有無を確認することで、データ共有領域521に共有データが格納されているかを判断しているが、これに限定されるものではない。例えば、第3送信処理部に送信カウンタ更新部112と同様の機能を備えるとともに、第3受信処理部27に受信カウンタ更新部123及び更新判断部122と同様の機能を備えてもよく、種々変形して実施することができる。
(付記1)
第1の仮想オペレーティングシステム(OS:Operating System)と第2の仮想OSとを実行する情報処理装置であって、
前記第1の仮想OSと前記第2の仮想OSとのそれぞれからアクセス可能な共有メモリを備え、
共有データを送信する第1の仮想OSにおいて、前記共有メモリのデータ共有領域に共有データを格納する第1格納処理部と、
前記共有データを受信する第2の仮想OSにおいて、前記データ共有領域の更新状況を定期的に確認する更新判断部と、
前記データ共有領域が更新されている場合に、当該データ共有領域から前記共有データを読み出す第1読出処理部と
を備えることを特徴とする、情報処理装置。
前記第1の仮想OSにおいて、前記データ共有領域に前記共有データを格納する際に、前記共有メモリに格納された第1のカウンタ値をインクリメントする第1カウンタ値更新部を備え、
前記第2の仮想OSにおいて、前記データ共有領域から前記共有データを読み出す際に、前記共有メモリに格納された第2のカウンタ値をインクリメントする第2カウンタ値更新部を備え、
前記更新判断部は、前記第1のカウンタ値と前記第2のカウンタ値とを比較し、前記第1のカウンタ値と前記第2のカウンタ値とが不一致の場合に、前記データ共有領域が更新されていると判断する
ことを特徴とする、付記1記載の情報処理装置。
前記更新判断部は、さらに、前記データ共有領域の更新状況を、前記第2のOSにおける処理の切り替え時に確認する
ことを特徴とする、付記1または2に記載の情報処理装置。
(付記4)
前記更新判断部は、さらに、前記データ共有領域の更新状況を、前記第2のOSにおける処理の非実行状態時に確認する
ことを特徴とする、付記1〜3のいずれか1項に記載の情報処理装置。
第1の仮想オペレーティングシステム(OS:Operating System)と第2の仮想OSとを実行する情報処理装置であって、
前記第1の仮想OSと前記第2の仮想OSとのそれぞれからアクセス可能な共有メモリを備え、
前記第1の仮想OSに共有データを送信する第2の仮想OSにおいて、前記共有データを前記共有メモリのデータ共有領域に格納する第2格納処理部と、
前記第2の仮想OSにおいて、前記第1の仮想OSに対して、前記データ共有領域に前記共有データが格納されたことを割り込み信号により通知する通知部と、
第1の仮想OSにおいて、前記データ共有領域から前記共有データを読み出す第2読出処理部と、
前記第2の仮想OSにおいて、当該第2の仮想OSにおける負荷状態を表す負荷状態値が閾値以上であるか否かを判断する負荷判断部と
を備え、
前記負荷判断部による判断結果において、前記第2の仮想OSにおける前記負荷状態値が閾値以上である場合には、前記第2格納処理部が前記データ共有領域に前記共有データを格納し、前記第2読出処理部が前記データ共有領域から定期的に前記共有データを読み出す第1のモードで、前記第2の仮想OSから前記第1の仮想OSへ前記共有データを送信し、
前記負荷判断部による判断結果において、当該第2の仮想OSにおける前記負荷状態値が閾値未満である場合には、前記第2格納処理部が前記データ共有領域に前記共有データを格納し、前記通知部が割り込み信号による前記第1の仮想OSに対する通知を行ない、前記第2読出処理部が、前記データ共有領域から前記共有データを読み出す第2のモードで、前記第2の仮想OSから前記第1の仮想OSへ前記共有データを送信する
ことを特徴とする、情報処理装置。
第2の仮想OSにおいて、前記第1のモードから前記第2のモードへまたは前記第2のモードから前記第1のモードへの動作モードの変更が行なわれた場合に、
前記動作モードの変更前での基準時間あたりの共有データの送信回数と、前記動作モードの変更後の基準時間あたりの共有データの送信回数とを比較し、前記動作モードの変更前での基準時間あたりの共有データの送信回数が、前記動作モードの変更後の基準時間あたりの共有データの送信回数よりも多い場合には、前記動作モードを変更前の状態に戻す
ことを特徴とする、付記5記載の情報処理装置。
前記動作モードの変更前での基準時間あたりの共有データの送信回数が、前記動作モードの変更後の基準時間あたりの共有データの送信回数よりも多い場合には、
前記閾値の値を予め規定された所定値分だけ引き上げる閾値更新部
を備えることを特徴とする、付記6記載の情報処理装置。
前記第1の仮想OSは、SAN制御を行なうSAN用オペレーティングシステムであり、
前記第2の仮想OSは、NAS制御を行なうNAS用オペレーティングシステムであり、
前記情報処理装置は、上位装置とストレージ部との間の通信を処理することを特徴とする、付記1〜7のいずれか1項に記載の情報処理装置。
第1の仮想オペレーティングシステム(OS:Operating System)と第2の仮想OSとをコンピュータに実行させるプログラムであって、
前記第1の仮想OSに共有データを送信する第2の仮想OSにおいて、前記共有データを、前記第1の仮想OSと前記第2の仮想OSとのそれぞれからアクセス可能な共有メモリのデータ共有領域に格納し、
前記第2の仮想OSにおいて、前記第1の仮想OSに対して、前記データ共有領域に前記共有データが格納されたことを割り込み信号により通知し、
第1の仮想OSにおいて、前記データ共有領域から前記共有データを読み出し、
前記第2の仮想OSにおいて、当該第2の仮想OSにおける負荷状態を表す負荷状態値が閾値以上であるか否かを判断し、
前記第2の仮想OSにおける前記負荷状態値が閾値以上である場合には、前記第2の仮想OSにおいて前記データ共有領域に前記共有データを格納し、第1の仮想OSにおいて前記データ共有領域から定期的に前記共有データを読み出す第1のモードで、前記第2の仮想OSから前記第1の仮想OSへ前記共有データを送信し、
当該第2の仮想OSにおける前記負荷状態値が閾値未満である場合には、前記第1の仮想OSにおいて前記データ共有領域に前記共有データを格納し、前記第2の仮想OSにおいて割り込み信号による前記第1の仮想OSに対する通知を行ない、前記第1の仮想OSにおいて前記データ共有領域から前記共有データを読み出す第2のモードで、前記第2の仮想OSから前記第1の仮想OSへ前記共有データを送信する
処理を前記コンピュータに実行させることを特徴とする、プログラム。
第2の仮想OSにおいて、前記第1のモードから前記第2のモードへまたは前記第2のモードから前記第1のモードへの動作モードの変更が行なわれた場合に、
前記動作モードの変更前での基準時間あたりの共有データの送信回数と、前記動作モードの変更後の基準時間あたりの共有データの送信回数とを比較し、前記動作モードの変更前での基準時間あたりの共有データの送信回数が、前記動作モードの変更後の基準時間あたりの共有データの送信回数よりも多い場合には、前記動作モードを変更前の状態に戻す
処理を前記コンピュータに実行させることを特徴とする、付記9記載のプログラム。
前記動作モードの変更前での基準時間あたりの共有データの送信回数が、前記動作モードの変更後の基準時間あたりの共有データの送信回数よりも多い場合には、
前記閾値の値を予め規定された所定値分だけ引き上げる
処理を前記コンピュータに実行させることを特徴とする、付記10記載のプログラム。
11 第1送信処理部
111 第1格納処理部
112 送信カウンタ更新部(第1カウンタ値更新部)
12 第1受信処理部
121 第1読出処理部
122 更新判断部
123 受信カウンタ更新(第2カウンタ値更新部)
21 負荷判断部
22 第2送信処理部
221 第2格納処理部
222 IPI通知部
23 第3送信処理部
231 第3格納処理部
232 モード設定部
233 IPI通知部(通知部)
24 閾値更新部
25 モード確認部
26 第2受信処理部
261 第2読出処理部
27 第3受信処理部
271 第3読出処理部
272 タイマ処理部
30 ドライブエンクロージャ
31 記憶装置
40 コントローラエンクロージャ
100a,100b,100 CM
101,102 CA
103 DA
106 メモリ
107 SSD
108 IOC
110 CPU
200 ハイパーバイザ
300 NAS用OS(第1の仮想OS)
301 NAS用OS(カーネル)
302 NAS用OS(ファンクションファームウェア)
310 LLD
311 インテリジェントSCSIドライバ
312 FCドライバ
313 iSCSIドライバ
320 MLD
330 ULD
340 ファイルシステム
350 Samba/NFSサーバソフトウェア
360 SCSIドライバ群
370 SCSIアプリケーション
380 ネットワークレイヤ
390 OSシステム制御部
400 SAN用OS(第2の仮想OS)
401 SAN用OS(カーネル)
402 SAN用OS(ファンクションファームウェア)
410 インテリジェントCAエージェント
419 システム制御部
420 インテリジェントCAドライバ
421 SCSIコマンドキュー
422 SCSIステータスキュー
423 SAS−CAドライバ
424 iSCSI−CAドライバ
425 FC−CAドライバ
430 ターゲットドライバ
440 CAスレッド
450 ベーシックコントロール
460 バックグランドコントロール
451 オプティマイズドNASI/Oレイヤ
500 GOS間通信部
501 SAN専用ボリューム
502 NAS専用ボリューム
510a,510b GOS間通信ドライバ
520 共有メモリ
521 データ共有領域
522 送信カウンタ値格納領域
523 受信カウンタ値格納領域
524 モード情報格納領域
Claims (9)
- 第1の仮想オペレーティングシステム(OS:Operating System)と第2の仮想OSとを実行する情報処理装置であって、
前記第1の仮想OSと前記第2の仮想OSとのそれぞれからアクセス可能な共有メモリを備え、
共有データを送信する第1の仮想OSにおいて、前記共有メモリのデータ共有領域に共有データを格納する第1格納処理部と、
前記共有データを受信する第2の仮想OSにおいて、前記データ共有領域の更新状況を定期的に確認する更新判断部と、
前記データ共有領域が更新されている場合に、当該データ共有領域から前記共有データを読み出す第1読出処理部と
を備え、
前記第1の仮想OSにおいて、前記データ共有領域に前記共有データを格納する際に、前記共有メモリに格納された第1のカウンタ値をインクリメントする第1カウンタ値更新部を備え、
前記第2の仮想OSにおいて、前記データ共有領域から前記共有データを読み出す際に、前記共有メモリに格納された第2のカウンタ値をインクリメントする第2カウンタ値更新部を備え、
前記更新判断部は、前記第1のカウンタ値と前記第2のカウンタ値とを比較し、前記第1のカウンタ値と前記第2のカウンタ値とが不一致の場合に、前記データ共有領域が更新されていると判断する
ことを特徴とする、情報処理装置。 - 前記更新判断部は、さらに、前記データ共有領域の更新状況を、前記第2の仮想OSにおける処理の切り替え時、または、前記第2の仮想OSにおける処理の非実行状態時のいずれかのタイミングで確認する
ことを特徴とする、請求項1に記載の情報処理装置。 - 第1の仮想オペレーティングシステム(OS:Operating System)と第2の仮想OSとを実行する情報処理装置であって、
前記第1の仮想OSと前記第2の仮想OSとのそれぞれからアクセス可能な共有メモリを備え、
共有データを送信する第1の仮想OSにおいて、前記共有メモリのデータ共有領域に共有データを格納する第1格納処理部と、
前記共有データを受信する第2の仮想OSにおいて、前記データ共有領域の更新状況を定期的に確認する更新判断部と、
前記データ共有領域が更新されている場合に、当該データ共有領域から前記共有データを読み出す第1読出処理部と
を備え、
前記更新判断部は、さらに、前記データ共有領域の更新状況を、前記第2の仮想OSにおける処理の切り替え時に確認する
ことを特徴とする、情報処理装置。 - 第1の仮想オペレーティングシステム(OS:Operating System)と第2の仮想OSとを実行する情報処理装置であって、
前記第1の仮想OSと前記第2の仮想OSとのそれぞれからアクセス可能な共有メモリを備え、
共有データを送信する第1の仮想OSにおいて、前記共有メモリのデータ共有領域に共有データを格納する第1格納処理部と、
前記共有データを受信する第2の仮想OSにおいて、前記データ共有領域の更新状況を定期的に確認する更新判断部と、
前記データ共有領域が更新されている場合に、当該データ共有領域から前記共有データを読み出す第1読出処理部と
を備え、
前記更新判断部は、さらに、前記データ共有領域の更新状況を、前記第2の仮想OSにおける処理の非実行状態時に確認する
ことを特徴とする、情報処理装置。 - 第1の仮想オペレーティングシステム(OS:Operating System)と第2の仮想OSとを実行する情報処理装置であって、
前記第1の仮想OSと前記第2の仮想OSとのそれぞれからアクセス可能な共有メモリを備え、
前記第1の仮想OSに共有データを送信する第2の仮想OSにおいて、前記共有データを前記共有メモリのデータ共有領域に格納する第2格納処理部と、
前記第2の仮想OSにおいて、前記第1の仮想OSに対して、前記データ共有領域に前記共有データが格納されたことを割り込み信号により通知する通知部と、
第1の仮想OSにおいて、前記データ共有領域から前記共有データを読み出す第2読出処理部と、
前記第2の仮想OSにおいて、当該第2の仮想OSにおける負荷状態を表す負荷状態値が閾値以上であるか否かを判断する負荷判断部と
を備え、
前記負荷判断部による判断結果において、前記第2の仮想OSにおける前記負荷状態値が閾値以上である場合には、前記第2格納処理部が前記データ共有領域に前記共有データを格納し、前記第2読出処理部が前記データ共有領域から定期的に前記共有データを読み出す第1のモードで、前記第2の仮想OSから前記第1の仮想OSへ前記共有データを送
信し、
前記負荷判断部による判断結果において、当該第2の仮想OSにおける前記負荷状態値が閾値未満である場合には、前記第2格納処理部が前記データ共有領域に前記共有データを格納し、前記通知部が割り込み信号による前記第1の仮想OSに対する通知を行ない、前記第2読出処理部が、前記データ共有領域から前記共有データを読み出す第2のモードで、前記第2の仮想OSから前記第1の仮想OSへ前記共有データを送信する
ことを特徴とする、情報処理装置。 - 第2の仮想OSにおいて、前記第1のモードから前記第2のモードへまたは前記第2のモードから前記第1のモードへの動作モードの変更が行なわれた場合に、
前記動作モードの変更前での基準時間あたりの共有データの送信回数と、前記動作モードの変更後の基準時間あたりの共有データの送信回数とを比較し、前記動作モードの変更前での基準時間あたりの共有データの送信回数が、前記動作モードの変更後の基準時間あたりの共有データの送信回数よりも多い場合には、前記動作モードを変更前の状態に戻すことを特徴とする、請求項5記載の情報処理装置。 - 前記動作モードの変更前での基準時間あたりの共有データの送信回数が、前記動作モードの変更後の基準時間あたりの共有データの送信回数よりも多い場合には、
前記閾値の値を予め規定された所定値分だけ引き上げる閾値更新部
を備えることを特徴とする、請求項6記載の情報処理装置。 - 前記第1の仮想OSは、SAN制御を行なうSAN用オペレーティングシステムであり、
前記第2の仮想OSは、NAS制御を行なうNAS用オペレーティングシステムであり、
前記情報処理装置は、上位装置とストレージ装置との間の通信を処理することを特徴とする、請求項1〜7記載のいずれか1項に記載の情報処理装置。 - 第1の仮想オペレーティングシステム(OS:Operating System)と第2の仮想OSとをコンピュータに実行させるプログラムであって、
前記第1の仮想OSに共有データを送信する第2の仮想OSにおいて、前記共有データを、前記第1の仮想OSと前記第2の仮想OSとのそれぞれからアクセス可能な共有メモリのデータ共有領域に格納し、
前記第2の仮想OSにおいて、前記第1の仮想OSに対して、前記データ共有領域に前記共有データが格納されたことを割り込み信号により通知し、
第1の仮想OSにおいて、前記データ共有領域から前記共有データを読み出し、
前記第2の仮想OSにおいて、当該第2の仮想OSにおける負荷状態を表す負荷状態値が閾値以上であるか否かを判断し、
前記第2の仮想OSにおける前記負荷状態値が閾値以上である場合には、前記第2の仮想OSにおいて前記データ共有領域に前記共有データを格納し、第1の仮想OSにおいて前記データ共有領域から定期的に前記共有データを読み出す第1のモードで、前記第2の仮想OSから前記第1の仮想OSへ前記共有データを送信し、
当該第2の仮想OSにおける前記負荷状態値が閾値未満である場合には、前記第1の仮想OSにおいて前記データ共有領域に前記共有データを格納し、前記第2の仮想OSにおいて割り込み信号による前記第1の仮想OSに対する通知を行ない、前記第1の仮想OSにおいて前記データ共有領域から前記共有データを読み出す第2のモードで、前記第2の仮想OSから前記第1の仮想OSへ前記共有データを送信する
処理を前記コンピュータに実行させることを特徴とする、プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015016471A JP6464777B2 (ja) | 2015-01-30 | 2015-01-30 | 情報処理装置及びプログラム |
US14/992,071 US9928185B2 (en) | 2015-01-30 | 2016-01-11 | Information processing apparatus and computer-readable recording medium having program recorded therein |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015016471A JP6464777B2 (ja) | 2015-01-30 | 2015-01-30 | 情報処理装置及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016143120A JP2016143120A (ja) | 2016-08-08 |
JP6464777B2 true JP6464777B2 (ja) | 2019-02-06 |
Family
ID=56554353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015016471A Active JP6464777B2 (ja) | 2015-01-30 | 2015-01-30 | 情報処理装置及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US9928185B2 (ja) |
JP (1) | JP6464777B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017078662A1 (en) * | 2015-11-02 | 2017-05-11 | Hewlett Packard Enterprise Development Lp | Storage area network diagnostic data |
KR102461276B1 (ko) * | 2016-03-10 | 2022-10-31 | 삼성전자주식회사 | 저밀도 패리티 검사 코드를 지원하는 통신 시스템에서 신호를 수신하는 장치 및 방법 |
CN108073545A (zh) * | 2016-11-17 | 2018-05-25 | 联芯科技有限公司 | 一种多处理器通信装置及方法 |
US10754588B2 (en) * | 2017-03-31 | 2020-08-25 | Intel Corporation | Performing data operations in a storage area network |
JP6762924B2 (ja) | 2017-12-01 | 2020-09-30 | 株式会社東芝 | 情報処理装置、情報処理方法、およびプログラム |
JP6958308B2 (ja) * | 2017-12-11 | 2021-11-02 | 株式会社オートネットワーク技術研究所 | 車載更新装置、プログラム及び、プログラム又はデータの更新方法 |
JP6776292B2 (ja) | 2018-03-20 | 2020-10-28 | 株式会社東芝 | 情報処理装置、情報処理方法、およびプログラム |
US10956240B2 (en) * | 2018-10-30 | 2021-03-23 | Blackberry Limited | Sharing data by a virtual machine |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6314501B1 (en) | 1998-07-23 | 2001-11-06 | Unisys Corporation | Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory |
JP2002169699A (ja) * | 2000-11-30 | 2002-06-14 | Fujitsu Ltd | 複数の仮想計算機を用いた通信システム |
JP2004220216A (ja) | 2003-01-14 | 2004-08-05 | Hitachi Ltd | San/nas統合型ストレージ装置 |
CN101006433B (zh) | 2004-08-25 | 2012-01-11 | 日本电气株式会社 | 信息通信装置和程序执行环境控制方法 |
US7689747B2 (en) | 2005-03-28 | 2010-03-30 | Microsoft Corporation | Systems and methods for an augmented interrupt controller and synthetic interrupt sources |
US7913009B2 (en) * | 2007-06-20 | 2011-03-22 | Microsoft Corporation | Monitored notification facility for reducing inter-process/inter-partition interrupts |
-
2015
- 2015-01-30 JP JP2015016471A patent/JP6464777B2/ja active Active
-
2016
- 2016-01-11 US US14/992,071 patent/US9928185B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20160224482A1 (en) | 2016-08-04 |
JP2016143120A (ja) | 2016-08-08 |
US9928185B2 (en) | 2018-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6464777B2 (ja) | 情報処理装置及びプログラム | |
US8607230B2 (en) | Virtual computer system and migration method of virtual computer | |
JP5658197B2 (ja) | 計算機システム、仮想化機構、及び計算機システムの制御方法 | |
US8898385B2 (en) | Methods and structure for load balancing of background tasks between storage controllers in a clustered storage environment | |
US10642704B2 (en) | Storage controller failover system | |
WO2017162179A1 (zh) | 用于存储系统的负载再均衡方法及装置 | |
US7886183B2 (en) | Providing fault tolerant storage system to a cluster | |
JP6409613B2 (ja) | 情報処理装置,マルチパス制御方法及びマルチパス制御プログラム | |
US10318393B2 (en) | Hyperconverged infrastructure supporting storage and compute capabilities | |
EP3329368A1 (en) | Multiprocessing within a storage array system executing controller firmware designed for a uniprocessor environment | |
JP2010271808A (ja) | ストレージ装置及びデータコピー方法 | |
JP2017091456A (ja) | 制御装置、制御プログラムおよび制御方法 | |
JP2011154697A (ja) | Raidと関連するアプリケーションの実行のための方法およびシステム | |
JP2008112399A (ja) | ストレージ仮想化スイッチおよびコンピュータシステム | |
JP2014063497A (ja) | 論理装置の機能を有するpciエクスプレススイッチ | |
JP6241178B2 (ja) | ストレージ制御装置,ストレージ制御方法及びストレージ制御プログラム | |
US20170052709A1 (en) | Storage system, storage control apparatus, and storage control method | |
KR101137085B1 (ko) | 데이터 저장 시스템의 논리 파티션에서 초기 프로그램 로드를 관리하는 방법, 이를 수행하기 위한 저장 컨트롤러, 및 컴퓨터 판독 가능 저장매체 | |
US11093175B1 (en) | Raid data storage device direct communication system | |
US11016698B2 (en) | Storage system that copies write data to another storage system | |
JP5511546B2 (ja) | フォールトトレラントの計算機システム、複数の物理サーバとストレージ装置とに接続されるスイッチ装置、及び、サーバ同期制御方法 | |
EP3871087B1 (en) | Managing power request during cluster operations | |
JP7115322B2 (ja) | ストレージ装置、ストレージ制御装置及びストレージ制御プログラム | |
US11467930B2 (en) | Distributed failover of a back-end storage director | |
US7853758B2 (en) | Avoiding failure of an initial program load in a logical partition of a data storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171215 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180717 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180731 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180928 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20181211 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181224 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6464777 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |