2013年3月24日日曜日

Oracle VM 3 のNFSストレージ管理について。

今回は、Oracle VM 3(OVM3)でのストレージ管理の話です。

Oracle VM Manager(OVMM)では、
Oracle VM Server(OVS)が使用するストレージを
記憶域リポジトリ等を作成する前に登録しておく必要があります。
そのときに、ストレージごとに「ストレージの管理サーバ(Admin Servers)」を登録する必要があります。



下のスクリーンショットでは、「nfs_oel_236」 というNFSサーバに対して
「ovs321-2」 というOVSを管理サーバとして指定しています。
OVSの担当する「ユーティリティ サーバ」と呼ばれる役割とは別のものです。



この「管理サーバ」とは、
OVMMでストレージに対して管理操作(記憶域リポジトリ作成など)をするときに
そのストレージにに対して実際に処理をするOVSです。



管理サーバは、サーバプールをまたいでも指定できるので、
たとえば「どれが管理サーバだっけ」といった混乱を避けるために
管理サーバ用サーバプールを作ったりもできそうです。



「OVMM → ストレージ管理OVS」と「ストレージ管理OVS → ストレージ」の
接続経路をちゃんと確保しておく必要があるので
NW構成変更をするときには注意が必要です。

以上、OVM3のストレージ管理サーバの話でした。

2013年3月22日金曜日

Oracle VM 3 の プールファイルシステムについて。

今回は、Oracle VM 3 のプールファイルシステムについての話です。

Oracle VM では、
まず Oracle VM Manager(OVMM)でサーバプールを作成して、
そこに Oracle VM Server(OVS)を参加させます。
VMwareの vSphereと似た感じで、この「サーバプール」が
VMのHA機能やDRS/DPMの管理単位になっています。

このサーバプールを「クラスタ対応」のものとして作成する場合、
サーバプールのファイルシステム(Pool File System) が必要になります。
※シングルサーバプールには、プールファイルシステムは不要です。

1つのサーバプールには、1つのサーバプールが必要になります。
今回、例にしている環境では 「192.168.4.236:/nfs/vol1/share1」をプールファイルシステムにしています。



ためしに、プールファイルシステムがOVSからどのように見えるか見てみます。
今回はNFSをプールファイルシステムにしてます。
FCなどを使用している場合は、違った見え方になります。


まず、サーバプール内の1台目のOVSです。

下記の領域が、プールファイルシステムとして使用されています。
192.168.4.236:/nfs/vol1/share1
/dev/mapper/ovspoolfs
[root@ovs321-1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             6.7G  772M  5.6G  12% /
/dev/sda1              99M   28M   67M  29% /boot
tmpfs                 232M     0  232M   0% /dev/shm
none                  232M  104K  232M   1% /var/lib/xenstored
192.168.4.236:/nfs/vol1/share1
                       15G  827M   14G   6% /nfsmnt/818e5b06-82fc-4f92-a3cc-7ebb2f837adc

/dev/mapper/ovspoolfs
                       10G  263M  9.8G   3% /poolfsmnt/0004fb00000500003ef6341e33b0590e

192.168.4.237:/nfs/vol1/share1
                       13G  2.9G  9.3G  24% /OVS/Repositories/0004fb00000300005d636797dbfa991c
192.168.4.236:/nfs/vol2/share1
                       40G   21G   17G  55% /OVS/Repositories/0004fb0000030000ea10936ed4b4ff59

そして、サーバプール内の2台目のOVSです。
1台目のOVSと同様のNFS領域がマウントされています。
[root@ovs321-2 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             6.7G  768M  5.6G  12% /
/dev/sda1              99M   28M   67M  29% /boot
tmpfs                 232M     0  232M   0% /dev/shm
none                  232M  104K  232M   1% /var/lib/xenstored
192.168.4.236:/nfs/vol1/share1
                       15G  827M   14G   6% /nfsmnt/818e5b06-82fc-4f92-a3cc-7ebb2f837adc

/dev/mapper/ovspoolfs
                       10G  263M  9.8G   3% /poolfsmnt/0004fb00000500003ef6341e33b0590e

192.168.4.237:/nfs/vol1/share1
                       13G  2.9G  9.3G  24% /OVS/Repositories/0004fb00000300005d636797dbfa991c
192.168.4.236:/nfs/vol2/share1
                       40G   21G   17G  55% /OVS/Repositories/0004fb0000030000ea10936ed4b4ff59
どちらのサーバもおなじように 3つのNFSをマウントしていますが
下記の2つは、VMや仮想ディスクを格納する「記憶域リポジトリ」で、
プールファイルシステムではありません。

192.168.4.237:/nfs/vol1/share1
192.168.4.236:/nfs/vol2/share1


プールファイルシステムとして使用されている
192.168.4.236:/nfs/vol1/share1 は、サーバプール内の全OVSから
/nfsmnt/~というディレクトリにマウントされていて、
中には ovspoolfs.img という
10GB のイメージファイル(実際はまだ133MBだけしか使用していない)が作成されています。
[root@ovs321-2 ~]# ls -lh /nfsmnt/818e5b06-82fc-4f92-a3cc-7ebb2f837adc
total 133M
-rw------- 1 root root 10G Mar 22  2013 ovspoolfs.img

上の方で実行したOVSでの df コマンドの結果からわかるように、
この ovspoolfs.img も、すべてのOVSサーバから
/poolfsmnt/~ というディレクトリにマウントされています。

/dev/mapper/ovspoolfs
            10G  263M  9.8G   3% /poolfsmnt/0004fb00000500003ef6341e33b0590e

この中には、サーバプールのクラスタの構成情報が含まれます。
[root@ovs321-2 ~]# ls -lR /poolfsmnt/0004fb00000500003ef6341e33b0590e
/poolfsmnt/0004fb00000500003ef6341e33b0590e:
total 0
drwx------ 2 root root 3896 Mar 17 12:59 db
drwxr-xr-x 2 root root 3896 Mar 17 00:24 lost+found

/poolfsmnt/0004fb00000500003ef6341e33b0590e/db:
total 36
-rw------- 1 root root 12288 Mar 22 01:20 monitored_vms
-rw------- 1 root root 12288 Mar 22 01:17 server_pool
-rw------- 1 root root 12288 Mar 22 01:18 server_pool_servers

/poolfsmnt/0004fb00000500003ef6341e33b0590e/lost+found:
total 0

データは、Berkeley DB で管理されているみたいです。
[root@ovs321-1 ~]# cd /poolfsmnt/0004fb00000500003ef6341e33b0590e/db/
[root@ovs321-2 db]# ls -lh
total 36K
-rw------- 1 root root 12K Mar 22 01:20 monitored_vms
-rw------- 1 root root 12K Mar 22 01:17 server_pool
-rw------- 1 root root 12K Mar 22 01:18 server_pool_servers

[root@ovs321-2 db]# file *
monitored_vms:       Berkeley DB (Hash, version 8, native byte-order)
server_pool:         Berkeley DB (Hash, version 8, native byte-order)
server_pool_servers: Berkeley DB (Hash, version 8, native byte-order)

以上、OVM 3 のプールファイルシステムの話でした。

2013年3月19日火曜日

Oracle VM 3 の NFS記憶域リポジトリ

ためしに、NFS記憶リポジトリを Oracle VM Server 3 (OVS)にマウントしてみました。

まずは、NFSストレージを Oracle VM Managerに登録します。
ためしに、2つのNFSサーバを登録してみました。



NFSサーバ2台から、それぞれ記憶域リポジトリを作成しました。
どちらも「ovs321-1」というOVSにマウントされるように設定してあります。

1つ目のリポジトリは、
0004fb0000030000ea10936ed4b4ff59
というIDがで識別されました。



2つ目のリポジトリは、
0004fb00000300005d636797dbfa991c
というIDがで識別されました。




OVSにログインして記憶域リポジトリを見ると、このように見えます。
[root@ovs321-1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             6.7G  769M  5.6G  12% /
/dev/sda1              99M   28M   67M  29% /boot
tmpfs                 232M     0  232M   0% /dev/shm
none                  232M  104K  232M   1% /var/lib/xenstored
192.168.4.236:/nfs/vol1/share1
                       15G  827M   14G   6% /nfsmnt/818e5b06-82fc-4f92-a3cc-7ebb2f837adc
/dev/mapper/ovspoolfs
                       10G  263M  9.8G   3% /poolfsmnt/0004fb00000500003ef6341e33b0590e
192.168.4.237:/nfs/vol1/share1
                       13G  286M   12G   3% /OVS/Repositories/0004fb00000300005d636797dbfa991c
192.168.4.236:/nfs/vol2/share1
                       40G   13G   25G  34% /OVS/Repositories/0004fb0000030000ea10936ed4b4ff59
上記のように、OVSの /OVS/Repositories ディレクトリ配下には
いくつも記憶域リポジトリをマウントすることができます。

ちなみに、上記で見えている
192.168.4.236:/nfs/vol1/share1
/dev/mapper/ovspoolfs
の2つの領域(実際は1領域)は、Pool File System と呼ばれる、
記憶域リポジトリとは別用途で使用されています。


それぞれの記憶域リポジトリの下には、同じディレクトリ構造が作成されてます。
[root@ovs321-1 ~]# ls /OVS/Repositories/0004fb00000300005d636797dbfa991c
Assemblies  ISOs  Templates  VirtualDisks  VirtualMachines

[root@ovs321-1 ~]# ls /OVS/Repositories/0004fb0000030000ea10936ed4b4ff59
Assemblies  ISOs  Templates  VirtualDisks  VirtualMachines
たとえば、
VMの構成ファイル(vm.cfg)は VirtualMachines ディレクトリの配下、
VMの仮想ディスクイメージファイルは VirtualDisks  ディレクトリの配下に格納されます。

OVM 3 からは複数のリポジトリをマウントしやすくなり、
VMごとにストレージ領域(リポジトリ)を分けて配置しやすくなったとのではないかと思います。

以上、OVSのNFS記憶域リポジトリでした。


2013年3月18日月曜日

Oracle VM 3 の「記憶域リポジトリ」について。


今回は Oracle VM 3(OVM3)の記憶域リポジトリの話です。

Oracle VM Serverの「記憶域リポジトリ」とは
VMの構成ファイルやディスクイメージファイル、
ISOファイル、VMテンプレートなどを格納する領域です。

記憶域リポジトリのディレクトリ構造はOVM 2 とOVM 3 で大きく変化しました。

以前(OVM 2 のころ)は、こんな感じでした。
[root@ovs1 ~]# cat /etc/ovs-release
Oracle VM server release 2.2.1
[root@ovs1 ~]# tree -L 1 /OVS
/OVS
|-- iso_pool
|-- lost+found
|-- publish_pool
|-- running_pool
|-- seed_pool
`-- sharedDisk

OVM 3 からはこんな感じになっています。
[root@ovs2 ~]# cat /etc/ovs-release
Oracle VM server release 3.2.1
[root@ovs2 ~]# ls /OVS/
Repositories
[root@ovs2 ~]# ls /OVS/Repositories/
0004fb0000030000cb5f6d6c030152f1
[root@ovs2 ~]# ls /OVS/Repositories/0004fb0000030000cb5f6d6c030152f1
Assemblies  ISOs  lost+found  Templates  VirtualDisks  VirtualMachines
※OVS3には treeコマンド入ってませんでした。

OVM 2のときに Xenコマンド(xm)などで直接操作していた場合、
リポジトリのパスが変更されているので
手書きで指定していた仮想ディスクイメージファイルのパスもかわり、
VMの構成ファイル(vm.cfg)を書き換える必要があったりします。

たとえば、下記のような感じです。
★OVM2のとき
disk = ['file:/OVS/running_pool/vm01/System.img,xvda,w']
↓
★OVM3仕様
disk = ['file:/OVS/Repositories/~UUID~/VirtualMachines/vm01/System.img,xvda,w']
/OVS/Repositories ディレクトリの直下に
UUIDで複数のリポジトリ領域がマウントされることになります。

ちょっと複雑な構造になりましたが、
そのかわりに、1台のOVSに対して複数のリポジトリ領域を割り当てて
扱いやすくなったと思います。

以上、記憶域リポジトリの話でした。

2013年3月17日日曜日

Oracle VM 3 で必要な共有ストレージ領域について。

Oracle VM 3 の環境の共有ストレージ領域の話です。

Oracle VM 3の環境では、
主に共有ストレージを2つの用途で使用します。
  1. Pool File System
  2. 記憶域リポジトリ
共有ストレージ領域をPool File Systemか記憶域リポジトリとして使用する前に
OVMMにストレージサーバを登録しておく必要があります。



共有ストレージでは、FCやiSCSIのストレージも使用できますが
今回の例では、手軽なNFSストレージ(Oracle Linuxで構築)を使用しています。


1. Pool File System

OVMMでは、OVSを管理するために「サーバプール」を作成します。
サーバプールを「Clustered Server Pool」として作成する場合に
必ず1つの Pool File System が必要です。
この領域はクラスタ管理のために使用され、
VMのイメージファイルなどを配置することはできません。

下記は、サーバプールの作成中に、Pool File System を指定している画面です。



Pool File System として使用されいている領域は、
サーバプールの「Info」画面(下記の赤枠のあたり)を見るとわかりやすいと思います。
この領域は、記憶域リポジトリとは別に必要になります。



この領域は、初期では140MBくらいしか実領域を使用していませんが、
12GB以上の共有ストレージ領域を指定しないとエラーが出て
クラスタサーバプールが作成できません。


2. 記憶域リポジトリ

VMのイメージファイル、ISOファイル、VMのテンプレートなどを格納できる領域です。

VMに割り当てる仮想ディスクや
インストールで使用するDVDイメージ(ISOファイル)などを配置するため、
大きな容量(数十GB~数百GB)が必要になります。

記憶域リポジトリは、OVS に対して割り当てる
(OVSが使用できるように、明示的に領域を提示する)必要があります。




以上、OVM 3 で必要な共有ストレージ領域の話でした。

2013年2月28日木曜日

Oracle VM Manager 3.2 と VNC Viewer

Oracle VM Manager(OVMM)でVMのコンソールを開くとき、
VNCビューアが使用されます。

Oracle VM のマニュアルを読んだところ、
ORACLE社的には、RealVNCがおすすめなようです。

今回は、VNC Viewer でコンソールを開くための設定についてです。

インストールが必要なもの

コンソールを開くために、下記が必要です。
無償で入手できるので、あらかじめDLしてOVMMを開く端末にインストールしておきます。
ブラウザは、IEでも大丈夫です。ちなみに私はIE9を使用しています。
  • Java(JRE)
  • RealVNC
  • Webブラウザ(IEでもよい)

コンソールが開くまで

まず、OVMMで、VMのモニタのボタンをクリックします。
本来であれば、このままVMのモニタが開きます。


残念なことに、開かないことがほとんどだと思います。
「The vnc viewer is not installed on the manager server and no local vnc viewer is found.
Please contact your administrator to install the default vnc viewer on the manager.」



ここで、画面右上に表示される Java のウインドウに注目します。



「Option」 をクリックし、「Configuration」 をクリックします。



VNC Viewer のパスを指定するウインドウが表示されるので、フルパスで入力します。
「Browse」ボタンで選択してもOKです。

指定するパスは、
「"C:\Program Files (x86)\RealVNC\vncviewer.exe"」あたりになります。
これを指定することで、OVMM と VNCビューアが連携できるようになります。



これでVMの画面が開けるようになります。


OVS3にOVS3をインストールしている画面が・・・
Nested Hypervisor 的なことをやっています。

以上、OVMM 3 とVNCビューアの話でした。

2013年2月27日水曜日

Oracle VM Manager 3.2.1 インストール失敗例

今回は、Oracle VM Manager 3.2.1 のインストール失敗例です。
成功例はこちら。
Oracle VM Manager 3.2.1 インストール。

失敗した時のOVMMアンインストール方法はこちら。
Oracle VM Manager 3.2.1 のアンインストール。

失敗例1: シェル制限設定もれ

OVMMのインストール中に
「hardnofiles should be set to 8192 but was 4096」 というエラーが表示され失敗します。
MySQLのメモリサイズに関するWarninig(警告)の直後なのでわかりにくいですが、
シェル制限「nofile」設定のチェックで引っかかっています。
※ちなみに引っかかった「nofile」はユーザが開けるファイル数についての制限です。
[root@ovmm31 mnt]# ./runInstaller.sh

Oracle VM Manager Release 3.2.1 Installer

Oracle VM Manager Installer log file:
/tmp/ovm-manager-3-install-2013-02-18-084138.log

Please select an installation type:
   1: Simple (includes database if necessary)
   2: Custom (using existing Oracle database)
   3: Uninstall
   4: Help

   Select Number (1-4): 1

Starting production with local database installation ...

Verifying installation prerequisites ...
*** WARNING: Recommended memory for the Oracle VM Manager server installation using Local MySql DB is 7680 MB RAM
hardnofiles should be set to 8192 but was 4096
Configuration verification failed ...

/etc/security/limits.conf への設定もれが原因でした。
下記を追記してOVMMを再インストールします。
[root@ovmm31 ~]# vi /etc/security/limits.conf

oracle       hard    nofile  8192 ★このあたりの不足がエラー表示された。
oracle       soft    nofile  8192
oracle       soft    nproc   4096
oracle       hard    nproc   4096
oracle       soft    core    unlimited
oracle       hard    core    unlimited

失敗例:2 SWAP容量不足

OVMMコンポーネントのインストール要件のうち
SWAP領域が微妙に不足したためインストールが停止してしまいました。
[root@ovmm31 mnt]# ./runInstaller.sh

Oracle VM Manager Release 3.2.1 Installer

Oracle VM Manager Installer log file:
/tmp/ovm-manager-3-install-2013-02-18-090241.log

Please select an installation type:
   1: Simple (includes database if necessary)
   2: Custom (using existing Oracle database)
   3: Uninstall
   4: Help

   Select Number (1-4): 1

(中略)
Step 4 of 9 : WebLogic ...
Retrieving Oracle WebLogic Server 11g ...
Installing Oracle WebLogic Server 11g ...

Step 5 of 9 : ADF ...
Retrieving Oracle Application Development Framework (ADF) ...
Unzipping Oracle ADF ...
Installing Oracle ADF ...
Failed to install Oracle ADF ...
            Oracle Universal Installerを起動中です...

CPU速度が300 MHzを超えていることを確認中.    実際1297 MHz    問題なし
一時領域の確認中: 150 MBを超えている必要があります.   実際9326 MB    問題なし
スワップ領域の確認中: 509 MB使用可能、512 MB必要。    失敗しました <<<<
要件でSWAP領域が512MB必要なところ、
ギリギリ512MBで作成したら微妙に不足してしまいました。(認識されたのは509MBのため)

お試し環境の構築などでは、わざわざSWAP領域を用意したり
SWAP領域不足のためにOS再インストールするのがためらわれることがあります。
その場合は、一時的にSWAP領域を追加して対処できます。(例では、+512MBしています)
★SWAP領域用のファイルを作成
[root@ovmm31 mnt]# dd if=/dev/zero of=/tmp/swap1.img bs=1M count=512
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 8.36919 seconds, 64.1 MB/s
[root@ovmm31 mnt]# mkswap /tmp/swap1.img
Setting up swapspace version 1, size = 536866 kB

★SWAP領域に追加
[root@ovmm31 mnt]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/sda2                               partition       522108  220     -1
[root@ovmm31 mnt]# swapon /tmp/swap1.img
[root@ovmm31 mnt]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/sda2                               partition       522108  220     -1
/tmp/swap1.img                          file            524284  0       -2

このSWAP領域は、swapoff コマンドやOS再起動で解除されるので、
不要になったらSWAP領域用のファイルを削除します。
[root@ovmm31 ~]# swapoff /tmp/swap1.img
[root@ovmm31 ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/sda2                               partition       522108  498760  -1
[root@ovmm31 ~]# rm /tmp/swap1.img

以上、OVMM 3.2.1 のインストール失敗例でした。