Centos系统详解架构详解

发布于:2025-05-09 ⋅ 阅读:(16) ⋅ 点赞:(0)

CentOS 全面详解

一、CentOS 概述

CentOS(Community Enterprise Operating System) 是基于 Red Hat Enterprise Linux(RHEL) 源代码构建的免费开源操作系统,专注于稳定性、安全性和长期支持,广泛应用于服务器、云计算和企业级基础设施。其核心目标是提供与 RHEL 二进制兼容的系统,便于企业在不支付授权费用的情况下使用 RHEL 的成熟生态。

二、历史与版本演进

1. 起源

◦ 由 CentOS 项目 维护,始于 2004 年,最初作为 RHEL 的免费替代品。

◦ 2014 年红帽收购 CentOS 项目,2020 年宣布 CentOS 8 于 2021 年底停止维护,并主推滚动更新的 CentOS Stream 作为新社区版。

2. 主要版本

◦ CentOS 7(2014-2024):长期支持(LTS)版本,采用 Systemd,内核 3.10,广泛用于企业服务器。

◦ CentOS 8(2019-2021):内核 4.18,引入 DNF 作为默认包管理器,后因红帽战略调整提前终止支持。

◦ CentOS Stream:红帽主导的滚动更新版,作为 RHEL 的上游测试版,版本号与 RHEL 同步(如 Stream 9 对应 RHEL 9)。

3. 替代发行版

◦ 因 CentOS 8 停服,社区衍生出 Rocky Linux、AlmaLinux(均 100% 兼容 RHEL),以及 Oracle Linux(含额外驱动和云优化)。

三、核心特点

1. 稳定性与企业级支持

◦ 基于 RHEL 成熟代码,经过严格测试,适合长时间运行的关键业务。

◦ LTS 版本提供 10 年安全更新(如 CentOS 7 支持至 2024 年)。

2. 开源免费

◦ 无需授权费用,可自由使用、修改和分发,符合企业成本控制需求。

3. 强大的生态系统

◦ 支持主流云计算平台(AWS、Azure、阿里云)、容器化工具(Docker、Kubernetes)和数据库(MySQL、PostgreSQL)。

◦ 包管理工具 YUM/DNF 提供丰富软件源(如 EPEL、Remi)。

4. 安全性

◦ 内置 SELinux(安全增强型 Linux)强制访问控制,firewalld 防火墙,定期发布安全补丁。

◦ 支持内核实时更新(Live Patching)和固件验证。

5. 硬件兼容性

◦ 兼容 x86_64、ARM64(如 CentOS Stream 9 支持 Apple Silicon)等架构,适配企业级硬件设备。

四、安装与部署

1. 获取镜像

◦ 官方镜像源:CentOS Stream 下载,提供 DVD 安装版和最小网络安装版。

◦ 第三方镜像:阿里云、清华大学开源软件镜像站。

2. 安装步骤(以 CentOS Stream 9 为例)

◦ 引导:通过 USB 或光盘启动,选择 Install CentOS Stream。

◦ 语言与时区:选择简体中文或 English,设置时区(如 Asia/Shanghai)。

◦ 存储配置:

◦ 自动分区:适合新手,默认使用 XFS 文件系统。

◦ 手动分区:常见分区方案:

◦ /boot:200-500MB(存放内核和引导文件)

◦ /:根分区,建议 50GB 以上

◦ swap:内存 2 倍(适用于物理服务器,云服务器可忽略)

◦ LVM:推荐使用逻辑卷管理,便于后续扩容。

◦ 网络配置:启用 IPv4,手动设置静态 IP 或 DHCP,配置 DNS 服务器。

◦ 用户设置:创建管理员用户(非 root 登录更佳),设置 root 密码。

◦ 安装类型:

◦ 最小安装:仅基础组件,适合服务器(推荐)。

◦ 带 GUI 的服务器:包含 GNOME 桌面,适合图形化管理。

3. 初始化配置

◦ 首次登录后运行 sudo yum update 升级系统包。

◦ 禁用 SELinux(测试环境可选):修改 /etc/selinux/config 为 SELINUX=permissive,重启生效。

