※本記事は上記ドキュメントをベースに構成しています。
CLUSTERPRO X 構成例
前回は CLUSTERPRO X の概要を紹介しました。
CLUSTERPRO構築備忘録①~NEC CLUSTERPRO X とは~
今回は CLUSTERPRO X で Oracle Database 12c Release2 をクラスタ化する際の構築手順をご紹介します。構成は以下を想定して進行していきます。
その他の細かいシナリオについては以下のようになっています。
- 片方向スタンバイ方式
- Windows のコンピュータ名はそれぞれ「NODE1」「NODE2」
- Eドライブが Oracle データベース領域、Hドライブが NP 解決用の領域
- NP 解決は「PING + DISK」方式
Contents
CLUSTERPRO X の要件
インストールの前に、CLUSTERPRO X で Oracle をクラスタ化する際の要件を確認していきましょう。
仮想メモリ要件
【Windows x64 (64-bit)の仮想メモリ設定】
物理メモリが2GBから16GBの間の場合は、仮想メモリをRAMと同じサイズに設定します。 物理メモリが16GBを超える場合は、仮想メモリを16GBに設定します。
今回用意したサーバは物理メモリが32GBあるため、仮想メモリを16GBとして定義します。
CLUSTERPRO X の要件としては 16GB でも問題ありませんが、メモリダンプを考慮した場合は物理メモリサイズ以上の仮想メモリを設定する必要があります。詳細は以下の記事を参照してください。
ディスク要件
共有ディスク構成の場合、ノード間で共有するディスクが必要です。最低限必要なパーティションやディレクトリは以下のとおりです。
ディスクハートビート用パーティションを確保します。要件は以下のとおりです。
- 容量は17MB以上
- ドライブ文字を各ノードで一致させる
- ハートビート用パーティションはフォーマットしない(RAWパーティション)
ディスクリソース用切替パーティションを確保します。要件は以下のとおりです。
- ドライブ文字を各ノードで一致させる
- ディスクリソース用切替パーティションはNTFSでフォーマットする
今回は 1TiB の論理ディスクを iSCSI で NODE1 と NODE2 に割り当てています。なお、今はディスクをオンラインにしないでください。
「ディスクハートビート用パーティション」と「ディスクリソース用切替パーティション」がそれぞれ”パーティション”となっているように、ストレージ側で1つの論理ボリュームを用意しそれをOS側でパーティショニングして構成しても問題ありません。勿論、論理ボリュームを分けても構いません。場合によってはそちらの方が分かりやすいかもしれません。
NIC要件
NIC 要件をクリアするために今回は以下の4つの NIC を用意しました。
- パブリック LAN 用(必須)
- インタコネクト LAN 用(ほぼ必須)
- マネジメント LAN 用(必須ではない)
- ストレージ LAN 用(必須ではない)
インタコネクト用の LAN が無くてもクラスタは構成可能ですが、前回もお話ししたように、ハートビートが安定しないと予期しないフェイルオーバや回復動作が発生してしまう可能性があります。無くても構成時代は可能だが現実的ではないという意味での「ほぼ」です。勿論パブリック LAN が無いと役に立たないのでそちらは必須です。
※ NIC優先度の注意点:フローティングIPと同一ネットワークに属するNICが複数存在する場合、フローティングIPを作成するNICの優先度が高くなるように設定してください。
IPアドレス要件
各ノードにパブリックIPアドレスが1つ、インタコネクトIPアドレスが1つ、クラスター全体でフローティングIPアドレスが1つ必要です。
両ノード合わせて以下の静的IPアドレスが必要です。フローティングIPアドレス以外は、hostsファイルで名前解決しておきます。サーバーで設定しているホスト名とCLUSTERPROのサーバー名は一致する必要があります。ホスト名は小文字で設定して下さい。
- パブリックIPアドレス ×2
- インタコネクトIPアドレス ×2
- フローティングIPアドレス ×1
本記事はマニュアルの例と同じ IP アドレス、ホスト名を設定します。(マネジメント用とストレージ用の NIC には先述した構成図のとおり適当な IP アドレスを割り当てます)
ハードウェア構成の確認
ファイアウォール設定の確認
ポートを確認するのが面倒なので、Windows ファイアウォールはオフにします。
ちなみに「CLUSTERPRO X for Windows PPガイド (Oracle Database)」では以下のように記載されていますが、誤りです。
ポート番号一覧は、CLUSTERPRO X 4.0のインストール&設定ガイドをご確認ください。
ポート番号一覧はスタートアップガイドの P89 に記載されているので必要であればそちらを参照してください。
ネットワーク設定の確認
クラスター内のすべてのサーバーで、ipconfigコマンドやpingコマンドを使用して、 以下のネットワークリソースが正常に動作しているかどうかを確認します。
- パブリックLAN (他のマシンとの通信用)
- インタコネクト専用LAN (CLUSTERPROのサーバー間接続用)
- ホスト名
※ 現時点で、フローティングIPや仮想IPの接続テストは不要です
確認してください。
サーバの時刻同期
クラスターシステムでは、クラスター内の全てのサーバーの時刻を定期的に同期する運用を推奨します。 NTP等を利用して、サーバーが時刻同期を行うようにご設定ください。サーバーの時刻同期を行わない場合、Oracle Databaseで問題が発生する可能性があります。
※ 各サーバーの時刻が同期されていない場合、障害時に原因の解析に時間がかかることが あります。
同期してください。
パワーセービング機能をオフにする
- 電源オプションのモニタの電源とハードディスクの電源設定を変更
- 休止状態を無効化
CLUSTERPRO環境ではスタンバイやハイバネーションは使用できないため、それらの機能をオフにします
上記はなぜかCLUSTERPRO X for Windows PPガイド (Oracle Database)に記載がない項目ですが、設定しておいてください。
OS起動時間を調整する
クラスタシステムを構成する各サーバに電源を投入してから、サーバのOSが起動するまでの時間を以下の2つより長くなるように設定する必要があります。
共有ディスクに電源を投入してから使用可能になるまでの時間
- ストレージ起動前にサーバOSが起動するとディスクリソースの活性に失敗するため
ハートビートタイムアウト時間 ※既定値30秒
- サーバ再起動でフェイルオーバを発生させたい場合に、フェイルオーバが発生しなくなるため
- つまり30秒以内にサーバの再起動が完了するとフェイルオーバしない
「 bcdedit 」コマンドを用いて、起動時間を調整してください。
※ OSが1つしかない場合の注意点 起動待ち時間を設定しても無視されることがあります。この場合、下記の手順でエントリを追加してください。2つ目のエントリは1つめのエントリのコピーで問題ありません。「bcdedit」コマンドの「/copy」オプションを用いて、コピーを追加してください。
※BIOSによっては起動時間を調整する項目があったりしますが、大抵の場合再起動では適用されないので “bcdedit” を使います。
例としてOSの起動時間を3分遅らせる方法を記載します。
OS起動時間を3分遅くする方法(OSが1つしかない場合)
以下の2つのコマンドを実行してください。
- bcdedit /copy {current} /d “Windows Server 2016 (dummy)”
- bcdedit /set {bootmgr} timeout 180
「bcdedit /copy {current} /d “Windows Server 2016 (dummy)”」を実行します
コピーした Windows ブート ローダー が表示されていることがわかります
「bcdedit /timeout 180」を実行します。既定値の30から180に変わっていることがわかります
Windows 起動時に下図のような「Windows ブート マネージャー」が表示され、「強調表示された選択が自動的に起動されるまでの秒数:179」となっていることがわかります。これは勿論180からスタートしていましたが、キャプチャに失敗しただけです。このカウントが終了すると OS がブートします。
ちなみに「Windows ブート マネージャー」画面で何かキーを押してしまうと、処理が待ち状態に遷移してしまうため timeout で指定した時間が経過してもOSが起動しません。下図のように「強調表示された選択が自動的に起動されるまでの秒数」が消えていた場合、何かキーを入力してしまったと思ってください。
パーティションの作成
ハートビート用と切替パーティション用の2つのパーティションを作成します。既に iSCSI で論理ボリュームを1つ作成し、Windows の iSCSI イニシエータで拾っている状況です。
本記事ではマニュアルと同じく、ドライブ文字ををれぞれ「H(ROW)」と「H」に設定します。CLUSTERPRO X を未インストールの状態ですので、排他制御がされていないことを意識してください。
ディスクの初期化を尋ねられた場合は、要件に合わせて初期化を行ってください。本手順では、MBR(マスターブートレコード)で初期化しています。
ディスクの初期化はボリュームサイズが 2TB 以下であれば MBR で構いません。
2台目のサーバで共有パーティションのドライブ文字を設定する際、1台目のサーバをシャットダウンした状態で作業してください。ドライブ文字設定後(ディスクオンライン後)は CLUSTERPRO X を両方にインストールするまで、どちらか片方だけが起動している状態で作業をしてください。
CLUSTERPRO Server のインストール
「setup.exe」を実行すると「ようこそ」画面が表示されます。「次へ」をクリックしてください。
「参照」をクリックし、インストール先のフォルダーを指定してください。デフォルトでも特に問題ないので「次へ」をクリックしてください。
「インストール」をクリックすると、ソフトウェアがインストールされます。インストール自体は5分もかからないですね。
インストール終了後は少しだけ初期設定があります。ポート番号は変更する必要が無いので「次へ」をクリックしてください。
共有ディスクとして使用する「SCSIコントローラ /FC HBS」を選択します。「フィルタリング」とは CLUSTERPRO で排他制御をするという意味です。H ドライブと E ドライブは両ホストで共有するディスクですので、フィルタリング対象です。
ちなみに同一 HBA の特定パーティションのみをフィルタリングしたい場合、まずは HBA をフィルタリングした後にフィルタリング対象外のパーティションを「フィルタリング解除」するというステップになります。
次にライセンス登録です。登録してください。
例えば評価版の場合はライセンスファイルが送られてくるので「ライセンスファイルから登録」を選択し、当該ライセンスファイルを選択します。
※ちなみに、CLUSTERPRO X 4.0 のライセンスは評価版/製品版ともにオフライン環境でも登録できます。
すると「ライセンスを登録しました。」となります。
次が少し分かり辛いですが、ライセンス登録後は「終了」をクリックしてください。
「CLUSTERPRO Server を正常にインストールしました。」となるので、任意のタイミングでサーバを再起動してください。
2台目へのインストール
2台目のサーバへも忘れずに CLUSTERPRO Server をインストールしてください。この際、1台目のサーバは念のためシャットダウンしておいてください。
次回はインストール後のクラスタ構築とフェイルオーバーグループの作成をやっていきます。