适配迁移信创操作系统是一个较为复杂,影响面较广的工作,作为一个承上启下的系统软件,操作系统承担着重要的角色。 在迁移前,我们需要明确信创适配的目标和需求,了解适配的具体要求和期望。这可能涉及到适配的对象(如硬件、软件、云平台等),适配的功能和性能要求,以及适配的时间和预算等方面。 “企业IT应用趋势项目创新联盟-信创操作系统课题组”上月组织了“适配迁移信创操作系统的挑战与实践赋能培训”,通过一个具体的项目实践,介绍进行信创操作系统适配迁移中遇到的问题、挑战、解决方案以及信创操作系统应用实践的思考。 本文基于该培训的交流分享,总结了围绕信创操作系统的十大需求问题及对应解决方案,供读者同行参考。同时建议大家点击文末的“阅读原文”去活动平台观看培训配套视频以及26个研讨问题,会有更多的收获。
信创操作系统选择时,是只针对这次这个系统进行的适配还是做的一个总的规划,未来其他系统也是适配这一组合?
@actor168 中国联通软件研究院 研发工程师:
不同的业务场景,会选择不同的组合模式。简单而言,考虑硬件+OS的依据:
兼容度
生态完善度
是否特定调优
业务迁移到信创操作系统后日常运维需要注意哪些已知的缺陷?比如与哪些品牌的服务器有兼容性的问题,哪些硬件需要特殊驱动?
@actor168 中国联通软件研究院 研发工程师:
兼容性问题,尤其是驱动兼容性问题,在迁移后很短的周期内即可发现,有的甚至在安装过程中就能发现,目前典型的迁移问题场景比如:
启动模式
图形驱动
RAID卡驱动
网卡驱动
信创操作系统的版本与常用的红帽可能存在一些小的差异,例如内核版本,系统软件版本,jdk版本等,这方面是否有一些内容需要重点关注的? 比如内核版本的升级,行业内通常会采用什么策略,如何选择? 再比如,系统管理员平时会关注红帽官方的勘误信息,如果涉及到一些系统软件或者常用软件,通常都会做好评估工作,但是目前信创厂商这方面的信息相对较少,如何能更好的规避这方面的问题?
@actor168 中国联通软件研究院 研发工程师:
1.主动了解信创厂商kernel支持政策:当前OS厂商的kernel版本一般是4.19,如果是有更新,需要跟OSV确认好支持周期信息及变更细节(changelog)。
2.参与社区讨论:加入信创操作系统的社区和论坛,与其他用户和开发者交流经验和问题,比如TWT,沟通历史踩过的坑。比如:ARM下的docker镜像等等;
3.定期进行安全评估:安全不是一劳永逸,需要返回推进,包括检查系统漏洞和软件更新。及时安装信创厂商提供的安全补丁和更新,以保护系统的安全性。
4.与厂商保持联系:与信创厂商建立联系,了解他们的产品路线图和更新计划。这样可以提前获取重要的信息,并做好相应的准备工作。
@mxin辛旻 上海宝信 资深工程师:
在信创操作系统迁移过程中,需要重点关注的软件版本内容包括:CPU、操作系统、数据库、中间件等。由于信创生态中存在多种多样的国产化环境,涉及不同架构的芯片,各个厂商的操作系统、数据库、中间件等,因此如何挑选最优的组合,以利于尽早确定信创技术栈,保证在原有架构上运行的众多业务应用,能够顺利迁移是难点之一。
对于内核版本的升级,行业内通常会采用评估和测试相结合的策略。评估主要是对新版本内核的特性进行分析和评估,以确定是否适合当前场景;测试则是在实际环境中对新版本内核进行测试,以验证其稳定性和性能。
至于系统管理员平时会关注红帽官方的勘误信息,如果涉及到一些系统软件或者常用软件,通常都会做好评估工作。但是目前信创厂商这方面的信息相对较少。为了避免出现问题,建议您在迁移前仔细阅读信创厂商提供的相关文档,并在迁移前进行充分的测试 。
在信创操作系统迁移过程中,需要重点关注的软件版本内容包括:CPU、操作系统、数据库、中间件等。由于信创生态中存在多种多样的国产化环境,涉及不同架构的芯片,各个厂商的操作系统、数据库、中间件等,因此如何挑选最优的组合,以利于尽早确定信创技术栈,保证在原有架构上运行的众多业务应用,能够顺利迁移是难点之一 。
对于内核版本的升级,行业内通常会采用评估和测试相结合的策略。评估主要是对新版本内核的特性进行分析和评估,以确定是否适合当前场景;测试则是在实际环境中对新版本内核进行测试,以验证其稳定性和性能。
@actor168 中国联通软件研究院 研发工程师:
作为信创OS的用户之一,我们在信创操作系统方面的确有不少的应用案例,整体来说,信创OS仍然处于行业推广的爆发期,我们可以看到各开源社区、各OSV都在努力扩展其市场影响力,从技术上来讲,信创OS以Linux Kernel为基础,加之以Fedora体系软件包组发行模式,重点关注于国产芯片、外设、国产软件的适配及应用,形成了较为规模的体系。
但仍然存在着不足:
1.Kernel新技术仍然跟踪吸收为主,自主创新少;
2.软件包等仍然与CentOS、Rhel趋同,为的是保持兼容,缺乏版本多样性及及时性;
3.安全漏洞修复、发布仍与24、7x24有差距;
4.OS生态仍不健全,缺乏知识库,完整支撑系统;
@waring_id 技术经理:
还是要结合场景考虑调优的原则。
正常情况下,操作系统默认的配置参数是能够适配大部分的应用场景的。只有涉及特别的硬件设备匹配或是特定的应用场景才考虑调优操作。
例如数据库针对读或写或是文件引用打开这些参数(高负载高配置的服务器的参数要求可能和普通服务器的不一样,例如磁盘参数、网络参数、预读取等)。
网络应用场景的可能更多聚焦在网络参数的调整。例如高负载的负载均衡场景,大群集环境的外网DNS 解析服务等。
@guoxilin 高级非功能测试专家:
个人实践过程操作系统层面的调优根据应用场景测试验证,操作系统方面调优相对多的方法是:
1.文件句柄参数调优,比如调大内核参数fs.file-max ,要是文件句柄参数配置不足,会导致too many open files in system异常。合理操作系统内核参数配置。
@songxiaowei 上海期货信息技术有限公司 应用工程师:
不同单位对成本的把控有着不同的标准,有的注重时间成本,有的注重各项预算。
1.时间成本:迁移的时间窗口对于一些单位来说但是非常重要的,所以需要规定一些时间窗口去做这个迁移的任务,这个时间成本把控是非常难的。
2.预算费用:迁移的成本是很多企业需要考虑的。
3.迁移的稳定性:迁移的数据是否可以保证完全的一致性。
@zxd 中原银行 高级工程师:
信创迁移控制成本是非常有必要的,在控制信创迁移的成本方面,可以考虑以下几个方面:
1.制定详细的迁移计划,并进行有效的项目管理。确保在预定的时间窗口内完成迁移任务,并严格控制进度,以减少潜在的延误和额外的时间成本。
2.评估所需的人力、物力和财力资源,并进行合理的分配和利用。优化资源的使用,避免浪费和重复劳动,以降低成本。
3.寻找适用的自动化工具和技术来简化和加快迁移过程。自动化可以减少人工操作和错误,提高效率,并降低迁移成本。
4.在迁移计划中考虑风险,并采取相应的措施进行管理和缓解。可以避免潜在的问题和故障导致的额外成本。
5.确保相关人员具备必要的技能和知识,以有效地执行迁移任务。培训团队成员,并进行知识转移,以减少错误和额外的修复成本。
6.在迁移过程中,确保数据的完整性和一致性。执行必要的验证步骤,以确认数据的准确性和可用性,避免数据损失和后续修复成本。
7.选择具有经验和专业知识的合作伙伴来协助迁移过程。他们可以提供必要的支持和专业建议,帮助降低迁移成本并确保成功完成。
8.在迁移完成后,进行持续的监控和优化。及时发现和解决问题,避免额外的修复和调整成本。
最终,要确保迁移成本在可接受范围内,还要根据实际需要进行权衡和取舍。
@三虎 中国邮政储蓄银行 系统运维工程师:
你说的几个方面都对,如果你们的盘子够大,这些问题都可以由一些边缘的小系统开始做起。
时间上来说:建议从管理类、非核心的系统开始做,规定好时间、计划,上来采购的设备量放充沛一些,做一年时间,看看效果,蹚出经验。
第二年再逐步推广,再找一批系统来做,逐步展开。
预算上:都是给gov做贡献,就看具体要求要推到什么程度了,国产就那么几家,选择范围小,综合看,hw的好点吧,但价格高, 有一些小的平台,如果能提前做好充分测试,那也是可以用的。
稳定性方面:hw的稳定性好点,别的家,生态真的烂,就是赌运气,如果不在适配列表里的,真是要自求多福。
@waring_id 技术经理:
1.时间成本取决于前期评估验证的结果和技术团队的能力
2.预算费用中比较难估算的是技术服务成本和时间成本
@会飞的北极熊 海通证券 系统工程师:
采用什么方案主要是与公司的技术路线相关,当前的虚拟化、超融合、云解决方案,基本上都能很好的支持信创操作系统,选择一款合适的产品基于企业规模,后续规划,技术路线等多个方面考虑。
@actor168 中国联通软件研究院 研发工程师:
信创迁移是为了解决供应链安全、自主技术掌控等方面的问题,对于不同的企业,其现状环境、技术沉淀程度都有不同,我们一般认为:存在较强供应链安全风险的,要做好替代工作;针对于供应链安全问题较少(开源且可控等)的,可以暂时不做替代。
针对问题所提到的,不同的虚拟化方案,我们建议:
1.存在风险的一定要做:可选择自主或开源或国内商业云等产品实现替代;不要求全量100%,但要做到风险可控,可随时做好备选工作。
2.替代的牵头:甲方提出诉求,由供应商满足要求提供(与原平台做到融合/无缝纳管等),并视情况要求其具备对应的认证等;
3.如果是自主实现,则一定要考虑开源的供应链安全问题。
@actor168 中国联通软件研究院 研发工程师:
依照我们的经验总结下在应用调研方面重点关注:
1.系统整体逻辑架构
2.系统部署架构及资源数量
3.系统技术栈、技术组件及版本
4.系统建设、维护、第三方支撑团队信息
5.系统重要程度、规模(UV、数据量)、各类现状数据指标
6.其他对操作系统的诉求情况
@zxd 中原银行 高级工程师:
在迁移应用程序之前,对要迁移到的信创操作系统以及当前服务器的操作系统进行调研是非常重要的。以下是一些建议的调研内容:
1.了解要迁移到的信创操作系统的版本、架构和支持的硬件平台。检查当前服务器的操作系统版本和架构,确保其兼容迁移到的信创操作系统。
2.检查当前服务器的硬件设备(如处理器、网络适配器、磁盘控制器等)是否与信创操作系统兼容。确认信创操作系统是否提供相应的驱动程序来支持当前服务器的硬件设备。
3.列出当前服务器上运行的所有应用程序,并了解它们的版本和依赖关系。检查这些应用程序的兼容性和支持情况,确保它们可以在信创操作系统上正常运行。联系应用程序供应商或开发者,了解他们对信创操作系统的支持情况,并获取必要的升级或补丁。
4.确定数据迁移的需求和策略。评估当前服务器上的数据量和类型,确定如何在迁移过程中安全地迁移数据。确保进行全面的数据备份,以避免数据丢失或损坏。
5.研究信创操作系统的安全功能和机制,了解如何设置访问控制、用户权限和防火墙等安全措施。检查当前服务器上的安全配置和策略,确保在迁移后可以维持相应的安全性。
6.评估信创操作系统的性能特性和可伸缩性,了解其在处理负载和并发访问方面的表现。分析当前服务器的性能需求,确保迁移到的信创操作系统能够满足这些需求。
7.了解信创操作系统的支持和维护政策,包括更新和补丁的发布频率、技术支持渠道等。考虑当前服务器所需的支持和维护水平,并确保信创操作系统能够提供相应的支持。
8.进行应用系统BIA分析,了解交易流上下游关联关系,明确迁移后IP地址的变动情况,梳理网络访问关系以及运行环境中网络安全区间访问控制、梳理负载均衡策略,评估迁移切换时间窗口耗时,确定测试验证的准出报告,制定切换方案及分时步骤表等。
在信创操作系统的迁移过程中,时常遇到DB或者应用对OS的版本及小版本非常敏感,版本选择和验证测试需要花费大量的时间,如何在较小资源和时间投入的情况下,选择合适的版本(包括小版本),并能持续升级更新,保障系统安全?
@smtpclient 中国金融电子化集团 系统架构师:
信创OS内核更新的基本很少,kernel版本一般比较固定。
系统迁移时,建议考虑以下几点:
1.DB是否和OS适配过,若没有适配过,那迁移就变成了适配工程,代价很大。
2.若适配过,需要检查DB和OS的适配版本;对固定版本的DB,可选择OS适配版本或较高版本。
3.适配过的产品,只能保证安装运行没问题,实际使用过程中可能会存在性能问题,需要针对性调优。
4.无适配产品,不建议迁移,成功率极低。
@waring_id 技术经理:
1.核心系统以操作系统和中间件的兼容列表为准
2.按生产环境的配置搭建测试环境(条件不允许的可以降配,例如2T内存降为512G),在测试环境做兼容验证
@actor168 中国联通软件研究院 研发工程师:
目前几款典型的OS的版本关系如下:

性能
@guoxilin 高级非功能测试专家:
我接触过的信创,主要是金融领域这块,目前采用鲲鹏ARM/海光X86+麒麟操作系统+k8s比较多,为了验证性能、稳定性、安全性、兼容性、可扩展性。从目前非功能测试,除了ARM指令麒麟操作系统组合下会存在一些兼容性问题。其他非功能特性还是能满足要求,整体上来说鲲鹏ARM/海光X86+麒麟操作系统+k8s,跟intel+rhel+openshift比较,性能差异在5%以内。
稳定性、安全性
@actor168 中国联通软件研究院 研发工程师:
目前的信创操作系统还是基于linux kernel发行,操作系统的稳定性本身受linux kernel的稳定性的影响,信创操作系统做了更多:信创硬件兼容、高版本kernel能力patch、封包、软件种类、安全等方面的工作。所以,不用担心其这些特征是否成熟,一定是在动态演进的过程,不是打广告吹嘘,这些是操作系统厂商会投入,也必然投入的内容,是他们的立足之本。目前国内呈现出竞争态势,这是好事,后续对于下游用户来讲,可以择优选择。
软硬件兼容性
@songxiaowei 上海期货信息技术有限公司 应用工程师:
操作系统不一样,兼容性上会有很大的不同:
1.在软件的兼容性上的差异会有所表现,比如说中间件、数据库、还有一些开源软件。
2.硬件处理器的不同会导致性能的差异,比如arm的单核性能优异,x86的多核更有优势。
@waring_id 技术经理:
1.迁移前需要确认需要使用的系统、中间件和数据库等组件,特别是涉及加解密算法(例如 SSL PKI 等)和高性能运算(例如图形图像、浮点运算等)的需要做对比测试验证。
2.查看操作系统对于目标硬件设备的兼容列表(包括系统组件和对应的数据库、中间件等)。
3.查看对应的数据库和中间件对应的兼容列表,和步骤2交叉确认。
4.搭建测试环境验证对比
@actor168 中国联通软件研究院 研发工程师:
目前操作系统基本与主流的软硬件型号都有适配,但是具体的,需要参考其适配列表网站中公布的兼容性列表。
目前的认证测试还都是双向认证测试,除了安全方面有等保等认证,其他的关于系统的兼容性没有相关的认证和测试标准,因为一旦有认证,必然伴随着测试用例的出现,这部分据我所知尚未明确。
迁移后的软件兼容性
迁移前主机上的各类软件包(尤其是rpm包),和迁移后的内核包,新装的软件包,在兼容性上会存在冲突(conflict),这些问题很难避免,因为原始系统装的软件和新系统软件在版本等适配上总会有意想不到的问题,我想问的是,针对这类问题,分别从有经验的系统运维专家和操作系统研发者的角度考虑,应该从哪几个方面入手去解决这样的问题?
@zxd 中原银行 高级工程师:
信创迁移兼容性确实是一个复杂的问题,面临不可预知的事情可能会很多,信创迁移不单纯是应用软件迁移到新操作系统中,还涉及硬件设备的更替以及对应芯片指令集等的更换,还可能涉及代码语言的重新编译或适配JDK等,需要前期做好充分的分析论证和测试验证。
从系统运维专家的角度考虑,解决适配迁移信创操作系统后软件兼容性问题可以从以下几个方面着手:
1.在迁移前,建立一个详细的软件清单,包括每个软件包的版本信息。了解新操作系统的要求和支持的软件版本。通过比较软件清单和新操作系统的要求,可以确定潜在的冲突和需要更新的软件包。
2.在实际迁移之前,进行充分的测试和验证。创建一个测试环境,在该环境中模拟迁移后的操作系统,并安装原始系统上的软件包。测试环境应该尽可能接近生产环境,以便发现潜在的兼容性问题。通过测试和验证过程,可以确定哪些软件包存在冲突,并计划解决方案。
3.对于可能导致冲突的软件包,考虑更新或升级它们以满足新操作系统的要求。寻求软件供应商合作,获取最新的软件包版本。在进行更新或升级之前,务必备份系统,并确保更新过程是可逆的。
4.对于不可避免的冲突,需要进行冲突解决。这可能涉及到修改软件配置、调整库依赖关系或寻找替代软件包等。在解决冲突时,需要仔细评估影响和风险,并与相关团队进行讨论和决策。
5.软件兼容性问题可能不仅仅存在于迁移过程中,还可能在后续的系统更新和软件升级中出现。因此,持续监测和更新是至关重要的。保持与软件供应商的联系,及时了解新版本和修复程序,并进行必要的更新和升级。
从系统研发专家角度考虑,解决软件兼容性问题可以从以下几个方面着手:
1.为新操作系统提供清晰的文档和指南,向系统运维专家和用户解释如何进行迁移和解决兼容性问题。文档应涵盖常见的软件包冲突案例和解决方案,并提供详细的操作步骤和建议。
2.在操作系统开发过程中,进行广泛的兼容性测试。测试应覆盖常见的软件包和应用场景,以发现潜在的冲突和问题。通过早期的兼容性测试,可以及早发现并解决兼容性问题,减少迁移后的麻烦。
3.为系统运维专家提供工具和辅助功能,帮助他们解决软件兼容性问题。这些工具可以包括软件包管理器、依赖关系分析工具等,以帮助识别和解决冲突。
4.建立一个积极的技术支持和反馈机制,鼓励系统运维专家和用户提供反馈和报告兼容性问题。通过与用户的紧密合作,可以更好地了解实际问题,并及时提供解决方案和修复程序。
需要注意的是,每个企业或用户都需要根据自身实际情况去分析应用的兼容性,具体解决方案可能因系统和软件的不同而有所差异。
@zwz99999 dcits 系统工程师:




