Centos 7 系统替换调研
CentOS 7 系统替换调研
CentOS Stream
CentOS 7将在2024年停止更新,然而CentOS8 已经在2021年底停止更新,仅仅两年时间。RedHat官方表示不会有CentOS 9系统,取而代之的是RedHat的另外一个免费的发行版—— CentOS Stream。
下面的是CentOS Stream 与RHEL 的衔接关系:
CentOS Stream 是红帽企业 Linux 源代码开发过程的重要组成部分:
- Fedora:未来红帽企业 Linux 主要版本都是基于此上游项目。这正是红帽和社区快速进行操作系统(OS)创新工作的地方。
- CentOS Stream:一个位于红帽企业 Linux 之前的上游开源开发平台,可以开发、测试并为持续交付分发做贡献。
- 红帽企业 Linux:一个生产级操作系统,可为关键的工作负载和应用提供更安全、受支持和灵活的基础。
网络上关于CentOS Stream 是否是RHEL 的测试版本的争论很多,很多人即使相信了RedHat的解释但是脱离了CentOS 系统,转而使用了其他Linux 发行版本。我在网上找了一个比较有说服力的文章,是RedHat 内部员工的发帖。
下面是RedHat 内部员工的解释,仅代表个人观点而非 RedHat 官方解释:
据我在公司内部了解到,红帽的本意是将 RHEL 的开发流程“开源”,并加快 CentOS 的 bug 修复速度。在 CentOS 8 Stream 出现之前,现状是这样的:
- RHEL 的源代码是公开的,但是开发测试流程都是在内部完成且不公开,公司外部人士是无法投入 RHEL 开发或测试的。虽然 Fedora 是社区驱动的,但 Fedora 作为 RHEL 的开发版本,相关内容进入 RHEL 的速度十分缓慢。
- 一个 bug 在 RHEL 被修复后,需要 RHEL 的测试人员进行测试,测试通过后对 RHEL 推送更新。而 CentOS 团队作为另一个团队,需要等待新版本进入 RHEL 以后,重新 build,再走 CentOS 的更新流程。这导致 CentOS 中 bug 的修复速度比 RHEL 慢几天至几个月。
而转向 CentOS Stream 之后,变成这样:
- 源代码及开发流程向社区公开,RHEL 的开发及测试人员将直接在 CentOS 进行开发测试,公司以外的人士也可以参与。
- 向 CentOS Stream 推送的更新是通过了 RHEL 测试人员测试后的版本,从开发流程上讲,CentOS Stream 的质量就是以前 RHEL 的质量,而以后的 RHEL 将变成 CentOS 的下游,将更加保守稳定。所以 CentOS Stream 并不是小白鼠版本。
- 多数 bug (除个别未公开的安全漏洞外)的修复将在第一时间推送到 CentOS,CentOS 将比 RHEL 更快地获得 bug 修复。
看了这个解释后,对于网络上存在的争议相对来说是比较明确了。RedHat 固然有利用CentOS Stream的心理,但是为了保证使用者的质量,也是不得不按照严格的标准去执行滚动更新。至于RedHat会不会自毁名声让更多CentOS用户脱离,随着CentOS Stream 9 的发布,再等些时间我们就可以看见结果。
CentOS Stream 跟 CentOS 基本上都是一样的,没有差别。我们现在使用的CentOS 7 跟 CentOS Stream 9 可能有些差别,包括用户读取变量或者是启动文件位置等都有差别,具体差别需要验证下才可以确定,其他操作没有差别。如果选择这个作为我们生产环境的操作系统还是不怎么建议,因为无论怎么更新,我们始终在漏洞的前面,任何新的漏洞都有可能导致被攻击利用。
在测试环境使用,CentOS Stream可以替换现在使用的CentOS 7镜像。
Ubuntu server
除了使用开源的CentOS 系统以外,我们还可以选择的系统有 RHEL 的个人订阅系统,Ubuntu系统,debian系统,oracle Linux系统,opensuse系统,以及国内的发行版Linux系统。其中热度比较高的是Ubuntu系统和debian系统。
这个图片数据来自Ubuntu官网,这个数据应该是Ubuntu桌面系统的份额。搜索Linux服务器系统占比时,出现的只有windos server 与Linux服务器系统的对比,然而每个Linux发行版之间的比较没有最新数据,大多数停在2010年统计的数据。
Ubuntu发行版开始是桌面版,后来扩展了Ubuntu server系统,现在的占有比例赶不上CentOS RHEL,但是也是一个比较热门的系统了。很多人在网上争论Ubuntu server 稳定性问题,个人感觉,几乎不会有相差。唯一的区别是我们现在使用的所有软件都是CentOS/RHEL 的版本,替换成Ubuntu server 需要重新编辑。Ubuntu作为服务器系统这几年还是挺火热的,各种资源也很丰富,解决起来难度不大。
现在的趋势是走容器化路线,走k8s路线,以后对于服务器系统的依赖会越来越小。Ubuntu是开源云构建最广泛使用的开发者平台,也是OpenStack的参考操作系统,更是全球私有云和公有云上最流行的客户机操作系统。
Ubuntu 每两年出新版本,LTS版本提供五年的安全更新,系统更换频率较小,可以满足我们生产环境的需求。
下面是Ubuntu系统跟CentOS 7 系统上的差别,这些只是一些基本上的差别。
内核
Ubuntu
使用LTS
版本内核5.4
,但是默认没有开启swap limit
,这个在使用Docker
这样的容器时,要注意,如果带有--memory-swap *
参数时候可能无法生效,当然,没什么特殊需要,swap
还是别开了。
CentOS 7
使用3.10
内核,而CentOS 8
使用4.18
内核。
Ubuntu
在使用上大部分情况下无需再更新内核大版本,支持的新特性也比较多。
软件管理
CentOS
默认使用yum
管理rpm
包,Ubuntu
使用apt
管理deb
包。
默认情况下,使用apt-get install
不仅会安装软件,也会默认启动,安装前记得先用apt-get update
刷新更新源信息。
另外软件包名称有巨大差别,你可能需要适应一段时间
防火墙设置
CentOS
默认使用Firewalld
,而Ubuntu
默认使用ufw
,大部分情况下ufw
没有开启。
安全软件
Ubuntu
默认自带Apparmor
,并且自动开启,在使用默认安装源安装类似MySQL
的时候,如果有需要更改数据目录,记得在Apparmor
中添加白名单。这个类似于centos 的 selinux ,如果selinux 开启的话安装软件有可能受限,在Ubuntu 系统上相同作用。
Debian
Debian 于 1993年8月16日 由一名美国普渡大学学生 Ian Murdock 首次发表。
Debian 是由 GPL 和其他自由软件许可协议授权的自由软件组成的操作系统, 由 Debian 计划 (Debian Project) 组织维护。Debian 计划没有任何的营利组织支持,它的开发团队完全由来自世界各地的志愿者组成, 官方开发者的总数就将近 1000 名,非官方的开发者为数更多。
Debian 计划组织跟其他自由操作系统(如 Ubuntu、openSUSE、Fedora、Mandriva、OpenSolaris 等)的开发组织不同。 上述这些自由操作系统的开发组织通常背后由公司或机构支持。而 Debian 计划组织则完全是一个独立的、分散的开发者组织,纯粹由志愿者组成, 背后没有任何公司或机构支持。
Debian 以其坚守 Unix 和自由软件的精神,以及其给予用户的众多选择而闻名,其目标是成为 The Universal Operating System,即“通用操作系统”。现在 Debian 包括了超过 25,000 个软件包并支持 12 个计算机硬件构架。
Ubuntu 与 Debian 的关系
Debian Stable 版总是相对保守,而其他分支却没有较好支持,同时管理上也过于民主,造成决策缓慢。这样 Debian 开发者之一的 马克·舍特尔沃斯 决定创建 Ubuntu 项目。
Ubuntu 基于 Debian 的 unstable 或者 testing 分支,同时对来自 Debian 的部分软件包进行了一定的修改,以使其更加适合桌面使用。 同时,优化了安装过程,使 Ubuntu 安装起来更加容易。
因为,Ubuntu 对 Debian 的改动比较大,Ubuntu 建立了自己的软件仓库。但是这其中的大部分软件包都是不加修改的直接从 Debian 软件仓库同步过来的。 当然也有部分软件是 Ubuntu 开发者从上游开发者处直接获得,打包得到。但是这两种情况并不是很多。
Debian对于Linux新手来说并不是很友好,其中一系列的操作都是比较麻烦的,这个系统的名气在国内就不如Ubuntu高。Debian系统稳定性或者是功能,跟RHEL 这种商业收费的系统相比,几乎没有差别。RHEL 可以享受的是REDHAT的售后服务,像这种开源免费的系统,不享受服务。
oracle Linux
自 2006 年以来,Oracle Linux 就可以完全免费下载和使用。源代码、二进制、更新、分发,所有生产使用均免费。oracle 与redhat 实现完全应用二进制兼容,这个也是我们可以使用oracle Linux 替换centos 的原因。
oracle Linux 可以选择使用哪种内核,其中包括了oracle 更改过的两个内核,以及rhel 的内核。我们如果完整替换生产环境的话,最好选择的是rhel 的内核。
还有就是oracle 提供了一键切换脚本,替换系统相对简单,让很多centos 用户选择了oracle Linux 作为新的操作系统。
https://docs.oracle.com/zh-cn/solutions/migrate-centos-ora-linux/index.html#GUID-96F5A043-0374-40A3-A41C-CB7FACAB9447
国产系统以及其他linux 项目
现在在github 上很火热的linux 系统,基本上是什么都没有,至于什么时候可以开发完成也不知道,我们如果继续使用现在的centos 系统的话,还可以使用到2024年。如果他们在哪里之前没有开发完成,基本上可以宣告项目破产。
我看了他们的宣传,要完整克隆出来centos 系统的所有特性。这个可以等待下,等到已经有发行版出来的时候,可以第一时间去下载使用测试下。如果使用起来没有任何差距的话,我们可以考虑将生产环境替换成新的Linux系统。
对于国产Linux系统,很少会有人去选择。深度deepin,中标麒麟,Alibaba Cloud Linux,以及腾讯开发的TencentOS Server kernel等国产Linux系统针对方向很大不同。
deepin 有些偏向于桌面式的操作,其中有很多windows下的操作逻辑,主要使用与军政机关等地方。中标麒麟也是一样。我们作为开发者很难使用这样的系统,所以不用考虑。
阿里与腾讯开发的Linux系统主要是作为云上服务器的操作系统,都是与RHEL/Debian 系统兼容。他们的主要特性是针对云端应用的优化,让云用户更简单安装使用。他们没有相关的脚本做迁移,所以我们需要完整备份每个应用下的所有目录,然后在新系统上进行部署。这种迁移方式相对来说比较麻烦,尤其是涉及到启动方式的更改,有可能导致我们迁移失败。
Leave a comment