Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

説明

Perforce Helix Coreのフェイルオーバー機能を使用したDR環境構築の手順を説明していますCoreのフェイルオーバー機能を使用したDR環境構築、構築後のテスト運用手順を説明しています

Warning

マスタサーバとスタンバイサーバのタイムゾーンが一致している必要があります。
p4dのバージョンが一致している必要があります。

...

1.スタンバイサーバのサーバ仕様作成

【マスタサーバで作業します】
1.p4コマンドで“nomandatory”というサーバ仕様を作成します。① p4コマンドで“nomandatory”というサーバ仕様を作成します。

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド

p4 -u super -p master-server:port server nomandatory

2.設定を修正・追加します② 設定を修正・追加します   赤文字部分を修正・追記箇所し、保存します。

Panel
borderColorgray
borderWidth1
borderStylesolid
title赤文字部分を修正・追記

ServerID:   nomandatory
Type:   server
Services:   standby ●standard(default)を上書き
Options:   nomandatory
ReplicatingFrom: commit ●一行追記する(マスタサーバのserver ID)
Description:
Created by super.
DistributedConfig:
any#P4JOURNAL=../journals/journal
any#P4LOG=../logs/log
⋮ 
any#unicode=1
P4LOG=log
P4TARGET=192.168.56.102:1666
P4TICKETS=/p4root_st/.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

Info
title解説

startup.1=journalcopy -i 1 …… 起動時にjournalcopy(マスタサーバのjournalをスタンバイに移送)を実行
startup.2=pull -L -i 1  ………… 移送したローカルのjournalから情報を読み取る
startup.3=pull -u -i 1  ………… アーカイブファイルを取得する
rpl.journalcopy.location=1…… journalcopyスレッドの書き込みを設定する構成可能変数1…… journalcopyスレッドの書き込みを設定する構成可能変数
※より詳細な情報はコマンドリファレンスマニュアルをご参照ください


2.サービスユーザの作成と設定

【マスタサーバで作業します】
1.p4コマンドで“service”というレプリケーション用サービスユーザを作成します
   
   実行コマンド
   p4 ① p4コマンドで“service”というレプリケーション用サービスユーザを作成します

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド

p4 -u super -p master-server:port user -f service

...

② 設定を修正・追加します

Panel
borderColorgray
borderWidth1
borderStylesolid
title赤文字部分を追記

User: service
Type:

...

service ●一行追記する
Email: service@commit
FullName: service

3.サービスユーザ ③ サービスユーザ “service” のパスワードを設定します
   
   実行コマンド
   p4

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド

p4 -u super -p master-server:port passwd service

...

Panel
borderColorgray
borderWidth1
borderStylesolid
titleパスワード設定

Enter new password: (任意のパスワードを入力します)
Re-enter new password: (確認のため同じパスワードを入力します)

4.サービスユーザのアクセスレベルの設定を追加します
   
   実行コマンド
   p4 protect 

表示例)④ サービスユーザのアクセスレベルの設定を追加します

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド

p4 protect 

Panel
borderColorgray
borderWidth1
borderStylesolid
title表示例:赤文字部分を追記

write user * * //...
list user * * -//spec/...
super user super * //...
super user service * //...

...

  ●一行追加


3.チェックポイントの作成と移動

【マスタサーバで作業します】
1.スタンバイサーバ用のチェックポイントファイルを作成します
   作成したチェックポイントファイル名は“checkpoint”としています   実行コマンド
   p4
① スタンバイサーバ用のチェックポイントファイルを作成します
   作成したチェックポイントファイル名は“checkpoint”としています
   チェックポイントファイル(ファイル名:checkpoint.ckp.1)が作成されます

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド

p4 -u super -p master-server:port admin

...

checkpoint checkpoint

   チェックポイントファイル(ファイル名:checkpoint.ckp.1)が作成されます

2.チェックポイントファイルを転送します
   FTPツール② チェックポイントファイルを転送します
   FTPツール(任意)を使用して、スタンバイサーバへチェックポイントファイル(checkpoint.ckp.1)を転送します。
   ※このマニュアルではスタンバイサーバの    ※このマニュアルではスタンバイサーバの /tmp に格納しています


