Mail Server透过iSCSI串连Synology NAS做到HA机制
邮件服务器搭配低成本SAN以及HA Cluster做到Failover
缘起
小编最近在JD购物上面逛一些网络器材。看到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: ¥2099.00 / 1TB: ¥1059.00
- Intel 545s 1TB: ¥1499.00
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 服务
- 如何在支持多重连结(Multiple Connections per Session,MC/S)的 Windows 计算机上使用 iSCSI Target
- 如何通过 Multipath 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, ¥13000
- Synology NAS DS1517+ x 1, ¥5700
- Synology 扩展内存 8GB x 2, ¥2699
- Synology E10G18-T2 或 E10G17-F2 10GbE 网络卡 x 2, ¥2250 或 ¥2499
- NAS专用硬盘 美光 MX500 2TB SSD硬盘 x 4, ¥8800
- 备份旧邮件专用硬盘 WD 4TB 外接 (如果NAS插槽拿来做SSD 快取),内接 (如果直接插在NAS插槽) x 1, ¥1199 或 ¥1039
- VMWare Workstation 15 x 1, 约 USD$249.00 (此为选购以搭配前面提到的虚拟系统)
上面的价格都是随便网络上抓的,如果有到处询价,应该可以压在¥3万初有找。不能省的是10GbE网络卡跟硬盘:
- 网络卡呢? 用光纤版本是最好了。小编刚刚找到一篇一般1GbE网卡跟光纤接口网卡的实做及比较的文章可以参考。
- NAS本身呢? 也可以直接上DS1817+ (8GB内存版本,NTD $26900),内建两个10GbE网络端口,然后把八颗硬盘插槽拿两个出来做SSD 快取,SSD快取要用多大的SSD硬盘,可以问商家或参考这篇文章。虽然价格比DS1517+贵几千块,但是扩展内存跟10GbE的网络卡都省了。实际上是便宜了3千多至少。不过,话说回来,规格上面有舍有得,所以留给看官自己决定。
- NAS硬盘部分呢? 为何要拿2TB的? 以SSD的架构来说,容量越大,速度越快。因此,建议一次到位,可以冻就顾!
小编总结:
呼! 这一篇很长,也写了很久。这次会写这篇也是因为刚好眯到10GbE网络架构跟大容量SSD硬盘价格比以前便宜很多。当然啦,还有让SSD发挥更快速度的建置方式,也就是直接塞几张PCI-e跟NVME SSD在邮件服务器里面。
这次的主题是找出一个让邮件服务器有容错空间的解决方案。NAS跑RAID-5或RAID-6提供储存空间的容错。一台主服务器跟一台备援服务器提供主机硬件运行上的容错。
以上,给大家做一个参考。毕竟每家公司的IT环境不一定一样,或许可以把目前可用的计算机、零组件、NAS等等兜一组起来用,那花费肯定更低、帮老板省更多! 最后祝各位IT同学2019年永不当机,一觉到天明!