JP7197783B2 - 情報処理システム、管理装置および管理プログラム - Google Patents

情報処理システム、管理装置および管理プログラム Download PDF

Info

Publication number
JP7197783B2
JP7197783B2 JP2019003215A JP2019003215A JP7197783B2 JP 7197783 B2 JP7197783 B2 JP 7197783B2 JP 2019003215 A JP2019003215 A JP 2019003215A JP 2019003215 A JP2019003215 A JP 2019003215A JP 7197783 B2 JP7197783 B2 JP 7197783B2
Authority
JP
Japan
Prior art keywords
storage
information processing
container
server
data
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
Application number
JP2019003215A
Other languages
English (en)
Other versions
JP2020113031A (ja
Inventor
明音 高橋
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 JP2019003215A priority Critical patent/JP7197783B2/ja
Priority to US16/701,711 priority patent/US11429431B2/en
Publication of JP2020113031A publication Critical patent/JP2020113031A/ja
Application granted granted Critical
Publication of JP7197783B2 publication Critical patent/JP7197783B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、情報処理システム、管理装置および管理プログラムに関する。
仮想マシンは、物理マシン上に仮想的なアプリケーション実行環境を構築する技術として広く利用されている。また、物理マシン間で仮想マシンを移動させる(マイグレートする)技術として、次のような提案がある。
例えば、ローカルストレージ上にデータを移動させることなく仮想マシンを即時にマイグレートし、データは、マイグレートされた仮想マシンが必要とするときにオンデマンドでコピーされる、オンデマンド型イメージストリーミングが提案されている。また、他の例として、次のような計算機システムも提案されている。この計算機システムでは、第1の仮想マシンを第2の仮想マシンが動作している計算機に移動させる際、第2の仮想マシンの仮想ボリュームにおけるアクセス頻度の低い仮想ページに割り当てられた実ページのデータが、直結ストレージから外部ストレージにデステージされる。そして、直結ストレージに生成された空きスペースに、第1の仮想マシンの仮想ボリュームにおける仮想ページに割り当てられた実ページのデータが移行される。
また、仮想的なアプリケーション実行環境を構築する他の技術として、コンテナ仮想化技術がある。この技術は、オペレーティングシステム(OS)まで含めて仮想化する仮想マシンとは異なり、OS上でのアプリケーション実行環境を仮想化する。このため、コンテナ仮想化技術によって生成されるコンテナの物理マシン間での移動は、仮想マシンの移動と比較して容易であるという特徴がある。
なお、仮想マシンとコンテナのいずれも、分離されたプロセス実行環境を仮想的に提供するものであることから、物理マシン上で動作する仮想的なプロセス実行部ということができる。
特表2013-542486号公報 特開2015-111434号公報
ところで、上記のような仮想的なプロセス実行部がアクセスする仮想ストレージが、このプロセス実行部が動作する物理マシンのローカルストレージによって実現される場合がある。このような仮想ストレージは、DAS(Direct Attached Storage)タイプの仮想ストレージとも呼ばれる。DASタイプの仮想ストレージは、データのI/O(Input/Output)処理を低レイテンシで実行できるという特徴がある。
ここで、DASタイプの仮想ストレージを利用する上記のプロセス実行部を他の物理マシンに移設する場合には、次のような問題がある。プロセス実行部のみ他の物理マシンに移設されて仮想ストレージのデータが移動しないままだと、移設後のプロセス実行部は仮想ストレージのデータにアクセスするために移設前の物理マシンのローカルストレージにアクセスしなければならない。このため、移設後のプロセス実行部の仮想ストレージに対するI/O処理性能が低下してしまう。
1つの側面では、本発明は、仮想的なプロセス実行部を物理マシン間で移設した場合における当該プロセス実行部のI/O処理性能低下を抑制することが可能な情報処理システム、管理装置および管理プログラムを提供することを目的とする。
1つの案では、第1のストレージが接続された第1の情報処理装置と、第2のストレージが接続された第2の情報処理装置と、管理装置とを有する情報処理システムが提供される。第1の情報処理装置は、第1の情報処理装置で動作する仮想的なプロセス実行部が第1のストレージに対するI/O処理を実行したとき、I/O処理対象のデータを第1のストレージから第2の情報処理装置を介して第2のストレージにコピーするコピー処理を、プロセス実行部を第1の情報処理装置から第2の情報処理装置に移設する移設処理の前処理として実行する。管理装置は、前処理の開始後におけるコピー処理を伴うプロセス実行部による第1のストレージに対するI/O処理の監視結果から算出される、移設後のプロセス実行部によるI/O処理の性能影響度に基づいて、移設処理の実行タイミングを決定し、実行タイミングにおいて移設処理の実行指示を第1の情報処理装置および第2の情報処理装置に出力する。
また、1つの案では、記憶部と処理部とを有する管理装置が提供される。記憶部は、第1のストレージが接続された第1の情報処理装置において動作する仮想的なプロセス実行部を、第2のストレージが接続された第2の情報処理装置に移設する移設処理を実行するための移設条件を記憶する。処理部は、第1の情報処理装置で動作するプロセス実行部が第1のストレージに対するI/O処理を実行したとき、I/O処理対象のデータを第1のストレージから第2の情報処理装置を介して第2のストレージにコピーするコピー処理を、移設処理の前処理として第1の情報処理装置に実行させ、前処理の開始後におけるコピー処理を伴うプロセス実行部による第1のストレージに対するI/O処理の監視結果から算出される、移設後のプロセス実行部によるI/O処理の性能影響度に基づいて、移設処理の実行タイミングを決定し、実行タイミングにおいて移設処理の実行指示を第1の情報処理装置および第2の情報処理装置に出力する。
さらに、1つの案では、上記の情報処理システムに含まれる管理装置と同様の処理をコンピュータに実行させる管理プログラムが提供される。
1つの側面では、仮想的なプロセス実行部を物理マシン間で移設した場合における当該プロセス実行部のI/O処理性能低下を抑制できる。
第1の実施の形態に係る情報処理システムの構成例および処理例を示す図である。 第2の実施の形態に係る情報処理システムの構成例を示す図である。 サーバのハードウェア構成例を示す図である。 コンテナ移動処理の比較例について説明するための図である。 第2の実施の形態におけるコンテナ移動処理について説明するための図である。 サーバが備える処理機能の構成例を示すブロック図である。 管理サーバが備える処理機能の構成例を示すブロック図である。 移動対象のコンテナが検出される前の状態を示す図である。 移動対象のコンテナが検出された状態を示す図である。 サーバがI/O転送モードに遷移した後の状態を示す図である。 コンテナ移動を実行すると判定された後の状態を示す図である。 コンテナの配置制御に関する処理例を示すフローチャートである。 I/O転送モードのサーバにおけるI/O処理例を示すフローチャートである。 コンテナが移設されたサーバにおけるI/O処理例を示すフローチャートである。 第3の実施の形態におけるサーバのI/O処理例を示すフローチャートである。 第3の実施の形態におけるコンテナ移動元サーバの性能影響度送信処理例を示すフローチャートである。
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理システムの構成例および処理例を示す図である。図1に示す情報処理システムは、情報処理装置10(第1の情報処理装置)、情報処理装置20(第2の情報処理装置)および管理装置30を有する。
情報処理装置10には、ストレージ11が接続されている。また、情報処理装置10では、仮想的なプロセス実行部12が動作している。プロセス実行部12は、例えば、情報処理装置10上に仮想的に構築されたプロセス実行環境を用いて動作する動作主体であり、例えば、コンテナや、ハイパバイザによって管理されるハイパバイザ型仮想マシンである。プロセス実行部12が実行する処理には、ストレージ11に対するI/O処理が含まれる。ストレージ11は、プロセス実行部12によって利用される記憶領域である。
情報処理装置20には、ストレージ21が接続されている。また、情報処理装置20は、プロセス実行部12の移設先となる情報処理装置である。図1では、移設後のプロセス実行部12をプロセス実行部22として示している。
管理装置30は、情報処理装置10,20の動作を管理する装置である。特に、管理装置30は、情報処理装置10で動作しているプロセス実行部12の移設処理を管理する。管理装置30は、記憶部31と処理部32を有する。記憶部31は、例えば、管理装置30が備える図示しない記憶装置の記憶領域として実現される。処理部32は、例えば、管理装置30が備える図示しないプロセッサとして実現される。
記憶部31には、プロセス実行部12の移設処理の実行タイミングを判定するための移設条件31aが記憶されている。処理部32は、情報処理装置10の動作状況を監視し、動作状況と移設条件31aとに基づいて、プロセス実行部12を情報処理装置10から情報処理装置20へ移設させる移設処理の実行タイミングを決定する。
以下、プロセス実行部12の移設制御について詳しく説明する。
まず、プロセス実行部12が動作している情報処理装置10は、第1の動作モードと第2の動作モードとをとり得る。第1の動作モードは通常動作モードであり、この動作モードでは、プロセス実行部12がストレージ11との間でデータのI/O処理を実行する場合、単にプロセス実行部12とストレージ11との間でデータが送受信される。そして、管理装置30の処理部32は、所定のイベントの発生に応じて情報処理装置10の動作モードを第1の動作モードから第2の動作モードに遷移させる。例えば、情報処理装置20を含む複数の情報処理装置が存在しているとする。この場合、処理部32は、各情報処理装置の動作状態を監視し、動作状態に基づいて情報処理装置20をプロセス実行部12の移設先と決定したときに、情報処理装置10の動作モードを第1の動作モードから第2の動作モードに遷移させる。
第2の動作モードの状態では、情報処理装置10は、移設処理の前処理として次のような処理を実行する。情報処理装置10は、プロセス実行部12がストレージ11に対するI/O処理を実行したとき、I/O処理対象のデータをストレージ11からの情報処理装置20を介してストレージ21にコピーする。例えば、プロセス実行部12がストレージ11からのデータD1の読み出しを要求した場合、データD1はストレージ11からプロセス実行部12に読み出される(ステップS1)。これとともに、情報処理装置10は、データD1を情報処理装置20に転送し、情報処理装置20を介してストレージ21にコピーする(ステップS2)。
一方、管理装置30の処理部32は、情報処理装置10におけるプロセス実行部12からストレージ11に対するI/O処理の実行状況を監視する(ステップS3)。処理部32は、I/O処理の監視結果から算出される、移設後のプロセス実行部22によるI/O処理の性能影響度に基づいて、プロセス実行部12の移設処理の実行タイミングを判定する。処理部32は、性能影響度が移設条件31aを満たす値になった場合に、プロセス実行部12の移設処理の実行タイミングになったと判定し、移設処理の実行指示を情報処理装置10,20に出力する(ステップS4)。この移設処理の実行指示により、プロセス実行部12の移設が行われる。すなわち、移設前のプロセス実行部12の動作が停止し、移設後のプロセス実行部22の動作が開始される。
情報処理装置20は、移設処理の実行指示に応じて、プロセス実行部22の動作を開始する。プロセス実行部22は、ストレージ11に格納されたデータのうちストレージ21にコピー済みのデータについては、ストレージ21に対してI/O処理を実行する。一方、プロセス実行部22は、ストレージ11に格納されたデータのうちストレージ21にコピーされていないデータについては、情報処理装置10を介してストレージ11に対してI/O処理を実行する。例えば、プロセス実行部22が読み出しを要求したデータがストレージ21にコピーされていない場合、そのデータはストレージ11から読み出されて情報処理装置10から転送される。
ここで、ストレージ11からデータが読み出されて転送される場合には、ストレージ21から読み出された場合と比較して、プロセス実行部22によるデータ利用のためのレイテンシが大きくなり、プロセス実行部22のI/O処理性能が低くなる。プロセス実行部12のI/O処理性能の低下は、結果的にプロセス実行部22自体の処理性能の低下につながる。
一方、ストレージ11に記憶されたデータのうち、移設前のプロセス実行部12がI/O処理を実行したデータは、プロセス実行部12による利用頻度の高いデータであると推定できる。このため、プロセス実行部12の移設前にこのようなデータがストレージ21にコピーされることで、移設後のプロセス実行部22がI/O処理を実行しようとする際に、ストレージ21に対するI/O処理が実行される確率が高くなる。これにより、移設に伴うプロセス実行部22のI/O処理性能の低下を抑制でき、その結果として、プロセス実行部22自体の処理性能を改善できる。
また、情報処理装置10が第2の動作モードに遷移した後のプロセス実行部12の移設処理の実行タイミングは、移設後のプロセス実行部22によるI/O処理の性能影響度に基づいて決定される。この性能影響度は、前処理の開始後におけるコピー処理を伴うプロセス実行部12によるストレージ11に対するI/O処理の監視結果に基づいて算出される。これにより、移設に伴うプロセス実行部22のI/O処理性能の低下幅が小さい状態で、プロセス実行部12を移設させることができる。
例えば、ストレージ11に記憶されたデータのうち、移設前のプロセス実行部12が高頻度で利用するデータが比較的多い場合には、ストレージ11のデータをある程度ストレージ21にコピーした後にプロセス実行部12が移設された方が好ましい。したがって、処理部32は例えば、プロセス実行部12によるストレージ11に対するI/O処理の実行に応じた、ストレージ11からストレージ21へのデータのコピー状況に基づいて、プロセス実行部12の移設タイミングを決定する。
また、ストレージ11に記憶されたデータのうち、移設前のプロセス実行部12が利用するデータが比較的少ない場合には、早い段階でプロセス実行部12の移設を実行しても、移設後のプロセス実行部22によるI/O処理性能の低下幅はあまり大きくならない。したがって、処理部32は例えば、ストレージ11に格納されたデータ量に対する、ストレージ21にコピーされていないデータ量の割合に基づいて、プロセス実行部12の移設タイミングを決定する。
このような処理により、情報処理装置10が第2の動作モードに遷移して前処理を開始してからプロセス実行部12の移設処理が実行されるまでの時間を最小限に留めながら、移設後のプロセス実行部22のI/O処理性能の低下を抑制できる。あるいは、ストレージ11からストレージ21へのデータ転送量を最小限に留めながら、移設後のプロセス実行部22のI/O処理性能の低下を抑制できる。
〔第2の実施の形態〕
次に、第2の実施の形態として、仮想的なプロセス実行部の例としてコンテナが適用された場合について説明する。
図2は、第2の実施の形態に係る情報処理システムの構成例を示す図である。図2に示すように、第2の実施の形態に係る情報処理システムは、管理サーバ100と、管理サーバ100による管理対象となるサーバ200,300,400,・・・とを含む。管理サーバ100と、管理サーバ100による管理対象となるサーバ200,300,400,・・・とは、ネットワーク50を介して接続されている。
管理サーバ100は、サーバ200,300,400,・・・の動作を管理するサーバコンピュータである。特に、管理サーバ100は、サーバ200,300,400,・・・上のコンテナの動作管理や、サーバ200,300,400,・・・に対するコンテナの配置制御を行う。サーバ200,300,400,・・・は、例えば業務処理などの各種の処理を実行するサーバコンピュータである。
なお、サーバ200,300,400,・・・は、図1に示した情報処理装置10または情報処理装置20の一例である。また、管理サーバ100は、図1に示した管理装置30の一例である。
図3は、サーバのハードウェア構成例を示す図である。なお、図3ではサーバ200について例示するが、他のサーバ300,400,・・・もサーバ200と同様のハードウェア構成によって実現可能である。
サーバ200は、プロセッサ201、メモリ202、通信インタフェース(I/F)203およびストレージ204a,204b,204c,・・・を備える。
プロセッサ201は、メモリ202からプログラムを読み出して処理する処理装置である。プロセッサ201は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)またはPLD(Programmable Logic Device)である。また、プロセッサ201は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
メモリ202は、DRAM(Dynamic Random Access Memory)などの揮発性記憶装置であり、サーバ200の主記憶装置として使用される。メモリ202には、プロセッサ201に実行させるOSプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ202には、プロセッサ201による処理に必要な各種データが格納される。
通信インタフェース203は、ネットワーク50を介して管理サーバ100などの他の装置と通信するためのインタフェース装置である。ストレージ204a,204b,204c,・・・は、DASと呼ばれる直接接続型の物理ストレージであり、例えば、SSD(Solid State Drive)、HDD(Hard Disk Drive)などの不揮発性記憶装置である。ストレージ204a,204b,204c,・・・は、SAS(Serial Attached SCSI,SCSI:Small Computer System Interface)やSATA(Serial Advanced Technology Attachment)などのインタフェースを介してプロセッサ201との間で通信を行う、サーバ200のローカルストレージである。なお、ストレージ204a,204b,204c,・・・は、サーバ200の外部に配置され、ネットワークを介さずにサーバ200と接続されていてもよい。
なお、プロセッサ201に実行されるプログラムは、例えば、図示しない可搬型記録媒体に記憶され、メモリ202に読み込まれる。あるいは、プログラムは、ネットワーク50を介して接続されたコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてメモリ202に読み込まれる。
また、管理サーバ100についても、図3に示したハードウェア構成のコンピュータとして実現可能である。
次に、図4、図5を用いて、サーバ間でのコンテナの移動(配置変更)について説明する。初めに図4を用いてコンテナ移動処理の比較例について説明し、その後に図5を用いて本実施の形態におけるコンテナ移動処理について説明する。また、図4、図5では、例としてサーバ200からサーバ300に対してコンテナを移動する場合について説明する。
図4は、コンテナ移動処理の比較例について説明するための図である。
コンテナ仮想化技術は、OSにおいて独立したアプリケーションの実行環境を構築する技術である。コンテナ仮想化技術は、単一のOSカーネルの環境においてプロセスを分離することで、異なるOS環境を提供する、ということもできる。コンテナは、単一のOSプログラムが実行される環境において互いに分離された仮想的なユーザ空間である。このユーザ空間は、アプリケーションプログラムを実行するための互いに分離されたリソース群として提供される。例えば、コンテナには個別のメモリ空間が割り当てられる。
図4では例として、サーバ200においてコンテナ210が動作している。コンテナ210によって、業務処理などのアプリケーションの処理が実行される。また、図4の例では、コンテナ210の実行に必要なデータが含まれるコンテナイメージ211が、ストレージ204eに格納されている。コンテナイメージ211には、アプリケーションプログラムが含まれる。コンテナエンジンと呼ばれるコンテナ管理機能によってコンテナイメージ211が読み込まれることで、コンテナ210が起動する。
また、サーバ200では、コンテナ210が利用可能なストレージ領域として、仮想ストレージ220が設定されている。仮想ストレージ220は、例として、サーバ200が備える物理ストレージのうち、ストレージ204a~204dの記憶領域によって実現されるものとする。コンテナ210は、アプリケーションプログラムにしたがい、仮想ストレージ220に対するデータの書き込みや、仮想ストレージ220に書き込んだデータの読み出しを行う。
このように、仮想ストレージ220は、ストレージ204a~204dのようなローカルの物理ストレージを用いたDASタイプの仮想ストレージとして実現されている。このため、コンテナ210は、仮想ストレージ220に対するデータのI/O処理を低レイテンシで実行できる。コンテナ210による仮想ストレージ220に対するI/O処理性能の向上は、コンテナ210上で動作するアプリケーションの処理性能の向上効果をもたらす。特に、データアクセスが多いアプリケーションほど処理性能の向上効果が顕著に得られる。
ところで、コンテナ仮想化技術は、仮想マシンのようなOSレベルでなく、アプリケーションレベルで仮想環境を構築する技術である。ここでいう仮想マシンとは、ハイパバイザによって実現される仮想マシン(ハイパバイザ型仮想マシン)を指す。ただし、コンテナも、物理マシン上で仮想的なプロセス実行環境が構築される点ではハイパバイザ型仮想マシンと共通しており、その意味ではコンテナも仮想マシンの一種ということもできる。
しかしながら、コンテナの起動は、OS上のプロセスの起動に相当するため、コンテナの起動はハイパバイザ型仮想マシンの起動と比較して高速である。また、コンテナの構築では、ハイパバイザ型仮想マシンと比較してメモリの使用量が少ない。このような特徴から、サーバ間におけるコンテナの移動はハイパバイザ型仮想マシンの移動と比較して容易であり、移動にかかる処理時間も短い。このため、一般的に、コンテナが移動される機会はハイパバイザ型仮想マシンと比較して多い。また、コンテナで動作するアプリケーションプログラムがアップデートされる機会も多く、アップデートに伴う実マシンやシステムのスケールアップ・ダウンの必要性から、コンテナが移動される場合も多い。
ここで、図4に示すコンテナ210を、サーバ200からサーバ300に移動させる場合について考える。コンテナ210の移動は、管理サーバ100によって制御される。管理サーバ100は、コンテナ210の移動の前に、コンテナ210に対応するコンテナイメージ211のコピーであるコンテナイメージ311を、サーバ300の実ストレージ(図4の例ではストレージ304e)に格納する。そして、管理サーバ100は、コンテナ210の動作を停止させるとともに、格納されたコンテナイメージ311に基づき、サーバ300上のコンテナ310を起動させる。これにより、移動前のコンテナ210と同様の処理を実行するコンテナ310がサーバ300上で動作する。
また、図4に示す仮想ストレージ320は、移動後のコンテナ310が利用可能な仮想ストレージであり、仮想ストレージ220が移動されたものである。サーバ300では、仮想ストレージ320の物理領域として、サーバ300のローカルストレージであるストレージ304a~304dの記憶領域を割り当て可能になっている。
しかし、コンテナ310の起動によりコンテナ移動だけが実行され、仮想ストレージ220のデータが移動していない状況では、移動後の仮想ストレージ320にはサーバ200のローカルストレージの記憶領域が割り当てられたままである。このため、移動後のコンテナ310は仮想ストレージ320のデータを利用するためにサーバ200にアクセスしなければならず、データ利用のためのレイテンシが増大化してしまう。また、仮想ストレージ220のデータはその後、サーバ200のローカルストレージからサーバ300のローカルストレージへ順次転送されるが、未転送のデータについてはコンテナ310がサーバ200にアクセスして利用しなければならないことに変わりない。
このように、DASタイプの仮想ストレージを用いた場合には、仮想ストレージ内のデータについてのサーバ間の転送が、サーバ間でのコンテナの高速移動に追従できない。コンテナを短時間に移動できても、移動直後の期間ではコンテナが利用するデータのローカリティが悪化し、コンテナによるデータのI/O処理性能が低下する。その結果、コンテナ上で動作するアプリケーションの処理性能が低下してしまうという問題がある。
また、コンテナの移動直後におけるデータローカリティを維持するための他の方法としては、例えば、コンテナの移動前に、移動先のサーバのローカルストレージに対して仮想ストレージのデータをすべて転送しておく方法が考えられる。しかし、この方法では、コンテナの移動が必要と判定された時刻から実際にコンテナを移動できるようになるまでの時間が長くなるという問題がある。また、コンテナに対応する仮想ストレージでは必ずしも記憶されたすべてのデータがコンテナの移動後に必要とならない場合もある。事前に仮想ストレージの全データを転送する方法では、コンテナの移動後に利用されない無駄なデータが転送されてしまう可能性があり、その分だけ処理効率が低くなるという問題もある。
図5は、第2の実施の形態におけるコンテナ移動処理について説明するための図である。
本実施の形態において、管理サーバ100は、コンテナ210の移動が必要と判定し、かつ移動先のサーバ(ここではサーバ300)を決定すると、移動元のサーバ200の動作モードをI/O転送モードに遷移させる。I/O転送モードに遷移したサーバ200は、コンテナ210から仮想ストレージ220に対するI/O要求が発行されると、そのI/O処理を実行する(ステップS11)。これとともに、サーバ200は、I/O処理対象のデータをサーバ300のローカルストレージに転送する(ステップS12)。これにより、サーバ200のローカルストレージにおけるI/O処理対象のデータが、サーバ300のローカルストレージにもコピーされる。
また、サーバ200から管理サーバ100に対して、コンテナ210の移動タイミングを判定するための性能影響度R1が定期的に送信される(ステップS13)。性能影響度R1は、移動後のコンテナ310の性能に与える影響の大きさを示す指標であり、サーバ200からサーバ300へのデータの転送状況に基づいて算出される。移動後のコンテナ310の性能を大きく低下させる可能性があるほど、性能影響度R1の値は大きくなる。
管理サーバ100は、サーバ200から送信される性能影響度R1に基づいて、コンテナ配置制御を実行する(ステップS14)。コンテナ配置制御では、管理サーバ100は、性能影響度R1から、移動後のコンテナ310の性能に与える影響がある程度小さくなったと判定した場合に、サーバ200上のコンテナ210を停止させるとともに、サーバ300上のコンテナ310を起動させる。
移動前のコンテナ210から仮想ストレージ220に対してI/O処理が要求されたデータは、移動後のコンテナ310に利用される可能性が高いと推定されるので、転送の必要性が高い。このため上記処理では、このように転送の必要性が高いデータが、コンテナ210の移動前にサーバ300へ優先的に転送される。これにより、仮想ストレージ220の全データをサーバ300に転送しなくても、移動後のコンテナ310がサーバ300のローカルストレージのデータにアクセスする確率を高めることができる。
また、性能影響度R1に基づき、移動直後における移動後のコンテナ310の性能低下幅が一定範囲に収まると推定されるほどデータの転送が進んだ場合に、コンテナ移動が実行される。これにより、コンテナ210の移動が必要と判定されてから実際に移動が行われるまでの時間を最小限に留めることができる。また、仮想ストレージ220に記憶されたデータのうち無駄なデータが転送される可能性を低減できる。
なお、コンテナの移動先のサーバは、コンテナ移動の実際の実行タイミングにおいて、その時点での処理負荷が低いなどの移動先として適切なサーバに決定されることが望ましい。コンテナ移動の前に仮想ストレージ220の全データを事前に転送するという前述の方法では、データ転送に時間がかかることから、データ転送が完了した時点でコンテナの移動先のサーバを決定することが望ましい。この場合、コンテナの移動先候補となるサーバが複数存在する場合に、移動先候補となるすべてのサーバに対して仮想ストレージのデータを事前に転送しなければならない。このため、移動先候補のサーバが決定されてそのサーバにコンテナが移動された際に、他のサーバに転送されたデータが無駄になってしまうという問題もある。
図5に示した本実施の形態の方法によれば、コンテナ210の移動が必要と判定した後、実際にコンテナ移動を実行するタイミングで移動先を決定したとしても、移動先の決定までの間に移動先候補の全サーバに転送するデータ量を抑制できる。一方、コンテナ210の移動が必要と判定したタイミングで移動先も決定した場合でも、実際にコンテナ移動を実行するまでの時間差を最小限に留めることができる。このため、移動先の決定からコンテナ移動の実行までの移動先サーバの動作状況(負荷状況など)の変動が小さくなる。その結果、上記時間差によって処理負荷が大きくなった不適切なサーバにコンテナ210が移動される可能性を低減できる。
なお、図5において、サーバ200,300、管理サーバ100は、それぞれ図1に示した情報処理装置10,20、管理装置30の一例である。また、ストレージ204a~204dは図1に示したストレージ11の一例であり、コンテナ210は図1に示したプロセス実行部12の一例である。さらに、ストレージ304a~304dは図1に示したストレージ21の一例であり、コンテナ310は図1に示したプロセス実行部22の一例である。
次に、本実施の形態に係る情報処理システムでのコンテナ移動処理について、詳細に説明する。
まず、図6は、サーバが備える処理機能の構成例を示すブロック図である。なお、図6ではサーバ200について例示するが、他のサーバ300,400,・・・もサーバ200と同様の処理機能を備えている。
サーバ200は、記憶部230、コンテナ管理部240、I/O制御部250、データ転送処理部260およびデータ無効化部270を備える。記憶部230は、例えばメモリ202など、サーバ200が備える記憶装置の記憶領域によって実現される。コンテナ管理部240、I/O制御部250、データ転送処理部260およびデータ無効化部270の処理は、プロセッサ201が所定のプログラムを実行することで実現される。
記憶部230には、転送管理情報231が記憶される。転送管理情報231は、I/O転送モードにおいて、コンテナによって利用される仮想ストレージ内のデータが移動先のサーバに転送される際の転送状況を示す情報である。例えば、転送管理情報231は、仮想ストレージ内のブロックごとのビットを備えるビットマップである。この場合、ブロックのデータが転送されると、ビットマップ上の対応するビットが「0」から「1」に変更される。
コンテナ管理部240は、サーバ200におけるコンテナの動作を管理するコンテナエンジンである。以下の説明では、図5と同様に、コンテナ管理部240の管理の下でコンテナ210が動作するものとする。また、コンテナ210が利用するデータは、ストレージ204a~204dによって実現される仮想ストレージ220に格納されるものとする。そして、転送管理情報231は、仮想ストレージ220に記憶されたデータの転送状況を示すものとする。
また、コンテナ管理部240は、通常モード(I/O転送モードでない動作モード)において、サーバ200の性能情報を収集して管理サーバ100に送信する機能を備える。性能情報は、コンテナ移動の要否や最適な移動先のサーバを判定するために利用される情報である。性能情報としては、例えば、サーバ200のプロセッサ201やメモリ202の使用率、サーバ200で動作しているコンテナごとのプロセッサ201やメモリ202の使用率などが収集される。
さらに、コンテナ管理部240は、I/O転送モードにおいて起動される性能影響度送信部241を備える。性能影響度送信部241は、転送管理情報231に基づいて性能影響度を算出し、管理サーバ100に送信する。
I/O制御部250は、コンテナからの要求に応じた仮想ストレージに対するI/O処理を制御する。コンテナ210が動作している状態では、I/O制御部250は、コンテナ210からの要求に応じた仮想ストレージ220に対するI/O処理を制御する。また、I/O制御部250は、I/O転送モードにおいて起動される転送制御部251を備える。I/O制御部250は、コンテナから仮想ストレージに対するI/O要求を受け付けたとき、仮想ストレージに対するI/O処理を実行するとともに、I/O処理の対象のデータをコンテナの移動先サーバのローカルストレージに転送する。
データ転送処理部260は、他のサーバ300,400,・・・との間での、仮想ストレージのデータの転送を実行する。
データ無効化部270は、コンテナの移動が実行された場合に、移動前のコンテナに対応する仮想ストレージのデータのうち、移動先サーバのローカルストレージに転送済みのデータを無効化する。
図7は、管理サーバが備える処理機能の構成例を示すブロック図である。管理サーバ100は、記憶部110、サーバ性能監視部120およびコンテナ配置制御部130を備える。記憶部110は、管理サーバ100が備える記憶装置の記憶領域によって実現される。サーバ性能監視部120およびコンテナ配置制御部130の処理は、管理サーバ100が備えるプロセッサが所定のプログラムを実行することで実現される。
記憶部110には、コンテナ配置制御部130の判定処理で参照される情報として、配置変更条件111と性能影響度条件112とが記憶される。配置変更条件111は、コンテナの配置変更に関する性能情報の条件を示す。配置変更条件111には、コンテナの移動を判定するための移動条件と、コンテナの移動先サーバを決定するための移動先条件とが含まれる。性能影響度条件112は、コンテナ移動を実行すると判定するための性能影響度の条件を示す。
サーバ性能監視部120は、通常モードにおいて、サーバ200,300,400,・・・から性能情報を収集することで、サーバ200,300,400,・・・のそれぞれや動作するコンテナごとの性能を監視する。また、サーバ性能監視部120は、サーバをI/O転送モードに遷移させたときに起動される性能影響度収集部121を備える。性能影響度収集部121は、コンテナの移動元サーバから性能影響度を収集する。
コンテナ配置制御部130は、サーバ200,300,400,・・・のそれぞれにおけるコンテナの配置制御を実行する。コンテナ配置制御部130は、配置決定部131とイベント発行部132を備える。
配置決定部131は、サーバ200,300,400,・・・のそれぞれが通常モードであるときに、サーバ200,300,400,・・・から収集された性能情報を基に、移動すべきコンテナの有無を判定する。また、コンテナ配置制御部130は、移動すべきコンテナが存在する場合、そのコンテナが動作するサーバ以外のサーバからの性能情報に基づいて、コンテナの移動先サーバを決定する。さらに、配置決定部131は、いずれかのサーバがI/O転送モードであるときに、そのサーバから収集された性能影響度に基づいて、コンテナ移動を実行するタイミングを決定する。
イベント発行部132は、サーバ200,300,400,・・・に対して各種の処理を実行させるためのイベントを発行する。このようなイベントとしては、コンテナの停止や起動、動作モードの変更などがある。
次に、サーバ200上のコンテナ210をサーバ300へ移動させる場合の処理について、図8~図11を用いて説明する。
図8は、移動対象のコンテナが検出される前の状態を示す図である。図8の状態では、サーバ200,300,400,・・・は通常モードで動作している。これらのうちコンテナが起動しているサーバでは、コンテナがI/O制御部を介して仮想ストレージにアクセスしている。例えばサーバ200では、コンテナ210がI/O制御部250を介して仮想ストレージ220にアクセスしており、これによってローカルストレージ(ストレージ204a~204d)のI/O処理が行われている。また、サーバ間では仮想ストレージのデータの転送が行われていない。
この状態では、サーバ200,300,400,・・・のそれぞれのコンテナ管理部は、性能情報を定期的に収集して管理サーバ100に送信する。性能情報としては、例えば、各サーバのプロセッサやメモリの使用率、動作しているコンテナによるプロセッサやメモリの使用率が送信される。
管理サーバ100のサーバ性能監視部120は、サーバ200,300,400,・・・から性能情報を受信する。コンテナ配置制御部130の配置決定部131は、サーバ性能監視部120が受信した性能情報のうち、コンテナごとの性能情報を取得して、性能情報が、配置変更条件111に含まれる移動条件を満たしているコンテナがあるかを判定する。移動条件としては、例えば、コンテナによるプロセッサの使用率が所定の第1の値より低い、または、コンテナによるメモリの使用率が所定の第2の値より低い、などの条件が適用される。
そして、性能情報が移動条件を満たすコンテナが現れた場合、そのコンテナが移動対象として検出されて、次の図9のような処理が行われる。また、このとき、配置決定部131は、移動対象のコンテナが動作するサーバ以外のサーバからの性能条件をサーバ性能監視部120から取得し、各サーバの性能条件を配置変更条件111に含まれる移動先条件と比較する。移動先条件としては、例えば、サーバにおけるプロセッサの使用率が所定の第3の値より低い、または、サーバにおけるメモリの使用率が所定の第4の値より低い、などの条件が適用される。そして、配置決定部131は、性能条件が移動先条件を満たすサーバを、移動対象のコンテナが移動される移動先のサーバとして決定する。
図9は、移動対象のコンテナが検出された状態を示す図である。図9では例として、サーバ200のコンテナ210が移動対象として検出されたものとする。
管理サーバ100の配置決定部131は、移動対象としてコンテナ210を検出すると、イベント発行部132を起動させる。イベント発行部132は、サーバ性能監視部120の性能影響度収集部121を起動させる。また、イベント発行部132は、コンテナ移動元のサーバ200に対し、コンテナ管理部240の性能影響度送信部241と、I/O制御部250の転送制御部251とを起動させるように要求する。これにより、イベント発行部132は、サーバ200を通常モードからI/O転送モードに遷移させる。
また、配置決定部131は、サーバ200のローカルストレージに格納されている、コンテナ210に対応するコンテナイメージを、サーバ300のローカルストレージにコピーする。
図10は、サーバがI/O転送モードに遷移した後の状態を示す図である。コンテナ移動元のサーバ200は、性能影響度送信部241と転送制御部251を起動することで、I/O転送モードに遷移する。
転送制御部251は、コンテナ210から仮想ストレージ220に対するI/O要求を受け付けると、仮想ストレージ220に対するI/O処理を実行する。これとともに、転送制御部251は、I/O処理の対象のデータを、データ転送処理部260を介してサーバ300に転送して、サーバ300のローカルストレージに格納するように要求する。サーバ300のデータ転送処理部360は、サーバ200から転送されたデータをサーバ300のローカルストレージに格納する。図10の例では、サーバ300における格納先のローカルストレージとして、ストレージ304a~304dが使用されている。
例えば、転送制御部251は、コンテナ210から仮想ストレージ220に対するデータの書き込み要求を受け付けると、データを仮想ストレージ220に書き込む。これにより、データはサーバ200のローカルストレージ(ストレージ204a~204d)に書き込まれる。これとともに、転送制御部251は、書き込みが要求されたデータをサーバ300に転送して、サーバ300のローカルストレージにも書き込む。また、転送制御部251はこのとき、仮想ストレージ220における書き込み先領域のデータについてデータ転送が完了したことを示す情報を、転送管理情報231に記録する。転送管理情報231がビットマップである場合、書き込み先領域に対応するビットが「1」に更新される。
また、例えば、転送制御部251は、コンテナ210から仮想ストレージ220からのデータの読み出し要求を受け付けると、読み出しが要求されたデータを仮想ストレージ220から読み出し、コンテナ210に受け渡す。このとき、データはローカルストレージ(ストレージ204a~204d)から読み出される。これとともに、転送制御部251は、仮想ストレージ220から読み出したデータをサーバ300に転送して、サーバ300のローカルストレージにも書き込む。また、転送制御部251はこのとき、仮想ストレージ220における読み出し元領域のデータについてデータ転送が完了したことを示す情報を、転送管理情報231に記録する。転送管理情報231がビットマップである場合、読み出し元領域に対応するビットが「1」に更新される。
一方、性能影響度送信部241は、転送制御部251による仮想ストレージ220上のデータの転送状況を示す情報を、定期的に取得する。具体的には、性能影響度送信部241は、このような情報として転送管理情報231を読み込む。性能影響度送信部241は、転送管理情報231に基づいて性能影響度を算出し、管理サーバ100に送信する。
ここで、仮想ストレージ220のデータのうち未転送のデータ量が多いほど、その時点でコンテナ210を移動したと仮定した場合に移動後のコンテナ310(図5参照)の性能が低くなる可能性が高い。これは、未転送のデータ量が多いほど、移動後のコンテナ310が仮想ストレージ320(図5参照)のデータを読み出そうとしたときに、そのデータを移動先のサーバ300のローカルストレージから取得できない可能性が高いからである。
そこで、本実施の形態では例として、仮想ストレージ220の総データ量に対する未転送データのデータ量の割合が性能影響度として算出される。例えば、転送管理情報231がビットマップであり、ビットマップ全体のビット数をB_all、ビット値が「1」であるビット(すなわち、転送済みを示すビット)のビット数をB_tとする。このとき、性能影響度は次の式(1)によって算出される。
性能影響度=1-B_t/B_all ・・・(1)
このようにして、コンテナ移動元のサーバ200から管理サーバ100に対して、性能影響度が定期的に送信される。管理サーバ100では、性能影響度収集部121が、サーバ200から送信された性能影響度を受信する。配置決定部131は、性能影響度収集部121が受信した性能影響度を取得し、この性能影響度を性能影響度条件112と比較する。そして、配置決定部131は、性能影響度が性能影響度条件112を満たしたとき、コンテナ210の移動を実行すると判定する。例えば、性能影響度条件112が「20%未満」である場合、配置決定部131は、性能影響度が20%未満になったときにコンテナ210の移動を実行すると判定する。
図11は、コンテナ移動を実行すると判定された後の状態を示す図である。配置決定部131は、コンテナ210の移動を実行すると判定すると、イベント発行部132を再度起動させる。
イベント発行部132は、コンテナ移動元のサーバ200の性能影響度送信部241と転送制御部251を停止させる。これにより、サーバ200はI/O転送モードから通常モードに遷移する。また、イベント発行部132は、サーバ200のコンテナ管理部240に対してコンテナ210の停止を要求するとともに、サーバ300のコンテナ管理部340に対して、コンテナ210に対応するコンテナ310の起動を要求する。これにより、コンテナ210の動作が停止する。また、コンテナ310は、サーバ300のローカルストレージにコピーされていた、コンテナ210に対応するコンテナイメージを用いて起動される。これにより、コンテナ移動が完了する。
コンテナ310は、サーバ300のI/O制御部350を介して、コンテナ310に対応付けられた仮想ストレージ320(図5参照)にアクセスする。このとき、読み出しを要求したデータがサーバ300のローカルストレージ(ストレージ304a~304d)に格納されている場合には、そのデータをローカルストレージから取得できる。なお、実際には、例えば、コンテナ310の起動が要求された時点で、転送管理情報231がサーバ200からサーバ300にコピーされる。I/O制御部350は、コピーされた転送管理情報231に基づいて、コンテナ310から読み出しが要求されたデータがサーバ300のローカルストレージに格納されているかを判定できる。
また、管理サーバ100のイベント発行部132は、サーバ200のデータ無効化部270を起動する。データ無効化部270は、転送管理情報231に基づいて、ローカルストレージ(ストレージ204a~204d)に格納された仮想ストレージ220のデータのうち、サーバ300に転送済みのデータを無効化する。
この後、必要に応じて、ローカルストレージ(ストレージ204a~204d)に格納された仮想ストレージ220のデータのうち、サーバ300に対して未転送のデータがサーバ300に転送されて、サーバ300のローカルストレージ(ストレージ304a~304d)に格納される。
以上の図8~図11に示した処理によれば、コンテナ210が移動対象として検出された後、実際にコンテナ移動が実行されるまでの間に、移動後のコンテナ310が利用する可能性の高いデータがサーバ300のローカルストレージに転送される。これにより、サーバ200の仮想ストレージ220における一部のデータをコンテナ移動前に転送しておくだけで、移動後のコンテナ310がサーバ300のローカルストレージのデータにアクセスする確率を高めることができる。その結果、コンテナ移動直後におけるコンテナ310の処理性能の低下を抑制できる。
次に、管理サーバ100およびサーバ200,300,400,・・・の処理について、フローチャートを用いて説明する。
まず、図12は、コンテナの配置制御に関する処理例を示すフローチャートである。
まず、通常モードにおけるサーバ200,300,400,・・・の性能情報送信処理について説明する。ここでは例としてサーバ200での処理を示すが、他のサーバ300,400,・・・でも同様の処理が実行される。なお、通常モードでは、コンテナが動作しているサーバでは、コンテナがI/O制御部を介して、ローカルストレージを用いた仮想ストレージに対するアクセスを行っている。例えば、サーバ200でコンテナ210が動作している場合、コンテナ210はI/O制御部250を介して、ストレージ204a~204dを用いた仮想ストレージ220に対するアクセスを行っている。
サーバ200のコンテナ管理部240は、サーバ200に関する性能情報を収集する(ステップS21)。性能情報としては、例えば、サーバ200のプロセッサ201やメモリ202の使用率、動作しているコンテナによるプロセッサ201やメモリ202の使用率が収集される。コンテナ管理部240は、収集された性能情報を管理サーバ100に送信する(ステップS22)。そして、コンテナ管理部240は、一定時間後にステップS21の処理を再度実行する。すなわち、ステップS21、S22の処理が一定時間間隔で実行される。
次に、I/O転送モードにおけるサーバ200,300,400,・・・の性能影響度送信処理について説明する。ここでは例として、サーバ200がI/O転送モードに遷移したものとする。管理サーバ100のイベント発行部132からの要求に応じてコンテナ管理部240の性能影響度送信部241が起動すると、サーバ200はI/O転送モードに遷移する。このとき、I/O制御部250の転送制御部251も起動される。サーバ200のコンテナ210が移動対象として検出されたとすると、転送制御部251は、コンテナ210から仮想ストレージ220に対するI/O要求を受け付けたとき、要求に応じたI/O処理を実行するとともに、I/O要求対象のデータをコンテナ210の移動先サーバのローカルストレージに転送する。なお、I/O転送モードでの転送制御部251の処理については、後の図13において説明する。
サーバ200の性能影響度送信部241は、コンテナ210に関する性能影響度を収集する(ステップS31)。具体的には、性能影響度送信部241は、転送制御部251による仮想ストレージ220上のデータの転送状況を示す情報として、転送管理情報231を記憶部230から読み込み、転送管理情報231に基づき、前述の式(1)を用いて性能影響度を算出する。性能影響度送信部241は、算出された性能影響度を管理サーバ100に送信する(ステップS32)。そして、性能影響度送信部241は、一定時間後にステップS31の処理を再度実行する。すなわち、ステップS31,S32の処理が一定時間間隔で実行される。
次に、管理サーバ100のコンテナ配置制御処理について説明する。サーバ200,300,400,・・・のいずれも通常モードで動作しているとき、管理サーバ100のサーバ性能監視部120は、サーバ200,300,400,・・・のそれぞれから性能情報を収集する(ステップS41)。このとき、前述のステップS22においてサーバ200,300,400,・・・のそれぞれから送信された性能情報を、サーバ性能監視部120が受信する。
コンテナ配置制御部130の配置決定部131は、サーバ性能監視部120によって収集された性能情報を取得し、性能情報が、配置変更条件111に含まれる移動条件を満たしているコンテナがあるかを判定する(ステップS42)。移動条件としては、例えば、コンテナによるプロセッサの使用率が所定の第1の値を超えている、または、コンテナによるメモリの使用率が所定の第2の値を超えている、などの条件が適用される。
性能条件が移動条件を満たすコンテナが存在しない場合(ステップS42:No)、一定時間後にサーバ性能監視部120によってステップS41の処理が実行される。すなわち、性能条件が移動条件を満たすコンテナが検出されない間、ステップS41,S42の処理が一定時間間隔で実行される。
一方、性能条件が移動条件を満たすコンテナが存在する場合(ステップS42:Yes)、配置決定部131は、そのコンテナを移動対象として検出する。また、配置決定部131は、移動対象のコンテナが動作するサーバ以外のサーバから収集された性能情報の中から各サーバの性能情報を取得し、配置変更条件111に含まれる移動先条件と比較する。移動先条件としては、例えば、サーバにおけるプロセッサの使用率が所定の第3の値より低い、または、サーバにおけるメモリの使用率が所定の第4の値より低い、などの条件が適用される。そして、配置決定部131は、性能条件が移動先条件を満たすサーバを、移動対象のコンテナが移動される移動先のサーバとして決定する(ステップS43)。
以下、サーバ200のコンテナ210が移動対象として検出され、サーバ300がコンテナ移動先として決定されたとする。配置決定部131は、イベント発行部132を起動させる。イベント発行部132は、サーバ性能監視部120の性能影響度収集部121を起動させる。また、イベント発行部132は、コンテナ移動元のサーバ200に対し、コンテナ管理部240の性能影響度送信部241と、I/O制御部250の転送制御部251とを起動させるように要求する。これにより、イベント発行部132は、サーバ200を通常モードからI/O転送モードに遷移させる(ステップS44)。
また、配置決定部131は、サーバ200のローカルストレージに格納されている、コンテナ210に対応するコンテナイメージを、コンテナ移動先のサーバ300のローカルストレージにコピーする。さらに、配置決定部131は、仮想ストレージ220の論理アドレスと物理アドレスとの対応関係を示すアドレス変換情報を、サーバ300に転送する。これによりサーバ300では、移動後のコンテナ310が利用する仮想ストレージ320(図5参照)が設定される。
次に、性能影響度収集部121は、コンテナ移動元のサーバ200から性能影響度を取得する(ステップS45)。このとき、前述のステップS32においてサーバ200から送信された性能影響度を性能影響度収集部121が受信する。配置決定部131は、性能影響度収集部121によって取得された性能影響度を性能影響度条件112と比較する(ステップS46)。例えば、性能影響度が20%未満か否かが判定される。
性能影響度が性能影響度条件112を満たさない場合(ステップS46:No)、一定時間後に性能影響度収集部121によってステップS45の処理が実行される。すなわち、性能影響度が性能影響度条件112を満たさない間、ステップS45,S46の処理が一定時間間隔で実行される。
そして、性能影響度が性能影響度条件112を満たした場合(ステップS46:Yes)、配置決定部131はコンテナ210の移動を実行すると判定する。この場合、配置決定部131はイベント発行部132を再度起動させて、コンテナ移動を実行させる(ステップS47)。イベント発行部132は、コンテナ移動元のサーバ200の性能影響度送信部241と転送制御部251を停止させる。これにより、サーバ200はI/O転送モードから通常モードに遷移する(ステップS48)。また、イベント発行部132は、サーバ200のコンテナ管理部240に対してコンテナ210の停止を要求するとともに、サーバ300のコンテナ管理部340に対して、コンテナ210に対応するコンテナ310の起動を要求する。これにより、コンテナ210の動作が停止する。また、コンテナ310は、サーバ300のローカルストレージにコピーされていた、コンテナ210に対応するコンテナイメージを用いて起動される。これによりコンテナ移動が完了し、処理がステップS41に戻される。
図13は、I/O転送モードのサーバにおけるI/O処理例を示すフローチャートである。ここでは例として、サーバ200で動作するコンテナ210が移動対象として検出されたものとする。コンテナ210から出力された、仮想ストレージ220に対するI/O要求をI/O制御部250の転送制御部251が受け付けると、図13の処理が実行される。
[ステップS51]転送制御部251は、I/O要求が書き込み要求の場合、ステップS52,S53の処理を実行し、I/O要求が読み出し要求の場合、ステップS54の処理を実行する。
[ステップS52]転送制御部251は、書き込みが要求されたデータを仮想ストレージ220に書き込む。このとき、転送制御部251は、データをサーバ200のローカルストレージに書き込む(ローカル書き込み)。
[ステップS53]転送制御部251は、書き込みが要求されたデータをコンテナの移動先サーバに転送して、そのサーバのローカルストレージにデータを書き込むように要求する(リモート書き込み)。
[ステップS54]転送制御部251は、転送管理情報231を参照し、仮想ストレージ220における読み出し元領域のデータがコンテナの移動先サーバに転送済みかを判定する。転送制御部251は、データが未転送の場合にはステップS55,S56の処理を実行し、データが転送済みの場合にはステップS58の処理を実行する。例えば、転送管理情報231がビットマップの場合、読み出し元領域に対応するビットが「0」の場合にはステップS55,S56の処理が実行され、「1」の場合にはステップS58の処理が実行される。
[ステップS55]転送制御部251は、読み出しが要求されたデータを仮想ストレージ220(実際にはローカルストレージ)から読み出し、コンテナ210に受け渡す。
[ステップS56]転送制御部251は、読み出しが要求されたデータをコンテナの移動先サーバに転送して、そのサーバのローカルストレージにデータを書き込むように要求する(リモート書き込み)。
なお、ステップS53またはステップS56の処理が実行されると、コンテナの移動先サーバでは次のような処理が実行される。移動先サーバは、転送されたデータを移動先サーバのローカルストレージに書き込む。また、移動先サーバは、移動後のコンテナ(例えば図5のコンテナ310)が利用する仮想ストレージ(例えば図5の仮想ストレージ320)の論理アドレスと物理アドレスとの対応関係を示すアドレス変換情報を更新する。このアドレス変換情報は、図12のステップS44においてサーバ200から送信された、仮想ストレージ220の論理アドレスと物理アドレスとの対応関係を示す情報である。移動先サーバは、アドレス変換情報内の論理アドレスのうち書き込み先(ステップS51:Yesの場合)または読み出し元(ステップS54:Noの場合)として指定された論理アドレスに対応する物理アドレスを、移動先サーバのローカルストレージにおけるデータの書き込み先のアドレスに更新する。これにより、移動後のコンテナが仮想ストレージ上の当該論理アドレスにアクセスする際に、ローカルストレージ上のデータにアクセスできるようになる。
[ステップS57]ステップS52,S53、またはステップS55,S56の処理が完了すると、ステップS57の処理が実行される。転送制御部251は、仮想ストレージ220における書き込み先領域(ステップS52が実行された場合)、または読み出し元領域(ステップS54が実行された場合)のデータについてデータ転送が完了したことを示す情報を、転送管理情報231に記録する。例えば、転送管理情報231がビットマップの場合、書き込み先領域または読み出し領域に対応するビットが「0」から「1」に更新される。書き込み先領域に対応するビットがすでに「1」の場合には、ビットの値がそのまま維持される。
[ステップS58]転送制御部251は、読み出しが要求されたデータを仮想ストレージ220(実際にはローカルストレージ)から読み出し、コンテナ210に受け渡す。
図14は、コンテナが移設されたサーバにおけるI/O処理例を示すフローチャートである。図14では例として、サーバ300にコンテナ310が移動された場合について説明する。コンテナ310から出力された、仮想ストレージ320に対するI/O要求をI/O制御部350が受け付けると、図14の処理が実行される。
なお、ここでは例として、コンテナ310の起動がサーバ200から要求された時点でサーバ200からコピーされた転送管理情報231を用いて、I/O処理が制御されるものとする。転送管理情報231は、サーバ300の記憶部に記憶されている。また、図14の処理と並行して、サーバ200のローカルストレージにおける未転送データがサーバ300に順次転送され、未転送データの転送(サーバ300のローカルストレージへの格納)が完了すると転送管理情報231は更新される。
[ステップS61]I/O制御部350は、I/O要求が書き込み要求の場合、ステップS62の処理を実行し、I/O要求が読み出し要求の場合、ステップS64の処理を実行する。
[ステップS62]I/O制御部350は、書き込みが要求されたデータを仮想ストレージ320に書き込む。このとき、I/O制御部350は、データをサーバ300のローカルストレージに書き込む(ローカル書き込み)。
[ステップS63]I/O制御部350は、転送管理情報231において、書き込み先領域に関する情報が転送未完了を示す場合には、この情報を転送完了を示すように更新する。例えば、転送管理情報231がビットマップの場合、書き込み先領域に対応するビットが「0」から「1」に更新される。書き込み先領域に対応するビットがすでに「1」の場合には、ビットの値がそのまま維持される。
[ステップS64]I/O制御部350は、転送管理情報231を参照し、仮想ストレージ320における読み出し元領域のデータがサーバ200のローカルストレージから転送済みかを判定する。I/O制御部350は、データが未転送の場合にはステップS65の処理を実行し、データが転送済みの場合にはステップS66の処理を実行する。例えば、転送管理情報231がビットマップの場合、読み出し元領域に対応するビットが「1」の場合にはステップS65の処理が実行され、「0」の場合にはステップS66の処理が実行される。
[ステップS65]I/O制御部350は、読み出しが要求されたデータを、サーバ200を介してサーバ200のローカルストレージから取得し(リモート読み出し)、コンテナ310に受け渡す。
[ステップS66]I/O制御部350は、読み出しが要求されたデータをサーバ300のローカルストレージから読み出し(ローカル読み出し)、コンテナ310に受け渡す。
以上の図14に示すように、移動されたコンテナ310は、読み出し対象のデータがサーバ300のローカルストレージに転送済みの場合、リモート読み出しを行うことなく、データをローカルストレージから読み出すことができる。管理サーバ100によるコンテナ配置制御により、コンテナ310がアクセスする可能性が高いデータはサーバ300のローカルストレージに転送済みである可能性が高くなっている。このため、コンテナ310の起動後においてリモート読み出しが行われる可能性は低くなり、その結果として、コンテナ移動に伴うコンテナ310の処理性能の低下が抑制される。
〔第3の実施の形態〕
以下、上記の第2の実施の形態における処理の一部を変形した第3の実施の形態について説明する。
上記の第2の実施の形態では、移動前のコンテナ210のアクセス先である仮想ストレージ220のデータ量のうち、移動先のサーバ300に対する未転送のデータ量の割合が、性能影響度として算出された。この方法は、ローカルストレージを用いた仮想ストレージへのアクセス頻度が高く、コンテナを移動した後でも、移動前と同じデータを頻繁にアクセスするようなコンテナの配置変更を行う際に有効である。これは、移動後のサーバ300上のローカルストレージに対するデータ転送済みの領域が大きいほど、移動後のコンテナ310が仮想ストレージ320のデータについてリモートアクセスでなくローカルアクセスする確率が高くなるからである。これにより、移動直後におけるコンテナ310の性能影響度(性能を低下させる度合い)を抑制できる。
一方、コンテナによっては、移動後に移動前と同じデータにアクセスする頻度が低い場合もあり得る。例えば、仮想ストレージにおけるアクセス先領域のバラツキが大きい場合や、仮想ストレージに対するアクセス頻度自体が低い場合などが考えられる。また、移動後のコンテナは、書き込みを要求する場合には更新前のデータにアクセスする必要はなく、移動先サーバのローカルストレージに書き込めばよい。このため、書き込み要求が多い場合も、移動後に移動前と同じデータにアクセスする頻度が低くなるケースと言える。
このようなケースでは、例えば、コンテナ移動を実行するための判定閾値(性能影響度条件112の閾値)を低くして対処する方法が考えられる。あるいは、性能影響度の計算方法自体を変える方法も考えられる。以下、第3の実施の形態として、後者の方法を用いた場合について説明する。
本実施の形態では、I/O転送モードに遷移したサーバは、一定期間(性能影響度の収集周期)ごとに、仮想ストレージの各領域に対する初回の読み出しが要求された回数をカウントする。そして、サーバは、カウント値に基づいて1秒当たりの初回読み出し回数R_riopsを算出し、性能影響度を次の式(2)によって算出する。
性能影響度=R_iops/V_iops ・・・(2)
式(2)において、V_iopsは、コンテナによる仮想ストレージに対するI/O処理能力を示すIOPS(Input/Output per second)である。例えば、V_iopsは、コンテナについてのこのようなIOPSの保証値として与えられる。V_iopsは、コンテナおよびそのアクセス先の仮想ストレージの設定情報(容量、物理ストレージの構成などの情報を含む)に基づいて算出されてもよいし、ユーザ操作によって設定されてもよい。
管理サーバ100の配置決定部131は、式(2)を用いて算出された性能影響度をサーバから取得して、性能影響度を所定の性能影響度条件112と比較することによってコンテナ移動を実行するかを判定する。性能影響度が、性能影響度条件112として設定された閾値未満であれば、コンテナ移動を実行すると判定される。なお、使用される性能影響度条件112は、性能影響度の算出方法の違いに応じて設定されるものであり、第2の実施の形態で用いられる値とは異なる場合がある。
単位時間における初回読み出し回数が小さいほど、移動後のコンテナが仮想ストレージからの読み出しを要求する確率が低くなるので、移動後のコンテナがリモートアクセスする確率も低くなる。特に、単位時間における読み出し回数全体でなく初回読み出し回数を用いることで、仮想ストレージにおける同じ領域からの重複読み出し回数がカウントされなくなり、仮想ストレージの領域のうち読み出しが1回でも発生した領域の数がカウントされる。このため、仮にコンテナ移動前に移動先サーバにデータ転送しなかった場合に、コンテナ移動後において移動後のコンテナがデータ読み出しのために移動元サーバ内のデータにリモートでアクセスしなければならなくなる回数を正確に計数できる。このような回数が少なければ、コンテナ移動を実行しても移動後のコンテナの性能低下は小さいと判断できる。したがって、式(2)を用いて算出された性能影響度を用いてコンテナ移動の実行タイミングを判定することで、移動後のコンテナの性能低下を最小限に抑制できるようになる。
図15は、第3の実施の形態におけるサーバのI/O処理例を示すフローチャートである。この図15は、I/O転送モードに遷移したコンテナ移動元サーバにおけるI/O処理例を示しており、図13と同じ内容の処理には同じステップ番号を付して示している。以下、図13と同様、コンテナ210が移動対象として検出され、サーバ200がコンテナ移動元サーバであるものとする。また、記憶部230には、カウント値C_riopsが記憶されるものとする。
図15では、ステップS55,S56とステップS57との間でステップS71の処理が実行される点で、図13とは異なる。ステップS71において、転送制御部251は、カウント値C_riopsをカウントアップする。このステップS71の処理により、仮想ストレージ220の領域のうち、書き込み後または更新後における初回のデータ読み出しが実行された領域の回数がカウントされる。
図16は、第3の実施の形態におけるコンテナ移動元サーバの性能影響度送信処理例を示すフローチャートである。この図16では、図12と同じ内容の処理には同じステップ番号を付して示している。また、図12と同様に、サーバ200のコンテナ210が移動対象として検出され、サーバ200がI/O転送モードに遷移したものとする。
図16では、ステップS31の代わりにステップS31a,S31bが実行され、さらにステップS32の後にステップS32aが実行される点で図12とは異なる。すなわち、サーバ200の性能影響度送信部241は、記憶部230からカウント値C_riopsを取得する。また、性能影響度送信部241は、記憶部230にあらかじめ記憶されたV_iopsを取得する(ステップS31a)。性能影響度送信部241は、カウント値C_riopsを性能影響度の取得周期で除算することで、1秒当たりの初回読み出し回数R_riopsを算出し、前述の式(2)を用いて性能影響度を算出する(ステップS31b)。性能影響度送信部241は、算出された性能影響度を管理サーバ100に送信し(ステップS32)、記憶部のカウント値C_riopsを「0」にリセットする(ステップS32a)。そして、性能影響度送信部241は、一定時間後にステップS31aの処理を再度実行する。すなわち、ステップS31a~S32aの処理が一定時間間隔で実行される。
以上の第3の実施の形態の処理によれば、第2の実施の形態と同様に、コンテナ210が移動対象として検出された後、実際にコンテナ移動が実行されるまでの間に、移動後のコンテナ310が利用する可能性の高いデータがサーバ300のローカルストレージに転送される。これにより、サーバ200の仮想ストレージ220における一部のデータをコンテナ移動前に転送しておくだけで、移動後のコンテナ310がサーバ300のローカルストレージのデータにアクセスする確率を高めることができる。その結果、コンテナ移動直後におけるコンテナ310の処理性能の低下を抑制できる。そして、このような効果を、移動後に移動前と同じデータにアクセスする頻度が比較的低いコンテナについても得ることができる。
<変形例>
第2、第3の実施の形態の変形例として、式(1)に基づく性能影響度と式(2)に基づく性能影響度の両方を用いてコンテナ配置制御が行われてもよい。例えば、管理サーバ100の記憶部110には、式(1)に対応する性能影響度条件と式(2)に対応する性能影響度条件とが記憶される。性能影響度収集部121は、図12のステップS45において、式(1)に基づく性能影響度と式(2)に基づく性能影響度の両方をコンテナの移動元サーバから取得する。そして、配置決定部131は、図12のステップS46において次のような処理を実行する。
配置決定部131は、まず、式(2)に基づく性能影響度が式(2)に対応する性能影響度条件を満たすかを判定する。条件を満たす場合、処理はステップS47に進められる。これにより、コンテナの移動後に移動前と同じデータにアクセスする頻度が低い可能性が高く、移動後のコンテナの性能低下が小さいと判定される場合に、コンテナ移動を実行することができる。
一方、上記の条件を満たさない場合、配置決定部131は、式(1)に基づく性能影響度が式(1)に対応する性能影響度条件を満たすかを判定する。条件を満たさない場合、処理はステップS45に戻る。一方、条件を満たす場合、処理はステップS47に進められる。これにより、コンテナの移動後に移動前と同じデータにアクセスする頻度が比較的高いと考えられる場合に、アクセスされる可能性の高いデータがある程度転送されてからコンテナ移動を実行することができる。
以上説明した第2、第3の実施の形態およびその変形例では、サーバ間におけるコンテナの配置制御について説明した。しかし、このような配置制御を、コンテナの代わりにハイパバイザ型仮想マシンをサーバ間(実マシン間)で移動させる場合に適用することも可能である。
なお、上記の各実施の形態に示した装置(例えば、情報処理装置10,20、管理装置30、管理サーバ100、サーバ200,300,400,・・・)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc:BD、登録商標)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CDなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) 第1のストレージが接続された第1の情報処理装置と、第2のストレージが接続された第2の情報処理装置と、管理装置とを有する情報処理システムであって、
前記第1の情報処理装置は、前記第1の情報処理装置で動作する仮想的なプロセス実行部が前記第1のストレージに対するI/O処理を実行したとき、I/O処理対象のデータを前記第1のストレージから前記第2の情報処理装置を介して前記第2のストレージにコピーするコピー処理を、前記プロセス実行部を前記第1の情報処理装置から前記第2の情報処理装置に移設する移設処理の前処理として実行し、
前記管理装置は、前記前処理の開始後における前記コピー処理を伴う前記プロセス実行部による前記第1のストレージに対するI/O処理の監視結果から算出される、移設後の前記プロセス実行部によるI/O処理の性能影響度に基づいて、前記移設処理の実行タイミングを決定し、前記実行タイミングにおいて前記移設処理の実行指示を前記第1の情報処理装置および前記第2の情報処理装置に出力する、
情報処理システム。
(付記2) 前記管理装置は、前記第1のストレージに格納されたデータのうち、書き込み後または更新後に読み出されていないデータに対する、前記第1の情報処理装置で動作する前記プロセス実行部による単位時間当たりの読み出し回数を、前記性能影響度として用いて前記実行タイミングを決定する、
付記1記載の情報処理システム。
(付記3) 前記管理装置は、さらに、前記第1の情報処理装置で動作する前記プロセス実行部による前記第1のストレージに対するI/O処理の実行に応じた、前記第1のストレージから前記第2のストレージへのデータのコピー状況を示す情報を、前記性能影響度として用いて前記実行タイミングを決定する、
付記2記載の情報処理システム。
(付記4) 前記管理装置は、前記第1のストレージに格納されたデータ量に対する、前記第2のストレージにコピーされていないデータ量の割合を、前記コピー状況を示す情報として用いる、
付記3記載の情報処理システム。
(付記5) 前記前処理の開始時刻は、前記管理装置が、前記第2の情報処理装置を含む複数の情報処理装置のそれぞれの動作状況に基づいて、前記プロセス実行部の移設先を前記第2の情報処理装置に決定した時刻である、
付記1乃至4のいずれか1つに記載の情報処理システム。
(付記6) 前記プロセス実行部は、コンテナ仮想化技術によって生成されるコンテナである、
付記1乃至5のいずれか1つに記載の情報処理システム。
(付記7) 第1のストレージが接続された第1の情報処理装置において動作する仮想的なプロセス実行部を、第2のストレージが接続された第2の情報処理装置に移設する移設処理を実行するための移設条件を記憶する記憶部と、
前記第1の情報処理装置で動作する前記プロセス実行部が前記第1のストレージに対するI/O処理を実行したとき、I/O処理対象のデータを前記第1のストレージから前記第2の情報処理装置を介して前記第2のストレージにコピーするコピー処理を、前記移設処理の前処理として前記第1の情報処理装置に実行させ、前記前処理の開始後における前記コピー処理を伴う前記プロセス実行部による前記第1のストレージに対するI/O処理の監視結果から算出される、移設後の前記プロセス実行部によるI/O処理の性能影響度に基づいて、前記移設処理の実行タイミングを決定し、前記実行タイミングにおいて前記移設処理の実行指示を前記第1の情報処理装置および前記第2の情報処理装置に出力する処理部と、
を有する管理装置。
(付記8) 前記実行タイミングの決定では、前記第1のストレージに格納されたデータのうち、書き込み後または更新後に読み出されていないデータに対する、前記第1の情報処理装置で動作する前記プロセス実行部による単位時間当たりの読み出し回数を、前記性能影響度として用いて前記実行タイミングを決定する、
付記7記載の管理装置。
(付記9) 前記実行タイミングの決定では、さらに、前記第1の情報処理装置で動作する前記プロセス実行部による前記第1のストレージに対するI/O処理の実行に応じた、前記第1のストレージから前記第2のストレージへのデータのコピー状況を示す情報を、前記性能影響度として用いて前記実行タイミングを決定する、
付記8記載の管理装置。
(付記10) 前記実行タイミングの決定では、前記第1のストレージに格納されたデータ量に対する、前記第2のストレージにコピーされていないデータ量の割合を、前記コピー状況を示す情報として用いる、
付記9記載の管理装置。
(付記11) 前記前処理の開始時刻は、前記処理部が、前記第2の情報処理装置を含む複数の情報処理装置のそれぞれの動作状況に基づいて、前記プロセス実行部の移設先を前記第2の情報処理装置に決定した時刻である、
付記7乃至10のいずれか1つに記載の管理装置。
(付記12) 第1のストレージが接続された第1の情報処理装置と、第2のストレージが接続された第2の情報処理装置とに接続されたコンピュータに、
前記第1の情報処理装置で動作する仮想的なプロセス実行部が前記第1のストレージに対するI/O処理を実行したとき、I/O処理対象のデータを前記第1のストレージから前記第2の情報処理装置を介して前記第2のストレージにコピーするコピー処理を、前記プロセス実行部を前記第1の情報処理装置から前記第2の情報処理装置に移設する移設処理の前処理として前記第1の情報処理装置に実行させ、
前記前処理の開始後における前記コピー処理を伴う前記プロセス実行部による前記第1のストレージに対するI/O処理の監視結果から算出される、移設後の前記プロセス実行部によるI/O処理の性能影響度に基づいて、前記移設処理の実行タイミングを決定し、前記実行タイミングにおいて前記移設処理の実行指示を前記第1の情報処理装置および前記第2の情報処理装置に出力する、
処理を実行させる管理プログラム。
10,20 情報処理装置
11,21 ストレージ
12,22 プロセス実行部
30 管理装置
31 記憶部
31a 移設条件
32 処理部

