通过前面的学习我们知道,服务器其实就是一台配置更高的计算机,它的内部结构也和普通的计算机大同小异。图1所示为拆开盖子后的 Dell 服务器内部结构图。
图1Dell服务器的内部结构图
可以看到,服务器是由电源、CPU、内存、硬盘、风扇、光驱等几部分构成。本节将挑选一些重要的硬件,给大家做详细介绍。

电源

图2服务器电源示意图
电源相当于人体的心脏,需保障电力供应,如果要买服务器,应选择质量好一点的电源。
另外需要注意的是,在实际使用场景中,如果只是配置一个服务器负责核心业务,那么最好使用双电源,并且分别接不同的机房线路;如果服务器是集群中的一台(若干机器做一件事),则可以不用双电源。除此之外,运维工作中就不用再过多考虑电源的其他问题了。

CPU处理器

图3服务器CPU示意图
CPU 处理器相当于人体的大脑,负责整个服务器的运算和控制,是影响其性能效率的最核心部件。
常见的 CPU 种类有如下 2 种:
精简指令集的 CPU:设计代表有 SUN 公司的 SPARC 系列和 ARM 系列等,这类 CPU 的设计特点是指令集精简,每个指令执行的时间很短,操作很简单、效率较高。复杂指令集的 CPU:设计代表有大家熟知的 Intel 至强系列(XEON)和AMD 系列(应用不多)等,这类 CPU 的设计特点是指令数量多,指令集复杂,且执行的时间较长,但能处理的事务更多、更丰富。
Intel、AMD 作为 x86 架构的 CPU,主要用于 PC 或DELL 等常见品牌的系列服务器上。
CPU 一般通过频率(GHz)表示性能的好坏,CPU 频率就是用来表示 CPU 每秒钟的工作次数,即频率越高速度越快。比如说,笔者所用电脑的 CPU 是Intel(R)Core(TM)i7-6700HQ CPU@2.60Hz(8 CPUs),~2.6GHz。
需要注意的是,每一台服务器中不是只能包含一个 CPU,而是可以容纳多个。服务器 CPU 的颗数,我们称为路数。例如,DELL R630 双路 1U 服务器、DELL R720 双路 2U 服务器、DELL R830 四路 2U 服务器。企业级常见的物理服务器配置包括如下两种:一般企业里的服务器,CPU 个(颗)数为 2~4 颗,单个(颗)CPU 是四核。内存总量一般是 16~256GB(32GB、64GB 比较常见)。用于虚拟化的宿主机(例如,应用 VMware(虚拟化软件)、KVM 的主机),CPU 颗数可达 4~8 颗,内存总量一般是 48~128GB,常规企业可以同时启动 6~10 个虚拟机甚至更多,主要是根据业务需求决定虚拟机的配置大小。
在企业级系统运维中,选择 CPU 硬件配置,以及监测和优化服务器系统的 CPU 性能,是一项复杂且需要长期实践和反复观察的工作,同时也是运维人员的常见工作之一。
图4服务器 CPU 风扇示意图
另外值得一提的是,CPU 长时间运行会发热,因此需要配置降温的设备,即CPU 风扇或散热片(如图 4 所示),其中散热片主要是用金属铜或者铝制作的,作用是将热量快速传导出去。

内存(RAM)

图5服务器内存示意图
内存是 CPU 和硬盘之间的缓冲设备(如图 5 所示),是临时存储器(用于存放数据),这就意味着,如果突然断电,那么位于内存中的数据很可能会丢失。
程序运行的时候,一般会被调度到内存中执行,服务器关闭或程序关闭之后,数据将自动从内存中释放掉。提到内存,很多企业在面试时,都会问缓冲区和缓存区的区别,作为新手,可以这样回答:
缓冲区:将数据写入内存,这个数据的内存空间在 Linux 系统里一般称为缓冲区(buffer)。例如,写入到内存缓冲区,即写缓冲。
为了提高写操作性能,数据在写入最终介质或下一层级介质之前会合并放入缓冲区中,这样会增加数据持久写的延时。因为第一次写入缓冲区后,再向下写入数据之前,还要等待后续的写入,以便凑够数据或者定时写入到永久存储介质中。缓存区:从内存中读取数据,这个存数据的内存空间在 Linux 系统里一般称为缓存区(cache)。例如,从内存缓存区读取,即读缓存。
操作系统利用缓存提高文件系统的读性能和内存的分配性能,应用程序使用缓存也是为了提高读访问效率。将经常访问的操作结果保存在缓存中可备随时使用,而非总是执行读硬盘以获取数据等开销较高的操作。
记住这样一句话,缓存无处不在,无论是电脑硬件、操作系统,还是企业网站集群及其他业务系统!

硬盘(磁盘)

图6硬盘示意图
硬盘就是永久存放数据的存储器,如今常用的硬盘都是 3.5 英寸的,且生产的单块硬盘的容量越来越大,体积却越来越小,速度也越来越快,其中常见的硬盘有300GB、600GB、1TB、3TB、4TB等规格。
注意,对于工业级(企业级)硬盘计算,以1000 为单位进行换算,即1TB=1000GB。
根据实际场景的需要,硬盘的接口有 IDE、SCSI、SAS、SATA 等几类(其中 IDE、SCSI 已退出历史舞台),硬盘的类型也分为机械硬盘和SSD(固态硬盘)两种。
从性能和价格的角度,可以对现有几类硬盘进行排序(从高到低),依次是SAS接口固态硬盘 > SATA固态硬盘 > SAS机械硬盘 > SATA机械硬盘。
图7服务器各个硬件存储容量和读取速度的比较
如图 7 所示,即从存储容量和 I/O 读取速度的角度,对服务器中各个硬件做了比较。可以看到,硬盘 I/O(读取)性能相比内存差很多,目前解决这个问题的普遍方法是先将大量的数据从硬盘缓存到内存,也就是说写入到缓冲区中,这也是当今互联网网站解决访问速度慢的必备方案。

Raid卡(阵列卡)

图8Raid 阵列卡
Raid 称为磁盘冗余阵列,其功能是,当企业的网站(业务)数据量很大,单块盘装不下的时候,若购买多块硬盘存放数据,就需要利用 Raid 技术将所有硬盘整合成一个大硬盘,然后才能在这个大硬盘上分区(划分隔断、虚拟硬盘)存放数据。
但是,硬盘多了势必会有损坏,可数据是不能丢的,针对这种情况,Raid 还具备一个功能,就是多块硬盘放置在一起可以配置冗余(备份),由此可以确保即使若干硬盘有损坏,数据也不会丢失。
总的来说,使用 Raid 卡(阵列卡)具有以下好处:可以将所有硬盘整合到一起(扩充容量);可以使得数据更加安全(数据冗余);可以获得更高的效率(读写性能)。
如果有 Raid 卡,则一般会将硬盘连接到 Raid 卡上,而不是直接插到主板上,Raid 卡最终将插到主板对应的插槽里。不过,在企业真正的重要服务器里,Raid 几乎是不被采用的,请读者注意这点。
有关 Raid 磁盘阵列更详细的讲解,可阅读《Linux RAID(磁盘阵列)完全攻略》一节。

远程管理卡

图9远程管理卡
远程管理卡是服务器特有的远程管理部件,在家用电脑及笔记本电脑上是不存在的。它的作用是通过网络远程(异地)开关服务器,并可以查看服务器开关的过程等信息。
举个例子,早期(2010 年以前)的服务器托管在 IDC 机房,如果出现问题,运维人员必须亲自到机房或者请机房中的人管理;但有了管理卡之后,运维人员管理服务器的效率就大大提高了。
不仅如此,远程管理卡还可以细分为服务器自带远程管理卡和独立远程管理卡。服务器自带的远程管理卡,可以关机、开机,但是看不到开关服务器的过程,因此建议为服务器配备独立的远程管理卡,成本上可能会多花人民币 100 元左右,但是好处是很明显的,当服务器出现问题时,不用打车或出差,也不用给机房人员打电话,而是可以利用管理卡快速查看服务器故障及恢复服务。

主板

图10 服务器主板示意图
主板实际上就是一块电路板,相当于人体的骨架,CPU、内存、硬盘、Raid 卡等所有硬件设备最终都要连接在主板上,才能正常工作。