2020年3月23日月曜日

Oracle VM Server for SPARC .... (5)

次回までで制御ドメインが完成したので、今回はゲストドメインの作成を行います。

ゲストドメイン作成の手順は、以下になります。

1. ドメインという器を作る
2. ドメインに各種リソースをアサインする
3. ドメインにOSをインストールする.

そして、3 については、OS を DVD image から初期インストールする方法と、既存サーバにインストールされているOSを p2v ツールで引っ越してくる方法の2つがあります。
今回は、初期インストールでの設定を行います。

まず、作成するドメインの名称やリソースを以下の様に決定します。

Domain名: guest01
仮想 cpu: 8 個
メモリ: 4GB
Crypto: 0
Network: vnet0
Disk:  vdisk0(20GB)
DVD:  iso_disk0
OS: Solaris10  8/11
OBP Parameter: 
 - auto-boot\?=false
 - boot-device=disk1

まず、guest01 という名称のゲストドメインの器を作ります。

primary# ldm add-domain guest01

ゲストドメインに仮想cpuを8個アサインします。

primary# ldm add-vcpu 8 guest01

ゲストドメインに仮想メモリを 4GB アサインします。

primary# ldm add-memory 4g guest01

ゲストドメインに仮想 network インターフェースをアサインします。 このとき、ゲストドメインは、制御ドメインで作成した仮想 switch に接続します。

primary# ldm add-vnet vnet0 primary-vsw0 guest01

ゲストドメインに仮想 disk をアサインします。 先回作成した ZFS pool の ldompool 上に 20GB のデバイスを作り、それを仮想 disk にします。
 
primary# zfs create -p –V 20g  ldompool/guest01/disk1
primary# zfs list
NAME                     USED  AVAIL  REFER  MOUNTPOINT
ldompool                20.6G   113G    32K  /ldompool
ldompool/guest01        20.6G   113G    31K  /ldompool/guest01
ldompool/guest01/disk1  20.6G   134G    16K  -
primary#
primary# ldm add-vdsdev /dev/zvol/dsk/ldompool/guest01/disk1  guest01_vdisk@primary-vds0
primary# ldm add-vdisk vdisk0 guest01_vdisk@primary-vds0  guest01

上記の結果、各種リソースは、下記の様に設定されました。

primary# ldm list-bindings guest01
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
guest01          inactive   ------          8     4G
UUID
    ce8d5093-6992-ca9b-dd62-eadf70ebc06e
CONTROL
    failure-policy=ignore
    extended-mapin-space=off
DEPENDENCY
    master=
NETWORK
    NAME             SERVICE                     ID   DEVICE     MAC               MODE   PVID VID                  MTU   LINKPROP
    vnet0            primary-vsw0                0               00:14:4f:f8:3f:57        1
DISK
    NAME             VOLUME                      TOUT ID   DEVICE  SERVER         MPGROUP
    vdisk0           guest01_vdisk@primary-vds0       0                         
primary#

続いて boot のパラメタを設定します。 これは、SPARC サーバでは、OBP に設定する項目です。 ここでは、auto-boot と boot-device だけを設定します。

primary# ldm set-variable  auto-boot\?=false  guest01
primary# ldm set-variable  boot-device=vdisk0  guest01

今回 OS image から OS の install を行うため、制御ドメイン上に copy してきた DVD の OS image(ISOファイル)を read-only の仮想 disk として作成し、ゲストドメインからアクセスできるようにします。


primary# ldm add-vdsdev  options=ro  /export/media/s10u10-dvd.iso  iso_sol10_dvd@primary-vds0
primary# ldm add-vdisk iso_disk0 iso_sol10_dvd@primary-vds0  guest01

以下の様に iso_disk0 という名前で DVD にアクセスできます。

primary# 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   INTER-VNET-LINK
    primary-vsw0     primary          00:14:4f:f8:fc:bb nxge1     0    switch@0              1               1                         1500         on
VDS
    NAME             LDOM             VOLUME         OPTIONS          MPGROUP        DEVICE
    primary-vds0     primary          guest01_vdisk                                  /dev/zvol/dsk/ldompool/guest01/disk1
                                      iso_s10_dvd    ro                              /export/media/s10u10-dvd.iso
primary#
primary# ldm list -o disk guest01
NAME
guest01

DISK
    NAME             VOLUME                      TOUT ID   DEVICE  SERVER         MPGROUP
    vdisk0           guest01_vdisk@primary-vds0       0    disk@0  primary
    iso_disk0        iso_s10_dvd@primary-vds0         1    disk@1  primary

primary#

