MIS — 預防伺服器發生故障

Tinghuan Wang
summer's code life
Published in
6 min readMar 16, 2020

為了因應設備故障的技術在概念上可分為「Redundancy(冗餘)技術」和「Backup(備份)」兩種。

RAID

RAID(Redundant Array of Independent Disks, 冗餘式獨立磁碟陣列),將多個台儲存裝置(HDD/SSD)組合成如同單一裝置、藉以達成備援或提高存取效能。

「RAID控制介面卡」來建立RAID。可以分為以下三種主要類型:

  • RAID1採用了「鏡像(Mirroring)」技術,對多台儲存裝置存入相同內容。
  • RAID5採用了「分散式奇偶校驗資料(Distributed Parity)」的技術,最少需要3台硬碟機。3台硬碟同時讀寫,讀寫速度快。一支File分散存放於各HDD(每台HDD存50%)因此當任何一台HDD掛掉的時候還可以運作。
圖片來源: https://www.linwei.com.tw/forum-detail/11/
  • RAID1+0 在RAID1的基礎上再增加RAID0所使用的「Striping(資料分割)」技術。將資料分散儲存至多台儲存裝置,並對分散的資料加上冗餘備援的處理。
圖片來源:https://www.itread01.com/content/1544596751.html

Teaming

將多個實體網路卡整合成為邏輯上單一網路卡的技術稱為「Teaming(如同團隊般協同運作)」在linux 作業系統上被命名為「Bonding」,實體網路卡和驅動程式必須支援Teaming的技術。以下列舉比較常見的兩種模式。

  • 容錯(Fault Tolerant):使用多張實體網路卡達到冗餘備援的效果。假設安裝兩個實體網路卡,其中一張處於啟動(Active)的狀態用來進行通訊,另外一張為待命(Stand by)的狀態,當啟動網路卡故障時才會使用另外一張網路卡。
    就算網路通訊到達上限也只會使用一張網路卡。比較容易掌握資料流向。
  • 負載平衡(Load Balancing):除了網路卡的備援外,還具有頻寬擴充的效果。同時使用兩張實體網路卡來進行網路通訊。
    比較不容易掌握資料流向。

實作Teaming,請盡量將網路卡連接不同switch,增加switch故障的應對能力。

UPS

「UPS(Uninterruptible Power System)不斷電系統」是在電源不良狀況下保護伺服器的設備。

UPS設置於電源和伺服器等網路設備之間。

  • 停電時UPS的動作
    1. 停電。
    2. 以UPS內建的電池繼續供電。
    3. 透過網路對伺服器通知停電狀態。
    4. 伺服器按照一般程序執行關機動作。
    5. 經過預先設定的可供電時間後,停止供電。
  • 減少電壓劇烈變化
    1. 附近發生電擊
    2. 高壓電流流入電力線路
    3. UPS 阻擋過高電壓的電流

Cluster 叢集

將多台伺服器連接上網路、並且讓它們對外看起來有如單一伺服器的技術。如果其中一台伺服器發生故障的狀況,其他伺服器也能持續承擔資訊處理的任務。

市面上比較著名的叢集建構軟體(Clustering Software):

  • Windows Server 作業系統內建的MSCS(微軟叢集服務)
  • NEC 公司的CLUSTER
  • Linux公司的heartbeat

叢集按照儲存單元的設置方式,大致上可以分為:

  • 儲存共享架構:需要準備多台伺服器皆能進行存取的共用儲存單元。擴充性較佳。
  • 資料鏡像架構:透過網路互相傳送各伺服器中本機磁碟所儲存資料的副本,費用較為低廉。互相傳送資料副本的方式也稱為複寫(Replication)。

在叢集的架構中,來自用戶端的網路通訊是由「虛擬IP位址」的邏輯IP位址所接收,而叢集便是透過將此虛擬IP位址切換分配給啟動狀態伺服器的方式,確保所提供服務的冗餘備援效果。

平時,叢集軟體會持續監控伺服器本身的硬體以及作業系統等各式各樣的狀況,而且還會透過稱為「心跳網路(Heartbeat Network)」的專用網路來監視其他伺服器的狀況。

伺服器負載平衡技術

將連線通訊分配給多台伺服器、藉以分散處理的技術稱為「伺服器負載平衡(Server Load Balancing)技術」,依照分配的方式可以分為以下三種:

  • DNS輪替式(DNS Round-robin):是利用DNS服務的特性來達成負載平衡。在DNS伺服器上對一個網域名稱登錄多個對應的IP位址。此種方式可能會把連線分配至故障中的伺服器,也難以控制各伺服器的分配比例。
  • 伺服器協調式(Server Type):利用服務伺服器上所安裝的軟體來達成負載平衡。ex Windows Server 內建名為「NLB(Network Load Balancing)」、Linux可以安裝「LVS(Linux Virtual Server)」。
  • 專用伺服器分配式(Appliance Server Type):利用稱為「伺服器負載平衡裝置(Server Load Balancer)」的專用伺服器來實現負載平衡。

廣域負載平衡技術

在不同地理位置的多個站點(Site)分別設置多台伺服器,然後將連線通訊分配給這些伺服器,這種技術就稱為「廣域負載平衡技術(Global Server Load Balancing)」,ex:F5 Networks公司的BIG-IP DNS、CITRIX公司的NetScaler MPX。或是AWS Route 53和Azure 的Windows Azure Traffic Manager。

用來執行廣域負載平衡的裝置將成為DNS伺服器,負責應答網域名稱所對應的IP位址,而且廣域負載平衡裝置需要持續監視各處站點的狀態(包含服務的運作狀況和網路的使用率等),然後配合監視所得的資訊適當回覆不同的IP位址。

參考資料

--

--