web-dev-qa-db-ja.com

LVM2論理ボリュームのバックアップ

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スナップショットであり、それを外部ドライブにバックアップして、このドライブを他の地理的な場所に移動したいと思います)

スクリプトは問題ないように見えますが、別のアプローチを使用します。ミラーを作成してから、それを壊します。私の知る限り、オンラインでこれを行うことができます。未テスト:

lvconvert -m /dev/mapper/vgA-AA /dev/sdz98 /dev/sdz99
lvconvert --splitmirrors 1 --name BB /dev/mapper/vgA-AA

新しい論理ボリュームを別のボリュームグループに移動する場合は、送信するLVがそれ自体の物理ボリューム上にあることを確認し、PVを1つのVGからに転送する必要があると思います。もう1つはvgsplitです。

信頼性が高く、高速です。 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

編集。リンク:

TLDP:スナップショットを使用してバックアップを取る

HowtoForge:LVMスナップショットを使用したパーティションのバックアップと復元

サイバーシティ:LVMスナップショットを使用した一貫性のあるバックアップ

1
2bc