◦ 配置国内镜像源:替换 /etc/yum.repos.d/ 下的官方源为阿里云或清华大学源,提升下载速度。

五、系统架构与核心组件

1. 包管理:YUM 与 DNF

◦ YUM(Yellowdog Updater, Modified):CentOS 7 默认工具,用于安装、更新、删除软件包。
yum install httpd       # 安装 Apache
yum update             # 更新所有包
yum remove mysql       # 删除 MySQL
◦ DNF(Dandified YUM):CentOS 8/Stream 默认工具,性能更强,支持事务管理。
dnf search nginx       # 搜索软件包
dnf upgrade            # 升级系统
dnf clean all          # 清理缓存
2. 初始化系统:Systemd

◦ 替代传统 SysVinit,支持并行启动服务,管理系统资源更高效。

◦ 常用命令:
systemctl start httpd    # 启动服务
systemctl enable httpd   # 设置开机自启
systemctl status httpd   # 查看状态
systemctl list-units     # 列出所有服务
3. 安全机制:SELinux

◦ 强制访问控制(MAC)系统,限制进程和文件的访问权限,防御恶意攻击。

◦ 模式:

◦ enforcing:强制模式(默认,严格执行策略)。

◦ permissive:宽容模式(仅日志记录违规,不阻止操作)。

◦ disabled:禁用(不推荐生产环境)。

◦ 查看状态:sestatus

◦ 临时修改:setenforce 0(切换至 permissive)

4. 文件系统结构

◦ /boot:存放内核、引导加载程序(GRUB)和启动文件。

◦ /etc:存储系统配置文件(如 network、yum.repos.d)。

◦ /var:存放动态数据(日志、邮件、网站内容)。

◦ /usr:用户程序和库文件(类似 Windows 的 Program Files)。

◦ /opt:第三方应用安装目录(如 Oracle、Tomcat)。

◦ /proc 和 /sys:虚拟文件系统,用于内核与用户空间通信。

六、网络配置与服务管理

1. 网络接口配置

◦ 静态 IP 设置(以 ens33 为例):
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes
◦ 重启网络服务:systemctl restart network(CentOS 7)或 nmcli connection reload(CentOS 8/Stream)。

2. 防火墙管理

◦ CentOS 7:默认使用 iptables,需手动配置规则。
service iptables start        # 启动防火墙
iptables -I INPUT -p tcp --dport 80 -j ACCEPT  # 允许 80 端口
◦ CentOS 8/Stream:默认使用 firewalld,支持区域(zone)管理。
systemctl enable --now firewalld  # 启用并启动
firewall-cmd --add-port=80/tcp --permanent  # 永久开放 80 端口
firewall-cmd --reload  # 重新加载配置
3. 常用网络服务

◦ HTTP/HTTPS:Apache(httpd)或 Nginx,配置文件位于 /etc/httpd/ 或 /etc/nginx/。

◦ SSH:OpenSSH 服务,默认端口 22,配置文件 /etc/ssh/sshd_config,支持密钥认证提升安全性。

◦ DNS:BIND 服务(named),或使用 systemd-resolved 管理本地 DNS。

七、系统管理与维护

1. 用户与权限管理

◦ 创建用户:useradd -m -s /bin/bash username(-m 创建家目录,-s 指定 shell)。

◦ 设置密码:passwd username。

◦ 权限控制:

◦ chmod:修改文件权限(如 chmod 755 /var/www/html)。

◦ chown:修改所有者(如 chown root:www-data /var/log/httpd)。

◦ sudo:赋予普通用户管理员权限,编辑 /etc/sudoers 配置。

2. 磁盘与存储管理

◦ 查看磁盘信息:fdisk -l 或 lsblk。

◦ 格式化分区:mkfs.xfs /dev/sdb1。

◦ 挂载分区:mount /dev/sdb1 /mnt/data,永久挂载需修改 /etc/fstab。

◦ LVM(逻辑卷管理):
pvcreate /dev/sdb     # 创建物理卷
vgcreate vg_data /dev/sdb  # 创建卷组
lvcreate -L 50G -n lv_data vg_data  # 创建逻辑卷
mkfs.xfs /dev/vg_data/lv_data
3. 日志管理

