1.3 Red Hat Enterprise Linux简介
本书使用的Linux发行版本是Red Hat Enterprise Linux 8.0。
1.3.1 发展轨迹
Red Hat Linux是商业上运行最为成功的Linux发行套件,普及程度很高,由Red Hat公司发行。它算是“中年”的Linux发行套件,其1.0版本于1994年11月3日发行。虽然历史不及Slackware悠久,但与大多Linux发行套件相比,Red Hat Linux的历史要悠久得多。Red Hat Linux中的RPM软件包格式可以说是Linux社区的一个标准,被广泛应用于其他Linux发行套件中。以其为基础派生的Linux发行套件有很多,其中包括以桌面用户为目标的Mandrake Linux(原为包含KDE的Red Hat Linux)、Yellow Dog Linux(原为支援PowerPC的Red Hat Linux)和ASPLinux(对非拉丁字符有较好支援的Red Hat Linux)。自从Red Hat Linux 9.0版本发布后,Red Hat公司就不再开发桌面版的Linux发行套件了,而是将全部力量集中在服务器版的Linux开发上,即Red Hat Enterprise Linux版。2004年4月30日,Red Hat公司正式停止对Red Hat Linux 9.0版本的支援,这标志着Red Hat Linux的正式完结。原桌面版Red Hat Linux发行套件则与来自民间的Fedora项目合并,成为Fedora Core发行版本。Fedora Core发行版本是免费发放的,但Red Hat不提供任何正式支持,也不保证软件和硬件的兼容性,这与Red Hat Enterprise Linux不同。
Red Hat Linux的发展过程主要可以分为Red Hat Linux、Red Hat Enterprise Linux和Fedora Core共3个系列。Red Hat公司主要的Linux版本如表1-1所示。
表1-1 Red Hat公司主要的Linux版本
续表
由表1-1可知,2002年以前,Red Hat公司只有一种产品线,即Red Hat Linux,它从Red Hat Linux 0.9一直发展到Red Hat Linux 9.0,之后不再以该名称发布产品。2002年,Red Hat迫于赢利的压力,新开发了一种产品,即Red Hat Enterprise Linux系列产品,这一产品向用户提供了更高级的技术支持,使Red Hat公司获得了更多收益。由于Red Hat Enterprise Linux系列产品的推出,Red Hat公司的研发注意力从Red Hat Linux系列转移到Red Hat Enterprise Linux系列上,这使得大量免费使用Red Hat Linux的个人用户很不高兴。加上其他同类免费Linux产品的竞争,为了拉拢Red Hat Linux原有的个人用户,守住已有用户群,Red Hat公司决定放弃Red Hat Linux系列产品线的单独研发,将之合并到Fedora项目中并推出了新的免费产品线Fedora Core。事实上,Fedora Core只是Red Hat的实验品,其功能将在实验成功后融入Red Hat Enterprise Linux。
Fedora是一个由Red Hat公司策划的项目,它向普通参与者开放并由精英管理者领导,沿着一系列项目目标前进。Fedora项目的目标是与Linux社区协作,通过开放源码软件来创建一个完整且通用的操作系统,其开发过程是以公开论坛的形式进行的。Fedora 项目将按时间计划进行,Fedora Core每年发布2~3次,并提供一份公开的发布日程表。Red Hat工程组将继续参与Fedora Core的开发,并且邀请和鼓励更多外界人员参与。Red Hat公司通过采用这样一种更加开放的过程,希望能提供一份更加符合自由软件理念,并且对开放源码社区更具吸引力的操作系统。
图1-1是Red Hat Enterprise Linux各版本的时间线示意图。
图1-1 Red Hat Enterprise Linux各版本的时间线示意图
1.3.2 Red Hat Enterprise Linux和Fedora Core之间的区别
Red Hat Enterprise Linux是一个企业操作系统,而Fedora Core不是。Fedora Core不适合关键性企业使用。企业需要稳定的系统操作,支持高性能硬件,快速发布补丁和维护支持。Red Hat Enterprise Linux是了解这些要求的产品。例如,Red Hat Enterprise Linux已经应用内核补丁来支持高性能高端服务器,产品订阅的注册包括获取发布后的错误信息、补丁下载和维护支持等。订阅用户可以使用Red Hat公司的Red Hat Network(RHN)接收服务,也可以通过OEM厂商发布的Red Hat Enterprise Linux获得类似的支持。Fedora Core是一个包含许多高级功能的有吸引力的新软件的发行版,不是一个可以承受需要高稳定性的企业操作系统。Fedora Core拥有比Red Hat Enterprise Linux更新版本的内核,但是一些具有高级功能的内核尚未经过全面测试,不良测试产品的运行不足会对核心运营产生重大影响。通常,安装在企业系统中的操作系统会在系统出现故障时向供应商发送日志、内存转储和故障报告,然后供应商会对其进行分析。供应商有一系列支持流程,可根据分析结果创建补丁并将其应用于客户系统。此外,供应商是根据合同的内容提供维护的;客户是根据他们购买的产品或系统合同获得维护支持的。Red Hat Enterprise Linux可以提供这样的维护支持,但Fedora Core却不可以。因为Fedora Core开发基础只是一个社区,所以除非一些基于志愿者的开发人员创建补丁,否则系统错误将无法被修复。由于Fedora Core没有维护合同,所以在未发布补丁的情况下即使操作失败,或者安全性受到威胁,也有可能没有任何改进。因此,采用Fedora Core作为企业操作系统风险太大。
1.3.3 Red Hat Enterprise Linux 8.0简介
1.对比Red Hat Enterprise Linux 7.0
与Red Hat Enterprise Linux 7.0相比,Red Hat Enterprise Linux 8.0在应用性能、可扩展性和安全性方面都有巨大改进。Red Hat Enterprise Linux 8.0和Red Hat Enterprise Linux 7.0的主要功能对比如表1-2所示。
表1-2 Red Hat Enterprise Linux 8.0和Red Hat Enterprise Linux 7.0的主要功能对比
续表
2.内核
Red Hat Enterprise Linux 8.0内核为4.18 Kernel,该版本内核是最新的LTS长期支持版。对于长期支持,有些读者朋友可能不是很清楚,究竟多长才算长呢?对于Red Hat Enterprise Linux,一般是7~10年的免费升级服务,再加上3~5年的付费支持服务,如果有必要,企业还可以单独付费来获得专门扩展支持。
Red Hat服务承诺需要建立在深厚的技术储备和持久的业务基础上。4.18 Kernel支持5级分页能力,处理器转换线性地址从48位提升到57位,这使得物理内存限制从64TB提升到4PB,可管理的虚拟地址更是高达128PB。
3.文件系统
Red Hat Enterprise Linux 8.0默认文件系统为XFS。XFS支持Copy-on-write,这使得多个文件可以共享数据块,节约存储空间,也方便容器的应用。Copy-on-write可通俗地称为写时拷贝,也就是说读的时候并不需要拷贝 stratis 卷文件系统的支持,更方便支持文件快照、块存储池等特性需求。Virtual Data Optimizer(VDO)虚拟数据层可以管理、重用和压缩文件存储块设备。按照文档建议,虚拟机或者容器给虚拟文件系统预留的空间和物理尺寸的比例是10∶1,而对于对象存储系统,如Ceph,该比例也可以达到3∶1,也就是说,可以极大地减少实际物理空间的占用。
4.网络和防火墙
Red Hat Enterprise Linux 8.0用nftables替代了iptables,来作为默认的网络包过滤防火墙。新版本操作系统支持IPVLAN虚拟网络驱动,使得多个容器使用虚拟网卡,把网络接口暴露成单个MAC地址,使得主机可以容纳更多容器实例。Red Hat Enterprise Linux 8.0不再支持SUN RPC/NIS协议。
5.包管理工具
Red Hat Enterprise Linux 8.0全面使用了yum 4,yum 4是基于dnf的包管理工具,避免了yum之前版本的很多问题。另一个大的改进是,提供了AppStream功能,类似于Ubuntu Linux的Snap。
Red Hat Enterprise Linux的包分为两大类,即BaseOS和AppSteam。BaseOS是基础系统,包含操作系统必备的功能。其他众多的包则转移至AppSteam来管理,加入了module的概念。module是由一个或者若干个RPM软件包组成的完整功能包。
6.服务器基本功能
Red Hat Enterprise Linux 8.0的Apache httpd服务器升级到了2.4.35版本,这个版本默认采用event模式,即多线程高性能的模式,替换了之前一直采用的prefork(多进程模式)。新版本的软件提供mod_http2模组,支持HTTP 2;支持从硬件加密设施中加载TLS证书和私钥;各种数据库也得到全面升级,包括 MySQL 8、MariaDB 10.3、PostgreSQL 10、PostgreSQL 9.6、Redis 4等。
7.管理工具
Red Hat Enterprise Linux 8.0发布说明第一个介绍的重要特性就是管理工具Cockpit,这个由 Red Hat 主导的管理工具会成为未来企业管理服务器的一个重要助手。Cockpit 采用JavaScript和C开发,具备完备的界面管理功能。Cockpit目前可以管理系统全局、日志、网络、账户、服务、应用、诊断、内核、安全、虚拟机、容器等几乎所有的服务器功能;也可以通过网络管理其他服务器。Cockpit 的含义是驾驶员座舱,Linux 上的 Cockpit 就是操控这个操作系统的集中入口。原来的 Virt-manager 工具,即管理 KVM 虚拟机的图形界面工具,就被Cockpit替代了。这样来看,其他各种图形工具都是Cockpit替换的目标。
8.安全
Red Hat Enterprise Linux 8.0系统级支持TLS 1.3,openssl版本也进行了对应升级,加密块设备LUKS也升级到了版本2(对于需要保密的商业信息,建议存放在加密文件系统中),并移除了DSA算法支持。
9.高可用
Red Hat Enterprise Linux 8.0采用chrony和pacemaker工具构建高可用服务器,Linux集群和高可用技术。
10.桌面
Red Hat Enterprise Linux 8.0采用GNOME 3.28桌面,采用Wayland 显示X服务器,不再支持KDE桌面环境。
11.开发环境
GCC版本升级到8.2,glibc库的版本升级至2.28,Boost库的版本也升级到1.64。
支持 Cmkae 编译工具,调试工具 SystemTap 升级到 4.0 版本,Valgrind 升级到 3.14版本。
全面采用Python 3,Python 2不再默认安装。
Java开发环境提供OpenJDK 11,也可以选择OpenJDK 8,已经升级到最新的191版本。提供了.NET core 2.1 开发环境。Red Hat对于.NET的支持还是大的。
12.虚拟化
KVM在内核中已经成熟而稳定。
libvirt库和QEMU工具也非常好用。
最新提供了Composer工具,用来创建虚拟机镜像,可以配合Cockpit和Openstack进行虚拟机管理。
13.容器技术
Red Hat主导了容器规范,包括运行时和镜像格式。runc和containd是容器各层次的组件。Red Hat Enterprise Linux 8.0还提供了容器的管理工具,如podman管理容器的客户端工具,命令行基本和Docker兼容;buildah创建OCI兼容的容器镜像;skopeo容器镜像仓库工具。
14.支持的处理器类型
Red Hat Enterprise Linux 8.0支持的处理器类型主要包括如下4种。
(1)AMD和Intel 64位处理器。
(2)ARM 64位处理器。
(3)IBM Power处理器。
(4)IBM Z处理器