云原生运维学习笔记:从云计算概念到服务器硬件的入门之旅
第一阶段我们花了大量时间在Linux系统管理上,从文件权限、进程、网络、存储一路学到负载均衡和集群高可用。说实话,那段时间每天都在敲命令、配服务,虽然累,但看着一个个服务跑起来还是挺有成就感的。今天进入第二阶段,课程画风突然变了------不再是敲命令了,而是从宏观上理解云计算是什么、服务器长什么样。PPT里没有多少可以执行的命令,更多的是概念和原理。
一开始我还有点不习惯,觉得"光讲概念不实操"有点虚。但听完课之后我发现,这部分内容其实特别重要。因为后面要学的虚拟化、OpenStack、Kubernetes这些技术,都建立在这些基础概念之上。如果连IaaS、PaaS、SaaS都分不清,连BMC和BIOS的区别都不知道,后面学云平台只会越学越懵。
这篇博客就当作我的学习笔记,把云计算概述和服务器基础两块内容梳理一遍,顺便补上一些可以动手验证的命令,方便日后复习,也希望能帮到同样在学云原生运维的朋友。
一、云计算到底是个啥?
1.1 身边的IT与信息爆炸
PPT开头举了几个很有意思的例子:一辆车也没有的车辆服务公司(出租车行业)、一间房也没有的住宿服务公司(酒店行业)、没有网络的即时通信服务公司(电信语音)、没有店面的购物中心(零售行业)。这些例子说明,新技术、新模式正在改变我们的生活。云计算也是一样,它不是什么遥不可及的概念,而是已经渗透到我们日常生活中的基础设施。
想想我们每天用的云相册、云音乐、云视频、云文档,工作中用的云会议、网络直播,背后都是云计算在支撑。信息大爆炸已经加速到来,随着移动互联网、全联接时代的到来,越来越多的终端设备被投入使用,每天都会有大量的数据产生,传统的IT基础设施面临着前所未有的挑战。
从PC时代x86架构电脑(Windows/Linux),到移动互联网时代ARM架构手机(Android/iOS),再到物联网时代x86/ARM/DSP/MIPS/FPGA各种终端(物联网操作系统),终端形态在变,但背后的计算需求一直在增长。
1.2 传统IT面临的挑战
传统IT架构面临的问题,PPT总结得很到位:
- 业务上线慢:新业务上线需要采购硬件、安装系统、部署应用,周期长。
- 扩展困难:业务量上来了,加服务器不是插一块硬盘那么简单,涉及到架构调整。
- 生命周期管理复杂:硬件有寿命,软件要升级,版本一多管理就乱。
- 可靠性不强:单台服务器挂了业务就中断,没有冗余。
- I/O瓶颈导致延迟:存储和网络I/O跟不上CPU的处理速度。
- TCO居高不下:总体拥有成本高,包括采购、运维、电力、机房等。
这些问题怎么解决?答案就是IT基础架构整合、资源整合以及综合利用、业务协同和持续优化。说白了,就是走向云化。
从传统企业IT架构(每个应用独立服务器和OS),到虚拟化架构(OS之上加虚拟化层),再到企业云化IT架构(Cloud OS),这是一条清晰的发展路径。以云计算为基础的"第三平台"已经成为IT产业主流:第一平台大型机(始于1964年,用户百万级,应用千级),第二平台局域网/因特网/服务器(始于1981年,用户亿级,应用万级),第三平台云/大数据/移动互联/物联网(始于2012年,用户十亿级,应用百万级)。
1.3 云计算的定义
美国国家标准与技术研究院(NIST)对云计算的定义是:云计算是一种模型,它可以实现随时随地、便捷地、随需应变地从可配置计算资源共享池中获取所需的资源(例如网络、服务器、存储、应用及服务),资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度。
维基百科的定义更简洁:云计算是一种通过Internet,以服务的方式提供动态可伸缩的虚拟化资源的计算模式。
两个定义都强调了几个关键词:资源池 、按需获取 、快速供应和释放 、服务方式。我觉得理解云计算,抓住"资源池化"和"服务化"这两个核心就够了。
1.4 虚拟化:云计算的基石
要理解云计算,就绕不开虚拟化。虚拟化的含义很广泛,将任何一种形式的资源抽象成另一种形式的技术都是虚拟化,是资源的一种逻辑表示。
传统IT架构下,IT资源独立,操作系统必须与硬件紧耦合。每台服务器上装一个操作系统,跑一个应用,资源利用率很低。虚拟化之后,资源被抽象成共享资源池,上层操作系统与硬件解耦,操作系统从资源池中分配资源。一台物理服务器上可以跑多个虚拟机,每个虚拟机有自己的操作系统和应用,互不干扰。
虚拟化技术发展史也挺有意思的:
- 1964年,IBM开始尝试在大型机上实现虚拟化
- 1972年,IBM推出运行在大型机上的虚拟机
- 1999年,VMware推出了x86架构的虚拟化产品
- 2002年,Xen正式被开源
- 2006年,Qumranet宣布KVM诞生
- 2007年,惠普发布了针对HP-UX的Integrity虚拟机
- 2008年,微软在Windows Server 2008 R2中加入了Hyper-V
- 2008年,Linux容器LXC推出
- 2010年,红帽6.0版本中默认仅提供KVM虚拟化机制
- 2011年,IBM、红帽、英特尔成立开放虚拟化联盟,加速KVM
- 2013年,Docker推出
- 2014年,Rocket推出
从大型机虚拟化到x86虚拟化,再到容器化,虚拟化技术一直在演进。现在说的云原生,其实也是在虚拟化基础上更进一步,把应用和运行环境一起打包,实现更轻量、更敏捷的部署。
1.5 云计算的发展阶段
PPT把云计算的发展分为三个阶段:
- 云计算1.0:计算虚拟化,代表技术有Hyper-V、XEN、KVM、VMware ESX。核心是虚拟化,目标是更好的资源利用率。
- 云计算2.0:软件定义与整合,代表技术有OpenStack、VMware、AWS。核心是基础设施云化,目标是资源服务标准化、自动化。
- 云计算3.0:云原生与重构业务,代表技术有Docker、CoreOS、Cloud Foundry。核心是应用云化,目标是敏捷应用开发与生命周期管理。
我们现在正处在从云计算2.0向3.0过渡的阶段,这也是为什么课程后面会重点讲容器和Kubernetes。
1.6 云计算的服务模式
云计算的服务模式分三层,从下到上分别是IaaS、PaaS、SaaS:
- IaaS(基础设施即服务) :云服务商提供虚拟化、计算资源、存储资源、网络资源,用户自营操作系统及以上。相当于云服务商给你提供了一台"虚拟服务器",操作系统和应用你自己装。代表产品有华为云ECS、AWS EC2、阿里云ECS。
- PaaS(平台即服务) :云服务商提供运行环境、中间件、操作系统、虚拟化、计算资源、存储资源、网络资源,用户自营应用程序、数据。相当于云服务商给你提供了一个"应用运行平台",你只需要关注代码和数据。代表产品有华为云CCE、Google App Engine、Heroku。
- SaaS(软件即服务) :云服务商提供一切,用户直接使用软件。相当于云服务商给你提供了一个"现成的软件",你打开浏览器就能用。代表产品有Office 365、Salesforce、钉钉。
用一个比喻来理解:IaaS是给你一块地,你自己盖房子;PaaS是给你一个毛坯房,你自己装修;SaaS是给你一个精装房,拎包入住。
1.7 云计算的部署模式
云计算的部署模式分三种:
- 私有云(Private Cloud) :云计算的基础设施由单一的组织拥有,并且仅仅为该组织运营。适合对数据安全要求高、预算充足的大型企业。
- 公有云(Public Cloud) :云服务运营商拥有云基础设施,并且为公众或者企业用户提供云服务。适合中小企业、初创公司,按需付费,成本低。
- 混合云(Hybrid Cloud) :云计算基础设施由两种或者多种云组成,对外仍然表现为一个整体。适合既想保证核心数据安全,又想利用公有云弹性扩展的企业。
1.8 主流云计算厂家
PPT里列了几家主流云计算厂家及其代表技术:
| 厂家 | 代表技术 |
|---|---|
| 华为 | 华为云:ECS(弹性计算服务)、OBS(对象存储服务)、EVS(弹性卷服务)、CCE(云容器引擎) |
| Amazon | AWS:EC2(弹性计算云)、S3(简单存储服务)、RDS(关系型数据库服务) |
| Microsoft | Azure:虚拟机、Azure Blob存储、Azure SQL数据库 |
| Google Cloud:Compute Engine、Cloud Storage | |
| IBM | IBM Cloud:Virtual Servers、Object Storage |
| Alibaba | 阿里云:ECS(弹性计算服务)、OSS(对象存储服务) |
| VMware | VMware Cloud Foundation:vSphere、NSX、vSAN、Workstation |
华为云这几年发展很快,PPT里提到"华为云一切皆服务",包括技术即服务、经验即服务、基础设施即服务。华为云Stack是本地部署的混合云解决方案,构建用户视角一朵云。华为FusionCompute虚拟化服务全球,已经服务于150+国家和地区,12000+客户,累计发放500万+虚拟机。
二、服务器基础
2.1 什么是服务器?
服务器是计算机的一种,它比普通计算机运行速度更快、负载更高且价格更高。服务器是为用户提供服务的计算机,通常分为文件服务器、数据库服务器和应用程序服务器。
服务器的特点可以用五个词概括:可用性、可靠性、可扩展性、易用性、可管理性。和普通PC相比,服务器更强调7×24小时不间断运行、硬件冗余、远程管理这些企业级特性。
服务器的发展历程:大型/小型机 → 微型计算机 → x86服务器 → 云计算时代。计算产业也在进化:计算1.0专用计算(大型机、小型机时代)→ 计算2.0通用计算(数据中心、x86架构)→ 计算3.0智能计算(全栈全场景)。
服务器按硬件形态分类,主要有塔式服务器、机架服务器、刀片服务器。塔式服务器像普通台式机机箱,适合小规模应用;机架服务器是标准19英寸机架宽度,适合数据中心密集部署;刀片服务器是把多个计算节点插在一个机箱里,共享电源和散热,密度最高。
2.2 服务器硬件组成
以华为TaiShan 200服务器为例,硬件结构包括:机箱、主板、内存、CPU、散热器、电源、风扇、硬盘、导风罩。下面重点说说几个核心部件。
CPU(中央处理器):
CPU是一台计算机的运算核心和控制核心,由逻辑运算单元、控制单元和存储单元构成。CPU内部有寄存器、运算器、控制器。我们常说的几个参数:
- 主频:也叫时钟频率,单位是MHz或GHz,用来表示CPU的运算、处理数据的速度。
- 外频:CPU的基准频率,单位是MHz。CPU的外频决定着整块主板的运行速度。
- 总线频率:直接影响CPU与内存数据交换的速度。
- 倍频系数:CPU主频与外频之间的相对比例关系。
在Linux下查看CPU信息,可以用lscpu命令:
bash
[root@server ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 2
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 94
Model name: Intel(R) Core(TM) i5-6300HQ CPU @ 2.30GHz
Stepping: 3
CPU MHz: 2304.001
BogoMIPS: 4608.00
这个输出里,CPU(s): 2表示有2个逻辑CPU,Model name是CPU型号,CPU MHz是主频。这些信息在排查性能问题时很有用。
内存:
内存是主存储器,是CPU能直接寻址的存储空间,用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。内存由内存芯片、电路板、金手指等部分组成。
Linux下查看内存信息,可以用free -h:
bash
[root@server ~]# free -h
total used free shared buff/cache available
Mem: 3.8G 323M 3.4G 11M 183M 3.3G
Swap: 3.9G 0B 3.9G
硬盘:
硬盘是计算机最主要的存储设备。硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据。不同的硬盘接口决定着硬盘与计算机之间的连接速度,直接影响着程序运行快慢和系统性能好坏。
常见的硬盘接口类型有SATA、SAS、NL-SAS、SSD:
| 类型 | 主流转速(RPM) | 主流容量(TB) | MTBF(h) | 特点 |
|---|---|---|---|---|
| SATA | 7,200 | 1T/2T/3T | 1,200,000 | 由ATA硬盘发展而来,SATA 3.0实现600MB/s最高数据传输率,年故障率约2% |
| SAS | 15,000/10,000 | 0.6T/0.9T | 1,600,000 | 专为满足高性能企业需求而设计,兼容SATA硬盘,传输率3.0Gb/s到6.0Gb/s,年故障率小于2% |
| NL-SAS | 7,200 | 2T/3T/4T | 1,200,000 | 带有SAS接口的"企业级SATA驱动器",适用于分级存储,年故障率约2% |
| SSD | NA | 0.6T/0.8T/1.2T/1.6T | 2,000,000 | 固态硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成,接口规范和功能与普通硬盘完全相同 |
Linux下查看硬盘信息,可以用lsblk:
bash
[root@server ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 1024M 0 rom
RAID卡:
RAID卡又名磁盘阵列卡,简称阵列卡。它的作用是将若干硬盘驱动器按照一定要求组成一个整体,由阵列控制器管理的系统,可以提高磁盘子系统的性能及可靠性。
RAID(独立硬盘冗余阵列)利用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵列组,目的为提升性能或数据冗余,或是两者同时提升。硬件RAID有两种方式:内置插卡式(RAID卡插在服务器主板的PCIe插槽上)和外置独立式磁盘阵列(通过SCSI卡连接外部RAID控制器)。
软件RAID是在操作系统中通过安装软件的方式来实现RAID相应功能。特点是:不需要昂贵的RAID控制卡,提供了廉价的解决办法;但RAID功能完全依靠CPU执行,主机的CPU占用严重,如RAID 5的大量异或(XOR)操作。
Linux下查看RAID信息,可以用cat /proc/mdstat:
bash
[root@server ~]# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md0 : active raid0 sdc[1] sdb[0]
41908224 blocks super 1.2 512k chunks
unused devices: <none>
网卡:
网卡,又称为网络适配器或网络接口卡NIC(Network Interface Card),是构成计算机网络系统中最基本的、最重要的、必不可少的连接设备,计算机主要通过网卡接入网络。网卡主要功能包括:代表固定的网络地址、数据的发送与接收、数据的封装与解封、链路管理、编码与译码。
华为服务器网卡有几种形态:
- 板载网卡:集成在服务器主板的PCH芯片中,不可更换,对外提供2个GE电口+2个10G光口/电口,不占用PCIe插槽。
- PCIe标卡:华为有自研及外购的PCIe标卡网卡,可以配置在标准PCIe插槽中。
- 灵活IO插卡:华为自研网卡,非标准PCIe卡形态,只能用于华为机架服务器。
- Mezz卡:刀片服务器计算节点专用Mezz卡,只能用于华为E9000刀片服务器。
Linux下查看网卡信息,可以用ip link show:
bash
[root@server ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:26:13:b5 brd ff:ff:ff:ff:ff:ff
电源和风扇:
电源和风扇是服务器稳定运行的重要保障。它们支持服务器的电力负载,支持冗余防止电源故障,具备故障预警和预防性维护功能,保证服务器持续运行。电源子系统包括智能电源、风扇、冗余电源和风扇。
2.3 服务器关键技术:IPMI/BMC
IPMI(Intelligent Platform Management Interface,智能平台管理接口)是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法。IPMI信息通过基板管理控制器(BMC)进行交流,使用低级硬件智能管理而不使用操作系统进行管理。
BMC(Baseboard Management Controller,主板管理控制单元)是IPMI规范的核心,负责各路传感器的信号采集、处理、储存,以及各种器件运行状态的监控。BMC向机框管理板提供被管理对象的硬件状态及告警等信息,从而实现机框管理模块对被管理对象的设备管理功能。
华为服务器智能管理系统iBMC(Huawei Intelligent Baseboard Management Controller)是具有完全自主知识产权、面向服务器全生命周期的服务器嵌入式管理系统。它的功能包括:
- 状态监控:可检测CPU、内存、硬盘、SSD、PCIe、RAID、风扇、电源、温度、电压等。
- 故障诊断:CPU CATERR事件、电源故障、超温告警、风扇亚健康、存储介质故障。
- 诊断辅助:开关机录像、串口录音、临终截屏、临终录像。
- 运行记录:黑匣子Kbox、解析工具HWKbox。
在实际运维中,iBMC可以通过Web界面或IPMI工具远程管理服务器,比如远程开关机、查看硬件状态、收集日志等。这个功能在没有操作系统或者系统崩溃时特别有用。
2.4 服务器关键技术:BIOS
BIOS(Basic Input/Output System,基本输入输出系统)实际上是固化到计算机中的一组程序,为计算机系统提供最底层的、最直接的硬件控制服务,解决硬件的实时需求。
BIOS的功能包括:检测和初始化硬件、操作系统引导、高级电源管理。在服务器上,BIOS还负责配置RAID卡、设置启动顺序、开启虚拟化支持等。系统启动时按F2或Del键可以进入BIOS设置界面,不过不同厂商的服务器进入方式可能不同。
三、课后总结
今天的内容偏概念,但非常重要。如果说第一阶段学的是"怎么操作Linux",那第二阶段学的就是"云计算的底层逻辑和硬件基础"。没有这些概念打底,后面学虚拟化、OpenStack、Kubernetes会非常吃力。
云计算部分,我最大的收获是理解了云计算的本质:资源池化+服务化。虚拟化是云计算的技术基石,把物理资源抽象成资源池,然后通过IaaS、PaaS、SaaS三种模式对外提供服务。部署模式上,私有云、公有云、混合云各有适用场景,企业要根据自身需求选择。华为云、AWS、Azure这些厂商的产品体系虽然不同,但核心逻辑是一样的。
服务器部分,我重新认识了服务器的硬件组成。以前只知道CPU、内存、硬盘,现在知道了RAID卡、BMC、BIOS这些关键部件的作用。特别是iBMC,它相当于服务器的"带外管理"入口,即使操作系统挂了也能远程操作,这个在运维中非常实用。
踩过的坑:PPT里没有太多可以实操的命令,我自己补了一些查看CPU、内存、硬盘、RAID、网卡信息的命令,算是把概念和实操结合起来。另外,IPMI和BMC的关系一开始有点绕,后来想明白了:IPMI是协议标准,BMC是实现这个标准的硬件控制器,iBMC是华为对BMC的实现。
接下来第二阶段应该会进入虚拟化和云平台的实操,我已经有点迫不及待了。从命令行运维到云平台运维,这是一个很大的跨越,但也是云原生运维的必经之路。
希望这篇笔记能帮到同样在学云原生运维的朋友。云计算和服务器基础虽然概念多,但理解了之后,后面的学习会顺畅很多。大家一起加油!