淺談 Synology High Availability 自動故障移轉套件

NAS的演變不再是儲存資料那麼簡單,卻來越多的用戶選擇NAS來存儲資料,因為也會擔心硬體的損毀遺失資料造成遺憾終身。NAS的選擇雖然可以從硬體的高低來見真章,但內含的系統可說是NAS的軟實力,猶如「打通任督二脈」的功效,一個專門的NAS系統扮演著相當重要的角色,Synology DSM系統可是出了名的好用,尤其是套件的運用更是如虎添翼。 Synology High Availability 套件扮演著自動故障移轉特異功能,流暢的轉換可確保服務延續時間最大化,協助企業達到服務不中斷。

Synology High Availability

 

文章大綱


1. 什麼是 Synology High Availability
2. Synology High Availability 建構前的準備
3. 安裝High Availability Manager與設定HA
4. 叢集的副伺服器刪除與增加
5. 叢集的自動與手動移轉
6. 在VMware上測試 SHA
7. 再談故障移轉的時機與開機的連動
8. 感想與心得


 

什麼是Synology High Availability

談到及企業級儲存裝置,可能大多IT都還是認為HP、IBM、EMC 及 HDS大廠才是最愛,畢竟這些大廠配備的光纖網絡介面、支援多種硬碟規格、高效能的I/O讀寫速度、虛擬化等,而最重要的莫過於VMware High Availability與vMotion的支援。天有不測風雲,人有旦夕禍福,儲存裝置也一樣,隨時都有可能遇到故障,當然備份是NAS的重責大任,但隨著網路的蓬勃發展,自動故障移轉才會讓企業安心,因為災難回復的時間越短,損失的金額就會降至最低,因此主儲存裝置故障,次儲存裝置立即接手的運用屢見不鮮,但在些大品牌的背後,撒錢絕對不能手軟,沒有雄厚的財力靠山可是會元氣大傷。

 

「high-availability」(高可用性) 指的是一種伺服器配置解決方案,能降低因伺服器異常造成的服務中斷。中小企業沒有像大企業般的雄厚資金,對於IT的支出總是錙銖必較,當然會找尋一些便宜又有類似的 High Availability (HA,高可用性) 功能,原來 Synology 廠商早就推出了Synology High Availability服務套件,在DSM 6.2中根據用戶的問題回饋並進行重新設計了SHA 2.0,除了既有的顯示叢集的狀態是否正常外,更能精確地告知叢集狀態與故障排除的建議,讓用戶可以自行排除問題,更好管理服務。

 

Synology High Availability 建構前的準備

無預警的服務中斷可能讓您的公司蒙受龐大損失,亦可能造成 IT 部門的困擾,Synology High Availability (SHA) 專門解決這些問題,以輕鬆易操作的方法提供鏡像資料並確保服務延續時間最大化。不過並非所有的Synology NAS都支援HA的功能,也就是Synology High Availability只能運行於某些的特定機種。因此想要建立 High-Availability 叢集時,基本的硬體要求是無法避免的。原則上使用兩台型號相同的 Synology NAS 伺服器是最佳的理想環境,當然也可以使用兩台型號類似的 Synology NAS來建立 Hybrid high-availability 叢集以作為暫時的替代方案,例如DS415 / DS916+、DS716+/ DS718+、DS916+ / DS918+、DS1515+ / DS1517+、DS1815+ / DS1817+…等,詳細的資訊請參考官方的說明。不過筆者為確保 high-availability 叢集的穩定性,資源消耗應盡可能避免超出主伺服器與副伺服器之規格所能處理的範圍,所以還是建議型號相同的 Synology NAS 伺服器是最理想的情況。

 

Synology High Availability (SHA) 使用兩台伺服器組成「high-availability 叢集」,一台伺服器擔任「主伺服器」、另一台伺服器則作為備用的「副伺服器」,為了在兩台間建立HA,主伺服器與副伺服器都必須先安裝High Availability套件,且兩台的DSM系統版本也要相同。

 

儲存空間及硬碟也有些條件,兩台主機的硬碟容量必須完全相同,以避免資料不一致,也就是主伺服器與副伺服器必須具備相同數量的硬碟與相同配對的硬碟位置,且不得包含任何 SHR 格式的儲存空間(下圖僅供參考。您環境中的硬碟數量及大小可能會有所不同)。

 

網路上的連接就稍微複雜些,建立SHA必須清楚網路連接的方式,主要分成叢集網路連線與Heartbeat網路連線。叢集網路連線是提供給用戶端連線的介面,例如像是共用資料夾的存取或是 iSCSI LUN 的存取。而 Heartbeat 網路連線則作為同步資料與轉移使用,也就是透過此連線將主伺服器的的資料同步給副伺服器。

 

叢集網路連線就是一般NAS連接的switch交換器的LAN方式,且連接交換器的主伺服器與副伺服器必須使用相同的網路連接埠,這相當重要。

 

Heartbeat網路連線是兩台NAS間的連接,也就是協助主機進行溝通的網路,主要是將資料從主伺服器複製到副伺服器同步資料用的專屬連線,一樣必須使用相同的連接埠。挑選Heartbeat網路連線需要有些概念,當您上傳檔案至SHA叢集時,主伺服器會即時將上傳的資料同步檔案至副伺服器上,若 Heartbeat 連線頻寬不足,將影響上傳速度。因此 Heartbeat 連線的頻寬必須等於或是大於叢集連接網路的總和

 

例如如果叢集連線是設定在 1GbE bonding 網路介面上,則 Heartbeat 必須是相同1GbE 網路介面、1GbE bonding 網路介面,或 10GbE 網路介面。DS1618+背面有4個1GbE 網路介面,下圖是筆者使用兩台DS1618+的網路連線方式,LAN1是叢集連線,LAN3與LAN4是bonding的Heartbeat連線。

 

筆者的Heartbeat連線使用Synology NAS的Link Aggregation(聚合網路)的適應性負載平衡,以增加 Synology NAS 的頻寬與容錯功能。所以在【網路介面】分頁畫面上選擇〔新增〕後再點選「新增bond」。

 

適應性負載平衡與啟動,即使交換器沒有支援Link Aggregation,Synology NAS也可以讓你併多個區域網路介面,以增加 Synology NAS 的頻寬與容錯功能。

 

Synology NAS的Link Aggregation適用性很廣,無論交換器是否支援 Link Aggregation都可以使用,例如「適應性負載平衡」模式能接上沒有Link Aggregation的交換器也能接收及傳送的網路流量達到最佳狀態,甚至可連接兩個不同的交換器。下圖是選擇兩個實體網路介面來建立Synology NAS的適應性負載平衡。請確認兩台NAS上的 Link Aggregation 的網路埠以及類型設定完全相同 (若您為主伺服器的網路埠 3 與 4 設定了 Link Aggregation,則必須也為副伺服器的網路埠 3 與 4 設定 Link Aggregation)。

 

Heartbeat 連線所用之網路介面請使用 DHCP 即可,所以不必進行 IP 設定。

 

將兩個網路聚合成一連線埠後,你可以看到剛剛Bond的詳細資料。有一點須特別注意,想要使用Link Aggregation 來的話,需要在設定 High-availability 前將 Link Aggregation 綁定好,不然一經HA叢集後,是無法再進行Link Aggregation 設定哦!

 

安裝High Availability Manager與設定HA

High Availability Manager套件與一般套件安裝沒兩樣,請分別於主伺服器與副伺服器安裝此套件。

 

在想要當主伺服器的機器上使用 administrators 群組的帳號登入並執行High Availability Manager套件,首先出現如下畫面,告知你Synology High Availability是由兩台主機網路連線組成的服務,主伺服器是主要的運作主機,副伺服器是以待機的方式運作,除了即時接收主伺服器同步過來的資料外,並肩起當主伺服器發上問題時接手的備援主機。叢集網路連線是前端PC連線的通道,當主伺服器掛點就跑到副伺服器,而Heartbeat網路連線是兩台NAS間的同步資料通道。大致了解後按下〔建立Higi-availability〕。

