服务器对每个从事IT工作的人来说并不陌生,但是服务器所涉及的各种知识细节,并非大家都十分清楚,为了让大家深入了解服务器的关键知识点,笔者特意抽时间总结了这篇科普文章,旨在帮助读者全面了解服务器。今天内容就从服务器的架构和分类开始(2018.7.20更新)。
按照服务器体系架构,服务器主要分为非x86服务器和x86两类;非x86服务器包括大型机、小型机和UNIX服务器,它们是使用RISC或EPIC,并且主要采用UNIX和其它专用操作系统,RISC处理器主要包括IBM公司的Power和PowerPC处理器,SUN和富士通合作研发的SPARC处理器。EPIC处理器主要是Intel研发的安腾处理器等。
x86服务器又称CISC架构服务器,采用Intel或其它兼容x86指令集的处理器芯片和Windows操作系统的服务器。服务器按照不同分类方法主要分为如下:
- CISC:Complex Instruction Set Computing 复杂指令集计算
- RISC:Reduced Instruction Set Computing 精简指令集计算
- EPIC:Explicitly Parallel Instruction Computing 显式并行指令运算
实际上,服务器的分类没有一个统一的标准,下面从多个纬度来看服务器的分类可以加深我们对各种服务器的认识。
高度计量单位
U为机柜安装空间的高度度量单位,1U = 44.45 mm = 1.75 inch
容量计量单位
是一种容量计量单位,通常在标示内存等具有一般容量的储存媒介之储存容量时使用。一般指磁盘空间、文档大小时使用。
速率单位
指在一个数据传送系统中,单位时间内通过设备比特、字符、块等的平均量。一般在描述传输速率或带宽时使用。如果是比特/秒,就用bit/s (kbit/s, Mbit/s) ,如果是字节/秒,就用B/s (kB/s、 MB/s、 KB/s), 小写的k代表1000, 大写的K代表1024。
计算单位和峰值
每秒浮点运算次数(亦称每秒峰值速度)是每秒所执行的浮点运算次数(Floating point Operations Per Second)的简称,被用来估算电脑效能,尤其是在使用到大量浮点运算的科学计算领域中。
端口自协商
是一个以太网的过程,两个相连的设备选择通用的传输参数,如速度、双工模式和流量控制。在这个过程中,连接的设备首先共享它们的能力(10、100、1000BASE-T ),然后选择它们都支持的最高性能传输模式。在OSI模型中,对于以太网,在IEEE 802.3对其做了定义。
服务器主要软件
BIOS(Basic Input/Output System) 是服务器上电后最先运行的软件。它包括基本输入输出控制程序、上电自检程序、系统启动自举程序、系统设置信息。BIOS是服务器硬件和OS之间的抽象层,用来设置硬件,为OS运行做准备。 BIOS设置程序是储存在BIOS芯片中的。
UEFI(Unified Extensible Firmware Interface) 下一代BIOS是UEFI, 即统一的可扩展固定接口。这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上,从而使开机程序化繁为简,节省时间。
CMOS(complementary metal-oxide-semiconductor) 是电脑主机板上一块特殊的RAM芯片,是系统参数存放的地方。CMOS存储器是用来存储BIOS设定后的要保存数据的。
BMC (baseboard management controller) 对服务器进行监控和管理。
OS(Operatingsystem)和位数,主要分32bit和64bit操作系统,计算机处理器在RAM(随机存取储存器)处理信息的效率,取决于32位和64位版本。64位版本比32位的可以处理更多的内存和应用程序。
简单理解下,64位版本可以处理的物理内存在4GB以上,高达128GB,而32位版本最多可以处理4 GB的内存。因此,如果你在计算机上安装32位版本的Windows,那么安装4GB以上的RAM是没意义的。
服务器标准
ATCA(AdvancedTelecom Computing Architecture ) 国际标准,ATCA脱胎于在电信、航天、工业控制、医疗器械、智能交通、军事装备等领域应用广泛的新一代主流工业计算技术: CompactPCI标准。是为下一代融合通信及数据网络应用提供的一个高性价比的,基于模块化结构的、兼容的、并可扩展的硬件构架。
ATCA由一系列规范组成,包括定义了结构、电源、散热、互联与系统管理的核心规范PICMG3.0以及定义了点对点互联协议的5个辅助规范组成(以太和光纤传输、InfiniBand传输、星形传输、PCI-Express传输和RapidIO传输)。
OSCA (Open Service Converged Architecture)开放服务汇聚架构, 是华为基于ATCA标准自研的服务器平台
OSTA (Open Standards Telecom Architecture)是由华为技术公司生产的强大的服务处理平台。它由处理器子系统、交换网络子系统、机电子系统和设备管理子系统组成。
服务器的逻辑结构
服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。计算机的五大组成部分,最重要的部分是CPU 和内存。CPU 进行判断和计算,内存为CPU 计算提供数据。
缓存
缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。CPU缓存是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。
缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。
目前所有主流处理器大都具有一级缓存(level 1 cache,简称 L1 cache)和二级缓存(L2 cache), 少数高端处理器还集成了三级缓存(L3 cache)。
- 一级缓存可分为一级指令缓存(instruction cache)和一级数据缓存(data cache)。一级指令缓存用于暂时存储并向CPU 递送各类运算指令;一级数据缓存用于暂时存储并向CPU 递送运算所需数据,这就是一级缓存的作用。
- 二级缓存就是一级缓存的缓冲器:一级缓存制造成本很高因此它的容量有限,二级缓存的作用就是存储那些CPU处理时需要用到、一级缓存又无法存储的数据。
- 三级缓存和内存可以看作是二级缓存的缓冲器,它们的容量递增,但单位制造成本却递减。
内存(Memory)和存储(Storage)的区别
大多数人常将内存(Memory)与储存空间(Storage)两个名字混为一谈,尤其是在谈到两者的容量的时候。内存(Memory)是指计算机中所安装的随机存取内存的容量,而储存(Storage)是指计算机内硬盘的容量。
为了避免混淆,我们将计算机比喻为一个有办公桌与档案柜的办公室。档案柜代表计算机中提供储存所有所需档案及资料的硬盘,工作时将需要的档案从档案柜中取出并放到办公桌上以方便取得,办公桌就像保持资料及数据取用方便的内存。
内存频率
内存主频和CPU主频一样,习惯上被用来表示内存的速度,它代表着该内存所能达到的最高工作频率。内存主频是以MHz(兆赫)为单位来计量的。内存主频越高在一定程度上代表着内存所能达到的速度越快。内存主频决定着该内存最高能在什么样的频率正常工作。
系统启动方式
启动系统通常有三种方式:冷启动、热启动和复位启动。
- 冷启动:过程包括上电、全面自检、系统引导及初始化等工作;
- 热启动:和冷启动的区别是不需要重新上电、自检的范围很小;
- 复位启动:和冷启动的区别仅仅在于无须上电。
主板南北桥区别
一个主板上最重要的部分可以说就是主板的芯片组了,主板的芯片组一般由北桥芯片和南桥芯片组成,两者共同组成主板的芯片组。
北桥芯片主要负责实现与CPU、内存、AGP接口之间的数据传输,同时还通过特定的数据通道和南桥芯片相连接。北桥芯片的封装模式最初使用BGA封装模式,到Intel的北桥芯片已经转变为FC-PGA封装模式,不过为AMD处理器设计的主板北桥芯片依然还使用传统的BGA封装模式。
南桥芯片相比北桥芯片来讲,南桥芯片主要负责和IDE设备、PCI设备、声音设备、网络设备以及其他的I/O设备的沟通,南桥芯片到目前为止还只能见到传统的BGA封装模式一种。
交换与路由
交换:完成信号由设备入口到出口的转发。只要是和符合该定义的所有设备都可被称为交换设备。
二层交换机工作在数据链路层。二层交换机就是普通的交换,把数据以帧的形式发送出去。三层交换机工作在网络层。三层交换机既可以作交换机又可以做路由器。
路由:是把信息从源穿过网络传递到目的地的行为,在路上,至少遇到一个中间节点。它们的主要区别在于桥接发生在OSI参考协议的第二层(链接层),而路由发生在第三层(网络层)。这一区别使二者在传递信息的过程中使用不同的信息,从而以不同的方式来完成其任务。
- 接入交换机:一般用于直接连接电脑。通常将网络中直接面向用户连接或访问网络的部分称为接入层。负责连接机柜内部的服务器。
- 汇聚交换机:汇聚相当于一个局部或重要的中转站,将位于接入层和核心层之间的部分称为分布层或汇聚层。完成接入层交换机流量的汇聚,并与核心层交换机连接。
- 核心交换机:相当于一个出口或总汇总。完成数据报文的高速转发,并提供对外的网络接口。
堆叠和级联
级联和堆叠是多台交换机或集线器连接在一起的两种方式。它们的主要目的是增加端口密度,主要区别:
级联是上下关系(总线型、树型或星型的级联),堆叠是平等关系(堆叠中多台交换机作为一个整体对外体现为一台逻辑设备)。
- 级联可以连接不同类型或厂家的交换机,而堆叠只有在同系列的交换机之间。
- 交换机间的级联在理论上没有级联数的限制。叠堆有最大限制,堆叠中多台交换机作为一个整体对外体现为一台逻辑设备。
堆叠组建时会选举出一台交换机做为主交换机(Master),剩下的交换机称为从交换机(Slave)。主交换机是整个堆叠系统中的控制中心。堆叠中每一台交换机都同时具备成为主交换机或者从交换机的能力。
浮点数精度
- 半精度浮点数是一种计算机使用的二进制浮点数数据类型。半精度浮点数使用2字节(16位)存储。
- 单精度浮点数格式是一种计算机数据格式,在计算机存储器中占用4个字节(32 bits),利用“浮点”(浮动小数点)的方法,可以表示一个范围很大的数值。
- 双精度浮点数(Double)是计算机使用的一种数据类型。比起单精度浮点数,双精度浮点数使用 64 位(8字节)来存储一个浮点数。
时间跳变和渐变
NTP client和server的时间同步有两种情况: 时间跳变(time step)和渐变(time slew)。时间跳变是指在client和server间时间偏差(Offset)过大时(默认128ms),瞬间调整client端的系统时间。
时间渐变是指时间差较小时,通过改变client端的时钟频率,进而改变client端中"1秒"的"真实时间",保持client端时间连续性。如果client端比server端慢10s,client端的中每1秒现实时间是1.0005秒,虽然client端的时间仍然是1秒1秒增加的,通过调整每秒的实际时间,直到与server的时间相同。
FC SAN的Zone
Zone是FC SAN特有一种概念,目的用来配置同一个交换机上面不同设备之间的访问权限。同在一个zone里面的设备可以互相访问。Brocade交换机有个Default zone,出厂时候所有交换机端口都在一个default zone里面,默认是不允许互相访问的。
- Zone可以根据交换机端口ID(Domain 、Port ID)或者设备WWN来划分。
- 一个Zone里面可以部分设备是交换机端口ID,部分是WWN的混合Zone。
- Hard Zone和Soft Zone是早期交换机厂商根据对Zone实现方式做的一个分类。通过硬件来实现的叫做Hard Zone,通过软件来实现叫做soft zone;早期一般称基于端口ID的Zone为Hard zone,基于WWN的Zone为Soft Zone。现在这两个类型的Zone都是基于硬件实现。
- 最佳使用WWN来划分Zone,始终遵循Single Initiator原则 。
- 交换机通常把多个Zone纳入一个Zone Set管理,每个交换机可以保留多个Zone Set配置,一次有且只有一个Zone Set配置能够被激活。
TPC基准(Benchmark)标准规范
TPC(Transaction Processing Performance Council)是由数10家会员公司创建的非盈利组织,总部设在美国。TPC的成员主要是计算机软硬件厂家,而非计算机用户,它的功能是制定商务应用基准程序(Benchmark)的标准规范、性能和价格度量,并管理测试结果的发布。
TPC已经推出了多套Benchmarks,被称为TPC-A、TPC-B、TPC-C和TPC-D。其中A和B已经过时不再使用了。TPC-C是在线事务处理(OLTP)的基准程序,TPC-D是决策支持(Decision Support) 的基准程序。TPC即将推出TPC-E,作为大型企业(Enterprise)信息服务的基准程序。
TPC-C使用三种性能和价格度量,其中性能由TPC-C吞吐率衡量,单位是tpmC。tpm是Transactions Per Minute的简称;C指TPC中的C基准程序。它的定义是每分钟内系统处理的新订单个数。
CPU亲和性
处理器亲和性又称处理器关联。通过处理器关联可以将虚拟机或虚拟处理器映射到一个或多个物理处理器上。该技术基于对称多处理机操作系统中的Native Central Queue调度算法。队列(Queue)中的每一个任务(进程或线程)都有一个标签(Tag)来指定它们倾向的处理器。在分配处理器的阶段,每个任务就会分配到它们所倾向的处理器上。
处理器亲和性利用了这样一个事实,就是进程上一次运行后的残余信息会保留在处理器的状态中(也就是指处理器的缓存)。如果下一次仍然将该进程调度到同一个处理器上,就能避免一些不好的情况(比如缓存未命中),使得进程的运行更加高效。
调度算法对于处理器亲和性的支持各不相同。有些调度算法在它认为合适的情况下会允许把一个任务调度到不同的处理器上。比如当两个计算密集型的任务(A和B)同时对一个处理器具有亲和性时,另外一个处理器可能就被闲置了。这种情况下许多调度算法会把任务B调度到第二个处理器上,使得多处理器的利用更加充分。
处理器亲和性能够有效地解决一些高速缓存的问题,但却不能缓解负载均衡的问题。而且,在异构系统中,处理器亲和性问题会变得更加复杂。
简单网络管理协议(SNMP)
SNMPv1/v2/v3/v2c主要用于网络监控和管理。在SNMP模型中,有一或多个管理系统和多个被管理系统。每一个被管理系统上有运行一个代理(Agent)软件通过SNMP向管理系统报告信息。一个SNMP管理的网络由下列三个关键组件组成:
- 网络管理系统 (NMS): 运行应用程序监视并控制被管理的设备。也称为管理实体(managing entity),网络管理员在这儿与网络设备进行交互。NMS提供网络管理需要的大量运算和记忆资源。一个被管理的网络可能存在一个以上的NMS。
- 被管理的设备(managed device): 一个被管理的设备是一个网络节点,它包含一个存在于被管理的网络中的SNMP代理。被管理的设备通过管理信息库(MIB)收集并存储管理信息,并且让网络管理系统能够通过SNMP代理者获取这项信息。
- 代理(agent): 运行在被管理设备中的网络管理软件。代理控制本机的管理信息,以和SNMP兼容的格式发送这些信息。