Claims (7)

  1. 第1のストレージが接続された第1の情報処理装置と、第2のストレージが接続された第2の情報処理装置と、管理装置とを有する情報処理システムであって、
    前記第1の情報処理装置は、前記第1の情報処理装置で動作する仮想的なプロセス実行部が前記第1のストレージに対するI/O(Input/Output)処理を実行したとき、I/O処理対象のデータを前記第1のストレージから前記第2の情報処理装置を介して前記第2のストレージにコピーするコピー処理を、前記プロセス実行部を前記第1の情報処理装置から前記第2の情報処理装置に移設する移設処理の前処理として実行し、
    前記管理装置は、前記前処理の開始後における前記コピー処理を伴う前記プロセス実行部による前記第1のストレージに対するI/O処理の監視結果から算出される、移設後の前記プロセス実行部によるI/O処理の性能影響度に基づいて、前記移設処理の実行タイミングを決定し、前記実行タイミングにおいて前記移設処理の実行指示を前記第1の情報処理装置および前記第2の情報処理装置に出力
    前記性能影響度として、前記第1のストレージに格納されたデータのうち、書き込み後または更新後に読み出されていないデータに対する、前記第1の情報処理装置で動作する前記プロセス実行部による単位時間当たりの読み出し回数が用いられる、
    情報処理システム。
  2. 前記管理装置は、さらに、前記第1の情報処理装置で動作する前記プロセス実行部による前記第1のストレージに対するI/O処理の実行に応じた、前記第1のストレージから前記第2のストレージへのデータのコピー状況を示す情報を、前記性能影響度として用いて前記実行タイミングを決定する、
    請求項記載の情報処理システム。
  3. 前記管理装置は、前記第1のストレージに格納されたデータ量に対する、前記第2のストレージにコピーされていないデータ量の割合を、前記コピー状況を示す情報として用いる、
    請求項記載の情報処理システム。
  4. 前記前処理の開始時刻は、前記管理装置が、前記第2の情報処理装置を含む複数の情報処理装置のそれぞれの動作状況に基づいて、前記プロセス実行部の移設先を前記第2の情報処理装置に決定した時刻である、
    請求項1乃至のいずれか1項に記載の情報処理システム。
  5. 前記プロセス実行部は、コンテナ仮想化技術によって生成されるコンテナである、
    請求項1乃至のいずれか1項に記載の情報処理システム。
  6. 第1のストレージが接続された第1の情報処理装置において動作する仮想的なプロセス実行部を、第2のストレージが接続された第2の情報処理装置に移設する移設処理を実行するための移設条件を記憶する記憶部と、
    前記第1の情報処理装置で動作する前記プロセス実行部が前記第1のストレージに対するI/O処理を実行したとき、I/O処理対象のデータを前記第1のストレージから前記第2の情報処理装置を介して前記第2のストレージにコピーするコピー処理を、前記移設処理の前処理として前記第1の情報処理装置に実行させ、前記前処理の開始後における前記コピー処理を伴う前記プロセス実行部による前記第1のストレージに対するI/O処理の監視結果から算出される、移設後の前記プロセス実行部によるI/O処理の性能影響度に基づいて、前記移設処理の実行タイミングを決定し、前記実行タイミングにおいて前記移設処理の実行指示を前記第1の情報処理装置および前記第2の情報処理装置に出力する処理部と、
    を有し、
    前記性能影響度として、前記第1のストレージに格納されたデータのうち、書き込み後または更新後に読み出されていないデータに対する、前記第1の情報処理装置で動作する前記プロセス実行部による単位時間当たりの読み出し回数が用いられる、
    管理装置。
  7. 第1のストレージが接続された第1の情報処理装置と、第2のストレージが接続された第2の情報処理装置とに接続されたコンピュータに、
    前記第1の情報処理装置で動作する仮想的なプロセス実行部が前記第1のストレージに対するI/O処理を実行したとき、I/O処理対象のデータを前記第1のストレージから前記第2の情報処理装置を介して前記第2のストレージにコピーするコピー処理を、前記プロセス実行部を前記第1の情報処理装置から前記第2の情報処理装置に移設する移設処理の前処理として前記第1の情報処理装置に実行させ、
    前記前処理の開始後における前記コピー処理を伴う前記プロセス実行部による前記第1のストレージに対するI/O処理の監視結果から算出される、移設後の前記プロセス実行部によるI/O処理の性能影響度に基づいて、前記移設処理の実行タイミングを決定し、前記実行タイミングにおいて前記移設処理の実行指示を前記第1の情報処理装置および前記第2の情報処理装置に出力する、
    処理を実行させ
    前記性能影響度として、前記第1のストレージに格納されたデータのうち、書き込み後または更新後に読み出されていないデータに対する、前記第1の情報処理装置で動作する前記プロセス実行部による単位時間当たりの読み出し回数が用いられる、
    管理プログラム。
