服务器与Linux介绍
# 服务器常见硬件组成
# 1. 电源
- 作用:给主板各硬件供电使用。
- 冗余特性:服务器电源最好有冗余特性,从而保证使用中的电脑不会因为突然停电导致失去重要数据。
- 备用电源
- UPS(不间断电源):
停电的时能快速转换到"逆变"状态,但无法供电太久,需要及时保存数据。
- 发电机
# 2. CPU
- 作用:处理任务、发出指令控制硬件。
- CPU路数与CPU核数:
- CPU路数:
表示服务器中有多少个CPU。
- CPU核数:
决定服务器并行(同时)处理任务的能力。
- CPU路数:
- CPU位数不同的区别:CPU位数不同,识别内存的能力也不同,读写内存的能力也不同。
- x86_64:
一次可以并行处理64个bit,可以识别2^64次方的内存大小 理论上无限支持。
- i386_32:
一次只能并行处理32个bit,最多识别2^32次方的内存大小 = 4GB。
- x86_64:
# 3. 散热器
- 作用:给CPU散热,例如CPU风扇。
# 4. 内存
- 作用:用于临时存储数据,基于电工作。
- 优点:读写速度快。
- 缺点:有易失性,断电数据丢失。
- 内存中的缓冲与缓存:磁盘效率低,缓冲与缓存可以避免对磁盘反复读写
- 缓冲
- CPU写入数据时,先将数据写到缓冲区进行缓冲,然后再对磁盘进行写入 (写缓冲)
- 作用例如:按照容量设置,先将数据存储到内存中,作为一个缓冲,等数据大小到达了设置的容量时,再将数据存储到硬盘,减少磁盘读写。
- 但由于内存的数据易失性,配置缓冲一般需要进行权衡,或者做额外的策略。
- 缓存
- CPU读取数据时,先将磁盘数据读到缓存区中,然后CPU再从缓存区中读取数据 (读缓存)
- 作用例如:将常用的热点数据事先从硬盘读取到内存里,加快用户访问热点博文的速度,减少服务器负担。
- 缓冲
- 其他:
- 程序:磁盘中的代码数据
- 进程:运行中的程序
- 守护进程:一直运行的进程
# 5. 磁盘
作用:用于永久存储数据,基于磁工作。
- 优点:非易失性,断电数据不丢失。
- 缺点:读写速度比较低。
为什么磁盘存储效率低:
工作方式导致:
- 基于主轴的旋转带动盘片,再利用磁头进行读写。
磁盘I/O消耗:
- 大的数据需要拆分成许多存储单元来读写。
- 读写都需要时间处理许多存储单元,所以效率低。
常见磁盘接口类型:影响数据存储效率
- 机械硬盘:SATA < SCSI < SAS。
- 固态硬盘:SSD。
存储单位:
PB TB GB KB B bit。
8bit=1Byte
、1024B=1KB
、1024KB = 1MB
,以此类推。
厂商制造硬盘是根据 1000B = 1KB 制造的,实际容量会小些。
- 换算公式:
S≈0.931 * X
。 - 所以100G实际只有93GB左右。
- 换算公式:
# 6. 主板
- 作用:整合所有硬件。
# 7. 显卡(集成)
- 作用:使能够输出屏幕信息。
# 8. 声卡(集成)
- 作用:使能够输出声音信息。
# 9. 键鼠
- 作用:输入信息。
# 10.RAID卡 (磁盘阵列卡)
- 作用:能将多块硬盘进行整合,提高数据存储量,或实现各种RAID配置。
- RAID配置例如:
- RAID 0
- 采用平均存储的方式存储数据,将数据平均存储到各个磁盘。
- 增强了数据存储效率,等到了数据写入时,将数据分为多块分别写入多个磁盘中,利用上多块磁盘的效率。读取也一样。
- 但是安全性低,其中一块坏掉,则其他的磁盘的数据,也将无法读取。
- RAID 1
- 采用镜像存储的方式存储数据,将数据相同的写入到多块磁盘中
- 增强了数据安全性,将多块磁盘整合,并一半磁盘作为镜像盘,可增加容错,防止磁盘损坏、数据丢失。
- 但会会增加容量成本,它不提高写入效率,但提高读取效率,读取时会从多块磁盘中读取。
- RAID 0
# 11. 远程管理卡
- 作用:用于远程开关机、配置RAID卡等。
# 服务器硬件性能排名
- CPU (L1 L2 Cache...) > 内存 > SSD > 网卡 > 机械硬盘。
# Linux操作系统
- 操作系统是人与硬件进行沟通的桥梁。
# Linux介绍
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
它的优点是开源、免费、安全、稳定。
GNU是一个项目,项目目标是开发出一个类似于UNIX的系统。
GPL是一个通用许可协议 (规范)。
开发的东西,所有的代码信息必须是开源的(不代表免费)。
可以对GPL软件代码进行修改,但是修改后的代码也必须也是开源的。
# Linux操作系统组成部分
- 应用程序
- 解释器 - bash
- 内核(操作系统) - kernel / lib / API
- 硬件
# Linux常见发行版本
桌面系统领域。
- Ubuntu(乌班图):一般用于个人使用。
服务器系统领域。
- Radhat:收费 (服务费)。
- CentOS:免费 (已被红帽收购)。
安全要求高的领域,如金融企业、游戏等。
- Debian。
- FreeBSD。
国产Linux系统。
- 红旗Linux。
- 麒麟Linux。
# 系统启动流程
- 服务器加电后BIOS开始自检,检查硬件是否有问题 (内存 CPU 硬盘)。
- MBR引导,读取磁盘的MBR存储记录信息,引导系统启动。
- GRUB菜单,选择不同的内核/可进入单用户模式。
- 加载系统内核,可以更好的使用内核控制硬件。
- 运行systemd进程,它是系统运行的第一个服务/进程,它会以并行方式控制后续各种服务的运行,启动速度取决于启动最慢的服务。
- 加载运行级别文件。
- 读取系统初始化文件,即/usr/lib/systemd/system/sysinit.target文件,用于初始化系统主机名称和网卡信息。
- 加载开机自启动的服务,加载/etc/systemd/system目录下信息,实现服务开机自启动
- 运行tty进程(mingetty),显示开机登录的界面。
# 根目录结构
Linux中一切从根开始,Linux中一切皆是文件。
/boot:存放Linux启动时需要的系统引导文件 + 系统内核。
/bin:bin是Binaries (二进制文件)的缩写,存放着常用的程序和命令,所以用户都可以使用。
/sbin:sbin是Superuser Binaries (超级用户的二进制文件)的缩写,存放只有系统管理员能使用的系统管理程序和命令。
/dev:dev 是Device(设备)的缩写,存放着Linux的外部设备、光驱、硬盘等。
/dev/cdrom:安装的光驱文件,同等于sr0。
/etc:etc是Etcetera(等等)的缩写,存放系统或服务的所有配置文件。
/home:普通用户的主目录(家目录)。
/root:超级权限者的用户主目录。
/lib:lib是 Library(库)的缩写,存放着动态连接共享库,服务运行会调用的文件,几乎所有的程序都需要用到这些库。
/lib64:64位系统调用的库文件,上面的是32位。
/lost+found:存放磁盘文件系统损坏、断电、临时文件,数据可以用技术从这里恢复回来。
/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux会把识别的设备挂载到这个目录下。
/mnt:mnt是mount的缩写,系统提供的临时的挂载点目录,也可以自己创建挂载点不用这个目录。
/opt:opt是optional(可选)的缩写,这是Linux提供的存放额外安装软件的目录。
/proc:proc 是Processes(进程)的缩写,proc是一种虚拟文件系统,这个目录的内容不在硬盘上,而是在内存里。它是个内存的虚拟目录,存放内存中的数据,例如进程、服务信息、内核等。
/srv:该目录存放一些服务启动后需要提取的数据。
/sys:存放内核态的一些驱动或者设备等。
/tmp:tmp是temporary(临时)的缩写,用来存放一些临时文件的。
/usr:usr 是unix shared resources(共享资源)的缩写,存放安装的应用程序和文件的目录。
/usr/bin:系统用户使用的应用程序。
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:内核源代码默认的放置目录。
/usr/local:存放安装的程序软件的目录。
/var:var 是variable(变量)的缩写,存放经常变化的文件的目录,比如日志文件等。
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件会被删掉或清除。