RHEL8的新特性简介

RHEL8是在2019年4月份发布,和RHEL7相比,变化并不是很大。每6个月迭达更新一个版本,2019年10月份发布8.1版本,2020年4月份发布8.2版本。

系统简介

1、RHEL8使用的kernel版本是4.18+
2、RHEL8是通过GCC8.2和LLVM6.0进行编译的,支持Intel/AMD 64-bit、IBM Power LE、IBM z Systems、ARM 64-bit架构。
3、RHEL8默认文件系统为xfs,也支持ext4,至于格式的选择,要基于场景,使用测试软件测试后评估。大部分场景xfs要优于ext4。
4、RHEL8软件包的封装使用的是yum v4即dnf-3,RHEL8已经使用dnf替换掉Yum了,但yum命令依然可用,只是dnf的一个软链接。

[root@localhost ~]# ll /usr/bin/yum 
lrwxrwxrwx. 1 root root 5 Nov 12 23:35 /usr/bin/yum -> dnf-3
[root@localhost ~]# ll /usr/bin/dnf* 
lrwxrwxrwx. 1 root root    5 Nov 12 23:35 /usr/bin/dnf -> dnf-3
-rwxr-xr-x. 1 root root 1954 Nov 12 23:35 /usr/bin/dnf-3

5、RHEL8时钟同步只支持chrony,ntp不再支持。ntp同步一次时间可能需要10秒钟,而chrony只需要1-2秒即同步完成,而且chrony收敛方式是从4个维度进行收敛,速度非常快,占用系统资源也比较少。
而且在断网时,chrony会根据计算的RTC的时钟漂移来计算时间(driftfile变量),即使主板电池时间不对也不会影响操作系统时间。
6、RHEL8网络只支持NetworkManager,原来的network不再支持。现在网卡的配置文件只能使用NetworkManager进行管理,如果禁用NetworkManager服务,手动的去配置网卡的配置文件,那么在NetworkManager启动时会将配置文件改回去。
7、RHEL8生命周期是3年,到2022年将发布RHEL9的版本,每隔6个月一个小更新,支持周期一直是2个版本没变。即发布RHEL8时将不再支持RHEL5,RHEL9发布时RHEL6生命周期结束。
PotPlayerMini64_200414102204.jpg
8、RHEL8之前操作系统就只有1个仓库,现在默认有2个仓库(光盘或订阅中都一样),一个为BaseOS频道,一个为AppStream频道。
BaseOS频道主要提供与操作系统本身相关的一些软件,AppStream频道中主要提供与操作系统关联的各种应用。
AppStream频道支持一个软件的不同版本共存,如即使用RHEL8光盘即可以安装PostgreSQL9.6版本,也可以选择安装PostgreSQL10版本。
rhel8启用module,增加了依赖性关系处理,管理同一软件的不同版本。
原来rhel7中的extras、rhscl、dotnet、devtools频道在rhel8中统一合并到appstream频道了。
[root@localhost ~]# yum module list
Xshell_200416102347.jpg
Xshell_200416102411.jpg
可以看到列出的模块有postgresql9.6、10、12三个不同版本。另外rhel8默认安装支持的Mysql版本为:mariadb 10.3和mysql 8.0
安装postgresql9.6的版本:
[root@localhost ~]# yum module install postgresql:9.6
Xshell_200414140821.jpg
注意:同一时间只能安装一个版本,如果安装第二个版本时会报错:
Xshell_200414143641.jpg
如果要安装另一个版本,按照错误提示,需要reset module
It is recommended to remove all installed content from the module, and reset the module using 'dnf module reset <module_name>' command. After you reset the module, you can install the other stream.
[root@localhost ~]# dnf module reset postgresql
Xshell_200414143955.jpg
reset module时不会发生什么,只是把版本号重置一下。再次安装另一个版本就可以正常安装了。
[root@localhost ~]# yum module install postgresql:10
Xshell_200414144217.jpg
从安装过程,可以看出dnf是先cleanup原来9.6版本,再upgrade到新版本。
Xshell_200414150528.jpg
9、如何制作一张linux启动U盘

[root@localhost ~]# dd if=/root/rhel8.iso of=/dev/sdd bs=4M

注:sdd为U盘设备,切记不要搞错设备,否则会把数据全部抹除并分区。另外,这种方法一样适用于制作windows启动盘。
10、rhel8订阅用户,红帽还免费提供一个Red Hat Insights的服务,类似360安全卫士,会对系统进行监控分析,报告系统存在的风险,以便用户及时修复。
11、可基于blueprint创建虚拟机镜像,以便导入到openstack、kvm、公有云、私有云中运行。
12、rhel8提供ansible自动化运维来管理操作系统
13、rhel8中使用Podman来管理容器,已放弃docker。
14、rhel8中已完全使用nftable彻底替换掉了iptable。
15、可基于web界面来管理操作系统。

rhel8使用COCKPIT管理服务器,移除所有system-config-*工具(rhel7图形化)
通过浏览器进行操作系统常规管理(用户、服务、存储、网络、防火墙、订阅、虚拟机、容器、映像制作、监控等)
具备系统统计图表和日志查询功能,具备终端,以及通过添加插件扩展功能。
1>. 安装cockpit,在最小化安装下默认是没有安装cockpit服务的。
    [root@localhost ~]# yum install cockpit
2>. 配置服务自启动同时启动cockpit服务
    [root@localhost ~]# systemctl enable cockpit.socket --now
    Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket → /usr/lib/systemd/system/cockpit.socket.
    默认firewalld已经将cockpit添加到services规则中,不需要再防火墙放行9090端口。
3>. 使用浏览器登录控制台
    输入登录地址:https://192.168.1.121:9090

chrome_200414153339.jpg
输入用户名和密码,登录。如果觉得输入root不安全,可以先创建一个普通用户,使用普通用户登录。授于普通用户sudo权限,勾选Reuse my password for privileged tasks,提升权限以执行需要管理员权限的任务。
登录成功的界面
chrome_200414154119.jpg
可以在web界面管理服务器,包括修改主机名,设置时间/时区,重启或关闭计算机等。
在Performance Profile选项,还可以进行傻瓜化的系统调优。cockpit默认会有推荐的优化选项。
chrome_200414154600.jpg
可以图形化的查看日志,配置网络,配置防火墙规则、管理用户账号、配置服务(包括服务的依赖关系,启动顺序)、安装管理应用、诊断报告信息收集、Kernel Dump(运行两个内核,当正常运行内核崩溃时,由另一个内核接管,将崩溃内核的内存dump出来,生成一个文件,默认保存于/var/crash,然后正常的关机。),配置SELinux、管理软件更新、Terminal窗口等。
chrome_200414161759.jpg
在用户显示语言里,可以选择显示语言。例如选择简体中文,重新登录界面就变成中文的了。
在应用里安装Storage后,在左侧即会显示存储的相关信息。
chrome_200414163154.jpg
另外,还可以通过安装cockpit的插件(如制作光盘镜像的插件),来实现更多的功能。
例如:[root@localhost ~]# yum list |grep cockpit
Xshell_200414161010.jpg
[root@localhost ~]# yum install cockpit-dashboard
安装完成,重新登录。web界面左侧会多一例出来,有localhost和dashborad两个选择。点击dashboard即可添加新的服务器一起管理。即一个web界面可以管理多台服务器。
chrome_200414161330.jpg
注:CentOS7也可以安装cockpit,进行web管理。

