原文转自:http://www.cnblogs.com/killkill/archive/2010/07/15/1775433.html
近日新进一台 DELL PowerEdge R810 服务器,趁还在测试阶段赶紧拆开看看,顺便说说X86服务器的那些事。
外观
R810 是台2U4路的机架式服务器,其他的边上图边说:
样子还是挺帅的,去掉鬼面罩后:
从正面看,该服务器有6个2.5寸硬盘槽位,同时也有DELL标志性的液晶面板,从第11代服务器开始,DELL全线服务器(除了刀片)都使用了该液晶面板,相对于以往该液晶面板有所增强,在原来显示故障信息的基础上多了一些功能,用户可以简单设置一些东西如:注释、IP等,迅速定位问题这一点足以秒杀仅有一盏故障灯的某些品牌服务器了。但是该液晶面板的蓝色背光灯的寿命是一大问题,想当年DELL第6代服务器如:2650、6650,液晶面板的背光灯在6年后的今天依然光辉依旧,而从第三代2950之后(当然也包括第11代服务器如:R710、R810)的液晶面板灯寿命都超不过2年。而该部件的更换是需要停机的,对于某些场合来说,停机是很大的一件事,真是“成也萧何,败也萧何”。下图是两台上架时间相差3个月的服务器的液晶面板:
接下来再看看屁股:
两个互备的1100瓦电源模块,很容易就可以抽出来在线更换,由于条件限制一些朋友的电源只能插一根,液晶面板老是报PS1/2 Status Fail,处理的方很简单,把没有插电的电源模块拔出来约3~4寸,服务器就检测不到该电源模块,该错误就不会报了。
集成4个broadcom的千兆网口,有6个扩展槽位(2个半高,4个全高),DELL 服务器后面的这个拉手很好用,开箱的时候利用它很方便地取出服务器,在机柜后利用它可方便抽拉抽拉,有时有可以绑些标签扎带,很简单但是很实用的设计。
在最左下角有个黑色胶板挡住一个缺口,该缺口是用来放置DRAC卡的,它其实一个小型的嵌入式操作系统,可以通过它来管理服务器,包括远程安装、启动和关闭等,通常操作系统挂死后可以通过DRAC卡进行重启系统。HP对应的技术是iLO.
开盖一览
先看上盖板的背面:
这是一幅简要的安装、拆卸说明书和各个部件的说明,还是很容易看明白的。
从前面看过去:
先是硬盘托架(当然还包括里面的硬盘),然后是导风板,CPU散热器,风扇模块,然后IO板卡和电源模块。
从后面看上去:
从这个角度可以看到CPU几乎紧贴着风扇模块,通常机架式服务器采用侧吸/吹的方式进行散热。
风扇模块
整台服务器就靠这6把风扇散热了,坏了其中一把问题不大,我这边有台6年前的2650服务器,风扇坏了近3年,照样跑得好好的。
通常服务器启动之后有个除尘模式,表现为风扇狂转,现在有些PC机也会这样做了,此时,千万不要在服务器后面看热闹,此时吹出来的风饱含小颗粒,有些比较脏的服务器直接就喷黑烟了,这些粉尘对肺部损害很大。
前端I/O模块及内存模块
我们拿走导风板,此时可以看到内存了,但还不是全貌,要将前端I/O模块像抽屉那样拉出来,才能看到全貌:
从这两张图片可以看到完全就是模块化的设计,拉看这个前端IO模块后就可以看到内存的全貌:
16条DDR3内存, 每条4GB,共计64GB,中间黑色的是胶片,估计是防止灰尘落入内存槽中,从这个角度可以看到几样有趣的事情:
1。CPU的散热方式不是采取自上而下的风冷方式,采用的是侧风的方式,冷空气从前端吸入,首先冷却硬盘,再到内存,再到CPU,再到后端的IO板卡,要结合“从前面看过”那张图比较容易理解,这种方式的冷却顺序是很合理的,通常来说硬盘是一个发热大户,同时也对温度比较敏感,为了方便在线更换所以排在最前排;其次是内存条,内存的发热量不大,硬盘的工作温度对于内存内存来说是很舒服的温度,而且空气的温度比硬盘的温度要低;再来就是另一个发热大户CPU了,CPU可容忍温度还能高一些,经过CPU加热的风最终就吹到了对热量不太敏感的IO板卡上,从整个过程来看服务器的散热设计是一个整体的散热方案,将一个空气流用到最足。
2。有人可能会问,为什么要设计这个“抽屉”呢,这是由于该服务器可以安装最多4个CPU,这导致主板的面积很难降下来,而且还有32个内存槽位,主板面积更加降不下来了,而且这是台2U高的服务器,很难做到通过“竖板”扩展内存,唯有借助“抽屉”结构来降低机身的长度,下图是内存扩展竖板:
DELL
R910(4U4路)的内存扩展板
3。连接硬盘架是两条SAS线,这是为什么呢,由于这台服务器支持6Gb/s(注意是b不是B)的SAS2通道,通过两条3Gb/s的SAS通道叠加而成6Gb。虽然就那几块硬盘的速度更不上,但已经是“时刻准备着”。
这里说说现在几种常见的硬盘接口:
SATA:这个大家应该比较熟悉,现时家用PC机的硬盘大多数都是这种接口,还记得IDE接口吗,IDE走的是ATA协议,看看如此多的针脚就知道IDE接口是并行传输,随着带宽的提高,终于搭上了串行的快车变成了SATA。
IDE接口的硬盘
SAS:说SAS之前先说说SCSI,SCSI是一种协议,使用专用的SCSI接口方式,大家可以看看SCSI接口也是有宽宽的排线,也是并行传输的,乘着串行的春风变身成SAS接口,不过依然跑着SCSI协议。
一种SCSI接口的硬盘
SAS接口兼容SATA接口,SATA接口却不兼容SAS接口,通常RAID卡都会同时支持SAS硬盘的话也会支持SATA硬盘。
SAS和SATA接口的区别和兼容性
除了接口不同,这两种硬盘更多的差异表现在转速和容量上,SATA一般是7200 RPM,不过现在有10000 RPM的SATA盘了,三年前的SAS盘已经是10000 RPM,而现在的SAS盘几乎都是15000 RPM;SATA的容量较高,SATA流行500G的时候,SAS正在从160G过渡到300G,SATA流行750G的时候,SAS的300G大行其道,SATA开始流行1T的时候,450G才刚出道,前不久Seagate发布600G SAS盘,家用机市场已经可以买到2T SATA盘了。
同时SAS和SATA盘面向的应用不同,SAS盘的IOPS比SATA盘要好,得益于其高高在上的转速,SAS的吞吐比SATA盘要高,但是不明显,通常SAS盘适合IOPS较高的场合,例如繁忙的数据系统,邮件系统,使用静态化技术的大行网站等。而SATA的价钱比SAS低廉,有个兄弟单位的联想服务器坏了块300G SAS硬盘,比较郁闷的是机器刚过保修两个月,联想要价 6000,上个月我买了块1TB的SATA硬盘(家用机)不到500块钱,挤挤联想SAS盘报价的水分,抬抬SATA盘的价格,大家可以算一算每G容量的差价还是相当相当大的,因此,SATA盘更多用于备份系统,大流量的视频网站,FTP站点(互联网上越来越少了)等,在按顺序存取文件的应用,从性能上说SAS比SATA领先不了多少。
再仔细看看内存,这是其中一条内存:
三星的DDR3内存,带ECC校验顺便多穿了件“马甲”。
通常来说,服务器的内存带有ECC校验和ChipKill技术,这是单条内存内的技术,而内存之间还支持Mirroring和Hot-Spare技术。不过相对来说内存故障的几率还是挺小的,因此这些技术远没有RAID这个名词出名。
CPU散热器及CPU拆装图
密密麻麻的散热片由几条铜管穿在一起,比起DIY玩家巨硕的散热器,服务器的散热器低调得太多了,散热器下面就是4颗Intel XEON E7520 CPU。
以下是CPU的拆卸图,其实不难,我曾经有一次在DELL工程师的电话“指导”下完成两颗CPU的互换。
从官方文档了解到 Intel XEON 7500系列单颗CPU最多可有8个核,再加上超线程技术可达16线程(即16颗虚拟CPU),而扩展性更是惊人256颗CPU并行工作,以下是从该文档摘录的部分7500系列的CPU参数,从参数可以可以看到其实频率并不是很高,并行性却越来越被重视,想想4颗Intel XEON E7560在Windows的任务管理器中可以看到64颗虚拟CPU的情景吧,同时跑63个Super PI再玩扫雷应该是不会卡的。
在服务器领域很看重并行性,当然如果并行能力和单核处理能力都强那是最好的啦,例如IBM的Power 7 CPU,这是由于服务器相当于一个资源竞争点,能同时处理处理多个任务比起更快地处理完单个任务更重要。
Intel XEON 7300系列的CPU依靠IBM的X4芯片只能做到16路,可以看一下我写的《16 路的PC服务器》,而Intel自己的芯片只能做到4路,所以在那个时候再高端的X86服务器也很难对高端小型机那几十路CPU产生冲击,因此长年以来X86服务器和高端小型机是河水不犯井水,但是依靠7500系列CPU良好的扩展性,高端X86服务器终于拥有了冲击高端小型机的资本了。估计首当其冲的将会是Intel自家的Itanium系列,可以参考我写的《不祥的CPU——Alpha》这篇文章,我从另一个角度分析Itanium衰亡的必然性。
话说回来,现在有这样的产品了吗?仔细搜索一下,还真有,以下来自Intel的网站信息,找到一台称为 SGI Altix UV 1000 的机器:
同时在SGI的网站上得到印证:
SGI 可能大家并不熟悉,但是搞图形领域的朋友对他一定不陌生,不过据说是一套刀片集群不是单机系统。
扯远了,由于该台服务器已经安装了VMware ESX 4,所以就没有安装Windows,当然也不会有大家熟悉的任务管理器了,我在VCenter中截了一张图,可以看到逻辑CPU达到了32个(4个CPU,每个4核,支持超线程,4*4*2):
后端I/O板卡及扩展槽
最后看看服务器的后端,R810比较奇特的是把RAID卡放在后端,以往的型号都是放在前端部分,估计也是由于空间的制约所作出的举动,同时我这台服务器也带了块QLogic的光纤HBA卡:
上面那张是HBA卡,下面那张是RAID卡,那条显眼的黑线可不是“飞线”,他是连接RAID卡和电池的。卸下HBA卡后RAID卡露出原形,RAID卡的散热片装得有点歪-_- :
通常来说,RAID卡都会有一个内存模块,称为RAID卡的缓存,作用和硬盘的缓存是一样的,由于该缓存比较大,通常都有256MB,里面保存了RAID的元数据和硬盘的I/O数据,一旦意外断电在没有电池的保护下该部分信息就会丢失。很早以前,RAID的元数据只会保存在RAID卡缓存中,一旦电池损坏,那就得想办法重建RAID了,而比较新的RAID卡会把RAID的元数据保存在RAID卡缓存中和每块硬盘中,这就抵御RAID电池失效后的灾难情况了。
是电池都会有电池的毛病,RAID卡电池也不例外,每隔一段时间RAID卡电池的都会做一次放-充电的动作,以保证电池的可用性,通常是3周~30天,如果长期对服务器的I/O性能进行监控并且有足够的I/O压力就会发现服务器的I/O总有“一段时间”特别差,这是因为在电池放-充电期间,RAID卡的写入模式会被强制设置为Write-Through,说到这里必须提一下,RAID卡通常的写入模式有两种:
1。Write-Back :上层系统的写入指令到达RAID卡后,RAID卡完成写入缓存的操作后马上返回一个成功信号,那个缓存其实就是个内存条,写内存多快啊,所以这种模式的性能很好,但如果没有电池保护该缓存的话将会出现丢数据的风险,而且还丢很多。
2。Write-Through: 上层系统写入指令到达RAID卡后,RAID卡直接将信息按照RAID的级别进行处理,然后写入各个硬盘,如果是四块硬盘做RAID0的话,就要等四块硬盘都返回成功信号后才会向上层返回成功的信号,这种方式对数据有最大的保护性,但是性能很差,毕竟要等待n块硬盘完成后才能返回。
当电池损坏后,DELL的服务器就拒绝启动操作系统,更换电池后就好了。
由于RAID的原数据在硬盘中也有一份,如果服务器损坏无法启动,但是硬盘都是完好无缺的,可以将硬盘更换到另一台拥有同样型号RAID卡的服务器上,然后开机,RAID卡会检测到硬盘的RAID元数据和缓存中的不一样,然后会让你确认是否导入新的RAID元数据,然后就可以启动操作系统了,这是PECT培训(DELLPowerEdgeConfiguartion and
Troubleshooting)的老师教的,不过很不幸,我遇到唯一一次尝试的机会没有成功。
通常来说,服务器坏硬盘是很正常的事,换就是了,服务器的设计也想到了这点,几乎都设计成可在线更换的方式,也就是常说的硬盘热插拔方式,建议大家用热插拔的方式更换硬盘,我曾经在兄弟单位看到两个这样案例,当时管理员为了保险,关机换硬盘,但启动的时候就发生了找不到RAID的杯具了,由于数据不重要,也没有仔细追查原因了,而我为了偷懒前前后后在线更换了不下10块硬盘无一出问题,莫非这就是人品 ^_^。
有“备”无患,DELL上门更换硬盘的时候都会先让你在服务单右上角“是否备份数据”一栏签名确认,如果换其他部件例如液晶面板、网卡等是不会让你签这栏,估计DELL也不是对“RAID保护”有100%信心,所以建议大家能备的就备吧。
建议大家保留服务器的引导光盘,通常来说某些操作系统认不出RAID卡,自然装不成操作系统,引导光盘可以帮忙Load进合适的驱动,解决不少问题。05年的时候搞到一台IBM X255服务器,打算装个Windows Server 2003,但是竟然认不出RAID卡,好不容易从一位朋友处接得一张3.5寸软盘Load进驱动才成功把系统装起来,别说现在,即使在05年的时候要找一张软盘太难了,找一张能用的软盘难上加难。通常来说引导光盘其实是另一个操作,类似Windows
PE,IBM的引导光盘是基于Linux,而DELL的引导光盘是基于Windows Vista的。
该服务器一共6个扩展槽,有两个是半高槽:
仔细观开可以发现其实后端扩展是一块独立的电路板,通过一个插座连接,借用pconline的一张图更好说明这点:
pconline拍的照片就是好看啊 ^_^
BMC(BaseBoard Management Controller)
这个模块比较特别,我一直找不到这块芯片,它也是一个嵌入式的操作系统,它将对外的IP挂接在第一块网卡上,BMC负责收集服务器内各个探头(Sensor)的数据,并具有一定的管理电源管理能力,相对于DRAC和iLO而言,BMC显得更加简单,它使用的IPMI 2.0协议,DELL有一款管理软件叫 IT Assistant 可以通过IPMI协议从服务器的BMC获得各个探头的数据,从而通过网络监控一堆服务器,这个想法很好,但是,正式使用的时候发现这个软件有很多不如人意的地方。
通过BMC,我们也可以实现远程的开机和关机,Linux的RHCS集群软件可以利用该技术实现集群节点的隔离(Fencing),所谓隔离,简单来说就是当集群软件发现一个节点出现问题后,完好首先发送命令到该节点集群软件让其释放资源,但是可能该问题节点已经傻傻的,不对该命令响应,到达一定阀值后,完好的节点会使用IPMI协议发送一个重启命令给该问题节点,强行使其重启,大家知道,一旦重启一切归于混沌,该问题节点所占用的资源就自然释放了,整个过程就好像将这个问题节点与资源“隔离”一样。
某些操作系统或者装了相应的管理软件后就可以从BMC读取到各个探头的数据,以下是从VMware ESX 4的VCenter中的截图:
远程控制器、BMC芯片,内存的Mirror和Hot-Spare,模块化的设计还有CPU的扩展能力几乎都是借鉴小型机的技术,有些高端的PC服务器,例如:IBM 3850/3950支持内存和部分I/O板卡的热插拔,在小型机和大型机上更是屡见不鲜,不过前提是操作系统得支持-_-
前段时间富士通的大忽悠来推销小型机,吹他们的SPARC芯片借鉴了大型机的技术,买一台小型机相当于买半台大型机的技术,对于大忽悠说的话不必全信,但是可以知道相互借鉴学习是进步的一种方式。
上一篇blog我就给baidu说了一句好话,竟然有一些朋友怀疑我是baidu/汉王的托-_- ,实在冤枉,特此声明,在本篇文章发表之前,我没有收到以上任何厂商的任何好处,也不是他们的托,发表后如果能收到就最好啦 ^_^