开题
题目太长,所以用缩写代替了,看着像个公式。继开发学习之后(当然并没结束),我想来一波从底层到前端的一条龙技术学习系列,我肯定是达不到那样的技术水平,就是在自学的同时,阶段性地记录下来(更多的可能是记录各种坑儿),我并不想搞成科普式的(没那能力),也不一定是技术实施文档(因为我就是从别人写的技术文档中学的,再写一遍没意思),没准能写出方案设计的味道(光学一项项技术只能是累加式的,思考怎么组合它们才更有乐趣,虽然前人都搞过了),当然还会有各式吐槽。
本期目录
1、H/W(硬件)
2、F/W(固件)
3、RAID
4、BMC
小结
最后展开说
1、H/W(硬件)
硬件是IT的基础,它包含很广泛的知识和技术。我知之甚少,只能谈些感受。以前搞服务器,装卸硬件,CPU、内存、硬盘、硬盘背板、主板、PCI卡、RAID卡、风扇、电源、各种线,每有新机型,都感觉像买了新的拼装玩具。然而插插拔拔、搬搬机器并不能算是硬件工程师,设计、配件、测试、掌握市场行情、平衡性价比,最终推出新机型的人,才算是硬件工程师。
我总是自嘲和他嘲我和同事就是送货小伙,或者上架工程师。我干过最精细的硬件工作是挑CPU针,这也是我从业经历中引以为傲的反败为胜的战役。刚入行没多久,有次加CPU,由于手生,没拿住,CPU砸在主板的CPU针上,砸弯了一片,这种人为损坏原厂是不给换的,我当时吓坏了(最后展开说)。无独有偶,没过多久,我又弄坏一台(可能两台的顺序我记反了),也是CPU针,弯了几根,这回有个原厂的工程师帮忙看了看,用大头针挑了半天,凑合能用了。不过从此我就对加CPU产生了阴影,起初有这种活我都让同事来,后来原厂居然专门出了加CPU的工具(当然应该可能不是为了我,产品设计不保险,硬件工程师出来解决了)。
大概过了两三年(砸CPU这种事很少见,估计都被我碰到了),我又砸弯两三根,我报告了经理(有事先上报,别隐瞒、别耗着,教训之谈),经理当然先是一怒,然后又让我先挑挑试试。从哪里倒下,就要从哪里把坑儿给它填了。挂了电话,我找了根大头针,拿着手机一边照亮一边从镜头放大画面,开始挑针。看得我眼花头晕,但最后把针挑直了。当经理夸我成长了,我即惭愧,又自信。后来好像还有一次同事搞砸了(总算有人帮我分担一次了),我也帮他搞好了。从此我又自诩为挑针工程师,从此我的月票夹里也一直留有一根大头针。
变成回忆录了,下一项。
2、F/W(固件)
固件可以理解为驱动,是运行在最底层的程序代码,有些也是最基本的系统,比如BIOS。以前有那么一阵,坏了硬件报修原厂时,他们都会让我先升级主板固件版本,如果升完还是没消除告警,才会派工程师上门更换硬件,这可能是有些硬件故障是由于固件有缺陷造成的,或者有时老机器换新硬件也需要更新固件。
关于固件我也就了解这么多了。
3、RAID
磁盘阵列(Redundant Arrays of Independent Drives,RAID)。
搞软件的不关心系统,搞系统的不关心硬件(只是感觉,没有数据支撑)。举个例子,一个软件工程师开发出一套应用,在测试环境都没问题,到正式环境发现前端到后端数据传输很慢,找系统工程师排查,调了系统参数后还是慢,测IO发现是写入速度慢导致的问题。一般系统工程师对于服务器硬件配置都有所了解,或者说系统集成工程师,跟工种有关。假设定位到了RAID相关的问题,就可以考虑以下几点:
RAID级别。各种级别的特性介绍网上有很多,常用的有0、1、5、10、50等,每种级别的性能也各不相同,这就要根据业务需求进行选择,在存储空间、冗余性、读写速度上进行取舍。
条带。RAID的条带化技术也是影响性能的重要因素,RAID条带包括深度和宽度,深度就是条带大小,这个也是需要根据业务选择适合的大小,宽度则取决于磁盘数量。
缓存模式。RAID卡的另一大功能就是高速缓存,可以根据业务需要选择不同的读写策略。读策略一般就是是否预读数据,或者自适应;写策略一般分为Write Through(透写)和Write Back(回写),前者是直接把数据写入磁盘,后者是先写入RAID缓存,再由缓存写入磁盘。
可能还有我不知道的可调的因素,但就上面这三点,配置最优和最差可能会有几倍的差距,对于磁盘性能的发挥还是有明显区别的,不过并没有最佳方案,都是根据业务自行配置的,而很多业务方又不懂这些,花了大价钱,性能却在这些小地方受到损耗。
随着技术发展,分布式存储的运用越来越广泛,不再需要硬件RAID配置阵列,刚才说的也就没啥价值了。。。
4、BMC
基板管理控制器(Baseboard Management Controller,BMC)。每个厂商的BMC口叫法不同,管理界面也不同,但功能大致相同。BMC的用途很多,我知道有远程查看服务器状态、告警,开关电源、重启系统,远程登陆和管理系统、BIOS、RAID,还可以挂载远端镜像,给服务器安装系统(需要远程控制卡Remote Access Controller (RAC))。通过BMC,再也不用进机房调试设备了(除非硬件坏了)。
BIOS、BMC、IPMI三者的关系我并没有弄明白,网上说BIOS通过IPMI命令与BMC通信。除了BMC的web管理界面,还可以通过SSH登陆BMC敲命令,还可以通过IPMI工具管理。说实话,这些我也是刚知道不久。另外BMC还提供SNMP信息,不必进入操作系统就能监控服务器性能。这些以后在监控篇里再细说(也可能忘了说)。
小结
不论是叫硬件工程师还是系统工程师,在IT行业冗长的技术分工链上,这一部分知识显得并不那么重要,各大服务器厂商早已把这些技术发展得差不多了,除非是像量子计算机这样革命性的新技术才会给这部分领域带来新一波的发展(我不懂装懂)。
而在行业中,这块算是IT界门槛很低的就业方向了,我就是从零学起的,搬搬机器、装卸硬件、配置RAID、安装系统、部署双机。要想深入了解,也有很多技术可以学习,还可以跟跟项目,向其它方向发展。
最后展开说
机器原厂不给保修,经理并没有扣我钱(当时挣的也少,几个月也赔不起),销售想按单CPU机器卖,也没卖出去,最后记得好像是当成我们练手的机器了。感谢各位领导和同事对那时刚入行的我的照顾。
借此想对现在那些刚入行的“送货小伙”、“上架工程师”们说:赶紧改行。。。开个玩笑,真得改行。。。刚开始干肯定手生,就算你心灵手巧,也会疏忽大意,因为你还没被重复枯燥的工作磨炼出固化思维或但手熟尔。出错在所难免,吓得你记忆深刻也是必要的,不过不用太担心,物件是死的,人事的运作是活的,不会因为弄坏机器你就完了,公司还会运转的。扩大到生活上的其他事也是如此,别被一时的挫败打得一蹶不振,只要心不死,你肯定能爬起来。
十年前,我跟你一样,十年后,你将跟我一样——随身带着根儿大头针。