JP7107981B2 - 計算機システム - Google Patents

計算機システム Download PDF

Info

Publication number
JP7107981B2
JP7107981B2 JP2020046609A JP2020046609A JP7107981B2 JP 7107981 B2 JP7107981 B2 JP 7107981B2 JP 2020046609 A JP2020046609 A JP 2020046609A JP 2020046609 A JP2020046609 A JP 2020046609A JP 7107981 B2 JP7107981 B2 JP 7107981B2
Authority
JP
Japan
Prior art keywords
node
resource
nodes
volume
compute
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
JP2020046609A
Other languages
English (en)
Other versions
JP2021149299A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2020046609A priority Critical patent/JP7107981B2/ja
Priority to US17/010,965 priority patent/US11550613B2/en
Publication of JP2021149299A publication Critical patent/JP2021149299A/ja
Application granted granted Critical
Publication of JP7107981B2 publication Critical patent/JP7107981B2/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/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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
    • 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/45583Memory management, e.g. access or allocation
    • 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/45591Monitoring or debugging support
    • 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/45595Network integration; Enabling network access in virtual machine instances

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)

Description

本発明は、複数のサーバがクラスタを構成している計算機システムに係り、特に、ハイパーコンバージドインフラストラクチャ(HCI)を実現するための計算機システムに関するものである。
コンピュータの物理的な環境にとらわれることなく、ハードウェアに含まれるCPU、メモリ等のリソースを論理的に分割・統合する技術として、仮想化が知られている。仮想化された複数のコンピュータは、ハードウェアリソースを共有することによって、コンピュータシステムの拡張や管理を容易にするという利点をもたらしている(例えば、特許文献1)。
米国特許出願公開第2009/0172666号明細書
最近では、ハイパーコンバージドインフラストラクチャ(HCI)が、次世代の仮想化インフラとして注目を集めている。HCIは、x86サーバのみで構成されたハードウェアにコンピュート機能とストレージ機能とを統合し、シンプルな構成を実現した仮想化基盤であって、SDS(Software-Defined Storage)によって、複数のサーバ夫々のストレージを仮想的に統合することで一つの大規模な共有ストレージに見立てる、サーバ/ストレージ共有インフラでもある。
クラスタを構成するノードに、新たに、VM(バーチャルマシン)を配置しようとする際、クラスタの管理ノードは、例えば、VMware社のDRS(Distributed Resource Scheduler)を利用して、複数のサーバ間でVM数が均等になるようにして、新たなVMをノードに配置している。一方、管理ノードは、VMの配置とは独立して、VMの仮想ハードディスクに割り当てられる、ストレージプールのボリューム(LUN)を、共有ストレージから、複数のノードに、例えば、ラウンドロビン方式で順番に設定すればよい。
しかしながら、HCI環境を実現しようとするクラスタであっても、管理ノードが、VMとボリュームとを関連させることなく、これらをクラスタに配置、或いは、設定させると、帯域ネックのために、VMのI/O性能が低下したり、VMに割り当てようとするリソースを有効活用できていないという課題がある。
そこで、本発明は、係る課題に鑑みて、仮想コンピュータとボリュームとを、仮想コンピュータのI/O性能を低下させることなく、クラスタに配置できる計算機システム、及び、その設定方法を提供することを目的とする。
前記目的を達成するために、本発明は、プロセッサと、メモリと、を夫々有する複数のノードと、記憶ドライブと、管理装置と、を備える計算機システムであって、前記管理装置は、仮想コンピュータと、当該仮想コンピュータがデータを入出力するボリュームと、を前記複数のノードのうち何れかのノードに配置させることにより、前記プロセッサ、前記メモリ、そして、前記記憶ドライブのリソースのうち所定のリソースを前記仮想コンピュータと前記ボリュームとに割り当てて、当該仮想コンピュータと当該ボリュームとを稼働させ、前記仮想コンピュータと前記ボリュームとを前記複数のノードのうち同一ノードに配置できる場合、当該仮想コンピュータと前記ボリュームとに割り当てられるリソース量の複数のリース間での割合の差に基づいて、前記同一ノードを前記複数のノードの中から決定する計算機システム、並びに、仮想コンピュータの設定方法である。
本発明によれば、仮想コンピュータとボリュームとを、仮想コンピュータのI/O性能を低下させることなく、クラスタに配置できる計算機システムを提供することができる。
本発明に係る計算機システムの実施形態の一例を示すハードウェアブロック構成図である。 ノードの詳細なハードウェアブロック図である。 クラスタ管理ノードの機能ブロック図である。 図1の計算機システムを管理するVM管理テーブルの一例である。 空きリソース管理テーブルの一例である。 ノード間ネットワークホップ数管理テーブルの一例である。 リソース分離可否テーブルの一例である。 新規コンピュートVMをクラスタシステムのノードに初期配置するための動作を説明するフローチャートである。 図8の配置先ノード決定処理の詳細を示すフローチャートである。 2種類のリソース間、即ち、コンピュートリソース(CPUコア数,メモリ容量)とストレージリソース(ボリューム容量)とのバランスを示す特性図である。 クラスタがSDSとして構成される計算機システムのハードウェアブロック図の一例である。 クラスタが既述のコンポーザブルとして構成される計算機システムのハードウェアブロック図の一例である。
以下、図面を参照して、本発明の実施の形態を詳述する。以下の記載及び図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略及び簡略化がなされることもある。そして、実施の形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。本発明が実施の形態に制限されることはなく、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。本発明は、当業者であれば本発明の範囲内で様々な追加や変更等を行うことができる。本発明は、他の種々の形態でも実施することが可能である。特に限定しない限り、各構成要素は複数でも単数でも構わない。
以下の説明では、「テーブル」、「表」、「リスト」、「キュー」等の表現にて各種情報を説明することがある。各種情報は、これら以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「XXテーブル」、「XXリスト」等を「XX情報」と呼ぶことがある。各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。
以下の説明では、同種の要素を区別しないで説明する場合には、参照符号又は参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用又は参照符号に代えてその要素に割り振られたIDを使用することがある。
また、以下の説明では、プログラムを実行して行う処理を説明する場合があるが、プログラムは、少なくとも1以上のプロセッサ(例えばCPU)によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又はインターフェースデバイス(例えば、通信ポート)等を用いながら行うため、処理の主体がプロセッサとされてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノード、ストレージシステム、ストレージ装置、サーバ、管理計算機、クライアント、又はホストであってもよい。プログラムを実行して行う処理の主体を明確にするために、プロセッサではなく、プロセッサが実行するプログラムを主体とすることもある。プログラムを実行して行う処理の主体(例えばプロセッサ)は、処理の一部又は全部を行うハードウェア回路を含んでもよい。例えば、プログラムを実行して行う処理の主体は、暗号化及び復号化、又は、圧縮及び伸張を実行するハードウェア回路を含んでもよい。プロセッサは、プログラムにしたがって動作することによって、所定の機能を実現する機能部として動作する。プロセッサを含む装置及びシステムは、これらの機能部を含む装置及びシステムである。
プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ、又は、計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサ(例えばCPU)と記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムとを記憶してよい。そして、プログラム配布サーバのプロセッサが配布プログラムを実行することで、プログラム配布サーバのプロセッサは配布対象のプログラムを他の計算機に配布してよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
仮想マシンとは、実際のコンピュータ(例えば、CPU、メモリなど)のハードウェアリソースを仮想化、又は、仮想化環境に変換する、仮想化環境における特定のソフトウェアベースのマシンを実装したものである。仮想マシンは、実際のコンピュータと同じように、基本的な物理リソース上で独自のOSとアプリケーションを実行できる。仮想化は、コンピュータハードウェア、又は、ホストOS上にソフトウェアの薄い層を直接挿入することによって機能する。このソフトウェア層には、ハードウェアリソースを動的かつ透過的に割り当てる仮想マシンモニター、又は、「ハイパバイザ」が含まれている。複数のOSが単一の物理コンピュータ上で同時に実行され、ハードウェアリソースを互いに共有する。
近年、コンテナベースの仮想化技術が普及している。ホストのOS上で実行される仮想マシンを作成して独立した物理マシンを模倣する、当該仮想マシンと比較して、コンテナはOSのカーネル上で、直接ユーザ空間で実行できるアプリケーションを仮想化したものである。コンテナ内から実行されるWebサーバやデータベースなどのアプリケーションでは、物理マシンとのインターフェースにエミュレーションレイヤー又はハイパーバイザーレイヤーは必要がない。代わりに、コンテナ化されたアプリケーションは、OSの通常のシステムコールを使用して機能することができる。このようにして、コンテナは仮想化されたゲストOSを必要としないため、コンテナは、仮想マシンより一般的に速い(例えば、転送が速く、ブート、又は、ロードが速い)OSレベルの仮想化を提供する。
図1は、本発明に係る計算機システムの実施形態の一例であって、複数のサーバがクラスタとして動作するシステムのハードウェアブロック図を示している。クラスタは、複数の被管理ノード120A,120B・・・と、被管理ノードを管理するための管理ノード110(管理装置)と、を備える。各ノードはCPU、メモリ、記憶ドライブ等の計算機資源を有している。
管理ノード110(vCenter Server)は、配下にある複数の被管理ノード120(ESXiサーバ)を論理的にグループ化してサーバ群を作り、このサーバ群が協調動作されるクラスタを実現している。管理ノード110と被管理ノード120とは、ネットワーク130によって互いに接続されている。なお、以後、被管理ノード120を、単に「ノード」と記載する。また、管理ノードの統合管理フレームワーク(vCenter:管理装置)は、専用機ではなく、被管理ノード120の仮想化ソフトウェア(ESXi)による仮想マシンによって実行されてもよい。
図1の計算機システムは、既述のHCI環境を実現するためのクラスタであり、複数のノード夫々は、アプリケーション123を動作させる、複数のコンピュートVM(121)と、ストレージコントローラを動作させ、ストレージプール124からコンピュートVMの仮想ハードディスクにボリューム(LUN)を提供するストレージVM(123)とを備えている。複数のコンピュートVM(121)、ストレージVM(123)は、互いに、ノードのリソース(CPU,メモリ、ボリュームなど)を共有している。
各ノードのハイパバイザ125(ESXi)は、物理的なノードの中に、仮想コンピュータ(コンピュートVM、ストレージVM)を作り出し、同じノード内で複数の異なるOS(コンピュートVM用OS、ストレージVM用OS)を並列に実行させている。コンピュートVM(121)は、そのOSによってアプリケーションやミドルウェアを動作させる。
複数のノード夫々のストレージVM(123)は、ノード内の複数の記憶ドライブ518を一つの大きなストレージ領域として集約させることにより、ストレージプール124を構成している。
ストレージVM(123)はストレージプールを管理して、仮想ハードディスクファイルに対するデータをストレージプールのボリュームに記録する。管理ノード110は、複数のノードのストレージプールを結合、或いは、統合することによって、クラスタシステムの複数のノード、或いは、全てのノードを横断した共有ストレージをクラスタシステムに対して設定できる。
したがって、コンピュートVM(121)の仮想ハードディスクは、同一ノードのストレージプールのボリューム、又は、他ノードのストレージプールのボリュームに対応することになるが、後述のとおり、管理ノード110は、コンピュートVM(121)の仮想ハードディスクには、同一ノードのストレージプールのボリュームが、優先的に割り当てられるようにしている。
図2は、ノードの詳細なハードウェアブロック図である。符号2000は、複数のノードに対する共有ストレージを示す。共有ストレージは、複数ノード夫々のストレージプールを束ねたものであり、管理ノード110は、共有ストレージからボリュームをコンピュートVMに設定する。
複数のノード夫々のストレージVM(123)は、同じノードの複数の記憶ドライブ126の記憶領域を束ねてストレージプール124を設定する。ストレージVM(123A)は、ストレージプール124Aからボリューム516,517を切り出し、ボリューム516はコンピュートVM1(121A)のボリューム(仮想ハードディスク)514Aに割り当てられる。仮想ハードディスクは、データストアを介して、ストレージプールのボリュームに1:1で対応するため、仮想マシン単位でのバックアップ、リストア、冗長化が可能になる。
コンピュートVM1(121A)のOS513はアプリケーション122を実行して、ボリューム514AにI/Oを発行する。ストレージVM(123A)は、ボリューム514Aに対するI/Oに基づいて、ボリューム516に対するデータの読み書きを制御する。
ノード120AのコンピュートVM1(121A)のアクセス先であるボリューム514Aには、同一ノード120Aのストレージプール124Aのボリューム516が割り当てられる。一方、ノード120Aとは別のノード120BのコンピュートVM2(121B)のボリューム514Bには、ノード120Aのストレージプール124Aのボリューム517が割り当てられる。
前者は、所謂、「ローカリティ」がある構成であり、ノード120AのコンピュートVM1(121A)のボリューム514Aに対するI/Oは、同じノードのストレージプール124Aのボリューム516に提供されるために、アプリケーションのI/Oは高速処理される。すなわち、ノード120Aにおいては、コンピュートVM1(121A)のアプリケーション122が利用するデータの記録/読み出し先は、ローカルノード(同一ノード120A)の記憶ドライブ518になる。
これに対して、後者では、ノード120BのコンピュートVM2(121B)からのI/Oは、ノード120Bとノード120Aとの間のネッワークスイッチを経由して、他のノード120AのストレージVM(123A)によって、ストレージプール124Aのボリューム517に提供されるために、I/O処理性能は低下する。
なお、後述のとおり、後者の場合でも、管理ノード110は、複数のノードの中から、ノード120Bとの間のネットワークスイッチのホップ数が極力少ない、即ち、ネットワーク距離が近い他ノードのストレージプールからボリュームをコンピュートVM2(121B)になるようにしている。
にした。
なおまた、コンピュートVMとストレージプールとの対応関係は図2のものに限定されない。例えば、図2では説明を簡略にするために、二つのノードに適用された共有ストレージを説明したが、共有ストレージは、全てのノードに対して設定されてもよい。また、ストレージプールのボリュームは、一つのボリュームを分割したサブボリュームであってもよい。
管理ノードは、仮想コンピュータと、仮想コンピュータがデータを入出力するボリュームと、を複数のノードのうち何れかのノードに配置させることにより、プロセッサ、メモリ、そして、記憶ドライブのリソースのうち所定のリソースを仮想コンピュータとボリュームとに割り当てて、仮想コンピュータとボリュームとをノード内で稼働させている。
図2において、符号531は、クラスタを構成する複数のノードの何れかのノードに、初期配置されようとしている新規コンピュートVMを示す。コンピュートVMのOS(513)がアプリケーション122を実行し、アプリケーション122がボリューム(仮想ハードディスク)514を利用できるようにするために、配置先ノードのハードウェアリソースがコンピュートVMに割り当てられる。
なお、複数のノードからなるマルチノード構成において、データを冗長化するために、ストレージVMは、ストレージプールへライトするデータを、ストレージVMが存在するノードとは別のノードのストレージプールへのライトを実行する。
冗長化処理には、例えば、ミラーリング、Erasure Codingがある。ストレージVMは、ストレージプールへのI/Oを実行するため、即ち、記憶ドライブへデータを書き込む、又は、記憶ドライブからデータを読み込む動作のために、ノードのリソースを利用する。
図3は、管理ノード110に於ける、クラスタの統合管理フレームワークの機能ブロックの一例を示す。管理ノード110は、記憶ドライブ410と、コントローラ(CPU)420と、ネットワークインターフェース430と、メモリ440と、そして、これらを接続するバス450と、を備える。
メモリ440は、クラスタ管理プログラム441、配置先ノード決定(又は、選択)プログラム442、VM管理テーブル443、空きリソース管理テーブル444、ノード間ネットワークホップ数管理テーブル445、そして、リソース分離可否テーブル446と、を備える。なお、夫々のプログラムを、手段、機能、回路、又は、ユニット等と言い換えてもよい。
管理クライアントは、専用ユーザー・インターフェースを介して、仮想マシンが十分な性能を発揮するためには、最初にどのようなストレージをどのくらいの容量・性能で使用し、バックアップをどのくらいの頻度で行うかといったストレージポリシーを選択するなどして、サービスレベルの詳細を、管理ノード110の統合管理フレームワークに設定する。
クラスタ管理プログラム441は、クラスタの属性、複数のノード毎のリソースの管理等、クラスタに対する一般管理、特別管理を実行する。クラスタの属性には、既述のHCIの他に、SDS、コンポーザブルがある。後2者の構成については、後述する。
配置先ノード決定プログラム442は、クラスタ管理プログラム441の制御にしたがって、前記管理クライアントによる設定に基づいて、コンピュートVMと、コンピュートVMに対する、ストレージプールボリュームとを、夫々、配置すべきノードを決定、選択、設定、判定、或いは、認定する。
図4に、HCIクラスタに於ける、VM管理テーブル443の一例を示す。VM管理テーブル443は、コンピュートVM毎に管理情報を記録する。701は、コンピュートVMのIDを記録する。
702は、コンピュートVMのためのボリューム(ストレージプールのボリューム)のIDである。703はコンピュートVMに割り当てられた、リソース1の消費量(CPUコア数)である。704は、コンピュートVMに割り当てられた、リソース2の消費量(メモリ容量)である。705は、コンピュートVMに割り当てられた、リソース3の消費量(ボリューム容量)である。706は、コンピュートVMの配置先ノードのIDである。707はボリューム702の配置先ノードIDである。
711は、コンピュートVMのIDが1であり、コンピュートVMの消費CPUコア数は“16コア”であり、コンピュートVMの消費メモリ容量は“128GB”であり、コンピュートVMの消費ボリューム容量は“1TB”であり、コンピュートVMの配置先ノードIDはHCIクラスタの“HCI_Node-1”であり、ボリューム(702)の配置先ノードIDは同じ“HCI_Node-1”であることを示している。つまり、711は、コンピュートVMについて、既述のローカリティがある構造を示している。
712は、コンピュートVMのIDが2であり、コンピュートVMの消費CPUコア数は“8コア”であり、コンピュートVMの消費メモリ容量は“64GB”であり、コンピュートVMの消費ボリューム容量は“2TB”であり、コンピュートVMの配置先ノードIDはHCIクラスタの“HCI_Node-1”であり、ボリューム702の配置先ノードIDは“HCI_Node-2”であることを示している。
つまり、コンピュートVM(ID:2)に対するボリューム702は、コンピュートVMが配置されたノードとは別のノードに存在する。既述のとおり、コンピュートVMが配置されたノードと、このコンピュートVMに対するボリューム702が存在するノードとは、ネットワークスイッチのホップ数がより少ない、近接関係になるようにして、既述のローカリティが害されないようにしている。
クラスタ管理プログラム441は、管理ユーザからのコンピュートVMの新規配置要求、そして、コンピュートVMの配置先ノード変更情報等を受信する都度、VM管理テーブル443を更新する。
図5に空きリソース管理テーブル444の一例を示す。このテーブルはクラスタのノード毎に、リソースを管理するためのものである。図5はHCIクラスタのテーブルを示す。801はノードのIDであり、802はノードの全CPUコア数であり、803はコンピュートVM、又は、ストレージVMへ割り当てられてはいない、残りのCPUコア数(全CPUコア数に対する割合)を示し、804はノードの全メモリ容量であり、805は残りのメモリ容量であり、806はノードの記憶ドライブの全容量であり、807は記憶ドライブの残り容量である。クラスタ管理プログラム441は、複数のノード夫々に定期的にアクセスして情報を取得し、空きリソース管理テーブル444を更新する。
図6にノード間ネットワークホップ数管理テーブル445の一例を示す。このテーブルは、ノード毎に、クラスタを構成する他ノードとの間のネットワークホップ数を管理するためのテーブルである。ネットワークホップ数とは、例えば、経由するネットワークスイッチやルータの数である。例えば、同一ラック内の複数のノードのように、クラスタに於けるネットワーク距離が近い複数のノード間のネットワークホップ数は少なく、反対に、夫々、異なるラックのノードのように、クラスタに於けるネットワーク距離が遠い複数のノード間のネットワークホップ数は多くなる。
911は、Node-1とNode-2の間のネットワークホップ数は1、Node-1とNode-3とのそれは1、Node-1とNode-4とのそれは2、Node-1とNode-5とのそれは3であることを示している。クラスタ管理プログラム441は、クラスタを設定する都度、そして、クラスタを更新する都度、このテーブルを設定、或いは、更新する。
図7にリソース分離可否テーブルの一例を示す。このテーブルは、クラスタ毎に、ハードウェアリソースをコンピュートVM、又は、ストレージVMに割り当てる上で、複数のリソースが互いに分離できる/分離できない、を管理するものであって、クラスタID1100、クラスタ属性1101、リソースの種類1104、リソースの分離可否フラグ1106を含む。
クラスタ属性には、既述のHCI、SDS、又は、コンポーザブルがある。リソースの種類は、CPU、メモリ、そして、記憶ドライブ(ボリューム)の他、FE NW(フロントエンドネットワーク)、インターノードNWがある。後者の二つは、ストレージVMのためのリソースである。
CPUとメモリはリソース分離フラグが同じ“1”であるため、互いに分離して、別々にコンピュートVM、又は、ストレージVMに割り当てることができず、一方、ドライブのリソース分離フラグは“2”であって、CPU、メモリとは異なるため、ドライブは、これらと分離して、ストレージVMに割り当てができることを示している。
次に、新規VM(コンピュートVM)を、クラスタシステムに配置するための動作について説明する。図8は、この動作の一例を説明するフローチャートである。クラスタ管理プログラム441が、管理クライアントから、新規VMの配置リクエストを受領する(900)。クラスタ管理プログラム441は、管理クライアントからの新規VMの設定に基づいて、VMが必要とするCPUコア数、VMが必要とするメモリ容量、コンピュートVMが必要とするボリューム容量とを決定する。
次いで、クラスタ管理プログラム441は、新規VMをクラスタ内の何れかのノードに配置できるか否かの判定を実行する(902)。クラスタ管理プログラム441は、空きリソース管理テーブル444を参照して、配置対象のVMの要求リソース量(CPUコア数/メモリ容量)が収まるノードがあるか否かを判定する。さらに、クラスタ管理プログラム441は、リソース分離可否テーブル446を参照し、要求リソースの分離可否を判定する。リソースの分離可否テーブルでは、CPUコア数/メモリ容量とは互いに分離できないので、クラスタ管理プログラム441は、新規VMに対する、CPUコア数とメモリ容量の両方を配置できるノードの有無を判定する。
クラスタ管理プログラム441がこの判定を肯定すると(902:Yes)、空きリソース管理テーブル444を参照して要求ボリューム量を配置できるノードが存在するか否かを判定する(904)。クラスタ管理プログラム441がこの判定を肯定すると(904:Yes)、配置先ノード決定プログラム442を呼び出し、コンピュートVMとボリュームとの配置先ノードを決定する(906)。
クラスタ管理プログラム441は、配置先ノード決定プログラム442から、VM配置先ノードID、ボリューム配置先ノードIDを受領して、VM管理テーブル443にエントリを追加して、コンピュートVM ID、ボリュームIDを採番して記録し、さらに、CPUコア数、メモリ容量、ボリューム容量、コンピュートVM置先ノードID、ボリューム配置先ノードIDを記録する(908)。
クラスタ管理プログラム441は、このVM管理テーブル443を参照して、配置先ノード決定プログラムによって決定されたノードにコンピュートVMとボリュームとの作成を命令する(910)。
クラスタ管理プログラム441が、ステップ902、又は、ステップ904を否定すると、管理クライアントに、要求されたVMを配置できるノードがないことを通知する(912)。
次に、配置先ノード決定処理(図8:906)の詳細について説明する。図9は、その一例を示すフローチャートである。配置先ノード決定プログラム442は、クラスタ管理プログラム441から、新規VMの要求リソース量(CPUコア数、メモリ容量、ボリューム容量)を取得する(1000)。
次に、配置先ノード決定プログラム442は、リソース分離可否テーブル446(図7)を参照して、クラスタの属性を判定する(1002)。配置先ノード決定プログラム442は、クラスタ属性が“HCI”であることを判定するとステップ1004に進む。
配置先ノード決定プログラム442は、空きリソース管理テーブル444を参照して、先のステップ1000で取得した、CPUコア数、メモリ容量を備えるコンピュートVMと、ボリューム容量の全てを自身で割り当てることができるノードを探索する。配置先ノード決定プログラム442は、探索結果に基づいて、当該ノードの有無を判定する(1006)。
配置先ノード決定プログラム442がこの判定を肯定すると、このノードが複数存在するか否かを判定し(1008)、これを肯定すると、複数のノードの夫々において、コンピュートVMに割り当てられるリソース量を評価、これは、複数種類のリソース間で、複数種類のリソース夫々のリソース量(割合)のバランスを判定することを含み、この結果に基づいて、複数のノードの中からコンピュートVMの配置先候補ノードを決定する(1010)。
そこで、この決定処理の実施形態を説明する。配置先ノード決定プログラム442は、ステップ1008において判定された複数のノードの夫々について、VM管理テーブル443を参照して、ノードに既に存在している、一つ又は複数のコンピュートVMに割り当てられているリソース量を、リソースの種類毎に累積させる。ストレージVMについても同様にする。なお、ノードのストレージVMは一つでも複数でもよい。複数のストレージVM夫々に、ペアとなるコンピュートVMを決めてもよい。
図10に示すように、あるノードに一つのストレージVMと、3つのコンピュートVM(コンピュートVM-A~VM-C)が存在していることを想定されたい。ストレージVM、コンピュートVM-A、そして、コンピュートVM-Bは、このノードに既存のもの、コンピュートVM-Cは、このノードに、配置させようとしている新規のものであるとする。図10は、2種類のリソース間、即ち、コンピュートリソース(CPUコア数,メモリ容量)とストレージリソース(ボリューム容量)とのバランスを示す特性図である。ストレージリソースは、このノード自身の記憶ドライブ(ストレージプール)である。
ストレージVMはボリュームサービスを行うためにコンピュートリソースも消費し、ボリュームを管理するためにストレージリソースを消費する。コンピュートVMはアプリケーションサービスを行うためにコンピュートリソースを消費し、そして、コンピュートVMが使用するボリュームのためにストレージリソースを消費してもよい。
ストレージVMは全コンピュートリソースのうちの40%を消費し、そして、全ストレージリソースのうちの10%を占有し、コンピュートVM-Aは全コンピュートリソースの10%を消費し、そして、全ストレージリソースの30%を消費し、コンピュートVM-Bは全コンピュートリソースの10%を消費し、そして、全ストレージリソースの30%を消費済みである。コンピュートVM-Cは、全コンピュートリソースの20%を消費し、そして、全ストレージリソースの10%を消費しようとしている。
ストレージVM、コンピュートVM-A、コンピュートVM-Bとの合計リソース量は、コンピュートリソースが60%、ストレージリソースが70%である。このノードにコンピュートVM-Cを加えた後では、合計リソース量は、コンピュートリソースが80%、ストレージリソースが80%になって、両者は均衡する。
図10において、符号1200は、コンピュートVMとストレージVMとのコンピュートリソースの全消費割合と、それのストレージリソースの全消費割合とが均衡している基準線を示し、コンピュートリソースの全消費割合とストレージリソースの全消費割合とがこの基準線に近づくほど、ノードの複数のリソースがバランスよく有効利用されている、即ち、有効利用率が高いことを示している。
配置先ノード決定プログラム442は、新たなコンピュートVM(コンピュートVM-C)を配置すべきノードを決定しようとする際、ノードの既存VMに新規コンピュートVMを加えた後のコンピュートリソース合計消費割合と、ストレージリソース合計消費割合量との座標が、この基準線1200に最も近くなるノードを、新規コンピュートVM配置先候補ノードとすればよい。
図10は、前記ノードに新規コンピュートVM-Cを加えた後でのコンピュートリソース合計消費割合と、ストレージリソース合計消費割合とが基準線1200に一致していることを示している。これは、換言すれば、新規コンピュートVMをノードに配置後での複数のリソース(コンピュートリソースとストレージリソース)の間での空き割合(残り割合)もしくは合計消費割合の差が最小になるノードをVMの初期配置先候補とするということである。
既述のとおり、CPUコア数とメモリ容量とを纏めてコンピュートリソースとし、コンピュートリソースとストレージリソースとの間の2次元で、リソース量を比較したが、この態様に限定されない。例えば、CPUコア数、メモリ容量、そして、ボリューム容量の3次元のリソース間でリソースの空き割合もしくは合計消費割合を比較してもよい。3次元以上のリソース間の比較では、例えば各リソースの空き割合の標準偏差が最小になるノードを選択する。ここで各リソースの空き割合に代えて、各リソースの合計消費割合であってもよい。また、標準偏差に代えて、分散であってもよく、基準線1200とVM-Cの頂点とのユークリッド距離であってもよい。
また、図10ではストレージVMとコンピュートVMの合計の消費リソース割合を示しているが、この態様に限定されない。例えば、縦軸と横軸をコンピュートVMが利用可能な全コンピュートリソースの割合として、コンピュートVMの合計の消費リソース割合を示すのでもよい。
配置先ノード決定プログラム442は、候補ノードが複数か否かを判定し(1012)、候補ノードが複数であることを判定するとステップ1014に進む。ステップ1014は、追加条件に基づいて、複数の候補ノードを評価し、ステップ1016はその結果に基づいて、複数の候補ノートの中から新規コンピュートVM配置先ノードを決定する。
この追加条件は、例えば、新規コンピュートVMのリソース消費量を加えた、リソース全消費量(割合)が最も大きいノード、換言すれば、空きリソース量(割合)が最も小さいノードであること、又は、リソース全消費量が最も小さいノード、換言すれば、空きリソース量が最も大きいノードであるというものである。前者では、新規コンピュートVMを配置したノードのリソース占有率を高くすることができ、後者では、複数のノード間でリソース利用率がより平均化される。
ステップ1002において、配置先ノード決定プログラム442は、クラスタ属性がHCI以外の属性(SDS,コンポーザブル)を判定すると、ステップ1018に移行し、そして、ステップ1006において、コンピュートVMとボリュームとの両方を自身に配置できるノードがない場合にも、ステップ1018に移行する。
配置先ノード決定プログラム442は、空きリソース管理テーブル444を参照してコンピュートVMを配置できる余裕のある第1ノードと、ボリュームを配置できる余裕があり、第1ノードとは異なる第2ノードとを夫々選択し、両方のノードの組み合わせの中から、さらに、ノード間ネットワークホップ数管理テーブル445を参照して、ノードネットワークホップ数が最小になる、即ち、ネットワーク距離が最小となる、二つのノードのペアを選択する。図7のノード間ネットワークホップ数管理テーブル446を例にすると、最小のホップ数となるノードのペアは、HCI Node-1とHCI Node-2,HCI Node-1とHCI Node-3,HCI Node-2とHCI Node-3である。
配置先ノード決定プログラム442は、ステップ1020において、選択されたペアが複数の場合、複数ペア夫々について、コンピュートVMが配置される候補ノードにコンピュートVMのリソース量を適用した後での、複数リソース(CPUとメモリ)間で、リソース量のバランスを判定し、リソース量のバランスがとれている最適ノードを選択する。
配置先ノード決定プログラム224は、空きリソース管理テーブル444を参照して、新規VMの配置候補ノード毎に、新規コンピュートVMのリソース量を適用した後での空きリソース量(割合)を計算し、CPU,メモリの夫々の空きリソース量(割合)の差が最も小さいノードを最適ノードとして選択し、これを新規VMの初期配置先ノードとして決定する(1022)。
そして、配置先ノード決定プログラム442は、このノードとペアになったノードをコンピュートVMのボリュームが配置されるべきノードとして決定する(1024)。
以上により、図10のフローチャートが終了する。このフローチャートによれば、HCI構成のクラスタについて、管理ノードが、コンピュートVMと同一ノードにボリュームを配置できない場合であっても、ネットワークスイッチ数が少ないノードにボリュームを配置できるので、コンピュートVMのI/O性能の低下を抑制できる。コンピュートVMのI/O性能の低下を抑制できることは、HCI以外の属性のクラスタについても同じである。
なお、ステップ1014において、選別されるノードが複数存在する場合は、さらなる追加条件、例えば、ノードIDの大小によって、候補ノードを選別してもよい。ステップ1010、次いで、ステップ1014とは、同一のステップにしてもよいし、逆の順番にしてもよい。
図11は、クラスタのタイプが既述のSDSである計算機システムのハードウェアブロック図の一例を示す。SDSにおいては、コンピュートVMが存在するノード220とストレージVM・記憶ドライブが存在するノード230とが別になっている。つまり、ノード230はコンピュートVM用のコンピュートリソースは持たず、ストレージVM用が稼働するためのコンピュートリソースとストレージリソースのみを持つ。
図12は、クラスタが既述のコンポーザブルとして構成される計算機システムのハードウェアブロック図の一例を示す。コンポーザブルにおいては、ディスクアレイ170がコンピュートVM・ストレージVMとを備えるノード120とは分離されている。ディスクアレイは、具体的には、FBOF(Fabric-attached Bunch Of Flash)やJBOD(Just a Bunch Of Disks)になる。
図4に示すVM管理テーブルにおいて、HCI構成の場合は、706と707で同じノードが入る可能性があるが、SDSやコンポーザブルでは、異なるノードになる。SDSの場合、コンピュートVM配置先ノードIDには計算機ノード(コンピュートVM)のIDが入り、ボリューム配置先ノードIDにはストレージノード(ストレージVM)のIDが記録される。コンポーザブルでは、コンピュートVM配置先ノードIDには計算機ノードのIDが入り、ボリューム配置先ノードIDはディスクアレイのIDになる。
図5の空きリソース管理テーブルにおいて、HCI Node-1は、CPUコア数が全体で128、現時点での空きが64であり、メモリ容量が全体で512GiB、現時点での空きが384GiBであり、全ドライブ容量が全体で20,000GiB、現時点での空きが8,000であるのに対し、SDSでは、計算機ノード:CPU数・メモリ容量(802―805)には値があり、ドライブ容量(806-807)には値がなく、ストレージノード:CPU数・メモリ容量(802-805)には値がなく、ドライブ容量(806-807)には値があり、コンポーザブルでは、計算機ノード:CPU数・メモリ容量(802―805)には値があり、ドライブ容量(806-807)には値がなく、ディスクアレイ:CPU数・メモリ容量(802-805)には値がなく、ドライブ容量(806-807)には値がある805)は値がなく、ドライブ容量(806―807)には値がある。
図6のノード間ネットワークホップ数管理テーブルにおいて、SDSでは、縦軸は計算機ノードID、横軸はストレージノードIDになり、その逆でもよいが、HCIのテーブルのように斜線はなく、コンポーザブルでは、縦軸は計算機ノードID、横軸はディスクアレイIDになり、その逆でもよいが、HCIのテーブルのように斜線はない。
図7のリソース分離可否テーブルにおいて、1011は、クラスタ1の構成がHCIで、リソースの種類は、コンピュートVM用のCPU、同メモリ、ストレージ(ドライブ)があり、前二者が分離不可で、ドライブはこれらとは分離可であることを示しているのに対して、SDS、コンポーザブルでも同じである。
ストレージのデータ保護のための冗長化の観点から、仮想コンピュータ(VM、コンテナ)を初期配置することができる。管理ノードは、冗長化先として、コンピュートVM配置後で、コンピュートリソースの空容量とストレージリソースの空容量との差が小さくなるノードを選択すればよい。また、管理ノードは、Failoverを考慮して、冗長化先の消費リソース量を多く見積もった上で、コンピュートVMの配置先を決定してもよい。さらにまた、管理ノードは、誤差を考慮し、消費リソース量を多く見積もった上で、コンピュートVMの配置先を決定して、コンピュートVMの再配置が頻繁に発生するのを防ぐことができる。
110:管理ノード、120A,120B:被管理ノード、12:コンピュートVM、122:アプリケーション、123:ストレージVM、124:ストレージプール、125:ハイパバイザ、126:記憶ドライブ

Claims (7)

  1. プロセッサと、メモリと、を夫々有する複数のノードと、
    記憶ドライブと、
    管理装置と、
    を備える計算機システムであって、
    前記管理装置は、
    仮想コンピュータと、当該仮想コンピュータがデータを入出力するボリュームと、を前記複数のノードのうち何れかのノードに配置させることにより、前記プロセッサ、前記メモリ、そして、前記記憶ドライブのリソースのうち所定のリソースを前記仮想コンピュータと前記ボリュームとにて、当該仮想コンピュータと当該ボリュームとを稼働させ、
    前記仮想コンピュータと前記ボリュームとを前記複数のノードのうち同一ノードに配置できる場合、当該仮想コンピュータと前記ボリュームとに割り当てられるリース量の複数のリソース間での割合の差に基づいて、前記同一ノードを前記複数のノードの中から決定するものであり、前記割合は、前記複数のノードのあるノードにおける、前記リソースのあるリソースについての全体量に対する、割り当てのための残り量の割合、又は、割り当て済みの消費量の割合である
    計算機システム。
  2. 請求項1において、
    前記管理装置は、
    前記仮想コンピュータと前記ボリュームとにリソースが割り当てられた後の残りリソース量の割合の差が小さくなるように、前記同一ノードを決定する、
    計算機システム。
  3. 請求項1において、
    前記管理装置は、
    前記プロセッサのリソースと前記メモリのリソースとを前記仮想コンピュータに割り当て、
    前記プロセッサのリソース、前記メモリのリソース、そして、前記記憶ドライブのリソースを前記ボリュームに割り当てる、
    計算機システム。
  4. 請求項3において、
    前記記憶ドライブは、前記複数のノード夫々に設けられており、
    前記管理装置は、
    前記プロセッサのリソース、前記メモリのリソース、そして、前記記憶ドライブのリソースの間でのリソース量の割り当て済み割合の差に基づいて、前記同一ノードを前記複数のノードの中から決定する、
    計算機システム。
  5. 請求項3において、
    前記記憶ドライブは、前記複数のノード外で、当該複数のノードから共用され得るように設けられており、
    前記プロセッサのリソース、そして、前記メモリのリソースの間でのリソース量の割り当て済み割合の差に基づいて、前記複数のノードの中から、前記仮想コンピュータ及びボリュームを配置するノードを決定する
    計算機システム。
  6. 請求項1において、
    前記管理装置は、前記仮想コンピュータと前記ボリュームとを、前記同一ノードに配置できない場合に、前記複数のノード夫々のノード間のネットワーク距離と、当該複数のノード夫々での前記割り当てられるリース量の複数のリソース間での割合の差と、に基づいて、前記仮想コンピュータと前記ボリュームとを夫々割り当てる、二つの異なるノードを、前記複数のノードの中から選択する、
    計算機システム。
  7. プロセッサと、メモリと、を夫々有する複数のノードと、記憶ドライブと、管理装置と、を備える計算機システムにおける仮想コンピュータの設定方法であって、
    前記管理装置は、
    仮想コンピュータと、当該仮想コンピュータがデータを入出力するボリュームと、を前記複数のノードのうち何れかのノードに配置させることにより、前記プロセッサ、前記メモリ、そして、前記記憶ドライブのリソースのうち所定のリソースを前記仮想コンピュータと前記ボリュームとに割り当てて、当該仮想コンピュータと当該ボリュームとを稼働させ、
    前記仮想コンピュータと前記ボリュームとを前記複数のノードのうち同一ノードに配置できる場合、当該仮想コンピュータと前記ボリュームとに割り当てられるリース量の複数のリソース間での割合の差に基づいて、前記同一ノードを前記複数のノードの中から決定するものであり、前記割合は、前記複数のノードのあるノードにおける、前記リソースのあるリソースについての全体量に対する、割り当てのための残り量の割合、又は、割り当て済みの消費量の割合である
    仮想コンピュータの設定方法。
JP2020046609A 2020-03-17 2020-03-17 計算機システム Active JP7107981B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020046609A JP7107981B2 (ja) 2020-03-17 2020-03-17 計算機システム
US17/010,965 US11550613B2 (en) 2020-03-17 2020-09-03 Computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020046609A JP7107981B2 (ja) 2020-03-17 2020-03-17 計算機システム

Publications (2)

Publication Number Publication Date
JP2021149299A JP2021149299A (ja) 2021-09-27
JP7107981B2 true JP7107981B2 (ja) 2022-07-27

Family

ID=77748110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020046609A Active JP7107981B2 (ja) 2020-03-17 2020-03-17 計算機システム

Country Status (2)

Country Link
US (1) US11550613B2 (ja)
JP (1) JP7107981B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200150888A1 (en) * 2018-04-30 2020-05-14 Amazon Technologies, Inc. Block storage with volume locality placement based on performance requirements

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110239215A1 (en) 2010-03-24 2011-09-29 Fujitsu Limited Virtual machine management apparatus
JP2014021847A (ja) 2012-07-20 2014-02-03 Mitsubishi Electric Corp リソース管理装置及びリソース管理方法及びプログラム
JP2016528617A (ja) 2013-08-26 2016-09-15 ヴイエムウェア インコーポレイテッドVMware,Inc. リソースの負荷バランシング
JP2020038421A (ja) 2018-09-03 2020-03-12 株式会社日立製作所 ボリューム配置管理装置、ボリューム配置管理方法、及びボリューム配置管理プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009088435A1 (en) 2007-12-31 2009-07-16 Netapp, Inc. System and method for automatic storage load balancing in virtual server environments
US11080093B2 (en) * 2018-04-12 2021-08-03 Vmware, Inc. Methods and systems to reclaim capacity of unused resources of a distributed computing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110239215A1 (en) 2010-03-24 2011-09-29 Fujitsu Limited Virtual machine management apparatus
JP2014021847A (ja) 2012-07-20 2014-02-03 Mitsubishi Electric Corp リソース管理装置及びリソース管理方法及びプログラム
JP2016528617A (ja) 2013-08-26 2016-09-15 ヴイエムウェア インコーポレイテッドVMware,Inc. リソースの負荷バランシング
JP2020038421A (ja) 2018-09-03 2020-03-12 株式会社日立製作所 ボリューム配置管理装置、ボリューム配置管理方法、及びボリューム配置管理プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200150888A1 (en) * 2018-04-30 2020-05-14 Amazon Technologies, Inc. Block storage with volume locality placement based on performance requirements
US11836359B2 (en) * 2018-04-30 2023-12-05 Amazon Technologies, Inc. Block storage with volume locality placement based on performance requirements