JP2019003215A 2019-01-11 2019-01-11 情報処理システム、管理装置および管理プログラム Active JP7197783B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019003215A JP7197783B2 (ja) 2019-01-11 2019-01-11 情報処理システム、管理装置および管理プログラム
US16/701,711 US11429431B2 (en) 2019-01-11 2019-12-03 Information processing system and management device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019003215A JP7197783B2 (ja) 2019-01-11 2019-01-11 情報処理システム、管理装置および管理プログラム

Publications (2)

Publication Number Publication Date
JP2020113031A JP2020113031A (ja) 2020-07-27
JP7197783B2 true JP7197783B2 (ja) 2022-12-28

Family

ID=71518064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019003215A Active JP7197783B2 (ja) 2019-01-11 2019-01-11 情報処理システム、管理装置および管理プログラム

Country Status (2)

Country Link
US (1) US11429431B2 (ja)
JP (1) JP7197783B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112269738B (zh) * 2020-10-26 2023-04-07 杭州光通天下网络科技有限公司 Ctf靶场调试方法、装置、电子设备及介质
JP7247161B2 (ja) 2020-12-24 2023-03-28 株式会社日立製作所 情報処理システム及び情報処理システムにおけるデータ配置方法
JP2023102641A (ja) * 2022-01-12 2023-07-25 株式会社日立製作所 計算機システム及びスケールアップ管理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013105217A1 (ja) 2012-01-10 2013-07-18 富士通株式会社 仮想マシン管理プログラム、方法、及び装置
JP2015022380A (ja) 2013-07-16 2015-02-02 日本電信電話株式会社 情報処理装置、仮想マシンの移行方法及び仮想マシンの移行プログラム
US20160188353A1 (en) 2014-12-30 2016-06-30 Vmware, Inc. Live replication of a virtual machine exported and imported via a portable storage device
JP2017027496A (ja) 2015-07-27 2017-02-02 日本電信電話株式会社 コンテナのマイグレーションシステム及び方法
JP2018173741A (ja) 2017-03-31 2018-11-08 富士通株式会社 コンテナ登録プログラム、コンテナ登録装置及びコンテナ登録方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1962192A1 (en) * 2007-02-21 2008-08-27 Deutsche Telekom AG Method and system for the transparent migration of virtual machine storage
US8806480B2 (en) * 2007-06-29 2014-08-12 Microsoft Corporation Virtual machine smart migration
US8478725B2 (en) * 2009-09-14 2013-07-02 Vmware, Inc. Method and system for performing live migration of persistent data of a virtual machine
JP2011186794A (ja) * 2010-03-09 2011-09-22 Hitachi Ltd ストレージシステム内のデータの配置を制御する管理システム、及び、データ配置制御方法
US8671238B2 (en) * 2010-07-13 2014-03-11 Vmware, Inc. Robust live migration using shared filesystem
US8490088B2 (en) 2010-09-10 2013-07-16 International Business Machines Corporation On demand virtual machine image streaming
US9197489B1 (en) * 2012-03-30 2015-11-24 Amazon Technologies, Inc. Live migration of virtual machines in a hybrid network environment
US9304878B2 (en) * 2012-10-11 2016-04-05 Vmware, Inc. Providing multiple IO paths in a virtualized environment to support for high availability of virtual machines
CN103049308B (zh) * 2012-11-30 2016-01-20 华为技术有限公司 实现虚拟机热迁移的方法、装置及系统
US9342346B2 (en) * 2014-07-27 2016-05-17 Strato Scale Ltd. Live migration of virtual machines that use externalized memory pages
JP2015111434A (ja) 2015-01-15 2015-06-18 株式会社日立製作所 計算機システム及びその制御方法
US11210121B2 (en) * 2016-06-09 2021-12-28 Nicira, Inc. Management of advanced connection state during migration
US11487566B2 (en) * 2016-06-28 2022-11-01 Vmware, Inc. Cross-cloud provider virtual machine migration
JP6882662B2 (ja) * 2016-11-29 2021-06-02 富士通株式会社 マイグレーションプログラム、情報処理装置およびマイグレーション方法
JP2019016135A (ja) * 2017-07-06 2019-01-31 富士通株式会社 情報処理システム、情報処理システムの制御プログラム及び情報処理システムの制御方法
US10496431B2 (en) * 2017-07-31 2019-12-03 Red Hat Israel, Ltd. Virtual machine storage operation progress tracking
US10664323B2 (en) * 2018-03-07 2020-05-26 Microsoft Technology Licensing, Llc Live migration of virtual machines in distributed computing systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013105217A1 (ja) 2012-01-10 2013-07-18 富士通株式会社 仮想マシン管理プログラム、方法、及び装置
JP2015022380A (ja) 2013-07-16 2015-02-02 日本電信電話株式会社 情報処理装置、仮想マシンの移行方法及び仮想マシンの移行プログラム
US20160188353A1 (en) 2014-12-30 2016-06-30 Vmware, Inc. Live replication of a virtual machine exported and imported via a portable storage device
JP2017027496A (ja) 2015-07-27 2017-02-02 日本電信電話株式会社 コンテナのマイグレーションシステム及び方法
JP2018173741A (ja) 2017-03-31 2018-11-08 富士通株式会社 コンテナ登録プログラム、コンテナ登録装置及びコンテナ登録方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
松本亮介、近藤宇智朗、三宅悠介、力武健次、栗林健太郎,FastContainer:Webアプリケーションコンテナの状態をリアクティブに決定するコンテナ管理アーキテクチャ,情報処理学会研究報告[online],日本,一般社団法人情報処理学会,2017年06月17日,Vol.2017-IOT-38, No.14,pp.1-8,ISSN 2188-8787

