CentOS 7停服的紧迫性
2026年6月,包头白云矿区某矿业企业的IT部门面临一个紧迫问题:CentOS 7已于2024年6月30日停止维护,不再接收安全更新。他们的生产环境有12台CentOS 7服务器,运行着矿山资源管理系统、设备监控平台和办公OA系统。过去半年已有2台服务器被发现存在已知漏洞(CVE-2024-1086 nf_tables提权漏洞),虽然通过临时补丁修复了但长期来看必须迁移。
迁移方案评估
我们评估了三个方案:方案1迁移到RHEL 9需要购买订阅年费约12万;方案2迁移到Ubuntu 24.04 LTS但运维团队更熟悉RPM系操作;方案3迁移到Rocky Linux 9完全兼容RHEL 9免费且社区活跃。综合考虑成本和技术延续性选择方案3。
迁移策略:并行切换而非原地升级
选择并行切换而非原地升级的原因:原地升级风险高生产环境不允许长时间停机;并行切换可以充分测试后再切换降低风险;旧服务器保留2周作为回退方案。
具体步骤:1准备12台新服务器安装Rocky Linux 9.4最小化安装;2按角色分组迁移数据库服务器应用服务器文件服务器监控服务器;3每台新服务器配置完成后做功能验证和性能基准测试;4验证通过后切换DNS和VIP到新服务器;5旧服务器观察2周后下线。
迁移过程详解
阶段1:基础设施准备
12台新服务器配置:Dell PowerEdge R660机架式2U服务器,CPU Intel Xeon Silver 4310 12核,内存64GB DDR4 ECC,系统盘480GB SSD加数据盘4TB SAS。Rocky Linux 9.4最小化安装后做基础配置:SELinux设为enforcing模式;防火墙firewalld配置只开放必要端口;时区设为Asia/Shanghai并配置chrony NTP同步;内核参数调优包括文件描述符限制65535和TCP连接复用和swap使用倾向vm.swappiness=10。
阶段2:数据库服务器迁移
3台数据库服务器运行PostgreSQL 13迁移到PostgreSQL 16。迁移方法采用逻辑复制:1在新服务器安装PostgreSQL 16并初始化集群;2配置pg_hba.conf允许旧服务器连接;3创建发布订阅CREATE SUBSCRIPTION实现逻辑复制;4验证数据一致性用pg_dump对比表记录数;5切换应用连接字符串到新服务器。逻辑复制过程中业务无需停机,切换时仅需重启应用约30秒。
阶段3:应用服务器迁移
6台应用服务器运行Java Spring Boot应用和Python Django应用。迁移方法:1在新服务器安装JDK 17和Python 3.11及必要依赖;2用Jenkins pipeline自动构建部署应用到新服务器;3配置Nginx反向代理新服务器为upstream;4通过Nginx的weighted round robin逐步将流量从旧服务器切换到新服务器(10%到50%到100%);5观察日志确认无异常后移除旧服务器。整个灰度切换过程约2小时业务零感知。
阶段4:文件服务器迁移
2台文件服务器存储矿山测绘图纸和设备文档约3TB数据。迁移方法用rsync增量同步:1首次rsync全量同步约18小时;2配置定时rsync每小时增量同步保持数据同步;3切换前做最后一次rsync确认数据一致;4卸载旧NFS共享挂载新NFS共享;5应用层更新NFS挂载配置。切换停机时间约5分钟。
阶段5:监控服务器迁移
1台监控服务器运行Prometheus加Grafana监控全矿设备。迁移方法:1新服务器安装Prometheus 2.52和Grafana 11;2导出旧Prometheus数据用promtool snapshot导出约15GB;3导入新Prometheus;4导出Grafana仪表板JSON批量导入新服务器;5更新所有被监控端的exporter指向新Prometheus地址。迁移后监控数据无断层。
迁移中的关键问题与解决
问题1:Python 2到Python 3兼容性
部分运维脚本用Python 2编写,Rocky Linux 9默认Python 3.11不兼容。解决方案:用2to3工具自动转换语法,手动修复不兼容的库(如print语句改函数urllib2改urllib.request)。共转换47个脚本耗时1天。
问题2:systemd服务单元变化
Rocky Linux 9的systemd版本从219升级到252,部分服务单元配置语法有变化。特别是PrivateTmp和ProtectSystem选项的默认值变了。解决方案:逐个检查服务单元文件添加显式声明避免依赖默认值。
问题3:SELinux策略差异
Rocky Linux 9的SELinux策略比CentOS 7更严格。某个Java应用因为SELinux策略无法绑定自定义端口8443。解决方案:用semanage port命令添加端口标签semanage port -a -t http_port_t -p tcp 8443,而非简单关闭SELinux。
迁移后的性能对比
数据库查询性能:PostgreSQL 16相比13版本在相同硬件上TPS提升约23%(从4200提升到5170),主要得益于并行查询优化和JIT编译改进。应用启动时间:JDK 17相比JDK 8 Spring Boot应用启动时间从28秒降至9秒(CDS和AOT编译优化)。系统安全基线:Rocky Linux 9默认开启SELinux enforcing和firewalld,安全基线评分从62分提升到89分(CIS Benchmark)。
经验总结
操作系统迁移是IT基础设施生命周期管理的必然环节。关键要点:选择并行切换而非原地升级风险更可控;数据库迁移用逻辑复制可实现零停机;应用迁移用灰度切换业务无感知;文件迁移用rsync增量同步减少停机窗口;监控迁移要保证数据连续性。整个迁移项目历时3周12台服务器全部平滑切换业务零中断。
不舍昼夜技术提供包头企业服务器运维服务包括系统迁移虚拟化部署性能调优安全加固。技术热线:17704868686,7x24小时响应。
【不舍昼夜技术 · 包头IT一站式服务】
电脑/服务器:重装系统、硬件升级、服务器Linux/Windows环境部署
数据安全:硬盘/U盘/数据库数据恢复、网络安全加固、病毒清理
弱电安防:监控安装、机房建设、综合布线、门禁人脸识别
办公耗材:打印机维修、硒鼓墨盒配送、复印机租赁
软件开发:企业官网、小程序开发、APP定制、ERP系统
服务单位:内蒙古不舍昼夜技术有限公司
业务涵盖:电脑维修/系统重装/数据恢复/监控安防/弱电布线/打印耗材
技术热线:17704868686(包头本地团队,随叫随到!)