Skip to main content

Fujitsu

Japan

まっちーの仮想化講座
第2回:制御ドメインの設定

2011年8月16日


 

前回、サーバの準備やOracle VM Server for SPARC Softwareのインストールなどを行いましたので、今回は制御ドメインを設定してみたいと思います。
ゲストドメインを構築するには、制御ドメインの設定をしておく必要があります。

それでは制御ドメインの設定をする前に前回のおさらいになりますが、現在のドメインの状態を確認しておきましょう。

SPARC Enterprise T5120# ldm list-domain
NAME             STATE      FLAGS   CONS  VCPU  MEMORY  UTIL  UPTIME
primary          active     -n-c--  SP    32    8064M   0.1%  1d 4h 33m

今回用意したサーバ SPARC Enterprise T5120にはCPUが4コア、メモリが8GB搭載されています。
SPARC Enterprise T5120が搭載するCPU:UltraSPARC T2は1つのコアで8つのスレッドを実行することができます。よって、4コア×8スレッド=32スレッド実行することができます。
Oracle Solaris からは一つのスレッドが一つのCPUとして認識されますので、本構成では32CPUが動作していると認識されます。

SPARC Enterprise T5120# psrinfo -vp
物理プロセッサは 32 個の仮想 プロセッサ を持ちます (0-31)
UltraSPARC-T2 (chipid 0, clock 1165 MHz)
SPARC Enterprise T5120# prtconf | head
System Configuration: Sun Microsystems sun4v
Memory size: 8064 Megabytes
System Peripherals (Software Nodes):

SUNW,SPARC-Enterprise-T5120
scsi_vhci, instance #0
packages (driver not attached)
SUNW,builtin-drivers (driver not attached)
deblocker (driver not attached)
disk-label (driver not attached)

Oracle VM Server for SPARCではデフォルトですべてのリソースが制御ドメインにバインドされています。また、制御ドメインとゲストドメインでCPUやメモリリソースの共用はできませんので、ゲストドメイン用のリソースを予め確保しておく必要があります。

では、制御ドメインのCPUの設定をしたいと思います。ここでは制御ドメインに8CPU(8スレッド)割り当てます。

SPARC Enterprise T5120# ldm set-vcpu 8 primary
Removing 24 CPU(s) would leave orphaned crypto unit(s).
Remove one or more crypto units and retry the operation.
Resource modification failed

何やら怒られました。
実はUltraSPARC T2には1つのCPUコアに1つの暗号化ユニット(crypto unit)(注)が実装されており、それもOracle VM Server for SPARCで管理するリソースの一つになります。
物理実装イメージは以下の図になります。

この暗号化ユニットがバインドされていると、CPUの動的な移動ができないのでこのようなメッセージが表示されました。なので、制御ドメインから暗号化ユニットを外してからCPUの設定をします。

なお、Oracle VM Server for SPARC 2.1 から暗号化ユニットと仮想CPUが一緒に移動できるようになりました。Oracle VM Server for SPARC 2.1 については、別の機会でご紹介したいと思います。

SPARC Enterprise T5120# ldm set-mau 0 primary
SPARC Enterprise T5120# ldm set-vcpu 8 primary
SPARC Enterprise T5120# ldm list-domain

NAME             STATE      FLAGS   CONS  VCPU  MEMORY  UTIL  UPTIME
primary          active     -n-c--  SP     8     8064M   0.2%  1d 4h 54m

今度はうまくできたようです。
ldm set-mauが暗号化ユニットの数を設定するコマンドです。制御ドメイン(primary)の暗号化ユニットを0に設定することで、制御ドメインから外すことができます。
ldm set-vcpuで設定するCPUの数を指定します。今回は8CPU(1コア)を制御ドメイン用として割り当てることにします。
これらの流れの論理的なイメージは以下の図になります。

次にメモリです。4GBのメモリを制御ドメインに割り当ててみましょう。

SPARC Enterprise T5120# ldm set-memory 4g primary
A ldm set-mem 4g command would remove 3968MB, which is not a
multiple of 256MB. Instead, run ldm set-mem 4224M primary
to ensure a 256MB alignment.

また怒られました。
実はOracle VM Server for SPARC 2.0からメモリの 動的移動 ができるようになったのですが、移動するメモリサイズは256MBの倍数にする必要があります。
制御ドメインには8,064MBのメモリが割り当てられていましたので、ここでは4GB(=4,096MB)に設定変更すると、3,968MBのメモリを移動することになります。しかし、3,968MBは256MBでは割り切れないので、「256MBの倍数にしてください」というメッセージが表示されます。

SPARC Enterprise T5120# ldm set-memory 3968m primary
SPARC Enterprise T5120# ldm list-domain

NAME             STATE      FLAGS   CONS  VCPU  MEMORY  UTIL  UPTIME
primary          active     -n-c--  SP    8     3968M   0.3%  1d 5h 44m

今度は制御ドメインのメモリサイズを3,968MBに設定して、4,096MBメモリを移動するようにしましたのでうまく実行できました。
ちなみに、計算が苦手な方のために自動でメモリサイズを256MB単位に切り上げてくれるオプションがありますので、こちらも試してみてください。

SPARC Enterprise T5120# ldm set-memory --auto-adj4g primary
Adjusting requested size to 4224M.
The primary domain has been allocated 128M more memory
than requested because of memory alignment constraints.

CPUとメモリの設定ができましたので、反映されているか確認してみましょう。

SPARC Enterprise T5120# psrinfo -vp
物理プロセッサは 8 個の仮想 プロセッサ を持ちます (0-7)
UltraSPARC-T2 (chipid 0, clock 1165 MHz)
SPARC Enterprise T5120# prtconf | head
System Configuration: Sun Microsystems sun4v
Memory size: 3968 Megabytes
System Peripherals (Software Nodes):
SUNW,SPARC-Enterprise-T5120
scsi_vhci, instance #0
packages (driver not attached)
SUNW,builtin-drivers (driver not attached)
deblocker (driver not attached)
disk-label (driver not attached)

ちゃんと設定したCPUとメモリになっていますね。
このようにOSが稼働した状態でCPU、メモリの移動ができるのが、Oracle VM Server for SPARCの特長の一つです。

次に仮想サービスの設定を行います。
ゲストドメインには通常、仮想I/O(ディスク、ネットワーク)を割り当てます。この仮想I/Oを割り当てるには、制御ドメインに仮想サービスを設定する必要があります。
必要となる仮想サービスは以下の三種類です。

  • 仮想ディスクサービス:VDS
  • 仮想ネットワークサービス(仮想スイッチ):VSW
  • 仮想コンソールサービス:VCC

SPARC Enterprise T5120# ldm add-vdiskserver primary-vds0 primary
SPARC Enterprise T5120# ldm add-vswitch net-dev=e1000g1 primary-vsw0 primary
SPARC Enterprise T5120# ldm add-vconscon port-range=5000-5100 primary-vcc0 primary

primary-vds0,primary-vsw0,primary-vcc0は各仮想サービスの名前です。任意の名前を設定することができますので、管理のしやすい名前を設定してください。

仮想スイッチサービスの"net-dev=e1000g1"は、primary-vsw0に割り当てる物理NICの指定です。この物理NICを介して外部と通信することになります。
サーバの物理NICは以下のコマンドで確認することができます。

SPARC Enterprise T5120# dladm show-link
e1000g0         タイプ: 非 vlan mtu: 1500        デバイス: e1000g0
e1000g1         タイプ: 非 vlan mtu: 1500        デバイス: e1000g1
e1000g2         タイプ: 非 vlan mtu: 1500        デバイス: e1000g2
e1000g3         タイプ: 非 vlan mtu: 1500        デバイス: e1000g3

仮想コンソールサービスの"port-range=5000-5100"はゲストドメインのコンソール接続時に使用するポートの範囲を設定します。他のサービスで使用されていないポートを指定してください。
では、作成した仮想サービスを確認しましょう。

SPARC Enterprise T5120# ldm list-services
VCC
NAME            LDOM      PORT-RANGE
primary-vcc0    primary   5000-5100

VSW
NAME            LDOM      MAC                NET-DEV     ID    DEVICE     LINKPROP DEFAULT-VLAN-ID PVID VID        MTU      MODE
primary-vsw0    primary   00:14:4f:fa:aa:a0  e1000g1     0     switch@0            1               1               1500

VDS
NAME            LDOM      VOLUME    OPTIONS    MPGROUP    DEVICE
primary-vds0    primary

これで制御ドメインの設定は終わりですが、最後に大事な手順があります。それはこれまで作成した構成情報をILOMに保存しておくことです。
制御ドメインの構成情報をILOMに保存すると、OS起動時 に はILOMに保存された構成情報を読み込んで起動します。もし構成情報を保存しないでサーバの電源を切断すると、次回起動時にはこれまで設定した内容がきれいさっぱりなくなります 。 制御ドメインの設定を変更したら、必ず構成情報を保存するようにしてください。
(注)OS上のファイルにも保存されるのですが、それはまた別の機会にご説明します。

SPARC Enterprise T5120# ldm list-config
factory-default [next poweron]
SPARC Enterprise T5120# ldm add-config config01
SPARC Enterprise T5120# ldm list-config

factory-default
config01 [current]

ここでは"config01"という名前で保存しました。"factory-default"はその名の通り工場出荷時のデフォルトの構成です。保存したconfig01が現在の構成[current]であることを確認してください。

ついでに今後必要となるデーモンを一つ起動しておきます。

SPARC Enterprise T5120# svcs vntsd
STATE          STIME    FMRI
disabled       18:32:20 svc:/ldoms/vntsd:default
SPARC Enterprise T5120# svcadm enable vntsd
SPARC Enterprise T5120# svcs vntsd

STATE          STIME    FMRI
online        18:47:50 svc:/ldoms/vntsd:default

vntsd(Virtual Network Terminal Server Damon)はゲストドメインにコンソール接続する際に必要となるデーモンです。このデーモンを起動しておかないと、ゲストドメインのコンソールに接続できませんので、ゲストドメインにコンソール接続する前までに必ず起動しておきましょう。
ちなみに、vntsdは仮想コンソールサービスを作成する前には有効にできません。エラーになります。仮想コンソールサービスを作成してから有効にするようにして下さい。

これで制御ドメインの設定は完了です。ちょっと難しかったでしょうか。
見るだけだと難しく感じるかも知れませんが、慣れるとスラスラできるようになります。ぜひやってみてください。

次回はゲストドメインを構築したいと思います。

注:SPARC T3-1/T3-2/T3-4で暗号化ユニットをサポート(2011年8月16日現在)


応援メッセージはtwitterにて、ハッシュタグ #fjsparcOpen a new window までお願いします。