Oracle VMの世界

Oracle VMの世界(4)

Oracle VMにおけるハードウェアリソース管理


日本オラクル株式会社
中嶋 一樹
2009/5/20

Oracle VMとは、オラクルが提供している無償のサーバ仮想化ソフトウェアである。Xenをベースとしているが、さまざまな機能追加や使いやすさの改善が行われている。本連載では、Oracle VMの製品コンセプトから機能、利用シーンまでを解説する

連載:Oracle VMの世界 INDEX

- PR -

 今回は、Oracle VMにおけるハードウェアリソース管理についてお話ししたいと思います。Oracle VMでは大きく分けて以下のハードウェアリソースをゲストOSに割り当て、その容量や個数、しきい値などを設定することができます。

  • CPU
  • メモリ
  • ネットワーク
  • ディスク

それぞれについて、どのような設定ができるのか、またその手順を解説してきます。なお、対象のOracle VMのバージョンは執筆時点(2009年4月)で最新の2.1.2です。

 CPU

■仮想CPU割り当て

 まず、仮想CPUの割り当てについてです。ゲストOSには、サーバが搭載している物理CPU数またはコア数とはまったく関係なく仮想CPUを割り当てることが可能です。

 例えば、合計4物理CPUコアを持っている物理サーバをVM Serverにしているケースを考えてみましょう。このサーバは4物理CPUコアを持っているわけですが、ゲストOSに割り当てる仮想CPUはこの物理CPU数には依存せず、自由に割り当てることができます。例えば、1ゲストOSあたり1仮想CPUを割り当て、このゲストOSを合計8つ稼働させることもできます。また、1ゲストOSに8仮想CPUを割り当てることもできます。

*ただし、このように物理CPUコア以上の仮想CPUを割り当てても、当然実際に使用できるCPUは4つまでなので、性能向上にはつながりません。逆に性能劣化する傾向にありますので、1ゲストOSに割り当てる仮想CPUは物理CPUコア数以下にします。

 このようにゲストOSへの仮想CPU割り当ては、物理CPU数にまったく左右されずに行うことができます。ただし1ゲストOSあたりに割り当て可能な仮想CPU数は32となっています。この仮想CPUの割り当て設定はVM Manager上から行うことができます。

図1 VM ManagerでのVCPU設定。ここでは仮想CPUを4つ割り当てている

 この設定は仮想マシンが稼働中、停止中ともに行うことができます。ただし、起動時の仮想CPU数を超える数への変更は行うことができません。

■しきい値設定

 ゲストOSが使用可能なCPU使用率を制限することができます。この値はゲストOSが使用可能なCPU時間の上限値を定めます。たとえハードウェア的に余裕があったとしても、ゲストOSのCPU使用率は、決してこの上限値を超えることはありません。しきい値設定は、現在のところVM Managerから行うことはできません。xmコマンドというCLIを使用します。

# xm sched-credit -d ドメイン名 -c しきい値

 ドメイン名は以下のように調べることができます。

# xm list

 また、肝心のしきい値は100 x 仮想CPU数を上限値として設定できます。

1仮想CPUの場合 = 0 ~ 100
4仮想CPUの場合 = 0 ~ 400

 ちなみに0は制限なしを意味します。

■優先度設定

 先ほどのしきい値設定とは異なり、この値はハードウェア的にCPUが混雑してきた場合に、ゲストOSがどれだけ優先的にCPUを使用できるかを設定するものです。つまり、もし優先度を最低に設定していたとしても、ハードウェア的に余裕があればゲストOSはCPUを際限なく使用することができます。 この優先度設定も、現在のところVM Managerから行うことはできません。xmコマンドを使用します。

# xm sched-credit -d ドメイン名 -w 優先度

 優先度の値は1 ~ 65535の範囲となります。

■静的割り当て設定

 デフォルトでは各VCPUが実際に使用できる物理CPUコアは静的にひも付いているわけではなく、動的に割り当てられます。各VMが使用できるCPUリソースを正確に定義したい場合、この動的割り当てではなく静的な割り当てを行いたい場合があります。このような場合、どの仮想CPUがどの物理CPUコアを使用できるかという設定を行うことができます。この設定はVM Managerからは行うことができません。xmコマンドを使用します。

# xm vcpu-pin ドメイン名 仮想CPU番号 物理CPUコア番号のリスト

 仮想CPU番号、物理CPU番号ともに、0から始まって割り当てられている数だけ存在します。例えば前述の4物理CPUコアのサーバであれば、物理CPUコア番号は0,1,2,3となります。1仮想CPUを割り当てられているゲストOSの仮想CPU番号は0のみとなります。このゲストOSの仮想CPU「0」に物理CPUコア「0」と「1」を割り当てるには、以下のようにxmコマンドを実行します。

# xm vcpu-pin ドメイン名 0 0,1

 現在のCPU割り当て状況を確認するにはxm vcpu-listコマンドを実行します。

# xm vcpu-list ドメイン名

Name ID VCPU CPU State Time(s) Affinity
db01 3 0 0 -b- 2.0 0-1 cpu
 
1/3

Index
Oracle VMにおけるハードウェアリソース管理
Page1
CPU
  Page2
メモリ
ネットワーク
  Page3
ディスク

Server & Storage フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Server & Storage 記事ランキング

本日 月間