Backup

linux磁碟(dmcrypt,luks,ext4,ext3,btrfs)正常和加密系統的嚴重備份選項

  • March 24, 2020

磁碟/分區備份

進行可靠且易於使用的完整系統備份的備份選項和良好做法是什麼?

有以下要求:

  • 實時備份
  • 圖像備份
  • 加密備份
  • 增量備份
  • 輕鬆掛載/訪問備份磁碟/文件
  • 全系統備份,一鍵還原
  • 可以自動安排(使用 cron 或其他)
  • 加密或經典備份源(luks、dm-crypt、ext3/ext4/btrfs)。

Linux系統備份

當以真正的完整系統備份為目標時,與基於文件的備份相比,磁碟映像備份(如所要求的)提供了巨大的優勢(詳細如下)。

不保存**基於文件的備份磁碟/分區結構;**大多數情況下,完全恢復的過程非常耗時,實際上需要許多耗時的步驟(如係統重新安裝);最備份份已安裝的應用程序可能會很棘手;映像磁碟備份避免了所有這些缺點,恢復過程是一步到位。

clonezilla、fsarchiver等工具不適合這個問題,因為它們缺少一個或多個請求的功能。

提醒一下,luks加密分區不依賴於使用的文件系統(ext3/ext4/etc)。請記住,性能因所選文件系統(詳細資訊)而異,另請注意btrfs影片- 1 , video-2 ) 可能是一個非常好的選擇,因為它具有快照功能和資料結構。這只是一個額外的保護層,因為 btrfs 快照不是真正的備份!(經典快照駐留在同一分區上)。

附帶說明一下,除了磁碟映像備份之外,我們可能希望對某些特定位置進行簡單的文件同步備份,為此,可以組合使用***rsync / grsync(或btrfs-send,如果是 btrfs)之類的工具使用 cron(如果需要)和加密的備份目標(如 luks-partition/vault/truecrypt)。基於文件的備份工具可以是:rsync / grsyncrsnapshotcronopetedump / restoretimeshiftdeja-dupsystembackfreefilesync實時同步,幸運備份,vembu***。


註釋

lsblk --fs輸出:

  • sda是主盤
  • sda1/sda2是加密分區
  • crypt_sda1/crypt_sda2虛擬(映射)未加密分區
   sda
   ├─sda1           crypto_LUKS        f3df6579-UUID... 
   │ └─crypt_sda1   ext4               bc324232-UUID... /mount-location-1
   └─sda2           crypto_LUKS        c3423434-UUID...
     └─crypt_sda2   ext4               a6546765-UUID... /mount-location-2

方法#1

將原始 luks 磁碟/分區(sdasda1)按原樣加密備份到任何位置

  • bdsync / bdsync-manager是一個了不起的工具,可以通過快速塊設備同步來進行映像備份(完整/增量);這可以與 luks 一起直接在加密分區上使用,增量備份在這種情況下也很有效。該工具支持掛載/壓縮/網路/等。
  • dd:磁碟映像的經典方法,可以與類似的命令一起使用,dd if=/dev/sda1 of=/backup/location/crypted.img bs=128K status=progress但請注意,使用 dd 對已掛載的分區進行映像可能會導致備份完成時已使用文件的數據損壞,例如 sql 數據庫、x 配置文件或正在編輯的文件,為了保證數據的完整性,建議關閉所有正在執行的應用程序和數據庫,我們還可以在創建映像後掛載映像並檢查其完整性fsck

#1 的缺點:備份大小、壓縮和增量備份可能很棘手

方法#2

此方法適用於未加密的磁碟或備份映射的 luks 未加密分區crypt_sda1/crypt_sda2…建議使用加密的備份目標位置(如 luks-partition/vault/truecrypt)或加密的存檔/映像(如果備份工具支持此類功能) .

  • Veeam:免費/付費專業備份解決方案(僅在linux命令行和TUI上),核心模組是開源的,該工具不能用於第一種方法,備份可以加密,支持增量和掛載備份。
  • bdsync / bdsync-manager與第一種方法相同,但備份是從未加密的映射分區(crypt_sda1/crypt_sda2)進行的。
  • dd:磁碟映像的經典方法,可以與類似的命令一起使用,dd if=/dev/mapper/crypt_sda1 of=/backup/location/un-encrypted-sda1.img bs=128K status=progress但請注意,使用 dd 對已掛載的分區進行映像可能會導致備份完成時已使用文件的數據損壞,例如 sql 數據庫、x 配置文件或正在編輯的文件,為了保證數據的完整性,建議關閉所有正在執行的應用程序和數據庫,我們還可以在創建映像後掛載映像並檢查其完整性fsck

#2 的缺點:磁碟頭、mbr、分區結構、uid 等未保存完整備份需要額外的備份步驟(詳細如下)

  • 備份 luks 標頭:cryptsetup luksHeaderBackup /dev/sda1 --header-backup-file /backup/location/sda1_luks_heanders_backup
  • 備份 mbr:dd if=/dev/sda of=/backup/location/backup-sda.mbr bs=512 count=1
  • 備份分區結構sfdisk -d /dev/sda > /location/backup-sda.sfdisk
  • 備份磁碟 uuid

筆記:

  • 完成的圖像dd可以使用類似於以下的命令掛載: fdisk -l -u /location/image.img kpartx -l -v /location/image.img kpartx -a -v /location/image.img cryptsetup luksOpen /dev/mapper/loop0p1 imgroot mount /dev/mapper/imgroot /mnt/backup/

備擇方案:


其他工具

  • Acronis備份可用於這兩種方法,但它們的核心模組總是在最近更新(不適用於目前/最近的核心版本),而且自 2020 年 2 月起掛載備份無法正常工作。
  • Partclone:clonezilla 使用,此工具僅備份磁碟使用過的塊,支持鏡像掛載但不支持實時/熱備份,也不支持加密/luks。
  • Partimage : dd 與 TUI 的替代方案,它支持實時/熱備份,但無法掛載圖像並且不支持 luks(但 ext4/btrfs)。
  • Doclone:非常好的實時/熱備份映像解決方案,支持許多系統(但不是運氣……) ext4 等支持網路,無法安裝。
  • Rsnapshot:使用 rsync 的快照文件備份系統。在許多發行版(如 mageia)中使用的備份作業是使用 cron 安排的,當在後台執行時,備份狀態不會自動可見。
  • Rsync / Grsync : 使用 rsync 命令同步文件夾,grsync 是 gui…
  • Cronopete:rsync 的文件備份替代方案(與現代解決方案相比,該應用程序的工作方式受到限制)
  • 簡單備份:帶有托盤圖示和增量功能的文件備份解決方案,備份到 tars 檔案
  • Backintime:用於基於文件的備份的python備份應用程序(該應用程序有許多未解決的問題
  • Shadowprotect:具有安裝功能的 acronis 替代方案… luks 支持不明顯。
  • Datto:專業的備份解決方案,luks 支持不明顯,linux 代理需要聯網到備份伺服器…核心模組在 github 上是開源的…界面是基於 Web 的,沒有使用現代設計。
  • FSArchiver:live/hot 鏡像備份解決方案,備份無法掛載。
  • Dump:鏡像備份系統,不支持掛載。

引用自:https://unix.stackexchange.com/questions/569796