4.スタンバイサーバの設定

【スタンバイサーバでの作業です】1~4の作業については、サーバ構築方法によって対応が異なります。実環境をご確認の上、必要に応じて作業してください。1.P4ROOT用のディレクトリ

Info

~④の作業については、サーバ構築方法によって対応が異なります。実環境をご確認の上、必要に応じて作業してください。

① P4ROOT用のディレクトリ “p4root_st” を作成します ※既にルートフォルダを作成済みであれば、作業不要です   実行コマンド
   mkdir を作成します 
 ※既にルートフォルダを作成済みであれば、作業不要です

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド例

mkdir /p4root_st

2.作成したディレクトリのownerを“root”から“perforce”に変更します ※ownerがperforceであれば作業不要です

   実行コマンド
   chown ② 作成したディレクトリのownerを“root”から“perforce”に変更します 
 ※ownerがperforceであれば作業不要です

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド

chown perforce:perforce -R /p4root_st /

3.FTP転送したチェックポイントファイルを$P4ROOTへ移動します ※$P4ROOTへ転送済みであれば作業不要です

   実行コマンド
   mv /転送場所/filename /$P4ROOT/
   コマンド例
   mv ③ FTP転送したチェックポイントファイル(checkpoint.ckp.1)を$P4ROOT(ここではP4root_st/)へ移動します 
 ※$P4ROOTへ転送済みであれば作業不要です

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド

mv /tmp/checkpoint.ckp.1 /P4root_st/

...

4.チェックポイントファイルのownerを“root”から“perforce”に変更します
   ※ownerがperforceであれば、作業不要です

   実行コマンド
   chown perforce:perforce filename

5.Perforceサービスを停止します

   実行コマンド
   p4dctl stop server-name
   コマンド例)
   p4dctl stop nomandatory

6.不要なファイルを削除します
   構築したスタンバイサーバに存在するデータベース等を削除します

...

④ チェックポイントファイルのownerを“root”から“perforce”に変更します
  ※ownerがperforceであれば、作業不要です

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド

chown perforce:perforce checkpoint.ckp.1

⑤ Perforceサービスを停止します

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド

p4dctl stop nomandatory

⑥ 不要なファイルを削除します
   構築したスタンバイサーバに存在するデータベース等を削除します

   $P4ROOT(ここではP4root_st/)に移動し、以下のファイルを削除します
   ・ファイル名が[db.]で始まるファイル(データベース)すべて
   ・server.locksフォルダ:フォルダごと削除
   実行コマンド例
   rm
   

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド例

rm -f db.*
rm -fr server.locks/

7.ServerIDを指定します⑦ ServerIDを指定します
   サーバ“standby”のserverIDを“nomandatory”に指定します
   ※既に指定されている場合は作業不要です   実行コマンド
   p4d

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド

p4d -r /

...

P4root_st -xD nomandatory

8.チェックポイントファイルを展開します。※ownerが“perforce”になるように展開してください。

   実行コマンド
   p4d -r /$P4ROOT -jr filename
   または
   sudo ⑧ チェックポイントファイルを展開します。※ownerが“perforce”になるように展開してください。
  コマンド実行後、db.ファイルが作成されたことを確認します

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド

p4d -r /P4root_st/ -jr checkpoint.ckp.1
または
sudo -u perforce p4d -r /

...

   実行後、db.ファイルが作成されたことを確認します

9.Perforceサービスを開始します

   実行コマンド
   p4dctl start server-name
   コマンド例
   p4dctl start nomandatory

5.レプリケーションの設定と確認

【スタンバイサーバでの作業です】
1.ユーザ“service”が使用するレプリケーション用チケットを作成します

...

4root_st -jr fcheckpoint.ckp.1

⑨ Perforceサービスを開始します

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド

p4dctl start nomandatory

5.レプリケーションの設定と確認

【スタンバイサーバでの作業です】
① ユーザ“service”が使用するレプリケーション用チケットを作成します

2.レプリケーション用チケットの確認をします

...

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド

p4 -p master_server:port -u service -E "P4TICKETS=/p4root_st/.p4tickets" login

...


② レプリケーション用チケットの確認をします

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド

ls -la /p4root_st/.p4tickets

...

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行結果:例

-r--------. 1 perforce perforce 53 10月 10 16:48 /p4root_st/.p4tickets

...

3.レプリケーションの確認をします

...

③ レプリケーションの確認をします

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド

p4 -u super -p standby_server:port pull -lj

...

Panel
borderColorgray
borderWidth1
borderStylesolid
title表示されるメッセージ例

Current replica journal state is: Journal 1, Sequence 4878.
Current master journal state is: Journal 1, Sequence 4878.
The statefile was last modified at: 2019/10/16 15:16:27.
The replica server time is currently: 2019/10/16 15:19:11 +0900 JST

※大規模なサイトの場合、同期に時間がかかる場合がありますので、時間をおいて再度コマンドを実行してください。
“Sequence”が同じ数値になれば同期完了です。
※エラーが表示される場合は、作業を停止し、弊社サポートまでご連絡ください。
6.フェイルオーバー:テスト運用
マスターサーバが起動できない・完全にダウンしていると判断できる状況を想定した運用のご案内です。
マスタサーバが起動している・ネットワーク接続が可能な状況は別の手順となりますのでご注意ください。

...

Note
iconfalse

大規模なサイトの場合、同期に時間がかかる場合がありますので、時間をおいて再度コマンドを実行してください。“Sequence”が同じ数値になれば同期完了です。
エラーが表示される場合は、作業を停止し、弊社サポートまでご連絡ください。

Info
title解説

pull -ljコマンド:レプリカとマスターにおけるカレントジャーナルの状態を表示するコマンドです
以下の内容が含まれます
・カレントジャーナルの状態 ・ステートファイルの最終更新時刻
・サーバのローカル時刻 ・タイムゾーン


6.フェイルオーバー:テスト運用

Note
iconfalse

マスターサーバが起動できない・完全にダウンしていると判断できる状況を想定した運用のご案内です。
マスタサーバが起動している・ネットワーク接続が可能な状況は別の手順となりますのでご注意ください。

① フェイルオーバーの確認【スタンバイサーバで作業します】

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド

p4 -u super -p standby-server:port failover -i -

...

s commit -w 10 -F

...

Info
title解説

-i フェイルオーバー動作中にマスタサーバを無視するオプションです

...

-s serverID 切り替えるサーバ(今回はマスタサーバ)のserverIDを指定します

...

-w 10 フェイルオーバー実行までの待機時間を“秒”で指定します。今回は10秒としています

...

-F  強制的にフェイルオーバーを実行します(※マニュアルに記載のないオプションです)

...

Panel
borderColorgray
borderWidth1
borderStylesolid
title表示されるメッセージ

Checking if failover might be possible ...
This failover requires that this server have the 'mandatory' option set since the server from which failover is to occur is not participating in the failover.
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.
※異なるメッセージ・エラーが表示される場合は、テストを中止し、弊社サポートまでご連絡ください。


2.フェイルオーバーの実行② フェイルオーバーの実行

Panel
borderColorgray
borderWidth1
borderStylesolid
title実行コマンド

p4 -u super -p standby-server:port failover -i -s

...

commit -

...

w 10 -F -y

...

Panel
borderColorgray
borderWidth1
borderStylesolid
title表示されるメッセージ

Attempting unsupported forced failover; attempting to continue through any errors encountered. This server might not be as expected after the forced failover.
Starting failover process ...
This failover requires that this server have the 'mandatory' option set since the server from which failover is to occur is not participating in the failover.
Waiting for 'pull -L' to complete its work ...
Checking for archive file content not transferred ...
Verifying content of recently updated archive files ...
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...
自動的にPerforceサーバが再起動され、マスタサーバへと切り替わります。

構築・テストは以上です。