◦ 系统日志:存储于 /var/log/,常见文件:

◦ messages:系统通用日志。

◦ secure:认证相关日志(如 SSH 登录)。

◦ yum.log:包管理日志。

◦ 日志查看工具:

◦ cat、tail -f:实时追踪日志。

◦ journalctl:查询 Systemd 日志(如 journalctl -u httpd)。

4. 系统更新与升级

◦ 常规更新:yum update 或 dnf update(更新所有包,不升级内核)。

◦ 内核升级:使用 yum install kernel 或第三方工具(如 yum-plugin-system-upgrade)。

◦ 版本升级(如 CentOS 7 到 8):需谨慎,建议备份数据后使用官方工具或重新安装。

八、安全性最佳实践

1. 强化 SSH 安全

◦ 禁用 root 直接登录:修改 /etc/ssh/sshd_config 中的 PermitRootLogin no,重启服务。

◦ 使用 SSH 密钥认证:生成密钥对 ssh-keygen,将公钥存入 ~/.ssh/authorized_keys,权限设为 600。

◦ 限制登录尝试:安装 fail2ban,自动封禁频繁失败的 IP。

2. SELinux 策略优化

◦ 生产环境保持 enforcing 模式,通过 audit2allow 命令生成自定义策略修复权限问题。

◦ 示例:修复 Apache 访问自定义目录权限:
chcon -R -t httpd_sys_content_t /var/www/myapp  # 临时修改标签
semanage fcontext -a -t httpd_sys_content_t "/var/www/myapp(/.*)?"  # 永久生效
restorecon -Rv /var/www/myapp  # 应用策略
3. 定期审计与备份

◦ 审计工具:auditd 监控系统调用,aide 检测文件篡改。

◦ 备份方案:使用 rsync 同步数据到远程服务器,或 tar 打包关键目录(如 /etc、/var/lib/mysql)。

4. 关闭不必要的服务

◦ 禁用默认不使用的服务:systemctl disable --now postfix(关闭邮件服务)。

◦ 检查开放端口:netstat -tunlp 或 ss -ltnp,确保仅暴露必要端口。

九、应用场景

1. 服务器基础设施

◦ Web 服务器(LAMP/LNMP 架构)、邮件服务器(Postfix)、文件服务器(Samba/NFS)。

◦ 云服务器镜像(如 AWS EC2、阿里云 ECS)的首选系统之一。

2. 容器化与虚拟化

◦ 支持 Docker、Podman 容器引擎,Kubernetes 集群节点的主流选择。

◦ 虚拟化平台(如 KVM)的宿主操作系统。

3. 数据库服务

◦ 运行 MySQL、PostgreSQL、MongoDB 等数据库,利用 CentOS 的稳定性保障数据安全。

4. 企业级开发环境

◦ 作为开发人员的本地虚拟机(如 VMware/VirtualBox)或远程开发服务器,提供一致的编译和测试环境。

十、替代方案与选择建议
发行版 特点 适用场景 
CentOS Stream 红帽官方社区版,滚动更新,与 RHEL 同步,适合开发和测试环境。 开发、CI/CD 流水线 
Rocky Linux 由 CentOS 创始人创建,100% 兼容 RHEL,LTS 模式,社区活跃。 企业生产环境(替代 CentOS 8) 
AlmaLinux 由 CloudLinux 维护,兼容 RHEL,提供长期支持和商业服务选项。 生产环境、付费支持需求 
Oracle Linux 含 Oracle 自研驱动(如 ZFS),支持 Ksplice 热补丁,免费用于生产环境。 Oracle 数据库、云服务 
RHEL 红帽官方版本,提供商业支持和认证,适合关键业务系统。 需付费支持的企业场景 

十一、优缺点总结

• 优点:

◦ 稳定性极强,适合长期运行的关键业务。

◦ 与 RHEL 二进制兼容,生态成熟,软件支持丰富。

◦ 社区和企业级文档齐全,便于故障排查。

• 缺点:

◦ 软件版本更新较慢(LTS 特性),需手动启用测试源获取新包。