DVD イメージから OS install する為に、ゲストドメインを起動します。
ゲストドメインのコンソールは、telnet でアクセスします。

primary# ldm bind-domain guest01
primary# ldm start-domain guest01
primary# ldm list guest01
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
guest01          active     -t----  5000    8     4G        12%  12s
primary#
primary# telnet localhost 5000

なお、telnet から抜けて、primary の端末に戻る場合は、Ctrl+] をタイプします。

コンソールアクセスすると SPARC でおなじみの OBP の ok プロンプトが表示されます。
そこで、 devalias とタイプすると、先に設定した仮想 disk や、DVD image disk 、および network デバイスが設定されていることを確認できます。
ここからは、通常の DVD からの OS install 手順に従って、デバイス名の iso_disk0 から boot すると Solaris10 の install 画面が表示されます。

primary# telnet localhost 5000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Connecting to console "guest01" in group "guest01" ....
Press ~? for control options ..

{0} ok banner

T5440, No Keyboard
Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
OpenBoot 4.33.4, 4096 MB memory available, Serial #83367955.
Ethernet address 0:14:4f:f8:18:13, Host ID: 84f81813.
{0} ok
{0} ok devalias
iso_disk0                /virtual-devices@100/channel-devices@200/disk@1
vdisk0                   /virtual-devices@100/channel-devices@200/disk@0
vnet0                    /virtual-devices@100/channel-devices@200/network@0
net                      /virtual-devices@100/channel-devices@200/network@0
disk                     /virtual-devices@100/channel-devices@200/disk@0
virtual-console          /virtual-devices/console@1
name                     aliases
{0} ok
{0} ok boot iso_disk0
Boot device: /virtual-devices@100/channel-devices@200/disk@1  File and args:
SunOS Release 5.10 Version Generic_147440-01 64-bit
Copyright (c) 1983, 2011, Oracle and/or its affiliates. All rights reserved.
Configuring devices.
……

OS install 終了後は、OS disk である vdisk0 から boot します。
OS 起動後の設定情報を確認すると、cpu が 8 個、メモリが 4GB、network が vnet0 で正しく設定されていることが確認できます。

primary# telnet localhost 5000
…..
{0} ok
{0} ok boot vdisk0
Boot device: /virtual-devices@100/channel-devices@200/disk@0  File and args:
SunOS Release 5.10 Version Generic_147440-01 64-bit
Copyright (c) 1983, 2011, Oracle and/or its affiliates. All rights reserved.
Hostname: guest01
guest01 console login: root
Password:
Feb 24 14:00:25 guest01 login: ROOT LOGIN /dev/console
Last login: Fri Feb 24 13:42:50 on console
Oracle Corporation      SunOS 5.10      Generic Patch   January 2005
# csh
guest01#
guest01# /usr/platform/sun4v/sbin/prtdiag -v
System Configuration:  Oracle Corporation  sun4v T5440
Memory size: 4096 Megabytes
================================ Virtual CPUs ================
CPU ID Frequency Implementation         Status
------ --------- ---------------------- -------
0      1414 MHz  SUNW,UltraSPARC-T2+    on-line
1      1414 MHz  SUNW,UltraSPARC-T2+    on-line
2      1414 MHz  SUNW,UltraSPARC-T2+    on-line
3      1414 MHz  SUNW,UltraSPARC-T2+    on-line
4      1414 MHz  SUNW,UltraSPARC-T2+    on-line
5      1414 MHz  SUNW,UltraSPARC-T2+    on-line
6      1414 MHz  SUNW,UltraSPARC-T2+    on-line
7      1414 MHz  SUNW,UltraSPARC-T2+    on-line
================================ IO Devices ==================
Slot +            Bus   Name +                            Model
Status            Type  Path
----------------------------------------------------------------------------
guest01# cat /etc/release
                   Oracle Solaris 10 8/11 s10s_u10wos_17b SPARC
  Copyright (c) 1983, 2011, Oracle and/or its affiliates. All rights reserved.
                            Assembled 23 August 2011
guest01# dladm show-dev
vnet0           link: up        speed: 0     Mbps       duplex: unknown
guest01# ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
vnet0: flags=1000843 mtu 1500 index 2
        inet 10.188.189.154 netmask fffffc00 broadcast 10.188.191.255
        ether 0:14:4f:f8:3f:57
guest01# df -h -F ufs
Filesystem             size   used  avail capacity  Mounted on
/dev/dsk/c0d0s0         17G   4.6G    13G    28%    /
/dev/dsk/c0d0s7        337M   1.0M   302M     1%    /export
guest01#


これで、ゲストドメインの新規作成作業は、終了です。

