1. RHEL9.7部署前的准备工作
作为红帽企业级Linux的最新稳定版本,RHEL9.7在安全性、容器支持和性能监控方面都有显著提升。在开始安装前,我们需要做好以下准备工作:
首先需要确认硬件兼容性。RHEL9.7要求最低配置为2核CPU、4GB内存和20GB存储空间,但实际生产环境建议至少4核CPU、8GB内存和50GB存储。特别要注意的是,RHEL9.7仅支持64位架构(x86_64和aarch64),不再支持32位系统。
提示:可以使用
lscpu命令在现有Linux系统上检查CPU架构,用free -h查看内存,df -h查看磁盘空间。
下载安装镜像时,建议从红帽官方客户门户获取最新的ISO文件。RHEL9.7提供多个版本:
- 完整版ISO(约10GB):包含所有软件包
- 最小化ISO(约2GB):仅含基本系统
- 启动ISO(约1GB):需要网络安装
对于新手,我推荐下载完整版ISO,避免网络安装可能遇到的问题。下载完成后务必验证SHA256校验和:
bash复制sha256sum rhel-9.7-x86_64-dvd.iso
制作启动盘有多种工具可选:
- Windows平台:Rufus(推荐)或BalenaEtcher
- macOS:BalenaEtcher或
dd命令 - Linux:直接使用
dd命令
以Linux下使用dd命令为例:
bash复制sudo dd if=rhel-9.7-x86_64-dvd.iso of=/dev/sdX bs=4M status=progress && sync
警告:务必确认目标设备(/dev/sdX)是正确的U盘路径,错误的设备路径可能导致数据丢失。
2. RHEL9.7详细安装步骤
2.1 启动安装程序
插入制作好的安装介质后重启系统,在BIOS/UEFI界面选择从U盘启动。你会看到RHEL9.7的GRUB引导菜单,直接按Enter进入图形安装界面。
安装程序首先会提示选择语言。这里需要注意:虽然可以选择中文,但建议技术用户选择英文作为安装语言,因为:
- 后续命令行环境默认为英文,避免编码问题
- 错误信息更便于搜索解决方案
- 社区支持以英文为主
2.2 磁盘分区方案
RHEL9.7提供了几种分区方案,对于新手我推荐使用"自动分区",但了解手动分区也很重要:
推荐的生产环境分区方案:
/boot:1GB(EFI系统则需要500MB)/:30-50GB(系统根目录)/home:剩余空间的50%(用户数据)/var:10-20GB(日志和可变数据)swap:物理内存的1-1.5倍(内存<8GB时)
使用LVM(逻辑卷管理)是个好习惯,它允许后期灵活调整分区大小。创建LVM的典型步骤:
- 选择"自定义分区"
- 创建标准分区作为/boot(非LVM)
- 剩余空间创建物理卷(PV)
- 创建卷组(VG)
- 在VG上创建逻辑卷(LV)对应各挂载点
2.3 软件包选择
RHEL9.7提供多个预置环境:
- 最小化安装(Minimal Install):仅基础系统
- 工作站(Workstation):桌面环境
- 服务器(Server):无GUI的服务端环境
- 定制环境(Custom)
对于学习用途,建议选择"Server with GUI"并额外添加以下软件包组:
- 开发工具(Development Tools)
- 系统管理工具(System Administration Tools)
- 容器管理(Container Management)
经验:即使不需要GUI,也建议首次安装时选择带GUI的环境,图形化工具能降低学习曲线,熟悉后可通过
systemctl set-default multi-user.target切换回命令行模式。
2.4 网络与用户配置
安装过程中配置网络可以节省后续时间。建议:
- 启用以太网连接
- 设置静态IP(如果知道网络参数)
- 设置主机名(如rhel9-server.example.com)
创建用户时,强烈建议:
- 创建一个普通用户(非root)
- 将该用户加入wheel组(获得sudo权限)
- 禁用root SSH登录(安装后修改/etc/ssh/sshd_config)
完成所有配置后开始安装,设置root密码并等待安装完成。整个过程大约需要15-30分钟,取决于硬件性能和所选软件包。
3. 初始系统优化配置
3.1 系统更新与订阅管理
安装完成后第一件事是注册系统并更新:
bash复制sudo subscription-manager register --username=<RHN用户名> --password=<密码>
sudo subscription-manager attach --auto
sudo dnf update -y
如果没有红帽订阅,可以使用开发者订阅(免费但仅限非生产环境):
bash复制sudo subscription-manager register --username=<开发者账号> --password=<密码> --auto-attach
更新完成后重启系统:
bash复制sudo reboot
3.2 安全加固基础设置
SSH安全优化:
编辑/etc/ssh/sshd_config,修改以下参数:
config复制Port 2222 # 修改默认端口
PermitRootLogin no
PasswordAuthentication no # 使用密钥认证
MaxAuthTries 3
LoginGraceTime 1m
然后重启SSH服务:
bash复制sudo systemctl restart sshd
防火墙配置:
RHEL9使用firewalld作为默认防火墙,基本命令:
bash复制sudo firewall-cmd --permanent --add-port=2222/tcp # 允许新SSH端口
sudo firewall-cmd --reload
sudo firewall-cmd --list-all # 查看当前规则
SELinux设置:
RHEL默认启用SELinux,不要禁用它,而是学习基本管理命令:
bash复制getenforce # 查看当前状态
sestatus # 详细状态
restorecon -Rv /path # 修复安全上下文
3.3 性能基础调优
调整swappiness:
对于内存充足的服务器,可以降低swap使用倾向:
bash复制echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
文件系统优化:
对于ext4文件系统,可以启用以下挂载选项(在/etc/fstab中):
config复制defaults,noatime,nodiratime,data=writeback,barrier=0
注意:barrier=0会提高性能但增加断电时数据损坏风险,仅适用于有UPS的设备。
调整文件描述符限制:
编辑/etc/security/limits.conf:
config复制* soft nofile 65535
* hard nofile 65535
4. 进阶优化与工具配置
4.1 系统监控与日志
安装常用监控工具:
bash复制sudo dnf install -y htop iotop iftop nmon sysstat
配置sysstat(系统性能历史数据):
bash复制sudo sed -i 's/^HISTORY=.*/HISTORY=30/' /etc/sysconfig/sysstat
sudo systemctl enable --now sysstat
日志管理:
RHEL9使用journald和rsyslog,优化配置:
bash复制sudo mkdir -p /var/log/journal
sudo systemctl restart systemd-journald
编辑/etc/rsyslog.conf启用按日分割日志:
config复制$template DailyPerHostLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log.%$YEAR%-%$MONTH%-%$DAY%"
*.* ?DailyPerHostLogs
4.2 网络性能优化
调整TCP参数:
创建/etc/sysctl.d/10-network.conf:
config复制net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
应用设置:
bash复制sudo sysctl --system
使用irqbalance优化中断:
bash复制sudo dnf install -y irqbalance
sudo systemctl enable --now irqbalance
4.3 存储优化
使用tuned优化存储配置:
bash复制sudo dnf install -y tuned
sudo systemctl enable --now tuned
sudo tuned-adm profile throughput-performance
对于SSD设备,启用fstrim:
bash复制sudo systemctl enable --now fstrim.timer
4.4 容器运行时优化
RHEL9默认使用podman作为容器运行时,优化建议:
bash复制sudo dnf install -y podman-docker
mkdir -p ~/.config/containers
echo 'default_capabilities = []' > ~/.config/containers/containers.conf
配置镜像加速(国内用户):
bash复制sudo sed -i 's|^# unqualified-search-registries.*|unqualified-search-registries = ["docker.io"]|' /etc/containers/registries.conf
5. 常见问题排查与维护技巧
5.1 启动问题排查
如果系统无法启动,可以:
- 在GRUB菜单按e编辑启动参数
- 在linux行末尾添加
systemd.unit=rescue.target - 按Ctrl+X启动到救援模式
常用修复命令:
bash复制journalctl -xb # 查看启动日志
dmesg | grep -i error # 检查内核错误
fsck /dev/sdXN # 检查并修复文件系统
5.2 性能瓶颈定位
使用以下命令组合快速定位问题:
bash复制top # 整体资源使用
vmstat 1 # 虚拟内存统计
iostat -xz 1 # 磁盘I/O
sar -n DEV 1 # 网络流量
pidstat 1 # 进程统计
5.3 软件包管理技巧
查找软件包:
bash复制dnf provides */命令名 # 查找包含特定文件的包
dnf search 关键字
清理缓存:
bash复制sudo dnf clean all
sudo dnf autoremove
回滚更新:
bash复制sudo dnf history
sudo dnf history undo 编号
5.4 定期维护任务
设置每周维护任务(通过crontab -e):
cron复制0 3 * * 1 /usr/bin/df -h > /var/log/disk-usage.log
0 4 * * 1 /usr/sbin/reboot
创建Bash脚本/usr/local/bin/system-check:
bash复制#!/bin/bash
echo "=== $(date) ==="
echo "Uptime: $(uptime)"
echo "Memory: $(free -h)"
echo "Disk: $(df -h /)"
echo "Updates: $(dnf check-update | wc -l) available"
然后添加可执行权限:
bash复制sudo chmod +x /usr/local/bin/system-check
