Oracle VMでOracle WebLogic Serverを動かしてみよう

企業システムでは、サーバーの利用効率を向上し、より柔軟な運用を可能にする「サーバー仮想化」が、ますます広まりつつあります。オラクルが提供する「Oracle VM」は、Oracle Databaseのみならず、Oracle Fusion MiddlewareOracle Applicationsでも動作保証されている、唯一のサーバー仮想化ソフトウェアです。

さて今回は、Oracle VMを使ったことがない方向けに、1台の物理マシンにOracle VMをインストールし、その上でOracle WebLogic Serverを動かすまでの手順をご紹介します。

ここではOracle VM自体に関して詳しく説明しないので、Oracle VMの詳細に関しては次の情報源を参考にしてください。

Oracle VMは、ハイパーバイザーが動作する1台以上の「Oracle VM Server」と、これらのOracle VM Serverを管理するためのGUI管理コンソールを提供する「Oracle VM Manager」から構成されます。

今回は簡単のため、Oracle VM Managerは使用せず、1台の物理マシンにOracle VM Serverを構成し、その上のゲスト仮想マシンとしてOracle WebLogic Server環境を構築していきます。Oracle VM Serverの管理には、Oracle VM Managerの代わりに、管理コマンドを使います。

ゲスト仮想マシンとして、新規にOS (Oracle Enterprise Linuxなど) をインストールし、その上に新規にOracle WebLogic Serverをインストールすることは、もちろん可能です。

ですが今回は、「Oracle VMテンプレート」と呼ばれる、Oracle VM向けの事前構成済みのソフトウェア・イメージを利用することにします。

Oracle VMテンプレートの一覧を見ると分かるように、OS (Oracle Enterprise Linux) のみのテンプレートのみならず、 Oracle Database、Oracle RACOracle Enterprise Manager、Oracle Fusion MiddlewareOracle Applicaitonsなど、数多くのオラクル製品のテンプレートが提供されています。

実は、Oracle VM Managerのテンプレートもあるので、(物理マシンのリソースが許すなら) 1台の物理マシン上でOracle VM Serverを動かし、その上のゲスト仮想マシンとしてOracle VM Managerを動かすこともできます (今回は行いません…)。

残念ながら、最新のOracle WebLogic Server 11g R1 (10.3.2) のテンプレートはまだ提供されていないので、今回は、Oracle WebLogic Server 10g R3 (10.3) のテンプレートを使っていきます。

このテンプレートに含まれているソフトウェアは、次の3つです。

ちなみに、OEL (Oracle Enterprise Linux) のJeOS (Just Enough OS) とは、サーバー向けLinuxのフル機能を提供するOELから最低限必要な機能だけに絞り込んだ、OELの軽量版であり、Oracle VMテンプレートをカスタムで構築する場合に便利なものです。

Oracle WebLogic Server 10g R3 (10.3) や、それ以前のBEA WebLogic Serverでは、WebLogic Serverのインストーラに英語版とCCJK版 (中国語/日本語/韓国語へのローカライズ版) がありました。今回使うテンプレートでは、残念ながら英語版がインストールされているため、WebLogic Serverの管理コンソールなどは英語表記になります。ちなみに、Oracle WebLogic Server 11g R1 (10.3.1) 以降では、他のオラクル製品と同じように、単一のインストーラで日本語を含む多言語に対応済みです。

というわけで、今回構築する環境のスタックはこうなります。

WebLogic
JRockit
OEL
domU | dom0
ハイパーバイザー
物理マシン

では早速、環境構築に取り掛かりましょう。まず、ソフトウェアのダウンロードからです。

OEL/Oracle VM向けのOracle E-Deliveryから、使用する物理マシンに応じて32ビットまたは64ビットのOracle VM 2.2をダウンロードします。Oracle VM 2.2.0 Media Packの中には、「Oracle VM Manager 2.2.0」など4つのメディアがありますが、今回の目的のためには「Oracle VM Server 2.2.0」だけでOKです。

また、使用する物理マシンに応じて32ビットまたは64ビットの「Oracle VM Template for Oracle WebLogic Server 10gR3 Media Pack」もダウンロードしておきます。

次に、物理マシンにOracle VM Serverをインストールします。ダウンロードしたOracle VM ServerのISOファイルをCDに書き込んでおき、そのCDを使って物理マシンをブートします。

マニュアル「Oracle VM Server インストレーション・ガイド」も参照してください。

Oracle VM Serverのインストーラでは、ネットワーク関連の設定があります。開発、検証、本番環境向けに使うのであれば、固定のIPアドレスやホスト名を割り当てるべきですが、とりあえず試してみるだけなら、DHCPIPアドレスを取得する設定にしておいても大丈夫です。

インストーラでは、Oracle VM Agentパスワード、rootユーザーのパスワードの入力を求められます。今回のシナリオでは、rootユーザーのパスワードを後で使うので、忘れないようにしておきましょう。

インストーラが完了すると、物理マシンが再起動され、Oracle VM Serverのログイン・プロンプトが表示されます。rootユーザーとしてログインしましょう。

Oracle VMLinuxベースのXenを採用しており、今ログインしたのは、ドメイン0 (dom0) と呼ばれる管理ドメインになります。

dom0のrootユーザーでは、Linuxの基本的なコマンド群に加えて、Oracle VM Server (Xen) の管理コマンド「xm」も使えます。「xm list」、「xm info」、「xm top」などのコマンドを試してみましょう。

続いて、Oracle VMテンプレートの構成を行っていきます。次のマニュアルの「テンプレートを使用したゲストの作成」の節も参照してください。

まず、dom0のrootユーザーで、FTPなどを使ってOracle WebLogic ServerのOracle VMテンプレートを入手します。ZIP形式になっているので、それを /OVS/seed_pool に展開します。このテンプレートには、README、仮想マシン構成ファイル (vm.cfg)、3つのimgファイルが含まれています。

次に、ゲスト仮想マシン向けの新しいMACアドレスを生成し、生成されたMACアドレスvm.cfgファイルの「vif」に追記します。

# export PYTHONPATH=/opt/ovs-agent-2.3

# python -c "from OVSCommons import randomMAC; print randomMAC()"

「xm create vm.cfg」コマンドで、テンプレートからゲスト仮想マシンを新規作成します。

「xm create」コマンドが完了すると、新規作成されたゲスト仮想マシンが起動されているので、「xm list」、「xm info」、「xm top」などのコマンドで、ゲスト仮想マシンの情報を確認します。

「xm list -l ゲスト仮想マシンID」で出力されるVNCアクセス用のポート番号を確認しておきます。たとえば、(location 0.0.0.0:5900) ならポート5900です。

次に、Oracle VM Serverではないクライアント・マシン上のVNCクライアント (Linuxのvncviewerコマンドや、WindowsのTightVNCなど) から、ゲスト仮想マシンのコンソールにアクセスします。VNCの接続先は、Oracle VM ServerのIPアドレス/ホスト名と、先ほど確認したポート番号です。DHCPの場合、dom0のコンソールで「ifconfig」コマンドを使って、Oracle VM ServerのIPアドレスを確認できます。

VNCでゲスト仮想マシンにアクセスすると、OELのログイン・プロンプトが表示されます。テンプレートのマニュアルに記載されている通り、root/ovsrootでログインします。

ログインすると、JumpStartと呼ばれるツールのメニューが表示され、デフォルト・ドメインの管理サーバーを起動する、コンフィグレーション・ウィザードを起動するなどの作業を行えます。ここでは、デフォルト・ドメインの管理サーバーを起動してみましょう。

管理サーバーが起動したら、クライアント・マシンから管理コンソールのURLにアクセスしてみましょう。管理コンソールのユーザー名/パスワードは、weblogic/weblogicです。WebLogic Serverやその管理コンソールのIPアドレス/ホスト名は、ゲスト仮想マシンIPアドレス/ホスト名であり、JumpStartの出力やifconfigコマンドなどで確認できます。

また、WebLogic ServerやJRockitのインストール・ディレクトリは /opt/oracle、WebLogicドメインディレクトリは /u01 にあるので、覗いてみましょう。基本的には、サーバー仮想化なしに物理サーバーに直接インストールしたOracle WebLogic Serverの場合と同様に管理できます。

ゲスト仮想マシンのrootユーザーで、/u01/domains/default_domain/bin/stopWebLogic.sh を実行し、起動済みのデフォルト・ドメインの管理サーバーを停止します。そして、「shutdown -h now」コマンドで、ゲスト仮想マシンのOELをシャットダウンしましょう。

再び、dom0のコンソールに戻り、dom0のrootユーザーで「xm list」コマンドなどを実行し、ゲスト仮想マシンが正しく停止されていることを確認します。

これで、今回のハンズオンは終了です。今回行ったことは、次の通りです。

Oracle WebLogic Serverだけであればそれほど複雑ではありませんが、より複雑なソフトウェア構成 (WebLogic Server + デプロイ済みJava EEアプリ + Oracle Database、Oracle SOA Suite、Oracle WebCenter Suiteなど) を考えてみれば、Oracle VMと (オラクルが提供する、あるいはカスタム作成した) テンプレートを活用して、開発/検証環境、あるいは本番環境を管理するメリットが想像できると思います。

これを読んでもし興味を持ったら、ぜひOracle VM + オラクル製品の組合せをお試しください!