
LVM2 論理ボリュームの外部ドライブにバックアップを作成したいと思いますdd
。
私が考えるアプローチは
- 同じサイズの外付けドライブに lv を作成する
- コピーして
dd
(このようなアプローチに何か本当に間違っている点を見つけたら、お知らせください。信頼性が高く、高速なものが必要です。)
プロセス全体を自動化したいのですが、次のようなものがあります:
# Sanity check that lv is not used
lvuses="$( lvdisplay -c /dev/mapper/vgA-AA | cut -d ':' -f 6 )"
if [ $lvuses -gt 0 ]; then exit 1 ; fi
#obtain lv size (in sectors)
lvsize="$( lvdisplay -c /dev/mapper/vgA-AA | cut -d ':' -f 7 )"
#create destination
lvcreate -L "${lvsize}s" vgB -n BB || exit 1
# copy
dd if=/dev/mapper/vgA-AA of=/dev/mapper/vgB-BB
大丈夫ですか?何か見逃したことはありませんか?
(私の場合、vgA-AA は LVM スナップショットであり、それを外付けドライブにバックアップして、このドライブを他の地理的な場所に持ち込みたいと考えています)
答え1
スクリプトは問題なさそうですが、私は別のアプローチを使います。ミラーを作成してから、それを破壊します。私の知る限り、これはオンラインで実行できます。未テスト:
lvconvert -m /dev/mapper/vgA-AA /dev/sdz98 /dev/sdz99
lvconvert --splitmirrors 1 --name BB /dev/mapper/vgA-AA
新しい論理ボリュームを別のボリューム グループに移動する場合は、送信する LV が独自の物理ボリューム上にあることを確認し、を使用して PV を 1 つの VG から別の VG に転送する必要があると思いますvgsplit
。
答え2
を使用しないでくださいdd
。これは、空き領域を含むボリューム内のすべてのものをコピーし、元のファイル システムと同じ UUID を持つファイル システムを作成する愚かなツールであり、システムを混乱させる可能性があります。代わりに、システムを圧縮イメージ ファイルにコピーして空きブロックをスキップできる、partclone
または ghost4linux やなどのツールを使用してください。fsarchiver
答え3
- 外部ディスクをマウントする
- アプリケーションを停止する
- ファイルシステムが未使用かどうかを確認します ($ sudo fuser -M /path/to/filesystem/mountpoint)
- スナップショットを作成します ($ sudo lvcreate -s ...........)
- アプリケーションを開始する
- rsync を使用してバックアップします (--update および --link-dest については man rsync を確認してください)
- またはチェックhttp://dirvish.orgまたはhttp://backuppc.sourceforge.net/実装用
- 外部ディスクのマウント解除
- スナップショット LV を削除します。この手順では、バックアップごとに外部ディスクにディレクトリを作成します。ソース ディスクから変更されたファイルまたは新しいファイルのみがコピーされ、バックアップ間で重複するファイルをハードリンクすることでスペースが節約されます。
答え4
信頼性が高く、高速です。LVM スナップショットをお勧めします。
非常に高速で、バックアップ中にファイルの変更が行われることなくバックアップが行われることが保証されます。また、ボリューム上にデータベースがある場合でも、それをオフラインにする必要はありません。
これは、ボリュームの変更をテストするのにも適した方法です。スナップショットを作成し、変更を加えます。変更が失敗した場合は、スナップショットをマージし直します。成功した場合は、スナップショットを削除します。
編集: コード
lvcreate -L 10G -s -n snapshot /dev/VG/LV
次に、スナップショット ボリュームを任意の場所に任意の方法でバックアップします。
ファイルシステムのテストでは、スナップショットを作成してマージバックすることができます。
lvconvert --merge /dev/VG/snapshot
このマージにより、スナップショット ボリュームが自動的に削除されます。
注記:スナップショットにkernel version 2.6.33 or newer
は、LVM tools 2.02.58 or newer
編集。リンク: