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版本,這是備援伺服器以外的另外一道備援防線:
- 在VMWare底下安裝另外一套Windows 10的虛擬系統A。
- 確定虛擬系統A正常運行郵件服務之後關閉虛擬系統A。
- 安裝另外一顆120GB SSD
- 將虛擬系統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給實體主機。)
以上轉換程序中的注意事項:
- 如果主要伺服器還能使用並連網的狀況下,可以自行註銷EVO Mail Server的授權碼。
- 如果已經無法使用的狀態,用其他外部郵件帳號發郵件請EVO工作人員手動註銷授權,然後在備援主機上面再次啟動。
- 更保險的方式是ㄧ次購買兩個授權,分別用再主要跟備援主機上面。要注意的是,當備援主機起來以後,要用屬於備援主機的license.dat先把NAS上面的license.dat授權檔案覆蓋過去再啟動郵件服務。
- VMWare映像檔的部分,由於是同一個虛擬系統,無須做註銷及啟動。但是,注意不要同時打開兩個虛擬系統。否則,Windows跟EVO Mail Server的授權都會出問題。
實際架設Synology NAS提供的iSCSI SAN跟Windows 10 Cluster HA機制
小編在前的文章有提到如何安裝EVO Mail Server,所以我們現在從郵件伺服器正常運作的狀態接下去做設定。
- 在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是否已經完成建置。
- 在Windows 10上面啟動iSCSI initiator
- 設定iSCSI initiator之前可以看看是否要做一些最佳化的動作。
- 如何於 Windows 環境最佳化您的 iSCSI 服務
- 如何在支援多重連結 (MC/S) 的 Windows 電腦上使用 iSCSI Target
- 如何在支援多重路徑 I/O 的 Windows 電腦上使用 iSCSI Target
- 了解最佳化手段並決定是否做最佳化的動作之後,在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磁碟。
- 將EVO Mail Server的相關檔案搬遷至iSCSI硬碟
- 打開EVO Mail Server的管理介面,點擊左上角的摘要,然後拉到最下面的Server setting status。
- 在上圖,點擊Mail Data Folder右手邊的迴圈圖案,打開瀏覽資料夾的視窗。
- 接下來會跳出一個通知,告知郵件檔案會開始做搬遷的動作。
- 搬遷完成以後會再跳出一個通知,告知已經完成。
- 此時,我們可以注意到郵件資料夾已經改變。
- 按照安裝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年永不當機,一覺到天明!