2019年3月8日 星期五

Mail Server透過iSCSI串連Synology NAS做到HA機制

郵件伺服器搭配低成本SAN以及HA Cluster做到Failover

緣起

小編最近在PCHome購物上面逛一些網路器材。看到10GbE交換器、10GbE網路卡、Cat7網路線也普遍且低價。心裡突然萌生一個是否可能建立一個兩步驟切換的便宜iSCSI SAN且搭配HA Cluster的Mail Server架構? 好繞舌啊~! 額~ 這篇裡面的High Availability 因為不是全自動,可能要改成Medium Availability。這部分,後續會解釋。

大品牌方案

過去十幾年來,類似Cluster跟HA方面的郵件伺服器當然有解決方案。Microsoft Exchange Server、IBM Lotus、Oracle Veritas Cluster Server/Messaging Server等等不勝枚舉。但是依舊天價。動輒幾十萬以上。其中包含高規格的硬體規格、伺服器授權、cluster授權、cluster連線數的授權、Mail Server連線數的授權、目錄服務連線數的授權、購買技術支援的費用、建置其間的人工費用等等。

光華牌方案

反觀光華牌陣營,在2019年的今天,SSD跟10GbE網路架構的降價跟普及度讓自架iSCSI SAN & HA Cluster Mail Server不再遙不可及。因此,小編覺得Mail Server現在可以搭配NAS做低價的叢集式架構。

理論

為何可以呢? 依照10GbE的傳輸速度來算,一秒鐘的傳輸速度理論值是1250MB/s,也就是1.25GB/s。一般SATA-3的傳輸速度理論值是6GB/s,也就是750MB/s。
透過網路傳輸時速度絕對會有流失,就算把1250MB/s砍半,也有625MB/s。就算SATA-3維持理論值的七成,抓525MB/s。625MB/s都可以媲美SATA-3 SSD硬碟在電腦主機本地端內部的傳輸速度!

在下面的部分,我們來討論一下相關的軟硬體以及整個iSCSI SAN跟HA Cluster Mail Server的架構:

網路速度

在以前,頂多就是1GbE就蠻好用了。那時候,10GbE就只能在Data Center裡面才用得起。現在這些機私跟以前的天價比較都變得便宜。要達到10GbE的速度,需要SFP+(銅線或光纖)或是RJ-45(Cat6起跳,最好是Cat7)。在cluster servers跟NAS之間一定要用10GbE來串。

SSD硬碟

就在一年前,1TB SSD都還要上萬。近來,1TB SATA-3 SSD的價格不到五千,甚至更低! 小編愛用的品牌就兩個,Micron跟Intel。下面是隨便找PCHome的價格,光華商場可能更便宜:

  • Micron MX500 2TB: NTD$ 10999 / 1TB: NTD$ 4499
  • Intel 545s 1TB: NTD$ 7999

Synology NAS

看起來,買Micron的4到5顆1TB搭配Synology NAS做RAID 5 或 RAID 6,對IT同事來說是ㄧ大福音! 提到 Synology NAS,小編覺得DS1517+ 是ㄧ個好選擇。對於我們要建置的架構來說,其內建硬碟熱插拔功能跟其擴充至E10G18-T2高速雙埠 10GBASE-T雙10GbE的另購選項是不可缺少的! 記得,記憶體部份升級到16GB

到目前為止,郵件資料的備援跟備份皆可以在NAS上面解決。例如: RAID 5底下裝4顆1TB SSD做為儲存日常郵件之用。第5顆則可以裝一顆4TB的傳統硬碟存放年代久遠的郵件備份以及Cluster上面的VMWare或Windows Backup之用。又或是,可以留做SSD快取也不錯。

Cluster PC

  • 硬體部分: 買兩台Intel i7,各搭配16GB記憶體、各安裝一顆120GB SSD。各安裝10GbE網路卡提供與NAS連線。內建的1GbE網路卡連接至路由器。是否還需要再各安裝1GbE網路卡提供Cluster Heartbeat? 這一點我稍後會說明。
  • 軟體部分: 安裝Windows 10。在兩邊的Windows 10裡面再各自安裝一套EVO Mail Server。是否需要另外安裝VMWare Workstation將郵件服務虛擬化? 這一點我稍後會說明。

Cluster Hearbeat的迷思

一般來說,Cluster類似Windows Server 2008, 2012, 或2016等等,在兩個Node上面會另外插一張網卡做Hearbeat之用。那是Windows Server本身有內建這個功能。但是在Windows 10上面並沒有類似的功能,小編也Google了一下,沒有找到給Windows 10用的小工具(如果大家知道有此類小工具,麻煩好康到相報一下)。

這類在Windows Server上面的Heartbeat協同仲裁硬碟(Quorum) 決定是否自動跳到備援主機。小編認為此類自動機制是用於迫切性高的web server或是database server這種一翻兩瞪眼的狀況,也沒有太多的爭議。

對於郵件伺服器,從另外一個角度來看Cluster Heartbeat。小編認為郵件伺服器的運行迫切性沒有這麼高,容錯程度高一點。可以先由IT人員花幾分鐘檢查以後,再決定:
  • 是否當下幫主要伺服器除錯之後繼續運行?
  • 是否立馬換到備援伺服器?
