6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS/OCIではgrid infrastructure構築不可

Last updated at Posted at 2021-07-08

grid infrastructureをGIと略します。
クラウドでの構築事例がないので検証してみました。
OracleRAC, SEHAの構築にはGIが必須ですが、AWS(EC2)/OCI(Compute)ではその仕様上構築ができません。
今回はWindowsServerで試しましたが、OS依存ではないところ(各クラウドサービスの仕様)で引っかかったため、RHELなどでも同様と思われます。

AWSで不可な理由

  • EC2にサブネットを2つ持てないため
    • GI要件で、2つ以上の異なるネットワークアドレスのIPが必要だが、AWSではEC2は1つのサブネット上に構築する仕様。そのため、EC2が複数のサブネットにまたがったり、構築されているサブネット以外のサブネットのネットワークインターフェースを追加することはできない
      • というGIの制限はリファレンスではあるが、試しにネットワークインターフェースを追加して、2つのNICを持たせて(どちらも同じサブネット)、GIのインストールをしようとすると、パブリック/プライベートおよびASMの各サブネットを各ネットワークインターフェースに割り当てるところで、パブリック/プライベートおよびASMに割り当てようとしているネットワークサブネットが同じです、といったエラーメッセ-ジで先に進めない
  • また、EC2上にvirtual boxやHyper-Vといった仮想サーバを立てることはできない。その制約から、virtual boxをインストールして仮想マシンを作成してみると、32bitのマシンしか選択できない。Hyper-Vは無効にされている。(BareMetalならできるのかもしれませんが試してません)

OCIで不可な理由

  • 仕様上マルチキャスト/ブロードキャストが通らないため
    • Computeではネットワークアドレスの異なる別サブネットのVNICを追加できるため、パブリック/プライベートおよびASM用のNIC割り当ての先まで進め、GIのインストール開始を走らせることができた。しかし、インストール中に、プライベートサブネットでマルチキャストとブロードキャストができないエラーがでてインストールがコケた。
Failures were encountered during execution of CVU verification request "stage -post crsinst".
Verifying Multicast or broadcast check ...FAILED
node2: PRVG-11352 : Interface "10.0.2.24" on node "node2" is not able to
       communicate with interface "10.0.2.24" on node "node2" with broadcast
       address "255.255.255.255"
node2: PRVG-11352 : Interface "10.0.2.209" on node "node1" is not able to
       communicate with interface "10.0.2.24" on node "node2" with broadcast
       address "255.255.255.255"
node1: PRVG-11138 : Interface "priv" on node "node2" is not able to communicate
       with interface "priv" on node "node1" over multicast group "224.0.0.251"
node1: PRVG-11138 : Interface "priv" on node "node1" is not able to communicate
       with interface "priv" on node "node1" over multicast group "224.0.0.251"
node1: PRVG-11138 : Interface "priv" on node "node2" is not able to communicate
       with interface "priv" on node "node1" over multicast group "230.0.1.0"
node1: PRVG-11138 : Interface "priv" on node "node1" is not able to communicate
       with interface "priv" on node "node1" over multicast group "230.0.1.0"
node1: PRVG-11352 : Interface "10.0.2.24" on node "node2" is not able to
       communicate with interface "10.0.2.209" on node "node1" with broadcast
       address "255.255.255.255"
node1: PRVG-11352 : Interface "10.0.2.209" on node "node1" is not able to
       communicate with interface "10.0.2.209" on node "node1" with broadcast
       address "255.255.255.255"
node1: PRVG-11138 : Interface "pub" on node "node2" is not able to communicate
       with interface "pub" on node "node1" over multicast group "224.0.0.251"
node1: PRVG-11138 : Interface "pub" on node "node1" is not able to communicate
       with interface "pub" on node "node1" over multicast group "224.0.0.251"
Verifying Single Client Access Name (SCAN) ...WARNING
node2: PRVG-11368 : A SCAN is recommended to resolve to "3" or more IP
       addresses, but SCAN "node-cluster-scan" resolves to only "/10.0.1.233"
node1: PRVG-11368 : A SCAN is recommended to resolve to "3" or more IP
       addresses, but SCAN "node-cluster-scan" resolves to only "/10.0.1.233"
  • また、AWS同様、仮想化サーバがサポートされていないため、VirtualBoxで仮想マシン作成時に64bitを選択することができなく、Hyper-vも無効になっている。(こちらもBareMetalならできるのかもしれませんが試してません)

あとがき

