Home / 기술 자료 / 博客 / 金笛邮件博客 / 中美脱钩,Exchange何去何从

中美脱钩,Exchange何去何从

-

当Exchange损坏时,一个平常的日子可以很快变成你生命中最差的一天。花费几个小时在一个Exchange服务器修复上,有可能彻夜难眠,还可能会被每五分钟警告一次而身心疲惫。

 

Exchange后端数据库故障,一般都会是比较严重的紧急故障,因为这会直接影响到大面积用户的正常使用,而且涉及到用户数据。一旦遇到这种级别的故障,管理员往往都需要在非常紧张、压力非常大的状态下进行恢复操作,需要在高压状态下迅速做出决策,下一步应该如何做。

 

作为从业者, 我很好奇,想去探究为啥exchange这么脆弱?我想已经找到答案,以下是我的思考和体会。

 

Exchange经过20年的发展, 架构上从合到分再到合的过程。在 exchange 2010 中,exchange 包含五个服务器角色,分别为邮箱服务器,客户端访问服务器,集线传输服务器,统一消息服务器,边缘传输服务器。

 

在后来的 exchange 2013 中服务器被精简为 3 个:邮箱服务器,客户端访问服务器,边缘传输服务器

 

exchange 2016 和 2019 中则只有邮箱服务器和边缘传输服务器了。 到Exchange Server 2019,这个版本和Exchange Server 2016这个版本的架构基本没有变化,仍旧只有MBX和EDGE,但EDGE一直是一个可选角色,大部分企业都不用,被邮件网关所代替。这个架构其实越来越和金笛邮件系统+邮件网关的架构接近。

 

在存储方面,exchange一直采用数据库edb格式,把所有的邮件存放到数据库中。这种方式虽然查询检索备份比较便利, 但是有一个致命缺陷,那就是随着邮件越来越多, 数据库文件越来越大, 一旦出现突然断电或者硬盘出现坏道, 哪怕出现几个字节损坏,整个数据库文件会出现脏关机状态。 当数据库处于“脏关机”状态时,它将防止Microsoft Exchange数据库挂载,从而导致电子邮件服务中断。

 

此时,Exchange服务器数据库无法挂载并显示错误消息,例如“失败的错误:无法挂载您指定的数据库”。 解决方案是从更新的备份还原Exchange数据库或应用有效的Exchange EDB修复技术。

 

当Exchange服务器崩溃时,管理员可以使用setup / m:RecoverServer switch命令来重建新的Exchange服务器。 但是,根据故障的性质,数据库恢复是一项更具挑战性的任务。您从崩溃的Exchange服务器的.edb文件中恢复邮箱,尤其是当ESEUtil失败,日志丢失或删除且备份不可用时。

 

EDB文件存放了所有邮箱项目,包括电子邮件,附件,联系人,日历,便笺,任务,日记和公用文件夹。修复大型EDB文件是一个容易造成数据丢失的风险操作。

有很多第三方厂商专门开发了修复exchange的软件竟然是个不错的生意, 可见exchange崩溃是个3-5年内会出现的大概率事件。究其原因, 邮件收发是个频繁的硬盘IO操作,硬盘读写特别频繁, 一个机械硬盘频繁读写3、5年出现坏道是大概率事件。Exchange把所有邮件放到一个EDB文件中, 显然是设计上的致命缺陷。这个大文件只要有几个字节错误, 格式就发生变化,变得不可读, 导致无法加载。 国内大硬盘存储基本上还都是机械硬盘,用几年后,不可避免地出现坏道。这是exchange如此脆弱的根本原因。

 

其实在linux系统上,很多年前,单一的邮件的存储格式mailbox已经被抛弃, 而采用更先进的Maildir格式至今。这种存储格式, 是非常科学非常先进的。硬盘出现部分坏道,只影响个别或者部分邮件,整体上不会受影响,更不会影响邮件系统的基本服务。可靠性比单一文件存储不是几百倍的提高,二是数量级指数上万倍的提高。

 

微软在操作系统领域实力确实可以,但他不是什么都能做得好。比如IE被全面抛弃和替代就是明证。Exchange由于先天的设计缺陷,经过了20年发展,也没有在中大型企业推广开来,更逞论政府、部队、公安等要害部门。

 

Exchange在国内卖的价格很高,但有致命缺陷,依赖于代理商提供的服务。越来越多的企业已经意识到,且已经醒悟,不再交这个智商税。