JP2013206229A - アクセス制御方法、サーバ装置およびストレージ装置 - Google Patents

アクセス制御方法、サーバ装置およびストレージ装置 Download PDF

Info

Publication number
JP2013206229A
JP2013206229A JP2012075578A JP2012075578A JP2013206229A JP 2013206229 A JP2013206229 A JP 2013206229A JP 2012075578 A JP2012075578 A JP 2012075578A JP 2012075578 A JP2012075578 A JP 2012075578A JP 2013206229 A JP2013206229 A JP 2013206229A
Authority
JP
Japan
Prior art keywords
service level
virtual machine
server
queue
input
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.)
Granted
Application number
JP2012075578A
Other languages
English (en)
Other versions
JP5891900B2 (ja
Inventor
Masaru Aramitsu
勝 新満
Hisaaki Okayasu
尚昭 岡安
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012075578A priority Critical patent/JP5891900B2/ja
Priority to US13/790,946 priority patent/US9276824B2/en
Priority to EP13158537.4A priority patent/EP2648127B1/en
Priority to CN201310092405.8A priority patent/CN103365803B/zh
Priority to KR1020130031744A priority patent/KR101431970B1/ko
Publication of JP2013206229A publication Critical patent/JP2013206229A/ja
Application granted granted Critical
Publication of JP5891900B2 publication Critical patent/JP5891900B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • H04L41/5022Ensuring fulfilment of SLA by giving priorities, e.g. assigning classes of service
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】サーバ装置で実行される仮想機械からストレージ装置へのアクセス制御において、アクセスの優先制御を行う。
【解決手段】仮想機械から入出力命令とともに出力された仮想機械を識別する仮想機械識別子に基づいて、仮想機械識別情報とサービスレベルとの対応関係を記憶する記憶部を参照して、仮想機械識別子に対応するサービスレベルを取得し、サーバ装置およびストレージ装置の少なくとも一方において、仮想機械からの入出力命令を取得したサービスレベルに従って実行する。
【選択図】図1

Description

本発明は、サーバ装置上の仮想機械からストレージ装置へのアクセスの制御方法、サーバ装置およびストレージ装置に関する。
従来、仮想サーバを提供する複数のサーバと、ストレージ装置と、を含む計算機システムがある。複数のサーバからストレージ装置にデータアクセスが実行される場合、実行されるデータアクセスの総数に応じて、計算機システムの処理能力は分散される。そのため、実行されるデータアクセスが増加すると、1つのデータアクセス当りの実行時間も長くなる。その結果、計算機システムの処理性能が低下すことになる。
上記技術に関連して、仮想サーバを提供するサーバとストレージシステムの両方を考慮して、計算機システム全体としての性能管理を行なう計算機システムについて知られている。この計算機システムは、仮想サーバ毎に仮想サーバに関するI/O優先度にしたがって仮想サーバのI/O処理を制御することで、仮想サーバ間のI/O処理性能の調整を行なうサーバと、ストレージシステムの設定を連携させる。
また、移動後の仮想マシンにおけるアレイグループへの入出力(I/O)を考慮した仮想マシンの移動を行なう管理サーバについて知られている。この管理サーバは、移動後の仮想マシンの予測I/O量を算出し、移動後の仮想マシンに接続しているアレイグループの最大I/O量が予測I/O量が超えていた場合、最大I/O量が予測I/O量を下回るアレイグループを検索する。
特開2010−108409号公報 特開2010−108114号公報
計算機システムの処理性能が低下しないようにするために、例えば、ストレージ装置において、ストレージ装置と接続するサーバ毎に定義したアクセスレベルに応じて、ストレージ装置へのデータアクセスの優先制御を行なうことが考えられる。
しかし、例えば、サーバが提供する仮想サーバ毎にサービスレベルを設定したい場合、ストレージ装置において、アクセスレベルに応じて、ストレージ装置へのデータアクセスの優先制御を行なうことは難しい。
1つの側面では、本発明は、仮想機械からストレージ装置へのデータアクセスを、仮想機械毎に制御することができるアクセス制御方法を提供することを目的とする。
本アクセス制御方法の1つの観点によれば、本アクセス制御方法は、サーバ装置で実行される仮想機械からストレージ装置へのアクセス制御方法であって、以下の処理を行なう。
前記仮想機械から入出力命令とともに出力された前記仮想機械を識別する仮想機械識別子に基づいて、仮想機械識別子とサービスレベルとの対応関係を記憶する記憶部を参照して、前記仮想機械識別子に対応するサービスレベルを取得する。
前記サーバ装置および前記ストレージ装置の少なくとも一方において、前記仮想機械からの入出力命令を取得した前記サービスレベルに従って実行する。
発明の1つの態様では、仮想機械からストレージ装置へのデータアクセスを、仮想機械毎に制御することができるアクセス制御方法を提供できる。
ストレージシステム100の概要を説明する図である。 ストレージシステム200の構成例を示す図である。 ストレージシステム200の概要を説明する図である。 サービスレベル管理テーブル400の例を示す図である。 仮想サーバ管理テーブル500の例を示す図である。 物理サーバ210に備わる1次キュー331の例を示す図である。 ストレージ装置に備わる2次キュー341の例を示す図である。 仮想サーバが送信するI/O要求パケット800の例を示す図である。 物理サーバ210による仮想サーバの監視処理を示すフローチャートである。 物理サーバ210によるI/O要求の実行処理を示すフローチャートである。 物理サーバ210によるI/O要求の実行処理を示すフローチャートである。 システム管理サーバ250によるサービスレベル管理テーブル400の監視処理を示すフローチャートである。 システム管理サーバ250による仮想サーバ管理テーブル500の監視処理を示すフローチャートである。 ストレージ装置220によるサービスレベル管理テーブル400の監視処理を示すフローチャートである。 ストレージ装置220によるI/O要求の実行処理を示すフローチャートである。 ストレージ装置220によるI/O要求の実行処理を示すフローチャートである。 ストレージ装置220によるI/O要求の実行処理を示すフローチャートである。
以下、本発明の実施形態の一例について、図1〜図17に基づいて説明する。なお、以下に説明する実施形態はあくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図ではない。すなわち、本実施形態は、その趣旨を逸脱しない範囲で、各実施例を組み合わせるなど種々変形して実施することができる。また、図10−17にフローチャートの形式で示した処理手順は、処理の順番を限定する趣旨ではない。したがって、可能な場合には、処理の順番を入れ替えても良いのは当然である。
≪実施例≫
図1は、一実施例に係るストレージシステム100の概要を説明する図である。
ストレージシステム100は、サーバ装置110と、ストレージ装置120と、を備える。そして、サーバ装置110とストレージ装置120とは、ネットワーク130などを介して互いに通信可能に接続している。
サーバ装置110は、サーバ装置110に備わる図示しないCPU(Central Processing Unit)が所定のプログラムを実行することにより1または2以上の仮想機械111−0、111−1、・・・および111−nを提供する。ただし、nは1以上の整数とする。仮想機械111−0、111−1、・・・および111−nの任意の仮想機械を「仮想機械111」という。
サーバ装置110は、記憶部112と、サービスレベル別キュー113−0、113−1、・・・および113−mと、制御部114と、インタフェース部115と、を含むことができる。ただし、mは1以上の整数とする。サービスレベル別キュー113−0、113−1、・・・および113−mの任意のサービスレベル別キューを「サービスレベル別キュー113」という。
記憶部112は、仮想機械111を識別する仮想機械識別子に対応付けて仮想機械111に設定されたサービスレベルを記憶する。記憶部112には、例えば、RAM(Random Access Memory)などメモリを使用することができる。
サービスレベル別キュー113は、制御部114の操作により、仮想機械111からの入出力命令116を仮想機械111に対応するサービスレベル別に記憶し待ち合わせる。
制御部114は、サービスレベルに応じてサービスレベル別キュー113に記憶されている入出力命令116を待ち行列順で読み出す。
インタフェース部115は、ストレージ装置120に対して、制御部114が読み出した入出力命令116を仮想機械に対応する仮想機械識別子とともに発行する。
ストレージ装置120は、記憶部121と、インタフェース部122と、サービスレベル別入出力キュー123−0、123−1、・・・および123−jと、制御部124と、を含むことができる。ただし、jは1以上の整数とする。サービスレベル別入出力キュー123−0、123−1、・・・および123−jの任意のサービスレベル別入出力キューを「サービスレベル別入出力キュー123」という。
ストレージ装置120には、さらに、記憶装置125を含むことができる。記憶装置125は、任意のデータを記憶する記憶装置である。記憶装置125には、例えば、1または2以上の磁気ディスク装置などを用いることができる。
記憶部121は、サーバ装置110で実行される仮想機械111を識別する仮想機械識別子に対応付けて仮想機械111に設定されたサービスレベルを記憶する。記憶部121には、RAMなどのメモリを使用することができる。
インタフェース部122は、入出力命令116を仮想機械識別子とともに受け付ける。
サービスレベル別入出力キュー123は、制御部124の操作により、受け付けた入出力命令116を、仮想機械識別子に対応するサービスレベル別に記憶して待ち合わせる。
制御部124は、サービスレベルに応じてサービスレベル別入出力キュー123に記憶されている入出力命令116を待ち行列順で読み出して、記憶装置125へのアクセスを実行する。
なお、図1の例では、簡単のために、サーバ装置110とストレージ装置120とをそれぞれ1台ずつ例示したが、ストレージシステム100を図1に示した構成に限定する趣旨ではない。サーバ装置110は、複数のストレージ装置120と接続してもよいし、ストレージ装置120は、複数のサーバ装置110と接続してもよい。
以上の構成において、例えば、サーバ装置110およびストレージ装置120の少なくとも一方は、仮想機械111から入出力命令116とともに出力された仮想機械111を識別する仮想機械識別子に基づいて、仮想機械識別子とサービスレベルとの対応関係を記憶する記憶部112または121を参照して、仮想機械識別子に対応するサービスレベルを取得する。
そして、サーバ装置110およびストレージ装置120の少なくとも一方は、仮想機械111からの入出力命令116を仮想機械識別子に対応するサービスレベルに従って実行する。
以上のように、ストレージシステム100が実現するストレージアクセス制御方法によると、仮想機械111からストレージ装置120へのデータアクセスを、仮想機械111毎に制御するストレージアクセス制御方法を実現することができる。
≪その他の実施例≫
図2は、その他の実施例に係るストレージシステム200の構成例を示す図である。
ストレージシステム200は、物理サーバ210と、ストレージ装置220と、システム管理サーバ250と、を備える。物理サーバ210と、ストレージ装置220と、システム管理サーバ250と、互いにネットワークを介して通信可能に接続している。また、物理サーバ210は、ストレージ装置220と特定のI/Fを使用して通信可能に接続することができる。
なお、図2では、ストレージ装置220に対して物理サーバ210が1台だけ接続している場合を例示しているが、ストレージ装置220は、複数の物理サーバ210を接続することができる。同様に、物理サーバ210は、複数のストレージ装置220と接続することができる。
物理サーバ210は、プロセッサ211と、メインメモリ212と、記憶装置213と、ネットワークI/F214と、ストレージI/F215と、媒体駆動装置216と、を備える情報処理装置である。そして、これらの装置がバスに接続されて相互にデータを受け渡しが行なえる構成となっている。
プロセッサ211は、周辺機器や各種ソフトウェアを実行する他に本実施例に係るストレージ制御を実現するプログラム、例えば、記憶装置213に記憶されている仮想サーバ管理プログラムなどを実行する演算装置である。
メインメモリ212は、プログラムを実行するために使用される揮発性の記憶装置である。メインメモリ212には、例えば、RAMなどを使用することができる。
記憶装置213は、物理サーバ210が動作するために必要なプログラムやデータの他に本実施例に係るストレージ制御を実現するプログラムを記憶する不揮発性の記憶装置である。記憶装置213には、例えば、磁気ディスク記憶装置などを使用することができる。
記憶装置213には、例えば、サービスレベル管理テーブル、仮想サーバ管理テーブル、仮想サーバ管理プログラム、I/O要求実行プログラムなどを記憶することができる。物理サーバ210は、例えば、起動時にシステム管理サーバ250からサービスレベル管理テーブル、仮想サーバ管理テーブルを取得して記憶装置213に記憶することができる。
なお、サービスレベル管理テーブルについては、図3で後述する。また、仮想サーバ管理テーブルについては、図4で後述する。また、仮想サーバ管理プログラムは、後述する図9で後述する処理を実現するためのプログラムである。I/O要求実行プログラムは、後述する図10−図11で後述する処理を実現するためのプログラムである。
ネットワークI/F214は、ネットワーク260に接続する装置である。
ストレージI/F215は、ストレージ装置220と特定の規格にしたがって通信を行なうI/Fである。ストレージI/F215には、例えば、Fiber ChannelのHBA(Host Bus Adapter)や、iSCSI(Internet Small Computer System Interface)のNIC(Network Interface Card)などを使用することができる。
ストレージI/F215は、例えば、プロセッサ215aと、メモリ215bと、I/Fポート215cと、を備える。プロセッサ215aは、I/Fポート215cを介して接続するストレージ装置220と特定の規格にしたがった通信を実現するために必要なプログラムを実行する演算装置である。また、プロセッサ215aは、本実施例に係るストレージ制御を実現するプログラム、例えば、記憶装置213に記憶されているI/O要求実行プログラムなどを実行する。メモリ215bには、後述する1次キュー330を格納することができる。
媒体駆動装置216は、メインメモリ212や記憶装置213のデータを可搬記憶媒体、例えば、フロッピイディスクやMOディスク、CD−RやDVD−Rなどに出力し、または可搬記憶媒体からプログラムやデータ等を読み出す装置である。
ストレージ装置220は、常用コントローラ230と待機コントローラ240とを備える。常用コントローラ230と待機コントローラ240とは、内部バス221で接続され、互いにデータの授受を行なうことができる。
常用コントローラ230と待機コントローラ240とは、図4で後述するサービスレベル管理テーブル400に設定される遅延フラグを利用して使い分けることができる。例えば、常用コントローラ230は、遅延フラグがONの場合にだけ、待機コントローラ240にI/O要求を転送してもよい。
常用コントローラ230は、プロセッサ231と、キャッシュメモリ232と、フラッシュメモリ233と、ネットワークI/F234と、ストレージI/F235と、媒体駆動装置236と、を備える。そして、これらの装置がバスに接続されて相互にデータを受け渡しが行なえる構成となっている。
プロセッサ231は、記憶装置222に対する制御のためのプログラムを実行する他に本実施例に係るストレージ制御を実現するプログラム、例えば、フラッシュメモリ233に記憶されているサービスレベル同期プログラムやI/O制御プログラムなどを実行する演算装置である。
キャッシュメモリ232は、プロセッサ231が実行するプログラムや、後述する2次キュー340、記憶装置222に記憶されているデータの一部などを記憶するためなどに使用される揮発性の記憶装置である。キャッシュメモリ232には、例えば、RAMなどを使用することができる。
フラッシュメモリ233は、常用コントローラ230が動作するために必要なプログラムやデータの他に本実施例に係るストレージ制御を実現するプログラムを記憶する不揮発性の記憶装置である。
フラッシュメモリ233には、例えば、サービスレベル管理テーブル、仮想サーバ管理テーブル、サービスレベル同期プログラム、I/O制御プログラムなどを記憶することができる。常用コントローラ230は、例えば、起動時にシステム管理サーバ250からサービスレベル管理テーブル、仮想サーバ管理テーブルを取得してフラッシュメモリ233に記憶することができる。
なお、サービスレベル同期プログラムは、後述する図14に示す処理を実現するためのプログラムである。I/O制御プログラムは、後述する図15−図17に示す処理を実現するためのプログラムである。
ネットワークI/F234は、ネットワーク260に接続する装置である。
I/Fポート235は、ストレージI/F215と特定の規格にしたがって通信を行なうI/Fである。
媒体駆動装置236は、キャッシュメモリ232やフラッシュメモリ233のデータを可搬記憶媒体、例えば、フロッピイディスクやMOディスク、CD−RやDVD−Rなどに出力し、または可搬記憶媒体からプログラムやデータ等を読み出す装置である。
待機コントローラ240は、常用コントローラ230と同様の構成を含むことができる。例えば、待機コントローラ240に備わるプロセッサ241、キャッシュメモリ242、およびフラッシュメモリ243は、それぞれ、常用コントローラ230に備わるプロセッサ231、キャッシュメモリ232、およびフラッシュメモリ233と同様のものを使用することができる。同様に、待機コントローラ240に備わるネットワークI/F244、I/Fポート245、および媒体駆動装置246は、それぞれ、常用コントローラ230に備わるネットワークI/F234、I/Fポート235、および媒体駆動装置236と同様のものを使用することができる。したがって、待機コントローラ240についての説明は省略する。
システム管理サーバ250は、プロセッサ251と、メインメモリ252と、記憶装置253と、ネットワークI/F254と、媒体駆動装置255と、を備える情報処理装置である。そして、これらの装置がバスに接続されて相互にデータを受け渡しが行なえる構成となっている。ただし、システム管理サーバ250は、独立した1つの情報処理装置であることに限定するものではない。例えば、システム管理サーバ250は、物理サーバ210が提供する後述の仮想サーバ311によっても実現することができる。
システム管理サーバ250に備わるプロセッサ251、メインメモリ252、および記憶装置253は、それぞれ、物理サーバ210に備わるプロセッサ211、メインメモリ212、および記憶装置213と同様のものを使用することができる。同様に、システム管理サーバ250に備わるネットワークI/F254、および媒体駆動装置255は、それぞれ、物理サーバ210に備わるネットワークI/F214、および媒体駆動装置216と同様のものを使用することができる。したがって、プロセッサ251、メインメモリ252、記憶装置253、ネットワークI/F254、および媒体駆動装置255についての具体的な説明は省略する。
なお、記憶装置253には、サービスレベル管理テーブル、仮想サーバ管理テーブル、サービスレベル管理テーブル用の管理プログラム、および仮想サーバ管理テーブル用の管理プログラムなどを記憶することができる。サービスレベル管理テーブル用の管理プログラムは、後述する図12に示す処理を実現するためのプログラムである。仮想サーバ管理テーブル用の管理プログラムは、後述する図13に示す処理を実現するためのプログラムである。
なお、メインメモリ212、252、メモリ215c、記憶装置213、253、キャッシュメモリ232、242、フラッシュメモリ233、243、および可搬記憶媒体などの情報処理装置に読取り可能な記憶媒体には、非一時的(non−transitory)な媒体を使用することができる。
図3は、ストレージシステム200の概要を説明する図である。
物理サーバ210は、所定のプログラムを実行することにより、VMM(Virtual Machine Monitor)310を提供する。このVMM310は、1または2以上の仮想サーバ(VM:Virtual Machine)311を提供することができる。図3では、VM01−03の3つの仮想サーバ311をVMM310が提供している場合を例示している。ただし、VMM310が提供する仮想サーバ311の数を限定する趣旨ではない。以下に記載する(1)−(12)は、図3に記載する(1)−(12)に対応する。
(1)VMM310は、仮想サーバ311からI/O要求を受信すると、ストレージI/F215に転送する。ストレージI/F215は、VMM310から受信したI/O要求を、仮想サーバ311毎に入出力用のキューを設けた一時キュー320に格納する。
図3には、3つの一時キュー321、322および323を使用する場合について例示しているが、使用する一時キュー320の数を限定する趣旨ではない。一時キュー321は、VM01から受信したI/O要求を格納し、VM01に出力する応答を格納するキューである。一時キュー321は、VM02から受信したI/O要求を格納し、VM01に出力する応答を格納するキューである。一時キュー321は、VM01から受信したI/O要求を格納し、VM01に出力する応答を格納するキューである。なお、図3に示すCOM01、02、・・・は、I/O要求を示す。また、図3に示すSTS01、02、・・・は、I/O要求に対する応答を示す。
(2)ストレージI/F215は、一時キュー320に格納してあるI/O要求を取り出す。そして、ストレージI/F215は、取り出したI/O要求を1次キュー330に格納する。なお、1次キュー330には、I/O要求を格納する1次キュー331と、I/O要求に対する応答を格納する1次キュー332と、が含まれる。
1次キュー331は、I/O要求の要求元の仮想サーバ311のサービスレベル毎に、I/O要求を格納するキューである。1次キュー331の具体例については、図6で後述する。1次キュー332は、FIFO(First−In First−Out)形式のデータ構造により実現する単一のキューであるから説明は省略する。
(3)ストレージI/F215は、要求元の仮想サーバ311毎に、要求元の仮想サーバ311のサービスレベルに応じたI/O要求数のI/O要求を1次キュー331から取り出し、ストレージ装置220に対してI/O要求を発行する。ただし、図5で後述する仮想サーバ管理テーブル500に0でないI/O抑止数が設定されている仮想サーバ311からのI/O要求の場合、ストレージI/F215は、要求元の仮想サーバ311のサービスレベルに応じたI/O要求数からI/O抑止数を減じた数のI/O要求を発行する。
ストレージI/F215は、一定期間毎に、1秒間あたりの転送データ量を算出する。そして、ストレージI/F215は、算出した転送データ量が、サービスレベル管理テーブル400の性能制限を超過すると、その超過分に基づいてI/O抑止数を算出する。そして、ストレージI/F215は、算出したI/O抑止数を、仮想サーバ管理テーブル500の、性能制限を超過した仮想サーバ311に設定する。
(4)ストレージ装置220の常用コントローラ230は、物理サーバ210から受信したI/O要求を、2次キュー340に格納する。2次キュー340には、I/O要求を格納する2次キュー341と、I/O要求の実行結果を格納する2次キュー342と、が含まれる。2次キュー341は、I/O要求の要求元の仮想サーバ311のサービスレベル毎に、I/O要求を格納するキューである。2次キュー341の具体例については、図7で後述する。2次キュー342は、1次キュー332と同様に、FIFO形式のデータ構造により実現する単一のキューであるから説明は省略する。
(5)常用コントローラ230は、要求元の仮想サーバ311毎に、要求元の仮想サーバ311のサービスレベルに応じたI/O要求数のI/O要求を2次キュー341から取り出して実行する。そして、常用コントローラ230は、I/O要求の実行結果を2次キュー342に格納する。また、常用コントローラ230は、2次キュー342から応答を取り出して物理サーバ210に送信する。
常用コントローラ230および待機コントローラ240は、一定期間毎に、I/O要求を受信してから応答を返すまでの応答時間の平均、すなわち、平均応答時間を算出する。そして、例えば、常用コントローラ230は、平均応答時間がサービスレベル管理テーブル400の移譲レベルを超えたことを検出する。この場合、常用コントローラ230は、平均応答時間が移譲レベルを超えたI/O要求の要求元である仮想サーバ311のサービスレベルに対応する、サービスレベル管理テーブル400の遅延フラグをONに設定する。
また、常用コントローラ230および待機コントローラ240は、平均応答時間がサービスレベル管理テーブル400の復帰レベル以下になると、平均応答時間が復帰レベル以下となったことを検出する。この場合、常用コントローラ230および待機コントローラ240は、I/O要求の要求元である仮想サーバ311のサービスレベルに対応する、サービスレベル管理テーブル400の遅延フラグをOFFに設定する。
(6)一方、サービスレベル管理テーブル400の遅延フラグがONに設定されている場合、常用コントローラ230は、遅延フラグがONに設定されているサービスレベルの仮想サーバ311から受信したI/O要求を待機コントローラ240に転送する。
(7)待機コントローラ240は、常用コントローラ230から受信したI/O要求を、2次キュー350に格納する。2次キュー350は、2次キュー340と同様の構成を用いることができるので説明は省略する。
(8)待機コントローラ240は、要求元の仮想サーバ311毎に、要求元の仮想サーバ311のサービスレベルに応じたI/O要求数のI/O要求を2次キュー351から取り出して実行する。そして、待機コントローラ240は、I/O要求の実行結果を2次キュー352に格納する。
(9)待機コントローラ240は、2次キュー352から応答を取り出して常用コントローラ230に出力する。常用コントローラ230は、待機コントローラ240から受信した応答を物理サーバ210に出力する。
(10)ストレージI/F215は、ストレージ装置220から応答を受信すると、受信した応答を1次キュー332に格納する。そして、(11)ストレージI/F215は、1次キュー332から応答を取り出して、取り出した応答を一時キュー320に格納する。ストレージI/F215は、一時キュー320から応答を取り出してVMM310に出力する。
(12)VMM310は、ストレージI/F215から受信した応答を、仮想サーバVM01−03のいずれかに転送する。
図4は、サービスレベル管理テーブル400の例を示す図である。
サービスレベル管理テーブル400には、サービスレベル、I/O優先数、性能制限、平均I/O応答時間、移譲レベル、復帰レベル、および遅延フラグについての情報などを含むことができる。
サービスレベルは、仮想サーバ311毎に設定されるサービスの優先度である。本実施例では、「高」、「中」および「低」の3種類を使用する。サービスレベルは、「高」が最も優先度が高く、「高」の次に「中」の優先度が高い。そして、「低」の優先度が最も低い。
I/O優先数は、サービスレベル毎に、1度に実行できるI/O発行数の上限を定めた値である。
性能制限は、ライト処理に対する性能制限と、リード処理に対する性能制限と、を含むことができる。性能制限とは、サービスレベル毎に許可する転送データ量(MB/S)の上限である。
平均I/O応答時間は、仮想サーバ311のI/O要求の実行に要する平均時間(ms)である。例えば、物理サーバ210は、I/O要求を発行してからその応答を受信するまでの時間の平均時間を、平均I/O応答時間として算出することができる。また、ストレージ装置220は、I/O要求を受信してからそのI/O要求に対する応答を出力するまでの時間の平均時間を、平均I/O応答時間として算出することができる。
移譲レベルは、受信するI/O要求を全て常用コントローラが処理する通常モードから、常用コントローラが受信するI/O要求の一部の処理を待機コントローラに移譲する負荷分散モードに移行するか否かを判別するための閾値である。移譲レベルは、平均I/O応答時間に対する割合で表わすことができる。
復帰レベルは、負荷分散モードから通常モードに復帰するか否かを判別するための閾値である。復帰レベルも、移譲レベルと同様に、平均I/O応答時間に対する割合で表わすことができる。
遅延フラグは、受信するI/O要求を常用コントローラまたは待機コントローラのどちらで実行するかを判定するためのフラグである。遅延フラグがOFFの場合、受信するI/O要求を常用コントローラが実行する。また、遅延フラグがONの場合、受信するI/O要求を待機コントローラが実行する。
図5は、仮想サーバ管理テーブル500の例を示す図である。
仮想サーバ管理テーブル500には、物理サーバ210、仮想サーバ、識別子、サービスレベル、平均I/O処理時間(物理サーバ)、転送データ量、I/O抑止数、および平均I/O処理時間(ストレージ装置)についての情報などを含むことができる。
物理サーバ210は、物理サーバ210を識別する識別情報である。
仮想サーバは、物理サーバ210上で動作する仮想サーバ311に割り当てられた固有IDである。
識別子は、受信したI/O要求の要求元である仮想サーバ311をストレージ装置220が識別するための情報である。
サービスレベルは、仮想サーバ311に割り当てられるサービスレベルである。
平均I/O処理時間(物理サーバ)は、仮想サーバ311のI/O要求に対する処理が完了するまでの平均時間(ms)である。この平均I/O処理時間(物理サーバ)は、例えば、仮想サーバ311からI/O要求を受信した物理サーバ210がI/O要求をストレージ装置220に対して発行してから、そのI/O要求に対する応答を物理サーバ210がストレージ装置220から受信するまでの時間の平均値などを使用することができる。
転送データ量は、I/O要求による処理がライト処理の時のデータ転送量(MB/s)と、I/O要求による処理がリード処理の時のデータ転送量(MB/s)と、を含むことができる。
I/O抑止数は、データ転送量がサービスレベル管理テーブル400の性能制限を超えた仮想サーバ311の、次回発行するI/O要求を制限する数である。I/O抑止数には、0以上の整数値を用いることができる。
平均I/O処理時間(ストレージ装置)は、仮想サーバ311のI/O要求に対する処理が完了するまでの平均時間(ms)である。この平均I/O処理時間(ストレージ装置)は、例えば、ストレージ装置220がI/O要求を受信してから、I/O要求に対する応答を物理サーバ210に送信するまでの平均時間などを使用することができる。
図6は、物理サーバ210に備わる1次キュー331の例を示す図である。
1次キュー331は、高レベルキュー331aと、中レベルキュー331bと、低レベルキュー331cと、を備える。以下では、高レベルキュー331a、中レベルキュー331b、および低レベルキュー331c、または、図7で後述する高レベルキュー341a、中レベルキュー341b、および低レベルキュー341cを総じて「レベル別キュー」という。
高レベルキュー331aは、サービスレベルが「高」に設定されている仮想サーバ311から受信したI/O要求を格納するキューである。中レベルキュー331bは、サービスレベルが「中」に設定されている仮想サーバ311から受信したI/O要求を格納するキューである。低レベルキュー331cは、サービスレベルが「低」に設定されている仮想サーバ311から受信したI/O要求を格納するキューである。
高レベルキュー331a、中レベルキュー331bおよび低レベルキュー331cには、それぞれ、仮想サーバ311毎にその仮想サーバ311から受信したI/O要求だけを格納する個別キューを備える。個別キューは、FIFO形式のデータ構造で実現することができる。図6には、例えば、仮想サーバVM01から受信したI/O要求を格納する個別キュー511と、仮想サーバVM04から受信したI/O要求を格納する個別キュー512と、を含む高レベルキュー331aが例示されている。
図7は、ストレージ装置220に備わる2次キュー341の例を示す図である。
2次キュー341は、1次キュー331と同様に、高レベルキュー341aと、中レベルキュー341bと、低レベルキュー341cと、を備える。
高レベルキュー341aは、サービスレベルが「高」に設定されている仮想サーバ311が要求元のI/O要求を格納するキューである。中レベルキュー341bは、サービスレベルが「中」に設定されている仮想サーバ311が要求元のI/O要求を格納するキューである。低レベルキュー341cは、サービスレベルが「低」に設定されている仮想サーバ311が要求元のI/O要求を格納するキューである。
高レベルキュー341a、中レベルキュー341bおよび低レベルキュー341cには、それぞれ、仮想サーバ311毎にその仮想サーバ311から受信したI/O要求だけを格納する個別キューを備える。個別キューは、FIFO形式のデータ構造で実現することができる。図7には、例えば、物理サーバSV01で動作する仮想サーバVM01が要求元のI/O要求を格納する個別キュー611と、物理サーバSV02で動作する仮想サーバVM01が要求元のI/O要求を格納する個別キュー612と、を含む高レベルキュー341aが例示されている。
図8は、仮想サーバ311が送信するI/O要求パケット800の例を示す図である。
I/O要求パケット800には、例えば、IEEE(The Institute of Electrical and Electronic Engineers) 802.1に準拠したフォーマットのパケットを使用することができる。
この場合、I/O要求パケット800には、送信先MAC(Media Access Control)アドレス、送信元MACアドレス、タグヘッダ、タイプ、データ、およびFCS(Frame Check Sequence)についての情報などを含むことができる。
また、タグヘッダには、TPID(Tag Protocol Identifier)と、TCI(Tag Control Information)と、を含むことができる。そして、TCIには、PCP(Priority Code Point)と、CFI(Canonical Format Indicator)およびVLAN IDについての情報を含むことができる。
VLAN IDには、図5に示した仮想サーバ311の識別子を設定することができる。なお、図8に例示したI/O要求パケット800は、IEEE 802.1に準拠したフォーマットのパケットであるから、I/O要求パケット800に含まれるVLAN ID以外の情報についての説明は省略する。ただし、I/O要求パケット800を、IEEE 802.1に準拠したフォーマットに限定する趣旨ではなく、I/O要求パケット800のフォーマットは、必要に応じてあらかじめ決めておくことができる。
図9は、物理サーバ210による仮想サーバ311の監視処理を示すフローチャートである。
物理サーバ210は、起動すると(ステップS900)、記憶装置213からサービスレベル管理テーブル400と仮想サーバ管理テーブル500とを読出して、メインメモリ212に展開する(ステップS901)。そして、物理サーバ210は、新規に起動される仮想サーバ311の監視を開始する(ステップS902 NO)。新規に起動された仮想サーバ311を以下では、「新規仮想サーバ」という。
新規仮想サーバを検出すると(ステップS903 YES)、物理サーバ210は、検出した新規仮想サーバに割り当てる固有IDを決定する(ステップS904)。物理サーバ210は、図5に例示したように、仮想サーバ311の固有IDは、VM01から順にVM02、VM03、・・・などと機械的に決めることができる。
そして、物理サーバ210は、図示しない表示装置等に、新規仮想サーバのサービスレベルの設定を促す表示を出力する。そして、利用者が、入力装置を操作して新規仮想サーバに対するサービスレベルを入力したことを検出すると、物理サーバ210は、その入力されたサービスレベルを取得する(ステップS905)。
物理サーバ210は、新規仮想サーバについての、ステップS904で決定した固有IDと、ステップS905で取得したサービスレベルと、を自身の識別情報とともに、メインメモリ212の仮想サーバ管理テーブル500に追加する(ステップS906)。
物理サーバ210は、新規仮想サーバについての、ステップS904で決定した固有IDと、ステップS905で取得したサービスレベルと、を自身の識別情報とともに、システム管理サーバ250に通知する(ステップS907)。そして、物理サーバ210は、システム管理サーバ250に対して、新規仮想サーバの識別子を要求する(ステップS908)。その後、物理サーバ210は、システム管理サーバ250から新規仮想サーバの識別子を受信するまで待つ(ステップS909 NO)。
システム管理サーバ250から新規仮想サーバの識別子を受信すると(ステップS909 YES)、物理サーバ210は、受信した識別子をメインメモリ212の仮想サーバ管理テーブル500に記憶する(ステップS910)。そして、物理サーバ210は、メインメモリ212の仮想サーバ管理テーブル500の変更内容を、記憶装置213の仮想サーバ管理テーブル500に反映し、処理をステップS903に移行する。
図10および図11は、物理サーバ210によるI/O要求の実行処理を示すフローチャートである。なお、本実施例では、ストレージI/F215が、図10および図11に示す処理を行なうが、物理サーバ210に含まれるプロセッサ211に所定のプログラムを実行させることによっても行なうことができる。そこで、以下では、処理の主体を「物理サーバ210」として説明する。
物理サーバ210は、タイマを起動して一定時間の計測を開始する(ステップS1001)。
仮想サーバ311からI/O要求を受信すると(ステップS1002)、物理サーバ210は、メインメモリ212に記憶している仮想サーバ管理テーブル500を参照する。そして、物理サーバ210は、I/O要求の要求元の仮想サーバ311の識別子とサービスレベルを取得する(ステップS1003)。以下の処理の説明では、ステップS1002で受信したI/O要求の要求元の仮想サーバ311を「対象仮想サーバ」という。
物理サーバ210は、ステップS1003で取得した対象仮想サーバの識別子を、ステップS1002で受信したI/O要求のパケットの所定の位置、例えば、図8で例示したVLAN IDの位置に設定する(ステップS1004)。
物理サーバ210は、1次キュー331に含まれる高レベルキュー、中レベルキューおよび低レベルキューのうち、ステップS1003で取得したサービスレベルに対応するキューに、対象仮想サーバの個別キューを生成する(ステップS1005)。ただし、既に対象仮想サーバの個別キューが存在する場合、物理サーバ210は、ステップS1005の処理をスキップしてステップS1006に移行する。
そして、物理サーバ210は、ステップS1003で取得したサービスレベルに対応するキューに含まれる、ステップS1005で生成した個別キューに、I/O要求を格納する(ステップS1006)。
物理サーバ210は、ステップS1001で起動したタイマを参照し、所定の時刻からの経過時間を取得する(ステップS1007)。
ステップS1007で取得した経過時間が一定時間未満の場合(ステップS1008 NO)、物理サーバ210は、処理をステップS1002に移行する。そして、物理サーバ210は、ステップS1002−S1008の処理を繰り返す。
ステップS1007で取得した経過時間が一定時間以上の場合(ステップS1008 YES)、物理サーバ210は、時間計測を終了して処理をステップS1009に移行する。そして、物理サーバ210は、サービスレベル毎の、仮想サーバ311が実行可能なI/O要求の数を算出する(ステップS1009)。
物理サーバ210は、物理サーバ210で動作するサービスレベル毎の仮想サーバ311の数に基づいて、サービスレベル毎の、仮想サーバ311が実行可能なI/O要求の数を算出することができる。一例として、下記条件の場合について説明する。
インタフェースの最大I/O処理数:100,000IOPS
サービスレベル「高」の仮想サーバ311の数:2台
サービスレベル「中」の仮想サーバ311の数:5台
サービスレベル「低」の仮想サーバ311の数:2台
サービスレベル毎のI/O優先数 :図4に示したI/O優先数
なお、最大I/O処理数とは、物理サーバ210に実装されている、ストレージ装置220とのインタフェースが、一度に処理できるI/Oの数の最大値である。インタフェースには、Fiber ChannelのHBAやiSCSIのNICなどのストレージI/F215が含まれる。最大I/O処理数は、あらかじめ記憶装置213などに記憶しておくことができる。本実施例中で表記する「IOPS」は、単位時間当りに処理されるI/O要求の数を示す単位である。
(1)まず、物理サーバ210は、メインメモリ212に記憶されているサービスレベル管理テーブル400を参照し、サービスレベル毎のI/O優先数を取得する。本実施例では、サービスレベルが「高」のI/O優先数は「4」、サービスレベルが「中」のI/O優先数は「2」、サービスレベルが「低」のI/O優先数は「1」である。
(2)次に、物理サーバ210は、物理サーバ210で動作しているサービスレベル毎の仮想サーバ311の数を取得する。このサービスレベル毎の仮想サーバ311の数は、例えば、メインメモリ212に記憶されている仮想サーバ管理テーブル500から取得することができる。本実施例では、物理サーバ210で動作している仮想サーバ311のうち、サービスレベルが「高」の仮想サーバ311は2台、サービスレベルが「中」の仮想サーバ311は5台、サービスレベルが「低」の仮想サーバ311は2台である。
(3)そして、物理サーバ210は、I/O割当定数を算出する。物理サーバ210は、次式を用いてI/O割当定数を算出することができる。
「I/O割当定数」=「インタフェースの最大I/O処理数」÷(「サービスレベル「高」のIO優先数」×「サービスレベル「高」の仮想サーバ311の数」+「サービスレベル「中」のIO優先数」×「サービスレベル「中」の仮想サーバ311の数」+「サービスレベル「低」のIO優先数」×「サービスレベル「低」の仮想サーバ311の数」)
・・・・・(1)
したがって、本実施例の場合、物理サーバ210は、I/O割当定数を5,000IOPS(=100,000IOPS÷(4IO×2台+2IO×5台+1IO×2台))と算出することができる。なお、本実施例中で表記する「IO」は、I/O処理の数を意味する。
(4)そして、物理サーバ210は、サービスレベル毎の、仮想サーバ311が実行可能なI/O要求の数を算出する。物理サーバ210は、次式を用いて、サービスレベル毎の、仮想サーバ311が実行可能なI/O要求の数を算出することができる。
「サービスレベル毎の、仮想サーバ311が実行可能なI/O要求の数」=
「I/O割当定数」×「サービスレベル毎のI/O優先数」
・・・・・(2)
したがって、本実施例の場合、物理サーバ210は、サービスレベル「高」の、仮想サーバ311が実行可能なI/O要求の数を、20,000IO(=4IO×5,000IOPS)と算出することができる。また、物理サーバ210は、サービスレベル「中」の、仮想サーバ311が実行可能なI/O要求の数を、10,000IO(=2IO×5,000IOPS)と算出することができる。また、物理サーバ210は、サービスレベル「低」の、仮想サーバ311が実行可能なI/O要求の数を、5,000IO(=1IO×5,000IOPS)と算出することができる。
サービスレベル毎の、仮想サーバ311が実行可能なI/O要求の数を算出すると、物理サーバ210は、1次キュー331にI/O要求が記憶されている仮想サーバ311のうち、任意の仮想サーバ311を選択する(ステップS1010)。以下の処理では、選択した仮想サーバ311を「選択仮想サーバ」という。
なお、仮想サーバ311の選択は、高レベルキュー331aにI/O要求が格納されている仮想サーバ311、中レベルキュー331bにI/O要求が格納されている仮想サーバ311、低レベルキュー331cにI/O要求が格納されている仮想サーバ311の順に行なう。また、例えば、高レベルキュー331aにI/O要求が格納されている仮想サーバ311が複数ある場合、それらの仮想サーバ311を全て選択した後に、中レベルキュー331bにI/O要求が格納されている仮想サーバ311を選択する。
物理サーバ210は、メインメモリ212に記憶されている仮想サーバ管理テーブル500を参照し、選択仮想サーバに、0以外のI/O抑止数が設定されているか否かを確認する(ステップS1011)。本実施例のI/O抑止数は、初期値として0が設定されているものとする。
選択仮想サーバに0以外のI/O抑止数が設定されている場合(ステップS1012 YES)、物理サーバ210は、処理をステップS1013に移行する。この場合、物理サーバ210は、ステップS1009で算出したI/O要求の数から、I/O抑止数だけ減じる(ステップS1013)。例えば、ステップS1009の例で、選択仮想サーバのサービスレベルが「高」の場合、物理サーバ210は、20,000IOからI/O抑止数だけ減算を行なう。そして、物理サーバ210は、処理をステップS1014に移行する。また、選択仮想サーバにI/O抑止数が0と設定されている場合(ステップS1012 NO)、物理サーバ210は、処理をステップS1014に移行する。
物理サーバ210は、1次キュー331から、ステップS1009で算出したI/O要求の数、ただし、ステップS1013の処理を行なった場合には、ステップS1013で算出したI/O要求の数だけ、選択仮想サーバのI/O要求を取り出す。そして、物理サーバ210は、取り出したI/O要求を、ストレージ装置220に対して発行する(ステップS1014)。
物理サーバ210は、ステップS1014で発行したI/O要求の処理種別と転送データ数をメインメモリ212の所定の領域に記憶する(ステップS1015)。I/O要求の処理種別とは、I/O要求が要求する、例えば、ライト処理やリード処理などの処理である。I/O要求の転送データ数とは、例えば、I/O要求の処理種別がライト処理の場合のライト処理対象のデータ数や、I/O要求の処理種別がリード処理の場合のリード処理対象のデータ数などである。I/O要求の処理種別と転送データ数は、I/O要求パケットのヘッダ部などから取得することができる。
さらに、物理サーバ210は、ステップS1014でI/O要求を発行した発行時刻をメインメモリ212の所定の領域に記憶する(ステップS1016)。そして、物理サーバ210は、発行したI/O要求の実行が完了すると、すなわち、ストレージ装置220からI/O要求に対する応答を受信すると、その応答を受信した時刻をI/O要求の完了時刻としてメインメモリ212の所定の領域に記憶する(ステップS1017)。
物理サーバ210は、ステップS1014で発行したI/O要求のうち、ストレージ装置220から応答を受信したものについて、それぞれ、ステップS1016で記憶した発行時刻とステップS1017で記憶した完了時刻との差分から応答時間を算出する。そして、物理サーバ210は、算出した応答時間から、ステップS1014で発行したI/O要求のうちストレージ装置220から応答を受信したI/O要求の平均応答時間を算出する(ステップS1018)。物理サーバ210は、算出した平均応答時間を、メインメモリ212に記憶されている仮想サーバ管理テーブル500の平均I/O処理時間(物理サーバ)として記憶する。
物理サーバ210は、ステップS1014で発行したI/O要求のうち、ストレージ装置220から応答を受信したものについての転送データ量の総和を算出する。また、物理サーバ210は、ステップS1014で発行したI/O要求のうち、ストレージ装置220から応答を受信したものについての応答時間の総和を算出する。そして、物理サーバ210は、転送データ量の総和を応答時間の総和で除することにより、1秒あたりの転送データ量を算出する(ステップS1019)。また、物理サーバ210は、算出した1秒あたりの転送データ量を、メインメモリ212に記憶されている仮想サーバ管理テーブル500の転送データ量として記憶する。
物理サーバ210は、メインメモリ212に記憶されているサービスレベル管理テーブル400を参照し、選択仮想サーバのサービスレベルに対応する性能制限を取得する(ステップS1020)。ステップS1019で算出した1秒あたりのデータ転送量が、ステップS1020で取得した性能制限を超過している場合(ステップS1021 YES)、物理サーバ210は、I/O抑止数を算出する(ステップS1022)。物理サーバ210は、I/O抑止数を、次の式(3)により算出することができる。
「I/O抑止数」=
(「転送データ量A」−「性能制限B」)÷(「転送データ量C」÷「I/O要求数D」)
・・・・・(3)
ただし、上記式(3)において、転送データ量Aは、ステップS1019で算出した1秒あたりの転送データ量である。また、性能制限Bは、メインメモリ212に記憶されているサービスレベル管理テーブル400に設定されている性能制限である。また、転送データ量Cは、ステップS1014で発行したI/O要求のうち、ストレージ装置220から応答を受信したものについての転送データ量の総和である。また、I/O要求数Dは、ステップS1014で発行したI/O要求のうち、ストレージ装置から応答を受信したI/O要求の数である。
I/O抑止数を算出すると、物理サーバ210は、処理をステップS1023に移行する。また、ステップS1019で算出した1秒あたりのデータ転送量が、ステップS1020で取得した性能制限を超過していない場合も(ステップS1021 NO)、物理サーバ210は、処理をステップS1023に移行する。
1次キュー331に未発行のI/O要求がある場合(ステップS1023、S1024 YES)、物理サーバ210は、処理をステップS1010に移行する。また、1次キュー331に未発行のI/O要求がない場合(ステップS1023、S1024 NO)、物理サーバ210は、I/O要求の実行処理を終了する(ステップS1025)。
物理サーバ210によるサービスレベル管理テーブル400の監視処理は、ストレージ装置220と同様である。ストレージ装置220によるサービスレベル管理テーブル400の監視処理については、図14で後述する。
なお、ステップS1022では、1秒あたりのデータ転送量が、性能制限を超過した場合にI/O抑止数を算出しているが、平均I/O処理時間(物理サーバ)が、例えば、サービスレベル管理テーブル400の平均I/O応答時間を超えた場合にI/O抑止数を算出してもよい。
図12は、システム管理サーバ250によるサービスレベル管理テーブル400の監視処理を示すフローチャートである。
システム管理サーバ250は、起動すると(ステップS1200)、記憶装置253からサービスレベル管理テーブル400を読出す。そして、システム管理サーバ250は、読出したサービスレベル管理テーブル400を、メインメモリ252の所定の領域に展開する(ステップS1201)。
そして、システム管理サーバ250は、記憶装置253に記憶されているサービスレベル管理テーブル400の変更を監視する(ステップS1202、S1203 NO)。この場合、例えば、システム管理サーバ250は、定期的に、記憶装置253からサービスレベル管理テーブル400を読出して、ステップS1201でメインメモリ252の所定の領域に展開したサービスレベル管理テーブル400と、比較する。そして、記憶装置253から読出したサービスレベル管理テーブル400と、メインメモリ252の所定の領域に展開したサービスレベル管理テーブル400と、に違いがある場合、システム管理サーバ250は、サービスレベル管理テーブル400が変更されたと判断する。
記憶装置253に記憶されたサービスレベル管理テーブル400に変更があった場合(ステップS1202 YES)、システム管理サーバ250は、変更された項目を、メインメモリ252の所定の領域に展開したサービスレベル管理テーブル400に反映する(ステップS1204)。また、システム管理サーバ250は、サービスレベル管理テーブル400の変更された項目を、物理サーバ210やストレージ装置220にも通知する。通知を受けた物理サーバ210は、変更された項目を、メインメモリ212の所定の領域に展開したサービスレベル管理テーブル400に反映する。同様に、通知を受けたストレージ装置220は、変更された項目を、キャッシュメモリ232の所定の領域に展開したサービスレベル管理テーブル400に反映する。
以上の処理が終了すると、システム管理サーバ250は、処理をステップS1203に移行して、ステップS1202−S1204の処理を繰り返す。
図13は、システム管理サーバ250による仮想サーバ管理テーブル500の監視処理を示すフローチャートである。
システム管理サーバ250は、起動すると(ステップS1300)、記憶装置253から仮想サーバ管理テーブル500を読出す。そして、システム管理サーバ250は、読出した仮想サーバ管理テーブル500を、メインメモリ252の所定の領域に展開する(ステップS1301)。
そして、システム管理サーバ250は、物理サーバ210から新規仮想サーバの固有IDとサービスレベルを受信したか確認する(ステップS1302、S1303 NO)。
物理サーバ210から新規仮想サーバの固有IDとサービスレベルを受信した場合(ステップS1303 YES)、システム管理サーバ250は、処理をステップS1304に移行する。この場合、システム管理サーバ250は、メインメモリ252に記憶されている仮想サーバ管理テーブル500に、新規仮想サーバのテーブル領域を追加する(ステップS1304)。
そして、システム管理サーバ250は、ステップS1304で追加した新規仮想サーバのテーブル領域に、ステップS1302で物理サーバ210から受信した新規仮想サーバの固有IDとサービスレベルを反映する(ステップS1305)。
システム管理サーバ250は、新規仮想サーバの識別子を生成する(ステップS1306)。例えば、システム管理サーバ250は、「vLAN01」、「vLAN02」、・・・のように、文字列「vLAN」に2桁の数字を追加して識別子を生成することができる。
システム管理サーバ250は、メインメモリ252に記憶されている仮想サーバ管理テーブル500を参照し、ステップS1306で生成した識別子と同一の識別子を検索する(ステップS1307)。
ステップS1306で生成した識別子と同一の識別子が、既に仮想サーバ管理テーブル500で使用されている場合、識別子が重複していると判断し(ステップS1308 YES)、システム管理サーバ250は、処理をステップS1309に移行する。そして、システム管理サーバ250は、新規仮想サーバの新たな識別子を生成する(ステップS1309)。そして、システム管理サーバ250は、処理をステップS1307に移行する。
ステップS1306で生成した識別子と同一の識別子が、仮想サーバ管理テーブル500で使用されていない場合、識別子は重複しないと判断し(ステップS1308 NO)、システム管理サーバ250は、処理をステップS1310に移行する。そして、システム管理サーバ250は、ステップS1306またはS1309で生成した識別子を、メインメモリ252に記憶している仮想サーバ管理テーブル500に反映する(ステップS1310)。また、システム管理サーバ250は、メインメモリ252の仮想サーバ管理テーブル500の変更内容を、記憶装置253の仮想サーバ管理テーブル500に反映する。
システム管理サーバ250は、ステップS1306または1309で生成した識別子を、物理サーバ210に通知する(ステップS1311)。また、システム管理サーバ250は、キャッシュメモリ232に記憶している仮想サーバ管理テーブル500の更新内容を含む更新情報をストレージ装置220に通知する(ステップS1312)。この更新情報には、例えば、物理サーバ210から受信した新規仮想サーバの固有IDおよびサービスレベル、ステップS1306またはS1309で生成した新規仮想サーバの識別子などを含むことができる。
以上の処理が終了すると、システム管理サーバ250は、処理をステップS1302に移行する。
図14は、ストレージ装置220によるサービスレベル管理テーブル400の監視処理を示すフローチャートである。
ストレージ装置220は、起動すると(ステップS1400)、フラッシュメモリ233からサービスレベル管理テーブル400を読出す。そして、ストレージ装置220は、読出したサービスレベル管理テーブル400を、キャッシュメモリ232の所定の領域に展開する(ステップS1401)。
ストレージ装置220は、システム管理サーバ250からサービスレベル管理テーブル400の変更された項目を受信したか否かを確認する(ステップS1402、S1403 NO)。
システム管理サーバ250からサービスレベル管理テーブル400の変更された項目を受信した場合(ステップS1403 YES)、ストレージ装置220は、処理をステップS1404に移行する。この場合、ストレージ装置220は、サービスレベル管理テーブル400の変更された項目を、キャッシュメモリ232の処理の領域に格納されているサービスレベル管理テーブル400と、フラッシュメモリ232に記憶しているサービスレベル管理テーブル400に反映する。そして、ストレージ装置220は、処理をステップS1402に移行する。
図15、図16および図17は、ストレージ装置220によるI/O要求の実行処理を示すフローチャートである。なお、ステップS1501−S1511の処理は、ストレージ装置220に含まれる常用コントローラ230が常に行なうが、説明の都合上、ストレージ装置220を主体として記載する。
ストレージ装置220は、起動すると(ステップS1500)、フラッシュメモリ233から仮想サーバ管理テーブル500読出す。そして、ストレージ装置220は、読出した仮想サーバ管理テーブル500をキャッシュメモリ232の所定の領域に展開する(ステップS1501)。
ストレージ装置220は、システム管理サーバ250から仮想サーバ管理テーブル500の更新情報を受信したか確認する(ステップS1502、S1503 NO)。
システム管理サーバ250から仮想サーバ管理テーブル500の更新情報を受信すると(ステップS1503 YES)、ストレージ装置220は、受信した更新情報を、フラッシュメモリ233に記憶されている仮想サーバ管理テーブル500に反映する(ステップS1504)。また、ストレージ装置220は、受信した更新情報を、キャッシュメモリ232に記憶されている仮想サーバ管理テーブル500に反映する(ステップS1504)。
そして、ストレージ装置220は、タイマを起動して一定時間の計測を開始すると(ステップS1505)、物理サーバ210からI/O要求を受信したか確認する(ステップS1506、S1507 NO)。
物理サーバ210からI/O要求を受信すると(ステップS1507 YES)、ストレージ装置220は、キャッシュメモリ232に記憶されている仮想サーバ管理テーブル500を参照する。そして、ストレージ装置220は、I/O要求に含まれる識別子に対応する仮想サーバ311と、その仮想サーバ311のサービスレベルと、を特定する(ステップS1508)。このときの、I/O要求に含まれる識別子に対応する仮想サーバ311を、以下の処理では「対象仮想サーバ」という。I/O要求に含まれる識別子とは、図8に示したVLAN IDに含まれる情報である。
また、ストレージ装置220は、キャッシュメモリ232に記憶されているサービスレベル管理テーブル400を参照し、ステップS1509で特定したサービスレベルの遅延フラグを取得する(ステップS1509)。そして、遅延フラグがONの場合(ステップS1510 NO)、ストレージ装置220は、I/O要求を待機コントローラ240に転送する(ステップS1511)。そして、ストレージ装置220は、処理をステップS1512に移行する。この場合、以後の処理は、ストレージ装置220に含まれる待機コントローラ240が行なう。
遅延フラグがOFFの場合(ステップS1510 YES)、ストレージ装置220は、処理をステップS1512に移行する。この場合、以後の処理は、ストレージ装置220に含まれる常用コントローラ230が継続して行なう。以後の処理は、常用コントローラ230と待機コントローラ240とで同じなので、処理の主体はストレージ装置220として説明する。
ストレージ装置220は、対象仮想サーバのサービスレベルに応じたレベル別キュー、すなわち、高レベルキュー、中レベルキュー、低レベルキューのいずれかに、対象仮想サーバ用の個別キューを生成する(ステップS1512)。既に対象仮想サーバ用の個別キューが存在する場合、ストレージ装置220は、ステップS1512をスキップしてステップS1513に移行することができる。ストレージ装置220は、対象仮想サーバ用の個別キューに、対象仮想サーバのI/O要求を格納する(ステップS1513)。
ストレージ装置220は、ステップS1505で起動したタイマを参照し、所定の時刻からの経過時間を取得する(ステップS1514)。
ステップS1514で取得した経過時間が一定期間未満の場合(ステップS1515 NO)、ストレージ装置220は、処理をステップS1506に移行する。そして、ストレージ装置220は、ステップS1506−S1515の処理を繰り返す。
ステップS1514で取得した経過時間が一定時間以上の場合(ステップS1515 YES)、ストレージ装置220は、時間計測を終了して処理をステップS1516に移行する。この場合、ストレージ装置220は、キャッシュメモリ232に記憶されているサービスレベル管理テーブル400を参照し、サービスレベル毎のI/O優先数を取得する(ステップS1516)。そして、ストレージ装置220は、サービスレベル毎の、仮想サーバ311が実行可能なI/O要求の数を算出する(ステップS1517)。サービスレベル毎の、仮想サーバ311が実行可能なI/O要求の数は、ステップS1009と同様に算出することができる。
ストレージ装置220は、2次キュー341にI/O要求が格納されている仮想サーバ311のうち任意の仮想サーバを選択する。選択の仕方については、ステップS1010に説明したとおりである。ストレージ装置220は、選択した仮想サーバ311用の個別キューから、ステップS1517で算出した数のI/O要求を取り出して実行する(ステップS1518)。以下の処理では、ステップS1518で選択された仮想サーバ311を「選択仮想サーバ」という。
ストレージ装置220は、ステップS1518で実行したI/O要求の処理種別と転送データ数をキャッシュメモリ232の所定の領域に記憶する(ステップS1519)。I/O要求の処理種別と転送データ数は、ステップS1015で説明したとおりである。
また、ストレージ装置220は、ステップS1518でI/O要求を実行した開始時刻をキャッシュメモリ232の所定の領域に記憶する(ステップS1520)。そして、ストレージ装置220は、I/O要求の実行が終了すると、I/O要求に対する処理が完了した旨の応答を物理サーバ210に出力する。ストレージ装置220は、応答を出力すると、現在時刻をキャッシュメモリ232の所定の領域に記憶する(ステップS1521)。
ストレージ装置220は、ステップS1518で実行したI/O要求のうち、処理を終了したI/O要求について、それぞれ、ステップS1520で記憶した開始時刻とステップS1521で記憶した終了時刻との差分から応答時間を算出する。そして、ストレージ装置220は、算出した応答時間から、ステップS1518で実行したI/O要求のうち、処理を終了したI/O要求の平均応答時間を算出する(ステップS1522)。ストレージ装置220は、算出した平均応答時間を、キャッシュメモリ232に記憶されている仮想サーバ管理テーブル500の平均I/O処理時間(ストレージ装置)に反映する(ステップS1522)。
ストレージ装置220は、キャッシュメモリ232に記憶されているサービスレベル管理テーブル400を参照し、選択仮想サーバのサービスレベルに応じた遅延フラグを取得する(ステップS1523)。
遅延フラグがOFFの場合(ステップS1524 YES)、ストレージ装置220は、移譲レベルの平均I/O応答時間を算出する(ステップS1525)。移譲レベルの平均I/O応答時間は、キャッシュメモリ232に記憶されているサービスレベル管理テーブル400に設定されている平均I/O応答時間と移譲レベルとの乗算により算出することができる。
ストレージ装置220は、ステップS1525で算出した、移譲レベルの平均I/O応答時間と、ステップS1522で算出した、選択仮想サーバの平均I/O処理時間(ストレージ装置)と、を比較する(ステップS1526)。
選択仮想サーバの平均I/O処理時間(ストレージ装置)が、移譲レベルの平均I/O応答時間を超えた場合(ステップS1527 YES)、ストレージ装置220は、遅延フラグをONに設定する(ステップS1528)。そして、ストレージ装置220は、処理をステップS1533に移行する。また、選択仮想サーバの平均I/O処理時間(ストレージ装置)が、移譲レベルの平均I/O応答時間以下の場合も(ステップS1527 NO)、ストレージ装置220は、処理をステップS1533に移行する。
一方、遅延フラグがONの場合(ステップS1524 NO)、ストレージ装置220は、復帰レベルの平均I/O応答時間を算出する(ステップS1529)。復帰レベルの平均I/O応答時間は、キャッシュメモリ232に記憶されているサービスレベル管理テーブル400に設定されている平均I/O応答時間と復帰レベルとの乗算により算出することができる。
ストレージ装置220は、ステップS1529で算出した復帰レベルの平均I/O応答時間と、ステップS1522で算出した選択仮想サーバと同じサービスレベルの仮想サーバそれぞれの平均I/O処理時間(ストレージ装置)と、を比較する(ステップS1530)。
選択仮想サーバと同じサービスレベルの仮想サーバの平均I/O処理時間(ストレージ装置)が、全て復帰レベルの平均I/O応答時間以下の場合(ステップS1531 YES)、ストレージ装置220は、遅延フラグをOFFに設定する(ステップS1532)。そして、ストレージ装置220は、処理をステップS1533に移行する。
また、選択仮想サーバと同じサービスレベルの仮想サーバの平均I/O処理時間(ストレージ装置)のいずれかが、復帰レベルの平均I/O応答時間を超えている場合も(ステップS1531 NO)、ストレージ装置220は、処理をステップS1533に移行する。
2次キュー341に未実行のI/O要求がある場合、すなわち、I/O要求が格納されている個別キューがある場合(ステップS1533、S1534 YES)、ストレージ装置220は、処理をステップS1518に移行する。
また、2次キュー341に未実行のI/O要求がない場合、すなわち、I/O要求が格納されている個別キューがない場合(ステップS1533、S1534 NO)、ストレージ装置220は、I/O要求の実行処理を終了する(ステップS1535)。
なお、ステップS1528では、平均I/O処理時間(ストレージ装置)が、移譲レベルの平均I/O応答時間を超えた場合に、遅延フラグをONに設定しているが、これに限定する趣旨ではない。ステップS1528では、例えば、1秒当りの転送データ量が移譲レベルの転送データ量を超えた場合に遅延フラグをONに設定してもよい。この場合、1秒当りの転送データ量は、ステップS1015−S1019と同様の処理によって算出することができる。また、移譲レベルの転送データ量は、例えば、サービスレベル管理テーブル400に設定されている性能制限と移譲レベルとの乗算により算出することができる。同様に、ステップS1532では、1秒当りの転送データ量が復帰レベルの転送データ量以下の場合に遅延フラグをOFFに設定してもよい。
以上に述べたように、ストレージ装置220は、受信したI/O要求に設定された識別子に対応する仮想サーバ311のサービスレベルを特定する。そして、ストレージ装置220は、受信したI/O要求を、特定したサービスレベルに対応する、2次キュー341のレベル別キューに格納する。また、ストレージ装置220は、サービスレベル毎に、仮想サーバ311が実行可能なI/O要求の数を算出する。そして、ストレージ装置220は、算出した数のI/O要求を2次キュー341から取得して実行する。このように、ストレージ装置220は、仮想サーバ311からストレージ装置220へのデータアクセスを、サービスレベルを利用して仮想サーバ311毎に制御することが可能となる。例えば、ストレージ装置220は、仮想サーバ311毎にサービスレベルを設定することにより、仮想サーバ311毎に、仮想サーバ311からストレージ装置220へのデータアクセスに優先順位を付けて制御する優先制御が可能となる。
また、ストレージ装置220は、サービスレベル毎に、通常モードと負荷分散モードを持つ。そして、ストレージ装置220は、平均I/O処理時間(ストレージ装置)が移譲レベルを超えると、通常モードから負荷分散モードに切り替る。この場合、ストレージ装置220は、負荷分散モードに切り替ったサービスレベルの仮想サーバ311から受信したI/O要求を待機コントローラ240で処理するので、ストレージ装置220は、サービスレベル毎に、I/O要求の処理にかかる負荷を分散することができる。この場合、I/O要求の処理にかかる負荷が、常用コントローラ230と待機コントローラ240とに分散されるので、移譲レベルを超過した平均I/O処理時間(ストレージ装置)を短縮することが可能となる。
また、物理サーバ210は、サービスレベル管理テーブル400の性能制限を超過すると、超過した分に応じたI/O抑止数を算出し、次にI/O要求を発行する際には、I/O抑止数だけ減じた数のI/O要求を発行する。その結果、物理サーバ210は、サービスレベル毎に、サービスレベル管理テーブル400の性能制限を含む一定範囲内に、仮想サーバ311からのストレージ装置220へのデータアクセスの性能を制御することが可能となる。
100 ストレージシステム
110 サーバ装置
111 仮想機械
112 記憶部
113 サービスレベル別キュー
114 制御部
115 インタフェース部
120 ストレージ装置
121 記憶部
122 インタフェース部
123 サービスレベル別入出力キュー
124 制御部
125 記憶装置

Claims (9)

  1. サーバ装置で実行される仮想機械からストレージ装置へのアクセス制御方法であって、
    前記仮想機械から入出力命令とともに出力された前記仮想機械を識別する仮想機械識別子に基づいて、仮想機械識別子とサービスレベルとの対応関係を記憶する記憶部を参照して、前記仮想機械識別子に対応するサービスレベルを取得し、
    前記サーバ装置および前記ストレージ装置の少なくとも一方において、前記仮想機械からの入出力命令を取得した前記サービスレベルに従って実行する、
    ことを特徴とするアクセス制御方法。
  2. 前記サーバ装置および前記ストレージ装置は、前記サービスレベルを管理サーバ装置から取得してそれぞれにおいて保持し、
    前記サーバ装置および前記ストレージ装置の少なくとも一方において、前記サービスレベルごとに前記入出力命令の実行順を現在までの前記入出力命令の実行状況に応じて変更する、
    ことをさらに行なう請求項1に記載のアクセス制御方法。
  3. 前記サーバ装置にて、
    前記仮想機械からの入出力命令を前記仮想機械に対応するサービスレベル別にサービスレベル別キューに記憶して待ち合わせ、
    前記サービスレベルに応じた許容数で前記サービスレベル別キューに記憶されている前記入出力命令を待ち行列順で読み出し、
    前記読み出した入出力命令を前記仮想機械に対応する仮想機械識別子とともに前記ストレージ装置に対して発行する、
    ことを特徴とする請求項1または請求項2のいずれかに記載のアクセス制御方法。
  4. 前記ストレージ装置にて、
    前記入出力命令を前記仮想機械識別子とともに前記サーバ装置から受け付け、
    前記受け付けた入出力命令を、前記仮想機械識別子に対応するサービスレベル別にサービスレベル別入出力キューに記憶して待ち合わせ、
    前記サービスレベルに応じた許容数で前記サービスレベル別入出力キューに記憶されている前記入出力命令を待ち行列順で読み出して、記憶装置へのアクセスを実行する、
    ことを特徴とする請求項1乃至請求項3のいずれか一項に記載のアクセス制御方法。
  5. 前記ストレージ装置にて、
    自装置に含まれる特定のコントローラが入出力処理を実行する通常モードと、自装置に含まれる前記特定のコントローラ以外のコントローラが入出力命令を実行する負荷分散モードと、の2つの運転モードを前記サービスレベルごとに有し、
    前記仮想機械ごとに入出力命令の平均処理時間を監視し、
    前記通常モード中の同じサービスレベルの前記仮想機械のいずれかの前記平均処理時間が第1の閾値を超えたことを契機に、前記同じサービスレベルの運転モードを前記負荷分散モードに切り替え、
    前記負荷分散モード中の同じサービスレベルの全ての前記仮想機械の平均処理時間が第2の閾値を下回ったことを契機に、前記同じサービスレベルの運転モードを通常モードに切り替える、
    ことを特徴とする請求項4に記載のアクセス制御方法。
  6. 仮想機械が動作するサーバ装置であって、
    前記仮想機械を識別する仮想機械識別子に対応付けて前記仮想機械に設定されたサービスレベルを記憶する記憶部と、
    前記仮想機械からの入出力命令を前記仮想機械に対応するサービスレベル別に記憶し待ち合わせるサービスレベル別キューと、
    前記サービスレベルに応じて前記サービスレベル別キューに記憶されている前記入出力命令を待ち行列順で読み出す制御部と、
    前記読み出した入出力命令を前記仮想機械に対応する仮想機械識別子とともに発行するインタフェース部と、
    を備えることを特徴とするサーバ装置。
  7. 前記制御部は、前記サービスレベルごとに前記入出力命令の実行順を現在までの前記入出力命令の実行状況に応じて変更する、ことを特徴とする請求項6に記載のサーバ装置。
  8. サーバ装置で実行される仮想機械を識別する仮想機械識別子に対応付けて前記仮想機械に設定されたサービスレベルを記憶する記憶部と、
    前記入出力命令を前記仮想機械識別子とともに受け付けるインタフェース部と、
    前記受け付けた入出力命令を、前記仮想機械識別子に対応するサービスレベル別に記憶して待ち合わせるサービスレベル別入出力キューと、
    前記サービスレベルに応じて前記サービスレベル別入出力キューに記憶されている前記入出力命令を待ち行列順で読み出して、記憶装置へのアクセスを実行する制御部と、
    を備えることを特徴とするストレージ装置。
  9. 前記制御部は、前記サービスレベルごとに前記入出力命令の実行順を現在までの前記入出力命令の実行状況に応じて変更する、ことを特徴とする請求項8に記載のストレージ装置。
JP2012075578A 2012-03-29 2012-03-29 アクセス制御方法、サーバ装置およびストレージ装置 Expired - Fee Related JP5891900B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2012075578A JP5891900B2 (ja) 2012-03-29 2012-03-29 アクセス制御方法、サーバ装置およびストレージ装置
US13/790,946 US9276824B2 (en) 2012-03-29 2013-03-08 Access control method, server device, and storage device
EP13158537.4A EP2648127B1 (en) 2012-03-29 2013-03-11 Access control method, server device, and storage device
CN201310092405.8A CN103365803B (zh) 2012-03-29 2013-03-21 访问控制方法、服务器装置和存储装置
KR1020130031744A KR101431970B1 (ko) 2012-03-29 2013-03-25 액세스 제어 방법, 서버 장치 및 스토리지 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012075578A JP5891900B2 (ja) 2012-03-29 2012-03-29 アクセス制御方法、サーバ装置およびストレージ装置

Publications (2)

Publication Number Publication Date
JP2013206229A true JP2013206229A (ja) 2013-10-07
JP5891900B2 JP5891900B2 (ja) 2016-03-23

Family

ID=47843154

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012075578A Expired - Fee Related JP5891900B2 (ja) 2012-03-29 2012-03-29 アクセス制御方法、サーバ装置およびストレージ装置

Country Status (5)

Country Link
US (1) US9276824B2 (ja)
EP (1) EP2648127B1 (ja)
JP (1) JP5891900B2 (ja)
KR (1) KR101431970B1 (ja)
CN (1) CN103365803B (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2924555A1 (en) 2014-03-27 2015-09-30 Fujitsu Limited Storage management device, performance tuning method, and performance tuning program
JP2015184707A (ja) * 2014-03-20 2015-10-22 日本電気株式会社 情報処理システム、情報処理装置、情報処理方法、及び、プログラム
WO2016020979A1 (ja) * 2014-08-05 2016-02-11 株式会社日立製作所 計算機システム及び仲介デバイス
JP2018517201A (ja) * 2015-04-08 2018-06-28 ティントリ・インコーポレーテッドTintri Incorporated 仮想マシンのためのネイティブなストレージサービス品質
US10142211B2 (en) 2013-09-27 2018-11-27 Fujitsu Limited Storage management device and control method
US10289316B2 (en) 2016-09-07 2019-05-14 Fujitsu Limited Storage management device, performance adjustment method, and computer-readable recording medium
JP2020140669A (ja) * 2019-03-01 2020-09-03 Necソリューションイノベータ株式会社 仮想マシン管理装置、仮想マシン管理方法、及びプログラム
CN114730299A (zh) * 2019-10-24 2022-07-08 美光科技公司 用于存储器装置中的多个功能的服务质量
JP2022554137A (ja) * 2019-10-24 2022-12-28 マイクロン テクノロジー,インク. 重み付きメモリアクセス動作タイプを使用したメモリデバイスのサービスの品質
JP7443195B2 (ja) 2020-08-21 2024-03-05 キオクシア株式会社 メモリシステムおよび制御方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135259B2 (en) * 2013-11-06 2015-09-15 Linkedin Corporation Multi-tenancy storage node
CN106155646B (zh) * 2015-03-31 2020-01-07 阿里巴巴集团控股有限公司 一种限制外部应用程序调用服务的方法及装置
US10838852B2 (en) 2015-04-17 2020-11-17 Samsung Electronics Co., Ltd. System and method to extend NVME queues to user space
US11036533B2 (en) 2015-04-17 2021-06-15 Samsung Electronics Co., Ltd. Mechanism to dynamically allocate physical storage device resources in virtualized environments
US10089266B2 (en) * 2015-07-10 2018-10-02 Apple Inc. Power saving feature for storage subsystems
US20170371694A1 (en) * 2016-06-23 2017-12-28 Advanced Micro Devices, Inc. Virtualization of a graphics processing unit for network applications
US10515038B2 (en) 2016-09-26 2019-12-24 Red Hat, Inc. Input/output command rebalancing in a virtualized computer system
CN107918613B (zh) * 2016-10-08 2022-01-21 上海宝存信息科技有限公司 因应服务质量的固态硬盘访问方法以及使用该方法的装置
EP3688583A1 (en) * 2017-09-26 2020-08-05 INTEL Corporation Methods and apparatus to process commands from virtual machines
CN108111571B (zh) * 2017-11-15 2021-05-04 广东睿江云计算股份有限公司 一种基于iSCSI协议的存储QoS方法
CN108845863B (zh) * 2018-06-12 2022-08-26 北京百度网讯科技有限公司 用于虚拟机与宿主机的通信方法、装置和系统
US10963165B2 (en) 2019-01-31 2021-03-30 EMC IP Holding Company LLC Applying virtual machine performance objectives on a storage system
US10963284B2 (en) * 2019-01-31 2021-03-30 EMC IP Holding Company LLC Associating storage system performance objectives with virtual machines
WO2021020746A1 (ko) * 2019-07-31 2021-02-04 고려대학교 산학협력단 가상 머신 관리 장치 및 방법
US11954344B2 (en) * 2021-06-16 2024-04-09 EMC IP Holding Company LLC Host device comprising layered software architecture with automated tiering of logical storage devices

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008176482A (ja) * 2007-01-17 2008-07-31 Hitachi Ltd 仮想計算機システム
JP2010097596A (ja) * 2008-10-17 2010-04-30 Hitachi Ltd リソースプロビジョニングのための方法および装置
JP2010211458A (ja) * 2009-03-10 2010-09-24 Nec Corp 計算機システム及びi/o制御方法
JP2013205870A (ja) * 2012-03-27 2013-10-07 Nec Corp コンピュータ・ストレージシステム
JP2014510316A (ja) * 2011-05-31 2014-04-24 株式会社日立製作所 計算機システム及びそのイベント通知方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1312549C (zh) 1995-02-13 2007-04-25 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US5996026A (en) 1995-09-05 1999-11-30 Hitachi, Ltd. Method and apparatus for connecting i/o channels between sub-channels and devices through virtual machines controlled by a hypervisor using ID and configuration information
US7984147B2 (en) * 2000-12-29 2011-07-19 Hewlett-Packard Development Company, L.P. Apparatus and method for identifying a requested level of service for a transaction
CA2532909A1 (en) 2003-08-21 2005-03-31 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
JP4227035B2 (ja) 2004-02-03 2009-02-18 株式会社日立製作所 計算機システム、管理装置、ストレージ装置及びコンピュータ装置
US7797699B2 (en) * 2004-09-23 2010-09-14 Intel Corporation Method and apparatus for scheduling virtual machine access to shared resources
US20060184936A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method using virtual machines for decoupling software from management and control systems
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
CN100489782C (zh) * 2006-06-29 2009-05-20 联想(北京)有限公司 一种虚拟机系统及硬件设备的访问控制方法
JP5089429B2 (ja) * 2008-02-21 2012-12-05 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
CN101520738A (zh) * 2008-02-27 2009-09-02 黄歆媚 基于设备访存管理技术的虚拟机系统及其设备访问方法
KR20090108868A (ko) * 2008-04-14 2009-10-19 삼성전자주식회사 가상 머신 관리 시스템 및 그의 프로세서 자원 관리방법
JP5558684B2 (ja) 2008-07-25 2014-07-23 株式会社デンソー 地図データ更新装置、地図データ更新プログラム及び地図データの更新方法
JP5193801B2 (ja) 2008-10-29 2013-05-08 株式会社日立製作所 ストレージシステムの性能向上又は管理方法、システム、装置及びプログラム
JP2010108409A (ja) 2008-10-31 2010-05-13 Hitachi Ltd ストレージ管理方法及び管理サーバ
EP2395430B1 (en) * 2009-02-09 2017-07-12 Fujitsu Limited Virtual computer allocation method, allocation program, and information processing device having a virtual computer environment
US8595740B2 (en) 2009-03-31 2013-11-26 Microsoft Corporation Priority-based management of system load level
US8291416B2 (en) 2009-04-17 2012-10-16 Citrix Systems, Inc. Methods and systems for using a plurality of historical metrics to select a physical host for virtual machine execution
US8276139B2 (en) * 2009-09-30 2012-09-25 International Business Machines Corporation Provisioning virtual machine placement
US9389895B2 (en) 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
US8234400B2 (en) 2010-03-16 2012-07-31 Microsoft Corporation Shaping virtual machine communication traffic
JP5644150B2 (ja) 2010-03-23 2014-12-24 日本電気株式会社 サービス提供システム、仮想マシンサーバ、サービス提供方法及びサービス提供プログラム
CN102238208A (zh) * 2010-04-29 2011-11-09 国际商业机器公司 用于激活虚拟方案中的虚拟机的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008176482A (ja) * 2007-01-17 2008-07-31 Hitachi Ltd 仮想計算機システム
JP2010097596A (ja) * 2008-10-17 2010-04-30 Hitachi Ltd リソースプロビジョニングのための方法および装置
JP2010211458A (ja) * 2009-03-10 2010-09-24 Nec Corp 計算機システム及びi/o制御方法
JP2014510316A (ja) * 2011-05-31 2014-04-24 株式会社日立製作所 計算機システム及びそのイベント通知方法
JP2013205870A (ja) * 2012-03-27 2013-10-07 Nec Corp コンピュータ・ストレージシステム

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10142211B2 (en) 2013-09-27 2018-11-27 Fujitsu Limited Storage management device and control method
JP2015184707A (ja) * 2014-03-20 2015-10-22 日本電気株式会社 情報処理システム、情報処理装置、情報処理方法、及び、プログラム
EP2924555A1 (en) 2014-03-27 2015-09-30 Fujitsu Limited Storage management device, performance tuning method, and performance tuning program
US10097635B2 (en) 2014-03-27 2018-10-09 Fujitsu Limited Storage management device, and performance tuning method
WO2016020979A1 (ja) * 2014-08-05 2016-02-11 株式会社日立製作所 計算機システム及び仲介デバイス
JP2018517201A (ja) * 2015-04-08 2018-06-28 ティントリ・インコーポレーテッドTintri Incorporated 仮想マシンのためのネイティブなストレージサービス品質
US10289316B2 (en) 2016-09-07 2019-05-14 Fujitsu Limited Storage management device, performance adjustment method, and computer-readable recording medium
JP2020140669A (ja) * 2019-03-01 2020-09-03 Necソリューションイノベータ株式会社 仮想マシン管理装置、仮想マシン管理方法、及びプログラム
JP7235295B2 (ja) 2019-03-01 2023-03-08 Necソリューションイノベータ株式会社 仮想マシン管理装置、仮想マシン管理方法、及びプログラム
CN114730299A (zh) * 2019-10-24 2022-07-08 美光科技公司 用于存储器装置中的多个功能的服务质量
JP2022554137A (ja) * 2019-10-24 2022-12-28 マイクロン テクノロジー,インク. 重み付きメモリアクセス動作タイプを使用したメモリデバイスのサービスの品質
JP2022554136A (ja) * 2019-10-24 2022-12-28 マイクロン テクノロジー,インク. メモリデバイス内の複数の機能のためのサービスの品質
JP7443195B2 (ja) 2020-08-21 2024-03-05 キオクシア株式会社 メモリシステムおよび制御方法

Also Published As

Publication number Publication date
EP2648127A1 (en) 2013-10-09
CN103365803A (zh) 2013-10-23
KR20130111351A (ko) 2013-10-10
JP5891900B2 (ja) 2016-03-23
CN103365803B (zh) 2016-05-04
KR101431970B1 (ko) 2014-08-19
US20130262649A1 (en) 2013-10-03
US9276824B2 (en) 2016-03-01
EP2648127B1 (en) 2015-01-14

Similar Documents

Publication Publication Date Title
JP5891900B2 (ja) アクセス制御方法、サーバ装置およびストレージ装置
US10255005B2 (en) Systems and methods of disk storage allocation for virtual machines
US10659318B2 (en) Methods and apparatus related to management of unit-based virtual resources within a data center environment
JP6005795B2 (ja) 仮想マシンの信頼性のある決定論的ライブ移行
US9569245B2 (en) System and method for controlling virtual-machine migrations based on processor usage rates and traffic amounts
CN105893139B (zh) 在云存储环境中用于向租户提供存储服务的方法和装置
JP6287864B2 (ja) QoS制御システム、QoS制御方法及びプログラム
JP5147584B2 (ja) ストレージサブシステム及びコントローラによるコマンド実行方法
US20120102291A1 (en) System and Method for Storage Allocation in a Cloud Environment
US9250810B2 (en) Priority based depopulation of storage ranks
JPWO2012066640A1 (ja) 計算機システム、マイグレーション方法及び管理サーバ
JP2012043071A (ja) 調整システム、調整装置、調整方法、及びそのプログラム
US20190243672A1 (en) System and method for reducing downtime during hypervisor conversion
WO2016151821A1 (ja) 計算機システムおよびプロセス実行方法
JP2017091330A (ja) 計算機システム及び計算機システムのタスク実行方法
JP2010097566A (ja) 情報処理装置、及び情報処理システムにおけるバッチ処理の割り当て方法
WO2017056208A1 (ja) リクエスト実行順序制御方式
JP6216866B2 (ja) ストレージシステムおよびストレージ制御方法
WO2016092667A1 (ja) 計算機及び割込み制御方法
JP4997063B2 (ja) 計算機の起動方法及び計算機システム
JP2023121040A (ja) ストレージシステム及びストレージシステムにおけるデータ移行方法
KR101608338B1 (ko) 이기종 하이퍼바이저 환경에서의 데이터 스토어 할당방법
WO2018008103A1 (ja) 割込制御方法、及び、インタフェース装置
JP2011159132A (ja) スイッチ装置、スイッチ制御方法、及びストレージシステム
WO2013031999A1 (ja) 抽出装置、システム、プログラム、及び、方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151027

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151228

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: 20160126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160208

R150 Certificate of patent or registration of utility model

Ref document number: 5891900

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees