株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

Oracle Database 12c 8ノード RACをOracle VM上に作成

Oracle VM上にOracle Database 12c のVMテンプレートを活用して、Oracle Database 12c 8ノード RACを作成してみました。

Oracle VM 3環境を使用している場合、VMテンプレートを用いたVMの構成は、通常 DeployClusterを使用します。しかし、いくつかの理由により、Dom-0のコマンド操作ならびに自作のシェルスクリプトでVMを構成しました。

一部の作業をシェルスクリプト化していることから、再現可能なレベルでの手順をお伝えすることは難しいですが、大枠の流れは以下の通りになりました。

VMテンプレート 初期構成サービス用の設定ファイルを準備

VMテンプレートに含まれるVMをsingleモードで起動(xm create -c vm.cfg extra=" console=hvc0 single")、するか、仮想ディスクのファイルをkpartxコマンドでマウントするなどして、VM内の初期構成サービス用の設定ファイルを編集および配置する。ランレベル3,5でVMを起動(いわゆる通常の起動)すると、ブート時に初期構成サービスが起動して、初期構成作業が始まってしまうので注意。

  • /etc/sysconfig/ovmd を INITIAL_CONFIG=noに(VM起動時にovmdによる設定処理が起動しないように)。
  • /u01/racovm/netconfig.ini に全ノードのIPアドレス情報などを記載 (netconfig.shによるネットワーク設定に使用される)
  • /u01/racovm/params.ini にOracle Grid Infrastructure, Oracle Databaseの構成情報を記載(buildcluster.shにより使用される)

VM共通に追加したい作業をあらかじめ実施

VM共通に追加したい作業を、VMの複製前にあらかじめ実施しておくと、VMを複製してからそれぞれのVMに実行する手間を省けます。

singleモードで起動して、以下のコマンドを実行して、一旦 VMテンプレート 初期構成サービスを無効化します。

chkconfig boot-line-dbracovm-template-bypass off
chkconfig ovmd off
chkconfig dbracovm-template.init off

この状態で、VM共通に追加したい作業をあらかじめ実施します。私の場合は、以下の作業を実行しました。

  • X-Windowサーバをインストール
    yum groupinstall 'X Window System' 'Desktop' 'General Purpose Desktop' 'Japanese Support'
  • sudo設定を修正(oracle, gridユーザーでのsudo実行設定の制限を弱める)
  • など

OCFS2 reflinkで仮想ディスクファイルをThin Clone

VMテンプレート(1台分の仮想ディスクファイル)を VMの数だけ、Thin Cloneでコピーします。Thin Cloneであるため、使用するディスク容量を節約できます。

共有ディスクを追加

ddコマンドで共有ディスクを追加し、vm.cfgに共有ディスクの接続情報を記載します

VMテンプレートにより若干の違いはあるはずですが、このVMテンプレートを用いてRACを構成する場合、/dev/xvc, /dev/xvd, /dev/xve, /dev/xvf, /dev/xvgの5つの共有ディスクを構成することが原則的に必須になるはずです。

初期構成サービスのオプションを指定してVMを起動する

kernelに渡されるパラメータとして template-reconfig-args=... を指定して、ノード1以外の全ノードを起動します。このtemplate-reconfig-argsの指定は、boot-line-dbracovm-template-bypassサービスを経由して、ovmdサービスに渡され、オプションに応じて初期構成スクリプトが実行するためのものです。オプションを指定しないと、ブート時に指定項目の入力を求められる点に注意が必要です。

-n? オプションは、VM起動時に -n? オプションを指定して /u01/racovm/netconfig.sh コマンドを実行することを指定するものです。下記のようにVMを起動すると、ノード2では/u01/racovm/netconfig.sh -n2が実行されます。 他のノードについても同様です。netconfig.shはnetconfig.iniにしたがい、各VMのネットワーク設定を行うコマンドです。

xm create vm.cfg.2 extra=" console=hvc0 template-reconfig-args='-n2'"
  : 
xm create vm.cfg.8 extra=" console=hvc0 template-reconfig-args='-n8'" 

ノード1以外の全ノードが起動し、ネットワーク設定が完了していることをpingコマンドなどで確認したら、ノード1を起動します。

xm create -c vm.cfg.1 extra=" console=hvc0 template-reconfig-args='-n1 -b'"

template-reconfig-argsに -n1 に加えて-b を指定し、以下の処理が実行されるようにします。

  • /u01/racovm/netconfig.sh -n1
  • /u01/racovm/buildcluster.sh

buildcluster.shは/u01/racovm/params.iniの設定に従い、Oracle Grid Infrastructure, Oracle Databaseの構成を行うスクリプトです。

構成完了!

6コア+HTの物理サーバ上に、各VMに1CPU, メモリ2Gを割り当てる構成として、1時間10分ほどで buildcluster.shの実行が完了しました。(本来であれば、VM起動時に自動的にbuildcluster.shが実行されますが、以下では手動でbuildcluster.shを実行しています)

[root@lc101ru1 ~]# /u01/racovm/buildcluster.sh
Are you sure you want to install RAC Cluster?
Do not run if software is already installed and/or running..  [yes|no]? yes
Invoking on lc101ru1 as root...
   Oracle DB/RAC 12c/11gR2 OneCommand (v2.0.11) for Oracle VM - (c) 2010-2013 Oracle Corporation
   Cksum: [2018127693 489500 racovm.sh] at Fri Aug 23 03:25:41 EDT 2013
   Kernel: 2.6.39-400.109.1.el6uek.x86_64 (x86_64) [1 processor(s)] 1997 MB | xen
   Kit Version: 12.1.0.1.0 (RAC Mode, 8 nodes)
   Step(s): buildcluster

INFO (node:lc101ru1): Skipping confirmation, flag (-s) supplied on command line
2013-08-23 03:25:41:[buildcluster:Start:lc101ru1] Building 12c RAC Cluster
2013-08-23 03:25:42:[setsshroot:Start:lc101ru1] SSH Setup for the root user...

  : 

INFO (node:lc101ru1): Running on: lc101ru1 as root: /u01/app/12.1.0/grid/bin/crsctl status resource -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
               ONLINE  ONLINE       lc101ru1                 STABLE
               ONLINE  ONLINE       lc101ru2                 STABLE
               ONLINE  ONLINE       lc101ru3                 STABLE
               ONLINE  ONLINE       lc101ru4                 STABLE
               ONLINE  ONLINE       lc101ru5                 STABLE
               ONLINE  ONLINE       lc101ru6                 STABLE
               ONLINE  ONLINE       lc101ru7                 STABLE
               ONLINE  ONLINE       lc101ru8                 STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       lc101ru1                 STABLE
               ONLINE  ONLINE       lc101ru2                 STABLE
               ONLINE  ONLINE       lc101ru3                 STABLE
               ONLINE  ONLINE       lc101ru4                 STABLE
               ONLINE  ONLINE       lc101ru5                 STABLE
               ONLINE  ONLINE       lc101ru6                 STABLE
               ONLINE  ONLINE       lc101ru7                 STABLE
               ONLINE  ONLINE       lc101ru8                 STABLE
ora.asm
               ONLINE  ONLINE       lc101ru1                 STABLE
               ONLINE  ONLINE       lc101ru2                 Started,STABLE
               ONLINE  ONLINE       lc101ru3                 Started,STABLE
               ONLINE  ONLINE       lc101ru4                 Started,STABLE
               ONLINE  ONLINE       lc101ru5                 Started,STABLE
               ONLINE  ONLINE       lc101ru6                 Started,STABLE
               ONLINE  ONLINE       lc101ru7                 Started,STABLE
               ONLINE  ONLINE       lc101ru8                 Started,STABLE
ora.net1.network
               ONLINE  ONLINE       lc101ru1                 STABLE
               ONLINE  ONLINE       lc101ru2                 STABLE
               ONLINE  ONLINE       lc101ru3                 STABLE
               ONLINE  ONLINE       lc101ru4                 STABLE
               ONLINE  ONLINE       lc101ru5                 STABLE
               ONLINE  ONLINE       lc101ru6                 STABLE
               ONLINE  ONLINE       lc101ru7                 STABLE
               ONLINE  ONLINE       lc101ru8                 STABLE
ora.ons
               ONLINE  ONLINE       lc101ru1                 STABLE
               ONLINE  ONLINE       lc101ru2                 STABLE
               ONLINE  ONLINE       lc101ru3                 STABLE
               ONLINE  ONLINE       lc101ru4                 STABLE
               ONLINE  ONLINE       lc101ru5                 STABLE
               ONLINE  ONLINE       lc101ru6                 STABLE
               ONLINE  ONLINE       lc101ru7                 STABLE
               ONLINE  ONLINE       lc101ru8                 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       lc101ru1                 STABLE
ora.c101ru.db
      1        ONLINE  ONLINE       lc101ru1                 Open,STABLE
      2        ONLINE  ONLINE       lc101ru2                 Open,STABLE
      3        ONLINE  ONLINE       lc101ru3                 Open,STABLE
      4        ONLINE  ONLINE       lc101ru4                 Open,STABLE
      5        ONLINE  ONLINE       lc101ru5                 Open,STABLE
      6        ONLINE  ONLINE       lc101ru6                 Open,STABLE
      7        ONLINE  ONLINE       lc101ru7                 Open,STABLE
      8        ONLINE  ONLINE       lc101ru8                 Open,STABLE
ora.cvu
      1        ONLINE  ONLINE       lc101ru1                 STABLE
ora.lc101ru1.vip
      1        ONLINE  ONLINE       lc101ru1                 STABLE
ora.lc101ru2.vip
      1        ONLINE  ONLINE       lc101ru2                 STABLE
ora.lc101ru3.vip
      1        ONLINE  ONLINE       lc101ru3                 STABLE
ora.lc101ru4.vip
      1        ONLINE  ONLINE       lc101ru4                 STABLE
ora.lc101ru5.vip
      1        ONLINE  ONLINE       lc101ru5                 STABLE
ora.lc101ru6.vip
      1        ONLINE  ONLINE       lc101ru6                 STABLE
ora.lc101ru7.vip
      1        ONLINE  ONLINE       lc101ru7                 STABLE
ora.lc101ru8.vip
      1        ONLINE  ONLINE       lc101ru8                 STABLE
ora.oc4j
      1        OFFLINE OFFLINE                               STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       lc101ru1                 STABLE
--------------------------------------------------------------------------------

INFO (node:lc101ru1): For an explanation on resources in OFFLINE state, see Note:1068835.1
2013-08-23 04:35:55:[clusterstate:Time :lc101ru1] Completed successfully in 5 seconds (0h:00m:05s)
2013-08-23 04:35:55:[buildcluster:Done :lc101ru1] Building 12c RAC Cluster
2013-08-23 04:35:56:[buildcluster:Time :lc101ru1] Completed successfully in 4214 seconds (1h:10m:14s)

INFO (node:lc101ru1): This entire build was logged in logfile: /u01/racovm/buildcluster1.log
[root@lc101ru1 ~]#

なかなか壮観でしょ 😉

仮想環境での多ノードRACといえば・・・

仮想環境での多ノードRACといえば、JPOUGの大島さんです。 Amazon EC2上で16ノード構成のRACを構築されたこともある、多ノードRAC構築の達人です。

いつかOracle VMでも16ノードRACを構成してみたいですね!

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