web-dev-qa-db-ja.com

Linuxシステムのスナップショットを作成する

次のようにしたい-私のLinux OS(centOS6.5)の現在の状態を保存します。いくつかの変更を行います(具体的には、障害を挿入し、サービスをテストして、特定の種類の障害が発生したときの動作を確認します)。次に、システムを保存された状態に復元します。 Linuxシステムでこれを行う方法を理解できません。 centOS 6.5のマシンにext4ファイルシステムがあり、これは物理サーバーであり、仮想マシンではありません。

アイデアや提案はありますか?

11
bRuta

私はそれをシンプルに保ち、それを複製します。 USBからライブシステムを起動し(最も簡単なのはUSBサムドライブからのUbuntuです)、ハードディスクを別のパーティション(または外部ハードドライブなど)にダンプします。

dd if=/dev/sda1 bs=64M of=/mnt/my_mounted_backup_drive/backup-sda1

ここで、/dev/sda1をルート(/)パーティションに置き換える必要があります。該当する場合は、他のパーティション(/boot/boot/efi/homeのパーティションなど)でも同じようにします。

スペースを節約する必要がある場合は、

dd if=/dev/sda1 bs=64M | gzip --fast | dd bs=32M of=/mnt/my_mounted_backup_drive/backup-sda1.gz

または、より複雑で、はるかに低速ですが、さらに数バイトを節約します。

mkdir -p /mnt/linux
mount -o ro /dev/sda1 /mnt/linux
cd /mnt/linux
tar cvJf /mnt/my_mounted_backup_drive/linux-backup.tar.xz .??* *

その後、他の方法で復元できます。

mkdir -p /mnt/linux
mount /dev/sda1 /mnt/linux
cd /mnt/linux
tar xvJf /mnt/my_mounted_backup_drive/linux-backup.tar.xz

または

dd /mnt/my_mounted_backup_drive/backup-sda1.gz bs=32M | gzip --decompress | dd bs=64M of=/dev/sda1

(データを書き込んでいる場所に注意してください。これにより、/dev/sda1のすべてが削除されます。最初に正しく修正してください:-)

8
Ned64

Rsyncを使用してシステム全体をバックアップできます。

rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /* /path/to/backup/folder

Arch Linux Wiki に素晴らしい記事があります

5
Hugo Rodrigues

Rsyncまたはrsnapshotを使用して基本的にローカルマシンをバックアップするのはどうですか。テストが完了したら、バックアップを復元します。

http://rsnapshot.org/

http://www.mikerubel.org/computers/rsync_snapshots/

同様に、LVMを使用できます。

http://www.tldp.org/HOWTO/LVM-HOWTO/snapshots_backup.html

3
ventsyv

FSArchiver を使用できます。これにより、ファイルシステムの内容が圧縮ファイルに保存され、データの抽出時にファイルシステムが復元されます。

documentation の例を次に示します。

fsarchiver savefs /mnt/backup/gentoo-rootfs.fsa /dev/sda1

マルチスレッド圧縮を使用することもでき、復元は簡単です。

fsarchiver restfs /mnt/backup/gentoo-rootfs.fsa id=0,dest=/dev/sda1
1
Paulo Almeida