説明
Perforce Helix Coreのフェイルオーバー機能を使用したHA環境構築の手順を説明していますCoreのフェイルオーバー機能を使用したHA環境の構築、および構築後の構築後のテスト運用手順を説明しています
警告 |
---|
・マスタサーバとスタンバイサーバのタイムゾーンが一致している必要があります。・マスターサーバとスタンバイサーバのタイムゾーンが一致している必要があります。「タイムゾーンの設定」をご覧ください ・p4dのバージョンが一致している必要があります。 |
本構築作業の条件は以下の通りです
| マスター | スタンバイ | Perforce super user |
サーバ名 | master | standby | super |
ServerID | master | standby | レプリケーション用ユーザ名 |
Option | - | mandatory ※nomandatoryで構築後に変更 | service |
server-service | commit-server | standby | |
IP | 192.168.56.114 | 192.168.56.115 |
Port | 1666 | 1666 |
P4ROOT | /master | /standby |
構築手順
1.スタンバイサーバのサーバ仕様作成
...
【マスターサーバで作業します】
① p4コマンドで"standby"というスタンバイサーバのサーバ仕様を作成します
...
パネル |
---|
borderColor | gray |
---|
borderWidth | 1 |
---|
borderStyle | solid |
---|
title | 赤文字部分を修正・追記 |
---|
|
ServerID: standby Type: server Services: standby ●standard(default)を上書き●standard(default)を上書き Options: nomandatory ●変更しない※新規サーバはmandatoryにできません。後で変更します ReplicatingFrom: master ●一行追記する(マスタサーバのserver マスターサーバのserver ID) Description: Created by super. DistributedConfig: any#P4JOURNAL=../journals/journal any#P4LOG=../logs/log ⋮ any#unicode=1 P4LOG=log P4TARGET=192.168.56.114:1666 P4TICKETS=/standby/.p4tickets db.replication=readonly lbr.replication=readonly monitor=2 rpl.journalcopy.location=1 serviceUser=service startup.1=journalcopy -i 1 startup.2=pull -L -i 1 startup.3=pull -u -i 1 |
情報 |
---|
|
startup.1=journalcopy -i 1:起動時にjournalcopy(マスタサーバのjournalをスタンバイに移送マスターサーバのjournalをスタンバイに移送)を実行 startup.2=pull -L -i 1:移送したローカルのjournalから情報を読み取る startup.3=pull -u -i 1:アーカイブファイルを取得する rpl.journalcopy.location=1: journalcopyスレッドの書き込みを設定する構成可能変数 ※より詳細な情報はコマンドリファレンスマニュアルをご参照ください |
...
2.サービスユーザの作成と設定【マスターサーバで作業します】
① p4コマンドで"service"というレプリケーション用サービスユーザを作成します
パネル |
---|
borderColor | gray |
---|
borderWidth | 1 |
---|
borderStyle | solid |
---|
title | 実行コマンド |
---|
|
p4 -u super -p master-server:port user -f service-user 例:p4 -u super -p 192.168.56.114:1666 user -f service |
② 設定を修正・追加します設定を追加します
パネル |
---|
borderColor | gray |
---|
borderWidth | 1 |
---|
borderStyle | solid |
---|
title | 赤文字部分を追記 |
---|
|
User: service Type: service ●一行追記する Email: service@master FullName: service |
...
パネル |
---|
borderColor | gray |
---|
borderWidth | 1 |
---|
borderStyle | solid |
---|
title | 表示例:赤文字部分を追記 |
---|
|
write user * * //... list user * * -//spec/... super user super * //... super user service * //... ●一行追加する |
...
3.チェックポイントの作成と移動【マスターサーバで作業します】
① スタンバイサーバ用のチェックポイントファイルを作成します
作成したチェックポイントファイル名は "checkpoint" としています
チェックポイントファイル(ファイル名:checkpoint.ckp.1)が作成されます
...
② チェックポイントファイルを転送します
FTPツール(任意)を使用して、スタンバイサーバへチェックポイントファイル(checkpoint.ckp.1)を転送します。を使用して、スタンバイサーバへチェックポイントファイルを転送します。
※このマニュアルではスタンバイサーバの ※ここではスタンバイサーバの /tmp に格納しています
4.スタンバイサーバの設定【スタンバイサーバでの作業です】
...
6.mandatoryへ変更する【マスターサーバで作業します】
① マスタサーバとスタンバイサーバのジャーナルの整合性を確認しますマスターサーバとスタンバイサーバのジャーナルの整合性を確認します
パネル |
---|
borderColor | gray |
---|
borderWidth | 1 |
---|
borderStyle | solid |
---|
title | 実行コマンド |
---|
|
p4 servers -J |
パネル |
---|
borderColor | gray |
---|
borderWidth | 1 |
---|
borderStyle | solid |
---|
title | 実行結果 |
---|
|
master '2019/10/18 14:07:44' commit-server 1/8773 1/8773 wadL/1 1 standby '2019/10/18 14:07:43' standby 1/8575 1/8575 wAdl/4 1 |
情報 |
---|
|
p4 servers -Jはジャーナルコピーの進行状況を確認するコマンドです。J:ジャーナルコピーの進行状況を確認するコマンドです。 マスタサーバとスタンバイサーバのジャーナルの数値マスターサーバとスタンバイサーバのジャーナルの数値(緑文字)が異なる場合はまだ進行中であり、一致していないことになります。再度実行し、マスタサーバとスタンバイサーバが一致することを確認します。が異なる場合はまだ進行中であり、一致していないことになります。再度実行し、マスターサーバとスタンバイサーバが一致することを確認します。
|
② serverID "standby" の設定を表示します。
...
パネル |
---|
borderColor | gray |
---|
borderWidth | 1 |
---|
borderStyle | solid |
---|
title | 赤文字が変更箇所です |
---|
|
⋮ ⋮ Services: standby standby Options: mandatory ●nomandatoryからの書き換え ReplicatingFrom: master ⋮ ⋮ |
④ mandatoryに変更されたことを確認します
...
パネル |
---|
borderColor | gray |
---|
borderWidth | 1 |
---|
borderStyle | solid |
---|
title | 実行結果:※末尾に「mandatory」と表示されます |
---|
|
master '2019/10/18 14:09:47' commit-server 1/9179 1/9179 wadL/1 1 standby '2019/10/18 14:10:40' standby 1/9179 1/9179 wAdl/4 1 mandatory |
■
...
フェイルオーバー:テスト運用―マスターサーバが起動している場合【スタンバイサーバで作業します】
注意 |
---|
|
マスターサーバが起動できており、ネットワークに接続できている状況を想定した運用のご案内です。マスターサーバが起動できており、ネットワークに接続できている状況を想定した運用手順です。マスタサーバが起動していない・ネットワーク接続ができない状況は次頁をご覧ください。 |
① フェイルオーバーの確認
パネル |
---|
borderColor | gray |
---|
borderWidth | 1 |
---|
borderStyle | solid |
---|
title | 実行コマンド |
---|
|
p4 failover |
パネル |
---|
borderColor | gray |
---|
borderWidth | 1 |
---|
borderStyle | solid |
---|
title | 表示されるメッセージ |
---|
|
Checking if failover might be possible ... Checking for archive file content not transferred ... Verifying content of recently updated archive files ... After addressing any reported issues that might prevent failover, use --yes or -y to execute the failover. ※異なるメッセージ・エラーが表示される場合は、テストを中止し、弊社サポートまでご連絡ください。 |
② フェイルオーバーの実行
自動的にPerforceサーバが再起動され、マスタサーバへと切り替わります。自動的にPerforceサーバが再起動され、マスターサーバへと切り替わります。
パネル |
---|
borderColor | gray |
---|
borderWidth | 1 |
---|
borderStyle | solid |
---|
title | 実行コマンド |
---|
|
p4 failover -y |
パネル |
---|
borderColor | gray |
---|
borderWidth | 1 |
---|
borderStyle | solid |
---|
title | 表示されるメッセージ |
---|
|
Starting failover process ... Refusing new commands on server from which failover is occurring ... Giving commands already running time to complete ... Stalling commands on server from which failover is occurring ... Waiting for 'journalcopy' to complete its work ... Waiting for 'pull -L' to complete its work ... Waiting for 'pull -u' to complete its work ... Checking for archive file content not transferred ... Verifying content of recently updated archive files ... Stopping server from which failover is occurring ... Moving latest journalcopy'd journal into place as the active journal ... Updating configuration of the failed-over server ... Restarting this server ... Perforce Server re-starting... |
■
...
フェイルオーバー:テスト運用―マスターサーバが起動していない場合【スタンバイサーバで作業します】
注意 |
---|
|
マスターサーバが起動できない・ネットワークに接続できない状況を想定した運用のご案内です。 マスタサーバが起動している・ネットワーク接続ができる状況は前頁をご覧ください。マスターサーバが起動できない・ネットワークに接続できない状況を想定した運用手順です。 |
① フェイルオーバーの確認
パネル |
---|
borderColor | gray |
---|
borderWidth | 1 |
---|
borderStyle | solid |
---|
title | 実行コマンド |
---|
|
p4 failover -s master-server 例:p4 failover -s master
|
パネル |
---|
borderColor | gray |
---|
borderWidth | 1 |
---|
borderStyle | solid |
---|
title | 表示されるメッセージ |
---|
|
Checking if failover might be possible ... Checking for archive file content not transferred ... Verifying content of recently updated archive files ... After addressing any reported issues that might prevent failover, use --yes or -y to execute the failover. ※異なるメッセージ・エラーが表示される場合は、テストを中止し、弊社サポートまでご連絡ください。 |
情報 |
---|
|
-s serverID………切り替えるサーバ(今回はマスタサーバ)のserverIDを指定しますserverID………切り替えるサーバ(今回はマスターサーバ)のserverIDを指定します "-s"オプションが無い場合は以下のメッセージが表示されます Server ID must be specified in the '-s' or '--serverid' argument for a failover without the participation of the server from which failover is occurring. Empty identifier not allowed. |
② フェイルオーバーの実行
自動的にPerforceサーバが再起動され、マスタサーバへと切り替わります。自動的にPerforceサーバが再起動され、マスターサーバへと切り替わります。
パネル |
---|
borderColor | gray |
---|
borderWidth | 1 |
---|
borderStyle | solid |
---|
title | 実行コマンド |
---|
|
p4 failover -s master-server -y 例:p4 failover -s master -y |
...
■ フェイルオーバー:テスト運用―参照サーバの変更
注意 |
---|
|
この項目では、フェイルオーバーを実行後、旧マスタサーバこの項目では、フェイルオーバーを実行後、旧マスターサーバ(本マニュアルの場合はmasterここではmaster)を参照していたサーバでの対応についてのご案内です。ここではエッジサーバを例にしています。 ※マスタサーバとスタンバイサーバに対するDNSのエイリアス設定がされている場合は対応は不要です。※マスターサーバとスタンバイサーバに対するDNSのエイリアス設定がされている場合は対応は不要です。 |
①状況を確認する【エッジサーバで作業します】
パネル |
---|
borderColor | gray |
---|
borderWidth | 1 |
---|
borderStyle | solid |
---|
title | 実行コマンド |
---|
|
p4 pull -lj |
...
パネル |
---|
borderColor | gray |
---|
borderWidth | 1 |
---|
borderStyle | solid |
---|
title | コマンド結果 |
---|
|
Current replica journal state is: Journal 4, Sequence 6065. Current master journal state is: Journal 4, Sequence 6065. The statefile was last modified at: 2019/10/21 02:38:44. The replica server time is currently: 2019/10/21 02:38:51 +0900 JST "Sequence"の同じ値になれば同期完了です。が同じ値になれば同期完了です。 |
構築、テストは以上です。