2012年12月31日月曜日

Oracle JeOSを使ってみる(4回目)

Oracle Linux の JeOSイメージからVMを作成してみます。
今回はもう少しカスタマイズしてみます。

modifyjeos にオプションを追加してみます。
  • -S →SWAPサイズを指定
  • -P →追加ディスクを指定(テンプレートに製品を追加するために使用)
  • -dir → VM構成ファイルを出力するディレクトリを指定。
  • -selinux →SELinuxの有効化/無効化を指定。

JeOSイメージからVM作成
[root@ovs11 ~]# modifyjeos -i EL52_i386_PVM_jeos -n EL52_vm4 \
> -mem 512 -cpu 1 \
> -S 512 -T 2048 \
> -P disk_u01.img 1024 /u01 \
> -dir /OVS/running_pool/EL52_vm4 \
> -selinux disabled
Please wait while VM image is being instantiated...
Depending on your system this can take a few minutes!
Processing disk_u01.img product image...
Mounting VM image...
Unmount VM image...
Resizing VM System image file...
Please wait while expanding the image file...
Please wait while expanding the filesystem...
Please wait while creating the swap partition...
Mounting VM image...
Mounting product image disk_u01.img...
Persisting mount point /u01 ...
Configuring SElinux for: disabled
Unmount VM image...
Successfully created JeOS image files...

[root@ovs11 ~]#

作成されたファイル

標準で作成される System.img、vm.cfg 以外に
-Pオプションで指定したdisk_u01.img ファイルが作成されています。
-dirで指定したディレクトリ(/OVS/running_pool/EL52_vm4)は自動作成されました。

[root@ovs11 ~]# ls -lh /OVS/running_pool/EL52_vm4
total 753M
-rw-r--r-- 1 root root 1.0G Dec 31 22:35 disk_u01.img
-rw-r--r-- 1 root root 2.1G Dec 31 22:36 System.img
-rw-r--r-- 1 root root  308 Dec 31 22:35 vm.cfg
ディスクイメージファイルは、実際に使用している領域のみが確保されています。
[root@ovs11 ~]# du -sh /OVS/running_pool/EL52_vm4/*
34M     /OVS/running_pool/EL52_vm4/disk_u01.img
719M    /OVS/running_pool/EL52_vm4/System.img
0       /OVS/running_pool/EL52_vm4/vm.cfg

設定ファイル(vm.cfg)のディスク指定は、-dir オプションの指定に関係なく
/OVS/seed_pool 配下になっています。
[root@ovs11 ~]# cat /OVS/running_pool/EL52_vm4/vm.cfg
bootloader = '/usr/bin/pygrub'
disk = ['file:/OVS/seed_pool/EL52_vm4/System.img,xvda,w',
        'file:/OVS/seed_pool/EL52_vm4/disk_u01.img,xvdb,w']
memory = '512'
name = 'EL52_vm4'
vcpus = 1
on_crash = 'restart'
on_reboot = 'restart'
vfb = ['type=vnc,vncunused=1,vnclisten=0.0.0.0']
vif = ['type=netfront']
 ディスクイメージファイルの指定は手動で変更します。
[root@ovs11 ~]# vi /OVS/running_pool/EL52_vm4/vm.cfg

disk = ['file:/OVS/seed_pool/EL52_vm4/System.img,xvda,w',
        'file:/OVS/seed_pool/EL52_vm4/disk_u01.img,xvdb,w']
↓(編集)
disk = ['file:/OVS/running_pool/EL52_vm4/System.img,xvda,w',
        'file:/OVS/running_pool/EL52_vm4/disk_u01.img,xvdb,w']

VMを起動して確認

VMを起動して、そのままコンソール接続(-c オプション) します。
[root@ovs11 ~]# xm create /OVS/running_pool/EL52_vm4/vm.cfg -c
Using config file "/OVS/running_pool/EL52_vm4/vm.cfg".

VMにログインして、カスタマイズした構成を確認してみます。

ディスク・パーティション構成
コマンドラインで指定したディスク(/u01とSWAP領域)が追加されています。
  • SWAP領域 → /dev/xvda3 として追加。
  • /u01 → /dev/xvdb1 として追加。
[root@localhost ~]# fdisk -l
Disk /dev/xvda: 2155 MB, 2155023360 bytes
255 heads, 63 sectors/track, 262 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1          12       96358+  83  Linux
/dev/xvda2              13         196     1477980   83  Linux
/dev/xvda3             197         262      530145   82  Linux swap / Solaris
Disk /dev/xvdb: 1073 MB, 1073741824 bytes
64 heads, 32 sectors/track, 1024 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
    Device Boot      Start         End      Blocks   Id  System
/dev/xvdb1               2        1024     1047552   83  Linux
/u01はfstabに自動マウント設定が追記されています。マウント済みです。
[root@localhost ~]# cat /etc/fstab
LABEL=/          /          ext3    defaults        1 1
LABEL=/boot      /boot      ext3    defaults        1 2
tmpfs            /dev/shm   tmpfs   defaults        0 0
devpts           /dev/pts   devpts  gid=5,mode=620  0 0
sysfs            /sys       sysfs   defaults        0 0
proc             /proc      proc    defaults        0 0
LABEL=SWAP-VM    swap       swap    defaults        0 0
LABEL=disk_u01   /u01       ext3    defaults        1 2


[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda2            1.4G  493M  861M  37% /
/dev/xvda1             92M   11M   76M  13% /boot
tmpfs                 257M     0  257M   0% /dev/shm
/dev/xvdb1           1007M   18M  939M   2% /u01


(参考)
 [root@localhost ~]# blkid
/dev/xvda1: LABEL="/boot" UUID="a34cc519-2a2e-4c20-ae66-80e1f9a1154b" SEC_TYPE="ext2" TYPE="ext3"
/dev/xvda2: LABEL="/" UUID="df22f5b3-33d4-49a2-bd5f-753cb20afd34" SEC_TYPE="ext2" TYPE="ext3"
/dev/xvda3: LABEL="SWAP-VM" TYPE="swap"
/dev/xvdb1: LABEL="disk_u01" UUID="f47ad8cf-e785-41b8-b6e4-eddd9e6d8ebd" SEC_TYPE="ext2" TYPE="ext3"
スワップ情報
[root@localhost ~]# swapon -s
Filename        Type          Size    Used    Priority
/dev/xvda3      partition     530136  0       -1
SELinuxの設定
SELinuxもオプション指定どおり、無効になりました。
[root@localhost ~]# grep ^SELINUX= /etc/selinux/config
SELINUX=disabled
[root@localhost ~]# getenforce
Disabled

以上、JeOSイメージのカスタマイズでした。

2012年12月30日日曜日

Oracle JeOSを使ってみる(3回目)

Oracle Linux の JeOSイメージから、VMを作成してみます。


modifyjeos で JeOSイメージを編集した場合、
現在のディレクトリにファイル(System.imgとvm.cfg)が作成されます。

そのため、あらかじめVMを作成したいディレクトリを作成し、そこに移動しておきます。
作成場所は、OVSの標準的なVM配置場所である running_pool にします。
[root@ovs11 work]# cd /OVS/running_pool
[root@ovs11 running_pool]# mkdir EL52_vm1
[root@ovs11 running_pool]# cd EL52_vm1 

VMを作成します。
modifyjeosのオプションは、
  • -i →元にするJeOSイメージの名前。
  • -n →作成するVM名(もしくはVMテンプレート名)。ホスト名とは別のものです。
  • -cpu → VCPUの数
  • -mem →割り当てるメモリ容量(MB)
  • -T  → 仮想ディスクイメージ全体の容量(MB)
です。
[root@ovs11 EL52_vm1]# modifyjeos -i EL52_i386_PVM_jeos -n EL52_vm1 \
> -cpu 1 -mem 256 -T 2048
Please wait while VM image is being instantiated...
Depending on your system this can take a few minutes!
Mounting VM image...
Unmount VM image...
Resizing VM System image file...
Please wait while expanding the image file...
Please wait while expanding the filesystem...
Please wait while creating the swap partition...
Mounting VM image...
Configuring SElinux for: permissive
Unmount VM image...
Successfully created JeOS image files...
[root@ovs11 EL52_vm1]#
5分くらい待ったら完了しました。
VMを構成するファイル(System.imgとvm.cfg)が作成されています。
[root@ovs11 EL52_vm1]# ls -lh
total 735M
-rw-r--r-- 1 root root 2.1G Dec 30 20:53 System.img
-rw-r--r-- 1 root root 248 Dec 30 20:51 vm.cfg
自動生成される設定ファイルの内容です。
[root@ovs11 EL52_vm1]# cat vm.cfg
bootloader = '/usr/bin/pygrub'
disk = ['file:/OVS/seed_pool/EL52_vm1/System.img,xvda,w']
memory = '256'
name = 'EL52_vm1'
vcpus = 1
on_crash = 'restart'
on_reboot = 'restart'
vfb = ['type=vnc,vncunused=1,vnclisten=0.0.0.0']
vif = ['type=netfront']
デフォルトでは vm.cfg のディスクイメージファイルの指定が
/OVS/seed_pool ディレクトリ配下なので、
/OVS/running_pool 配下に書き換えます。
 [root@ovs11 EL52_vm1]# vi vm.cfg

disk = ['file:/OVS/seed_pool/EL52_vm1/System.img,xvda,w']
↓(書き換え)
disk = ['file:/OVS/running_pool/EL52_vm1/System.img,xvda,w']

作成したVMを起動してみます。
xm createコマンドに 「-c」 オプションをつけて
起動と同時に、VMにコンソール接続します。
[root@ovs11 EL52_vm1]# xm create vm.cfg -c

GRUBのOS選択画面が表示され、OSが起動する様子が見えます。



ゲストOSが起動したらログインします。
Enterprise Linux Enterprise Linux Server release 5.2 (Carthage)
Kernel 2.6.18-92.0.0.0.1.el5xen on an i686
localhost.localdomain login: root
Password: ★デフォルトのパスワードは「ovsroot」です。
[root@localhost ~]#
 VMの構成情報をゲスト側からも確認してみます。 VCPUは1つ割り当てられています。CPUのモデルは、物理CPUと同じものが表示されます。
[root@localhost ~]# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Core(TM) i3-2367M CPU @ 1.40GHz
stepping : 7
cpu MHz : 1380.114
cache size : 6144 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu de tsc msr pae cx8 apic cmov pat clflush mmx fxsr sse sse2 nx constant_tsc up pni
bogomips : 3606.30
 メモリも、VMに割り当てた分だけ認識しています。。
[root@localhost ~]# free -m
             total  used  free  shared  buffers  cached
Mem:           256    96   159       0       18      31
-/+ buffers/cache:    46   209
Swap:            7     0     7

ディスクは全体容量が指定したサイズで、
 /(root) と /boot に分割されています。
[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda2            1.9G  493M  1.4G  27% /
/dev/xvda1             92M   11M   76M  13% /boot
tmpfs                 129M     0  129M   0% /dev/shm
 仮想NICは eth0 として1つだけ作成されています。
[root@localhost ~]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:16:3E:70:C0:45
          inet addr:192.168.56.105  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe70:c045/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:56 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:9736 (9.5 KiB)  TX bytes:852 (852.0 b)
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:696 (696.0 b)  TX bytes:696 (696.0 b)
sit0      Link encap:IPv6-in-IPv4
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
VMのコンソールから抜けたい場合は、
「 Ctrl + ] 」 キーを押します。 
以上、JeOSイメージからVMを作成する様子でした。

Oracle JeOSを使ってみる(2回目)

Oracle Linux の JeOSイメージをインストールしてみます。

JeOSイメージはRPM形式で提供されています。
使用したい Oracle Linux の JeOSイメージをOVSにインストールして、
modifyjeos でカスタマイズします。

Oracle Linuxの JeOSイメージも
ORACLEの e-Delibery からダウンロードします。(modifyjeosと同じ場所)
  • 「Cloudポータル」→「Oracle Linux/VM」を選択して、Linux/VM専用サイトへ。
  • パッケージを検索
    •  製品パックを選択: Oracle Linux
    •  プラットフォーム: 「x86 64bit」 もしくは 「x86 32bit」
  • 「Oracle Linux JeOS for Building Oracle VM Templates for XXX (?? bit) 」を選択
  • 使用したい Oracle Linux のバージョンのJeOSイメージをダウンロードします。
    「JeOS Oracle Linux X Update X ~」という名称です。
    Oracle Linux 5.x か 4.x のものしかありません。(OL6.xのJeOSはない)
    このRPMをインストールすると、PVM/HVM両方のJeOSテンプレートとして使用できます。

JeOSイメージのインストール

Oracle Linux 5.7 32bit のJeOSを、RPMでインストールしてみます。
[root@ovs11 work]# rpm -ivh ovm-el5u7-xvm-jeos-1.1.0-4.el5.i386.rpm
warning: ovm-el5u7-xvm-jeos-1.1.0-4.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...                ########################################### [100%]
   1:ovm-el5u7-xvm-jeos     ########################################### [100%]
インストールしたRPMの情報
[root@ovs11 work]# rpm -qi ovm-el5u7-xvm-jeos
Name : ovm-el5u7-xvm-jeos Relocations: (not relocatable)
Version : 1.1.0 Vendor: Oracle Corporation
Release : 4.el5 Build Date: Sat 10 Sep 2011 04:54:12 AM JST
Install Date: Sun 30 Dec 2012 01:08:04 PM JST Build Host: ca-build9.us.oracle.com
Group : Utilities Source RPM: ovm-el5u7-xvm-jeos-1.1.0-4.el5.src.rpm
Size : 185349129 License: Copyright 2007, 2011 Oracle. All rights reserved. See included EULA at /usr/share/doc/ovm-template-images/EULA for information on copying and redistribution.
Signature : DSA/SHA1, Sat 10 Sep 2011 04:59:01 AM JST, Key ID 66ced3de1e5e0159
Summary : Oracle Linux 5 Update 7 JeOS image for Oracle VM
Description :
Oracle Linux 5 Update 7 JeOS VM image for Oracle VM.
See the included EULA file for information on copying and redistribution.
RPMでインストールされたファイル
[root@ovs11 work]# rpm -ql ovm-el5u7-xvm-jeos
/usr/share/doc
/usr/share/doc/ovm-template-images
/usr/share/doc/ovm-template-images/EULA
/usr/share/doc/ovm-template-images/GPL
/var/lib/oraclevm-template/images
/var/lib/oraclevm-template/images/EL57_i386_xVM_jeos.img.bz2

modifyjeosの使い方
インストール済みのJeOSイメージは、modifyjeos で確認できます。
[root@ovs11 work]# modifyjeos -list
EL57_i386_HVM_jeos
EL57_i386_PVM_jeos

オプションなしで modifyjeos コマンドを実行すると、使用方法が表示されます。
[root@ovs11 work]# modifyjeos
modifyjeos version 1.1.0-17
Usage:
   modifyjeos { -i <VMImg> | -f <ImgFile> }
              [ -n <TmplName> ]
              [ { -a <AddLstF> -m <RPMDir> [ -m <RPMDir> ... ] } ]
              [ -p <PkgLstF> ]
              [ -e <DelLstF> ]
              [ { [ -I <RootPreSz> ] [ -R <RootPadSz> ] } | -T <TotalImgSz> ]
              [ -S <SwapSz> ]
              [ { -r <YUMRepoURI> [ <RepoKeyURI> ] } ... ]
              [ -l <DVDMntDir> ]
              [ -on <SvcList> ] [ -off <SvcList> ]
              [ -mem <MemSz> ]
              [ -cpu <NumCpu> ]
              [ -dir <TargetDir> ]
              [ { -P <ProdImg> <ProdSz> [<ProdMnt>] } ... ]
              [ -remove <ProdImg> ... ]
              [ -conf <ConfScr> ]
              [ -cln <CleanScr> ]
              [ { -pre-nochroot <PreScr> } ... ]
              [ { -pre <PreScr> } ... ]
              [ { -post-nochroot <PostScr> } ... ]
              [ { -post <PostScr> } ... ]
              [ -no-scripts ] [ -only-chroot-scripts ]
              [ -selinux <SElnxMode> ]
              [ -zero-out ] [ -zero-out-all ]
              [ -nogpg ]
              [ -relabelimg <ImgFile> <old label> <new label>
              [ -changelabel <old label> <new label>
              [ -copy <file|directory> <filename|directory path> ]
              [ -deletefile <file>
              [ -deletedir <directory>
              [ -list ]
where:
  ImgFile   : previously instantiated image file to configure.
  TmplName  : name of the template (defaults to the VMImg name).
  AddLstF   : file with names of RPMs to add.
  RPMDir    : directory with the RPMs to be installed.
              (Required when supplying the -a option)
  PkgLstF   : file with names of packages to add.
  DelLstF   : file with names of packages to erase.
  RootPreSz : size in MB to pad root before starting processing.
  RootPadSz : size in MB to pad root after all processing.
  TotalImgSz: size in MB for the image file.
  SwapSz    : required Swap partition size in MB.
  YUMRepoURI: baseurl for a YUM repository.
  RepoKeyURI: URI of the repository's key.
  DVDMntDir : top level dir where the OS DVD is available.
  SvcList   : comma sepearated list of init services to enable / disable.
  MemSz     : amount of memory to allocate for the VM in MB.
  NumCpu    : number of virtual cpu's assigned to the VM.
  TargetDir : directory where images will be created in.
  ProdImg   : name of the product image to create.
  ProdSz    : size of the product image in MB.
  ProdMnt   : optional mount point for product image.
  ConfScr   : name of the reconfig script (defaults to /u01/oracle-template.sh).
  CleanScr  : name of the cleanup script (defaults to /u01/template-cleanup.sh).
  PreScr    : name of the script to run before adding/erasing RPMs.
  PostScr   : name of the script to run after adding/erasing RPMs.
              NOTE: The -no-scripts option can be used to
                    administratively disable all script execution,
                    and the -only-chroot-scripts option can be used
                    to only allow script execution inside the chroot
                    environment.
  SElnxMode : SElinux mode (default is permissive), allowable options are:
                      enforcing, permissive or disabled
  VMImg     : one of the choices listed below:
                EL57_i386_HVM_jeos  ★RPMでインストール済みのJeOSイメージが表示される。
                EL57_i386_PVM_jeos

JeOSイメージを追加してみる
他のバージョンの Oracle Linux JeOSを追加するときも、RPMで追加します。
Oracle Linux 5.2 32bit のJeOSを追加してみます。
[root@ovs11 work]# rpm -ivh ovm-el5u2-xvm-jeos-1.1.0-1.el5.i386.rpm
warning: ovm-el5u2-xvm-jeos-1.1.0-1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...                ########################################### [100%]
   1:ovm-el5u2-xvm-jeos     ########################################### [100%]

modifyjeos -list でも、追加したJeOSイメージが表示されるようになります。
[root@ovs11 work]# modifyjeos -list
EL52_i386_HVM_jeos ★RPMでインストール済みのJeOSイメージが表示される。
EL52_i386_PVM_jeos
EL57_i386_HVM_jeos
EL57_i386_PVM_jeos
以上、
JeOSイメージのインストールでした。

2012年12月29日土曜日

OVS on VirtualBox してみました(CPU仮想化支援機能なしでは無理)

Oracle VM Server on VirtualBoxをやってみました。
実際に構築してみると、

VirtualBoxをインストールするホストOSのPCは、
CPUの仮想化支援機能が必須でした。


仮想化支援機能が使用できなくてもOVSのインストールは正常終了しますが、
Xenを有効にした状態としてOVSを起動できませんでした。


駄目だった様子

まず、インストール直後にVMを起動すると
ホストOSが64bitなのでOVSデフォルトだと64bitカーネルで起動します。
 



デフォルトは、3行目の64bitカーネルです。



そこでGRUBで32bitカーネルを選択して起動したところ、
今度は起動途中でブラックアウトしてしまいました。

 
タイミングとしては「(Xen) Scrubbing Free RAM ...」というメッセージの直後だったので
GRUBの起動オプションに no-bootscrub をつけても改善しませんでした。



この画面の直後にブラックアウトします。



ためしに OVS 2.2.2、2.2.1、2.2.0 をインストールしてみましたが、
いずれのバージョンもも同様の現象でダメでした。

結局のところ、
Intel-VT が使用できる他のPCで試したら、OVSは問題なく起動できました。
ちなみに、使用しているCPUは Intel Core i3-2367M 1.40GHz です。


※ただしOVSではHVMサポートされていない状態でした。
Hypervisor running in 64 bit mode with NO Hardware Virtualization support.



以上、
OVS on VirtualBox ではCPU仮想化支援機能が必須 という話でした。

2012年12月28日金曜日

Oracle JeOSを使ってみる(1回目)

Oracle Linux JeOS を使ってみようと思います。
JeOSとは、Just enough Operating System の略で、
ちょうど十分なOS = 必要最低限構成(ソフトウェア導入)のOSのことです。
今日はJeOSテンプレートを使用するための下準備として、
ORACLEから提供されているJeOSのVMテンプレート構築ツール
Oracle Linux JeOS for Building Oracle VM Templates
をインストールします。


ソフトウェアの入手

ORACLEの e-delibery から、RPMをダウンロードします。

※OTNのアカウント(無償)を作成する必要があります。
  • 「Cloudポータル」→「Oracle Linux/VM」を選択して、Linux/VM専用サイトへ。
  • パッケージを検索
    • 製品パックを選択: Oracle Linux
    • プラットフォーム: x86 64bit もしくは x86 32bit
  • 「Oracle Linux JeOS for Building Oracle VM Templates for x86_64 (?? bit) 」を選択
  • 「JeOS Base x86 and x86_64」をDLします。 (V34619-01.zip 76KB)




インストール

DLしたファイルを、インストールするOracle VM ServerにFTP/SCPなどで転送します。
ファイルを解凍すると2つのRPMがあります。
  • ovm-modify-jeos-1.1.0-17.el5.noarch.rpm
  • ovm-template-config-1.1.0-8.el5.noarch.rpm
[root@ovs222e work]# ls -l
total 84
-rw-r--r-- 1 root root 78554 Nov 2 23:34 V34619-01.zip
[root@ovs222e work]# unzip V34619-01.zip
Archive: V34619-01.zip
inflating: ovm-modify-jeos-1.1.0-17.el5.noarch.rpm
creating: __MACOSX/
inflating: __MACOSX/._ovm-modify-jeos-1.1.0-17.el5.noarch.rpm
inflating: ovm-template-config-1.1.0-8.el5.noarch.rpm
inflating: __MACOSX/._ovm-template-config-1.1.0-8.el5.noarch.rpm
[root@ovs222e work]# ls -l
total 180
drwxrwxr-x 2 root root 4096 Sep 18 09:29 __MACOSX
-rw-r--r-- 1 root root 62011 Sep 18 09:20 ovm-modify-jeos-1.1.0-17.el5.noarch.rpm
-rw-r--r-- 1 root root 23091 Sep 9 2011 ovm-template-config-1.1.0-8.el5.noarch.rpm
-rw-r--r-- 1 root root 78554 Nov 2 23:34 V34619-01.zip
RPMを両方インストールします。
[root@ovs221e work]# rpm -ivh ovm*.rpm
warning: ovm-modify-jeos-1.1.0-17.el5.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing... ########################################### [100%]
1:ovm-template-config ########################################### [ 50%]
2:ovm-modify-jeos ########################################### [100%]
インストールしたもの

ovm-template-config
Oracle VM テンプレート構成用のスクリプトです。
※OVSにインストールしたものの、これはテンプレートにしたいVMに入れればよい・・・
[root@ovs221e work]# rpm -qi ovm-template-config
Name        : ovm-template-config          Relocations: (not relocatable)
Version     : 1.1.0                             Vendor: Oracle Corporation
Release     : 8.el5                         Build Date: Sat 10 Sep 2011 03:44:16 AM JST
Install Date: Thu 27 Dec 2012 10:33:13 PM JST      Build Host: ca-build9.us.oracle.com
Group       : Utilities                     Source RPM: ovm-template-config-1.1.0-8.el5.src.rpm
Size        : 58494                            License: GPLv2
Signature   : DSA/SHA1, Sat 10 Sep 2011 03:44:29 AM JST, Key ID 66ced3de1e5e0159
URL         : http://oss.oracle.com/
Summary     : Oracle VM Template reconfiguration scripts
Description :
Configuration for Oracle VM Template boot.
[root@ovs221e work]# rpm -ql ovm-template-config
/etc/rc.d/init.d/oraclevm-template
/etc/sysconfig/oraclevm-template
/usr/lib
/usr/lib/oraclevm-template
/usr/lib/oraclevm-template/functions
/usr/sbin/oraclevm-template
/usr/share/doc/oraclevm-template
/usr/share/doc/oraclevm-template/AUTHORS
/usr/share/doc/oraclevm-template/COPYING
/var/lib/oraclevm-template
/var/lib/oraclevm-template/add.lst
/var/lib/oraclevm-template/erase.lst
ovm-modify-jeos
OracleVM Serverに配置したJeOSイメージを編集するスクリプトです。
[root@ovs221e work]# rpm -qi ovm-modify-jeos
Name        : ovm-modify-jeos              Relocations: (not relocatable)
Version     : 1.1.0                             Vendor: Oracle Corporation
Release     : 17.el5                        Build Date: Sat 04 Aug 2012 01:14:33 AM JST
Install Date: Thu 27 Dec 2012 10:33:13 PM JST      Build Host: ca-build56.us.oracle.com
Group       : Utilities                     Source RPM: ovm-modify-jeos-1.1.0-17.el5.src.rpm
Size        : 224704                           License: GPLv2
Signature   : DSA/SHA1, Sat 04 Aug 2012 01:14:37 AM JST, Key ID 66ced3de1e5e0159
URL         : http://oss.oracle.com/
Summary     : Oracle VM JeOS Image modify script
Description :
Script used to modify the base Oracle VM JeOS images. 
[root@ovs221e work]# rpm -ql ovm-modify-jeos
/usr/bin/modifyjeos
/usr/share
/usr/share/doc
/usr/share/doc/ovm-modify-jeos
/usr/share/doc/ovm-modify-jeos/AUTHORS
/usr/share/doc/ovm-modify-jeos/COPYING
/usr/share/doc/ovm-modify-jeos/modifyjeos.html
/usr/share/man
/usr/share/man/man8
/usr/share/man/man8/modifyjeos.8.gz
/var/lib/oraclevm-template
/var/lib/oraclevm-template/HVM.cfg
/var/lib/oraclevm-template/PVM.cfg
以上、
今回はJeOSテンプレートを使用するための下準備でした。(つづく)

2012年12月27日木曜日

OVSネットワークの話(6回目)

OVSのネットワーク接続 6回目です。

今回は、VMの仮想NICと、VMの仮想スイッチへの接続設定についてです。

Oracle VM Serverでの標準的なVMの設定ファイル名は、vm.cfg です。
この設定ファイルに、仮想NICの設定を記載しておきます。
※VMごとに、このファイルが存在します。

設定ファイル例(vm.cfg)
[root@ovs221e vm1]# cat vm.cfg
bootloader = '/usr/bin/pygrub'
keymap = 'ja'
on_reboot = 'restart'
on_crash = 'restart'
name = "vm1"
vcpus=1
memory = "128"
maxmem = "256"
uuid = "9347f79e-0b8d-42b0-9865-63056702e2e4"
disk = [
'file:/OVS/running_pool/vm1/System.img,xvda,w',
]
disk_other_config = []
vif = [
'mac=XX:XX:XX:XX:XX:56, bridge=xenbr0, type=netfront',
'mac=XX:XX:XX:XX:XX:4C, bridge=xenbr1, type=netfront',
]

この部分のうちNW設定は赤字の部分です。
VMはこのファイルの記載順で仮想NICを作成するので、下記の設定では
1つ目の仮想NIC(vifX.0)が xenbr0 に接続され、
2つ目の仮想NIC(vifX.1)が xenbr1 に接続されます。

「type=netfront」では、仮想NICの種類を指定しています。
OVSでは準仮想化ゲスト(Xenで一般的なVMの形式)の場合、
netfront準仮想化の仮想NICを使用します。
これは、デフォルトでもnetfrontになるため省略可能です。
vif = [
'mac=XX:XX:XX:XX:XX:56, bridge=xenbr0',
'mac=XX:XX:XX:XX:XX:4C, bridge=xenbr1',
]
 「type=netfront」では、仮想NICの種類を指定しています。
これは、デフォルトでもnetfrontになるため省略可能です。
OVSでは準仮想化ゲスト(Xenで一般的なVMの形式)の場合、
netfront準仮想化の仮想NICを使用します。
vif = [
'mac=XX:XX:XX:XX:XX:56, bridge=xenbr0',
'mac=XX:XX:XX:XX:XX:4C, bridge=xenbr1',
]
仮想NICが1つだけの場合は、下記のように1行だけ記載します。
vif = [
'mac=XX:XX:XX:XX:XX:56, bridge=xenbr0, type=netfront',
]
MACアドレス(mac=)を指定しない場合は、
VMを起動するたびにMACアドレスが自動生成されます。
※VMを起動しなおすたびにMACアドレスが変わってしまいます。
vif = [
'bridge=xenbr0, type=netfront',
'bridge=xenbr1, type=netfront',
]


以上、VMの仮想NIC設定と仮想スイッチ接続設定でした。

2012年12月26日水曜日

OVSネットワークの話(5回目)

今回は、仮想スイッチからVMの仮想NICを切断してみます。


仮想NICの見え方

Oracle VM Server(Xen)での仮想NICは、
Dom0での ifconfigコマンド で表示することができます。
名前は vifX.Y といった形式になります。
  • X の部分 → ドメインID(VMにつけられたID)
  • Y の部分 → VM内での通し番号(0~)
たとえば、ドメインID=2 のVMでは、
仮想NICの名前が vif2.0、vif2.1 ・・・ となります。
[root@ovs221e ~]# ifconfig | grep -e Link -e inet -e Metric
eth0      Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:AB
          inet addr:192.168.4.221  Bcast:192.168.4.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe85:cab/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
eth1      Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:B5
          inet6 addr: fe80::20c:29ff:fe85:cb5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
vif1.0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
          inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
vif1.1    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
          inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
vif2.0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
          inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
vif2.1    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
          inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
xenbr0    Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:AB
          inet addr:192.168.4.223  Bcast:0.0.0.0  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe85:cab/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
xenbr1    Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:B5
          inet6 addr: fe80::20c:29ff:fe85:cb5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
VM上のゲストOSから見える eth0、eth1 は、Dom0 からは vifX.0、vifX.1 と見えます。





VMのNIC切断/接続

ためしに、VM2の1本目の仮想NIC(vif2.0)を、仮想スイッチから外してみます。
[root@ovs221e ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
xenbr0          8000.XXXXXXXXXXab       no              vif2.0
                                                        vif1.0
                                                        eth0
xenbr1          8000.XXXXXXXXXXb5       no              vif2.1
                                                        vif1.1
                                                        eth1
 


 
仮想NICを、brctl コマンドで切断します。

[root@ovs221e ~]# brctl delif xenbr0 vif2.0

仮想NICが外れました。
[root@ovs221e ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
xenbr0          8000.XXXXXXXXXXab       no              vif1.0
                                                        eth0
xenbr1          8000.XXXXXXXXXXb5       no              vif2.1
                                                        vif1.1
                                                        eth1
仮想NICを再接続してみます。
xenbr0 に、vif2.0 が接続されたことが確認できます。
[root@ovs221e ~]# brctl addif xenbr0 vif2.0
[root@ovs221e ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
xenbr0          8000.XXXXXXXXXXab       no              vif2.0
                                                        vif1.0
                                                        eth0
xenbr1          8000.XXXXXXXXXXb5       no              vif2.1
                                                        vif1.1
                                                        eth1
ほかの仮想スイッチに接続してみる

ほかの仮想スイッチに接続することもできます。
隣の xenbr1 に VM2 の仮想NICを両方接続してみました。
[root@ovs221e ~]# brctl delif xenbr0 vif2.0
[root@ovs221e ~]# brctl addif xenbr1 vif2.0
[root@ovs221e ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
xenbr0          8000.XXXXXXXXXXab       no              vif1.0
                                                        eth0
xenbr1          8000.XXXXXXXXXXb5       no              vif2.0
                                                        vif2.1
                                                        vif1.1
                                                        eth1



以上、仮想NICのつけはずしでした。