次回は、作成済みのゲストドメインに対するリソースの割り当て方法について紹介していきたいと思います。

以上


2012年4月23日月曜日

Oracle VM Server for SPARC .... (4)

今回は、制御ドメインの設定を行っていきます。

先回の時点で制御ドメインの器が出来ました。
今回は、その器に各種のリソースを設定して行きます。

まず、制御ドメインに仮想 switch を作ります。
network の物理ポート nxge1 に仮想 switch(vsw0) を割り当てます。

primary# ldm add-vsw  net-dev=nxge1  primary-vsw0  primary

次に、仮想 console を作成します。
各ゲストドメインの console を取得するために仮想ターミナルコンセントレータ(primary-vcc0)を作ります。

primary# ldm add-vcc  port-range=5000-5100  primary-vcc0  primary
primary# svcadm enable  vntsd

続いて仮想 disk サーバを作成します。
このサーバに対して、各ゲストドメインの仮想 disk をアサインしていきます。

primary# ldm add-vds  primary-vds0  primary

次に、制御ドメインに適切なメモリや仮想 cpu をアサインして、残りをゲストドメインが使えるようにします。 ただし、現時点でサーバに搭載された全メモリが制御ドメインにアサインされているため、これを小さくするには時間がかなりかかかるので、遅延構成で設定し reboot 後に適用されるようにします。

primary# ldm start-reconf  primary

仮想cpuを8個アサインします。

primary# ldm set-vcpu 8 primary

仮想メモリを 4GB アサインします。

primary# ldm set-memory 4g primary

暗号化モジュールを1個アサインします。
なお、SPARC T4 の場合、暗号化モジュールは cpu に取り込まれているので個別のアサインはできません。

primary# ldm set-crypto 1 primary

ここまでの設定内容を SP(Service Processor)に保存し、制御ドメインを reboot します。
なお、この処理を行わないと、サーバの電源を切ると同時に設定内容が消えてデフォルト状態に戻ってしまいます。

primary# ldm add-confing initial
primary# shutdown -y -g0 -i6  

reboot 後の設定状況は以下の様になります。

primary# ldm list  primary
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      8     4G       2.4%  4m
primary#
primary# ldm list-services  primary
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   INTER-VNET-LINK
    primary-vsw0     primary          00:14:4f:f8:fc:bb nxge1     0    switch@0              1               1                         1500         on
VDS
    NAME             LDOM             VOLUME         OPTIONS          MPGROUP        DEVICE
    primary-vds0     primary
primary#

これで制御ドメインの完成です。

ところで、各ゲストOSを install する仮想ディスクの作成ですが、ファイルシステムとしては UFS と ZFS の上に作れるようになっています。
今回は、仮想ディスクの作成や複製が容易な ZFS をベースにしてみます。

まず、今回のサーバの内蔵 Disk は、以下の様に 4 つ搭載されているので、容量重視のストライプ設定で 3 本のストレージからストレージプールを作成します。
primary#  zpool create ldompool  /dev/dsk/c0t1d0 /dev/dsk/c0t2d0 /dev/dsk/c0t3d0

以降、ZFS の ldompool の中にゲストOSを作っていきます。

次回は、ゲストドメインを作成します。

以上

2012年4月3日火曜日

Oracle VM Server for SPARC .... (3)

今回は、制御ドメインの作成手順について説明します。

先回ご説明したように制御ドメインは、サーバに Solaris を install した後、ldom のソフトウェアを
入れることで作成できます。
今回は、T5440 を使い、以下の様な環境を構築します。




以下が構築手順のサマリーです。

  1. Solaris10 8/11 + Recommended Patch の install
  2. T Server への firmware Patch の install
  3. /export/media に OVM server for SPARC2.1 のパッケージを保存
  4. OVM server for SPARC2.1 パッケージの install
  5. OVM server for SPARC2.1 日本語 man page の install
  6. /export/mediaに Solaris10 8/11 の iso イメージを保存(ゲストOS作成時に使用)

それぞれ個別に見ていきましょう。


1. Solaris10 8/11 + Recommended Patch の install
制御ドメインは、primary というホスト名で作成し、今回は Solaris10 の最新版である
8/11 を install します。
Recommended Patch は、最新の patch cluster をあてます。


2. T Server への firmware Patch の install
OVM server for SPARC2.1 を入れるうえで必須の firmware は、7.3 以上なのでこれを
適用します。
primary# prtdiag |grep System
System Configuration:  Oracle Corporation  sun4v T5440
primary#
primary# cat /etc/release
                   Oracle Solaris 10 8/11 s10s_u10wos_17b SPARC
  Copyright (c) 1983, 2011, Oracle and/or its affiliates. All rights reserved.
                            Assembled 23 August 2011