Also Published As

Publication number Publication date
US11429431B2 (en) 2022-08-30
US20200225981A1 (en) 2020-07-16
JP2020113031A (ja) 2020-07-27

Similar Documents

Publication Publication Date Title
JP5944587B2 (ja) 計算機システム及び制御方法
JP5271424B2 (ja) ダイナミックストレージ階層化によるオンラインデータ配置をボリュームに提供するためのアロケートオンライトのスナップショット機構
US8429346B1 (en) Automated data relocation among storage tiers based on storage load
JP5685676B2 (ja) 計算機システム及びデータ管理方法
US8281076B2 (en) Storage system for controlling disk cache
KR101498673B1 (ko) 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
JP2019016320A (ja) ストレージ制御装置およびストレージ制御プログラム
JP5456063B2 (ja) アロケートオンライトのスナップショットを用いた、ダイナミックストレージ階層化のための方法及びシステム
US6327644B1 (en) Method and system for managing data in cache
JP7197783B2 (ja) 情報処理システム、管理装置および管理プログラム
US20170185520A1 (en) Information processing apparatus and cache control method
CN111796765B (zh) 优化数据存储系统性能的方法
JP7054001B2 (ja) 情報処理システム、管理装置および制御方法
JP6323445B2 (ja) ストレージ装置と方法及びプログラム
JP6011153B2 (ja) ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
JP6867578B2 (ja) ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
JP2018197933A (ja) ストレージ制御装置、情報処理システムおよびプログラム
JP2017037501A (ja) ストレージ制御装置およびストレージ制御プログラム
US11055001B2 (en) Localized data block destaging
JP2014010604A (ja) ストレージ装置とプログラムと方法
JP7011156B2 (ja) ストレージ制御装置およびプログラム
JP6928247B2 (ja) ストレージ制御装置およびストレージ制御プログラム
JP6919277B2 (ja) ストレージシステム、ストレージ管理装置、ストレージ管理方法、及びプログラム
JP2021114264A (ja) ストレージ制御装置およびストレージ制御プログラム
US11144445B1 (en) Use of compression domains that are more granular than storage allocation units

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211007

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20211011

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20211011

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221031

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221128

R150 Certificate of patent or registration of utility model

Ref document number: 7197783

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150