在開始之前,會有基本的需要說明,當然兩台NAS、儲存配置、網路、DSM版本都要相同,叢集連線的網路需固定IP,且兩台NAS的主機名稱也要不相同。

 

接著看到網路設定的建議,在上文Synology High Availability 建構前的準備中已描述叢集連線與Heartbeat連線的解說,再次強調,Heartbeat 連線的頻寬必須等於或是大於叢集連接網路的總和。

 

筆者Heartbeat連線是使用LAN3與LAN4是bonding的連線,叢集連線選擇區域網路連線1。

 

由於Heartbeat的連線,自動抓取副伺服器的主機名稱,請輸入副伺服器的帳號與密碼。

 

假如副伺服器沒有安裝High Availability 套件,則會出現如下圖要求在遠端的副伺服器上安裝指定版本的 High Availability 套件。

 

建立叢集會以一個的叢集主機名稱與IP來運作,所以你必須指定不能與主、副伺服器同名稱,叢集IP也不能相同。

 

接著系統會檢查是否符合所有需求,看到狀態下都是綠色的打勾圖示,即可放心的按〔下一步〕。

 

建立叢集後會同步,因此必須決定目前的資料是否要保留,筆者兩台DS1618+是全新,尚未有任何重要資料,所以選擇「刪除所有資料,快速建立新叢集」,假如你選擇保留並同步所有資料至副伺服器,除建立新叢集外,亦會同步保留的資料,可能需要耐心的等待喔!

 

再次檢查之前設定的Heartbeat連線、叢集連線、副伺服器名稱、叢集主機名稱、叢集IP以及資料的保留與否,確定無誤後按下〔套用〕。

 

設定所有的相關參數後,在開始建立時還會詢問確認的動作,勾選「我瞭解所有資料將被永久刪除,且無法回復」並按下〔是〕來建立。

 

建立時你會看到進行中的步驟,如Heartbeat連線、暫停目前服務、系統設定…等,其建立的時間會因您的系統環境而有所不同。

 

當你看等待連線至新的IP位址時,副伺服器應該在重新開機中。

 

完成後,您會在High Availability 套件的叢集頁面看到伺服器與副伺服器的叢集狀態,當中有所運作時,也可以清楚看到傳輸速度與延遲的時間。

 

來觀看筆者錄製的Synology HA的安裝與設定Demo。

 

往下捲動看以看到更細的資訊,如主、副伺服器的CPU使用率、CPU平均負載、記憶體使用率,以及硬碟的使用情形。最下方還有事件的活動記錄,讓你瞭解叢集狀態的最近重要活動。

 

主機頁面顯示兩台主機的重要資訊,包含產品型號、IP 位址、產品序號、實體記憶體、溫度、風扇狀態、電源狀態、DSM版本等尤其是電源、風扇與溫度,若有異常可以直接判斷來維修,以免損害系統。

 

網路頁面當然就是叢集上主機的連接狀況,此頁面上有HA叢集與主機兩個分頁,所有的網路連線資訊,無論使用中與否,都將顯示在此。DS1618+擁有4埠的網路,此處所顯示的 Heartbeat 介面與叢集介面的資訊。

 

HA叢集主要就是確保檔案服務及應用程式可在數分鐘內恢復運作,當中硬體的問題自動故障移轉是無庸置疑,至於NAS上運作的服務,有哪些服務出問題時也會啟動故障移轉呢?在服務頁面上可以看到可故障轉移的服務勾選,其實就是監控特定服務,當這些被監控的服務於主伺服器上發生異常,系統會容錯移轉至待命的副伺服器 (在副伺服器運作正常的情況下)。

預設值只有SMB(Server Message Block,伺服器訊息區)通訊協定,其實就是支援 SMB/CIFS 的 Windows、Mac 及 Linux 用戶端存取存放在 Synology NAS 上的檔案。FTP大大不用多解釋,至於iSCSI網路磁碟服務,只要會用到 VMware虛擬運用時,大概也都會勾選。

 

