1. RHEL9.7部署前的系统规划
在企业级Linux部署中,RHEL9.7作为红帽最新的稳定版本,其部署前的规划阶段往往决定了后续运维的难易程度。根据我多年部署经验,这个阶段最容易被忽视但又最关键的工作是硬件兼容性验证。虽然RHEL9.7支持大多数现代硬件,但在企业环境中经常会遇到定制化硬件或特殊外设的情况。
建议在部署前使用Live镜像进行硬件检测,重点关注:
- 存储控制器驱动(特别是NVMe和硬件RAID卡)
- 网络接口(尤其是10G/40G高速网卡)
- GPU加速卡(如需用于AI/ML工作负载)
- 安全芯片(如TPM2.0模块)
重要提示:红帽官方硬件兼容列表(HCL)应作为首要参考,但实际环境中遇到过HCL认证设备仍出现驱动问题的案例,因此实测环节不可省略。
对于虚拟化环境,需要特别注意:
- KVM虚拟机的CPU特性透传配置
- 虚拟磁盘的块设备对齐
- 网络虚拟化方案的选择(传统桥接vs SR-IOV)
我曾在一个金融项目中发现,同样的RHEL9.7镜像在VMware和KVM上的I/O性能差异达到30%,最终追踪到是默认的虚拟SCSI控制器驱动参数不同导致。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 自动化部署方案设计与实施
2.1 Kickstart无人值守安装
RHEL9.7延续了Anaconda安装程序的Kickstart支持,但新增了对LUKS2加密的更好支持。以下是经过生产验证的Kickstart配置要点:
bash复制# 磁盘分区示例 - 针对NVMe SSD优化
part /boot --fstype="xfs" --size=1024 --ondisk=nvme0n1
part pv.01 --size=1 --grow --ondisk=nvme0n1
volgroup vg00 --pesize=4096 pv.01
logvol / --fstype="xfs" --name=lv_root --vgname=vg00 --size=20480
logvol swap --fstype="swap" --name=lv_swap --vgname=vg00 --size=8192
logvol /var --fstype="xfs" --name=lv_var --vgname=vg00 --size=10240 --fsoptions="inode64,logbsize=256k"
网络配置部分需要特别注意:
bash复制network --device=ens192 --bootproto=static --ip=192.168.1.100 --netmask=255.255.255.0 --gateway=192.168.1.1 --nameserver=8.8.8.8 --hostname=node01.example.com
踩坑记录:RHEL9.7默认使用NetworkManager,但某些企业仍需要传统的network-scripts,需在%post段添加
dnf install network-scripts -y
2.2 基于PXE的网络部署优化
对于大规模部署,PXE网络安装的效率瓶颈往往在TFTP协议上。我们通过以下调整将百台服务器的部署时间从6小时缩短到2小时:
- 使用dnsmasq替代传统tftp-server:
bash复制dnsmasq --enable-tftp --tftp-root=/var/lib/tftpboot --tftp-no-blocksize
- 内核参数优化(在pxelinux.cfg/default中添加):
text复制append initrd=initrd.img inst.repo=http://mirror.example.com/rhel9/ inst.ks=http://kickstart.example.com/ks.cfg ip=dhcp inst.nonibft inst.proxy=http://proxy.example.com:3128 inst.noverifyssl inst.stage2=http://mirror.example.com/rhel9/ inst.cmdline
- 调整NFS挂载参数(在服务器端的/etc/exports中):
text复制/install *(ro,async,no_wdelay,no_root_squash,insecure,no_subtree_check)
3. 系统基础优化配置
3.1 性能调优方案选择
RHEL9.7提供了更精细的tuned配置方案,除了传统的throughput-performance、latency-performance等预设方案外,新增了:
network-latency:针对高频交易系统优化virtual-guest:云环境专用配置mssql:微软SQL Server专用优化
通过以下命令可以创建自定义profile:
bash复制mkdir -p /etc/tuned/my-optimization
cat > /etc/tuned/my-optimization/tuned.conf <<EOF
[main]
summary=My Custom Optimization
include=throughput-performance
[cpu]
force_latency=5
[vm]
transparent_hugepages=never
[sysctl]
net.ipv4.tcp_fastopen=3
kernel.numa_balancing=0
EOF
3.2 安全加固实践
基于CIS Benchmark的强化建议,以下配置在金融行业得到验证:
- 审计规则增强(/etc/audit/rules.d/ hardening.rules):
text复制-a always,exit -F arch=b64 -S execve -k exec_logging
-w /etc/ssh/sshd_config -p wa -k sshd_config
-w /etc/sudoers -p wa -k sudoers_changes
- SELinux策略定制:
bash复制semanage boolean --modify --on httpd_can_network_connect
setsebool -P daemons_enable_cluster_mode 1
- 内核参数加固(/etc/sysctl.d/99-hardening.conf):
text复制kernel.kptr_restrict=2
kernel.dmesg_restrict=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
4. 存储与文件系统优化
4.1 XFS高级配置
RHEL9.7默认使用XFS作为根文件系统,针对不同工作负载需要特别优化:
数据库负载:
bash复制mkfs.xfs -f -d su=64k,sw=4 -l su=64k,version=2 /dev/mapper/vg00-lv_data
mount -o noatime,nodiratime,logbsize=256k,logbufs=8 /dev/mapper/vg00-lv_data /data
虚拟化负载:
bash复制mkfs.xfs -f -d su=128k,sw=8 -i size=512 /dev/mapper/vg00-lv_vms
mount -o noatime,inode64,allocsize=16m /dev/mapper/vg00-lv_vms /vms
4.2 Stratis存储管理
RHEL9.7改进了Stratis存储管理工具,现在支持:
- 精简配置和快照的自动化管理:
bash复制stratis pool create pool1 /dev/nvme0n1 /dev/nvme1n1
stratis fs create pool1 fs1 --size 10G
stratis fs snapshot pool1 fs1 snap1
- 监控集成:
bash复制stratis blockdev list
stratis filesystem list
stratis report
5. 网络性能调优
5.1 多队列网卡配置
现代服务器通常配备多队列网卡,正确配置可提升30%以上网络吞吐量:
- 检查当前队列数:
bash复制ethtool -l ens192
- 设置队列数为CPU核心数的一半:
bash复制ethtool -L ens192 combined 16
- 启用IRQ平衡:
bash复制systemctl enable --now irqbalance
5.2 TCP协议栈优化
针对不同应用场景的TCP优化方案:
视频流媒体:
bash复制echo "net.ipv4.tcp_window_scaling=1" >> /etc/sysctl.d/99-tcp.conf
echo "net.ipv4.tcp_timestamps=1" >> /etc/sysctl.d/99-tcp.conf
echo "net.core.rmem_max=16777216" >> /etc/sysctl.d/99-tcp.conf
数据库集群:
bash复制echo "net.ipv4.tcp_sack=0" >> /etc/sysctl.d/99-tcp.conf
echo "net.ipv4.tcp_dsack=0" >> /etc/sysctl.d/99-tcp.conf
echo "net.ipv4.tcp_fack=0" >> /etc/sysctl.d/99-tcp.conf
6. 容器运行时优化
RHEL9.7默认使用Podman 4.0,针对企业环境建议:
- 存储驱动选择:
bash复制cat > /etc/containers/storage.conf <<EOF
[storage]
driver = "overlay"
runroot = "/run/containers/storage"
graphroot = "/var/lib/containers/storage"
EOF
- 网络性能优化:
bash复制podman network create --subnet 10.88.0.0/16 --opt mtu=9000 mynet
- 资源限制配置:
bash复制podman run -it --memory=4G --cpus=2 --ulimit nofile=10240:10240 ubi9/ubi
在实际部署中遇到过CNI插件导致网络不稳定的情况,最终通过切换为macvlan驱动解决:
bash复制podman network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=ens192 macvlan-net
7. 监控与日志管理
7.1 指标收集方案
推荐使用RHEL9.7内置的Metrics子系统:
bash复制subscription-manager repos --enable=rhel-9-for-x86_64-metrics-rpms
dnf install metricbeat telegraf
配置示例(/etc/telegraf/telegraf.conf):
text复制[[inputs.cpu]]
percpu = true
totalcpu = true
collect_cpu_time = false
[[inputs.disk]]
ignore_fs = ["tmpfs", "devtmpfs", "devfs"]
7.2 日志管理最佳实践
- 使用journald持久化日志:
bash复制mkdir -p /var/log/journal
systemctl restart systemd-journald
- 日志轮转优化(/etc/logrotate.conf):
text复制/var/log/messages {
rotate 7
daily
compress
delaycompress
missingok
notifempty
create 0600 root root
}
- 结构化日志增强:
bash复制cat > /etc/rsyslog.d/10-structured.conf <<EOF
template(name="jsonfmt" type="list" option.json="on") {
property(name="timereported" dateFormat="rfc3339")
property(name="hostname")
property(name="syslogtag")
property(name="msg")
}
EOF
