2013年1月7日月曜日

OVMS をKickstart (2回目)

今回は、まず Kickstart サーバを構築します。

前回はこちら。



1. 事前準備

Oracle Linux 6.3 をインストールしたサーバを用意しておきます。
※これは、VortualBox 上の VM でも OK です。

下記のIPアドレスを設定をしておくことにします。
  • eth0: 192.168.56.110 → このサーバへの通常アクセス用。
  • eth1: 192.168.10.110 → Kickstart 用の NW に接続しておく。

2013年1月6日日曜日

OVMS を Kickstart (1回目)

ためしに、Oracle VM Server 2.2.2 (OVMS) を
Kickstart でインストールしてみようと思います。

インストールサーバ(Kickstart サーバ)を使用した Kickstart で
Linux のインストールを自動化することができます。
OVMS も基本的には Linux なので、Kickstart でインストールできます。

Kickstart サーバは、PXE ブートの起動イメージ、設定ファイル、
インストールメディアを配布する機能などをもちます。
Kickstart サーバ自体も Linuxで構築できるので、今回は Oracle Linux を Kickstart サーバにします。

まずは、Kickstart と、今回のサーバ構成の概要についてです。


2013年1月5日土曜日

Dom0からゲストOSの設定変更してみる。

今回は、Dom0からゲストOS内の設定を変更してみます。
この記事は、下記の記事の続きです。
例として、ゲストOSのネットワーク設定(IP設定)を変更します。


1. VMの設定ファイルを編集しておく。

VMの設定ファイル(vm.cfg)の仮想NICの設定を編集しておきます。
  • 仮想NICを追加します。
  • 仮想NICのMACアドレスを設定します。
    • これを設定しないと、VMを起動するたびにMACアドレスが変更されてしまいます。(アドレスは自動生成)
    • MACアドレスは「00:16:3E」から始まるもの(Xen用に予約されたアドレス)を適当に使用しています。
  • 仮想NICの接続先となる仮想スイッチを指定します。
    • これを設定しないと、仮想NICが自動的に xenbr0 に接続されます。
[root@ovs11 ~]# vi /OVS/running_pool/EL52_vm1/vm.cfg

vif = ['type=netfront']
↓(編集)
vif = [
'mac=00:16:3E:00:00:01, bridge=xenbr0, type=netfront',
'mac=00:16:3E:10:00:01, bridge=xenbr1, type=netfront',
]
 
2. VMの仮想ディスクイメージをDom0にマウントします。
[root@ovs11 ~]# lomount -t ext3 \
> -diskimage /OVS/running_pool/EL52_vm1/System.img -partition 2 /mnt/
[root@ovs11 ~]#
 
3. VMの仮想ディスクイメージ内の設定ファイルを編集します。

1つ目のNICを設定変更します。(MACアドレスとIPアドレス)
MACアドレスは、vm.cfgファイルに設定したものと合わせます。
[root@ovs11 ~]# cd /mnt/etc/sysconfig/network-scripts/
[root@ovs11 network-scripts]# vi ifcfg-eth0
(ファイルの内容)
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
HWADDR=00:16:3E:00:00:01
TYPE=Ethernet
IPADDR=192.168.56.31
NETMASK=255.255.255.0
 
2つ目のNICもIP設定します。設定ファイルは、1つ目のNICのものをコピーして書き換えています。
[root@ovs11 network-scripts]# cp ifcfg-eth0 ifcfg-eth1
[root@ovs11 network-scripts]# vi ifcfg-eth0
 
(ファイルの内容)
DEVICE=eth1 ★変更
ONBOOT=yes
BOOTPROTO=static
HWADDR=00:16:3E:10:00:01 ★変更
TYPE=Ethernet
IPADDR=192.168.0.31 ★変更
NETMASK=255.255.255.0
 
ついでにホスト名の設定も変更します。
[root@ovs11 network-scripts]# cd
[root@ovs11 ~]# vi /mnt/etc/sysconfig/network
 
HOSTNAME=localhost.localdomain
↓(編集)
HOSTNAME=vm1
 
4. VMの仮想ディスクイメージをDom0からアンマウントします。
[root@ovs11 ~]# umount /mnt/


5. VMを起動 & 設定確認します。
 
表示される「id=3」は、Dom0でのVM起動のたびにカウントアップされます。
[root@ovs11 ~]# xm create /OVS/running_pool/EL52_vm1/vm.cfg
Using config file "/OVS/running_pool/EL52_vm1/vm.cfg".
Started domain EL52_vm1 (id=3)
VMの仮想NICは、vm.cfgファイルに指定したブリッジに接続されました。
[root@ovs11 ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
xenbr0          8000.080027c59f4e       no              vif3.0
                                                        eth0
xenbr1          8000.08002743ab84       no              vif3.1
                                                        eth1
少し待ってから(ゲストOSが起動するのを)VMにログインして確認すると、
設定が反映されていることが確認できます。
(ホスト名、MACアドレスとIPアドレス)
[root@ovs11 ~]# ssh 192.168.56.31
The authenticity of host '192.168.56.31 (192.168.56.31)' can't be established.
RSA key fingerprint is 1f:2d:bd:25:fb:56:d7:b7:58:de:44:cb:a3:56:f4:ea.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.56.31' (RSA) to the list of known hosts.
Last login: Sat Jan 5 06:45:37 2013
[root@vm1 ~]# uname -n
vm1    ★ホスト名が変更されている
[root@vm1 ~]# ifconfig | grep addr
[root@vm1 ~]# ifconfig eth0| grep addr
eth0      Link encap:Ethernet  HWaddr 00:16:3E:00:00:01
          inet addr:192.168.56.31  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe00:1/64 Scope:Link
[root@vm1 ~]# ifconfig eth1| grep addr
eth1      Link encap:Ethernet  HWaddr 00:16:3E:10:00:01
          inet addr:192.168.0.31  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe10:1/64 Scope:Link
以上、Dom0からのゲストOS設定変更でした。

2013年1月4日金曜日

OVSのディスクについて(3回目)

今回は、Oracle VM Server(OVS)のDom0 から
VMの仮想ディスクをのぞいてみます。




VM上のゲストOSからのディスクパーティション認識

まず、VM(ゲストOS)のディスク認識を確認しておきます。



ゲストOS上では、ディスク(仮想ディスク)を /dev/xvda の1つだけ認識しています。
[root@vm1 ~]# 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         261     2000092+  83  Linux
/dev/xvda3             262         262        8032+  82  Linux swap / Solaris

そのなかの2番目のパーティション(/dev/xvda2)を
/(rootマウントポイント)にマウントしています。
[root@vm1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1             92M   11M   76M  13% /boot
/dev/xvda2            1.9G  493M  1.4G  27% /
tmpfs                 129M     0  129M   0% /dev/shm

ディスクイメージファイルを Dom0 でマウント

VMの仮想ディスクとなる、ディスクイメージファイル(System.img)をマウントします。
イメージファイルの中に複数のパーティションが作成されているため、
lomount コマンドで、パーティション番号を指定してマウントします。
(-partition 2)

System.img ファイルをマウントする前に、
VM1は停止(shutdown)しておきます。


[root@ovs11 ~]# ls /mnt/
[root@ovs11 ~]#   ★マウント前は何も見えない。
[root@ovs11 ~]# cd /OVS/running_pool/EL52_vm1/
[root@ovs11 EL52_vm1]# lomount -t ext3 -diskimage System.img -partition 2 /mnt
[root@ovs11 EL52_vm1]# ls /mnt/
bin   dev  home  lost+found  mnt  proc  sbin     srv  tmp  usr
boot  etc  lib   media       opt  root  selinux  sys  u01  var
 ★System.imgの中身が/mnt配下で見られるようになった。

最後に、マウントしたディスクイメージをアンマウントしておきます。
[root@ovs11 EL52_vm1]# umount /mnt
[root@ovs11 EL52_vm1]# ls /mnt/
[root@ovs11 EL52_vm1]#   ★アンマウントしたので何も見えなくなった。

以上、
Dom0にDomUディスクをマウントしてみる話でした。

2013年1月3日木曜日

OVSのディスクについて(2回目)

Oracle VM Server(OVS)でのディスク(ディスク記憶域)認識について、
前回の続きです。

今回、OVS(Dom0)としては、下記の領域があります。
  • 約8GBのOS用の領域
  • 約12GBのOVSリポジトリ(VMを配置する)
このうち、OVSリポジトリにVMのイメージファイル(System.img)を格納しています。
VMのイメージファイルは約2GBにしています。


Dom0 のディスク認識

まず、Dom0が認識しているディスクを見てみます。


[root@ovs11 ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1              14        1044     8281507+  83  Linux
/dev/sda2   *           1          13      104391   83  Linux
Partition table entries are not in disk order

Disk /dev/sdb: 12.8 GB, 12884901888 bytes
255 heads, 63 sectors/track, 1566 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1        1435    11526606   83  Linux
/dev/sdb2            1436        1566     1052257+  82  Linux swap / Solaris
[root@ovs11 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             7.7G  1.5G  5.8G  21% /
/dev/sda2              99M   45M   49M  48% /boot
tmpfs                 257M     0  257M   0% /dev/shm
none                  256M   40K  256M   1% /var/lib/xenstored
/dev/sdb1              11G  4.2G  6.9G  38% /var/ovs/mount/84D81812DF944D3CBF42AB164A70CC06

/dev/sdb1 の約12GBの領域が、
 VMのイメージファイルを格納しているリポジトリ (/OVS) です。
[root@ovs11 ~]# ls -ld /OVS
lrwxrwxrwx 1 root root 47 Dec 29 16:33 /OVS -> /var/ovs/mount/84D81812DF944D3CBF42AB164A70CC06
Dom0から見たVMの仮想ディスク(System.img)は、
2GBのファイルとして見えています。


[root@ovs11 ~]# ls -lh /OVS/running_pool/EL52_vm1/*
-rw-r--r-- 1 root root 2.1G Dec 31 17:35 /OVS/running_pool/EL52_vm1/System.img
-rw-r--r-- 1 root root  251 Dec 30 20:56 /OVS/running_pool/EL52_vm1/vm.cfg

DomUからのディスク認識

VMからは、2GBのSystem.imgファイルの内部だけが見えています。


VMが認識しているディスク領域を合計すると、約2GBになります。
[root@vm1 ~]# 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
[root@vm1 ~]# 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         261     2000092+  83  Linux
/dev/xvda3             262         262        8032+  82  Linux swap / Solaris

以上、今回もOVSのディスク認識の話でした。

2013年1月2日水曜日

OVSのディスクについて(1回目)

今回は、Oracle VM Server(OVS)でのディスク(ディスク記憶域)認識についての話です。

OVS環境(=Xen環境)のディスクについて考えるには2つの視点が必要だと思います。
  • Dom0が認識するディスク
  • VM(DomU)が認識するディスク

Dom0のディスク認識

OVSをインストールした物理サーバに接続されているディスクは、まずDom0が認識します。
VMにディスク領域(ゲストOSが認識する仮想ディスク)を使用させるためには、
Dom0がディスクイメージファイル(System.imgなど)を作成して、VMに対して割り当てます。


DomUのディスク認識

VMは、DomUからディスクイメージを仮想ディスクとして割り当てられています。
VM用の仮想ディスクは、Dom0ではファイルとして認識していますが、
割り当てられたVM(とその上のゲストOS)は、自分自身のディスク領域として認識します。



Dom0とVM(DomU)のディスク認識のちがい

Dom0からは、OVSが管理しているVMの仮想ディスクすべてにアクセスすることができます。
たとえば、VM用のディスクイメージファイルをDom0にマウントして
中のデータを見る(編集する)こともできてしまいます。


一方、VMからは、自分の仮想ディスク以外の領域は認識できません。
Dom0のディスク領域は見えず、となりのVMのディスク領域も見えません。


以上、OVSのディスク認識の話でした。

2013年1月1日火曜日

OVS on VirtualBoxのネットワークは無差別モードにする

Oracle VM Server(OVS) on VirtualBoxのネットワーク構成についてです。

VirtualBox上のOVSで、さらにVM(ネストVM)を起動すると
そのままではOVS外部のネットワークとは接続ができません。

通常のVMであれば、VM自身に設定されたMACアドレスの通信だけを許可しています。
OVSでは、OVS自身だけでなくネストVMのもつMACアドレスの通信も
許可する必要があるので、プロミスキャス(MACを無差別)で通信するように設定を変更します。

たとえば、下図のような構成だった場合、
OVSをインストールしたVMでは、通常のVMの通信(Dom0のeth0の通信)だけでなく
ネストVMのNIC(VM1のeth0、VM2のeth0)の通信も発生します。


ネストVMを外部ネットワークと接続するためには、
OVSをインストールしたVMの仮想NICの設定で、プロミスキャスモードを有効化します。


VirutualBoxマネージャで、OVSをインストールしたVMのネットワーク設定を変更します。
下のスクリーンショットでは、プロミスキャスモードを「すべて許可」にして有効化しています。

プロミスキャスモードの設定はVMを起動したまま可能ですが、
設定後にOVSを再起動したほうがよいようです。
※VM起動したままの有効化ではうまく動作せず、ネストVMが外部と通信できませんでした。




この、プロミスキャスモードの設定は、
VM上で仮想化ソフトを動かす場合(ネステッドハイパーバイザ構成のときなど)は
OVSに限らず(KVMでも、ESXiでも)必要になり、外側の仮想化ソフトで設定をします。

以上、OVS on VirtualBoxのネットワークについてでした。