では構築していきましょう。赤枠のLinux部分から始めます(図3)。
マシンへのOSおよびDRBDのインストールを済ませます。第4回「“Sambaサーバーの冗長化”をDRBDでサクッと実現してしまう方法」を参照しながら、「(4-4)同期状況を確認する」まで実行してください。
IPアドレスとホスト名は、今回の環境に合わせて変更します。DRBDの同期は「10.0.1.1」と「10.0.1.2」の間で実施しますので間違えずに変更しましょう。一号機、二号機はインタフェースが3つずつ必要になります。
DRBDを以下のコマンドで停止します。一号機、二号機共に実行します。
# drbdadm down r0
第5回「障害時にサブサーバへ自動で切り替える“高可用性WordPressシステム”の作り方」を参照していただき、PacemakerとCorosyncをインストールし、さらに一号機と二号機をクラスタとして登録します。
iSCSIターゲットをインストールします。一号機、二号機のそれぞれで以下のコマンドを実行します。
# yum install -y targetcli
Pacemakerでリソースの登録をしていきます。今回は「iSCSITarget」「iSCSILogicalUnit」「portblock」というリソースエージェントを使います。
設定の前に、GitHubから最新版をダウンロードしてファイルの差し替えを行います。
一号機で以下のコマンドを実行します。
# yum install -y git
一号機で以下のコマンドを実行し、最新版のリソースエージェントを取得します。最後のlsコマンドで「resource-agents」ディレクトリがダウンロードされていることを確認します。
# cd /tmp # git clone https://github.com/ClusterLabs/resource-agents.git # ls
最新のリソースエージェントを所定のパスに配置します。一号機で以下のコマンドを実行します。上書きを尋ねられた場合は「yes」を選択します。
# cd /tmp/resource-agents/heartbeat # cp iSCSI* /usr/lib/ocf/resource.d/heartbeat # cp portblock /usr/lib/ocf/resource.d/heartbeat
一号機から二号機へリソースエージェントをコピーします。
# cd /tmp/resource-agents/heartbeat # scp iSCSI* root@10.0.0.2:/usr/lib/ocf/resource.d/heartbeat # scp portblock root@10.0.0.2:/usr/lib/ocf/resource.d/heartbeat
Pacemakerのリソースを登録していきます。詳細は、第6回「障害時にサブサーバへ自動で切り替える“高可用性WordPressシステム”の作り方 後編」の「Pacemakerの設定を行う」を参考にしてください。
pcsコマンドは原則としてプライマリーサーバ(今回は一号機)のみで実行します。また、コマンドの文字列が複数行にまたがっている箇所については、1行ずつそのままコピー&ペーストでコマンドを投入してください。
stonithの設定を無効にします。
# pcs property set stonith-enabled=false
Pacemakerで使われるスコア(stickiness)の設定を行います
# pcs property set default-resource-stickiness=200
仮想IPアドレス(VIP)のリソースを設定します。
# pcs resource create res_ip ocf:heartbeat:IPaddr2 \ params ip="192.168.0.150" cidr_netmask="24" \ op start interval="0" timeout="20" \ op stop interval="0" timeout="20" \ op monitor interval="10" timeout="20"
DRBDのWindows用データ格納先となるリソースを定義します。
# pcs resource create res_drbd_r0 ocf:linbit:drbd \ params drbd_resource="r0" \ op start interval="0" timeout="240" \ op stop interval="0" timeout="120" \ op monitor interval="20" role="Slave" timeout="20" \ op monitor interval="10" role="Master" timeout="20"
マルチステートメントリソース(MS)の設定をします。DRBD以外のリソースは一号機もしくは二号機のどちらかで起動しますが、DRBDはリアルタイムレプリケーション(即時複製)をするために、2つのサーバで常に起動することになります。常に起動するリソースのためにMSの設定で定義します。
# pcs resource master ms_drbd_r0 res_drbd_r0 \ master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
iSCSIターゲットのリソースを設定します。
# pcs resource create iscsi-target iSCSITarget \ params implementation=lio-t iqn="iqn.2016-04.3ware.co.jp:windows-disk" portals="192.168.0.150:3260" additional_parameters="DefaultTime2Retain=60 DefaultTime2Wait=5" \ op start interval=0 timeout=60 \ op stop interval=0 timeout=60 \ op monitor interval=30s
「iscsi-target」という名前でリソースを定義し、「iSCSITarget」というリソースエージェントで操作します。
「implementation」でiSCSIターゲットのデーモンの種類を指定し、「target_iqn」でiSCSIターゲットのIQNを定義し、「portals」でiSCSIターゲットのIPアドレスを指定します。
オプションの設定です。このリソースが起動するまでの間隔(interval)を「0」秒として、さらに「60」秒以内に起動できなかったらタイムアウトエラーとする設定にしています。
同じくオプションの設定です。このリソースが停止するまでの間隔(interval)を「0」秒として、さらに「60」秒以内に停止できなかったらタイムアウトエラーとする設定にしています。
同じくオプションの設定です。このリソースが正常稼働していることを「30」秒に1回確認します。以降、op(オプション)に関する設定が繰り返し出てきます。設定の意味は同じですので、適宜こちらを参照してください。
続いて、「iSCSILogicalUnit」のリソースを設定します。
# pcs resource create lun iSCSILogicalUnit \ params implementation=lio-t target_iqn="iqn.2016-04.3ware.co.jp:windows-disk" lun=1 path="/dev/drbd0" \ op start timeout=60 interval=0 \ op stop timeout=60 interval=0 \ op monitor interval=30 timeout=10
「lun」という名前でリソースを定義し、「iSCSILogicalUnit」というリソースエージェントで操作することを示しています。
「implementation」と、iSCSIターゲットのデーモンの種類を指定します。「target_iqn」で、iSCSIターゲットのIQNを定義し、「lun」はiSCSIターゲットとして公開するディスク、ここでは「1」を指定します。「path」で、iSCSIターゲットとして公開するディスクのパスを指定します。
「portblock」のリソースを設定します。
# pcs resource create portbk portblock \ params ip=192.168.0.150 portno=3260 protocol=tcp action=block \ op start interval=0 timeout=20 \ op stop interval=0 timeout=20 \ op monitor interval=100 timeout=20 \ meta target-role=Started
「portbk」という名前でリソースを定義し、「portblock」というリソースエージェントで操作します。
「ip」「portno」「protocol」でポートブロックを実行するIPアドレス、ポート番号、プロトコルを指定し、「action」で動作を指定します。ここでは「ポートをブロックする」設定としています。
もう1つ「portblock」のリソースを設定します。
# pcs resource create portunbk portblock \ params ip="192.168.0.150" portno=3260 protocol=tcp action=unblock \ op start interval=0 timeout=20 \ op stop interval=0 timeout=20 \ op monitor interval=103 timeout=20
「portunbk」という名前でリソースを定義し、「portblock」というリソースエージェントで操作します。
「ip」「portno」「protocol」でポートブロックを実行するIPアドレス、ポート番号、プロトコルを指定し、「action」で動作を指定します。ここでは「ポートのブロックを解除する」設定としています。
これでリソースの登録は完了です。
Copyright © ITmedia, Inc. All Rights Reserved.