一般來說,可能會發生的問題、狀況不外乎:
  • 硬體: 主機板、記憶體、硬碟、電源、網路卡、網路線 - 若是知道是壞了,立馬轉到備援伺服器。
  • 軟體: 作業系統、郵件伺服器軟體的bug - 若是很大的問題,例如作業系統損毀無法開機,則立馬轉到備援伺服器。若是10分鐘之內可以解決,例如郵件伺服器的一些bug或參數需要微調,則無須轉到備援伺服器。
雖然需要IT花費幾分鐘手動診斷,卻能夠掌控狀況。

是否建置VMWare?

這部分見仁見智。小編認為如果有足夠經費,在主要伺服器上面安裝VMWare Workstation版本,這是備援伺服器以外的另外一道備援防線:
  1. 在VMWare底下安裝另外一套Windows 10的虛擬系統A
  2. 確定虛擬系統A正常運行郵件服務之後關閉虛擬系統A
  3. 安裝另外一顆120GB SSD
  4. 虛擬系統A的映像檔拷貝一份到新添的120GB SSD中當做虛擬系統B
這樣做的原因是如果主要伺服器硬體皆正常,在虛擬系統A映像檔損毀的狀況下,可以直接打開虛擬系統B運行郵件服務以盡可能減少服務中斷的時間。

Cluster轉換主機的手段

以EVO Mail Server為例,所有設定檔案皆在NAS上面,因此Cluster Servers的角色僅為執行郵件伺服器主程式、與NAS連線、跟與外界連線的目的。根據每個IT弟兄不同的習慣,從郵件服務從主要伺服器移到備援伺服器有幾個方法,看官自己斟酌哪個方便:
  • 如果在Router內網裡面:
    • 若Router上面有做Port Forwarding (有些人稱Virtual Server),可以登入Router將Port Forwarding指向的內部IP改成備援伺服器的內部IP即可。
    • 如果習慣關閉發生問題的主要伺服器,則可以在平常時關閉備援伺服器的網路卡,要轉移到備援伺服器的時候再啟動其網路卡,這樣子,備援伺服器網路卡的內部IP設定可以跟主要伺服器一樣。缺點就是無法使用遠端桌面去操作,必須實際登入備援伺服器設備本身去操作。
    • 上面第二種方法有另外一種變通,備援主機待機的時候,網路卡還是打開並指定另一個不同的內部IP。這種方法就可以透過遠端桌面去做轉移。要轉移的時候,還是先關閉發中問題的主要伺服器,再將備援伺服器的內部IP改成主要伺服器的內部IP。
    • 主要伺服器有安裝VMWare的情形下,如果主要伺服器硬體皆正常,只是虛擬系統A映像檔損毀的狀況下,可以直接打開虛擬系統B運行郵件服務以盡可能減少服務中斷的時間。
  • 如果主要備援主機皆在DMZ或是直接連線到Internet:
    • 登入DNS代管服務將郵件伺服器的A紀錄IP指向備援伺服器的實體IP。通常需要一小段時間讓DNS紀錄擴散生效。
    • 主要伺服器有安裝VMWare的情形下,如果主要伺服器硬體皆正常,只是虛擬系統A映像檔損毀的狀況下,可以直接打開虛擬系統B運行郵件服務以盡可能減少服務中斷的時間。(不建議這樣的設定,因為會浪費一個public IP給實體主機。)
以上轉換程序中的注意事項:
  1. 如果主要伺服器還能使用並連網的狀況下,可以自行註銷EVO Mail Server的授權碼。
  2. 如果已經無法使用的狀態,用其他外部郵件帳號發郵件請EVO工作人員手動註銷授權,然後在備援主機上面再次啟動。
  3. 更保險的方式是ㄧ次購買兩個授權,分別用再主要備援主機上面。要注意的是,當備援主機起來以後,要用屬於備援主機的license.dat先把NAS上面的license.dat授權檔案覆蓋過去再啟動郵件服務。
  4. VMWare映像檔的部分,由於是同一個虛擬系統,無須做註銷及啟動。但是,注意不要同時打開兩個虛擬系統。否則,Windows跟EVO Mail Server的授權都會出問題。

實際架設Synology NAS提供的iSCSI SAN跟Windows 10 Cluster HA機制

