umbrel の引っ越し、チャネルは開いたままで。

実験ノードの umbrel を別PC(TrueNAS SCALE に作った仮想環境)に移動したので、その忘備録。もちろん開いているチャネルはそのまま引っ越しです。

引っ越しの手順は、

1.新ノードにumbrelをインストール
2.新ノードにBitcoin Nodeをインストール
3.旧ノードから新ノードへブロックとチェーンステートをコピー
4.新ノードに Lightning Node (LND) をインストール
5.旧ノードから新ノードへ Lightning Node (LND) のデータをコピー

以下のサイトを参考にさせていただきました。というか、ほぼ以下の内容そのままです。

1.新ノードにumbrelをインストール

umbrelをインストールするまでの手順はあちこちにあるので省略します。

  • ubuntu-22.04.3-live-server-amd64.iso 辺りをダウンロードしてUSBメモリに書き込む
  • USBメモリから起動してubuntu server をインストール
  • sshでログインして curl -L https://umbrel.sh | bash

カブトコインさんのインストール編がいちばんまとまってるかな。

2.新ノードにBitcoin Nodeをインストール

umbrel の App Store から Bitcoin Node アプリをインストールします。

3.旧ノードから新ノードへブロックとチェーンステートをコピー

Bitcoin Node アプリで同期が始まり、同期割合が0.01%を超えたら、一旦新ノードのumbrelをストップします。

新ノード:

sudo /path/to/umbrel/scripts/stop

この後で詳しく書きますが、新ノードのログイン名がhugaの場合、

sudo /home/huga/umbrel/scripts/stop

です。

旧ノードから新ノードへデータをコピーします。rsyncを使用します。

以下のコマンドを旧ノードで実行し、blocks と chainstate のフォルダをコピーします。

旧ノード:

rsync -rav --progress /path/to/oldnode/umbrel/app-data/bitcoin/data/bitcoin/chainstate /path/to/oldnode/umbrel/app-data/bitcoin/data/bitcoin/blocks user@newnodeip:/path/to/umbrel/app-data/bitcoin/data/bitcoin

この時、/path/to/oldnode や user@newnodeip:/path/to/ は適切に書き換えてください。

例えば、旧ノードのログイン名がhoge、新ノードのログイン名がhuga、新ノードのIPアドレスが192.168.1.2の場合、

/path/to/oldnode → /home/hoge
user@newnodeip:/path/to/huga@192.168.1.2:/home/huga

私の場合、だいたい半日でコピーが完了しました。

コピー完了後、新ノードのumbrelを起動します。

新ノード:

sudo /path/to/umbrel/scripts/start

先ほどの例で言えば、sudo /home/huga/umbrel/scripts/start

新ノードでBitcoin Node アプリを開くと、ブロックデータのインデックス作成が開始され、しばらくすると同期が完了します。

上記で参考にしたサイトにはBitcoin Node アプリのAdvanced SettingsからCache Size (MB)を一時的に増やすとインデックスの作成が高速化されるとも書いてます。今回は私はやってません。

変更する場合は、同期完了後に元に戻してください。

4.新ノードに Lightning Node (LND) をインストール

umbrel の App Store から Lightning Node アプリをインストールします。

新旧両方のノードを停止します。

ここまでは旧ノードを普段どおり動作させていましたが、ついにここで動作を停止させることになります。また、これ以降旧ノードの umbrel を再開させることはありません。

新ノード:

sudo /path/to/umbrel/scripts/stop

先ほどの例で言えば、sudo /home/huga/umbrel/scripts/stop

旧ノード:

sudo /path/to/oldnode/umbrel/scripts/stop

先ほどの例で言えば、sudo /home/hoge/umbrel/scripts/stop

5.旧ノードから新ノードへ Lightning Node (LND) のデータをコピー

以下のコマンドを旧ノードで実行し、lightning node のフォルダをコピーします。

旧ノード:

rsync -rav --progress /path/to/oldnode/umbrel/app-data/lightning user@newnodeip:/path/to/umbrel/app-data

先ほど同様に適切に書き換えてください。

/path/to/oldnode → /home/hoge
user@newnodeip:/path/to/huga@192.168.1.2:/home/huga

コピーが完了したら、新ノードのみを再開させます。

新ノード:

sudo /path/to/umbrel/scripts/start

先ほどの例で言えば、sudo /home/huga/umbrel/scripts/start

新ノードの Lightning Node アプリを開いて、引っ越しが完了していることを確認します。

5.その他

Bitcoin Node アプリで、Prune Old Blocks を有効にしている場合、今回のやり方ではうまくBitcoin Node アプリの移行が出来ませんでした。(移行作業後、アプリ起動時にエラーで止まる。)

その場合、rsync コマンドに --delete オプションを付けることでうまくいきました。

旧ノード:

rsync -rav --progress --delete /path/to/oldnode/umbrel/app-data/bitcoin/data/bitcoin/chainstate /path/to/oldnode/umbrel/app-data/bitcoin/data/bitcoin/blocks user@newnodeip:/path/to/umbrel/app-data/bitcoin/data/bitcoin

コピー先にのみ存在し、コピー元にないファイルは削除するオプションです。これによりディレクトリの中身が新旧完全に同じになります。

Remaining : 0 characters / 0 images
100

Sign up / Continue after login

Related stories

Writer

katana🗡 Lightning Node 運用中。03328dba4e263835416d35b14a2f0298f567c6bb5dad7e3d33d671de30d542b4c1

Share

Popular stories

charge-lnd で fee や max_htlc を自動設定[umbrel 0.5.0以降対応]

862

Lightning node の運用まとめ

449

Raspberry Pi 用の UPS(無停電電源装置) で umbrel の瞬停対策

446