LVM2邏輯磁碟區的備份

LVM2邏輯磁碟區的備份

我想以這種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 位於其自己的實體磁碟區上,並將 PV 從一個 VG 轉移到另一個與vgsplit.

答案2

不要使用dd.它是一種愚蠢的動物,會複製卷中的所有內容,包括可用空間,並產生與原始檔案系統具有相同 UUID 的檔案系統,這可能會混淆系統。相反,請使用像partcloneGhost4linux 這樣的工具,或者fsarchiver可以將系統複製到壓縮映像檔並跳過空閒區塊的工具。

答案3

  • 掛載外部磁碟
  • 停止應用程式
  • 檢查檔案系統是否未使用($ sudo fusion -M /path/to/filesystem/mountpoint)
  • 建立快照($ sudo lvcreate -s ......)
  • 開始申請
  • 使用 rsync 進行備份(檢查 man rsync 的 --update 和 --link-dest)
  • 或檢查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 newerLVM tools 2.02.58 or newer

編輯。連結:

TLDP:使用快照進行備份

HowtoForge:使用 LVM 快照備份和還原分割區

Cyber​​citi:使用 LVM 快照進行一致備份

相關內容