説明
Perforce Helix Coreのフェイルオーバー機能を使用したDR環境構築の手順を説明していますCoreのフェイルオーバー機能を使用したDR環境の構築、および構築後のテスト運用手順を説明しています
警告 |
---|
・マスタサーバとスタンバイサーバのタイムゾーンが一致している必要があります。・マスターサーバとスタンバイサーバのタイムゾーンが一致している必要があります。「タイムゾーンの設定」をご覧ください |
情報 | ||||
---|---|---|---|---|
| ||||
本構築作業の条件は以下の通りです
適宜実環境に合わせて変更してください
マスター | スタンバイ | Perforce super user | |
サーバ名 | commit | nomandatory | super |
ServerID | commit | nomandatory | レプリケーション用ユーザ名 |
Option | - | nomandatory | service |
server-service | commit-server | standby | |
IP | 192.168.56.102 | 192.168.56.104 | |
Port | 1666 | 1666 | |
P4ROOT | /commit | /p4root_st |
構築手順
...
1.スタンバイサーバのサーバ仕様作成
...
1.スタンバイサーバのサーバ仕様作成【マスターサーバで作業します】
① p4コマンドで"nomandatory"というスタンバイサーバのサーバ仕様を作成します。
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
p4 -u super -p master-server:port server |
...
standby-serverID |
...
192.168.56.102:1666 server nomandatory |
...
② 設定を修正・追加します
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
ServerID: |
...
nomandatory |
...
server |
...
standby ●standard(default)を上書き |
...
nomandatory |
...
commit ●一行追記する( |
...
マスターサーバのserver ID) |
...
情報 | ||
---|---|---|
| ||
startup.1=journalcopy -i |
...
1:起動時にjournalcopy(マスターサーバのjournalをスタンバイに移送)を実行 |
...
1:移送したローカルのjournalから情報を読み取る |
...
1:アーカイブファイルを取得する |
2.サービスユーザの作成と設定【マスターサーバで作業します】
① p4コマンドで"service"というレプリケーション用サービスユーザを作成します
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
p4 -u super -p master-server:port user -f service |
...
-user |
...
② 設定を修正・追加します
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
User: service |
...
service ●一行追記する |
3.サービスユーザ “service” のパスワードを設定します
実行コマンド
p4 ③ サービスユーザ "service" のパスワードを設定します
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
p4 -u super -p master-server:port passwd service-user |
...
例:p4 -u super -p 192.168.56.102:1666 passwd service |
...
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Enter new password: (任意のパスワードを入力します) |
...
4.サービスユーザのアクセスレベルの設定を追加します
実行コマンド
p4 protect
...
④ サービスユーザのアクセスレベルの設定を追加します
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
p4 protect |
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
write user * * //... |
3.チェックポイントの作成と移動【マスターサーバで作業します】
① スタンバイサーバ用のチェックポイントファイルを作成します
作成したチェックポイントファイル名は"checkpoint"としています
チェックポイントファイル(ファイル名:checkpoint.. ●一行追加
3.チェックポイントの作成と移動
【マスタサーバで作業します】
1.スタンバイサーバ用のチェックポイントファイルを作成します
作成したチェックポイントファイル名は“checkpoint”としています
実行コマンド
p4 ckp.1)が作成されます
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
p4 -u super -p master-server:port admin |
...
checkpoint filename |
チェックポイントファイル(ファイル名:checkpoint.ckp.1)が作成されます
2.チェックポイントファイルを転送します
FTPツール② チェックポイントファイルを転送します
FTPツール(任意)を使用して、スタンバイサーバへチェックポイントファイル(checkpoint.ckp.1)を転送します。
※このマニュアルではスタンバイサーバの /tmp に格納しています
4.スタンバイサーバの設定
【スタンバイサーバでの作業です】
1~4の作業については、サーバ構築方法によって対応が異なります。実環境をご確認の上、必要に応じて作業してください。
1.P4ROOT用のディレクトリ “p4root_st” を作成します ※既にルートフォルダを作成済みであれば、作業不要です
実行コマンド
mkdir /p4root_st
2.作成したディレクトリのownerを“root”から“perforce”に変更します ※ownerがperforceであれば作業不要です
実行コマンド
chown を使用して、スタンバイサーバへチェックポイントファイルを転送します。
※ここではスタンバイサーバの /tmp に格納しています
4.スタンバイサーバの設定【スタンバイサーバでの作業です】
情報 |
---|
①~④の作業については、サーバ構築方法によって対応が異なります。実環境をご確認の上、必要に応じて作業してください。 |
① P4ROOT用のディレクトリ "p4root_st" を作成します
※既にルートフォルダを作成済みであれば、作業不要です
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
mkdir /$P4ROOT |
② 作成したディレクトリのownerを"root"から"perforce"に変更します
※ownerがperforceであれば作業不要です
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
chown perforce:perforce -R /$P4ROOT/ |
③ FTP転送したチェックポイントファイル(checkpoint.ckp.1)を$P4ROOT(ここでは/
3.FTP転送したチェックポイントファイルを$P4ROOTへ移動します ※$P4ROOTへ転送済みであれば作業不要です
実行コマンド
mv P4root_st)へ移動します
※$P4ROOTへ転送済みであれば作業不要です
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
mv /転送場所/filename /$P4ROOT/ |
...
4.チェックポイントファイルのownerを“root”から“perforce”に変更します
※ownerがperforceであれば、作業不要です
実行コマンド
chown perforce:perforce filename
5.Perforceサービスを停止します
実行コマンド
p4dctl stop server-name
コマンド例)
p4dctl stop nomandatory
6.不要なファイルを削除します
構築したスタンバイサーバに存在するデータベース等を削除します
...
例:mv /tmp/checkpoint.ckp.1 /P4root_st/ |
...
④ チェックポイントファイルのownerを"root"から"perforce"に変更します
※ownerがperforceであれば、作業不要です
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
chown perforce:perforce filename |
⑤ Perforceサービスを停止します
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
p4dctl stop server-name |
⑥ 不要なファイルを削除します
構築したスタンバイサーバに存在するデータベース等を削除します
$P4ROOT(ここではP4root_st/)に移動し、以下のファイルを削除します
・ファイル名が[db.]で始まるファイル(データベース)すべて
・server.locksフォルダ:フォルダごと削除
実行コマンド例
rm
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
rm -f db.* |
7.ServerIDを指定します
サーバ“standby”のserverIDを“nomandatory”に指定します
※既に指定されている場合は作業不要です
実行コマンド
p4d ⑦ ServerIDを指定します
サーバ "standby"のserverIDを"nomandatory"に指定します
※既に指定されている場合は作業不要です
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
p4d -r /$P4ROOT -xD standby-serverID |
...
8.チェックポイントファイルを展開します。※ownerが“perforce”になるように展開してください。
...
⑧ チェックポイントファイルを展開します。※ownerが"perforce"になるように展開してください。
コマンド実行後、db.ファイルが作成されたことを確認します
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
p4d -r /$P4ROOT/ - |
...
jr filename |
...
または |
...
sudo -u perforce p4d -r /$P4ROOT - |
...
実行後、db.ファイルが作成されたことを確認します
9.Perforceサービスを開始します
...
jr filename |
⑨ Perforceサービスを開始します
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
p4dctl start server-name |
...
【スタンバイサーバでの作業です】
1.ユーザ“service”が使用するレプリケーション用チケットを作成します
...
例:p4dctl start nomandatory |
5.レプリケーションの設定と確認【スタンバイサーバでの作業です】
① ユーザ"service"が使用するレプリケーション用チケットを作成します
※ "p4root_st/.p4tickets" はサーバ仕様作成時(手順1-②)に指定した場所を入力します。
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
p4 -p master_server:port -u service -E "P4TICKETS=/p4root_st/.p4tickets" login |
...
例:p4 -p 192.168.56.102:1666 -u service -E "P4TICKETS=/p4root_st/.p4tickets" |
...
2.レプリケーション用チケットの確認をします
...
login |
② レプリケーション用チケットの確認をします
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
ls -la /p4root_st/.p4tickets |
...
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
-r--------. 1 perforce perforce 53 10月 10 16:48 /p4root_st/.p4tickets |
...
3.レプリケーションの確認をします
...
③ レプリケーションの確認をします
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
p4 -u super -p standby_server:port pull -lj |
...
例:p4 -u super -p 192.168.56.104:1666 pull -lj |
...
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Current replica journal state is: Journal 1, Sequence 4878. |
...
※大規模なサイトの場合、同期に時間がかかる場合がありますので、時間をおいて再度コマンドを実行してください。
“Sequence”が同じ数値になれば同期完了です。
※エラーが表示される場合は、作業を停止し、弊社サポートまでご連絡ください。
6.フェイルオーバー:テスト運用
マスターサーバが起動できない・完全にダウンしていると判断できる状況を想定した運用のご案内です。
マスタサーバが起動している・ネットワーク接続が可能な状況は別の手順となりますのでご注意ください。
...
注意 | ||
---|---|---|
| ||
・大規模なサイトの場合、同期に時間がかかる場合がありますので、時間をおいて再度コマンドを実行してください。"Sequence" が同じ数値になれば同期完了です。 |
情報 | ||
---|---|---|
| ||
pull -ljコマンド:レプリカとマスターにおけるカレントジャーナルの状態を表示するコマンドです |
6.フェイルオーバー:テスト運用【スタンバイサーバで作業します】
注意 | ||
---|---|---|
| ||
マスターサーバが起動できない・完全にダウンしていると判断できる状況を想定した運用のご案内です。 |
① フェイルオーバーの確認
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
p4 -u super -p standby-server:port failover -i -s master-serverID -w 10 -F |
...
例:p4 -u super -p 192.168.56.104:1666 failover -i -s commit -w 10 -F |
...
情報 | ||
---|---|---|
| ||
-i ………… フェイルオーバー動作中にマスターサーバを無視するオプションです |
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Checking if failover might be possible ... |
...
② フェイルオーバーの実行
コマンド実行後、自動的にPerforceサーバが再起動され、マスターサーバへと切り替わります。
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
|
...
p4 -u super -p standby-server:port failover -i - |
...
s master-serverID -w 10 -F -y |
...
例:p4 -u super -p 192.168.56.104:1666 failover -i -s commit -w 10 -F -y |
...
パネル | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Attempting unsupported forced failover; attempting to continue through any errors encountered. This server might not be as expected after the forced failover. |
自動的にPerforceサーバが再起動され、マスタサーバへと切り替わります。構築・テストは以上です。