引言:CentOS停服带来的紧迫挑战
2026年7月,包头昆区某医疗设备公司IT部门面临一个棘手问题:公司运行的6台CentOS 7服务器将于月底完全停止安全更新。这些服务器承载着公司的HIS(医院信息系统)接口服务、PACS影像存储和OA系统,迁移工作刻不容缓。本文详细记录我们将CentOS 7平滑迁移到Rocky Linux 9的全过程。
一、迁移背景与风险评估
1.1 现有环境
该公司6台CentOS 7服务器的角色和配置:
- Server-01:HIS接口服务(Java 8 + Tomcat 8.5),4核16G,500G SAS
- Server-02:MySQL 5.7主库,8核32G,2T SAS RAID1
- Server-03:MySQL 5.7从库 + Redis 6,8核32G,2T SAS RAID1
- Server-04:PACS影像存储(Nginx + MinIO),8核16G,10T SATA RAID5
- Server-05:OA系统(PHP 7.4 + Nginx),4核8G,500G SAS
- Server-06:监控+日志(Prometheus + Grafana + Loki),4核8G,1T SATA
1.2 风险评估
从CentOS 7迁移到Rocky Linux 9涉及多个维度变化:
| 维度 | CentOS 7 | Rocky Linux 9 | 风险等级 |
|---|---|---|---|
| 内核版本 | 3.10 | 5.14 | 中 |
| glibc版本 | 2.17 | 2.34 | 高 |
| OpenSSL | 1.0.2 | 3.0 | 高 |
| Python | 2.7/3.6 | 3.9 | 中 |
| MySQL | 5.7 | 需升级到8.0 | 高 |
| PHP | 7.4 | 8.1 | 中 |
| 防火墙 | iptables/firewalld | nftables/firewalld | 低 |
二、迁移方案设计
2.1 迁移策略选择
我们评估了三种方案:
- 原地升级(in-place upgrade):使用Leapp工具直接在原服务器上升级。风险:如果升级失败,回退困难
- 新建并行+数据迁移:搭建Rocky Linux 9新服务器,部署应用后迁移数据。风险:需要额外硬件,切换窗口要求精确
- 虚拟化迁移:将物理机P2V到虚拟化平台,再在虚拟化环境做升级。风险:性能可能有损耗
最终选择方案2(新建并行+数据迁移),因为:医疗系统对稳定性要求极高,新建并行可以在切换前充分测试,出问题可快速回退到旧系统。
2.2 迁移窗口规划
分3个批次迁移,每批次2台服务器:
- 批次1(7月第2周):Server-05(OA)+ Server-06(监控)— 非核心系统先行
- 批次2(7月第3周):Server-01(HIS接口)+ Server-04(PACS存储)— 业务系统
- 批次3(7月第4周):Server-02(MySQL主)+ Server-03(MySQL从)— 数据库最后迁移
三、关键迁移步骤
3.1 系统基础环境部署
新服务器安装Rocky Linux 9.4 Minimal,基础配置:
# 系统更新 dnf update -y # 安装常用工具 dnf install -y vim wget curl tar zip unzip net-tools bind-utils htop iotop sysstat chrony rsync firewalld # 时间同步 systemctl enable --now chronyd # SELinux配置(医疗系统保持enforcing) getenforce # 确认Enforcing # 内核参数优化 cat >> /etc/sysctl.conf << EOF net.core.somaxconn = 65535 net.ipv4.tcp_max_syn_backlog = 65535 vm.swappiness = 10 vm.max_map_count = 262144 EOF sysctl -p
3.2 MySQL 5.7 → 8.0 迁移
这是本次迁移难度最大的部分。主要变化:
- 认证插件从mysql_native_password变为caching_sha2_password
- 字符集默认从latin1变为utf8mb4
- 部分SQL语法变更(如GROUP BY更严格)
- 系统表结构变化
迁移步骤:
- 在Rocky Linux 9上安装MySQL 8.0:dnf install mysql-server
- 修改my.cnf配置,设置default-authentication-plugin=mysql_native_password(兼容旧应用)
- 使用mysqldump导出CentOS 7上的数据:mysqldump --single-transaction --routines --triggers --all-databases > full_dump.sql
- 在MySQL 8.0上导入:mysql < full_dump.sql
- 运行mysql_upgrade检查系统表(MySQL 8.0已内置)
- 使用MySQL Shell的Upgrade Checker工具验证兼容性
关键问题处理:HIS系统的JDBC连接串需要添加useSSL=false&allowPublicKeyRetrieval=true参数,否则无法连接MySQL 8.0。
3.3 Java应用迁移
HIS接口服务从Java 8迁移到Java 11(Rocky Linux 9默认OpenJDK 11):
- 安装OpenJDK 11:dnf install java-11-openjdk-devel
- Tomcat升级到9.0版本(Tomcat 8.5在Java 11上可运行但已停止支持)
- 修改catalina.sh中的JVM参数,增加--add-opens参数解决模块化兼容问题
- 检查所有依赖库兼容性:jackson、log4j、Spring等均需要升级到支持Java 11的版本
3.4 PACS影像存储迁移
MinIO对象存储迁移约8TB医学影像数据:
- 新服务器部署MinIO集群(分布式模式,4节点)
- 使用mc(MinIO Client)的mirror命令同步数据:mc mirror --watch source/dest/
- 同步完成后校验:mc diff source/dest/
- Nginx配置更新,upstream指向新MinIO地址
四、切换与验证
4.1 切换流程
每次批次切换在凌晨2:00-6:00进行:
- 停止旧服务器应用服务
- 最后一次增量数据同步(rsync/MySQL主从同步)
- DNS解析切换到新服务器IP
- 启动新服务器应用,执行冒烟测试
- 监控1小时无异常后通知业务部门验证
4.2 验证检查清单
- 功能验证:核心业务流程走通(挂号、检查、报告等)
- 性能验证:JMeter压测,响应时间与旧系统对比偏差<10%
- 安全验证:nmap扫描端口,确认无多余开放端口
- 日志验证:检查应用日志无Error级别异常
- 备份验证:新服务器备份任务正常运行
五、迁移后优化
迁移完成后,我们进行了多项性能优化:
- MySQL性能调优:innodb_buffer_pool_size设置为物理内存的70%(22GB),启用innodb_dedicated_server自适应配置
- SSD替换:将Server-02的SAS硬盘替换为企业级SSD,数据库写入性能提升3倍
- Redis持久化优化:RDB+AOF混合持久化,AOF重写策略调整为everysec
- 系统安全加固:配置CIS Benchmark基线,部署auditd审计,配置fail2ban防暴破
结语
CentOS停服是很多企业面临的紧迫问题。系统迁移不仅仅是OS版本的升级,更涉及数据库、中间件、应用层的全面兼容性适配。不舍昼夜技术在包头昆区、青山区、稀土高新区等地提供专业的Linux服务器运维和迁移服务。技术热线:17704868686。
【不舍昼夜技术 · 包头IT一站式服务】
电脑/服务器:重装系统、硬件升级、服务器Linux/Windows环境部署
数据安全:硬盘/U盘/数据库数据恢复、网络安全加固、病毒清理
弱电安防:监控安装、机房建设、综合布线、门禁人脸识别
办公耗材:打印机维修、硒鼓墨盒配送、复印机租赁
软件开发:企业官网、小程序开发、APP定制、ERP系统
服务单位:内蒙古不舍昼夜技术有限公司
业务涵盖:电脑维修/系统重装/数据恢复/监控安防/弱电布线/打印耗材
技术热线:17704868686(包头本地团队,随叫随到!)