Linux資料備份媒介的選擇和使用

2020-07-16 10:04:48
備份資料要有存放資料的安全容器。對儲存媒介的基本要求一般從存取速度、儲存安全和儲存容量 3 個方面進行考慮:
  • 存取速度是對儲存媒介的一個基本要求。資料的備份是一個讀寫操作極度頻繁的過程,存取速度非常高的備份媒介,可以大大縮短備份資料的時間,同時也可以減少恢復資料的時間。
  • 儲存安全性是對儲存媒介的一個硬性要求,不安全的儲存裝置還不如不用。現在很多儲存裝置都對安全性做了很多優化,例如做 RAID 磁碟陣列、Cache 讀寫等。專業的儲存廠商有 EMC、IBM 和 SUN 等,都有自己的儲存裝置。
  • 儲存容量也是選擇儲存媒介必須要考慮的一個方面。過大的儲存空間會造成儲存裝置的浪費,過小的儲存空間可能導致資料儲存失敗,因此,必須根據備份資料的大小,選擇相應大小的儲存媒介。
除此之外,當然還要兼顧到成本。

對於一些小型裝置(如台式計算機、個人站點)的備份來說,燒錄光碟或者行動硬碟時比較合適的選擇,這些儲存媒介價格低廉,且能提供足夠大的備份空間,在穩定性方面,這兩種媒介通常能有 5 年左右的壽命。

大型系統的備份,需要使用磁帶機。磁帶具有容量大、儲存時間長的特點,適合用於資料量大、更新頻率高的環境。市面上有大量磁帶產品,從低端到高階,只要和儲存沾點邊的硬體廠商,通常都不會放棄這個大市場。這裡重點介紹一下磁帶機的使用方法。

Linux 下使用磁帶機的方式有多種,tar 命令是最經常使用的方法。tar 主要用於單機環境下,將資料直接寫入磁帶機。磁帶機在 Linux 下對應的裝置名稱為 /dev/stX,如果是第一個磁帶機,即為 /dev/st0。基本操作如下:
  1. 倒帶,將磁帶捲至起始位置,執行命令如下:

    [[email protected] ~]# mt -f /dev/st0 rewind

  2. 擦掉磁帶上的內容。

    [[email protected] ~]# mt -f /dev/st0 erase

    新購買的磁帶,開啟後即可使用,無需進行擦寫操作,同時當資料寫滿磁帶後,磁帶可以覆蓋原有資料並繼續寫入,因此無需進行任何擦寫動作。由於擦寫對磁帶有一定的損害,因此建議不要經常性地執行擦寫操作。
  3. 出帶,即將磁帶捲至初始位置然後從磁帶機內彈出,執行命令如下:

    [[email protected] ~]# mt -f /dev/st0 offline

  4. 通過 tar 列出磁帶上的目錄或者檔案,執行命令如下:

    [[email protected] ~]# tar tvf /dev/st0  <--需要檢視的檔案或者目錄

    如果後面不跟任何檔案或目錄,則是檢視磁帶上的所有資料。當磁帶上還沒有任何資料時,執行此操作會報錯,不過不影響磁帶的使用。
  5. 通過 tar 備份資料到磁帶,執行如下命令:

    [[email protected] ~]# tar cvf /dev/st0 <--要寫入的檔案或目錄名

    備份資料到磁帶有兩種方式,即打包壓縮後寫入磁帶和不打包直接寫入磁帶。這裡我們推薦將資料不打包直接寫入磁帶的方法,這樣可以提高資料儲存的安全性。

    為什麼建議不打包備份呢?因為磁帶是順序寫入資料的,即線性儲存,如果將所有資料打包成一個獨立的檔案,那麼當磁帶的任何一個地方發生故障,都可能導致這個壓縮檔案解壓失敗而不可用;而如果對備份資料進行不打包儲存的話,在磁帶上就有很多檔案,即使磁帶某個地方發生故障,其餘的檔案仍然可用,這樣就大大提高了資料備份的安全性。

    例如,將 /data/ixdbal.tar.gz 這個壓縮檔案寫入到磁帶,並覆蓋原有的內容,可以執行如 下操作:

    [[email protected] ~]# tar cvf /dev/st0 /data/ixdba1.tar.gz

    通過“tar cvf”將資料寫入磁帶時,每次都會覆蓋磁帶中原有的資料,也就是每次都是從磁帶的開始部分寫入資料。磁帶機的傳輸速度比較慢,對於不是很大的備份檔案,在很短時間內就能備份完成,非常適合做系統級的檔案備份。
  6. 通過 tar 繼續寫入資料到磁帶,執行命令如下:

    [[email protected] ~]# tar rvf /dev/st0 <--要寫入的檔名

    由於磁帶是線性儲存,資料是依次寫入的,因此為了在寫入新的資料時,不搜蓋原有已經存在的資料,可以使用“tar rvf”引數組合將資料依次寫入磁帶。

    例如,依次將 /data/ixdba2.tar.gz 和 /data/ixdba3.tar.gz 備份到磁帶機上,方法如下:

    [[email protected] /data]# tar rvf /dev/st0 /data/ixdba2.tar.gz
    [[email protected] /data]# tar rvf /dev/st0 /data/ixdba3.tar.gz

  7. 通過 tar 將資料從磁帶恢復到磁碟,執行命令如下:

    [[email protected] ~]# tar xvf /dev/st0 <--要恢復的檔案或目錄名

    例如,首先查閱磁帶上存在的所有資料,方法如下:

    [[email protected] ~]#  tar tvf /dev/st0
    -rw-r--r-- root/root    320 2009-2-20 10:19:02 ixdba1.tar.gz
    -rw-r--r-- root/root    320 2009-2-20 10:25:10 ixdba2.tar.gz
    -rw-r--r-- root/root    320 2009-2-20 10:45:18 ixdba3.tar.gz

    現在如果要恢復磁帶上的 ixdba2.tar.gz 檔案到磁碟,可以執行如下命令:

    [[email protected] ~]# tar xvf /dev/st0 ixdba2.tar.gz
    ixdba2.tar.gz

    這樣就將資料從磁帶恢復到了當前的路徑下。