リレーサーバーの引越し手順(旧VPS会社→新VPS会社)¶
前提注意事項
- 本まとめは現VPS会社→新VPS会社へと
リレーのみを移行するまとめです。 - 実際に行う際には手順をよく読みながら進めてください。
- ブロック生成予定まで余裕がある時に実施してください。
- リレー1台かつトポロジーアップデータにIPアドレスで登録している場合は、旧リレーと新リレーを一定期間併用運用する必要があります。
1.新リレーセットアップ¶
留意事項
- サーバ独自機能に留意する
- さくらのパケットフィルタや、AWSのFW設定などのサーバー独自の機能に気を付けてください。
- 新リレーのファイヤーウォール設定は、旧リレーと同じ設定にしてください。
- 旧リレーのユーザー名(例:ubuntu)と新リレーのユーザー名は変更しないでください。
- もし変更する場合は、以下のファイル内のパス名を手動で変更してください。
startRelayNode1.shDIRECTORY=/home/ユーザー名/cnodetopologyUpdater.shCNODE_HOME=/home/ユーザー名/cnoderelay-topology_pull.shcurl -4 -s -o /home/ユーザー名/cnode/****
1-1.Ubuntu初期設定¶
新サーバーでUbuntu初期設定を実施します。
1-2.ノードセットアップ¶
依存関係インストール 〜 gLiveViewのインストールまで実施します。
2.旧リレー移行処理¶
旧リレーファイル移動
以下のファイルを旧リレーのcnodeディレクトリから新リレーのcnodeディレクトリにコピーします。
graph LR
A[旧リレー] -->|ファイル/フォルダ| B[新リレー];
| ファイル名 | 用途 |
|---|---|
| mainnet-topology.json | トポロジーファイル |
| startRelayNode1.sh | ノード起動スクリプト |
| topologyUpdater.sh | トポロジーアップデータスクリプト |
| relay-topology_pull.sh | トポロジー生成スクリプト |
| rsyncd.conf | RSYNC設定ファイル(設定中の場合) |
| rsync_ed25519.pub | RSYNC鍵ファイル(設定中の場合) |
3.新リレー再設定¶
旧リレーをダイナミックP2Pで運用していた場合
新リレーのmainnet-config.jsonのP2P設定をtrueにする
sed -i -e 's!"EnableP2P": false!"EnableP2P": true!' $NODE_HOME/mainnet-config.json
3-1.パーミッション変更¶
cd $NODE_HOME
chmod +x startRelayNode1.sh
chmod +x topologyUpdater.sh
chmod +x relay-topology_pull.sh
ノードを再起動します。
sudo systemctl reload-or-restart cardano-node
journalctl --unit=cardano-node --follow
DNS運用の場合
- リレーDNSのAレコードを新リレーサーバーのIPアドレスへ変更する
3-2. トポロジーアップデータ設定¶
nano $NODE_HOME/topologyUpdater.sh
旧リレーのIPとポートを新リレーのIPとポートに変更する
- CNODE_PORT=xxxx
- CNODE_HOSTNAME="xxx.xxx.xxx.xxx"
DNS運用の場合
- (DNS運用の場合は変更不要)
トポロジーアップデータ実行
cd $NODE_HOME
./topologyUpdater.sh
topologyUpdater.shが正常に実行された場合、以下の形式が表示されます。
{ "resultcode": "201", "datetime":"2020-07-28 01:23:45", "clientIp": "xxx.xxx.xxx.xx", "iptype": 4, "msg": "nice to meet you" }
3-3.Cron登録¶
1.Cronジョブ設定を実行する
2.Cronジョブ設定から4時間後にフェッチリスト登録確認を実行する
3.トポロジーファイル再作成
relay-topology_pull.shを実行し、トポロジーファイルを再作成する。
cd $NODE_HOME
./relay-topology_pull.sh
ノード再起動
sudo systemctl reload-or-restart cardano-node
何もせず、relay-topology_pull.shも実行しないでください。
旧リレー併用目安
リレー1台かつトポロジーアップデータにIPアドレスで登録している場合は、新リレーのIncomingの数が安定して10以上に増えるまで旧リレーと新リレーを併用してください。
4.BP設定修正¶
4-1.ファイアウォール設定変更¶
AWSなどufwを使用しない場合
VPSの管理画面からファイアウォールの設定を変更してください。
PORT=`grep "PORT=" $NODE_HOME/startBlockProducingNode.sh`
b_PORT=${PORT#"PORT="}
echo "BPポートは${b_PORT}です"
<新リレーIP> の <>を除いて新リレーIPを入力してください。
sudo ufw allow from <新リレーIP> to any port ${b_PORT}
sudo ufw reload
4-2.トポロジーファイル修正¶
nano $NODE_HOME/mainnet-topology.json
- 旧リレーIPとポートを新リレーのIPとポートに変更する
- DNS運用の場合は変更不要
BPノードを再起動する
sudo systemctl reload-or-restart cardano-node
チェーンが同期したら新リレーとBPの双方向の疎通(I/O)ができているかを確認します。
gLiveView確認
cd $NODE_HOME/scripts
./gLiveView.sh
InとOutに新リレーのIPがあることを確認してください。
5.Grafana/Prometheus設定¶
監視ツールセットアップのリレーノード1タブと9-3.Grafanaダッシュボード設定を実行する。
- 新リレーにて
prometheus node exporterをインストールします。
sudo apt install -y prometheus-node-exporter
サービスを有効にして、自動的に開始されるように設定します。
sudo systemctl enable prometheus-node-exporter.service
ノード再起動
sudo systemctl reload-or-restart cardano-node
prometheus.ymlの修正
- DNSベースで接続している人は、DNSの変更が反映されたら自動的に切り替わるので以下作業は不要です。
sudo nano /etc/prometheus/prometheus.yml
- 旧リレーのIPを新リレーのIPへ変更してください
サービス再起動
sudo systemctl restart grafana-server.service
sudo systemctl restart prometheus.service
sudo systemctl restart prometheus-node-exporter.service
サービスが正しく実行されていることを確認します。
sudo systemctl --no-pager status grafana-server.service prometheus.service prometheus-node-exporter.service
Grafanaに新リレーのメトリクス(Slotなど)が表示されているか確認する。
6.プール情報更新¶
プール情報の更新を用いて、チェーン登録中のリレーIPを変更する。
(DNS運用の場合は不要です)
7.補足¶
Tracemempool無効化¶
新リレーに十分なInが確認できた場合の処理
Txの増加が確認できたらTracemempoolを無効にします。
sed -i $NODE_HOME/${NODE_CONFIG}-config.json \
-e "s/TraceMempool\": true/TraceMempool\": false/g"
ノード再起動
sudo systemctl reload-or-restart cardano-node
旧リレーストップ
sudo systemctl stop cardano-node
sudo systemctl disable cardano-node
BPファイアウォールから旧リレーIP削除
sudo ufw status numbered
sudo ufw delete <削除したい番号>
ufwを使わないケース
AWSやVSPによっては管理画面でセキュリティ設定(ファイアウォール)を行っている場合がありますので、その場合はVPS管理画面から設定を変更してください。
Mithril-Signer再セットアップ¶
旧サーバーでMithril-Signer-Relayを実行していた場合は、新サーバーでも再セットアップしてください。不明点がある場合はBTBF SPO LAB.でご質問ください。