服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。通常分为文件服务器、数据库服务器、应用程序服务器、WEB服务器等。
数据没有落地服务器崩了的原因:1、同一阵列内多块硬盘出现故障。
2、服务器模块老化。
3、服务器系统更新。
4、网络问题:当网站显示无法访问或无法找到时,会报告错误。通常情况下,服务器正常,存在网络问题。
5、系统过载由系统过载导致的服务器停机通常表明页面打开缓慢,甚至无法打开。系统可能会在一段时间内缓慢响应,然后恢复正常运行。这通常发生在交通高峰期。
6、错误的配置和错误的命令行,导致一些关键系统停止运行。要快速解决配置问题,请始终记住备份。这将回到上一个配置文件。或者简单地使用各种工具来配置系统。
关键业务服务器对可靠性要求非常严格,调研机构曾调查过不同行业,关键业务中断服务带来的金钱损失:服务器宕机1分钟,平均会使运输业损失15万美元,银行业损失27万美元,通信业损失35万美元,制造业损失42万美元,证券业损失45万美元。而根据ITIC最新2018年底统计,1小时停机损失:
前些年关键业务服务器的金标准是要做到5个9,现在已经要求6个9,甚至7个9。他们是什么意思呢?
X个9,表示在1年时间的使用过程中,服务器可以正常使用时间与总时间(1年)的比值。
5个9:(1-99.999%)*365*24*60=5.26分钟,表示1年非计划停机时间不超过5.26分钟。
6个9:(1-99.9999%)*365*24*60*60=31.5秒,表示1年非计划停机时间不超过30秒。
7个9:(1-99.99999%)*365*24*60*60=3.15秒,表示1年非计划停机时间不超过3秒。
ITIC统计2018年80%的企业最低要求4个9,可靠性要求增长非常迅速:
服务器能够做到这么短的非计划停机时间,除了在操作系统上要求严格外,硬件上的保证是重中之重。服务器的RAS(Reliability, Availability,Serviceability 高可靠性、高可用性、高服务性)特性(feature)曾经是大型机的骄傲,也是它们高高在上身价的基础,但随着X86在RAS功能上的补足,服务器市场已经几乎被X86服务器占据。关键业务服务器由于 历史 和维护原因,还有部分市场份额不在X86的掌控之中,但非X86高可靠性的神话已经破灭。根据ITIC统计:
X86服务器不但占据绝大部分,而且可靠性也仅仅比Power 服务器低一点点。
那么这些RAS功能都是些什么呢?绝对不是焚香祷告哦
而是实打实的硬功夫!RAS的根本在于提供硬件冗余来避免错误;出错后及时发现、纠正和避免错误扩散;替换掉出错的设备等等。下面我们来分别了解一下。
对计算机比较了解的同学都知道磁盘的RAID模式,RAID提供了数据冗余来保证数据安全。当然RAID是服务器上的必备要求,但你知道吗,内存也有同样的模式,那就是内存镜像(Memory Mirror)。内存镜像将4个通道的内存成对存储相同的数据,类似磁盘的RAID 1,内存的数据在硬件上就被保存了两份,当一份损坏时还有备份,而更妙的是这些是对软件透明的。
这个冗余度和RAID1一样是很大的,一半的资源在大部分情况下闲置了,在提高可靠性的同时浪费也十分严重,有没有稍微省钱点的做法呢?当然有,那就是内存备用(Memory Sparing),简单来说就是保留了部分内存,当出错再把这些内存拿来顶上。它的颗粒度可以到DIMM甚至以Rank为单位。
大家知道1位奇偶校验码可以发现1位的错误,但不能纠正,对于2位以上连发现都发现不了。ECC好一些,但对于很多位错误就无能为力了。SDDC (Single Device Data Correction,单设备数据校正 )可以纠正X4的单设备错误:
SDDC+1不但可以纠正X4的内存错误,还可以把出错的颗粒替换掉,让它下次不再出错:
DDDC(Double Device Data Correction )可以和Lockstep一起,将两个DIMM拼拼,纠正两个X4颗粒的错误:
DDDC+1和ADDDC(Adaptive Double Device Data Correction)这里就不再介绍,有兴趣的可以自行Google。
这些都是内存访问的时候发现错误了如何处理,但是还有些错误可能发生在没有访问的区域,这些区域错误不加处理,积少成多,可能超过DDDC的纠错能力。这就需要Patrol Memory Scrubbing的帮助了。它会像高速巡警一样,借助一个特殊的引擎,帮助定期扫描内存的可能出现的错误。Demand Scrubbing会把发现错误的数据,纠正后写回去,避免错误积累。
我曾经有过两篇文章介绍出错的问题:
计算机硬件出错了会发生什么?
WHEA原理和架构
大家感兴趣可以翻翻前面的文章。
作为服务器必备的功能,WHEA会把错误向操作系统报告,操作系统可以选择做出相应的动作。BIOS还可以设置poison位来标定出错的范围。
硬件发生了错误,即使已经通过各种手段(SDDC等)得到纠正,但隐患已经埋下。硬件一旦发生错误,可能会越来越严重,慢慢变得不能够纠正而变成严重错误。为了避免发生这种情况,需要把出错的设备移除和替换。
那么操作系统报告给管理员错误后,该怎么办呢?按照一般的想法就是关机换设备吧。但这种操作是严重影响x个9的可用性数据的。必须在操作系统还在持续提供服务的情况下更换设备、内存甚至CPU!
也许你听说过PCIe设备的热插拔,但内存和CPU的热插拔就比较高冷了。CPU和内存热插拔和PCIe类似,有个attention开关。在按下后,BIOS、操作系统和硬件会合作把设备周边电路隔离、内核对象移除和变更,在完成后会有状态指示灯显示准备工作结束,可以动手移除了。CPU和内存插入和这个相反,但都要BIOS、操作系统和硬件支持,十分复杂,但整个操作下来也十分炫酷。
6个9甚至7个9是个系统工程,需要整体上考虑。除了这些RAS功能之外,服务器硬件如磁盘驱动器等等也与民用不同,十分昂贵。
这些功能整体推高了服务器的价格,Google、FB、亚马逊和阿里等等大型云服务公司决定另辟蹊径,从操作系统级别的软件冗余来解决系统X个9的可靠性问题,这样一台服务器出错,直接整台offline,而不是CPU或者内存的更换。于此同时另外2到3台服务器还在持续提供服务,服务不会中断。
但是大型关键部门如银行电信等,还在借助传统的RAS来保证系统的可靠性。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)