AWS/OCIどちらも、共有ディスクの仕組み(AWSではEBS Multi Attach, OCIではブロックボリューム共有) があるのと、NIC/IPも複数持てるため、もしかしたらと思ったのですが、やはりGIの構築要件に適合することができませんでした。
そのため、GI(OracleRAC/SEHA)の構築/検証には今まで通りオンプレにESXi/Hyper-V/virtual box等仮想環境を立てるなどして行う必要がありそうです。
今回Azureは検証していません。Azureで、共有ディスク/異なるサブネットのNIC追加/プライベートサブネットでのマルチキャストとブロードキャスト等GIの要件を満たすことができれば、構築可能かと思います。

めも

  • Active Directoryは立てず、VIPやSCANの名前解決は各ノードのhostsで行った
    • OCIではこんな感じ(各ノードで同じ設定)
    • node1, node2は各ノードのホスト名
10.0.1.132	node1              ※node1: Primary VNIC
10.0.1.201	node1-vip          ※node1: Primary VNICのセカンダリIP
10.0.1.21	node2              ※node2: Primary VNIC
10.0.1.22	node2-vip          ※node2: Primary VNICのセカンダリIP
10.0.1.233	node-cluster-scan  ※node1: Primary VNICのセカンダリIP

10.0.2.209	node1-priv         ※node1: 追加したVNICのIP
10.0.2.24	node2-priv         ※node2: 追加したVNICのIP
  • OCIで追加したVNICを有効にするには、コンパネのネットワークアダプタで対象のネットワークインターフェースを有効化したあと、OCIで提供されているPowerShellスクリプトを実行する secondary_vnic_windows_configure.ps1

  • OCIのWindowsServerではインスタンス作成時にホスト名を指定しても、実際のコンピュータに適用されない(無視されて、instance-202107のような感じになる)

    • GIではホスト名で通信できる必要があるので、ホスト名を正しく設定する
    • WindowsServerではWindows標準の手順で問題なかった(システムのプロパティからコンピュータ名を変更して再起動)。リファレンスではLinuxの手順しか存在しないので、本当に正しいかは不明
    • LinuxではOS標準の設定に加え、/etc/oci-hostname.confを設定する必要がある
  • AWSではMulti AttachしたEBSは自動的にディスクの管理で認識される。OCIではiSCSIイニシエータの設定画面で認識設定をする。

    • 認識後、簡単なDISKPARTまたはPowerShellコマンドでGIで利用可能なRAWデバイスとしてフォーマットできる(後述の参考サイトを参考にさせていただきました)
Get-Disk | Sort-Object Number
$Disk = Get-Disk -Number 1
$Disk | Initialize-Disk -PartitionStyle MBR
$Disk | New-Partition -MbrType Extended -UseMaximumSize
$Disk | New-Partition -UseMaximumSize
  • クラスタノード選択画面でnode2を追加して進むときにユーザー等価チェックのエラーがでるときは、インストールユーザでのnode間のnet use \\nodex\c$がうまくできていないので解決が必要。インストールユーザ以外の権限(アカウント)で張ってもだめ。
  • GIインストーラでASMディスク作成画面でRAWデバイスを検出するためには、ディスクをスタンプをクリックして対象のRAWデバイスに対してスタンプ付けを行う必要がある
  • 18c以降だとインストールバグがあるので対応必須 PRVF-0002 : COULD NOT RETRIEVE LOCAL NODE NAME (インストーラに含まれる各バッチをエディタで開いて直す)
  • GIインストールエラーの切り分けで、vcruntime140.dll不足でCVUが実行できないって言ってたのでVC2019の再配布用パッケージ(VC_redist.x64.exe, 64bitの方)をインストールしてみたけど、あれは意味があったのだろうか(dllエラーは消えたけど、それが重要だったのかどうか不明。あとCVU(-verifyオプション)手動で実行してみたけど動かない。これWindowsで単体で使えるんだろうか)
  • なんだかんだactive directory立てちゃったほうが楽
  • OCIのDBサービスはRACなので、マネージドであるDBサービス内ではマルチキャスト/ブロードキャストが許可されていると推測
  • AWSでも検索すると非公式でOracleRACのAMIとかあるんだけどこれはどうやって動いてるんだろう

参考

OCI よくある質問
https://www.oracle.com/jp/cloud/networking/virtual-cloud-network-faq.html

VCN内でのIPマルチキャストまたはブロードキャストはサポートされていますか?
いいえ、今のところサポートしていません。

参考にさせていただいたサイト
https://blog.shibata.tech/entry/2015/09/17/221849

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?