DRBD+iSCSIでサクッと作れる、Windows 10の「自動データ複製&冗長化システム」:DRBDの仕組みを学ぶ(11)(2/5 ページ)
DRBDを軸に、データを遠隔地にも即時複製して万が一の事態に備える「冗長化/高可用性システム」の構築テクニックを紹介する本連載。今回は、Windows 10/Windows Server環境の「自動データ複製&冗長化システムの作り方」を解説します。
DRBDを使った「Windows環境の自動データ複製&冗長化システム」の構築
では構築していきましょう。赤枠のLinux部分から始めます(図3)。
(2-1)OS、DRBDのインストールと初期化
マシンへのOSおよびDRBDのインストールを済ませます。第4回「“Sambaサーバーの冗長化”をDRBDでサクッと実現してしまう方法」を参照しながら、「(4-4)同期状況を確認する」まで実行してください。
IPアドレスとホスト名は、今回の環境に合わせて変更します。DRBDの同期は「10.0.1.1」と「10.0.1.2」の間で実施しますので間違えずに変更しましょう。一号機、二号機はインタフェースが3つずつ必要になります。
DRBDを以下のコマンドで停止します。一号機、二号機共に実行します。
# drbdadm down r0
(2-2)「Pacemaker」「Corosync」のインストール
第5回「障害時にサブサーバへ自動で切り替える“高可用性WordPressシステム”の作り方」を参照していただき、PacemakerとCorosyncをインストールし、さらに一号機と二号機をクラスタとして登録します。
(3)「iSCSIターゲット」のインストール
iSCSIターゲットをインストールします。一号機、二号機のそれぞれで以下のコマンドを実行します。
# yum install -y targetcli
(4)Pacemakerの設定準備
Pacemakerでリソースの登録をしていきます。今回は「iSCSITarget」「iSCSILogicalUnit」「portblock」というリソースエージェントを使います。
設定の前に、GitHubから最新版をダウンロードしてファイルの差し替えを行います。
(4-1)Gitをインストール
一号機で以下のコマンドを実行します。
# yum install -y git
(4-2)最新版のリソースエージェントを取得
一号機で以下のコマンドを実行し、最新版のリソースエージェントを取得します。最後のlsコマンドで「resource-agents」ディレクトリがダウンロードされていることを確認します。
# cd /tmp # git clone https://github.com/ClusterLabs/resource-agents.git # ls
(4-3)リソースエージェントを配置する
最新のリソースエージェントを所定のパスに配置します。一号機で以下のコマンドを実行します。上書きを尋ねられた場合は「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
(5)Pacemakerの設定を行う
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
- 1行目:pcs resource create iscsi-target iSCSITarget
「iscsi-target」という名前でリソースを定義し、「iSCSITarget」というリソースエージェントで操作します。
- 2行目: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"
「implementation」でiSCSIターゲットのデーモンの種類を指定し、「target_iqn」でiSCSIターゲットのIQNを定義し、「portals」でiSCSIターゲットのIPアドレスを指定します。
- 3行目:op start interval=0 timeout=60
オプションの設定です。このリソースが起動するまでの間隔(interval)を「0」秒として、さらに「60」秒以内に起動できなかったらタイムアウトエラーとする設定にしています。
- 4行目:op stop interval=0 timeout=60
同じくオプションの設定です。このリソースが停止するまでの間隔(interval)を「0」秒として、さらに「60」秒以内に停止できなかったらタイムアウトエラーとする設定にしています。
- 5行目:op monitor interval=30s
同じくオプションの設定です。このリソースが正常稼働していることを「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
- 1行目:pcs resource create lun iSCSILogicalUnit
「lun」という名前でリソースを定義し、「iSCSILogicalUnit」というリソースエージェントで操作することを示しています。
- 2行目:params implementation=lio-t target_iqn="iqn.2016-04.3ware.co.jp:windows-disk" lun=1 path="/dev/drbd0"
「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
- 1行目:pcs resource create portbk portblock
「portbk」という名前でリソースを定義し、「portblock」というリソースエージェントで操作します。
- 2行目:params ip=192.168.0.150 portno=3260 protocol=tcp action=block
「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
- 1行目:pcs resource create portunbk portblock
「portunbk」という名前でリソースを定義し、「portblock」というリソースエージェントで操作します。
- 2行目:params ip="192.168.0.150" portno=3260 protocol=tcp action=unblock
「ip」「portno」「protocol」でポートブロックを実行するIPアドレス、ポート番号、プロトコルを指定し、「action」で動作を指定します。ここでは「ポートのブロックを解除する」設定としています。
これでリソースの登録は完了です。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 障害時にサブサーバへ自動で切り替える「高可用性WordPressシステム」の作り方 前編
サービスを止めてはならない環境で活躍する冗長化支援ツール「DRBD」。今回は、CMSツールとして多くのWebサイトで利用されている「WordPressサーバ」の高可用性をDRBDで確保する方法を解説します。前編は、必要なソフトウェアのインストールと初期設定までを説明します。 - DRBD(Distributed Replicated Block Device)とは何か
障害監視ツールなどと一緒に使うことで、サービスの継続提供を助けるDRBD。Linuxカーネルに統合されている機能ですが、上手に使いこなしているでしょうか? 本連載では、DRBDの動作や使いどころを順を追って紹介していきます。 - ミラーリングツール「DRBD」によるデータ保護
「Heartbeat」の適切な導入によってHAクラスタを構成し、Linux上で動作しているサービスの可用性を上げることができます。続いて、肝心のデータそのものを保護できるツール「DRBD」について紹介しましょう。 - ここが変わったCentOS 7──「新機能の概要とインストール」編
「CentOS 7」を皆さんどれだけ理解していますでしょうか。CentOS 7は、以前のバージョンから使い勝手がかなり変わりました。本連載では、今さら聞けない/おさらいしたいというインフラエンジニアに向け、CentOS 7の概要と基礎から活用Tipsまでを紹介していきます。 - DRBD+iSCSI夢の共演(前編)〜 Windowsドライブをミラーリングで保護 〜
Linux上で動作するオープンソースソフトウエア「DRBD」とiSCSIを組み合わせ、部門内のWindows端末のデータをバックアップするシステムを構築してみよう - OSSとLinuxで高可用システム構築を支援、サードウェア