2014年5月6日火曜日

SoftLayer 上で Oracle RAC を動かしてみる

SoftLayer でいろいろと検証作業を実施できる状況を整えていただきました。関係者各位に感謝いたします。

IBM SoftLayer カタリストプログラムのご紹介
http://www.ibm.com/cloud-computing/jp/ja/softlayer_catalyst_program.html

こちらに参加できたので、1年間、毎月1000ドル分を free でいろいろと試すことができます。
こんな検証結果を知りたい、というリクエストがあればコメント頂ければと思います。
ただし、ベンチマーク結果の公表は控えさせていただきたいと考えています。

まずは、Oracle RAC が動くかどうか、試してみました。
SoftLayer では、物理マシンをオーダすることができるので、クラウドでデータベースを動かすのに最適な環境だと思います。データベースを仮想マシンで動かすのは、性能面で難しい場合が多いように思われます。商用データベースの雄、Oracle のライセンスは、そもそも物理 CPU による課金体系がメインなので、クラウドで利用する場合、ライセンスを守った上での構成を考えるのが難しいですが、物理マシンを使えば、この問題をクリアできます(AWS, Azure では、Oracle 社がライセンスに例外を設けているので、ライセンスの問題は難しくありませんが、…)。

DNS サーバ兼その他諸々サーバとなる仮想マシン1台、Oracle RAC が動く物理マシン2台、iSCSI の LUN を1つという構成でインストールしてみました。
CentOS6 上にインストールしてみましたが、あっさり動きました。ネットワーク要件がクリアできることを確認できたので、本命の Oracle Linux 上にインストールしたいのですが、標準メニューには選択肢がなく、まずは Oracle Linux を入れることにしました。

SoftLayer の物理マシンは、Supermicro のマザーボードを採用しているようで、IPMI View を使用して、KVM Console を開くことができます。あとは、Oracle Linux のインストーラから起動できるようにすればよいのですが、その方法がわかりませんでした。KVM Console には、Virtual Storage という機能があるようなのですが、そこで ISO ファイルを指定しても、サーバから認識できないようです。SoftLayer の LockBox というストレージにインストーラ ISO を保存すればよい、といった情報もありましたが、こちらはすでに廃止(新規に利用できない)状態です。

KVM Console にて、物理サーバ起動時の様子を見ると、PXE ブート機能が動いていることを確認できたので、こちらからインストールする事にしました。

SoftLayer では、どのサーバも、1つの Public VLAN と、1つの Private VLAN の2か所に接続されています。正確には、Public VLAN には接続せず、1つの Private VLAN のみ接続することも可能です。
Public VLAN は29ビットマスクとなっており、ネットワークアドレス、ブロードキャストアドレス、ゲートウェイアドレスを除く5台のサーバが接続可能です。Private VLAN は26ビットマスクとなっており、61台分の IP アドレスを使用可能です。どちらの VLAN もブロードキャスト通信可能で、PXE ブートできました。この点が、AWS との大きな違いとなります。
Public VLAN 同士は、当然、IP 通信可能となっています。Private VLAN 同士は、デフォルトでは通信不能ですが、VLAN Spanning を有効化すれば、IP 通信可能となります。他ユーザの Private VLAN との IP 通信も、チケットを発行すれば可能となるとの記載を見つけましたが、試していません。

SoftLayer の Public VLAN を Oracle RAC のプライベート通信に利用し、SoftLayer の Private VLAN を Oracle RAC のパブリック通信に割り当てることにしました。セキュリティの確保は、以下のように iptables を設定することで良しとしました。


$ sudo cat -n /etc/sysconfig/iptables
     1  *filter
     2  :INPUT ACCEPT [0:0]
     3  :FORWARD ACCEPT [0:0]
     4  :OUTPUT ACCEPT [0:0]
     5  -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
     6  -A INPUT -i lo -j ACCEPT
     7  -A INPUT -s 169.254.0.0/16,224.0.0.0/4 -j ACCEPT
     8  -A INPUT -s 10.90.105.195,10.90.105.197,10.90.105.250,10.90.105.251,10.90.105.252,10.90.105.253,10.90.105.254 -j ACCEPT
     9  -A INPUT -s xxx.xxx.xxx.131,xxx.xxx.xxx.132 -j ACCEPT
    10  -A INPUT -s 10.90.105.194 -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT
    11  #-A INPUT -p icmp -j ACCEPT
    12  -A INPUT -s 10.2.225.0/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
    13  -A INPUT -j REJECT --reject-with icmp-host-prohibited
    14  -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    15  COMMIT


7行目で、HAIP からの通信、マルチキャスト IP アドレスからの通信を許可しています。
8行目で、SoftLayer が eth0 に割り当てたプライベート IP アドレスからの通信を許可しています。また、VIP用に私が割り当てたプライベート IP アドレスからの通信も許可しています。
9行目で、SoftLayer が eth1 に割り当てたグローバル IP アドレスからの通信を許可しています。
10行目で、Oracle クライアントからの通信を許可しています。
11行目はコメントアウトしています。SoftLayer から無料で提供されている Ping 監視を許可したり、セグメント内からの Ping を許可したい場合には、それなりのオプションを加えてアンコメントします。
12行目で、SoftLayer の VPN 接続ポイント(東京、https://vpn.tok01.softlayer.com/ 経由)からの ssh 通信を許可しています。

0 件のコメント:

コメントを投稿