◦ 桌面环境体验不如 Ubuntu 等发行版,主要面向服务器场景。

◦ CentOS 8 停服后,需迁移至 Stream 或替代发行版。

十二、学习资源

• 官方文档:CentOS Stream 文档(内容与 RHEL 高度重合)。

• 社区论坛:CentOS 论坛、Stack Overflow(标签 centos)。

• 书籍:《Linux 命令行与shell脚本编程大全》《Red Hat Linux 系统管理实战》。

• 在线课程:Red Hat 官方培训(RHCSA/RHCE)、Udemy 上的 CentOS 系统管理课程。

十三、总结

CentOS 凭借其与 RHEL 的兼容性、稳定性和免费特性,成为企业级 Linux 系统的标杆。尽管 CentOS 8 停止维护,但通过迁移至 CentOS Stream、Rocky Linux 等替代方案,仍能延续其在服务器领域的统治力。对于需要高可靠性、长生命周期支持的场景,CentOS 及其衍生版仍是首选之一。

CentOS 系统架构深度解析

一、内核架构与演进

CentOS 的核心是 Linux 内核,其版本与 RHEL 完全同步,确保稳定性与企业级支持。

• CentOS 7:基于 Linux 3.10 内核,长期维护至 2024 年,支持 x86_64、ARM 等架构,引入 Systemd 替代传统 SysVinit。

• CentOS 8:升级至 Linux 4.18 内核,支持 Btrfs 文件系统、KVM 虚拟化增强,并默认使用 DNF 包管理器。

• CentOS Stream 9:采用 Linux 5.14 内核,支持 Apple Silicon(ARM64)、eBPF 性能监控,以及 Live Patching 内核热更新。

关键特性:

• 模块化设计:支持动态加载内核模块(如驱动、文件系统),通过 lsmod 查看已加载模块。

• 安全增强:集成 SELinux(Security-Enhanced Linux)强制访问控制,默认处于 enforcing 模式。

• 性能优化:内核参数可通过 /etc/sysctl.conf 调整,例如优化网络连接数(net.core.somaxconn)或内存回收策略(vm.swappiness)。

二、文件系统与存储管理

CentOS 支持多种文件系统,满足不同场景需求:

• XFS:默认文件系统,适合大文件和高并发场景,支持 在线扩容 和 元数据日志。

• Btrfs:现代写时复制(CoW)文件系统,支持 RAID 0/1/5/10、快照、压缩,CentOS 7 及以上默认支持。

• ZFS:需通过第三方库(如 zfs-on-linux)安装,提供 数据校验、分层存储、跨设备冗余,适合企业级存储。

存储架构:

1. 传统分区:通过 fdisk 或 parted 手动分区,适合简单场景。

2. LVM(逻辑卷管理):动态扩展存储空间,支持卷组(VG)、逻辑卷(LV)和快照。
# 创建 LVM 示例
pvcreate /dev/sdb       # 物理卷
vgcreate vg_data /dev/sdb # 卷组
lvcreate -L 50G -n lv_data vg_data # 逻辑卷
mkfs.xfs /dev/vg_data/lv_data
3. Btrfs 跨设备存储:
# 创建跨设备 Btrfs 文件系统
mkfs.btrfs -d raid1 /dev/sdb /dev/sdc
三、初始化系统与服务管理

CentOS 7 及以上采用 Systemd 替代 SysVinit,实现并行启动和高效资源管理:

• 单元类型:

◦ Service:管理服务(如 httpd.service)。

◦ Socket:基于套接字的激活(如 sshd.socket)。

◦ Target:定义启动目标(如 multi-user.target 对应命令行模式)。

• 核心命令:
systemctl start httpd         # 启动服务
systemctl enable --now firewalld # 开机自启并启动
systemctl status docker       # 查看状态
systemctl list-units --type=service # 列出所有服务
• 日志管理:

◦ journalctl:统一查看 Systemd 日志(如 journalctl -u httpd)。

◦ rsyslog:传统日志系统,配置文件 /etc/rsyslog.conf。

四、包管理与软件生态

CentOS 依赖 RPM 包格式,通过 YUM/DNF 工具管理软件:

• YUM(CentOS 7):
yum install nginx          # 安装软件
yum update                 # 更新所有包
yum history                # 查看安装历史
• DNF(CentOS 8/Stream):
dnf search python3         # 搜索包
dnf upgrade                # 升级系统
dnf copr enable @remi/php81 # 启用第三方源
• 核心仓库:

◦ BaseOS:基础系统包。

◦ AppStream:应用程序和工具(如 PHP、Python)。

◦ EPEL:Extra Packages for Enterprise Linux,提供额外软件。

五、网络架构与安全机制

1. 网络配置:

◦ CentOS 7:支持 network.service 和 NetworkManager,通过 /etc/sysconfig/network-scripts/ifcfg-* 配置静态 IP。

◦ CentOS 8/Stream:仅支持 NetworkManager,使用 nmcli 命令管理:
nmcli connection add type ethernet con-name ens33 ifname ens33 ip4 192.168.1.100/24 gw4 192.168.1.1
nmcli connection up ens33
2. 防火墙:

◦ CentOS 7:默认使用 iptables,需手动编写规则。

◦ CentOS 8/Stream:默认使用 firewalld,支持区域(zone)管理:
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
3. 安全增强:

◦ SELinux:强制访问控制,通过 sestatus 查看状态,setenforce 0 临时禁用。

◦ SSH 强化:禁用 root 登录、使用密钥认证、限制登录尝试(fail2ban)。

六、性能监控与优化

1. 实时监控工具:

◦ top/htop:查看进程和资源占用。

◦ dstat:整合 CPU、内存、I/O、网络统计。

◦ glances:交互式监控,支持远程访问。

2. 历史数据分析:

◦ sar:系统活动报告,记录 CPU、内存、I/O 等数据。

◦ netdata:实时性能监控,提供 Web 界面。

3. 内核调优:

◦ sysctl:调整内核参数(如 net.ipv4.tcp_max_tw_buckets)。

◦ perf:性能分析工具,定位热点函数。

七、系统服务与典型部署

1. Web 服务:

◦ Apache:配置文件 /etc/httpd/conf/httpd.conf,支持虚拟主机和反向代理。

◦ Nginx:配置文件 /etc/nginx/nginx.conf,适合高并发场景。

2. 数据库:

◦ MySQL/MariaDB:通过 yum install mariadb-server 安装,配置文件 /etc/my.cnf。

◦ PostgreSQL:使用 dnf module enable postgresql:14 启用模块,配置文件 /var/lib/pgsql/data/postgresql.conf。

3. 容器化:

◦ Docker:安装 docker-ce 包,支持镜像构建和容器管理。

◦ Kubernetes:通过 kubeadm 部署集群,需配置 crictl 与容器运行时交互。

八、版本差异与迁移建议
特性 CentOS 7 CentOS 8/Stream 
内核版本 3.10 4.18(8)/5.14(Stream 9) 
包管理器 YUM DNF 
网络管理 network.service + NM 仅 NM 
防火墙 iptables firewalld 
文件系统支持 XFS、Btrfs XFS、Btrfs、ZFS(需第三方) 
生命周期 2024 年终止支持 Stream 9 至 2029 年 

迁移建议:

• CentOS 7 到 Stream 9:备份数据后,使用 dnf system-upgrade 工具升级,或重新安装。

• CentOS 8 到 Rocky Linux/AlmaLinux:替换软件源并执行 dnf distro-sync。

九、系统架构总结

CentOS 的系统架构以 稳定性 和 兼容性 为核心,通过 Linux 内核、Systemd、YUM/DNF 构建企业级生态。其分层设计(用户空间、内核、硬件抽象)支持灵活扩展,而 SELinux 和 firewalld 保障了安全性。对于不同场景,可通过 LVM、Btrfs 优化存储,或使用 Docker、Kubernetes 实现容器化部署。尽管 CentOS 8 已停止维护,但 Rocky Linux 和 AlmaLinux 提供了 100% 兼容的替代方案,延续了其企业级优势。


网站公告

今日签到

点亮在社区的每一天
去签到