• 服务器基础


    转载自:https://blog.csdn.net/qq_38265137/article/details/80349514

    服务器定义及发展史

    服务器概念:

    服务器也是一种计算机。

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    服务器的构成包括处理器、硬盘、内存,系统,总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

    服务器与客户机:

    服务器在网络中为其他客户机提供计算或应用服务。客户机可以是PC机,智能手机,ATM等终端设备,也可以是其他的服务器。甚至是火车,飞机等大型系统设备。

    服务器的特性:

    1. 高速度的CPU运算能力
    2. 长时间的可靠运行
    3. 强大的I/O外部数据吞吐能力
    4. 服务器通常具有更高的性能,效率,高可靠,高可用性,以及更好的扩展性。

    工业革命4.0:

    计算机,IT信息技术等科学技术的快速发展,推动了从上世纪40年代至今的第三次科技革命。在第三次科技革命的基础之上,信息技术,大数据与物联网相结合而形成的智能工厂,智能生产等成为工业4.0的关键。

    服务器技术的快速发展,对工业3.0和4.0产生了直接的推动作用。

    服务器的发展史:

    1. 第一台电子计算机诞生在1946年。揭开了人类科学计算与信息技术的新纪元。

    2. 1964年,IBM开发出的第一台大型机System 360,成为真正意义上的服务器。它采用创新的集成电路设计,计算性能达到每秒100万次。System 360价格非常昂贵,每台价格高达200到300万美元约合现在的2000多万美元。

      第一台服务器商业应用:

      这台服务器赏识之后全球订单蜂拥而至,创造了许多技术和商业的第一。例如:它协助美国太空总署建立阿波罗11号的数据库,完成了航天员登录月球计划。

    3. 1965年,DEC公司开发了一块PDP-8小型机,掀起了一场小型机的革命。这台小型机服务器体积变小了。更加易用,价格也更便宜了。深受用户的喜爱,也推动了服务器技术的进步,使之面向更广的应用领域发展。

    4. 90年代,Unix服务器, RISC CPU 和Unix操作系统。今天的小型机概念是指计算机技术发展到90年代,又原来的大型机衍生出来的一种,针对中小型企业低成本的Unix服务器,这类服务器通常采用RISC CPU和Unix操作系统,因此国外将其分类为Unix Server,国内俗称为小型机。

    5. 1989年,第一台X86服务器,Intel 486微处理器。

      Intel成功将当时的Intel 486 CPU推广到服务器领域。由康柏公司生产了业界第一台X86服务器。Intel这一创举致使服务器变的低廉,变的平民化,普及化。Intel在X86架构领域的持续创新,也慢慢确立了X86服务器的市场地位,并逐步走到了领先地位。今天的X86服务器已经是市场上的绝对主流。成功占据着行业的领先地位,出货量占比高代98%以上。销售量占比80%以上。

    6. 服务器核心部件CPU发展至今,一直在遵循摩尔定律进行快速的演进与创新。现在全球的处理器,绝大多数都采用了性能较强的Intel处理器。

    服务器类型

    服务器按外形分类:

    服务器按外形分类可以分为:

    1. 塔式服务器
    2. 机架服务器
    3. 刀片式服务器
    4. 高密度服务器

    服务器按CPU数量分类:

    服务器按CPU数量进行分类,可以分为:

    1. 单路服务器(一路服务器)
    2. 双路服务器(两路服务器)
    3. 四路服务器
    4. 多路服务器

    这种分类方式,也最常体现到不同厂家服务器类型的分类上。如华为的RH2288为两路服务器,RH5885为四路服务器,RH8100为八路服务器。

    服务器按指令集分类:

    有的Unix服务器不采用CPU数量分类,而是采用CPU内核数量进行分类。早期的CPU只有一个内核,后来的新技术可以将多个内核封装在一个CPU芯片中,性能得到数倍的提升。

    现在我们经常谈到的如小型机,X86服务器,小机迁移等,这是以CPU类型,也就是CPU指令集进行分类。

    按CPU指令集进行分类有:

    1. RISC精简指令集CPU

      采用RISC CPU的服务器通常运行Unix操作系统,国外称为Unix服务器,国内俗称为小型机。

    2. CISC复杂指令集CPU

      X86 CPU则采用的是CISC指令集,采用X86 CPU的服务器称为X86服务器。

    服务器按应用分类:

    我们最关心的是服务器上面运行的业务种类和负载类型,不同的业务应用和负载需要不同类型的服务器来承载。从这个角度上通常可分为:

    1. 数据库服务器
    2. 应用服务器
    3. Web服务器
    4. 接入服务器
    5. 文件服务器等

    服务器发展变化:

    随着服务器不断发展,服务器的外形也不断发生着变化,体积不断缩小,更加节能省电。从塔式服务器后来发展为更薄更小的机架式服务器。后来又退出了高度,节能,管理优化的刀片式服务器。

    服务器硬件组成构成:

    服务器的主要硬件主要包含CPU、内存、硬盘三大组件。另外还配置有主板、机箱、电源、风扇灯基础硬件。以及RAID卡、网卡等可选部件。CPU、内存、硬盘三大件占服务器成本的2/3以上。

    主流服务器厂商:

    除了IBM,Oracle等厂商的大小型机外,各厂商的X86服务器都是跟着Intel的产品开发节奏走,三大件也通用化了,这导致各厂商的服务器从原理上看大体相差不多。当然也各有差异,主要体现在产品的工业化,模块化设计,RAS特性,可扩展,可管理型差异,以及品牌服务能力等。

    服务器技术架构

    服务器技术架构的三大发展趋势:

    客户需求决定了服务器的发展方向。从服务器的技术架构来看,目前整个服务器的技术架构的发展有三个大趋势:

    1. Scale-up纵向扩展架构
    2. Scale-out横向扩展架构
    3. Hyper-converged超融合架构

    Scale-up纵向扩展架构特性:

    • 主要是提升单体服务器的计算性能。包括高可靠,高可用以及可扩展性。主要适用于高性能交易类业务。如:企业核心交易数据库;关键应用系统以及HPC高性能计算机等业务。
    • Scale-up架构被广泛应用于金融交易,电信计费,科学研究,气象分析等领域。
    • Scale-up服务器可以比作一艘庞大而战斗力超强的大型战列舰,具有强大的武器装备和作战性能,是大规模海战的核心作战系统。

    Scale-out横向扩展架构特性:

    • 简单说就是以数量取胜。Scale-out架构通常对单台服务器的性能要求不高,主要通过更多的服务器来协同完成任务。
    • Scale-out通常具有高并发性能、低成本、高密度、节能低碳、统一管理等特点。
    • 这种架构通常使用与超大规模数据中心、大数据分析、共有云、Web应用集群等业务场景。
    • Scale-out系统可以比作是一个轻型的快艇集群,通过群狼战术,实现整体的作战效能。

    Hyper-converged超融合架构:

    • 这种架构的理念是将计算、存储、网络和统一管理放在一个盒子里,可以做到开箱即用,提供一个整体的计算解决方案。这样的架构设计,可达到整体系统的一体化融合集成,性能优化,建议管理的目的。通过一体化的设计、集成与优化,消除系统瓶颈,实现更好的整体系统效能。
    • 超融合架构主要应用于高性能数据分析,数据库整合,云计算资源池平台,一体化数据中心等应用场景。
    • Hyper-converged的超融合架构可以比作一艘航空母舰,通过系统平台的整体集成与优化设计。既拥有超强的核动力驱动,又有强大的舰载机集群,远程防控,巡航导弹等综合火力打击系统,以及C4SIR综合情报,管理与指挥控制系统,形成一个超强的整体优势作战平台。

    业务应用和服务器部署:

      • 单机系统:

        早期的服务器系统都是单机应用,在一台服务器上部署了所有的应用软件。为一个或几个用户提供计算或业务服务,这种单机系统通常也被称为工作站。

      • C/S应用部署架构:

    在C/S共享系统中,通常会有一个集中共享的应用数据库,而每个员工会有自己的PC机,在每台PC机上要安装相同或不同的应用程序,这些应用程序能够操作使用或者共享应用数据库。这样能够实现业务数据的协同操作,应用共享和统一保存。

    在C/S架构中,由一个共享数据库对应多个应用客户端,构成两次的应用部署架构。这些应用程序的部署,配置和维护都比较复杂。软件升级也需要每天客户端逐一的升级,不利于应用的灵活部署,也不利于大规模的客户应用和推广。

        • B/S架构模式:

    为了解决C/S架构所面临的问题,在C/S架构的基础上,又提出了一种优化的B/S架构。也就是Browse/Server三层模式的应用系统架构。B/S架构伴随着因特网的兴起而发展起来,是对C/S架构的一种改进。

    在B/S架构中,PC机客户端只需要有一个标准的Web浏览器,不需要安装其他的应用程序。而类似于C/S架构中的数据库,应用服务器软件都被安装在后台的服务器上,使用用户通过Web浏览器连接登录到服务器即可获得相应的服务。当需要使用不同的应用服务时,客户只需要用Web浏览器连接到不同的应用服务器即可。

    B/S架构的Web客户端使用简单,免维护。而业务应用软件,数据库系统,则可以集中,统一部署,统一维护。非常适用于大规模应用系统的部署与服务。

    互联网业务是典型的B/S架构。

    • 由于互联网业务的并发点击负载高,海量大数据等特点。因此互联网业务的后台服务系统的架构模式,一直是朝着开放,分布式的架构模式发展,并不断产生新的变化与技术创新。今天如百度,腾讯数据中心的互联网架构,普遍采用大规模分布式的数据库,Hadoop大数据集群,高密Scale-out水平扩展的应用,搜索,Web集群接入的部署架构模式。

    服务器上层软件架构

    服务器的系统安装与业务部署:

    • 主流的Unix服务器操作系统有AIX Solaris和HP-un11。
    • X86服务器的操作系统通常是Linux系统和Windows操作系统。
    • 对于云计算平台通常要安装VMware,FusionSphere或KVM等虚拟化系统。虚拟化系统可以将一个物理服务器模拟成多台小的虚拟化服务器来使用,通过服务器虚拟化化能够提供更好的资源使用效率,自动部署和简化管理。

    主要服务器数据库:

    主流的数据库有,Oracle,IBM DB2数据库,开源的My SQL数据库,以及国产的人大金仓,达梦数据库等。

    主要服务器中间件:

    目前市场上以Java中间件为主,比如商用的中间件有Weblogic,Webspher,Tuxedo,东方通等。开源的中间件有,Tomcat JBoss中间件等。中间件可以为上层应用软件提供运行和开发环境。提供预制可复用的业务功能模块,API接口等,帮助用户灵活、高效地开发和基础复杂的应用系统。

    主要服务器业务应用:

    业务应用软件是面向客户的应用逻辑层软件。比如ERP,CRM,HR等应用软件。业务应用软件通常是基于数据库、中间件等基础架构平台之上,根据客户的需求进行定制开发,最终满足客户业务要求的软件系统。

    与云计算服务架构对应关系:

          • 通常来讲包括服务器,存储,网络等硬件基础设施,以及操作系统,虚拟化层。对应的是IaaS云服务层。
          • 数据库、中间件通常会对应PaaS云服务层。
          • 业务应用层软件则会面向SaaS层服务。

    CentOS、Ubuntu、Debian三个linux比较异同

    观点一:

    Linux有非常多的发行版本,从性质上划分,大体分为由商业公司维护的商业版本与由开源社区维护的免费发行版本。

    商业版本以Redhat为代表,开源社区版本则以debian为代表。这些版本各有不同的特点,在不同的应用领域发挥着不同的作用,不能一概而论。而绝大多数VPS上只提供开源社区维护的发行版本。下面就这些不同的Linux发行版进行简单的分析。

    Ubuntu

    Ubuntu近些年的粉丝越来越多,Ubuntu有着漂亮的用户界面,完善的包管理系统,强大的软件源支持,丰富的技术社区,Ubuntu还对大多数硬件有着良好的兼容性,包括最新的图形显卡等等。这一切让Ubuntu越来越向大众化方向发展。但别忘了:你所需要的只是一个简约、稳定、易用的服务器系统而已!

    Ubuntu的图形界面固然漂亮,但这也决定了它最佳的应用领域是桌面操作系统而非服务器操作系统。如何你希望在学习Linux的过程中有个沉浸式的环境,那么Ubuntu的确不错:仅仅安装在自己的电脑中而非服务器中。从这一点来讲,Ubuntu并没有在VPS安装的操作系统选择之列,相信你也不会为了那数百M的驱动与宝贵的内存买单。

    CentOS

    你会发现非常多的商业公司部署在生产环境上的服务器都是使用的CentOS系统,CentOS是从RHEL源代码编译的社区重新发布版。CentOS简约,命令行下的人性化做得比较好,稳定,有着强大的英文文档与开发社区的支持。与Redhat有着相同的渊源。虽然不单独提供商业支持,但往往可以从Redhat中找到一丝线索。相对debian来说,CentOS略显体积大一点。是一个非常成熟的Linux发行版。

    Debian

    一般来说Debian作为适合于服务器的操作系统,它比Ubuntu要稳定得多。可以说稳定得无与伦比了。debian整个系统,只要应用层面不出现逻辑缺陷,基本上固若金汤,是个常年不需要重启的系统(当然,这是夸张了点,但并没有夸大其稳定性)。debian整个系统基础核心非常小,不仅稳定,而且占用硬盘空间小,占用内存小。128M的VPS即可以流畅运行Debian,而CentOS则会略显吃力。但是由于Debian的发展路线,使它的帮助文档相对于CentOS略少,技术资料也少一些。

    由于其优秀的表现与稳定性,Debian非常受VPS用户的欢迎。

    此外还有ArchLinxu、Gentoo、Slackware等一系列的Linux和FreeBSD、Unix等系统,由于其涉及领域更加专业,很少在VPS中出现,因此不作介绍。

    对于初学者,我们建议采用CentOS或Debian,这两种系统都能在配置较低的VPS上流畅运行。但是如果VPS配置太低(OPENVZ内存在128M以下,或者XEN架构内存在192M以下),建议采用Debian;否则建议采用CentOS,以获取更多的在线帮助与支持,让自己入门更轻松。

    观点二:

    CentOS、Ubuntu、Debian三个linux都是非常优秀的系统,开源的系统,也分付费的商业版和free免费版本,下面简单比较这三种系统。

    CentOS系统

    很多网站站长一般都选择centOS系统,CentOS是从redhat源代码编译重新发布版。CentOS去除很多与服务器功能无关的应用,系统简单但非常稳定,命令行操作可以方便管理系统和应用,并且有帮助文档和社区的支持。

    Ubuntu系统

    Ubuntu有亮丽的用户界面,完善的包管理系统,强大的软件源支持,丰富的技术社区,并且Ubuntu对计算机硬件的支持好于centos和debian,兼容性强,Ubuntu应用非常多,但对于服务器系统来说,个人感觉并不需要太多的各种应用程序,需要的是稳定,操作方便,维护简单的系统。如果你需要在服务器端使用图形界面,ubuntu是一个不错的选择,你需要注意的是,图形界面占用的内存非常大,而内存越大的vps价格也越高。

    Debian系统

    Debian也非常适合做服务器操作系统,与Ubuntu比较,它没有太多的花哨,稳定压倒一切,对于服务器系统来说是一条不变的真理,debian这个linux系统,底层非常稳定,内核和内存的占用都非常小,在小内存的VPS就可以流畅运行Debian,比如128m的内存,但debian的帮助文档和技术资料比较少。对于小内存,首选debian,对于非常熟悉linux系统的vps高手,首选debian。

    在系统的选择上,属于新手,首选CentOS,并不是centos比Debian和ubuntu好,而是centos是初学者安装vps的首选,它既稳定,占用资源又少,在网络上能方便搜索到安装配置的文档,自身的帮助文档也非常强大;如果你是linux高手,高手的境界一般都选择debian,因为高手能在低配的vps上稳定运行系统;而ubuntu,系统虽然免费,但它适合有钱人玩,它占用的资源是比前面两种系统更高,而vps基本就是卖内存,内存越高,价格越贵。

    观点三:

    我们运行着一些全球最大的互联网的营运,因此我们对可靠性和稳定性非常重视,是我们的第一要务。为此,我们只使用Linux来支撑顾客的系统。但是,我们应该使用哪一个Linux的发行版?答案是,CentOS。 为什么呢?

    作为一个庞大的系统运营商,在很长的一段时间里,我们需要在多种大型系统中找到一个可靠的,可预测的系统,我们需要从世界上最强大的软件供应商和开源项目中获得强有力的支持。对于那些最常用的系统,我们需要文档,工具和全球性资源。

    正因如此,RedHat / CentOS系列发行版正是我们的选择。他们能够满足以上所有需求,而且问题相对较少、长期稳定,这使得我们能够为成千上万的运行了不同配置、服务和应用的系统提供世界级的维护。

    RedHat Enterprise Linux (RHEL)是黄金标准的企业发行版。它每五年左右更新一次,在系统的稳定性,前瞻性和安全性上有着极大的优势。每当新的主版本发行后,比如 5.x亦或最近的6.x,所有版本和代码都将保留不变,只有安全问题或是主要的bug,例如后门,端口之类的问题,会通过发布新的子版本来修复。

    CentOS是RHEL发行版对应的开源版本,通常在RedHat的发布后就会很快发行。我们使用CentOS的原因在于RHEL发行版的标准支持服务费用非常高,大约每台服务器800美元左右,对于我们很多拥有数十台甚至上百台服务器的用户来说,这是必须要控制的成本。

    RHEL/CentOS系统有两个潜在的问题。

    首先,一旦确定了主版本,,除了安全问题和严重故障会被修复以外,其他内容将不会做任何改变。这虽然对稳定性有好处,但是对许多服务不利。比如MySQL和PHP服务,它们在这五年的CentOS/RHEL主版本发布周期中会进行繁重的开发和大量的修改。例如,MySQL5.0 是当前RHEL/CentOS主版本所默认使用的版本,但是当前MySQL已经更新到5.1和5.5版本了。

    幸运的是,这个问题被Yum软件包管理器轻易地解决了。如此以来,那些主要的软件,例如当前RHEL/CentOS中实际的组件,包括内核和所有工具等仍然来自发行版, 但是那些附加的软件,例如Nginx,Apache,PHP,Java和MySQL等等来自更新的软件源例如Fedora; 或者直接从开发商获取更新的版本例如MySQL。 在我们这里,我们有自己专用的安装镜像来全自动的处理所有这些事情。

    其次,CentOS的发行会滞后于RedHat的发行,包括关键的补丁和修复。这在RHEL 6.x的发行周期中尤为显著。但是根据我们的经验,这没什么好担心的,对我们来说永远不会成为问题。

    很多人询问我们为什么不用基于Debian的系统,例如Debian或者Ubuntu服务器。如果在别无选择的情况下,我们的确会支持这个建议,但是根据我们的经验来看,这些系统并不如RHEL/CentOS来的稳定和可靠。

    我们认为,这在某种程度上是由于他们过快的发展和各个版本、组合之间较少的测试且不成熟所导致的。然而尽管他们非常流行,但是主要的服务商和项目都仍然首选RHEL/CentOS系统,因为这样他们就可以为企业顾客提供服务,(对Oracle和MySQL更是如此)。除此之外,基于Debian的系统有许多内核和稳定性问题,尤其是在我们的云计算服务中。

    对我们而言,唯一使用Debian/Ubuntu的原因是:

    “它们能够为一个系统提供必要的特殊服务时,尤其是当一些驱动程序或者一些IO 子系统需要一种新的内核的时候”。例如,ext4 文件系统或在最近的内核中日志的改变等;现在,所有这一切都包含在了RHEL/CentOS6.x中。

    当然,多数Linux开发者都使用的是Ubuntu的桌面版,而且可以理解的是,他们更倾向在开发生产时使用相同的系统,并且还能使用很多有趣的工具。但总体上来说,我们依然认为RHEL/CentOS是一个更优越的部署平台,并且已经有十多个客户成功地转向使用CentOS作为生产环境并且没有任何问题,但这仍然是艰巨的任务。

    总的来说,你将更乐于看到一个良好管理的CentOS 系统。我们有成千上万台服务器使用CentOS平台,而每年平均只有一台服务器崩溃。我们也很难想象它竟如此罕见,所以,挑一个优秀、迅捷、可靠的平台吧!

    致谢:

    1、 CentOS、Ubuntu、Debian三个linux比较异同

  • 相关阅读:
    解决ERROR C2011: 'FD_SET' : 'STRUCT' TYPE REDEFINITION问题
    github简单使用教程
    Win32 多线程的创建方法和基本使用
    day 05
    day04
    day03
    day02
    day 06
    day_05
    day 05
  • 原文地址:https://www.cnblogs.com/bianchengxia/p/14216586.html
Copyright © 2020-2023  润新知