2013年1月26日土曜日

KVMでRAC+DataGuadの環境を作ってみよう Part3

まだまだ終わりません。あと、タイトルにRACというキーワード加えました。

(7)共有ディスクの設定

RACはシェアードディスクタイプのクラスタなので、 dg01とdg02で共有するディスクイメージをホストOS上で作成します。サイズは50GBとします。
# dd if=/dev/zero of=/vmdata/ss01.img \
  bs=`expr 1024 \* 1024` count=`expr 50 \* 1024`
仮想OSのローカルディスク用イメージとは異なり、QCOW2形式ではなくRAW形式を用います。よく考えれば当たり前ですが、複数の仮想ゲストで動的割当てファイルを共有することはできないようです(最初は気付かずにGrid Infrastructureのroot.shで失敗しまくりました)。

次に仮想ゲストの起動オプションに共有ディスク設定を追加します。
# /usr/libexec/qemu-kvm -k ja \
  -hda /vmdata/dg01root.img \
  -hdb /vmdata/dg01swap.img \
  -drive file=/vmdata/ss01.img,cache=none \
  -boot c -m 4096 -vnc :1 \
  -net nic,macaddr:=54:52:00:12:01:01,vlan=0 \
  -net tap,ifname=tap0,script=addif.sh,downscript=no,vlan=0 \
  -net nic,macaddr:=54:52:00:12:01:02,vlan=1 \
  -net tap,ifname=tap6,script=addif.sh,downscript=no,vlan=1 \
  -net nic,macaddr:=54:52:00:12:01:03,vlan=2 \
  -net tap,ifname=tap11,script=addif.sh,downscript=no,vlan=2
 今まではディスク指定に-hdXというオプションを使ってきましたが、cache=noneを指定するために-driveオプションを利用しています。この指定がないとやはりroot.shが失敗します。

以上の設定を行い仮想ゲストdg01を起動すると、共有ディスクが/dev/sdcとして認識されます。なので同様にss02.img、ss03.imgを作成し、dg03からdg06に追加してきます。

2度書きますが、共有ディスク用のイメージでは以下の2点が重要です。これを守らなくともOracle Universal Installerによる事前チェックは通ることがあるので要注意です。
  • 動的割当を利用しない
  • cache=noneオプションでキャッシュを無効にする 
 (8)Oracleインストール前のゲストOSの設定

インストール要件をクリアしていくために設定を入れていきますが、ここは簡単に。
  •  必要なRPMパッケージのインストールに関してはOracle Linux 6 Update3のDVDの中にある「oracle-rdbms-server-11gR2-preinstall-1.0-6.el6.x86_64.rpm」をyum経由でインストールすれば自動でインストールされるっぽい。マニュアルに比べるとbcコマンドやXクライアントも追加で入ります。ちなみに、oracleユーザも勝手に作ってくれるけどuid=54321になるのが気に入らないので、後で削除。
  • NTPで時刻合わせ。/etc/sysconfig/ntpdで-xオプションでslewモードにすることを忘れずに(インストーラがチェックしてくれますが)。
  • ユーザ作成とディレクトリ設定は以下を参考に。あとは、パスワード設定とSSH透過ログインの設定を。
groupadd -g 1000 oinstall
groupadd -g 1031 dba
groupadd -g 1020 asmadmin
groupadd -g 1021 asmdba
useradd -u 1100 -g oinstall -G asmadmin,asmdba grid
useradd -u 1101-g oinstall  -G dba,asmdba oracle
mkdir -p /u01/app/grid
mkdir -p /u01/app/11.2.0/grid
chown -R grid:oinstall /u01
mkdir -p /u01/app/oracle
chown oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
  • 共有ディスクのオーナー、パーミッション設定は【こちら】を参考に/etc/udev/rules.d/99-oracle-asmdevicesruleに以下の内容を記述。ちなみにこの設定方法はRHEL6系に固有らしく、後のインストーラによる要件チェックでは正しく設定してもWaringを喰らうようです。
KERNEL=="sdc"、SUBSYSTEM=="block"、ENV{DEVTYPE}=="disk", NAME+="oracleasm/disk1", OWNER="grid", GROUP="asmadmin", MODE="0660"
  •  ネットワークでは/etc/hostsとデフォルトゲートウェイの設定を。今回はSCAN用にDNSは利用しないのでSCAN用IPアドレスは1つのみ指定します。
  • /etc/sysctl.confと/etc/security/limits.confの設定は、今回はインストーラが作成する修正スクリプトに任せます(lmits.confの設定はログインし直さないと有効にならないので、本来は修正スクリプトに頼らず、事前設定が良いみたいですが)。
以上の設定を6台全部に行います。実際は、1台で設定した後に前回記述した方法で仮想ゲストをクローニングしています。

ASMLibやhanguptimer、MTUなど設定すべき項目はまだまだありますが、今回は無視します。

(9) Oracleのインストール・DBの作成

環境が正しく整えば、インストール&DB作成は楽勝ですね。dg01&dg02にRAC環境を作ります。
  • Grid Infrastructureの拡張インストール(クラスタ名:cluster01)
  • Databaseのソフトウェアのみのインストール
  • Examplesのインストール(自分の趣味です)
  • RACデータベースの作成(DB名:ora11ga、インスタンス名:ora11ga1/ora11ga2)

今回はここまでです。次回はフィジカルスタンバイデータベースを作成していきます。もうKVMの話は出てこないかもです。

0 件のコメント:

コメントを投稿