Also Published As

Publication number Publication date
US20210294630A1 (en) 2021-09-23
JP2021149299A (ja) 2021-09-27
US11550613B2 (en) 2023-01-10

Similar Documents

Publication Publication Date Title
US11663029B2 (en) Virtual machine storage controller selection in hyperconverged infrastructure environment and storage system
US11704166B2 (en) Load balancing of resources
US11216314B2 (en) Dynamic reallocation of resources in accelerator-as-a-service computing environment
CN105426245B (zh) 包括分散的部件的动态地组成的计算节点
JP4634812B2 (ja) 複数のコントローラ間に仮想ストレージセグメントを割り当てる能力を有するストレージシステム
JP5512833B2 (ja) ストレージの仮想化機能と容量の仮想化機能との両方を有する複数のストレージ装置を含んだストレージシステム
JP5830599B2 (ja) 計算機システム及びその管理システム
US20140115579A1 (en) Datacenter storage system
WO2012147116A1 (en) Computer system and virtual machine control method
KR20200017363A (ko) 호스트 스토리지 서비스들을 제공하기 위한 NVMe 프로토콜에 근거하는 하나 이상의 호스트들과 솔리드 스테이트 드라이브(SSD)들 간의 관리되는 스위칭
US20120254445A1 (en) Control method for virtual machine and management computer
US8959173B1 (en) Non-disruptive load-balancing of virtual machines between data centers
US10248460B2 (en) Storage management computer
US8954706B2 (en) Storage apparatus, computer system, and control method for storage apparatus
KR20140111589A (ko) 가상 기계들을 지원하는 플래시―기반 캐싱 해결책에서의 동적인 캐시 공유를 위한 시스템, 방법 및 컴퓨터―판독가능한 매체
JP2005216306A (ja) データを移動することなく仮想ストレージデバイス群を移動させる能力を含むストレージシステム
US10223016B2 (en) Power management for distributed storage systems
JP7107981B2 (ja) 計算機システム
JP7125964B2 (ja) 計算機システムおよび管理方法
JP6653786B2 (ja) I/o制御方法およびi/o制御システム
US20230342212A1 (en) Load distribution in a data storage system
JP2023094302A (ja) 情報処理システム及び構成管理方法
Tran et al. Virtualizing Microsoft SQL Server 2008 R2 Using VMware vSphere 5 on Hitachi Compute Rack 220 and Hitachi Unified Storage 150 Reference Architecture Guide

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210527

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220420

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220714

R150 Certificate of patent or registration of utility model

Ref document number: 7107981

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150