小編在前的文章有提到如何安裝EVO Mail Server,所以我們現在從郵件伺服器正常運作的狀態接下去做設定。
  1. 在Synology NAS上面建置iSCSI硬碟
    • 如果還沒有建立儲存空間,先建立儲存空間。如果已經有儲存空間,到下一步。
    • 再過來建立TARGET建立LUN。如果才開始建置,通常建立TARGET之後會接著建立以及連接LUN,一次完成。如果之前已經有LUN存在,則視狀況做必要的設定。
    • 打開iSCSI manager。
    • 一開始什麼都沒有。
    • 點擊左手邊的Target,然後點擊Create。
    • 輸入名稱、IQN以及是否啟動CHAP認證。
    • 在下一步會自動做LUN mapping的動作。
    • 定義磁碟大小。
    • 確認先前的設定。
    • 點擊左手邊的Target,可以再次瀏覽設定摘要。
    • 點擊左手邊的LUN,也可以確認LUN是否有連接。
    • 在左手邊的Settings可以把I/O Queue Depth加大,對10GbE還有SSD環境有幫助。
    • 最後在總覽頁面確認iSCSI是否已經完成建置。
  2. 在Windows 10上面啟動iSCSI initiator
    • 設定iSCSI initiator之前可以看看是否要做一些最佳化的動作。
    • 了解最佳化手段並決定是否做最佳化的動作之後,在Windows 10搜尋並打開iSCSI initiator。
    • 打開iSCSI initiator之後,在Target分頁下面的Quick Connect直接輸入Synology NAS的IP可以直接做快速連接。 
    • Discovered tartgets清單出現可以用的target,並且已經連接。
    • 最後的摘要。
    • 在Windows 10搜尋並打開Computer Management
    • 點擊左手邊的Storage/Disk Management之後可以看到新加的磁碟機。
    • 在上圖中,滑鼠右鍵點擊Disk2的區塊,然後選擇Convert to GPT Disk。因為GPT可以建置過2.2TB的磁碟分割。
    • 在新切割的分割上面點擊滑鼠右鍵,選擇New Simple Volume建立分割以及格式化。
    • 經過格式化後的整個iSCSI磁碟。
  3. 將EVO Mail Server的相關檔案搬遷至iSCSI硬碟
    • 打開EVO Mail Server的管理介面,點擊左上角的摘要,然後拉到最下面的Server setting status。
    • 在上圖,點擊Mail Data Folder右手邊的迴圈圖案,打開瀏覽資料夾的視窗。
    • 接下來會跳出一個通知,告知郵件檔案會開始做搬遷的動作。
    • 搬遷完成以後會再跳出一個通知,告知已經完成。
    • 此時,我們可以注意到郵件資料夾已經改變。
  4. 按照"安裝EVO Mail Server"文章最後面提到的步驟做測試。

價格分析

現今,一兩百人的公司企業生存也不大容易,對於IT基礎設施的投資也是捉襟見肘。把上面提的架構,其所需的經費大約如下:
  • Intel i7, 16GB RAM, 120GB SSD, 10GbE 網路卡(可以選擇光纖版本或RJ-45版本), 450W 電源, Windows 10 伺服器主機 x 2, NTD $60000
  • Synology NAS DS1517+ x 1, NTD $22000
  • Synology 擴充記憶體 8GB x 2, NTD $9100
  • Synology E10G18-T2 或 E10G17-F2 10GbE 網路卡  x 2, NTD $18900 或 NTD $21000
  • NAS專用硬碟 美光 MX500 2TB SSD硬碟 x 4, NTD $42000
  • 備份舊郵件專用硬碟 WD 4TB 外接 (如果NAS插槽拿來做SSD 快取),內接 (如果直接插在NAS插槽) x 1, NTD $3500 或 NTD $6000
  • VMWare Workstation 15 x 1, 約 NTD $8000 (此為選購以搭配前面提到的虛擬系統)
上面的價格都是隨便網路上抓的,如果有到處詢價,應該可以壓在NTD$ 15萬有找。不能省的是10GbE網路卡跟硬碟:
  • 網路卡呢? 用光纖版本是最好了。小編剛剛找到一篇一般1GbE網卡跟光纖介面網卡的實做及比較的文章可以參考。
  • NAS本身呢? 也可以直接上DS1817+ (8GB記憶體版本,NTD $26900),內建兩個10GbE網路埠,然後把八顆硬碟插槽拿兩個出來做SSD 快取,SSD快取要用多大的SSD硬碟,可以問商家或參考這篇文章。雖然價格比DS1517+貴幾千塊,但是擴充記憶體跟10GbE的網路卡都省了。實際上是便宜了一萬五至少。不過,話說回來,規格上面有捨有得,所以留給看官自己決定。
  • NAS硬碟部分呢? 為何要拿2TB的? 以SSD的架構來說,容量越大,速度越快。因此,建議一次到位,可以凍就顧!

小編總結: 

呼! 這一篇很長,也寫了很久。這次會寫這篇也是因為剛好眯到10GbE網路架構跟大容量SSD硬碟價格比以前便宜很多。當然啦,還有讓SSD發揮更快速度的建置方式,也就是直接塞幾張PCI-e跟NVME SSD在郵件伺服器裡面。

這次的主題是找出一個讓郵件伺服器有容錯空間的解決方案。NAS跑RAID-5或RAID-6提供儲存空間的容錯。一台主要伺服器跟一台備援伺服器提供主機硬體運行上的容錯。

以上,給大家做一個參考。畢竟每家公司的IT環境不一定一樣,或許可以把目前可用的電腦、零組件、NAS等等兜一組起來用,那花費肯定更低、幫老闆省更多! 最後祝各位IT同學2019年永不當機,一覺到天明!