后端开发工程师不懂这些就危险了

张二狗被叫到了总经理办公室,开始了如下对话。

王总:二狗啊,你工作很努力啊

张二狗:嗯

王总:你的业务能力是有目共睹的啊!

张二狗:嗯

王总:你的技术也很扎实啊!

张二狗:嗯

王总:但是... ...

巴拉巴拉一大堆,王二狗就这么没炒了,在美妙的赞扬中被炒了!被炒的原因竟然是作为一个后台开发大拿不懂硬件。

好吧,做软件开发为什么要懂硬件呢,不懂不行吗?其实作为后端工程师,不至于面面俱到,但我们最起码应该懂一些硬件基本内容。下面我们慢慢道来。

服务端硬件总览

我们所说的后端开发其实就是服务端,以某宝为例可能就是其后台服务。这些后台服务通常运行在一个数据中心,有很多服务器构成。除了服务器之外还有很多配套的设备。等一下,什么是服务器?

好吧,让我们慢慢道来。如果我们去数据中心,一进去的感觉应该是这个样子的。

后台开发工程师不懂这些就危险了

图1 数据中心

这一排排的就是机柜,我们平时所谓的服务器、交换机和存储等设备都放在这里面。这张图并不能看到实际的设备。我们先给一张总图,具体如图2所示,这张图包含我们平时使用的最近的设备。如图所示包括服务器、光纤交换机、磁盘阵列和磁带库等。其中上层的设备是服务器,中层的设备是光纤交换机,下层的设备是存储设备,包含磁盘阵列和磁带库。

后台开发工程师不懂这些就危险了

图2 物理连接图

如果我们简化一下,做成逻辑图如图3所示。可以看到服务器通过HBA卡和光纤交换机相连,而存储设备也通过HBA卡和光纤交换机相连;服务器之间通过以太网交换机互联。

后台开发工程师不懂这些就危险了

图3 物理连接图

上述只是一个简单的拓扑结构,实际数据中心要复杂的多,除了包含上述设备外,还包括核心路由器、核心交换机、防火墙和负载均衡器等等设备。这还不包括上述机柜、无烟灭火器和UPS等辅助设备。本文先介绍主要内容,后续再介绍其它设备。

服务器

服务器是一种计算设备,其构成包括处理器、硬盘、内存、系统总线等,和通用的PC机其实没什么本质区别,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

下面这个是塔式服务器,从起外观来看跟我们家里的台式机并没有太大的区别。

后台开发工程师不懂这些就危险了

图4 塔式服务器正面

我们在看一它的内部,可以看到里面有CPU和内存条等组件,只不过更复杂一些,本图中就包含2颗CPU和22条内存。由于塔式服务器占用空间较大,因此在数据中心用的比较少了。

后台开发工程师不懂这些就危险了

图5 塔式服务器内部

下图是机架服务器,它可以想抽屉一样插入机柜中,计算密度比塔式服务器高很多。这个是目前比较主流的服务器。

后台开发工程师不懂这些就危险了

图6 机架服务器内部

还有一种密度更高的服务器,成为刀片服务器。这种服务器组成一组,放在一个框里面,可以整框使用。如图所示为整框的刀片服务器,其中竖条是计算单元,可以单独拿出来。

后台开发工程师不懂这些就危险了

图7 刀片服务器正面

交换机

交换机分是一种连接设备,用于实现多个设备之间的互联互通。最为常见的是以太网交换机,另外还有专门用于存储领域的光纤交换机。当前现在也有基于光纤的以太网交换机(例如万兆交换机),但存储光纤交换机和万兆光纤交换机还是不同的,主要差异是通信协议。

如图8所示的是用于存储的光纤交换机。这个是24口的交换机,还有48口等其他规格的。

后台开发工程师不懂这些就危险了

图8 光纤交换机

下面这个是以太网交换机,就是我们平时所说的交换机。

后台开发工程师不懂这些就危险了

图9 以太网交换机

交换机介绍完了,那怎么连接起来呢?网线就不用介绍,下面我们看看光纤线。

后台开发工程师不懂这些就危险了

图10 光纤线

其实除了上面介绍的以太网交换机和光纤交换机外,还有其它类型的交换机,比如PCI-e交换机和IB交换机等,本文暂时不做介绍。

适配卡

进行设备之间连接,除了上述交换机和线之外,还需要另外一样设备,成为适配卡。网卡其实也可以理解为适配卡的一种,除此之外还有FC-HBA和SAS-HBA,也就是光纤卡和SAS卡。

如图是光纤卡的实物图,这里是4口的光纤卡,也就是可以同时插4条线。最早的光纤卡只有一个接口,后来出现了2口和4口的光纤卡。

后台开发工程师不懂这些就危险了

图11 光纤卡

如图12是SAS卡的实物图,SAS连接通常是磁盘阵列控制器与JBOD之间的连接方式。

后台开发工程师不懂这些就危险了

图12 SAS卡

磁盘阵列存储

磁盘阵列是存储装置,目前常见的存储装置有SAN、NAS和统一存储,统一存储是在一个设备中同时具备SAN和NAS的功能。从外观上来看,三者并没有本质的区别,样子跟机架式服务器很像。如图13是一个磁盘阵列的正面图。NAS是网络连接存储,它可以通过以太网接入用户的网络空间,因此这里不做过多介绍。

这里重点介绍一下SAN,也就是存储区域网络。这种存储设备需要专门的存储网络,也就是上文介绍的光纤网络(当然目前有基于iSCSI的SAN,也就是IP-SAN,可以通过以太网接入)。SAN设备通常除了存储功能外,还有很多附加功能,从而实现对数据的可靠保护。通过存储网络建立服务器与存储设备的连接之后,在服务器上就可以看到存储设备划分的空间,其形式就是一个磁盘,跟本地磁盘没有任何差异。

后台开发工程师不懂这些就危险了

图13 磁盘阵列SAN正面

如图14是磁盘阵列的后端,可以看出该设备包含的接口有FC接口、千兆口、万兆口和SAS口。其中前三者用于和服务器相连,也就是组成FC-SAN或者IP-SAN,而后者则与JBOD相连。

后台开发工程师不懂这些就危险了

图14 磁盘阵列SAN背面

我们从图13可以看出该设备有一些磁盘,但数量并不多。因此可能存在扩展空间的情况,这个时候就用到了JBOD。JBOD(Just a Bunch Of Disks,磁盘簇)是在一个底板上安装的带有多个磁盘驱动器的存储设备。通常又称为Span。 和RAID阵列不同,JBOD没有前端逻辑来管理磁盘上的数据分布,相反,每个磁盘进行单独寻址,作为分开的存储资源。JBOD的磁盘资源会映射给磁盘阵列的控制器,从而实现统一的管理。

后台开发工程师不懂这些就危险了

图15 磁盘阵列扩展

当然,除了上面介绍的存储,还可以通过普通服务器搭建分布式存储,这个不属于本文介绍范围。需要介绍的设备太多了,今天先到这,后面再进一步介绍。

猜你喜欢

转载自blog.csdn.net/shuningzhang/article/details/89465383