ユーザ用ツール

サイト用ツール


os:freebsd_マシンの引っ越し

差分

このページの2つのバージョン間の差分を表示します。


os:freebsd_マシンの引っ越し [2023/08/09 10:05] (現在) – 作成 - 外部編集 127.0.0.1
行 1: 行 1:
 +===== FreeBSD マシンの引っ越し =====
  
 +[[Boot Environment]] を使っているならば、新しいマシンへ簡単に環境を移すことができます。
 +
 +単に古いマシンの default 環境を新しいマシンの new 環境にコピーし、new 環境から起動するだけです。
 +
 +以下、古いマシンを old_host 、新しいマシンを new_host として、具体的な手順を示します。
 +
 +==== セットアップ ====
 +
 +まず、新しいマシンに zfs root で FreeBSD をインストールします。
 +この時、古いマシンと同じバージョンの FreeBSD か、より新しいバージョンの FreeBSD を選びます。
 +新しいマシンの設定はネットワークに接続できる最小限の設定で構いません。
 +ports / pkg のインストールも不要です。
 +ユーザも作る必要はありません。(どのみち root で作業しますので)
 +
 +そして、古いマシンと新しいマシンをネットワークに接続します。
 +IP アドレスやデフォルトルート等は環境に合わせて、適切に設定してください。
 +
 +==== コピー ====
 +
 +新しいマシン側では new 環境に対して zfs recv を行います。
 +
 +<code>
 +new_host# nc -l 9999 | zfs recv zroot/ROOT/new
 +</code>
 +
 +古いマシン側では default 環境にタグをつけた上でそれを zfs send します。
 +
 +<code>
 +old_host# zfs snapshot zroot/ROOT/default@current
 +old_host# zfs send -L -c zroot/ROOT/default@current | nc -N new_host 9999
 +old_host# zfs destroy zroot/ROOT/default@current
 +</code>
 +
 +最近の zfs では large blocks と圧縮をサポートしていますので、 zfs send に -L と -c をつけておくと良いでしょう。
 +
 +もし、ネットワークが不安定で一度の send で送れないようでしたら、 [[ZFS Tips#send & recv のレジューム]]を試してみてください。
 +
 +==== 古いホストを停止する ====
 +
 +コピーが完了したら古いホストを停止します。新しいホストは設定を含めて何もかもが全く同じ状態で立ち上がります。
 +もし static な IPアドレスを設定していた場合、重複することになりますので、古いホストは停止しておくと良いでしょう。
 +
 +<code>
 +old_host# shutdown -p now
 +</code>
 +
 +==== 新しい環境で起動する ====
 +
 +新しいホストでは new 環境から起動します。
 +
 +<code>
 +new_host# bectl activate new
 +new_host# shutdown -r now
 +</code>
 +
 +これで新しいマシンで設定も何もかもが同じ FreeBSD が起動します。
 +必要ならば IP アドレスを再設定してください。
 +
 +host id も同じになりますので、以下のコマンドで host id を再設定すると良いでしょう。
 +
 +<code>
 +new_host# /etc/rc.d/hostid reset
 +</code>
 +
 +host id が同じだと bridge(4) や tap(4) に割り当てる MAC アドレスが同じになります。
 +また、NFS のクライアント識別にも使用されており、古いホストと同時に接続するとエラーが表示されます。
 +zfs のプールにも import 中のシステムの情報として host id が書き込まれます。物理的なディスク装置を抜き出す時は export してからにしましょう。
 +古いホストを再起動する際にはこれらにも注意してください。
os/freebsd_マシンの引っ越し.1640571936.txt.gz · 最終更新: 2021/12/27 11:30 (外部編集)

特に明示されていない限り、本Wikiの内容は次のライセンスに従います: 2-Clause BSD License
Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki