実際にOVSではどのように見えるのか、
今回は物理CPU2つあるOVSで、2VCPUのVMの様子を見てみます。
環境は、Oracle VM Server 2.x です。
OVS 2.2.1 のDom0 にログインしています。
OVS 2.2.1 のDom0 にログインしています。
[root@ovs1 ~]# cat /etc/ovs-release
Oracle VM server release 2.2.1
Dom0内でコマンド(xm list)を実行してみるとVMの情報が表示されます。
ためしに、「Domain-0」と「169_OEL48_cdev1」というドメイン(VM)
に対して xm コマンドを実行してみると、VCPUs 列には、「2」と表示されています。
※「169_OEL48_cdev1」というVMはあらかじめ起動済みです。
[root@ovs1 ~]# xm list Domain-0 169_OEL48_cdev1
Name ID Mem VCPUs State Time(s)
Domain-0 0 512 2 r----- 472675.4
169_OEL48_cdev1 223 128 2 -b---- 10.8
たとえVMを1つしか起動していないとしても、
OVS(Xen)では、必ずDom0も起動していることになるので
2VCPUのVMと一緒に、Dom0 の様子も見ています。
この環境では、Dom0にも、VCPUを2つ割り当てています。
※本当は、Dom0と「169_OEL48_cdev1」というVM 以外のVMも動いていますが、
わかりにくくなるのであえて非表示にしています。
まず、現在の物理CPUの割り当て状態を見てみます。
このコマンド(xm vcpu-list)では、VCPUごとに1行表示されます。
2つのVMに、それぞれ2VCPU割り当てているため4行表示されています。
[root@ovs1 ~]# xm vcpu-list Domain-0 169_OEL48_cdev1
Name ID VCPU CPU State Time(s) CPU AffinityDomain-0 0 0 0 r-- 278912.1 any cpuDomain-0 0 1 0 -b- 193755.4 any cpu169_OEL48_cdev1 223 0 0 -b- 1.7 any cpu169_OEL48_cdev1 223 1 1 r-- 0.5 any cpu
このときの状況を、図にすると下の「状況1」のようになります。
VCPUとCPU(物理CPU)の列を見ることで、
VMの仮想CPUが、どの物理CPUを使用しているか見ることができます。
「CPU Affinity」(CPU割り当て)の列が「any cpu」なので、
すべての物理CPUが、VCPUに対して割り当てられるようになっています。
Stateの意味は下記です。
「CPU Affinity」(CPU割り当て)の列が「any cpu」なので、
すべての物理CPUが、VCPUに対して割り当てられるようになっています。
Stateの意味は下記です。
- r (running)
→CPUが割り当てられてる状態です。 - b (blocked)
→CPUがブロック状態です。(IOを待っていたりして)
もう一度、CPUの割り当て状態を確認してみます。
そうすると、各VCPUの物理CPU割り当てが変化しています。
[root@ovs1 ~]# xm vcpu-list Domain-0 169_OEL48_cdev1
Name ID VCPU CPU State Time(s) CPU AffinityDomain-0 0 0 0 -b- 278919.9 any cpuDomain-0 0 1 1 r-- 193763.4 any cpu169_OEL48_cdev1 223 0 1 -b- 6.9 any cpu169_OEL48_cdev1 223 1 0 r-- 4.1 any cpu
この表示結果のときの状況を図にすると、下の「状況2」のようになります。
このようにVCPUと物理CPUが割り当てられていて、
絶えず状態が変化しています。
以上、OVSでのCPU割り当ての見え方でした。
0 件のコメント:
コメントを投稿