叢集頁面看到的最近重要活動資訊,僅會列出五筆最近的日誌紀錄,以供使用者快速獲取相關訊息,而日誌頁面上的資訊界不限5筆的限制,且列出的資訊包含日期與時間、使用者以及詳細的狀態說明。

 

叢集的副伺服器刪除與增加

叢集後的兩台伺服器是連動的,你可以在叢集下看到兩台伺服器的狀態,叢集名稱右邊有兩個管理與電源兩個按鈕,點選〔管理〕出現一個下拉選單,有更新DSM、更新套件、轉移、移除伺服器與移除叢集。假如你遇到一台伺服器應更換新的主機,你必須移除伺服器再重新建立叢集。

 

想要維護伺服器,你可以選擇關機,如清一清風扇與灰塵。但是要換到換掉副伺服器的話,只得選擇移除,不過移除後將無法受到叢集的故障轉移保護。

 

在叢集的環境下,移除副伺服器後,系統不再受到保護,出現下圖中的無副伺服器的警告畫面。

 

此時備妥一台新的一樣的NAS硬體更換新的副伺服器,點選「新增副伺服器」後按〔是〕來繼續。

新增的副伺服器其儲存配置、網路、DSM版本一樣要注意,接下來的過程與設定初次設定HA大致雷同。

 

Heartbeat連線與叢集連線如同之前的描述,按〔下一步〕繼續輸入副伺服器的帳號與密碼,總之按〔下一步〕即可輕鬆完成新增副伺服器。

 

新增副伺服器後會進行同步動作,同步期間故障轉移當然暫停,同步的時間視你的資料量而有所差異。

 

叢集的自動與手動移轉

Synology High Availability (SHA)主要是為確保降低服務中斷時間,因此發生中斷可在叢集上的服務從主伺服器轉移至備援的副伺服器,此功能稱為「轉移」。轉移可以在故障發生時自動轉移,也可在需要維護或維修主機時的手動轉移,因此叢集的移轉不是故障自動轉移,不然就是手動。筆者先開啟試著Ping 叢集主機的位址,使用參數「t」來持續測試。

 

試著將主伺服器的叢集網路線拔掉,馬上開啟High Availability Manager來查看。看到在主伺服器與副伺服器上也出現三角的驚嘆號,先不用緊張,仔細看其主伺服器已經移轉至itnas-2(原副伺服器)。大大的警告標語下方顯示網路連線異常,且還有建議操作說明。

 

再將網路插上,即看到主伺服器與副伺服器大圖示右下的三角警告小圖示不見了,改變成藍底百色的循環箭頭,表是同步資料與連結中。此時右上的通知訊息(紅色框),讓你瞭解發生了什麼事情。

 

轉移與同步成功後出現下圖,右邊原本的是副伺服器已變成主伺服器外,隨著 high-availability 叢集儲存空間或 iSCSI LUN (段落分塊) 數量及大小、服務的數量及總負載不同,同步所需時間也會有所不同。

 

再回到Ping的視窗上查看,中間有逾時與無法連線的短暫時間,就是移轉切換主機的時間,也就是所有的服務都只是中斷了幾秒鐘而已。恢復連線並切換主、附伺服器位置後,大致檢查了一下, 原本共用資料夾裡面的資料沒有遺失。

 

硬體的故障是沒有時間表的,HA的優點就是讓系統在發生特定狀況下自動啟動故障轉移的服務,例如剛剛拔到網路的例外狀況,又如主伺服器上的儲存空間的損毀、電源故障或某些服務發生錯誤都會啟動自動轉移。但若你想手動也是沒問題,點選〔管理〕下「轉移」即可手動即時轉移。

 

轉移前最後確定是否有執行中的任務,因為轉移會取消執行中所有的任務。

 

轉移時會看到套用新的網路設定。

 

轉移的時間不會很長,很快就看到主伺服器回到itnas-1機器上。

 

假如運作中的叢集主伺服器發生的硬碟降級狀況,那會如何?啟動自動或手動轉移,還是使用修復硬碟呢?做個測試,如下圖主伺服器是在右邊intnas-2機器上。

 

筆者試著將intnas-2機器上的Raid1拔掉一顆硬碟,此時進入降級的模式。

 

回到High Availability Manager畫面上看到大大的警告標示,其下方有告知主伺服器itnas-2的儲存空間已降級,且主伺服器右下有個驚嘆號小圖示。

 

沒有啟動故障轉移,所以遇到儲存空間降級,必須立即置換故障的硬碟後,並在儲存空間頁面上進行修復動作。

 

修復時會告知HA叢集轉移的功能不可使用,瞭解後按下〔是〕。

 

再回到High Availability Manager畫面,看到處理中下方的詳細資訊,一再強調HA的轉移暫時中止,且終止的時間要看儲存空間的修復時間,估計時間不算短。

 

叢集連動的兩台主機,看似兩台獨立的主機,實質上只有主伺服器再運作,副伺服器扮演的是替代腳色,平常只接受主伺服器傳過了來的資料,是無法服務於前端的電腦, 主伺服器才是服務前端的主角,使用PING方式測試,主、副伺服器都OK正常回應。

 

但副伺服器只是為了接替用,無法設定任何的服務,下圖是連到附伺服器DSM的失敗畫面,可見副伺服器純是為了故障時替代用,也證明欉集的同步是單方向傳遞資料,一出問題才又備胎的副伺服器接手。

在 VMware 上測試 SHA

在DSM 6.1前,iSCSI 的服務是附屬在儲存空間管理員上,到了DSM 6.2 移出變成一個獨立的 iSCSI Manager。NAS就是利用本身上的儲存槽建立一個空間,透過網路芳鄰的方式(SAMBA、NFS ),即可連線成網路碟機來使用,就是把NAS上的空間當成桌機上的一個磁碟對應,只是這個磁碟不是一般的DAS直連式儲存連接方式(Direct Attached Storage),而是利用網路來存取。既然如此,為何又要提供iSCSI呢?因為使用區塊為單位的通訊協定不只給你空間,而是給你整顆硬碟般的環境,讓你可以格式化與安裝系統,尤其有使用Vmware虛擬伺服器的人都知道它的好處。

 

虛擬化技術領域中,目前較多人使用微軟Hyper-V或是VMWare,目前四核心或六核心的機器價位也相當親民,VMware ESXi 可說是目前市面上簡單快速的虛擬化方案之一,只要一部電腦就可運行多台虛擬機,也就是執行多個作業系統。筆者以VMware 為例,建立了兩個 iSCSI Target 並對應兩個LUN,詳細的建立iSCSI Target 與LUN,請參考淺談 Synology NAS 新的 iSCSI Manager 管理工具文章。

 

開啟VMware到儲存區來新增連結的Synology Target儲存區,也順便在此儲存區上建立一個Windows 7的虛擬機器VM。

 

為了測試移轉後仍可開啟虛擬機器,下圖看到主伺服器itnas-1機器上,在其上方按下電源鈕並選擇關機,出現的提示窗說明將會取消所有的執行中的任務,並且會由itnas-2接手服務。

 

關閉主伺服器後到VMware上查看裝置下的設備,發現連結的Synology iSCSI DISK都是錯誤的狀態。

切換到資料存放區查看,容量與可用的空間均為0。

 

經過些許的時間後,當主伺服器完全移轉到原先的副伺服器後,連結Synology NAS的iSCSI儲存區的空間容量出現了。

 

到High Availability Manager畫面上雖然看到警告,但原先itnas-1的關機的主伺服器,已經移轉到itnas-2的機器上了。

 

移轉後Windows 7虛擬機還可以運作,筆者測試OK。不要關閉VM虛擬機器,緊接著要來測試運作中移轉的狀況。

 

將關閉的itnas-1 NAS開機,當出現叢集狀態正常後,很明顯 itnas-1 還是副伺服器。

 

到右邊的電源鈕下選擇轉移,由於目前Windows 7虛擬機器還在運作中,此時是觀察在轉移過程中是否會造成虛擬機器關閉或重開機。

 

觀察Windows 7的虛擬機器會不會因轉移而被強迫關機,一直移動滑鼠,當中會有一小段稍有小停頓的感覺,但並沒有被強迫關機或重新啟動。也就是在主、副伺服器轉移時,VMware 安裝在 iSCSI Target 空間的系統,運作中發生移轉也能確保企業達到服務不中斷。

 

再談故障移轉的時機與開機的連動

嘗試將itnas-1的Radi1上拔除一顆硬碟,此時一直聲響告知你儲存空間已降級。奇怪,不是有設定iSCSI、FTP、SMB服務發生問題時會啟動故障轉移嗎?怎麼會是降級而已,你是不是也些疑惑麼?請繼續看下去喔!

 

既然沒有自動啟動移轉,擔心RAID 1降級變成沒有保障,所以試著將主伺服器儲存空間降級狀況下移轉。

 

結果順利將主伺服器移到itnas-2上,主伺服器已確定落在itnas-2機器上。

 

再來一次將沒有降級的itnas-2主伺服器移轉回到有降級的itnas-1。

 

一樣可以成功轉移,不過筆者認為此過程有這相當的風險,從有RAIA 1的儲存空間轉到有降級的儲存空間,總是覺得有那麼些的不安。到目前為止,很清楚降級的儲存空間不影響手動轉移,但也不會因儲存空間降級級而啟動自動轉移動作。

 

再來測試將下圖的itnas-1的另一運作的硬碟也拔出,也就是模擬兩顆同時損毀,此時出現如下圖嚴重的畫面,直接告知你itnas-1主伺服器儲存空間損毀。

 

不用多久即看到叢集啟動故障轉移處理中畫面。

 

最後看到itnas-1完全損毀無法偵測,但與成功啟動故障轉移到itnas-2中。

 

筆者剛踏入HA的領域,對於叢集故障轉移挺新鮮的,但每次遇到開、關機時,總會覺得有些疑惑?叢集連線的兩台電腦如何開關機呢?關機很簡單,在High Availavility Manager上按下電源鈕圖示,可以選擇叢集關機,這樣就可以同時關閉這兩台HA的主、副伺服器。

 

倒是開機會有疑惑?要有順序嗎?畢竟年度維護或是預告停電的時候,關機後要開機時總是會有些不知所措,因為會擔心副伺服器提早開機,會不會造成自動轉移呢?筆者的測試發現,不管哪一台先開機,系統都會利用WOL (wake-on-LAN) 自動喚醒另一台,所以你不必擔心會有因開機問題造成轉移的情形發生。

 

感想與心得

筆者進服務的公司時,ERP就有HA的架構,記得前輩說功能限制蠻多的,且代價不少,想必銀兩所費不貲。一般中小企業想要建構HA叢集,看到報價即使忍痛購買,往往在維護上的門檻也讓人吃不消,當然人事成本的費用更不在話下。如今只要兩台 Synology NAS搭配High Availability Manager 套件,不需要特殊專職的網管人員,即可輕鬆架設就可即時保護與自動故障轉移,協助企業達到服務不中斷,Synology HA叢集架構伺服器不再是有錢大企業的專利。

 

參考文章~~

淺談Synology NAS的硬碟配置規劃與容錯
談 Synology DS1517+ NAS 支援 Link Aggregation 多重網路聚合的運用
談 Synology DS1517+ NAS上的 PCI Express 擴充槽運用
淺談 Synology NAS 新的 iSCSI Manager 管理工具
原來Synology NAS可以輕鬆架設有SSL憑證的網站
Synology Moments 智慧型照片管理工具,自動分類收藏珍貴照片超輕鬆
Synology DiskStation Manager 6.2 beta 系統初體驗

#

 

Bloggerads載入中~ data-matched-content-rows-num="4,2" data-matched-content-columns-num="1,2"

itwalker

或許技術與功力已遠遠不及時下年輕人,但試著去畫一個圓,圓不圓沒關係,盡力就好,如果覺得文章不錯的話,請大家按個「讚」或「+1」,感謝您的支持與鼓勵!歡迎加入我的粉絲團 : https://www.facebook.com/itwalker ,更多關於挨踢路人甲的文章: https://walker-a.com

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料