了解容錯:保護系統安全
容錯是許多行業領域中使用的概念,但它對數據存儲和信息技術基礎設施尤為重要。在這種情況下,容錯是指計算機系統或存儲子系統在硬件或軟件出現故障時,但仍能繼續工作而不中斷服務,并且不會丟失數據或損害安全性。
系統中的容錯能夠涵蓋整個數據存儲平臺,從HDD硬盤到SSD硬盤,從RAID到NAS。雖然容錯有很多問題,容錯系統的最終目標是提供安全保護,實現起來更加復雜。
容錯如何工作?
在最基本的層面上,通過確保系統沒有單點故障,可以將容錯功能構建到系統中。如果單個組件停止工作,將導致整個系統完全停止工作,這要求提供容錯功能。
標準系統中的典型單點故障是電源單元(PSU),其將交流(AC)電源轉換為各種電壓的直流(DC)電源以為不同組件供電。如果電源單元(PSU)發生故障,那么它所支持的所有組件也將失效,通常會導致整個系統發生災難性故障。
容錯通常遵循以下兩種模型之一:
- 在某些情況下,遇到故障的容錯系統可能會繼續正常運行,而不會改變吞吐量、響應時間或其他性能指標。
- 其他容錯系統在遇到某些故障時,會在性能方面遇到“功能衰退”。也就是說,故障對系統性能的影響將與其嚴重程度成正比。因此,小故障將產生小影響,而不是大影響,也不會導致整個系統發生故障。即使在發生一個或多個嚴重故障時,高度容錯系統也將繼續工作。
安全容錯計劃需要多個數據存儲庫以確保冗余。
建立容錯能力
創建容錯的關鍵目的是避免(或至少盡可能地最小化)系統的功能由于其一個或多個組件中的故障而變得不可用的可能性。
在用于保護人員安全的系統(例如空中交通管制硬件和軟件系統)以及安全、數據保護和完整性以及高價值交易所依賴的系統中,必須具有容錯能力。
冗余性
為了消除單點故障,并提供容錯功能,容錯系統使用“冗余”概念。實際上,在以上例子中,這將意味著為系統配備一個或多個額外的電源單元(PSU),這些電源單元(PSU)是冗余的,在主要的電源單元(PSU)正常工作時,它們不需要為系統供電。
但是,如果主要電源單元(PSU)發生故障(或者檢測到諸如過熱的故障,表明它即將發生故障),那么它就可能停止服務,其中冗余的電源單元(PSU)可以啟動而不會中斷運行整體系統。
在理想情況下,將為系統中的所有組件提供冗余,但實際上成本更加高昂。出于這個原因,設計人員在選擇***候選冗余之前,計算組件發生故障的可能性、系統的重要程度以及冗余的成本。
另一種方法是采用在系統發生故障時啟動的備用計算機系統。
多樣性
在某些情況下,可能無法提供冗余,這方面的一個例子是通常來自電網的主要電力供應。如果市電發生故障(可能是由于發電廠發生故障或在風暴期間電力線路刮斷),則通常無法接入替代的公共電網。
在這種情況下,容錯可以通過多樣性來實現,這意味著完全從另一個電源獲得電力供應——很可能是備用發電機,在市電故障時自動啟動。
在某些情況下,“多樣化”選項(在這種情況下是發電機)可能不具有與主要選項相同的容量,這可能需要適當地降低服務,直到可以恢復主要選項。
復制
實現容錯的更復雜方法是通過“復制”。這涉及運行系統或子系統的多個相同版本,并檢查它們的功能總是產生相同的結果。如果結果不同,則調用某些過程來確定哪個系統出現了故障。
最常用的是“民主”系統,因此如果三個系統提供相同的結果,而第四個系統提供不同的結果,那么第四個系統被認為是錯誤的。
另一種方法是重新運行已知正確結果的過程,以檢查哪個系統出現不同的結果,表明它有故障。
復制可以在組件級別執行,例如,通過使三個處理器全部同時工作,或者可以在系統級別執行,同時使用一組相同的計算機系統。
容錯系統的要素
(1)硬件系統
典型的計算機系統或數據存儲系統包括中央處理單元(CPU)、系統存儲器(RAM),諸如硬盤驅動器的輔助存儲系統,以及電源單元(PSU)、網絡接口和主板。
為了提供容錯,容錯計算機系統或數據存儲系統可以使用各種元件。這包括CPU的復制、電源單元(PSU)和內存的冗余,在某種形式的RAID陣列中配置的硬盤驅動器,包括冗余和復制,以及提供備用發電機的電源多樣性。
容錯網絡可以由冗余網絡接口卡(NIC)和/或各種網絡選項(例如有線LAN NIC和無線LAN適配器)提供。
(2)軟件系統
軟件可以被設計成容錯的,這樣即使在遇到錯誤、異常或無效輸入時,它也可以繼續運行,只要它被設計成能夠處理這些錯誤,而不是默認地報告錯誤和停止。
特別是,諸如TCP/IP之類的網絡協議已經被明確地開發出來,以創建容錯網絡。TCP/IP可以在個別網絡鏈接或節點可能意外變得不可用的環境中繼續運行。它可以適應不同的條件,以便盡可能通過任何可用的路由將數據包發送到目的地。
軟件系統還可以使用復制來提供容錯功能:可以將一個非常重要的數據庫連續復制到另一個服務器,這樣,如果托管主數據庫的服務器出現故障,則可以立即將操作重定向到副本數據庫。
或者,可以將某些服務(尤其是Web服務器)放在負載平衡器后面,以便多個服務器都提供相同的服務。如果一臺服務器出現故障,那么負載均衡器只會將所有Web請求發送給其他服務器,直到修復故障。
當然,這就引出了這樣一個問題:如果負載均衡器發生故障,會發生什么情況?其答案通常是故障轉移系統,它會立即將Web請求傳輸到位于另一個位置的服務器上。由于此故障轉移位置的資源可能與主要數據中心的資源不同,因此在恢復正常操作之前,這可能會導致正常降級。
(3)電源
如前所述,許多容錯系統包括多個電源單元(PSU),以在電源單元(PSU)發生故障時提供冗余。由于通常無法獲得冗余的主電源,因此大多數組織都依賴來自替代電源的電源形式。這通常是在市電發生故障時自動啟動的發電機,以確保IT硬件、存儲設備、HVAC和其他系統具有所需的功率。
(4)高可用性與容錯性
高可用性與容錯性的概念之間經常存在一些混淆。在最基本的層面上,高可用性指的是遭受最小服務中斷的系統,而具有容錯性的系統設計為永遠不會遇到服務中斷。
在實踐中,這種差異可能很小。許多高可用性系統的目標是所謂的“5個9”或99.999%的正常運行時間,這相當于每年只有幾分鐘的停機時間。
但是,管理這兩個概念的原則是非常不同的。容錯系統旨在檢測故障并修復問題(可能通過交換冗余組件)而不會中斷,而高可用性系統通常使用標準硬件,旨在在發生中斷后快速恢復服務。
高可用性通常被認為是可接受的而不是容錯的原因通常是成本:在系統中構建容錯設施可能比不時發生的短暫中斷要昂貴得多。許多組織使用這兩種方法的組合:容錯系統用于最關鍵的活動,高可用性用于不太重要的活動。
容錯中要考慮的因素
(1)成本
到目前為止,容錯的***缺點是它導致系統的構建遠比容錯系統昂貴得多。這是因為,它們通常需要同一組件的多個版本來提供冗余。
它們還可能需要額外的設備,如發電機,即使它們從未使用過,也需要定期維護和測試。其成本不僅是財務方面的,容錯系統可能會占用更寶貴的數據中心空間。
考慮到所涉及的額外硬件,容錯的額外成本在很大程度上是不可避免的。這意味著組織需要仔細考慮容錯與高可用性的優勢是否值得付出額外的成本。
(2)質量下降
為了減少容錯成本,組織通常幾乎不可避免地接受使用成本較低和質量較差的冗余組件,因為單個組件的可靠性不再是關鍵。這可能導致支持和維護成本增加,并且如果組件質量太差,甚至可能使系統整體不如沒有配備容錯的系統可靠。為了避免這種情況,有必要監控各個組件的性能和壽命。
(3)測試和故障檢測的難點
就其本質而言,容錯使得當系統不能正常工作時更難以發現,因為組件故障不會導致系統故障。
這意味著通常需要更多的資源來測試和監控為容錯而構建的系統的健康狀況,在某些情況下,這可能需要開發或獲取定制軟件或程序以幫助執行任務。