Linux系統管理員常常問的一個問題是:如何備份我的系統?對於windows系統來說,進行備份是很簡單的工作(僅僅需要在菜單模式下點擊鼠標就可以完成)。 Linux備份工作則要麻煩的多,若你不熟悉Linux系統文件和設備,情況則會變得更糟。該篇文章討論了在Linux環境下保護數據的方法和相關的設備信息。
1 什麼是備份?
最簡單的講,備份數據的過程就是拷貝重要的數據到其他的介質之上(通常是可移動的),以保證在原始數據丟失的情況下可以恢復數據。一次備份可能是簡單的cp命令,將一個文件復制到其他目錄下,也可能是使用特定的程序將數據流寫進一個特定的設備中的復雜過程。很多情況下是將要備份的數據寫入到磁帶機中,但有些情況也不是這樣的。在Linux環境下,或其他Unix系統,備份可以是將文件拷貝到已存在的文件系統,可替換的文件系統,磁帶機,遠程文件系統,甚至是遠程系統的上的磁帶機。當然,從用戶的角度來看,並不存在磁帶機或ZIP驅動器的概念,而僅僅是文件而已。
2 應該選擇哪一種備份設備?
市場上有很多自稱是“完美的系統備份選擇”的設備,包括磁帶機,便攜式磁盤驅動器,甚至有神秘的Internet備份系統。對於備份操作來說,磁帶機提供了最可信的存儲方式。為什麼是磁帶機呢?當然,Iomega公司的Jaz或Zip驅動器看上去是令人感興趣的備份工具,但是它們易於在硬盤驅動器崩潰的情況下因為文件系統的原因而導致問題出現。對於Internet備份來說,當你因為系統崩潰而不能訪問互聯網時,就不能恢復系統的數據。同樣,你能真正信任你的數據存放在別人的遠程系統麼?
因此,我們選擇了磁帶機,但是如何訪問磁帶機呢?正如文章前面提到的,在Linux系統中,在用戶狀態的角度來看,任何都可以被看做是文件。因此,可以“打開”合適的磁帶驅動器文件來進行寫入操作,將要備份的數據寫入到文件中去。雖然這聽上去過於簡單了,但是實際情況就是這樣。Linux環境下根文件系統的/dev目錄包含了所有和物理設備關聯的文件。當對這些文件進行操作,實際上是在操作下層的物理設備。下面的表格說明了Linux環境下設備文件是如何和物理設備關聯起來的:
設備(Device) 回卷(Rewinding) 不回卷(No-Rewind)
1st SCSI tape drive /dev/st0 /dev/nst0
2nd SCSI tape drive /dev/st1 /dev/nst1
nth SCSI tape drive /dev/st[n-1] /dev/nst[n-1]
1st ATAPI tape drive /dev/ht0 /dev/nht0
2nd ATAPI tape drive /dev/ht1 /dev/nht1
nth ATAPI tape drive /dev/ht[n-1] /dev/nht[n-1]
1st floppy tape drive /dev/ft0 /dev/nft0
這正如在上表中看的那樣,設備名是基於位於針對這種設備類型的分層結構的設備的邏輯數字,而不是其物理ID(SCSI)或者IDE通道(ATAPI)。因此,即使某個SCSI磁盤機被分配為SCSI設備的ID4,如果它是SCSI鏈的第一個磁帶設備,則它將是 /dev/st0, 而不是/dev/st4,這種命名慣例有利於跟蹤系統中的磁帶設備,甚至在擁有多個驅動類型的磁帶設備。同樣,在2.0.X內核下,只支持單個ATAPI設備,2.2版本的內核可以使用多個ATAPI驅動(ht0, ht1,...)。