dd
このようにして、LVM2論理ボリュームを持つ外部ドライブにバックアップを実行したいと思います。
私の考え方は
- 外付けドライブから同じサイズの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が自分の物理ボリュームにあることを確認しますvgsplit
。
答え2
使用しないでくださいdd
。空き領域を含むボリュームのすべての内容をコピーして元のファイルシステムと同じUUIDでファイルシステムを作成する愚かな動物であるため、システムを混乱させる可能性があります。代わりに、partclone
Ghost4linuxなどのツールやfsarchiver
システムを圧縮画像ファイルにコピーし、空きブロックをスキップできるツールを使用してください。
答え3
- 外部ディスクマウント
- アプリケーションの停止
- ファイルシステムが使用中でないことを確認します($ sudo fusion -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
編集する。リンク: