专栏名称: talkwithtrend
中国企业IT人交流的技术社区
目录
相关文章推荐
清晨朗读会  ·  清晨朗读3177:My old cat ... ·  15 小时前  
洪观新闻  ·  突发!西藏地震 ·  4 天前  
吉安公安  ·  -4℃!大降温!江西要下雪了! ·  5 天前  
地理狗看世界  ·  阿塞拜疆,高加索油老板 ·  3 周前  
地理狗看世界  ·  加利福尼亚州,穿牛仔裤的梦想家 ·  2 周前  
51好读  ›  专栏  ›  talkwithtrend

信创操作系统(麒麟、统信)与非信创Linux三者运维实操能力差异性及屏蔽策略(同行共识总结)

talkwithtrend  · 公众号  ·  · 2024-08-28 07:35

正文





















随着近些年信创浪潮的不断涌进,越来越多人或使用或关注信创操作系统,而国内的信创操作系统也在不断迭代更新,如麒麟、统信操作系统作为主流的服务器操作系统已在市场上占据大量份额,其软硬件兼容性不断完善,并在不少中大型企业应用落地,从办公管理等通用类应用场景逐步迈向容器云、大数据、大模型等前沿应用场景,不难看到,信创操作系统在不断走向成熟。在此形势下,熟悉了解主流信创操作系统(麒麟、统信)与非信创Linux在各个技术维度上的差异就显得尤为重要,既可以帮助企业在进行产品技术选型时作为技术参考,又可以帮助IT从业人员进行信创技术储备,以应对随时可能遇到的技术壁垒。

社区近日组织了“信创操作系统(麒麟、统信)与非信创Linux操作系统三者在运维实操上的能力差异”交流活动,邀请了社区多位技术专家一同参与线上交流,重点对服务器版麒麟、统信和Linux系统差异对比进行深入探讨,并在此基础上形成了同行共识,本文将其汇总于此,以供更多同行参考。

本文主笔:a1ex007(社区ID),某城商银行高级系统工程师,10多年银行信息技术服务及管理工作,多年的网络、主机、存储、虚拟化、云计算、容器云原生、备份相关技术经验。

主要分享者:微笑笑西西(社区ID),某城商行信息科技部系统运维组骨干成员,其他参与同行亦有贡献


1、麒麟、统信和非信创Linux三者在日常运维使用中有哪些明显差异?

@微笑笑西西 某城市商业银行 系统工程师:

目前各单位使用的发行版大体上可以分为Rhel(CentOS)、Debain、Suse Linux这3大类,在操作系统选择上尽量选择生产环境统一的发行版本(或者是基于同一上游的发行版本均可,比如CentOS、Rhel、麒麟欧拉等版本就属于同一发行版本,Debain、Ubuntu、UOS等属于另一类的发行版),使用同一上游的发行版本在统一管理、维护等方面可以显著提升维护的便利性,比如操作系统初始化、安全加固、补丁策略、补丁源、批量维护、更新等有诸多的好处。

以上各发行版本的操作系统常用命令都是大体一样的,但是软件安装的命令有些许差别,比如rpm 对应 dpkg ,yum对应apt等,操作操作系统的一些常用的依赖包或更新一般建议采用yum(rpm)/apt(dpkg)等方式进行安装,对于安装部署应用则建议采用源码编译安装或者二进制文件安装。


2、信创服务器操作系统与X86-Linux系统应用场景差异对比

@微笑笑西西 某城市商业银行 系统工程师:

1. 应用架构不同

X86-Linux系统:一台设备可以承载多个应用模块

信创服务器操作系统:分布式微服务架构,多台设备承载1个应用模块

2. 存算偏好不同

X86-Linux:存算分离和存算一体皆适宜

信创服务器操作系统:大多采用存算一体

3. 平台扩展方式不同

X86-Linux系统:纵向扩展和横向扩容均可

信创服务器操作系统:由于硬件性能原因,高并发场景大多采用横向扩容

4.其他应用场景出现的问题

依赖于32位系统包的软件在海光平台麒麟系统无法安装,如:stunnl(用于加密文件传输场景)、CD soft、TSM

高并发场景国产系统CPU使用率居高不下(如Nginx)

3、麒麟、统信操作系统相比非信创操作系统,在稳定性、性能、故障率以及运维方面,有什么变化?

@微笑笑西西 某城市商业银行 系统工程师:

这里其实可以分为两类:

1.信创产品的风险情况

信创产品的稳定性、性能、故障率就目前来说一般,毕竟信创产品诞生时间不长,可能后续随着用户人群的越来越多,发现的问题也越来越多,所以建议大家尽量的跟着系统厂商、硬件厂商发布的各类补丁,根据自己的实际情况进行修复。特别是在系统上线前尽量将补丁安装至原厂发布的补丁版本,可以有效的解决一些潜在的风险问题。

2.信创产品的运维

信创产品的运维,尽量选择自己熟悉的发行版本或者是跟生产环境的版本类似的操作系统,这样可以有效减少运维的难度以及人力的投入。由于操作系统属于同一类的发行版版本,对于运维来说都是一样的。

但是在信创产品的数据库场景中可能差别就很大了,目前信创数据库产品超过200多个,已知且大家都熟悉的数据库有达梦、人大金仓、TDSQL、高斯、TiDB、OceanBase、Gbase等这些数据库大部分都是基于开源数据库的MySQL、PostgreSQL进行二次开发,且跟原生的MySQL、PostgreSQL数据库的维护操作相比有很大的变化,因此对于数据库场景中数据库的运维,难度以及投入还是比较大的。

@匿名用户:

在故障率方面,由于信创操作系统具有较高的稳定性和安全性能,因此其故障率相对较低。但是,由于银行系统的复杂性和运行环境的多样性,仍然存在一定的故障风险。

在运维方面,信创操作系统相对于其他操作系统的运维难度较高,需要专业的技术人员进行维护和管理。同时,由于信创操作系统的特殊性质,运维所需的投入也较高。

4、使用麒麟、统信等信创操作系统,性能是否有提升或者下降?如何测试?运维中容易遇到哪些问题?

@微笑笑西西 某城市商业银行 系统工程师:

对应操作系统的性能方面的检查,其实命令都是一样的,比如top、vmstat、sar、iostat、free 等,然后以及一些第三方开源的工具包也比较实用且建议进行安装,如htop、iotop、nmon、iptraf、atop、dstat等。

目前信创产品的性能问题主要在硬件这一块,特别是CPU的性能以及稳定性对比Intel CPU还是有较大的差距,对于这方面的解决措施主要是进行横向扩展,以往可能是2台Intel服务器就能解决,在信创的服务器上可能需要4台或者更多。不过随着国家在信创方面的投入以及用户量增长,信创产品的性能应当会越来越好。

在信创产品日常的使用过程中见得最多的就是CPU使用率经常高于80%,特别是在数据库的场景。随着业务量的增长、数据量的暴增均可能导致数据库服务器的CPU使用率高于90%,这个时候主要是根据实际情况对业务的sql语句以及数据库的相关参数进行优化。

@匿名用户:

在使用中,信创操作系统可能会遇到以下问题:

1.兼容性问题:由于信创操作系统是一种自主研发的操作系统,与其他操作系统(如Windows、Linux等)之间可能存在兼容性问题,需要进行充分测试和验证。

2.安全问题:银行行业对安全性要求较高,因此信创操作系统需要具备较强的安全性能和防护能力,以保障银行系统的安全性。

3.技术支持问题:由于信创操作系统是一种相对较新的操作系统,可能存在技术支持不足的问题,需要及时解决。


5、信创系统容易出现什么性能问题?

@微笑笑西西 某城市商业银行 系统工程师:

1)numa的特性

numa特性在kylin操作系统高耗内存的一些场景上很容易出现swap使用率超过50%,而物理内存很空闲的情况。当出现这样的情况只能重启应用或系统,然后我们的操作是直接关闭numa特性,虽然可会有少许的性能损失。

2)CPU性能

由于CPU的性能问题,业务场景中使用集中式数据库(kingbase),在业务场景下很容易出现CPU使用率达到峰值进而影响业务。在信创的场景下对开发人员的经验和技能要求更高了。

6、相比于非信创,信创操作系统现在可以真正做到哪些事情?例如:系统级的dhcp?ldap?dns?还是应用类的?

@微笑笑西西 某城市商业银行 系统工程师:

目前非信创能部署的,信创操作系统都可以做得到,可能个别需要依赖32位软件包的商业化软件目前没有适配无法安装。

比如云原生k8s、数据库服务(高版本的麒麟也兼容)、Nginx、Apahe、Zabbix、Tomcat等均可以实现。

7、公司内麒麟sp1、sp2、sp3都有使用,请问是出于什么考虑使用了多个版本?

@微笑笑西西 某城市商业银行 系统工程师:

基于我们行具体情况,使用多版本操作系统是为了修复已知BUG。因为我们碰到的很多问题,操作系统没办法找到具体原因,都是要求升级SP。

@匿名用户:

使用什么版本的操作系统基于业务应用开发时所基于的版本,为了保证应用与操作系统的兼容性,需要使用开发人员要求使用的操作系统版本。同时使用不同版本的操作系统是很正常的,因为业务上线的时间有早晚,当时流行的操作系统版本会有不同,一般出于安全性考虑,尽量选择当时最新的稳定版本也是合理的选择。由于大版本的操作系统升级风险较大,所以业务上线以后一般不会更新操作系统的大版本去统一到最新的操作系统。

8、针对操作系统大版本升级,不同场景物理机和虚拟机下有没有更好的建议?

@匿名用户:

对于物理机的升级,通常需要进行新装迁移的方式。这意味着需要备份重要数据,然后重新安装操作系统和应用程序,最后将备份的数据恢复到新系统中。这种方式虽然比较麻烦,但是可以确保系统的稳定性和安全性。

对于虚拟机的升级,可以使用快照的方式进行。首先,在升级之前需要创建一个虚拟机快照,以便在升级过程中出现问题时可以快速恢复到之前的状态。然后,可以使用dnf update等命令进行升级。升级完成后,需要测试系统是否正常运行,如果出现问题可以使用快照进行恢复。


9、信创虚机/物理机异常重启问题怎么预防?

@微笑笑西西 某城市商业银行 系统工程师:

1. 部署kdump和netconsole

FT2500平台部署kdump(搜集系统dump)和netconsole(网络串口日志,搜集内核panic相关内容)等待问题复现之后可搜集更多日志分析重启原因。

2. 内存调优

添加iommu.passthrough=on参数(此参数针对SMMU功能内存地址分配异常、硬盘访问异常、中断相应异常等可能影响系统稳定运行的问题有优化)。

3. 优化BIOS

配置BIOS设置打开兼容模式,并关闭SMMU启用。

4. 预防性维护

预防性更换服务器主板,并升级BIOS和BMC至最新版本,修复已知问题。

10、针对OOM给出了sysctl.conf设置min free bytes 60m的建议,是否不能根本解决问题?

@匿名用户:

针对麒麟适配MySQL、gdb等产品出现OOM或者/runnospace导致系统没响应的问题,可以考虑以下几个方面来规避类似OOM不响应的问题:

1.调整系统参数

可以通过调整系统参数来规避OOM不响应的问题。例如,可以通过修改sysctl.conf文件中的vm.overcommit_memory参数来控制内存分配策略,从而避免OOM问题。同时,可以通过调整文件系统的参数,如inode数量、文件系统大小等,来避免/runnospace问题。

2.优化应用程序

可以通过优化应用程序来减少内存使用量,从而避免OOM问题。例如,可以通过减少内存泄漏、优化算法等方式来减少内存使用量。同时,可以通过调整应用程序的配置文件,如MySQL的my.cnf文件,来优化应用程序的性能。

3.增加硬件资源

可以通过增加硬件资源来避免OOM问题。例如,可以增加内存、硬盘等硬件资源,从而提高系统的性能和稳定性。

4.使用高可用技术

可以通过使用高可用技术来避免OOM问题。例如,可以使用集群技术、负载均衡技术等方式来提高系统的可用性和稳定性。

总之,针对OOM不响应的问题,需要从多个方面进行综合考虑和优化,才能更好地规避类似问题的出现。

11、如何更好地屏蔽或平滑商业发行版之间的差异性?

@匿名用户:

为了屏蔽或平滑商业发行版之间的差异性,可以考虑以下几点:

选择一个主流的开源操作系统作为基础,例如Linux。这样可以确保系统的稳定性和安全性,并且可以利用开源社区提供的更新和修复。

选择一个商业发行版,该发行版已经经过了广泛的测试和验证,并且具有良好的兼容性和稳定性。例如,麒麟操作系统和信创操作系统都是基于Linux的商业发行版,它们都具有良好的兼容性和稳定性。

与开源社区保持联系,寻求他们的支持。开源社区通常会提供技术支持和更新,以确保系统的稳定性和安全性。因此,与开源社区保持联系并寻求他们的支持是非常重要的。

在系统设计和开发过程中,尽可能避免使用商业发行版特有的功能和工具。这样可以确保系统的兼容性,并减少商业发行版之间的差异性。


同行共识综述


从上述各位专家针对“信创操作系统(麒麟、统信)与非信创Linux 三者运维实操能力差异性”相关问题的探讨和解答不难看出,三者在运维实操上有差异但总体原理相同,同时从非信创Linux平滑升级到信创操作系统将涉及更复杂的软、硬件兼容测试,需要各技术团队的通力合作,包括业务、研发、运维、厂商、开源社区等等。

以下策略可以帮助更好地屏蔽或平滑这些差异,并考虑如何更好地寻求开源社区的支持:

1. 标准化

使用标准化接口和工具

标准化API:尽量使用符合POSIX标准的API,确保代码在不同操作系统之间具有良好的兼容性。

容器化:通过Docker或Kubernetes等容器化技术,将应用程序与操作系统解耦,减少对底层操作系统的依赖。

自动化脚本:使用Ansible、Chef、Puppet等自动化工具来管理配置,确保在不同操作系统上的一致性。
2.抽象层和中间件

抽象层:开发或使用现有的抽象层,使得应用程序可以通过统一的接口与操作系统交互,屏蔽底层差异。

中间件:利用中间件(如数据库连接池、中间件服务器等)来处理操作系统特定的配置和优化,简化应用程序开发。

3.兼容性测试

多平台测试:在CI/CD管道中集成多平台测试,确保应用在所有目标操作系统上都能正常运行。

自动化测试:编写自动化测试用例,覆盖不同操作系统的特性和差异,及时发现和解决兼容性问题。
4.持续集成

CI/CD工具:使用Jenkins、GitLab CI、Travis CI等工具,自动化构建、测试和部署流程,确保在不同操作系统上的一致性。

版本控制:利用版本控制系统(如Git)管理代码和配置变更,确保团队协作和变更的可追溯性。

5.文档和知识库

文档标准化:创建统一的文档标准,确保所有开发和运维人员能够访问和理解操作系统相关的信息。

知识库:建立知识库,收集和整理各个操作系统的特性、常见问题和解决方案,供团队内部参考。
6.培训和支持

培训计划:定期组织培训,帮助开发和运维人员了解和掌握不同操作系统的特点和最佳实践。

支持团队:建立内部支持团队,专门负责处理操作系统相关的问题和差异。

7.寻求开源社区支持
积极参与开源社区

贡献代码:积极向开源社区贡献代码,修复bug或添加新功能,增强社区对企业的认同和支持。

参与讨论:参与社区讨论,提出问题并分享解决方案,与其他用户和开发者交流经验和知识。
寻求社区帮助

报告问题:在遇到问题时,及时向社区报告,并详细描述问题和复现步骤,寻求社区的帮助和建议。

合作开发:与社区共同开发新功能或改进现有功能,通过合作增强项目的稳定性和功能性。
8.赞助和支持

资源支持:提供服务器、测试环境等资源,支持开源项目的开发和测试。
商业支持:选择具备良好支持服务的商业发行版,获得专业的技术支持和服务,减少因操作系统差异带来的问题。

合作伙伴:与操作系统供应商建立合作关系,定期沟通和反馈,确保问题能够及时得到解决。
9.服务级协议(SLA)

明确SLA:与供应商签订明确的服务级协议(SLA),确保在遇到问题时能够及时获得支持和解决方案。

定期评估:定期评估供应商的服务质量,确保其符合预期和要求。

根据实际使用经验,信创产品的稳定性就目前来说比较一般,毕竟信创产品产生时间尚短,可能后续随着用户人群越来越多,发现的问题也越来越多,所以建议大家尽量的跟着系统厂商、硬件厂商发布的各类补丁,根据自己的实际情况进行修复。特别是在系统上线前尽量将补丁安装至原厂发布的补丁版本,可以有效解决一些潜在的风险问题。相信随着信创产品的不断打磨、优化,必将形成完善的产品体系,构建稳定的信创软硬件生态。

如有任何问题,可点击文末阅读原文,到社区原文下评论交流

觉得本文有用,请





请到「今天看啥」查看全文