備份,從字面的意思來理解,其實就是現時存在和應用的一個實體的后備實體;高可用性,即是指我們硬件的環境、設施、數據、應用系統等,在復雜環境下可用的能力和可能性達到一個較高的值;在現實世界里,我們都講究有一個穩定,可靠,所以我們經常在計算機環境設計里,涉及到高可用性和備份等等元素。
本文首先把這兩個詞拿出來說,就是不想讓新手們在什么雙機熱備,數據備份亞,集群等等概念里暈的不也樂乎。對于備份本文主要說說以下幾個方面:
a、設備的備份
設備的備份,也就是我們在現時使用的設備之外,采取相同或者類似的設備做后備。
比如我們在服務器上采用冗余電源,也叫后備電源,我們使用單獨的硬盤來做RAID的備用盤,也叫熱備盤。
如果我們采取單獨的一臺服務器來做后備,這就成了主機的備份,主機的備份有很多種方式,比較著名的就是所謂的cluster,所謂的雙機熱備和雙機容錯,我很不喜歡鼓搗這些概念,我一概稱他們為主機熱備,因為他們有一個共同的特點,就是都是為了實現主機的備份,即某一個主機失效了,有另外一個主機頂替它來運行。實現主機熱備的軟件有很多,比如IBM的HACMP,HP的MCSG,SUN的sun cluster,Compaq的Ture Cluster,Veritas的VCS,EMC的autostart,ROSE HA等等
b、數據的備份
數據的備份,就是我們在現時使用的數據之外,實現或設置另外一份不同物理體現的、內容相同的的有效數據拷貝
比如我們將生產數據拷貝到磁帶上,就是一種數據備份方式。
比如我們將生產數據復制到磁盤的另一個分區,另一個文件系統,或者拷貝到別的主機的磁盤上,等等,都是一種數據備份的方式。
實現數據備份的軟件有很多,比如一些磁帶操作的小工具,tar,cpio等,大的工具軟件有什么EMC Networker, Symantec Netbackup,CommVault,tapeware等等,數據復制的工具就更多了,操作系統的復制命令呀,emc replicator呀,srdf等等
c、應用系統的備份
應該說應用系統的備份,包含了以上兩種備份,因為一個完善的應用系統,其設備和數據都是要求有備份的,那么初次之外,做為一個應用系統,除了設備和數據,他還包含了業務程序,人員,業務邏輯,外部環境等等一系列讓應用跑起來的東西。
在這個層面,就有一個比較熱火的東西,那就是常說的遠程容災。遠程容災,就是在生產系統環境之外,在相隔較遠的物理空間,構建相同或類似的一個應用系統,以達到在必要的時候頂替原生產系統工作的目標。
要實現遠程容災的目的,除了我們說的外部環境,比如機房,電力,后勤保障,人員配備,業務程序之外,我們比較著重的一個環節,就是數據的問題,也就是我們在兩個系統之間要保證數據的相對一致,實現這個目標的方法有很多,比如磁盤陣列之間的卷復制,比如兩個主機之間文件系統上的復制,等等。當然,在一個系統里,把數據用磁帶導出來,快遞到另外一個系統地點,在用磁帶把數據導進取,也不能說不是一個辦法,但是這樣操作,經常會和業務的邏輯相違背(呵呵,這么麻煩又耽誤時間,估計一般很難接受)。
對于高可用性,我要說的是:
可用性,即是指在各種復雜環境下,我們的數據,應用等計算資源都可以保持使用的能力和可能性。比如服務器配備冗余電源,就提高了服務器的可用性,好理解,一個電源工作不正?;蛘吣芰Σ粔虻氖呛?,服務器不受影響嘛。再比如,我們的磁盤陣列采用雙控制器,當某個控制器和鏈路工作不正常的時候,數據的訪問能平滑的過渡到另外一個控制器上和鏈路上,這也是提高了數據和存儲設備的可用性。
那么什么是高可用性呢,我們就是一切為了提高系統可用性的實現方法和結果。
要拿出來說的就是cluster,或者雙機什么的。我們為了實現生產的應用系統的高可用性,其中一個環節就是實現服務器的高可用性,就是某服務器失效或者能力不足時,應用能平滑的過渡到另外的主機上,也就是說對于應用系統來說,服務器保證了相對的可用
那備份和高可用性有什么區別呢?
那我要說,這根本沒有可比性!因為這是兩個不同的概念,他們的著眼點是不同的。備份只是保證了有后備,而高可用性則是為了保證應用的盡快恢復。
打個比方,我們說備份就好比買保險,買保險不能保證你平安無事,但是肯定能減輕損失。我們說搞可用性,就是安全氣囊,ABS,能讓你快速的重新開始或者說將危險消弭于萌芽時刻。
所以說我們做備份和提高可用性,兩手都不可放松,也不互相矛盾。就好比買了好車,你就不買保險,或者你買了保險,就可以飆車,都是愚蠢的。