[root@slave1 ~]# yum install cockpit
[root@slave1 ~]# systemctl enable cockpit.socket --now
[root@slave1 ~]# firewall-cmd --zone=public --add-service=cockpit --permanent 
[root@slave1 ~]# firewall-cmd --reload
[root@slave1 ~]# yum list |grep cockpit
cockpit.x86_64                              195.1-1.el7.centos.0.1     @extras  
cockpit-bridge.x86_64                       195.1-1.el7.centos.0.1     @extras  
cockpit-system.noarch                       195.1-1.el7.centos.0.1     @extras  
cockpit-ws.x86_64                           195.1-1.el7.centos.0.1     @extras  
cockpit-composer.noarch                     1-1.el7                    extras   
cockpit-dashboard.x86_64                    195.1-1.el7.centos.0.1     extras   
cockpit-doc.x86_64                          195.1-1.el7.centos.0.1     extras   
cockpit-docker.x86_64                       195.1-1.el7.centos.0.1     extras   
cockpit-kubernetes.x86_64                   195.1-1.el7.centos.0.1     extras   
cockpit-machines.x86_64                     176-4.el7.centos           extras   
cockpit-machines.noarch                     195.1-1.el7.centos.0.1     extras   
cockpit-machines-ovirt.noarch               195.1-1.el7.centos.0.1     extras   
cockpit-packagekit.x86_64                   176-4.el7.centos           extras   
cockpit-packagekit.noarch                   195.1-1.el7.centos.0.1     extras   
cockpit-pcp.x86_64                          195.1-1.el7.centos.0.1     extras   
cockpit-storaged.noarch                     195.1-1.el7.centos.0.1     extras   
cockpit-subscriptions.noarch                160-1.el7.centos           extras   
cockpit-tests.x86_64                        195.1-1.el7.centos.0.1     extras   
cockpit-ws.i686                             195.1-1.el7.centos         base     
subscription-manager-cockpit.noarch         1.24.13-4.el7.centos       updates  
[root@slave1 ~]# yum install cockpit-packagekit  #安装应用管理模块
[root@slave1 ~]# yum install cockpit-storaged   #安装存储应用

安装完成后,在dashboard仪表板添加这台服务器,然后就可以和CentOS8等一起管理了。
chrome_200416095434.jpg
chrome_200416095554.jpg
16、rhel8使用vdo压缩存储和删除重复数据。
RHEL8包含虚拟数据优化器(VDO)驱动程序,可以优化块设备上数据的空间占用
vdo命令可管理和配置VDO卷,vdostats命令显示VDO卷的使用情况和块I/O
VDO包括两个内核模块,kvdo模块可控制数据压缩,uds则可用于重复数据删除
VDO通过三个阶段来减小数据在存储上占用的空间,分别为零块消除,冗余块重复数据删除,以及数据压缩
VDO卷包括UDS(每个块名称和位置,即索引)和VDO(卷数据和元数据)两部分
PotPlayerMini64_200414164449.jpg
PotPlayerMini64_200414164538.jpg
VDO特性演示:
1>. 安装vdo,默认最小化安装不会安装vdo。
[root@localhost ~]# yum install vdo
[root@localhost ~]# lsblk
有一个10G的分区未使用,拿这个分区来做测试。
Xshell_200415160116.jpg
2>. 创建vdo并格式化和挂载
[root@localhost ~]# man vdo
查看vdo的帮助文档,然后搜索example,查到常用的实例,按照example来创建
[root@localhost ~]# vdo create --name=vdo1 --device=/dev/nvme0n1p3 --vdoLogicalSize=20G
Xshell_200415160842.jpg
检查压缩和查重功能是否开启,enabled表示已开启

[root@localhost ~]# vdo status -n vdo1 |grep Compre
    Compression: enabled
[root@localhost ~]# vdo status -n vdo1 |grep Dedup
    Deduplication: enabled

格式化并挂载
[root@localhost ~]# mkfs.xfs /dev/mapper/vdo1
Xshell_200415161241.jpg
可以看到,挂载的/mnt/vdo1的大小为20G,即将10G的磁盘虚拟成20G的空间使用。
3>. 拷贝文件到vdo1目录,检查磁盘占用情况
Xshell_200415162317.jpg
可以看到,拷贝第1个617M的iso文件到vdo1目录,vdo1空间占用792M,拷贝第2个617M的iso文件到vdo1目录,vdo1空间自然增长到1.4G,第3个增长到2.0G。按照拷贝的文件大小在变化。
[root@localhost ~]# vdostats --human-readable
通过vdostats命令查看物理磁盘的占用情况,发现拷贝第1个文件时使用4.6G,当拷贝第2个,第3个相同的文件时,依然使用4.6G。即通过去重,物理占用的空间不再增加。
这个特性用于备份还是挺节省磁盘空间的。
注:CentOS7也支持vdo,方法同上。
17、rhel8不再使用X11,而是使用Wayland替代X11,性能改进,架构简化。

发表新评论