http://www.10tiao.com/html/360/201811/2663490924/1.html
原文标题:RHEL 8 Beta新特性探究和下一阶段企业云能力展望
RHEL(RedHat Enterprise Linux,红帽企业Linux操作系统)8版本的Beta版于11月15日发布了。看到这个消息,我才意识到RHEL版本从7到8的跨度居然已经有5年,超出了过去任何一个大版本的发布周期。
RHEL7前段时间发布了7.6版本,而版本7到目前为止,非常完备而稳定。
RHEL和其衍生Linux,包括Centos,Oracle Linux,Amazon Linux,目前统治着大半个企业服务器和整个互联网主机系统的市场。
按照惯例,版本8应该在2017年发Beta版,今年发布正式版。但为什么推后了很长时间,多数开发者和运维技术人员并没有很强的新版本需求期待呢?
一个原因是这几年云相关的技术,多数都是从互联网团队或者创业公司开创的,融入“传统”的操作系统需要一段时间。
目前云基础技术多数趋向方向明朗化,而且红帽在云技术方面技术储备也足够。
那么RHEL 8作为下一代的Linux,会给企业云带来什么样的技术视野呢?
RHEL 8基于Fedora 28,也会选用Fedora 29甚至30的优秀内容。本文按照以下特性来分析:
内核,文件系统,网络,包管理,基本功能,管理工具,安全,高可用,桌面,开发环境,虚拟化,容器技术。
因为目前Linux市场上,Ubuntu是有力的挑战者。所以在部分方面,加入和Ubuntu的对比。
内核
采用Linux Kernel 4.18。这个版本是最新的LTS长期支持版。
对于长期支持,有些读者朋友可能不是很清楚,究竟多长才算长呢?对于RHEL,一般是7-10年的免费升级服务,再加上3-5年的付费支持服务,如果有必要,企业还可以单独付费获得专门扩展支持。
这个服务承诺,需要建立在深厚的技术储备和业务持久的基础上。
4.18 Kernel支持5级分页能力,处理器转换线性地址从48位提升到57位,从而使得物理内存限制从64TB提升到4PB,可管理的虚拟地址更是高达128PB之多。
文件系统
-
XFS支持Copy-on-write能力,这样多个文件就可以共享数据块,节约存储空间,也方便容器应用的使用。
-
Stratis卷文件系统的支持,更方便支持文件快照,块存储池等特性需求。
-
Virtual Data Optimizer(VDO)虚拟数据层,可以管理,重用和压缩文件存储块设备。按照文档建议,对于虚拟机或者容器,给虚拟文件系统预留的空间和物理尺寸是10:1,而对于对象存储系统,比如Ceph,比例也可以达到3:1。也就是说,可以极大的减少实际物理空间的占用。
网络
-
nftable替代了iptables,作为缺省的网络包过滤组件
-
支持IPVLAN 虚拟网络驱动,使得多个容器使用虚拟网卡,暴露成单个的mac地址,使得主机可以容纳更多的容器实例。
-
移除了Sun RPC/NIS协议支持。
包管理
RHEL全面使用Yum 4 ,基于DNF包管理工具,避免了Yum之前版本的很多问题。
另外一个大的改进是,提供了Application Stream功能,有点类似Ubuntu的Snap。
RHEL的包分为两大类:
-
BaseOS是基础系统,包含操作系统必备的功能。
-
其他众多的包则转移到AppSteam来管理,加入了module的概念,为一个或者若干个rpm包组成的完整功能包,可以或者需要一起安装若干个rpm包。
module可以包括多个版本,用户在安装时可以选择需要的版本,如
yum install @postgresql:9.6
这样就安装好postgresql模块的9.6版本。通过module,可以实现系统中同时安装不同版本的包。默认一般为最新版,可以看成是虚拟仓库,每一个module可以有一个或者多个profiles。
划分基本核心包和应用包非常正确。核心部分需要的是稳定,而应用部分在一个大版本的生命期中,可能已经更新换代过很多次了,特别是现在流行的半年甚至3个月大版本演进策略。
应用程序使用AppStream和module这种方式管理,用户选择更灵活。
基本功能
我们重点看服务器部分的功能。
RHEL 8 的Apache httpd服务器升级到了2.4.35版本,这个版本缺省采用event模式,即多线程高性能的模式,替换了之前一直采用的prefork,即多进程模式。
提供mod_http2模组,支持HTTP2协议。支持从硬件加密设施中加载TLS证书和私钥。
各种数据库也全面升级,包括Mysql 8,MariaDB 10.3, PostgreSQL 10 和 9.6, Redis 4, 等版本。
管理工具
在发布说明中,第一个介绍的重要特性就是管理工具Cockpit。这个由红帽主导管理工具,会成为未来企业管理服务器的一个重要助手。
Cockpit采用Javascript和C开发,具备完备的界面管理功能。目前可以管理系统全局,日志,网络,账户,服务,应用,诊断,内核,安全,虚拟机,容器等几乎所有的服务器功能。也可以通过网络管理其他服务器
Cockpit英文含义就是驾驶员座舱,机长可以操控庞大的飞机。那么Linux上的Cockpit,也会成为操控这个操作系统的集中入口了吧。
值得一提的是,原来Virt-manager工具,就是管理kvm虚拟机的图形界面工具,就被Cockpit替代了。这样来看,未来分散各处的X打头的图形工具,都是Cockpit替换的目标。
Cockpit不但用于红帽操作系统,在Ubuntu上也可以安装使用。
安全
-
系统级支持TLS 1.3,openssl版本对应升级。
-
加密块设备LUKS也升级到版本2,对于需要保密的商业信息,建议存放在加密文件系统中。
-
移除了DSA算法支持。
高可用
采用Chrony和Pacemaker工具构建高可用服务器。
Linux集群和高可用技术,近几年发展变化很大,关于这方面有时间再撰文介绍。
桌面
采用GNome 3.28 图形桌面,采用Wayland 显示X服务器。
目前Ubuntu也切换回GNome图形环境了,至此可以说GNome在X图形竞争中取得完胜。
开发环境
-
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 开发环境。红帽对于dotNET的支持还是很助力的。
虚拟化
-
KVM在内核中已经成熟而稳定。
-
libvirt库和QEMU工具也非常好用。
-
提供了Composer工具 创建虚拟机镜像
-
配合Cockpit和Openstack进行虚拟机管理
容器技术
红帽主导了容器规范,包括运行时和镜像格式。runc和containd都是容器各层次的组件。
在RHEL中,还提供了容器的管理工具,包括:
-
podman管理容器的客户端工具,命令行基本和docker兼容
-
buildah创建OCI兼容的容器镜像
-
skopeo容器镜像仓库工具
通过上面功能特性,特别是云服务相关,我们可以看出RHEL在技术引领方面的“野心”,也是为未来企业混合云提供技术准备。
因为时间有限,本文只简单介绍重要的功能。
对于中间件开发和云计算服务提供,Linux是重要的技术设施,也是很多应用系统优化调试的关键所在。