Linux中國

為LUKS加密的磁碟/分區做增量備份

一個解決方案: Bdsync

這時,一個卓越的開源工具來拯救我們了,它叫Bdsync(多虧了Rolf Fokkens)。顧名思義,Bdsync可以通過網路同步「塊設備」。對於快速同步,Bdsync會生成並對比本地/遠程塊設備的塊的MD5校驗和,只同步差異部分。rsync在文件系統級別可以做的,Bdsync可以在塊設備級別完成。很自然,對於LUKS加密的設備它也能工作得很好。相當地靈巧!

使用Bdsync,首次備份將拷貝整個LUKS塊設備到遠程主機,因而會花費大量時間來完成。然而,在初始備份後,如果我們在LUKS設備新建一些文件,再次備份就會很快完成,因為我們只需拷貝修改過的塊。經典的增量備份在起作用了!

安裝Bdsync到Linux

Bdsync並不包含在Linux發行版的標準倉庫中,因而你需要從源代碼來構建它。使用以下針對特定版本的指令來安裝Bdsync及其手冊頁到你的系統中。

Debian,Ubuntu或Linux Mint

$ sudo apt-get install git gcc libssl-dev
$ git clone https://github.com/TargetHolding/bdsync.git
$ cd bdsync
$ make
$ sudo cp bdsync /usr/local/sbin
$ sudo mkdir -p /usr/local/man/man1
$ sudo sh -c 'gzip -c bdsync.1 > /usr/local/man/man1/bdsync.1.gz'

Fedora或CentOS/RHEL

$ sudo yum install git gcc openssl-devel
$ git clone https://github.com/TargetHolding/bdsync.git
$ cd bdsync
$ make
$ sudo cp bdsync /usr/local/sbin
$ sudo mkdir -p /usr/local/man/man1
$ sudo sh -c 'gzip -c bdsync.1 > /usr/local/man/man1/bdsync.1.gz'

對LUKS加密的設備實施非現場增量備份

我假定你已經準備好了一個LUKS加密的塊設備作為備份源(如,/dev/LOCDEV)。同時,我假定你也有一台遠程主機,用以作為源設備的備份點(如,/dev/REMDEV)。

你需要在兩台系統上具有root帳號訪問許可權,並且設置從本地訪問遠程的無密碼SSH訪問。最後,你需要安裝Bdsync到兩台主機上。

要在本地主機上初始化一個遠程備份進程,我們需要以root執行以下命令:

# bdsync "ssh root@remote_host bdsync --server" /dev/LOCDEV /dev/REMDEV | gzip > /some_local_path/DEV.bdsync.gz 

這裡需要進行一些說明。Bdsync客戶端將以root打開一個到遠程主機的SSH連接,並執行帶有--server選項的Bdsync客戶端。明確說明一下,/dev/LOCDEV是我們的本地主機上的源LUKS塊設備,而/dev/REMDEV是遠程主機上的目標塊設備。它們可以是/dev/sda(作為整個磁碟),或者/dev/sda2(作為單個分區)。本地Bdsync客戶端的輸出結果隨後被管道輸送到gzip,用來在本地主機中創建DEV.bdsync.gz(所謂的二進位補丁文件)。

你第一次運行上面的命令的時候,它會花費很長一段時間,這取決於你的互聯網/區域網速度,以及/dev/LOCDEV的大小。記住,你必須有兩個大小相同的塊設備(/dev/LOCDEV和/dev/REMDEV)。

下一步是要將補丁文件從本地主機拷貝到遠程主機。一種方式是使用scp:

# scp /some_local_path/DEV.bdsync.gz root@remote_host:/remote_path 

最後一步,是要在遠程主機上執行以下命令,它們會將補丁文件應用到/dev/REMDEV:

# gzip -d < /remote_path/DEV.bdsync.gz | bdsync --patch=/dev/DSTDEV 

我推薦在使用真實數據部署Bdsync前,使用一些(沒有任何重要數據)小分區來做這些測試。在你完全弄懂整個設置是如何工作之後,你可以開始備份真實數據。

尾聲

小結之,我們演示了如何使用Bdsync來為LUKS設備實施增量備份。和rsync一樣,每次備份只有一小部分數據,而不是整個LUKS設備,需要被推送到非現場備份點,這樣會節省帶寬和備份時間。剩下來,需要通過SSH或SCP來保證所有數據傳輸的安全,事實上設備自身是由LUKS加密的。也可以通過使用可以運行bdsync的專用用戶(而非root)來改進該配置。我們也可以將bdsync用於任何塊設備,如LVM卷或RAID磁碟,也可以很輕易地設置Bdsync備份本地磁碟到USB驅動器上。如你所見,它有著無限可能性!

隨時分享你的想法。

via: http://xmodulo.com/remote-incremental-backup-luks-encrypted-disk-partition.html

作者:Iulian Murgulet 譯者:GOLinux 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國