Linuxの省スペースディスクスナップショット

Linuxの省スペースディスクスナップショット

私はすぐにスナップショットを作成して復元するVirtualBoxの機能が好きで、ホストシステムで同様のことができるかどうか疑問に思います。

最初はスナップショットを見てみましたがlvm、もう少し見てみると、動的に割り当てられたイメージに比べて欠点が多すぎることがわかりました。たとえば、

  • 彼らはスペースを占めています。 10%が論理ボリュームに書き込まれ、スナップショットが作成されると、ボリュームの残りの90%は使用できなくなります。
  • スナップショットの作成はすぐに行われますが、そのスナップショットに復元するには時間がかかります。
  • 書き込みが多すぎると、スナップショットは自動有効期限から保護できません。

Windows 7では、差分.vhdイメージをホストに接続する機能をVirtualBox GUIと正常に組み合わせてスナップショットを管理し、Linuxでも同様のオプションを探しています。

答え1

@Lambertの答えを完成させるには、以下もあります。BTRFS(Linuxファイルシステム)を許可スナップショットの作成と復元ファイルシステムのサブボリュームです。 2つの違いは、次を読んでください。Redditに投稿されたこの投稿

BtrfsはLinuxカーネルに含まれており、それをルートファイルシステムとして使用できます。可能だと思う始める

~について「実験的」状態、私は2年以上問題なく使用しています。

答え2

彼らはスペースを占めています。 10%が論理ボリュームに書き込まれ、スナップショットが作成されると、ボリュームの残りの90%は使用できなくなります。

いいえ、そうではありません。 LVMスナップショットは、2つのブロックデバイス、つまり元のLV(スナップショットの作成内容)とスナップショットLVを提供します。実際、LVの1つで変更されたデータのみがスナップショットLVに書き込まれます。すべてのLVを通常のファイルシステムとしてマウントし、どちらかを100%使用できます。ユーザースペースとの唯一の違いは、スナップショットLVが変更されていないように見えることです(もちろん、これはポイントです)。

スナップショットの作成はすぐに行われますが、そのスナップショットに復元するには時間がかかります。

「リカバリ」時に実行する操作に応じて、lvcreate通常のLVのようにスナップショットを作成できます(コマンドを使用)。一連のスナップショットLVを維持し、VMに数週間前のLVから起動するように指示できます。これはブロックデバイスへの別のパスを提供するだけです。

スナップショットを変更し、その変更を元のLVにコミットする場合スナップショットをマージできます。

書き込みが多すぎると、スナップショットは自動有効期限から保護できません。

あなたが何を意味するかわからない。オリジナルまたはスナップショットLVからの書き込みが多すぎるため、スナップショットLVがいっぱいになっています。私が知る限り、書き込みの唯一の問題は、スナップショットLVで利用可能なものよりも多くのデータを記録する必要があることです。ただし、これはスペースを節約するためにスナップショットLVを元のサイズより小さくする場合にのみ問題になります。

答え3

ZFS FuseまたはZFS on Linuxプロジェクトをチェックしてください。 ZFSファイルシステムでは、スナップショットと複製が可能です。 Linuxでは、ZFSから起動することは不可能だと思いますが、ZFSプールにデータ/タスクを保存できます。

また見なさい:http://zfsonlinux.org/またはオンラインでZFS Fuseを検索してください。

答え4

derobertが提案したように、LVMのシンスナップショットを使用します。

# create pool
lvcreate -L 10000M -T vg_oktestapp1/pool

# create thin vol
lvcreate -V 10000M -T vg_oktestapp1/pool -n lv_ibm

# mount
mkfs.ext4 /dev/vg_oktestapp1/lv_ibm
mount /dev/vg_oktestapp1/lv_ibm /media/ibm

# do stuff ...

# create snapshot
lvcreate -s vg_oktestapp1/lv_ibm --name lv_ibm_20150411090827

# do stuff ...

# instant restore snapshot
lvcreate -s vg_oktestapp1/lv_ibm_20150411003856 --name lv_ibm_new --setactivationskip n
umount /media/ibm
mount /dev/vg_oktestapp1/lv_ibm_new /media/ibm

関連情報