为LUKS加密的磁盘/分区做增量备份
我們中有些人出于安全原因,在家里或者VPS上通過(guò)Linux統(tǒng)一密鑰配置(LUKS)為硬盤驅(qū)動(dòng)器加密,而這些驅(qū)動(dòng)器的容量很快會(huì)增長(zhǎng)到數(shù)十或數(shù)百GB。因此,雖然我們享受著LUKS設(shè)備帶來(lái)的安全感,但是我們也該開(kāi)始考慮一個(gè)可能的遠(yuǎn)程備份方案了。對(duì)于安全的非現(xiàn)場(chǎng)備份,我們將需要能在LUKS加密的設(shè)備上以塊級(jí)別操作的東西。因此,最后我們發(fā)現(xiàn)這么個(gè)狀況,我們每次都需要傳輸想要做備份的整個(gè)LUKS設(shè)備(比如說(shuō)200GB大)。很明顯,這是不可行的。我們?cè)撛趺磥?lái)處理這個(gè)問(wèn)題呢?
一個(gè)解決方案: Bdsync
這時(shí),一個(gè)卓越的開(kāi)源工具來(lái)拯救我們了,它叫Bdsync(多虧了Rolf Fokkens)。顧名思義,Bdsync可以通過(guò)網(wǎng)絡(luò)同步“塊設(shè)備”。對(duì)于快速同步,Bdsync會(huì)生成并對(duì)比本地/遠(yuǎn)程塊設(shè)備的塊的MD5校驗(yàn)和,只同步差異部分。rsync在文件系統(tǒng)級(jí)別可以做的,Bdsync可以在塊設(shè)備級(jí)別完成。很自然,對(duì)于LUKS加密的設(shè)備它也能工作得很好。相當(dāng)?shù)仂`巧!
使用Bdsync,首次備份將拷貝整個(gè)LUKS塊設(shè)備到遠(yuǎn)程主機(jī),因而會(huì)花費(fèi)大量時(shí)間來(lái)完成。然而,在初始備份后,如果我們?cè)贚UKS設(shè)備新建一些文件,再次備份就會(huì)很快完成,因?yàn)槲覀冎恍杩截愋薷倪^(guò)的塊。經(jīng)典的增量備份在起作用了!
安裝Bdsync到Linux
Bdsync并不包含在Linux發(fā)行版的標(biāo)準(zhǔn)倉(cāng)庫(kù)中,因而你需要從源代碼來(lái)構(gòu)建它。使用以下針對(duì)特定版本的指令來(lái)安裝Bdsync及其手冊(cè)頁(yè)到你的系統(tǒng)中。
Debian,Ubuntu或Linux Mint
Fedora或CentOS/RHEL
對(duì)LUKS加密的設(shè)備實(shí)施非現(xiàn)場(chǎng)增量備份
我假定你已經(jīng)準(zhǔn)備好了一個(gè)LUKS加密的塊設(shè)備作為備份源(如,/dev/LOCDEV)。同時(shí),我假定你也有一臺(tái)遠(yuǎn)程主機(jī),用以作為源設(shè)備的備份點(diǎn)(如,/dev/REMDEV)。
你需要在兩臺(tái)系統(tǒng)上具有root帳號(hào)訪問(wèn)權(quán)限,并且設(shè)置從本地訪問(wèn)遠(yuǎn)程的無(wú)密碼SSH訪問(wèn)。最后,你需要安裝Bdsync到兩臺(tái)主機(jī)上。
要在本地主機(jī)上初始化一個(gè)遠(yuǎn)程備份進(jìn)程,我們需要以root執(zhí)行以下命令:
這里需要進(jìn)行一些說(shuō)明。Bdsync客戶端將以root打開(kāi)一個(gè)到遠(yuǎn)程主機(jī)的SSH連接,并執(zhí)行帶有--server選項(xiàng)的Bdsync客戶端。明確說(shuō)明一下,/dev/LOCDEV是我們的本地主機(jī)上的源LUKS塊設(shè)備,而/dev/REMDEV是遠(yuǎn)程主機(jī)上的目標(biāo)塊設(shè)備。它們可以是/dev/sda(作為整個(gè)磁盤),或者/dev/sda2(作為單個(gè)分區(qū))。本地Bdsync客戶端的輸出結(jié)果隨后被管道輸送到gzip,用來(lái)在本地主機(jī)中創(chuàng)建DEV.bdsync.gz(所謂的二進(jìn)制補(bǔ)丁文件)。
你第一次運(yùn)行上面的命令的時(shí)候,它會(huì)花費(fèi)很長(zhǎng)一段時(shí)間,這取決于你的互聯(lián)網(wǎng)/局域網(wǎng)速度,以及/dev/LOCDEV的大小。記住,你必須有兩個(gè)大小相同的塊設(shè)備(/dev/LOCDEV和/dev/REMDEV)。
下一步是要將補(bǔ)丁文件從本地主機(jī)拷貝到遠(yuǎn)程主機(jī)。一種方式是使用scp:
最后一步,是要在遠(yuǎn)程主機(jī)上執(zhí)行以下命令,它們會(huì)將補(bǔ)丁文件應(yīng)用到/dev/REMDEV:
我推薦在使用真實(shí)數(shù)據(jù)部署B(yǎng)dsync前,使用一些(沒(méi)有任何重要數(shù)據(jù))小分區(qū)來(lái)做這些測(cè)試。在你完全弄懂整個(gè)設(shè)置是如何工作之后,你可以開(kāi)始備份真實(shí)數(shù)據(jù)。
尾聲
小結(jié)之,我們演示了如何使用Bdsync來(lái)為L(zhǎng)UKS設(shè)備實(shí)施增量備份。和rsync一樣,每次備份只有一小部分?jǐn)?shù)據(jù),而不是整個(gè)LUKS設(shè)備,需要被推送到非現(xiàn)場(chǎng)備份點(diǎn),這樣會(huì)節(jié)省帶寬和備份時(shí)間。剩下來(lái),需要通過(guò)SSH或SCP來(lái)保證所有數(shù)據(jù)傳輸?shù)陌踩?#xff0c;事實(shí)上設(shè)備自身是由LUKS加密的。也可以通過(guò)使用可以運(yùn)行bdsync的專用用戶(而非root)來(lái)改進(jìn)該配置。我們也可以將bdsync用于任何塊設(shè)備,如LVM卷或RAID磁盤,也可以很輕易地設(shè)置Bdsync備份本地磁盤到USB驅(qū)動(dòng)器上。如你所見(jiàn),它有著無(wú)限可能性!
隨時(shí)分享你的想法。
原文發(fā)布時(shí)間為:2015-06-16
本文來(lái)自云棲社區(qū)合作伙伴“Linux中國(guó)”
總結(jié)
以上是生活随笔為你收集整理的为LUKS加密的磁盘/分区做增量备份的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《SolidWorks 2016中文版机
- 下一篇: linux操作系统下C语言编程入门小结