primary#
primary# prtdiag -v |grep Firm
 Sun System Firmware 7.4.2 2011/11/19 09:17
primary#


3. /export/media に OVM server for SPARC2.1 のパッケージを保存
oracle の download site からソフトウェアパッケージを入手します。

4. OVM server for SPARC2.1 パッケージの install
パッケージには、インストーラ (install-ldm) が添付されているため、それを実行します。
primary# ./install-ldm
Welcome to the Oracle VM Server for SPARC installer. #
…
Select an option for configuration:
y) Yes, launch the Configuration Assistant after install
n) No thanks, I will configure the system manually later
Enter y or n [y]: n     <<---- ここは N を選択
Verifying that all packages are fully installed.  OK.
primary#
上記の選択肢で出てくる Configuration Assistant というのは、ドメインをひな型で作ってくれる
簡易ツールです。  ウィザード的にドメインを作ってくれるので便利すが、裏で何が行われて
いるのかよくわからないので、今回は手動で作ってみます。

5. OVM server for SPARC2.1 日本語 man page の install
日本語の man page は、インストーラでは入らないので、別途 pkgadd します。
primary# cd Japanese
primary# pkgadd -d `pwd`

The following packages are available:
  1  SUNWjldm.v      LDoms Manager Japanese man page
                     (sparc.sun4v) 2.1,REV=2011.08.11.15.00
  2  SUNWjldmp2v     LDoms P2V tool Japanese man page
                     (sparc.sun4v) 2.1,REV=2011.08.11.15.00

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all  <<---- ここは all を選択

6. /export/mediaに Solaris10 8/11 の iso イメージを保存(ゲストOS作成時に使用)
oracle の download site からソフトウェアパッケージを入手します。

これで、制御ドメインが出来ました。
制御ドメインでの各種設定作業は、先の OVM server for SPARC2.1 に含まれている
ldm コマンドで行います。
ソフトウェアを install した直後の状態は、以下の様になります。
primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-c--  SP      256   130784M  0.1%  7m
primary# 

上記の結果から、primary という名前の制御ドメインが出来ていて、状況は active で
256個の仮想 cpu、128GB の memory がアサインされている事がわかります。
ちなみに vcpu は、8core x 8thread x4socket =256 個です。

ここまでで、制御ドメインという器が出来たので、次回は制御ドメインの詳細設定を行います。

以上

2012年3月30日金曜日

Oracle VM Server for SPARC .... (2)

次は、ldom の基本構成について説明します。

ldom は、ハイパーバイザー型の仮想化技術で、以下の図の様にゲストドメインの
管理を行うための制御ドメインというものが必要になります。
制御ドメインの実態は、SolarisOS + ldom ソフトウェアです。
つまり、T Server に通常の手順で SolarisOS を install し、その後に OVM for SPARC の
ソフトウェアを追加 install することで制御ドメインが出来上がります。



次に、ハイパーバイザーの動作で、ハードウェアリソースに対するアクセス方法を見ていきます。
まず、cpu と memory には、各ゲストドメインから直接アクセスできます。 一方、Disk, Network 等
の IO は、制御ドメインを通じて物理的な NIC と HDD にアクセスします。
この絵を見るとゲストドメインが増えると制御ドメインへの IO が集中し、性能劣化が発生する
のでは?という疑問がわいてくるかと思います。  そこで、ldom では、この問題を解消するために
DirectIO(以下 DIO)という機能が用意されていて、ゲストドメインから直接 IO にアクセス
できるような設定も可能です。
また、各ゲストドメインのコンソールへのアクセスには、仮想コンソール(VCC)を使い
制御ドメインからのみコンソールログインが出来るようになっています。

では、ここから、実機を使って制御ドメインの構築を行っていきたいと思います。
今回使用する機材は、T2plus の cpu を 4 つ搭載した T5440 です。

 


機材の次は、環境構築に必要なソフトウェアを確認します。
なお、制御ドメインには、 Solaris10 か Solaris11 を選択できますが、今回は Solaris10 8/11 を
入れることにします。

事前に準備するものは、以下になります。
 

ちなみに、Solaris 10 8/11 の isoイメージは、ゲストドメインに OS を install 際に使用します。
ゲストドメインの作り方は、一般的な OS の install から行う方法と、既存の Solaris 環境を
p2v ツールを使って移行する方法の 2 通りがあります。
この 2 通りの方法についても、後で紹介していきます。

次回は、制御ドメインの作成について説明していきます。

以上.