LoginSignup
2
3

More than 1 year has passed since last update.

さくらのVPSをReaRでクローンする

Last updated at Posted at 2022-09-07

やりたいこと

さくらのVPSで作成したサーバーのクローン(複製)を作りたい。

概要

さくらのVPSにはサーバーのクローンを作ったり、ディスクのバックアップやリストアを行う機能がありません。同じ構成のサーバーを複数作りたいときや、テスト用に今の環境をクローンして使いたい場合はちょっと不便です。
そこで ReaR (Relax-and-Recover) を使って、クローン対象のサーバーをバックアップして、クローン先にリストアを行います。ReaRは起動可能なISOファイルを作成できるので、OSをインストールする感覚でリストアが可能です。

使用環境

Rocky Linux 8.6

ReaRのインストール

# dnf install rear

ReaRの設定

/etc/rear/local.conf を以下のようにしました。生成されるISOファイルは /tmp に出力されます。/tmpはバックアップの対象外のはずなので、生成中のISOファイルがバックアップされることはありません。

/etc/rear/local.conf
OUTPUT=ISO
OUTPUT_URL=file:///tmp
BACKUP=NETFS
BACKUP_URL=iso:///backup/

バックアップの実行

# rear -v mkbackup

しばらくするとバックアップが完了するので、/tmpを見てみます。すると自分のホスト名のディレクトリの下に、.isoファイルが作成されています。

# ll /tmp/ホスト名/
-rw-------   1 root root        202  9月  7 09:57 README
-rw-------   1 root root        276  9月  7 09:57 VERSION
-rw-------   1 root root 1391476736  9月  7 09:57 rear-ホスト名.iso
-rw-------   1 root root     105196  9月  7 09:57 rear-ホスト名.log

クローン先のサーバーを用意する

さくらのVPSのコントロールパネルを開き、はじめにクローン先となる、新しいサーバーを作成します。たしか新規作成時はISOファイルからは作れなかったはずなので、まずは適当なサーバーを作成しておきます。
次にサーバーの「OS再インストール」を選択し、「OSインストール形式」は「ISOインストール」を選択、「ISOイメージの詳細」は「アップロードする」を選択すると、SFTPサーバーの情報が表示されます。ファイルはSFTPでアップロードを行います。

ISOファイルのアップロード

ISOファイルをPCにダウンロードしてからアップロードするか、もしくはサーバー上から直接アップロードします。以下は直接アップロードする手順です。

# sftp ユーザー名@ホスト名
cd iso
put /tmp/ホスト名/rear-ホスト名.iso
exit

ファイルはログインしたディレクトリの iso/ にアップロードします。アップロードすると、さくらのVPSのコントロールパネルにもファイルの情報が表示されます。

リストアを実行する

ISOファイルのアップロードが完了したら、コントロールパネルの指示通りに進みます。VNCコンソールを開くと、ReaRのメニューが表示されていますので、「Automatic Recover xxxx」を選択します。
ReaR Boot Menu
しばらくするとリストアが終了するので 3) Reboot を選択します。電源がオフになるので、再度電源をオンにすると、クローンしたシステムが起動します。

リストア先の設定を修正する

クローン元のネットワーク設定のまま起動してしまうので、このままではネットワークに繋がりません。VNCコンソールからログインして、ネットワークの設定を変更します。設定に必要な情報は、コントロールパネルの上で確認できます。これで外部からsshでログインできるようになるので、その他必要な修正などを行います。

余談

さくらのVPSにディスクのクローンや、バックアップ、リストア機能が欲しいです!ConoHaのVPSにはその機能があって、簡単にクローンが作れるんですよね。さくらインターネットではさくらのクラウドにこれらの機能があるので、格安なVPSサービスとの差別化ということで、あえて実装してないのかもしれません。さくらのクラウドはサーバーとディスクを自由に組み替えたりできるので、実験用の環境を簡単に構築できて便利です。

追記: ISOイメージから起動できなかった場合

今までこの方法で問題なくリストアできていたのですが、なぜかRocky Linux 8.7ではISOイメージからの起動ができませんでした。ローカル環境で試したところ、512MBのメモリではエラーすら出ず、1GBでは起動中にエラーで止まってしまいます。メモリを2GBにすると正常に起動しました。かといってさくらのVPSではインストール時だけメモリを増やすなんてことはできません。そこで、初期OS上で無理矢理リストアすることにしました。

手順

  1. VPSで普通にOSをインストールして、sshでログインできる状態にする。 (以下、rootで実行することを想定)
  2. dnf install tar rsync
  3. VPSにログインして、 /backup を作成する
  4. PC上でReaRで作成したISOを開いて、backup/backup.tar.gz を取り出す
  5. backup.tar.gz をSFTPで /backup に転送する
  6. ファイルを展開する tar xfzp backup.tar.gz --numeric-owner
  7. 以下のスクリプトでクローンする
  8. 再起動する(shutdownコマンドか効かなかったので強制再起動)
  9. コンソールからnmtui等でネットワークの設定を行う
  10. 不要なファイル /bakup を削除する
CLONEDIR="bin boot dev etc home lib lib64 opt root run sbin srv usr var"
for cdir in $CLONEDIR
do
  echo Clone: $cdir
  #echo rsync -rtlzvogpHAX --delete --dry-run $cdir /
  rsync -rtlzvogpHAX --delete $cdir /
done

稼働しているシステム上でファイルを書き換えるという、ちょっと乱暴なやり方でしたが、ひとまず復元はできました。コピーすべきではないファイルがある場合はrsyncの --exclude オプションで除外できます。これは正しくない、こうした方がいい、といった情報がございましたら、コメントで教えていただけると助かります。

追記;/etc/fstab は除外したほうがいいかも。たまたまUUIDが同じなだけで、元のインストールイメージが異なると別のUUIDになっている可能性があります。

2
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3