JP5667552B2 - 仮想計算機システム、仮想計算機管理プログラム、及びmacアドレス管理方法 - Google Patents

仮想計算機システム、仮想計算機管理プログラム、及びmacアドレス管理方法 Download PDF

Info

Publication number
JP5667552B2
JP5667552B2 JP2011269225A JP2011269225A JP5667552B2 JP 5667552 B2 JP5667552 B2 JP 5667552B2 JP 2011269225 A JP2011269225 A JP 2011269225A JP 2011269225 A JP2011269225 A JP 2011269225A JP 5667552 B2 JP5667552 B2 JP 5667552B2
Authority
JP
Japan
Prior art keywords
virtual
virtual machine
mac address
port
network device
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.)
Expired - Fee Related
Application number
JP2011269225A
Other languages
English (en)
Other versions
JP2013120552A (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 JP2011269225A priority Critical patent/JP5667552B2/ja
Priority to US13/614,567 priority patent/US9131031B2/en
Publication of JP2013120552A publication Critical patent/JP2013120552A/ja
Application granted granted Critical
Publication of JP5667552B2 publication Critical patent/JP5667552B2/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
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Description

本発明は、物理的なネットワークデバイスを複数の仮想計算機で共有する場合における論理的なネットワークデバイスのMACアドレスを管理する技術に関する。
複数の仮想計算機を稼働させる仮想計算機システムが知られている。このような計算機システムとしては、複数の仮想計算機を管理するハイパバイザを有する仮想計算機システムが知られている(例えば、特許文献1参照)。
物理的なネットワークデバイスを複数の仮想計算機により共有する技術としては、仮想計算機上に、仮想的なネットワークデバイスを設けることで実現する方法が知られている(例えば、特許文献2参照)。
このような仮想的なネットワークデバイスを設けた共有技術においては、物理的なネットワークデバイスのMACアドレスとは別に、仮想計算機側の仮想的なネットワークデバイスのMACアドレスを仮想計算機自身が提供するのが一般的であり、物理的なネットワークデバイスが故障する等の理由で別固体に交換したとしても、OS(Operating System)等の設定を変更することなく、仮想計算機上は全く同一のMACアドレスのまま利用を継続できる特徴がある。
このようにネットワークデバイスのMACアドレスを仮想計算機が管理するという機能を利用し、仮想的なネットワークデバイスのMACアドレスを含む仮想計算機の構成データをコピーすることで、物理的に異なる計算機上に仮想計算機を移動させて動作させる技術も提案され、現在利用されている(例えば、特許文献3参照)。
一方で、特許文献2に開示されているようなネットワークデバイスの共有技術では、物理計算機上のCPU(Central Processing Unit)の処理量が多く、仮想計算機のネットワークデバイスの性能が上がらないという問題が、近年の物理的なネットワークデバイスのスループット向上に伴い顕著なものとなってきた。
このような課題を克服するため、物理的なネットワークデバイス側に、複数の仮想計算機による仮想的なネットワークデバイスの共有を支援する技術が実装されるようになっている。その中でも、CPUにかかる負荷が非常に低い、SR−IOV(シングル・ルート入出力仮想化)と呼ばれる仮想化技術が知られている(例えば、特許文献4参照)。
SR−IOV技術を利用して、複数の仮想計算機により物理的なネットワークデバイスを共有する場合には、一般的には以下のような処理が行われる。
まず、SR−IOVの物理的なネットワークポート資源であるPFポートは、ホストOS、またはハイパバイザ(仮想計算機モニタ)自身または、専用の管理用仮想計算機に割り当てられ、ベンダの提供するPFドライバを用いてデバイスの初期化処理等が行われる。
そして、仮想的なネットワークポート資源であるVFポートは、各仮想計算機に割り当てられ、ベンダの提供するVFドライバを用いて通信処理が行われる。この通信処理の際に、VFドライバは、仮想計算機システムのメモリアドレスにマップされたVFポートの制御レジスタを読み書きする。この処理において、ハイパバイザが一切介在せず仮想計算機上のCPUからこれらのレジスタを読み書きさせることが可能である。このようにハイパバイザを介在せず必要なH/W(ハードウェア)レジスタ資源に、ドライバ(ドライバを実行するCPU)がアクセスすることが可能であるため、SR−IOV技術を利用したネットワークデバイスの共有は、以前の技術に比べ非常に低いCPU負荷でネットワークデバイスの共有を実現できる利点を持つ。
特開2000−259434号公報 特開2007−158870号公報 特開2010−33404号公報 特表2011−517497号公報
一方で、SR−IOV技術を用いた物理的なネットワークデバイスの共有方法では、物理的なネットワークデバイスが、そのまま、仮想計算機のゲストOSに認識されてしまう。例えば、各仮想計算機が使用するVFポートのネットワークデバイスのMACアドレスは、当該H/WベンダがVFポート用に提供するユニークなMACアドレスとなっているため、ネットワークデバイスが故障して別固体に交換するなどした場合には、各仮想計算機上に見えるVFポートのMACアドレスが変化してしまう。
また、物理的なネットワークデバイスを提供するH/Wベンダによっては、VFポートのMACアドレスは、ベンダが確保したユニークな値ではなく、電源ON時に乱数により生成される値となる場合もあり、このようなSR−IOV対応のネットワークデバイスを利用すると、毎回仮想計算機上のVFポートのネットワークデバイスのMACアドレスが変化して見えたり、低確率ではあるが他のネットワークデバイスのMACアドレスと重複して通信ができなくなったりすることが発生する。
つまり、SR−IOV機能を利用して、仮想計算機システム上でネットワークデバイスを共有する際に、物理ネットワークデバイスの提供するVFポートのMACアドレスを利用すると、物理的なネットワークデバイスの故障交換や、仮想計算機を別の物理計算機上に移動させる際に仮想計算機上のVFポートのMACアドレスが変化してしまい、物理的なネットワークデバイスの故障交換が困難となったり、仮想計算機を別の物理計算機に移動させる際の障害となってしまったりすることがある。
SR−IOV機能によるネットワークデバイスの共有において、ハイパバイザ(仮想計算機モニタ)が介入しないことによる低CPU負荷の利点を享受しつつも、VFポートのMACアドレスには、ハイパバイザにより各仮想計算機用に用意されたMACアドレスが、ユーザの特別な操作なしに仮想計算機に割り当てたVFポート上で利用できるようにすることが要請される。
本発明は、上記課題に鑑みなされたものであり、その目的は、複数のVFポートのMACアドレスを、適切なMACアドレスに管理することのできる技術を提供することにある。
上記した課題の単純な解決方法としては、ハイパバイザが仮想計算機の起動時の初期化処理において、その仮想計算機が使用するVFポートにその仮想計算機用にハイパバイザが確保したMACアドレスを、PFドライバを通じて設定するというものが考えられる。
しかし、この単純な解決方法を採用した場合、仮想計算機とVFポートの対応付けが固定されていないと稼動中のVFポートのMACアドレスと、非稼動のVFポートのMACアドレスが重複して正常に通信ができなくなる問題がある。一方、仮想計算機とVFポートとの対応付けが固定化されていると、仮想計算機を別の仮想計算機システムに移動した場合に、対応するVFポートとの対応付けができないことも起こりうる。
そこで、仮想計算機システムは、外部ネットワーク装置とネットワークを介して接続可能であり一の物理通信ポートについて仮想計算機に対し提供可能な仮想通信ポートを複数有するネットワークデバイスを有し、或る前記仮想計算機を起動する際に、複数の前記仮想計算機にそれぞれ対応した複数のMACアドレスであり仮想計算機に提供される仮想通信ポートに対して割り当てられる複数のMACアドレスから、上記或る仮想計算機に対応するMACアドレスを取得し、そのMACアドレスを、上記或る仮想計算機に対して割り当てる仮想通信ポートのMACアドレスとして設定する。
このような仮想通信ポート(VFポート)のMACアドレス管理を行うと、仮想計算機の構成情報として予約されたMACアドレスが使用されるので、例えば、H/Wベンダが提供するVFポートのMACアドレスが変化することによる影響を受けない仮想計算機システムを提供できる。また、例えば、物理的なネットワークデバイスの交換の際や、仮想計算機を別の計算機システムに移動させる際において、H/Wベンダが提供するVFポートのMACアドレスが変わることによる悪影響を適切に防止することができる。
図1は、実施例に係る仮想計算機システムの概念構成図である。 図2は、実施例に係る仮想計算機リソース管理部の構成図である。 図3は、実施例に係るSR−IOV対応ネットワークデバイス管理部の構成図である。 図4は、実施例に係るハイパバイザ初期化処理のフローチャートである。 図5は、実施例に係る仮想計算機起動時処理のフローチャートである。 図6は、実施例に係る仮想計算機終了時処理のフローチャートである。 図7は、ハイパバイザ起動時におけるSR−IOV対応ネットワークデバイスの設定状態の一例を説明する図である。 図8は、仮想計算機を1つ起動した時におけるSR−IOV対応ネットワークデバイスの設定状態の一例を説明する図である。 図9は、仮想計算機を2つ起動した時におけるSR−IOV対応ネットワークデバイスの設定状態の一例を説明する図である。 図10は、MACアドレス設定解除を行わない場合に発生する状況を説明する図である。
実施例について、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
また、以下の説明では、プログラム、又はプログラムのモジュールを主語として処理を説明する場合があるが、プログラムやプログラムモジュールは、制御デバイスが有するプロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インタフェースデバイス(例えばネットワークデバイス)を用いながら行う。このため、プログラム或いはプログラムモジュールを主語として説明された処理は、プロセッサ、そのプロセッサを有する制御デバイス或いはシステム(例えば、仮想計算機システム)が行う処理としても良い。また、プロセッサが行う処理の一部又は全部を行うハードウェア回路を制御デバイスが含んでも良い。プログラムは、プログラムソースからインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
以下、実施例を、図面を用いて説明する。
図1は、実施例に係る仮想計算機システムの概念構成図である。
仮想計算機システム10は、物理資源(ハードウェア資源)21を含む。物理資源21は、例えば、プロセッサの一例としての物理CPU30、物理メモリ31、物理IOルートポート32、及びSR−IOV対応ネットワークデバイス33を含む。物理CPU30は、物理メモリ31に格納されたプログラムを実行することにより各種処理を行う。物理メモリ31は、物理CPU30により実行されるプログラム、データを記憶する。
SR−IOV対応ネットワークデバイス33は、物理的なネットワークポート(物理通信ポート)であるPFポート40と、仮想的なネットワークポート(仮想通信ポート)であるVFポート41(VFポート1)、42(VFポート2)とを有する。PFポート40、VFポート41、42は、内部ネットワークスイッチ43を介して、外部ネットワーク装置(例えば計算機)22へと接続可能である。PFポート40は、PFポート用のMACアドレス120を記憶する。VFポート41,42は、VFポート用のMACアドレス121、122をそれぞれ記憶する。
物理資源21上において、ハイパバイザ(仮想計算機モニタ)20が動作する。ハイパバイザ20は、物理CPU30が物理メモリ31に格納された仮想計算機管理プログラムの一例であるハイパバイザプログラムを実行することにより構成される。ハイパバイザ20は、仮想計算機起動処理部94、仮想計算機終了処理部95、ハイパバイザ初期化処理部96、及び仮想計算機リソース管理部60を有する。仮想計算機起動処理部94、仮想計算機終了処理部95、ハイパバイザ初期化処理部96、及び仮想計算機リソース管理部60は、物理CPU30が物理メモリ31に格納されたプログラムを実行することにより構成される。仮想計算機起動処理部94は、仮想計算機の起動時の処理を実行する。仮想計算機終了処理部95は、仮想計算機の終了時の処理を実行する。ハイパバイザ初期化処理部96は、ハイパバイザの起動時の処理を実行する。仮想計算機リソース管理部60は、仮想計算機に割り当てる物理機資源を管理する。
ハイパバイザ20上において、管理用仮想計算機50、ユーザ用仮想計算機51(ユーザ用仮想計算機1)、52(ユーザ用仮想計算機2)等が動作する。
管理用仮想計算機50は、物理CPU30が物理メモリ31に格納されたプログラムを実行することにより構成される仮想的な計算機であり、論理資源72として、論理CPU73、ゲストメモリ74、及びPFポート用論理IO75を備える。
管理用仮想計算機50上でゲストOS71が動作する。ゲストOS71には、PFポート40等を利用するためのPFポート用ドライバ76が組み込まれている。また、ゲストOS71上で管理用常駐ソフトウェア70が動作する。
ユーザ用仮想計算機51は、物理CPU30が物理メモリ31に格納されたプログラムを実行することにより構成される仮想的な計算機であり、論理資源82として論理CPU83、ゲストメモリ84、及びVFポート用論理IO85を備える。ユーザ用仮想計算機51上でゲストOS80が動作する。ゲストOS80には、VFポート41、42等を利用するためのVFポート用ドライバ81が組み込まれている。他のユーザ用仮想計算機52等も同様な構成となっている。
図2は、実施例に係る仮想計算機リソース管理部の構成図である。
仮想計算機リソース管理部60は、SR−IOV対応ネットワークデバイス管理部93と、仮想計算機1構成情報90、仮想計算機2構成情報91、・・・、及び仮想計算機N構成情報92の複数の仮想計算機の構成情報とを保持する。
仮想計算機1構成情報90は、仮想計算機1についての、論理CPU構成情報101、論理メモリ構成情報102、論理ネットワークデバイス構成情報103等を含む。論理ネットワークデバイス構成情報103は、対応する仮想計算機上の論理ネットワークポート(論理NICポート)130と、当該論理NICポートで使用する論理MACアドレス131と、対応する論理NICポートが使用する物理的なネットワークポートの番号(物理ポート番号:PFポート番号)132との対応関係が保持されている。なお、各論理MACアドレスは、仮想計算機システム10において管理されている他の論理MACアドレスと重複しないMACアドレスとなっている。また、他の仮想計算機の仮想計算機構成情報(仮想計算機2構成情報91、仮想計算機N構成情報92)も同様な構成となっている。
図3は、実施例に係るSR−IOV対応ネットワークデバイス管理部の構成図である。
SR−IOV対応ネットワークデバイス管理部93は、物理的に存在するSR−IOV対応ネットワークデバイス33の各物理通信ポート(PFポート)毎に、SR−IOV物理ポート管理情報(SR−IOV物理ポート0(PF0)管理情報110、SR−IOV物理ポート1(PF1)管理情報111、・・・)を格納する。
SR−IOV物理ポート0(PF0)管理情報110は、物理通信ポート0(PF0)の管理情報であり、当該物理通信ポートの各仮想通信ポート(VFポート)41、42、・・毎に、このVFポートを示すVFポート番号140と、このVFポートを使用する仮想計算機番号141と、この仮想計算機上で対応付けられる論理的NICポート番号142とが対応付けられて保持されている。なお、他の物理通信ポートのSR−IOV物理ポート管理情報(111等)も同様な構成となっている。
例えば、図3のSR−IOV物理ポート0(PF0)管理情報110によると、“PF0”のPFポートの“VF0”のVFポートは、“仮想計算機1”の“論理NICポート0”として利用され、“PF0”のPFポートの“VF1”のVFポートは、“仮想計算機2”の“論理NICポート0”として利用され、“PF0”のPFポートの“VF2”のVFポートは、“仮想計算機1”の“論理NICポート1”として利用され、“PF0”のPFポートの“VF3”のVFポートは、“未使用”であることがわかる。
次に、仮想計算機システム10における処理動作について説明する。
図4は、実施例に係るハイパバイザ起動時のハイパバイザ初期化処理のフローチャートである。
ハイパバイザ初期化処理は、ハイパバイザ初期化処理部96によって実行される。ハイパバイザ20が物理CPU30により起動されると、ハイパバイザ20が、まずハイパバイザ初期化処理部96を呼び出すこととなる。ハイパバイザ初期化処理部96が呼び出されると(ステップ300)、まずハイパバイザ20内部の各種内部データの初期化処理を行う(ステップ301)。
次に、ハイパバイザ初期化処理部96は、管理用仮想計算機50を起動する。起動した管理用仮想計算機50は、ゲストOS71、さらにその上で動作する管理用常駐ソフトウェア70を自動的に起動する(ステップ302)。
ハイパバイザ初期化処理部96は、管理用仮想計算機50上で管理用常駐ソフトウェア70の起動が完了するまで待ち(ステップ303)、管理用常駐ソフトウェア70が起動したら、管理用常駐ソフトウェア70に対して、SR−IOV対応ネットワークデバイス33のすべてのVFポートのMACアドレスを初期化する要求を発行する(ステップ304)。
ここで、ハイパバイザ20から管理用常駐ソフトウェア70へのタスクの要求方法としては、(1)管理用常駐ソフトウェア70によるポーリング監視。すなわち、定期的にVMCALL命令等を呼び出したり、特定のメモリアドレスやI/Oポートアドレスの内容を監視したりするなどして、ハイパバイザ20の要求の有無を調べる(2)管理用仮想計算機50に割り当てた仮想的なデバイスの割り込みを契機に仮想デバイスドライバから管理用常駐ソフトウェア70に要求を伝達するなどの方法がある。なお、ハイパバイザ20の要求内容が管理用常駐ソフトウェア70に伝達できるのであれば、いずれの方法を用いてもよい。
MACアドレスの初期化要求を受けた管理用常駐ソフトウェア70は、PFドライバ76を利用して、すべてのVFポート41、42、・・・のMACアドレス121、122に、仮想計算機システム10で稼動中の仮想計算機50、51、52、・・及び外部ネットワーク装置22で使用されないことが保証されるMACアドレス(ダミーMACアドレス)を設定し(ステップ305)、処理を終了する。
なお、SR−IOV対応ネットワークデバイス33が、すべてのVFポートに、他と重複しないことが保証されるユニークなMACアドレスが設定されるように構成されている場合には、このVFポートに設定されているMACアドレスを、ダミーMACアドレスとして使用できる。したがって、この場合には、ステップ304、305に示す処理を省略することができる。
一方、SR−IOV対応ネットワークデバイス33が、電源投入時に乱数でVFポートのMACアドレス121、122、・・を設定するように構成されている場合には、このように設定されたMACアドレスは、他と重複することが保証されないので、ダミーMACアドレスとして使用することはできない。この場合には、他と重複することがないことが保証されるユニークなMACアドレス(例えば、一つのMACアドレスであってもよい)を用意しておき、上記ステップ304、305により、すべてのVFのMACアドレス121、122、・・に対して設定する。
図7は、ハイパバイザ起動時におけるSR−IOV対応ネットワークデバイスの設定状態の一例を説明する図である。図7は、図4に示すハイパバイザ初期化処理を終えたときの仮想計算機システム10のMACアドレスの設定状態を示している。
図7に示すように、SR−IOV対応ネットワークデバイス33のVFポート41、42は、稼働しておらず、これらのMACアドレス121、122には、ダミーMACアドレス(例えば、00-00-00-00-00-00)が設定されている。
次に、ハイパバイザ初期化処理後の仮想計算機システム10において、ハイパバイザ20の仮想計算機起動処理部94が主に動作することにより、ユーザ用仮想計算機を起動する仮想計算機起動時処理を説明する。
図5は、実施例に係る仮想計算機起動時処理のフローチャートである。
ハイパバイザ20により、仮想計算機起動処理部94がユーザ用仮想計算機の起動を指示されると(ステップ400)、仮想計算機起動処理部94は、まず、起動する仮想計算機に対応する仮想計算機構成情報(90、91、・・・、又は92)を読み出す。次に、仮想計算機起動処理部94は、仮想計算機構成情報中の論理ネットワークデバイス構成情報103を参照し、当該仮想計算機に割り当てるべき論理NICポート130の中から一つを選択する(ステップ401)。
次に、仮想計算機起動処理部94は、論理ネットワークデバイス構成情報103から、選択した論理NICポート130が使用する物理的なSR−IOV対応ネットワークデバイス33の物理ポート番号132を読み出して特定する。さらに、仮想計算機起動処理部94は、物理ポート番号132に対応するSR−IOV物理ポート管理情報(110、111、・・・のいずれか)を読み出し、この物理通信ポート(PFポート)に仮想計算機が利用していない未使用なVFポートがあるかを調べる(ステップ402)。
この結果、未使用なVFポートが存在しない場合(ステップ402でNo)には、仮想計算機が要求するだけの仮想的なネットワークデバイスを提供できないので、VFポートリソース不足として仮想計算機起動時処理を異常終了させる(ステップ403)。
一方、未使用なVFポートが存在する場合(ステップ402でYes)には、未使用なVFポートから一つ選択し、SR−IOV対応ネットワーク物理ポート管理情報110の選択したVFポートを使用している仮想計算機番号141を未使用であることを示す値から、現在起動処理を行っている仮想計算機番号の値に内容を変更する(ステップ404)。
次いで、仮想計算機起動処理部94は、論理ネットワークデバイス構成情報103のすべての論理NICポートの構成情報を取得したか否かを判定し(ステップ405)、すべての論理NICポート130の情報を取得していない場合(ステップ405でNo)には、ステップ401に処理を進めることにより、この仮想計算機に割り当てるべき論理NICポートの数分繰り返し処理を行う。
一方、すべての論理NICポート130の情報を取得している場合(ステップ405でYes)には、すべての論理NICポートが使用するVFポートが確定したということである。このため、仮想計算機起動処理部94は、管理用仮想計算機50上の管理用常駐ソフトウェア70に対して、SR−IOV対応ネットワークデバイス33の仮想計算機が使用するVFポート(例えば、41等)のMACアドレス(例えば、121等)を変更させる要求を発行する(ステップ406)。
ハイパバイザ20の指示を受け取った管理用常駐ソフトウェア70は、指示に従いPFドライバ76に対して指定されたVFポート(例えば、41等)のMACアドレス(例えば、121等)を設定するコマンドを実行する(ステップ407)。これにより、PFドライバ76によって、VFポート(例えば、41等)のMACアドレス(例えば、121等)が起動した仮想計算機で使用するMACアドレスの値(すなわち、論理MACアドレス131の値)に設定される。
上記した仮想計算機起動時処理が実行されると、仮想計算機システム10のMACアドレスの設定状態は、例えば、図7に示す状態から図8に示す状態となる。
すなわち、ユーザ用仮想計算機1が起動されると、図8に示すように、ユーザ用仮想計算機1に割り当てたVFポート41に対して、ユーザ用仮想計算機1で使用するように、ハイパバイザ20の仮想計算機リソース管理部60で管理されているMACアドレス(同図では、11-11-11-11-11-11)が設定される。
ここで、上記同様な仮想計算機起動時処理により、さらに、ユーザ用仮想計算機(ここでは、ユーザ用仮想計算機2)を起動すると、仮想計算機システム10のMACアドレスの設定状態は、図8に示す状態から図9に示す状態となる。
すなわち、ユーザ用仮想計算機2が起動されると、図9に示すように、ユーザ用仮想計算機2に割り当てたVFポート42に対して、ユーザ用仮想計算機2で使用するように、ハイパバイザ20の仮想計算機リソース管理部60で管理されているMACアドレス(同図では、22-22-22-22-22-22)が設定される。
次に、起動したユーザ用仮想計算機を終了する際の処理を説明する。この仮想計算機システム10でユーザ用仮想計算機を終了させるときには、ハイパバイザ20の仮想計算機終了処理部95は一般的な仮想計算機の終了処理に加えて、以下に示すような仮想計算機終了時処理を行う。
図6は、実施例に係る仮想計算機終了時処理のフローチャートである。
まず、仮想計算機終了処理部95は、終了するユーザ用仮想計算機(51又は52)が使用していたVFポート(41又は42)にリセットを発行し、当該ユーザ用仮想計算機で使用していたデバイスの動作を完全に停止させる(ステップ501)。ここで、一般的には、SR−IOV対応ネットワークデバイス33のリセットには、PCIコンフィグレジスタのFLR(Function Level Reset)に”1”を書き込むことで実施することができる。
次に、仮想計算機終了処理部95は、管理用仮想計算機50上の管理用常駐ソフトウェア70に対して、MACアドレス設定要求を出す(ステップ502)。
この要求を受け取った管理用常駐ソフトウェア70は、PFドライバ76を利用して、対応するユーザ用仮想計算機(51又は52)が使用するすべてのVFポート(41、42等)に割り当てたユーザ用仮想計算機のMACアドレスの割り当てを解除し、ダミーMACアドレスに設定する(ステップ503)。
次に、仮想計算機終了処理部95は、SR−IOV対応ネットワークデバイス管理部93から、対応するユーザ用仮想計算機(51又は52)が使用していたVFポート(41、42等)の割り当てをすべて解放し(ステップ504)、処理を終了する(ステップ505)。
このような仮想計算機終了時処理により、ユーザ用仮想計算機(51、52)の終了時に使用していたMACアドレスをダミーMACアドレスに変更することができる。
例えば、図9のように、2つのユーザ用仮想計算機(51、52)が起動していたときに、仮想計算機終了時処理により、ユーザ用仮想計算機52を停止すると、仮想計算機システム10のMACアドレスの設定状態は、図8に示す状態となる。すなわち、ユーザ用仮想計算機2が使用していたVFポート42(VFポート2)のMACアドレス122は、22-22-22-22-22-22から00-00-00-00-00-00となる。
ここで、仮想計算機終了時処理において、終了するユーザ用仮想計算機において使用していたVFポートのMACアドレスをダミーMACアドレスに変更して設定することによる効果を詳細に説明する。
例えば、図9に示すように、2つのユーザ用仮想計算機(51、52)が起動していたときに、ユーザ用仮想計算機2を停止するときに、ユーザ用仮想計算機2の使用していたVFポート2のMACアドレスを22-22-22-22-22-22のままとしておくとする。この後において、ユーザ用仮想計算機1を終了させ、再びユーザ用仮想計算機2を起動すると、図10に示すように、ユーザ用仮想計算機2に対して、空いているVFポート1が割り当てられ、VFポート1のMACアドレス121として、22-22-22-22-22-22が設定される。この場合には、VFポート1のMACアドレス121と、非稼働のVFポート2のMACアドレス122と重複してしまうことが起こる。
このように、異なるVFポート間で複数のMACアドレスが重複してしまうと、外部ネットワーク装置22からSR−IOV対応ネットワークデバイス33の稼動中のMACアドレス121(すなわち、22-22-22-22-22-22)に送られてきたネットワークパケットは、デバイス内部のネットワークスイッチ43で同じMACアドレスを持つ非稼動なVFポート42へルーティングされてしまう虞があり、稼動中のVFポート41を使用して正常に外部ネットワーク装置22と通信ができない事態が発生する。
このような事態が発生するので、非稼動なVFポートであっても、そのMACアドレスと、稼動中のVFポートのMACアドレスとは、重複することを避ける必要がある。上記した仮想計算機終了処理においては、仮想計算機の終了時に、仮想計算機終了処理部95が、使用していたVFポートのMACアドレスをダミーMACアドレスに変更するので、非稼働なVFポートと、稼働中のVFポートのMACアドレスとが重複してしまうことを適切に防止することができる。
以上、一実施例を説明したが、本発明は、この実施例に限定されるものでなく、その趣旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば、上記実施例では、管理用仮想計算機50が、SR−IOV対応ネットワークデバイス33のVFポート41、42、・・等のMACアドレスを設定するようにしていたが、本発明はこれに限られず、ハイパバイザ20がSR−IOV対応ネットワークデバイス33のVFポートのMACアドレスを設定するようにしてもよく、この場合には、ハイパバイザ20にPFドライバ76を組み込んでおけばよい。
10:仮想計算機システム、20:ハイパバイザ(仮想計算機モニタ)、21:物理資源、30:物理CPU、31:物理メモリ、33:SR−IOV対応ネットワークデバイス、40:PFポート、41,42:VFポート、50:管理用仮想計算機、51,52:ユーザ用仮想計算機

Claims (15)

  1. 複数の仮想計算機を稼働可能な仮想計算機システムであって、
    複数の物理通信ポートを備え、外部ネットワーク装置とネットワークを介して接続可能なネットワークデバイスと、
    記憶デバイスと、
    前記ネットワークデバイス及び前記記憶デバイスに接続された制御デバイスと、
    前記複数の仮想計算機を管理するハイパバイザーと、
    を有し、
    前記ネットワークデバイスは、一の物理通信ポートに対して、前記仮想計算機に対して提供可能な仮想通信ポートを複数有し、
    前記記憶デバイスは、
    前記複数の物理通信ポートのそれぞれについて、前記ネットワークデバイスが提供可能な当該物理通信ポート上の複数の仮想通信ポートと、当該仮想通信ポートの使用状況を対応づけるネットワークデバイス管理情報と、
    前記複数の仮想計算機のそれぞれについて、前記ハイパバイザーが管理する当該仮想計算機に複数のネットワーク論理ポートと、当該ネットワーク論理ポートに割り当てられたMACアドレスと対応づける仮想計算機構成情報と
    を記憶し、
    前記制御デバイスは、
    前記複数の仮想計算機のうちの第1の仮想計算機を起動する際に、
    前記ネットワークデバイス管理情報と前記仮想計算機構成情報とに基づいて、
    前記ネットワークデバイスにより提供される前記複数の仮想通信ポートのうち未使用の第1の仮想通信ポートを選択し、
    前記ハイパバイザーが前記第1の仮想計算機に提供する第1のネットワーク論理ポートに前記第1の仮想通信ポートを対応づけ、
    前記第1のネットワク論理ポートに割当てられたMACアドレスを、前記第1の仮想通信ポートに設定する
    ことを特徴とする仮想計算機システム。
  2. 前記制御デバイスは、
    前記第1の仮想計算機を終了する際に、前記第1の仮想計算機に割り当てていた前記第1の仮想通信ポートのMACアドレスとして、前記外部ネットワーク装置で使用されないことが保証されるMACアドレスであるダミーMACアドレスを設定する
    請求項1に記載の仮想計算機システム。
  3. 前記ダミーMACアドレスは、いずれかの前記仮想計算機を起動する前までに、すべての前記仮想通信ポートに対して設定される
    ことを特徴とする請求項2に記載の仮想計算機システム。
  4. 全ての前記ダミーMACアドレスは、共通なアドレスである
    ことを特徴とする請求項3に記載の仮想計算機システム。
  5. 前記制御デバイスは、
    前記ネットワークデバイスの前記仮想通信ポート中の割り当てられていない仮想通信ポートを、前記仮想計算機に割当てる
    ことを特徴とする請求項1乃至4のうちのいずれか1項に記載の仮想計算機システム。
  6. 複数の仮想計算機を稼働可能な計算機であって、外部ネットワーク装置とネットワークを介して接続可能であり一の物理通信ポートについて前記仮想計算機に対し提供可能な仮想通信ポートを複数有するネットワークデバイスを有する前記計算機で実行されるハイパバイザーであって、
    前記複数の仮想計算機のうちの第1の仮想計算機を起動する際に、前記複数の物理通信ポートのそれぞれについて前記ネットワークデバイスが提供可能な当該物理通信ポート上の複数の仮想通信ポートと当該仮想通信ポートの使用状況を対応づけるネットワークデバイス管理情報と、前記複数の仮想計算機のそれぞれについて当該仮想計算機に複数のネットワーク論理ポートと当該ネットワーク論理ポートに割り当てられたMACアドレスと対応づける仮想計算機構成情報とに基づいて、
    前記ネットワークデバイスにより提供される前記複数の仮想通信ポートのうち未使用の第1の仮想通信ポートを選択し、
    記第1の仮想計算機に提供する第1のネットワーク論理ポートに前記第1の仮想通信ポートを対応づけ、
    前記第1のネットワク論理ポートに割当てられたMACアドレスを、前記第1の仮想通信ポートに設定する
    ことを前記計算機に実行させることを特徴とするハイパバイザー。
  7. 前記第1の仮想計算機を終了する際に、前記第1の仮想計算機に割り当てていた前記第1の仮想通信ポートのMACアドレスとして、通信に使用される可能性のないダミーMACアドレスを設定する
    ことを前記計算機に実行させることを特徴とする請求項6に記載のハイパバイザー。
  8. 前記ダミーMACアドレスは、いずれかの前記仮想計算機を起動する前までに、すべての前記仮想通信ポートに対して設定される
    ことを特徴とする請求項7に記載のハイパバイザー。
  9. 全ての前記ダミーMACアドレスは、共通なアドレスである
    ことを特徴とする請求項8に記載のハイパバイザー。
  10. 前記ネットワークデバイスの前記仮想通信ポート中の割り当てられていない仮想通信ポートを、前記仮想計算機に割当てる
    ことを前記計算機に実行させることを特徴とする請求項6乃至9のうちのいずれか1項に記載のハイパバイザー。
  11. 複数の仮想計算機を稼働可能な計算機であって、外部ネットワーク装置とネットワークを介して接続可能であり一の物理通信ポートについて前記仮想計算機に対し提供可能な仮想通信ポートを複数有するネットワークデバイスを有する前記計算機で実行されるMACアドレス管理方法であって、
    前記複数の仮想計算機のうちの第1の仮想計算機を起動する際に、前記複数の物理通信ポートのそれぞれについて前記ネットワークデバイスが提供可能な当該物理通信ポート上の複数の仮想通信ポートと当該仮想通信ポートの使用状況を対応づけるネットワークデバイス管理情報と、前記複数の仮想計算機のそれぞれについて当該仮想計算機に複数のネットワーク論理ポートと当該ネットワーク論理ポートに割り当てられたMACアドレスと対応づける仮想計算機構成情報とに基づいて、
    前記ネットワークデバイスにより提供される前記複数の仮想通信ポートのうち未使用の第1の仮想通信ポートを選択し、
    記第1の仮想計算機に提供する第1のネットワーク論理ポートに前記第1の仮想通信ポートを対応づけ、
    前記第1のネットワク論理ポートに割当てられたMACアドレスを、前記第1の仮想通信ポートに設定する
    ことを特徴とするMACアドレス管理方法。
  12. 前記第1の仮想計算機を終了する際に、前記第1の仮想計算機に割り当てていた前記第1の仮想通信ポートのMACアドレスとして、前記外部ネットワーク装置で使用されないことが保証されるMACアドレスであるダミーMACアドレスを設定する
    ことを特徴とする請求項11に記載のMACアドレス管理方法。
  13. 前記ダミーMACアドレスは、いずれかの前記仮想計算機を起動する前までに、すべての前記仮想通信ポートに対して設定される
    ことを特徴とする請求項12に記載のMACアドレス管理方法。
  14. 全ての前記ダミーMACアドレスは、共通なアドレスである
    ことを特徴とする請求項13に記載のMACアドレス管理方法。
  15. 前記ネットワークデバイスの前記仮想通信ポート中の割り当てられていない仮想通信ポートを、前記仮想計算機に割当てる
    ことを特徴とする請求項11乃至14のうちのいずれか1項に記載のMACアドレス管理方法。
JP2011269225A 2011-12-08 2011-12-08 仮想計算機システム、仮想計算機管理プログラム、及びmacアドレス管理方法 Expired - Fee Related JP5667552B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011269225A JP5667552B2 (ja) 2011-12-08 2011-12-08 仮想計算機システム、仮想計算機管理プログラム、及びmacアドレス管理方法
US13/614,567 US9131031B2 (en) 2011-12-08 2012-09-13 Virtual computer system, virtual computer management program, and MAC address management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011269225A JP5667552B2 (ja) 2011-12-08 2011-12-08 仮想計算機システム、仮想計算機管理プログラム、及びmacアドレス管理方法

Publications (2)

Publication Number Publication Date
JP2013120552A JP2013120552A (ja) 2013-06-17
JP5667552B2 true JP5667552B2 (ja) 2015-02-12

Family

ID=48571945

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011269225A Expired - Fee Related JP5667552B2 (ja) 2011-12-08 2011-12-08 仮想計算機システム、仮想計算機管理プログラム、及びmacアドレス管理方法

Country Status (2)

Country Link
US (1) US9131031B2 (ja)
JP (1) JP5667552B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9727386B2 (en) * 2012-10-12 2017-08-08 Futurewei Technologies, Inc. Method and apparatus for network resource virtual partitioning
US9628328B2 (en) * 2013-03-15 2017-04-18 Rackspace Us, Inc. Network controller with integrated resource management capability
US9634948B2 (en) * 2013-11-07 2017-04-25 International Business Machines Corporation Management of addresses in virtual machines
US9235714B1 (en) 2013-11-12 2016-01-12 Amazon Technologies, Inc. Preventing persistent storage of cryptographic information using signaling
US9231923B1 (en) 2013-11-12 2016-01-05 Amazon Technologies, Inc. Secure data destruction in a distributed environment using key protection mechanisms
US10223538B1 (en) 2013-11-12 2019-03-05 Amazon Technologies, Inc. Preventing persistent storage of cryptographic information
KR102209525B1 (ko) * 2014-01-06 2021-01-29 삼성전자주식회사 마이크로 서버, mac 주소 할당 방법 및 컴퓨터 판독가능 기록매체
WO2018092287A1 (ja) * 2016-11-18 2018-05-24 株式会社日立製作所 計算機及び計算機の再起動方法
US11481116B2 (en) * 2020-09-09 2022-10-25 Microsoft Technology Licensing, Llc Computing device with independently coherent nodes

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3655484B2 (ja) 1999-03-05 2005-06-02 株式会社日立製作所 論理区画式計算機システム
CN1957566B (zh) * 2004-05-20 2012-01-18 飞比特网络股份有限公司 为与客户机的连接选择路由的服务器
KR100654449B1 (ko) * 2005-02-01 2006-12-06 삼성전자주식회사 단일 무선 네트워크 인터페이스에서 다수의 무선 링크를통해 데이터를 송수신하는 장치 및 방법
US7697536B2 (en) * 2005-04-01 2010-04-13 International Business Machines Corporation Network communications for operating system partitions
JP4622835B2 (ja) 2005-12-07 2011-02-02 株式会社日立製作所 仮想計算機システム及びそのネットワーク通信方法
US7613809B2 (en) * 2006-05-30 2009-11-03 Intel Corporation Supporting ephemeral ports in a virtualized environment
JP5018252B2 (ja) 2007-06-06 2012-09-05 株式会社日立製作所 デバイス割り当て変更方法
US8321908B2 (en) * 2007-06-15 2012-11-27 Cisco Technology, Inc. Apparatus and method for applying network policy at a network device
US8386654B2 (en) 2008-03-25 2013-02-26 Hewlett-Packard Development Company, L.P. System and method for transforming PCIe SR-IOV functions to appear as legacy functions
JP5149732B2 (ja) * 2008-07-30 2013-02-20 株式会社日立製作所 仮想計算機システム
JP5222651B2 (ja) 2008-07-30 2013-06-26 株式会社日立製作所 仮想計算機システムおよび仮想計算機システムの制御方法
JP5282046B2 (ja) * 2010-01-05 2013-09-04 株式会社日立製作所 計算機システム及びその可用化方法
US8645509B2 (en) * 2010-10-12 2014-02-04 Guest Tek Interactive Entertainment Ltd. System and server for assigning location-dependent hostname to client device over network and method thereof

Also Published As

Publication number Publication date
US9131031B2 (en) 2015-09-08
JP2013120552A (ja) 2013-06-17
US20130148669A1 (en) 2013-06-13

Similar Documents

Publication Publication Date Title
JP5667552B2 (ja) 仮想計算機システム、仮想計算機管理プログラム、及びmacアドレス管理方法
US20200278880A1 (en) Method, apparatus, and system for accessing storage device
TWI752066B (zh) 讀寫請求處理方法及裝置
US8359415B2 (en) Multi-root I/O virtualization using separate management facilities of multiple logical partitions
US8301806B2 (en) Configuring an input/output adapter
US10333865B2 (en) Transformation of peripheral component interconnect express compliant virtual devices in a network environment
US9798565B2 (en) Data processing system and method having an operating system that communicates with an accelerator independently of a hypervisor
JP6089349B2 (ja) マルチコアアーキテクチャでのリソース分離を支援するための方法およびシステム
US9218195B2 (en) Vendor-independent resource configuration interface for self-virtualizing input/output device
JP5305848B2 (ja) データ処理システム内で入出力(i/o)仮想化を管理するための方法およびデータ処理システムならびにコンピュータ・プログラム
US9081612B2 (en) Virtual machine control method and virtual machine
JP5149732B2 (ja) 仮想計算機システム
EP3457288A1 (en) Computer system and storage access device
US9875208B2 (en) Method to use PCIe device resources by using unmodified PCIe device drivers on CPUs in a PCIe fabric with commodity PCI switches
US9531668B2 (en) Micro server, method of allocating MAC address, and computer readable recording medium
US9697024B2 (en) Interrupt management method, and computer implementing the interrupt management method
US8386679B2 (en) Dynamic allocation of a direct memory address window
US8527666B2 (en) Accessing a configuration space of a virtual function
JP2016508647A5 (ja)
US9639486B2 (en) Method of controlling virtualization software on a multicore processor
US20220206969A1 (en) Data forwarding chip and server
US20210042045A1 (en) Storage system and resource allocation control method
CN107766122B (zh) 一种宿主机的可用内存空间设置方法和装置
US9110731B1 (en) Hard allocation of resources partitioning
JP5994690B2 (ja) 情報処理装置、プログラムおよび記憶領域獲得方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141010

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141117

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141212

R150 Certificate of patent or registration of utility model

Ref document number: 5667552

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees