1. RHEL 9.7部署全流程解析
1.1 虚拟机创建与基础配置
在VMware Workstation Pro 17中新建虚拟机时,选择"自定义(高级)"配置模式能获得更灵活的硬件设置。关键参数建议:
- 处理器:至少2核(现代服务器应用建议4核以上)
- 内存:测试环境4GB起步,生产环境根据负载调整
- 磁盘:SCSI控制器类型,40GB容量(实际分区方案后文详述)
- 网络适配器:NAT模式(适合大多数开发场景)
重要提示:创建完成后务必检查虚拟化引擎设置,确保已勾选"虚拟化Intel VT-x/EPT或AMD-V/RVI"选项,否则可能导致性能损失或兼容性问题。
安装介质选择时需要注意,RHEL 9.7与CentOS Stream 9的软件包存在差异。官方推荐使用:
bash复制rhel-9.7-x86_64-dvd.iso
如果使用CentOS Stream 9镜像,需后续通过dnf命令迁移到RHEL订阅源。
1.2 磁盘分区方案详解
原始方案中的分区表述存在混淆,标准RHEL 9分区建议如下:
| 挂载点 | 类型 | 大小 | 文件系统 | 备注 |
|---|---|---|---|---|
| /boot | 主分区 | 1GB | xfs | 引导加载程序 |
| /boot/efi | EFI系统分区 | 300MB | vfat | UEFI启动必需 |
| swap | 交换区 | 内存1.5倍 | swap | 休眠功能需要等于内存大小 |
| / | LVM | 剩余空间 | xfs | 建议使用LVM方便后期扩容 |
实际操作命令示例:
bash复制# 在安装界面的分区页面选择"自定义"
parted /dev/sda mklabel gpt
parted /dev/sda mkpart primary 1MiB 2MiB set 1 bios_grub on
parted /dev/sda mkpart ESP fat32 2MiB 302MiB set 2 boot on
parted /dev/sda mkpart primary 302MiB 1302MiB
parted /dev/sda mkpart primary 1302MiB 8534MiB
parted /dev/sda mkpart primary 8534MiB 100%
1.3 系统初始化关键步骤
首次启动后的必要配置流程:
-
网络配置:
bash复制
nmcli connection modify ens192 ipv4.method manual \ ipv4.addresses 192.168.1.100/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns 8.8.8.8 nmcli connection up ens192 -
主机名与防火墙:
bash复制hostnamectl set-hostname rhel9-server systemctl disable --now firewalld -
SELinux调整:
bash复制sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config setenforce 0
生产环境警告:禁用SELinux会降低系统安全性,建议学习基本策略管理而非直接关闭
2. 系统优化与软件管理
2.1 软件源配置实战
原始内容提到的centos-9-stream.repo不适用于RHEL 9.7,正确配置方式:
-
注册系统:
bash复制
subscription-manager register --username <RHN用户> --password <密码> subscription-manager attach --auto -
启用必要仓库:
bash复制subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms dnf config-manager --set-enabled crb -
添加EPEL源:
bash复制
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
2.2 基础软件栈安装
推荐安装的开发运维工具集:
bash复制dnf groupinstall "Development Tools"
dnf install vim-enhanced tmux git lsof net-tools \
bash-completion tuned sysstat htop
性能监控工具配置:
bash复制systemctl enable --now sysstat
sed -i 's/^HISTORY=.*/HISTORY=7/' /etc/sysconfig/sysstat
2.3 系统调优指南
使用tuned进行性能优化:
bash复制dnf install tuned
tuned-adm profile throughput-performance
内核参数调整示例(/etc/sysctl.conf):
properties复制vm.swappiness = 10
net.ipv4.tcp_fin_timeout = 30
fs.file-max = 2097152
kernel.pid_max = 4194303
3. 运维管理进阶技巧
3.1 安全加固措施
即使禁用firewalld,也应配置基本防护:
bash复制iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -P INPUT DROP
iptables-save > /etc/sysconfig/iptables
SSH安全配置(/etc/ssh/sshd_config):
properties复制PermitRootLogin no
MaxAuthTries 3
ClientAliveInterval 300
X11Forwarding no
3.2 自动化维护方案
-
配置自动更新:
bash复制dnf install dnf-automatic sed -i 's/apply_updates = no/apply_updates = yes/' /etc/dnf/automatic.conf systemctl enable --now dnf-automatic.timer -
日志轮转优化(/etc/logrotate.conf):
properties复制rotate 12 weekly missingok notifempty compress delaycompress
3.3 备份与快照策略
虚拟机快照管理建议:
- 在重大配置变更前手动创建快照
- 使用描述性名称如
pre-nginx-install - 定期清理旧快照避免磁盘膨胀
关键目录备份脚本示例:
bash复制#!/bin/bash
BACKUP_DIR="/backup/$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/etc.tar.gz /etc
tar -czf $BACKUP_DIR/var.tar.gz /var
mysqldump -u root -p --all-databases > $BACKUP_DIR/mysql.sql
4. 常见问题排错指南
4.1 网络连接故障排查
诊断流程:
bash复制# 检查物理层
ip link show
# 测试基础连通性
ping -c4 8.8.8.8
# 检查DNS解析
dig example.com
# 查看路由
ip route show
# 验证服务状态
systemctl status NetworkManager
4.2 软件安装问题解决
依赖问题处理步骤:
- 清理缓存:
bash复制dnf clean all rm -rf /var/cache/dnf - 检查仓库:
bash复制
dnf repolist - 强制重装:
bash复制
rpm -e --nodeps <问题包> dnf install <包名>
4.3 性能问题诊断
基础检查命令:
bash复制# CPU负载
top -H -p $(pgrep -d, -u root)
# 内存使用
free -h
# 磁盘IO
iostat -x 2
# 网络流量
nload -u M ens192
长期监控建议:
bash复制sar -u -r -d -n DEV 1 60 > performance.log
5. 生产环境部署建议
5.1 高可用配置
多节点部署时考虑:
- Pacemaker+Corosync集群
- DRBD块设备复制
- Keepalived实现VIP漂移
最小化高可用示例:
bash复制dnf install pacemaker pcs
systemctl enable --now pcsd
pcs cluster auth node1 node2 -u hacluster -p password
pcs cluster setup --name my_cluster node1 node2
pcs cluster start --all
5.2 容器化部署
Podman基础配置:
bash复制dnf install podman cockpit-podman
systemctl enable --now cockpit.socket
firewall-cmd --add-service=cockpit --permanent
firewall-cmd --reload
典型容器部署:
bash复制podman run -d --name nginx \
-p 80:80 \
-v /opt/nginx:/usr/share/nginx/html:Z \
docker.io/library/nginx:alpine
5.3 监控方案集成
基础监控栈部署:
bash复制dnf install prometheus-node-exporter
systemctl enable --now prometheus-node-exporter
Grafana仪表板配置示例:
bash复制podman run -d --name=grafana \
-p 3000:3000 \
-v grafana-storage:/var/lib/grafana \
docker.io/grafana/grafana
实际部署中发现,RHEL 9.7对现代硬件的支持明显提升,特别是在NVMe存储和10G+网络环境下性能表现优异。建议在物理服务器上部署时启用kernel-rt实时内核以获得更稳定的性能表现。