摘要:8.4. Red Hat Enterprise Linux 的特定資訊
8.4. Red Hat Enterprise Linux 的特定資訊
關於災害與災害防護的一般課題,很少跟某個特定的作業系統相關連。畢竟,如果資料中心淹水,不管您的伺服器執行的是 Red Hat Enterprise Linux 或其他作業系統,都難以倖免。不過,Red Hat Enterprise Linux 其中有些部份,還是跟災害防護的某些方面有關。我們將在本節中,為您詳細討論。
8.4. Red Hat Enterprise Linux 的特定資訊
關於災害與災害防護的一般課題,很少跟某個特定的作業系統相關連。畢竟,如果資料中心淹水,不管您的伺服器執行的是 Red Hat Enterprise Linux 或其他作業系統,都難以倖免。不過,Red Hat Enterprise Linux 其中有些部份,還是跟災害防護的某些方面有關。我們將在本節中,為您詳細討論。
8.4.1. 軟體支援
身為軟體供應商,Red Hat 為產品(包括 Red Hat Enterprise Linux)提供許多支援服務。您現在正在閱讀的使用手冊,就是最基本的支援工具。Red Hat Enterprise Linux 的文件可以在 Red Hat Enterprise Linux 文件光碟中(您可以將這光碟安裝到系統中,存取更為便利)、紙本的使用手冊、以及 Red Hat 網站 http://www.redhat.com/docs/ 上找到。
您也可以從 Red Hat 的郵件論壇(mailing list)尋求協助(請洽 https://www.redhat.com/mailman/listinfo)。這些郵件論壇結合了 Red Hat 無數使用者的知識結晶;同時,許多論壇都有 Red Hat 專人管理,能為您解答任何疑難雜症。其他資源也可以在 Red Hat 的支援網頁上找到: http://www.redhat.com/apps/support/。
除此之外我們還提供更進一步的支援,詳情請洽 Red Hat 網站。
8.4.2. 備份技術
Red Hat Enterprise Linux 包括了許多不同的資料備份與復原程式。這些程式都不是完整的備份方案;不過您可以用這些程式當作您備份的核心技術。

注意
正如 第 8.2.6.1 節 一節所述,大部分使用標準 PC 架構的電腦,都不具備從磁帶直接開機的能力,使用同樣架構的 Red Hat Enterprise Linux 也不例外。
但是,您可以用 Red Hat Enterprise Linux 光碟片開機,當作系統復原的作業環境。欲知更多詳情,請參閱《Red Hat Enterprise Linux 系統管理手冊》中,有關基本系統復原的章節。
8.4.2.1. tar
UNIX 系統管理者對 tar 工具程式一定不陌生。管理者可以選擇特定的原始碼與檔案,備份後在不同的系統間分享。Red Hat Enterprise Linux 使用的是 GNU 版本的 tar,也是眾多版本中,功能最多的 tar 之一。
要使用 tar 指令備份目錄中的所有檔案非常容易,只要輸入類似以下的指令即可:
tar cf /mnt/backup/home-backup.tar /home/
這指令會在 /mnt/backup/ 目錄中,建立 home-backup.tar 備份檔。這備份檔包括了 /home/ 目錄中的所有檔案。
這備份檔的大小跟原始資料大小相仿。根據您要備份的資料種類,您可以利用壓縮方式,讓備份檔明顯變小。您只要在之前的指令中多加一個選項,就可以壓縮備份檔:
tar czf /mnt/backup/home-backup.tar.gz /home/
現在 home-backup.tar.gz 備份檔已經使用 gzip 工具壓縮過了[1]。
tar 指令還有許多選項。要了解這些選項,請參閱 tar(1) man page。
8.4.2.2. cpio
cpio 是另一個 UNIX 的傳統、一般性工具程式,非常適合把資料從一個地方移到另一個地方去,也因此適合拿來做備份。
但 cpio 的運作方式跟 tar 稍微有些不同。前者會從標準輸入讀取檔案名稱。一般來說,我們會使用像 find 之類的程式列出檔案,在將這份列表導向到 cpio 去:
find /home/ | cpio -o > /mnt/backup/home-backup.cpio
這指令會在 /mnt/backup/ 目錄中,建立名為 home-backup.cpio 的 cpio 備份檔(其中包括 /home/ 目錄中的所有檔案)。

提示
因為 find 指令有許多搜尋檔案的選項,因此您可以藉此篩選要備份的資料。舉例來說,底下的指令會備份一年內未被存取的檔案:
find /home/ -atime +365 | cpio -o > /mnt/backup/home-backup.cpio
cpio(以及find)還有許多其他選項。欲知更多詳情,請參閱 cpio(1) 與 find(1) 的 man page。
8.4.2.3. dump/restore:不建議用在掛載的檔案系統上!
Linux 上的 dump 與 restore 指令,作用跟 UNIX 上的同名指令相同。因此,熟悉 UNIX 的系統管理者會認為,在 Red Hat Enterprise Linux 中使用 dump 與 restore 指令,是再自然不過的事情。不過,在一種情形下,使用 dump 指令會造成問題。底下是 Linus Torvald 對這問題的評註:
From: Linus Torvalds
To: Neil Conway
Subject: Re: [PATCH] SMP race in ext2 - metadata corruption.
Date: Fri, 27 Apr 2001 09:59:46 -0700 (PDT)
Cc: Kernel Mailing List <linux-kernel At vger Dot kernel Dot org>
[ linux-kernel added back as a cc ]
On Fri, 27 Apr 2001, Neil Conway wrote:
> > I'm surprised that dump is deprecated (by you at least ;-)). What to
> use instead for backups on machines that can't umount disks regularly?
Note that dump simply won't work reliably at all even in 2.4.x: the buffer
cache and the page cache (where all the actual data is) are not
coherent. This is only going to get even worse in 2.5.x, when the
directories are moved into the page cache as well.
So anybody who depends on "dump" getting backups right is already playing
Russian roulette with their backups. It's not at all guaranteed to get the
right results - you may end up having stale data in the buffer cache that
ends up being "backed up".
Dump was a stupid program in the first place. Leave it behind.
> I've always thought "tar" was a bit undesirable (updates atimes or
> ctimes for example).
Right now, the cpio/tar/xxx solutions are definitely the best ones, and
will work on multiple filesystems (another limitation of "dump"). Whatever
problems they have, they are still better than the _guaranteed_(*) data
corruptions of "dump".
However, it may be that in the long run it would be advantageous to have a
"filesystem maintenance interface" for doing things like backups and
defragmentation..
Linus
(*) Dump may work fine for you a thousand times. But it _will_ fail under
the right circumstances. And there is nothing you can do about it.
因為這個問題,我們不建議您在已掛載的檔案系統上,使用 dump/restore 指令。然而,dump 指令的原始設計是用來備份已卸載的檔案系統,所以如果您先用 umount 指令卸載檔案系統,dump 依舊不失為一個好用的備份技術。
8.4.2.4. The Advanced Maryland Automatic Network Disk Archiver(AMANDA,高階馬里蘭自動網路磁碟備份工具)
AMANDA 是由美國馬里蘭大學(University of Maryland)所發展的主從式架構備份軟體,您只要設定一台備份伺服器(通常是一台高效能的機器,擁有大量、高速的儲存空間,設定為備份裝置),就可以為多台電腦做備份;您只要在這些電腦上安裝 AMANDA 用戶端程式即可。
這備份方法合理的多,因為它把所需的備份資源集中在一台電腦上,而不是為每一台需要備份的電腦,各準備一份備份裝置。AMANDA 的設計也能讓備份集中在一處進行,讓系統管理者事半功倍。
AMANDA 伺服器會管理一群備份媒體,並以輪替的方式使用這些裝置,以確保在管理者主導的額定時間內,能保存所有備份檔。所有的媒體都會以資料預先格式化過,讓 AMANDA 偵測可以使用那些媒體。除此之外,AMANDA 也可以連接其他機械型的自動換片(換帶)裝置,提供完整的自動備份方案。
您可以使用 tar 或 dump 來進行實際的備份工作(不過在 Red Hat Enterprise Linux 中,建議您使用 tar 指令。因為使用 dump 指令會引發一些問題,詳情請參閱 第 8.4.2.3 節)。也因此,AMANDA 的備份工作並不需要 AMANDA 來復原檔案 — 非常好的額外功能。
通常 AMANDA 會在事先定義好的備份時間內,一天運作一次。AMANDA 伺服器會連接到用戶端,請用戶端回報備份所需的空間。得到這相關資訊後,伺服器就會建立一份時間表,並自動決定備份的順序。
一旦備份開始,客戶端的資料就會經由網路送到伺服器去,而伺服器會把這些資料先寫到一顆專司備份的硬碟中。備份完成後,伺服器就會把硬碟中的資料轉錄到備份媒體中。在做這動作的同時,另一個用戶端也會開始將資料送往伺服器的備份硬碟中。這樣可以確保時時刻刻,都有資料可以送往備份媒體。只要資料寫進備份媒體後,伺服器就會將硬碟中的檔案刪除。
所有備份都完成之後,系統會寄一封電子郵件給管理者,詳列這次備份的狀態,讓管理過程既簡單又迅速。
如果要復原資料,AMANDA 包含的工具程式能讓管理者找出欲復原檔案的檔案系統、日期、以及檔名。找到以後,AMANDA 會知道該從哪個備份媒體找出檔案,然後找出該媒體,復原檔案。如前所述,管理者不需要使用 AMANDA 即可復原檔案,只是找出正確的備份媒體需要點時間,而且需要手動操作。
本節只提到 AMANDA 的基本概念。欲知 AMANDA 的更多詳情,請參閱 amanda(8) man page。
注
[1]
傳統上,附屬檔名 .gz 指得是使用 gzip 壓縮過的檔案。有時候 .tar.gz 會被縮寫為 .tgz,以縮短檔名長度。