コンテンツにスキップ

サーバー間ファイル転送

メリット

複数台のサーバーがある場合に、以下の処理を行うことでビルド時間の短縮やノードのダウンタイムを抑えることが出来ます。

デメリット

  • RSYNC+SSHを利用したアップデート方法は、転送元・転送先サーバーのディスク空き容量が150GB以上必要となります。

はじめに

  • RSYNCを使用する場合、最初に事前設定を行ってください

1. バイナリファイル(node/cli)転送の場合

1-2.転送元サーバー作業

バイナリーファイルを転送フォルダ用にコピーする

mkdir $NODE_HOME/Transfer
cp $(find $HOME/git/cardano-node/dist-newstyle/build -type f -name "cardano-cli") $NODE_HOME/Transfer/cardano-cli
cp $(find $HOME/git/cardano-node/dist-newstyle/build -type f -name "cardano-node") $NODE_HOME/Transfer/cardano-node

バージョン確認

$NODE_HOME/Transfer/cardano-cli version
$NODE_HOME/Transfer/cardano-node version

希望するバージョンになっているか確認する

1-2.転送元から転送先へ転送する

変数forに転送先エイリアスを代入する

転送先エイリアスを指定する

for=xxxx

転送先エイリアスは、事前設定の 1-2.SSH設定ファイル作成 で設定した転送先Host名(エイリアス)を指定します。

ファイルを転送する

rsync -P --rsh=ssh $NODE_HOME/Transfer/cardano-cli $for::Server/cardano-cli

転送が完了するまで待つ

rsync -P --rsh=ssh $NODE_HOME/Transfer/cardano-node $for::Server/cardano-node

転送が完了するまで待つ

1-3.転送先サーバー作業

ノードを停止する

sudo systemctl stop cardano-node

バイナリーファイルをシステムフォルダーへコピーする

sudo cp $NODE_HOME/cardano-cli /usr/local/bin/cardano-cli
sudo cp $NODE_HOME/cardano-node /usr/local/bin/cardano-node
バージョン確認
cardano-cli version
cardano-node version

希望するバージョンになっているか確認する

ノードを起動する

sudo systemctl start cardano-node

ヒント

  • GliveViewでノード状況を確認する
  • Syncing 100%がTip(diff): ** :)となるまで待つ

2.DBフォルダ転送の場合

2-1.転送元サーバー作業

容量確認 転送元・転送先サーバー両方で確認してください

df -h /usr
Availが180GB以上あることを確認してください。

ノードを停止する

sudo systemctl stop cardano-node

DBフォルダを圧縮する

新しいTMUXセッションを開く

tmux new -s tar
圧縮する
tar cvzf $NODE_HOME/Transfer/cardano-db.tar.gz -C $NODE_HOME db

圧縮が終了したらTMUXを閉じる

exit

ノードをスタートする

sudo systemctl start cardano-node

2-2.転送元から転送先へ転送する

新しいTMUXセッションを開く

tmux new -s rsync

転送先エイリアスを指定する。変数forに転送先エイリアスを代入する

for=xxxx

転送先エイリアスは、事前設定の 1-2.SSH設定ファイル作成 で設定した転送先Host名(エイリアス)を指定します。

圧縮されたDBを転送する

rsync -P --rsh=ssh $NODE_HOME/Transfer/cardano-db.tar.gz $for::Server/cardano-db.tar.gz

転送が完了するまで待つ

転送が終了したらTMUXを閉じる

exit

2-3.転送先サーバー作業

新しいTMUXセッションを開く

tmux new -s tar

SSDの空き容量を再確認する

df -h /usr
Availが100GB以上あることを確認してください。

DBを解凍する

mkdir $NODE_HOME/temp
tar -xzvf $NODE_HOME/cardano-db.tar.gz -C $NODE_HOME/temp/

DBの解凍が終わるまで待ちます

解凍が終わったらTMUXを閉じる

exit

ノードを停止する

sudo systemctl stop cardano-node

DBフォルダを入れ替える

mv $NODE_HOME/db $NODE_HOME/db_134
mv $NODE_HOME/temp/db $NODE_HOME/db

ノードを起動する

sudo systemctl start cardano-node

ヒント

  • GliveViewでノード状況を確認する
  • Syncing 100%がTip(diff): ** :)となるまで待つ

バイナリーファイルを移動する

cd $HOME/git
rm -rf cardano-node-old/
mv $HOME/git/cardano-node/ $HOME/git/cardano-node-old/
mkdir cardano-node
mv $NODE_HOME/cardano-cli $HOME/git/cardano-node/
mv $NODE_HOME/cardano-node $HOME/git/cardano-node/

確認

ノードの同期が成功しブロック生成に成功し数エポック様子を見たあと、転送用ファイル・バックアップDBを削除してください

rm -rf $NODE_HOME/Transfer
rm -rf $NODE_HOME/db_134
rm $NODE_HOME/1.35.3-db.tar.gz