RH354 RHEL 8 New Features for Experienced Linux Administratorshtml
Introduction前端
Chapter 1: Previewing RHEL8python
Section 1.1: Red Hat Enterprise Linux 8 Overviewlinux
Chapter 2: Installing or Upgrading to RHEL8程序員
Section 2.3: Upgrading Servers to RHEL8web
Chapter 3: Provisioning and Configuring Servers算法
Section 3.1: Performing Package Management using Yumdocker
Section 3.2: Administering Servers with Cockpitshell
Chapter 4: Adapting to Core System Changes編程
Chapter 5: Implementing Storage Using New Features
Section 5.5: Administering NFS Enhancements
Chapter 6: Managing Containers with the New Runtime
Section 6.1: Deploying Containers with the New Container Runtime
Chapter 7: Implementing Enhanced Networking Features
Section 7.1: Managing Server Firewalls in RHEL 8
Section 7.3: Configuring Server Networking with NetworkManager
Chapter 8: Adapting to Virtualization Improvements
Section 8.1: 配置虛擬機
Introduction
Course Objectives
經過了解操做系統關鍵功能的更改,準備部署RHEL8
瞭解如何使用RHEL8的關鍵新功能,以便利用針對用例的新功能。
Prerequisites
(EX200 / RHCSA. RHCE certification may be beneficial.
Chapter 1: Previewing RHEL8
Section 1.1: Red Hat Enterprise Linux 8 Overview
1. Supported Architectures
Supported Processor Architectures
64-bit AMD/Intel (x86_64)
64-bit ARM (aarch64)
IBM POWER, little endian (ppc64le)
IBM Z (s390x)
ARMv8 Support
在RHEL7中試用了對64位ARM的支持,如今支持做爲RHEL8的核心組件:
RHEL 8 for ARM64 Support
適用於ARM的Red Hat Enterprise Linux(aarch64)。
支持64位ARMv8處理器。
針對雲,超大規模,電信,HPC和邊緣計算的服務器優化SoC。system-on-chip
RHEL8目標是跨多個ARM供應商的單一操做平臺。
Little Endian IBM POWER Support
針對IBM Power Systems的RHEL8的處理器支持有一些變化:
IBM Power Systems的RHEL 8僅支持小端模式(ppc64le)。supports little endian mode only (ppc64le)
支持POWER8和POWER9處理器。
能夠是Red Hat Virtualization for Power,PowerVM和PowerNV(裸機)上的KVM Guest。
備註:
較早版本的RHEL使用ppc64 big endian體系結構支持IBM Power Systems。
RHEL8再也不爲big endian構建或交付。 僅支持little endian ppc64le模式。
一個小端系統將數據存儲在內存有序的最低有效字節中,或最後有效字節以後,與大端系統的行爲相反。 x86_64架構也是小端。 在小端模式下運行POWER處理器的優點在於,它使程序員能夠更輕鬆地將應用程序從x86_64移植到POWER。
2.主要特色和變化
Selected Changes in RHEL 8:如下是對RHEL 8中所選更改的回顧。並不是涵蓋RHEL 8中的全部更改或新功能。
1. Installation and Deployment
Overview of Installation Changes:
Restructure of channels into "BaseOS" and "AppStream".
"System Purpose" to indicate planned purpose for entitlement and support level.
Enhancements to Kickstart directives.
Can install and boot from NVDIMM devices (using either Anaconda and Kickstart).
2. System Startup and Management
對bootloader management引導加載程序管理的更改:
2.1. BOOM Boot Manager
Simplifies process of creating boot entries.
Adds entries, does not modify them.
Simplified CLI and API.
備註:
BOOM是一個Linux啓動管理器,能夠簡化啓動條目的建立。
BOOM能夠引導基於LVM的快照系統映像,而不修改現有引導加載程序配置,由於BOOM僅插入其餘條目,維護現有配置並像之前同樣運行。
BOOM具備命令行界面和管理員建立引導條目的API。
2.2. Enabling Secure-boot Guests
RHEL 8支持使用加密簽名鏡像的方式安全啓動客戶機。
鏡像由受信任的第三方組織簽署,以確保完整性。
3. Kernel
當前內核支持64位ARM體系結構的52位物理尋址,5級分頁,Control Group v2機制,早期kdump,the deadline process scheduler,以及 seperate time namespaces的配置
3.1 Packaging Changes
kernel-core提供核心內核。
kernel-modules和kernel-modules-extra包含與kernel-core軟件包版本匹配的內核模塊。
kernel如今是一個元數據包,可確保安裝內核和內核模塊。
kernel-doc被刪除。 改用內核源RPM。
備註:這種新的內核打包方法容許更細粒度和模塊化的內核配置。 在當今基於雲的部署中尤其重要,由於空間很是重要。
3.2 Memory Management
新的5級分頁模型。
57位虛擬內存尋址(128 PiB可用地址空間)。
52位物理內存尋址(理論上最多4個PiB RAM)。
實際物理支持限制可能因硬件而異。
3.3 Enabling Early Kdump at Boot
RHEL 7和之前的RHEL版本,做爲啓動過程的multi-user.target的一部分kdump.service,在啓動這個kdump.service以前, 可能沒法捕獲此服務事件以前發生的問題。
RHEL 8經過在啓動內核的initramfs中存儲崩潰內核的vmlinuz和initramfs來提供早期的Kdump。 這些組件在早期initramfs階段直接加載到保留內存(crashkernel)中,容許在引導的全部階段捕獲內核崩潰轉儲。
3.4 Enhancing the Process Scheduler
CFS進程調度程序仍然是RHEL 8中的缺省進程調度程序。
RHEL 8支持新的截止日期進程調度程序deadline process scheduler,該調度程序爲SCHED_DEADLINE調度類提供新屬性截止日期,週期和運行時。
SCHED_DEADLINE基於最先期限優先(EDF)和恆定帶寬服務器(CBS)算法。
SCHED_DEADLINE適用於多媒體或工業控制等實時應用,並在具備NUMA功能的機器上提供改進的性能。
開發人員使用sched_setattr()和sched_getattr()系統調用來管理計劃屬性。
3.5 Enabling Time Namespaces
RHEL 8支持具備不一樣時鐘的命名空間,做爲系統當前時間視圖的偏移量。
啓用時間命名空間容許在不一樣時間點運行測試。
4. Networking
RHEL 8中網絡功能的加強和更改包括:
4.1 Firewall Changes
nftables是默認的防火牆後端。
nftables是iptables,ip6tables,arptables,ebtables和ipset的繼承者。
仍然建議使用firewall-cmd來管理防火牆; 僅將nft直接用於複雜配置。
iptables兼容性工具可用。
備註:
iptables和ebtables工具集由RHEL 8中的nftables替換.nftables框架及其核心工具nft在方便性,功能和性能方面提供了重大改進。 它統一了IPv4和IPv6工具,使用快速查找表而不是線性規則處理,支持在規則集中進行調試和跟蹤,而且具備更一致和緊湊的語法。 可使用基於舊命令名稱的兼容性工具,並在xtables-translate(8)手冊頁中記錄了將規則集從iptables和ip6tables遷移到nft的工具。
firewalld系統仍然是管理典型用例的本地防火牆規則的推薦方法。 在RHEL 8中,它使用nftables做爲其默認後端規則系統。
若是後端規則系統在之後的Red Hat Enterprise Linux版本中再次更改,則firewalld旨在輕鬆添加和選擇可用規則後端中的默認值。
4.2 NetworkManager and Network Scripts
nmcli是經過NetworkManager管理網絡配置的首選工具。
新版本的ifup和ifdown須要NetworkManager。
舊的網絡腳本(如ifup-local)已棄用,默認狀況下不可用。
4.3 NTP Time Synchronization
Chrony(chronyd)替換了ntpd,做爲NTP的默認服務實現
Chrony在各類條件下表現更好,同步更快,精度更高。
遷移工具位於 /usr/share/doc/chrony/中。
備註:
在RHEL 8中,Chrony徹底取代了ntpd做爲操做系統提供的NTP實現。 ntpd包再也不可用。
在許多實際場景中,Chrony的性能優於ntpd,use case:當時間參考的訪問是間歇性的,當網絡頻繁擁塞時,或者系統時鐘受到滴答率忽然變化的影響時(因爲溫度的變化) 晶體振盪器)。 它還有許多其餘加強功能。
4.4 Enhancements to TCP
TCP stack更新到 4.16版。
改進了具備高入口鏈接速率的TCP服務器的性能。
新的BBR和NV擁塞控制算法。
4.5 Removed Network Drivers
某些過期的網絡驅動程序已從RHEL 8中刪除。
e1000驅動程序已刪除,但仍支持e1000e。
tulip driver鬱金香驅動程序被刪除,這將影響Microsoft Hyper-V上的「第1代」虛擬機。
備註:
基於PCI的英特爾千兆以太網設備的e1000驅動程序已被刪除。 這種常見的網卡系列是使用i440fx機器類型的KVM虛擬機的默認驅動程序。 Red Hat如今推薦使用RHEL 8中的q35機器類型。
基於PCIe的英特爾千兆以太網設備的相關e1000e驅動程序仍然可用並受支持。
5. Software Management
A new Yum feature is the package grouping method called modules.
5.1 Modules
模塊的安裝獨立於底層操做系統主要版本。
模塊系統同時支持多個版本的應用程序。
模塊綁定到應用程序流。
5.2 Updates to RPM and YUM
DNF是Yum的技術改寫,是RHEL 8中RPM軟件包的新標準軟件包管理功能。
yum命令(v4)保留爲推薦的命令行實用程序,符號連接到dnf以便於向後腳本和操做員兼容性。
Yum v4支持支持軟件模塊化的模塊。
Yum v4如今瞭解weak和布爾依賴。
Yum v4提供了大量插件和附加工具。
6. Storage
新的本地存儲管理器使用共享存儲池提供卷管理的文件系統。
6.1 Stratis Storage Manager
可以建立一個或多個塊設備的池。
在這些池中建立動態且靈活的文件系統。
Stratis支持文件系統快照。 快照獨立於源文件系統。
6.2 Virtual Data Optimizer (VDO)
VDO在三個階段減小了存儲上的數據佔用空間:(zero-block elimination) 零塊消除,冗餘塊的重複數據刪除 (deduplication of redundant blocks) 和 數據壓縮 (data compression)。
VDO刪除僅包含零的塊,並保留其元數據。
虛擬機的虛擬磁盤是VDO卷的一個很好的用例。
6.3 XFS Copy-on-Write Extents
建立文件系統時,默認狀況下啓用寫時複製(CoW)。
添加對XFS的支持,以容許兩個或多個文件共享相同的數據塊。
若是一個文件發生更改,則會中斷共享並跟蹤單獨的塊。
高效的文件克隆,每一個文件的快照以及NFS和Overlayfs的操做。
RHEL 7只能以只讀模式安裝帶有CoW擴展區的XFS。
備註:共享的CoW寫時複製數據擴展區功能容許多個文件共享一組公共數據塊。
6.4 Supporting SCSI-3 Persistent Reservations with Virtio-SCSI
在RHEL 8上,qemu和libvirt都支持存儲設備上的SCSI-3持久保留,這些持久保留經過direct-attached LUNs所支持的Virtio-SCSI向VM呈現。
虛擬機能夠共享Virtio-SCSI存儲設備,並使用SCSI-3 PR來控制訪問。
使用device-mapper-multipath管理的存儲設備能夠傳遞給VM以使用SCSI-3 PR,主機能夠管理全部路徑上的PR操做。
6.5 Other Storage Features
用於加密存儲的新LUKS2磁盤格式取代了LUKS1。
塊設備如今使用多隊列調度,默認狀況下啓用scsi-mq驅動程序以得到更好的SSD性能。
6.6 Removed Storage Features
已刪除許多舊的存儲驅動程序和對過期適配器的支持。
Btrfs文件系統已被刪除。
軟件管理的以太網光纖通道(FCoE)支持已被刪除。
7. Security Features
RHEL 8中引入了許多新的或加強的安全相關功能。重要更改包括:
7.1 System-wide Cryptographic Policy
實現全系統級別的TLS/IPSec/SSH/DNSSEC/Kerberos加密策略
容許管理員更新協議和算法列表,以便始終遵循許多服務的建議實踐。
提供了一些策略,可使用update-crypto-policies命令應用這些策略。
DEFAULT策略提供與PCI-DSS兼容的合理默認值。
7.2 Improving sosreport Capabilities
RHEL 8包含3.6版本的sosreport工具,它支持新的配置文件,例如容器,用戶和策略定義的命令行預設,以及外部命令的大小限制
此版本的sosreport還支持大量新插件,例如ansible,buildah和runc
sos-collector實用程序在RHEL 8中可用,並從多主機環境(如RHV羣集或RHEL高可用性羣集)收集sosreport
7.3 Other Security Changes
Audit subsystem審計子系統已更新至3.0版。
rsyslog使用其餘新功能和修復程序更新到8.37.0。
OpenSSH 7.8p1 rebase,刪除了對弱密碼和過期的SSH版本1協議的支持。
OpenSCAP CLI改進,草案爲RHEL 8的OSPP配置文件版本4.2。
tcp_wrappers支持已被刪除。
8. User Environment
GNOME如今是惟一可用的顯示管理器。 KDE已徹底從發行版中刪除。 Wayland是默認的顯示服務器,提供多種優點和改進,包括更強大的安全模型,改進的多顯示器處理和改進的用戶界面擴展。
8.1 Graphical Desktop Changes
Wayland是默認的顯示服務器; Xorg仍然可用。
已更新至GNOME 3.28。
KDE已從發行版中刪除。
9. Virtualization
在此版本中,QEMU如今能夠模擬Intel Q35主板芯片組,該芯片組爲現代虛擬化操做系統提供了更好的硬件平臺。
9.1 Virtual Machine Management
Packages for virtualization are in the virt module stream.
Cockpit Web管理工具中的新界面,用於管理虛擬機。
virt-manager已棄用但仍可用。
9.2 Updated KVM Hardware Model
KVM如今默認爲Q35硬件模型(較新的硬件仿真)。
更好地支持PCI Express直通,支持安全啓動。
之前的英特爾440FX仿真仍可用於較舊的操做系統。
10. Updates to HA Clustering
Pacemaker升級到2.0.0版
pcs具備新功能,支持Corosync 3,一些語法獲得更改
11. Linux Containers
RHEL 8包括一個新的包模塊,它提供了一個名爲Podman的新容器引擎來取代Docker和Moby。 與Docker相比,Docker依賴於守護進程來構建和運行容器,這個新的工具集和容器引擎容許構建和運行沒有守護進程的容器。
11.1 New Container Tools
Podman容器引擎是守護進程並支持容器的執行。
Buildah支持容器映像的構建,包括從頭開始構建這些映像,或者從Dockerfile構建映像。
您可使用Skopeo在註冊表中複製和檢查容器images。
REFERENCES
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-beta/html/8.0_beta_release_notes/
Knowledgebase: "What is early kdump support and how do I configure it?"
Knowledgebase: "Pacemaker 2.0 upgrade in Red Hat Enterprise Linux 8"
XFS Copy-On-Write Data Extents
Consistent security by crypto policies in Red Hat Enterprise Linux 8
Five-level page tables
Time namespaces
Zero-copy networking
Boom Boot Manager
Deadline Task Scheduling
chrony: Comparison of NTP implementations
BBR: Congestion-Based Congestion Control
TCP-NV: An Update to TCP-Vegas
Linux Multi-Queue Block IO Queueing Mechanism (blk-mq)
Sysreport sos-3.6
Summary
Red Hat的多架構計劃旨在爲各類處理器和機器架構提供軟件支持,這些架構由基於Red Hat Enterprise Linux構建的通用操做平臺提供支持。
更新的內核支持64位ARM體系結構的52位物理尋址,5級分頁和Control Group v2機制。
nftables將iptables替換爲firewalld後端。
nmcli是管理網絡配置的首選工具。
Chrony(chronyd)徹底取代ntpd做爲NTP實現。
已從RHEL 8中刪除了許多過期的網絡驅動程序。
Yum的一個新功能是稱爲模塊的包分組方法。
KVM如今默認爲Q35硬件模型(提供更新的硬件仿真)。
============================================================================
Chapter 2: Installing or Upgrading to RHEL8
Section 2.1: Installing RHEL8
1. Repository Structure
紅帽企業Linux改變了包被劃分爲channels渠道或repositories存儲庫的方式。
包被重組爲基本操做系統(BaseOS)和應用程序流(AppStream)存儲庫。
還從新構建了專用存儲庫以支持新的AppStream和模塊化上下文。
RHEL 8 Repositories and Contents
BaseOS:最小操做系統安裝所需的軟件包。
AppStream:大多數其餘軟件包,除了那些須要附加組件權限的軟件包。
CodeReady Linux Builder:提供編程語言構建時依賴性的包; 由應用程序開發者使用
Extras和Optional存儲庫已被刪除。 AppStream設計不須要額外的存儲庫。 包已移至AppStream或已刪除。 適當的丟棄包可能最終出如今EPEL中。
Supplemental:存在並在RHEL 8中保留相同的角色。
有針對NFV的高可用性,彈性存儲,實時和實時的附加存儲庫。 附加產品須要額外的entitlements。
2. Installation Media Structure
安裝介質選擇決定了啓動安裝的方法。 媒體選擇與之前的RHEL版本保持一致。 存儲庫更改肯定安裝包的位置。 AppStream的模塊化改變了在基本操做系統上對包進行分組和分層的方式。
Available Installation Media Formats
Netboot ISO:僅包含Anaconda安裝程序。 此方法須要配置的網絡才能訪問HTTP,FTP或NFS可用的軟件包存儲庫。
二進制DVD:包含Anaconda,以及BaseOS和AppStream存儲庫。
QCOW2映像:預構建的系統磁盤已準備好在雲或虛擬環境中做爲VM部署。
包模塊化
Module Features
模塊能夠獨立於底層操做系統主要版本安裝。
模塊系統設計同時支持多個應用程序版本。
模塊能夠包含多個流,以使多個應用程序版本可供安裝。
stream 流表示與先前版本大不相同
當較新的應用程序版本不向後兼容時,能夠建立stream 流。
不管是升級仍是降級,安裝流都會徹底取代之前安裝的stream 流。 將此與舊版程序包升級進行對比,後者僅添加或刪除已更改的程序包文件。
備註:
例如,您能夠安裝Perl 5.24流,即便Perl 5.26軟件包可用,也不會列出或應用任何更新。 您能夠隨時切換到Perl 5.26流。 模塊功能取代了Red Hat Software Collections。
完整模塊命名規範採用如下形式名稱name:stream:version:context:architecture/profile。 當默認值可接受時,可使用更短的規格。
Module Naming Specification
name
name:stream
name:stream:version
Any of the above specifications with ::architecture appended.
name:stream:version:context:architecture
Any of the above specifications with /profile appended.
Describing the System Purpose Configuration
System Purpose Dialog Box
角色:服務器,工做站,計算節點或客戶端的選擇。
服務水平協議:該系統所需的支持級別。
用法:選擇生產,開發或災難恢復。
這些選擇決定了安裝期間如何處理訂閱附件和權利消耗。
System Purpose Kickstart Directives
syspurpose --role=
syspurpose --sla=
syspurpose --usage=
Section 2.3: Upgrading Servers to RHEL8
1. Describing LeApp
LeApp是一個可擴展的框架,旨在幫助管理員進行應用程序現代化。 它支持Red Hat Enterprise Linux,CentOS和Fedora,是從RHEL 7到RHEL 8的就地升級的首選方法。
LeApp現代化框架
使用戶可以在不中斷現有工做負載的狀況下對其進行現代化。
三種方法:升級到位,遷移到新的地方,或容器化。
設計模塊化架構,以取代預升級輔助工具。
各類遷移策略和特定於應用程序的邏輯保存在獨立的模塊或插件中。
LeApp是消息驅動的,用於在actor之間傳遞數據。 actor的執行取決於在其以前運行的其餘actor生成的數據。
LeApp是新設計的模塊化架構,用於取代預升級輔助工具,其架構對於現代應用程序升級要求的複雜性而言過於嚴格。 Actors將分別指定它們所需的數據類型並在其輸入和輸出端口上提供,而且依賴性求解器將生成依賴關係圖以知足這些要求,即將輸出端口鏈接到適當的輸入端口。 actor的實現是在shell中完成的,使用Python包裝器爲(基於Python的)框架提供適當的接口。 shell部分使用Ansible(做爲Ansible模塊)執行,並使用JSON進行通訊。
有關各類遷移策略和特定於應用程序的邏輯的信息保存在獨立模塊或插件中,而不是單個源文件中。模塊和插件可由特定應用程序的專家維護,與核心LeApp應用程序的維護無關。 LeApp經過添加模塊依賴關係和模塊之間傳遞信息的方法來解決preupgrade-assistant限制。 LeApp是消息驅動的,用於在actor之間傳遞數據。 actor的執行取決於在其以前運行的其餘actor生成的數據。這與Ansible造成對比,其中參數必須在執行前在劇本中指定。
LeApp Components
Workflow: describes an entire upgrade process.
Phase: a section of the workflow dedicated to a specific part of the upgrade.
Stage: phases are broken into stages, Before, Main, and After.
Actor: a step in the workflow that performs a task. Actors can be tagged which allows them to be included in a workflow automatically by the framework.
Tag: allows the framework to locate and execute actors.
Message: used to transfer information between actors.
Model: defines the structure of the data sent in messages. Models use Topics to group the data.
Topic: defines the subject area for Model data.
Repository: holds the definitions for all Actors, Tags, Topics, and Workflows.
LeApp Status
LeApp正在大力開發,目前不適合全部升級。
LeApp Limitations
目前,LeApp僅適用於最小的Red Hat Enterprise Linux 7安裝。
LeApp僅支持具備單一網絡接口的系統; 沒有bridges, bonds, or teams.
LeApp僅支持具備簡單存儲配置的系統; 沒有RAID,多路徑,UEFI或加密。
LeApp不支持分層產品; 但模塊能夠由任何專家編寫。
惟一受支持的體系結構是x86_64。
Chapter 3: Provisioning and Configuring Servers
Section 3.1: Performing Package Management using Yum
1. Using Yum v4
RHEL8包含yum第4版,它使用DNF技術做爲後端。 雖然版本4中yum的後端已更改,但命令的典型選項保持不變。
DNF Technology in Yum v4
DNF取代YUM做爲Red Hat Enterprise Linux 8中RPM包的包管理技術。
DNF API加強了集成,並解決了Yum v3 API的穩定性問題。
Yum v4包含DNF提供的新功能。
推薦的yum命令是到dnf的連接。
Enhancements in Yum v4
支持啓用軟件AppStreams的模塊。
如今理解weak和布爾依賴。
提供更普遍的插件和附加工具集合。
提升Yum的性能,這是雲,CI / CD和容器工做負載的關鍵。
Modules, Streams, and Profiles
模塊是一塊兒安裝的軟件包的集合。 模塊解決之前與舊版或新版軟件包相關的問題。 模塊能夠包括一個或多個流,這些流是由模塊提供的軟件的不一樣版本。 模塊一次只有一個活動流,默認狀況下是包含最新版本軟件的流。 模塊還包括配置文件,這些配置文件是支持用例的軟件包列表,例如,用於部署最小安裝。
Section 3.2: Administering Servers with Cockpit
1. Introducing Cockpit
RHEL服務器能夠遠程配置和訪問的方式發生了一些重大變化。 全部與GUI相關的system-config- *工具都已刪除。 無需手動配置,文件編輯或執行多個命令。 全部這些工具或命令都被Cockpit取代。 Cockpit是一個交互式服務器管理界面。 Cockpit從瀏覽器中的真實Linux會話直接與操做系統交互,取代了對X轉發會話的需求。
Cockpit as a Troubleshooting Tool
Graphs of system statistics in real-time
Inspecting and filtering syslog events
Configuring SELinux and reviewing SELinux access control errors
Creating diagnostic reports for Red Hat Support
Enabling and configuring kernel crash dumps
Running commands from a terminal session
Cockpit as a Management Tool
Controlling running system services
Configuring network interfaces and firewalld
Administering user accounts
Monitoring and configuring storage devices
Managing system subscriptions and software updates
Managing containers and virtual machines
2. Basic system administration using Cockpit
Basic system operations
Shutting down or restarting the system
Accessing hardware information
Changing performance profiles
Configuring host name
Connecting to a realmd domain
Figure 3.2: Changing system profile
Figure 3.3: Accessing system logs
Figure 3.4: Changing network configuration
Figure 3.5: Creating new user accounts
Figure 3.6: Controlling services
Figure 3.7: Creating diagnostic report
Figure 3.8: Registering a system
Figure 3.9: Accessing the terminal
Section 3.3: Building System Images with Composer
1.Composer
Composer是RHEL8中做爲技術預覽提供的新工具。 它容許管理員建立Red Hat Enterprise Linux的自定義系統映像。 Composer在Cockpit中有一個圖形用戶界面。 也可使用composer-cli命令從終端訪問它。
Composer Output Formats
QEMU QCOW2 Image (*.qcow2)
Ext4 File System Image (*.img)
Raw Partitioned Disk Image (*.img)
Live Bootable ISO (*.iso)
TAR Archive (*.tar)
Amazon Machine Image Disk (*.ami)
n Azure Disk Image (*.vhd)
VMware Virtual Machine Disk (*.vmdk)
2.Composer Blueprints
Composer基於藍圖Blueprints建立系統鏡像。 藍圖經過列出將成爲系統一部分的軟件包,用戶,SSH密鑰和其餘可能的資源來定義映像。 藍圖已版本化並可進行編輯。 使用Cockpit從藍圖建立新圖像時,鏡像與藍圖相關聯。
Composer System Requirements
Dedicated virtual machine with SELinux in permissive mode
CPU with 2 cores
4 GB RAM
20 GiB disk space
Connectivity to Internet and to another server with repository mirrors.
Section 3.4: Automating with RHEL System Roles
1.System Roles in RHEL8
Red Hat Enterprise Linux 8包含Ansible系統角色,可簡化複雜任務的自動化以及Red Hat Enterprise Linux子系統的配置。 您可使用Ansible playbook運行角色,Ansible playbook是Ansible Play的集合。 每一個Play均可以使用角色部分中定義角色的角色。 Play還能夠包括其餘部分做爲post_tasks部分來定義在Play的正常任務以後要執行的任務,或者包含用於定義處理程序的處理程序部分。 您可使用Red Hat Ansible Engine中包含的ansible-playbook命令運行playbooks。 Red Hat Enterprise Linux 8 Beta默認不安裝Red Hat Ansible Engine。
Ansible System Roles in RHEL 8
Includes rhel-system-roles.kdump, rhel-system-roles.network, rhel-system-roles.postfix, rhel-system-roles.selinux, and rhel-system-roles.timesync
Available in the rhel-system-roles package
Additional system roles planned: storage, logging, metrics, hardware management, and host inspection.
Chapter 4: Adapting to Core System Changes
Section 4.1: Displaying the Desktop with Wayland and X
1.Wayland Windowing System
Wayland是一個 client/server窗口系統,旨在取代X11。 Wayland在X11上的性能改進源於架構的簡化。
Wayland Components
Wayland Compositor - 結合了顯示服務器和合成器角色。
Wayland Client - 與Wayland Compositor通訊的圖形應用程序。 Wayland客戶負責執行本身的渲染。
Linux內核 - 負責Wayland Compositor,處理輸入和輸出設備的事件設備驅動程序(evdev)以及用於分辨率,深度和刷新的內核模式設置API(KMS)之間的通訊。
Switching to Wayland
Wayland不是X11窗口系統的擴展,而是它的替代品。
Reasons to Switch to Wayland
X display server 已成爲客戶端,合成器和內核之間的瓶頸;
X具備遺留代碼,例如不多使用的渲染API但必須保持符合X11協議。
大多數圖形桌面均可以選擇合成器,這會增長延遲,由於X顯示服務器必須將內容發送到合成器進程進行渲染,而後將呈現的內容返回到X服務器進行顯示。
X11 Application Compatibility
還沒有遷移到Wayland的X11應用程序仍然能夠在Wayland合成器中運行。 XWayland是一個做爲Wayland客戶端運行的Xorg服務器。 啓動X11應用程序後,Wayland Compositor將調用XWayland來處理應用程序的請求。 XWayland由xorg-x11-server-Xwayland軟件包提供。
Remote Rendering 遠程渲染
Wayland不是網絡透明的,不支持遠程渲染。 相反,遠程渲染服務器(如RDP或VNC桌面協議)能夠在Wayland之上運行。 預計還將建立包含遠程協議的上游Wayland合成器。
Verify Wayland is Being Used
使用如下步驟肯定您的桌面是否使用Wayland。
[user@demo ~]$ loginctlSESSION UID USER SEAT TTY 2 1000 user seat0 tty2 c1 42 gdm seat0 tty1 2 sessions listed.[user@demo ~]$ loginctl show-session 2 -p Type Type=wayland
Gnome 3默認使用Wayland。 可是,並不是全部Red Hat Enterprise Linux 8中的應用程序都已遷移。 未遷移的應用程序使用XWayland驅動程序進行管理,以提供其X服務器要求。
若是Wayland與您的圖形硬件或應用程序不兼容,則恢復使用Xorg是一個簡單的過程。 取消註釋/etc/gdm/custom.conf中的如下行,而後從新啓動計算機。
#WaylandEnable=false
這會強制GDM使用Xorg並將默認會話設置爲Xorg。
Section 4.2: Managing User Authentication with Authselect
1.Introducing Authselect
RHEL8附帶Authselect,它簡化了用戶身份驗證的配置,並取代了Authconfig。Authselect使用不一樣且更安全的方法,基於使配置更改對系統管理員更簡單的配置文件。 Authselect用於配置經常使用的身份驗證參數,如密碼,證書,智能卡和指紋。
Features of Authselect
調整PAM,NSS和GNOME dconf設置。
有三個即用型配置文件:sssd,winbind和nis。
默認狀況下啓用pam_pwquality以對本地用戶強制實施密碼質量限制。
Comparing Authselect and Authconfig
Authselect使用通過測試的配置文件,而不是直接修改系統認證配置文件。
Authselect僅修改/etc/nsswitch.conf,/etc/pam.d/*和/etc/dconf/db/distro.d/*中的文件。
How to Use Authselect
Use the authselect list command to list the default and custom profiles.
The default profiles are stored in /usr/share/authselect/default
Use the authselect create-profile command to create new custom profiles.
Custom profiles are stored in the /etc/authselect/custom/ directory.
When to use Authselect
在本地和半集中式身份管理環境中使用authselect,例如Winbind或NIS。
加入紅帽企業Linux身份管理或Active Directory域時,繼續使用ipa-client或realmd。 這些工具能夠自行正確配置主機身份驗證參數。
For more information, refer to the Configuring authentication on a Red Hat Enterprise Linux host chapter in the Red Hat Enterprise Linux 8 Installing Identity Management and Access Control Guide athttps://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8-beta/html-single/installing_identity_management_and_access_control/#configuring-authentication
Section 4.3: Configuring NTP with Chrony
1.Chrony Replaces ntpd
在Red Hat Enterprise Linux 8中,Chrony是惟一可用的NTP服務器實現。 在Red Hat Enterprise Linux 7上與Chrony一塊兒提供的ntpd實現已再也不可用。
Using Chrony as the Default NTP Implementation
Chrony取代了再也不可用的ntpd。
Chrony使用不一樣的配置文件,格式不一樣。
/usr/share/doc/chrony/ntp2chrony.py腳本將您的/etc/ntp.conf文件轉換爲/etc/chrony.conf。
timedatectl顯示當前時間相關係統設置的概述。
使用timedatectl set-timezone定義系統時區。
Introducing Chrony
chronyd服務經過將本地硬件時鐘(RTC)與配置的NTP服務器同步來保持其正常運行。 若是沒有可用的網絡鏈接,它將與計算的RTC時鐘漂移同步,該漂移記錄在/etc/chrony.conf配置文件中指定的driftfile變量中。
默認狀況下,chronyd使用NTP池項目中的服務器進行時間同步,不須要其餘配置。 當有問題的計算機位於隔離網絡上時,更改NTP服務器可能頗有用。
/etc/chrony.conf配置文件中的服務器行提供NTP服務器的IP地址或DNS名稱。 在服務器IP地址或名稱以後,您能夠列出服務器的一系列選項。 Red Hat建議使用iburst選項,由於在服務啓動後,Chrony會在短期內進行四次測量,以得到更準確的初始時鐘同步。
[user@demo ~]$ cat /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# pool 2.rhel.pool.ntp.org iburst
server 192.168.122.14 iburst
server tick.example.com iburst
server tock.example.com iburst
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift
...output omitted...
備註:
pool指令相似於server指令,但它不是指示單個NTP服務器,而是指示解析爲可能隨時間變化的多個地址的DNS名稱。
更新/etc/chrony.conf配置文件後,從新啓動該服務。
Converting the NTPd Configuration to Chrony
Chrony配置文件/etc/chrony.conf相似於ntpd配置文件/etc/ntp.conf。某些配置指令特定於Chrony,由於這兩個程序具備不一樣的功能。
值得注意的是,Chrony中沒有如下ntpd功能。
Chrony沒有實現廣播和多播客戶端功能。所以,chrony.conf中不存在broadcastclient和multicastclient指令。這些NTPd功能能夠接收廣播或組播NTP服務器發送的NTP消息。
chrony.conf中沒有autokey指令。在ntp.conf中,該指令激活NTP客戶端和服務器之間的數據包身份驗證的公鑰算法。
在使用對稱對等指令時,Chrony不支持短暫關聯。例如,peer指令容許同一級別的兩個服務器同步其時鐘。當只有一個服務器定義對等指令時,另外一個服務器接受該鏈接並創建短暫關聯。 Chrony不容許這種隱式配置;兩個服務器必須包含peer指令。
爲了幫助您將ntp.conf文件轉換爲chrony.conf,chrony包 /usr/share/doc/chrony/中提供了ntp2chrony.py腳本。使用--ntp-conf選項指定要轉換的ntp.conf文件。 --chrony-conf選項指定輸出chrony.conf文件。 --chrony-keys選項指定輸出文件的路徑,該文件包含須要身份驗證的服務器的密鑰對。在從新啓動chronyd服務以前,請查看已轉換的配置文件。
Setting the Time Zone
[user@demo ~]$ timedatectl
[user@demo ~]$ timedatectl list-timezones
[root@demo ~]# timedatectl set-timezone America/Phoeni
Section 4.4: Managing Python Versions in Red Hat Enterprise Linux 8
1.Python 2 to Python 3 Transition
RHEL 8默認最小安裝不會安裝用戶級Python二進制文件,只安裝操做系統工具的版本。 Python 2.7和Python 3.6應用程序二進制文件可從Red Hat Enterprise Linux 8的Application Stream(AppStream)存儲庫中得到。
Installing Python on RHEL 8
RHEL 8包括用於Python 2.7和Python 3.6的Yum模塊。
Python 3.6是默認值。 Python 2.7是一個短生命週期版本,能夠幫助用戶在將應用程序移植到python3時遷移到RHEL 8。
Python 3.x的將來版本將做爲名爲python3x的Yum模塊從AppStream存儲庫中得到
Working with Python in Red Hat Enterprise Linux 8
默認狀況下,Red Hat Enterprise Linux 8不提供/usr/bin/python命令。 使用alternatives命令連接到所需的發行版,以簡化命令行。
不要在腳本中使用/usr/bin/python。 始終使用/usr/bin/python3或/usr/bin/python2編寫腳本,由於它們的行爲始終依賴於版本。
用Python編寫的系統工具使用單獨的python3安裝,名爲/usr/libexec/platform-python。不要在腳本中使用此版本,由於它只包含操做系統工具所需的python模塊。
Setting up Alternative Python Versions
The Python 2.7 module installs the /usr/bin/python2 binary. Python 3.6 installs the /usr/bin/python3 binary. Use the alternatives command to link /usr/bin/python to either /usr/bin/python2, or /usr/bin/python3, recommended only for interactive use.
Chapter 5: Implementing Storage Using New Features
Section 5.1: Managing Layered Storage with Stratis
1.Stratis Storage Manager
Red Hat Enterprise Linux 8包括Stratis存儲管理器,它支持管理塊設備集合以建立靈活的文件系統。
首先在ZFS或Btrfs中的組合文件系統和卷管理功能如今可在Stratis中使用。
Red Hat Enterprise Linux 8中再也不提供Btrfs和ZFS文件系統。
Stratis還提供高級存儲功能,如精簡配置,快照和監控。
用Stratis實現卷管理文件系統
Stratis是一個卷管理文件系統(VMF)。
卷管理文件系統將文件系統集成在卷自己中,而LVM則卷鬚要文件系統。
Stratis的設計將SSD視爲默認存儲類型,或者至少做爲緩存層,所以設計的重點是提升靈活性和可靠性。
Red Hat Enterprise Linux 8再也不支持或提供BtrFS和ZFS。
Stratis提供精簡配置,快照和監控等高級功能。
Describing Stratis Layers
Stratis管理的池是塊設備的集合。 在這些池中建立Stratis文件系統。 默認狀況下,這些文件系統包含卷和文件系統XFS。
在內部,Stratis使用Backstore子系統來管理塊設備,使用Thinpool子系統來管理精簡配置池。
Backstore有一個數據層data tier,用於維護塊設備上的磁盤上元數據,並檢測和糾正數據損壞。
緩存層cache tier使用高性能塊設備做爲數據層之上的緩存。
Thinpool子系統管理與Stratis文件系統關聯的精簡配置卷。 此子系統使用dm-thin設備映射程序驅動程序替換虛擬卷大小和管理上的LVM。 這些卷使用較大的虛擬大小建立,並使用XFS格式化。 若是接近Stratis文件系統的虛擬大小,則會自動放大文件系統。
使用Stratis Storage Manager管理卷管理文件系統
使用stratis pool create命令建立一個或多個塊設備的池。
使用stratis pool add-data命令將其餘塊設備添加到池中。
使用stratis filesystem create命令在池之上建立動態且靈活的文件系統。
Stratis使用stratis fs snapshot命令支持文件系統快照。 快照獨立於源文件系統。
您可使用D-Bus API與stratisd守護程序進行通訊。
Stratis simplifies the storage stack
Stratis簡化了本地存儲配置和配置的許多方面。 例如,使用Anaconda將操做系統安裝到Stratis池。 選擇要用於池的磁盤後,將省略文件系統大小調整工做流程。 Anaconda能夠直接使用Stratis API,而不須要在Blivet中工做以在命令行工具之上構建API。 其餘工具和產品(如Cockpit,RHEV和Atomic)使用Stratis進行存儲和快照會更簡單,更不容易出錯,由於它們不會擔憂每一個文件系統的大小,而只會擔憂池有足夠的「後備存儲」。 與以編程方式使用任何CLI相比,API容許更好的工具到工具集成。
Section 5.3: Compressing and Deduplicating Storage with VDO
Virtual Data Optimizer
RHEL 8包括虛擬數據優化器(VDO)驅動程序,可優化塊設備上的數據佔用空間。 VDO包括兩個實用程序,
vdo用於管理和配置VDO卷,
vdostats用於顯示VDO卷的使用狀況和塊I / O.
使用VDO減小數據佔用空間
虛擬數據優化器(VDO)是一種Linux設備映射驅動程序,可減小塊設備上的磁盤空間使用,並最大限度地減小複製帶寬。
VDO包括兩個內核模塊,用於控制數據壓縮的kvdo模塊和用於重複數據刪除的uds模塊。
VDO支持內聯重複數據刪除和壓縮。
虛擬數據優化階段
VDO分三個階段減小了存儲上的數據佔用空間:零塊消除,冗餘塊重複數據刪除和數據壓縮。
VDO刪除僅包含零的塊,並保留其元數據。
通用重複數據刪除服務 universal deduplication service(UDS)內核模塊檢查可用的VDO元數據以檢測重複的塊。 若是找到重複的塊,則該塊指向已經可用的塊的元數據。
完成零塊消除和重複數據刪除後,kvdo內核模塊使用LZ4壓縮壓縮塊並將它們分組到4 KB塊上。
VDO卷的結構
VDO捲包含兩部分:UDS和VDO
UDS部分包括每一個塊的名稱和位置,以支持塊重複數據刪除
VDO部分包括VDO卷數據和元數據
Section 5.5: Administering NFS Enhancements
1. Using NFS on Red Hat Enterprise Linux 8
RHEL8支持使用網絡文件系統(NFS)4.2。
Red Hat Enterprise Linux 8 NFS Enhancements
Red Hat Enterprise Linux 8中的默認NFS版本爲4.2,支持NFSv4和NFSv3主要版本,再也不支持NFSv2。
NFS配置文件是/etc/nfs.conf。 不推薦使用/etc/sysconfig/nfs配置文件。
引入新的nfsconf工具來管理NFS配置文件。
autofs服務使用/etc/auto.master(主映射)做爲其默認配置文件。 amd格式也被識別。
RHEL8刪除了nfsnobody用戶,並將nobody用戶和組的UID和GID更改成65534.任何不存在的UID或GID都映射到nobody用戶和組。
NFSv4再也不須要rpcbind服務來運行,從而無需UDP鏈接。
NFS 4.2 Features
服務器端複製使NFS客戶端可以有效地複製NFS文件系統內的數據,而不會浪費網絡資源。
稀疏文件,使文件具備多個孔,這些孔是僅由零組成的數據塊。 它們做爲零傳輸,提升了總體速度。
空間預留容許在NFS服務器上保留可用空間,從而防止它們空間不足。
標記的NFS,強制執行數據訪問權限並在NFS文件系統上啓用SELinux。
The nfsconf tool
RHEL8引入了nfsconf工具來管理NFS客戶端和服務器配置文件。
使用nfsconf工具獲取,設置或測試NFS配置文件。
nfsconf工具處理NFSv4和NFSv3配置。
默認的nfsconf配置文件是/etc/nfs.conf。
使用nfsconf --file加載備用配置文件位置。
Chapter 6: Managing Containers with the New Runtime
Section 6.1: Deploying Containers with the New Container Runtime
1.Deploying Containers with the New Container Runtime
The Podman Container Engine
RHEL8包含container-tools包模塊,它提供了一個名爲Podman的新容器引擎,它取代了Docker和Moby。
container-tools包模塊還包含其餘工具,
例如Buildah用於構建容器映像,
Skopeo用於管理註冊表上的容器映像,
以及runc。
與Docker相比,Docker依賴於守護進程來構建和運行容器,這個新的工具集和容器引擎容許構建和運行沒有守護進程的容器。
The New Container Runtime Toolset
RHEL 8將Docker替換爲支持大多數Docker功能的新容器運行時。
RHEL 8的容器運行時工具集支持Open Container Initiative(OCI)標準,例如,它能夠重用第三方容器映像。
容器運行時提供無守護容器引擎。 此體系結構不須要活動的root權限守護程序來運行容器。 用戶運行沒有root權限的容器。
此體系結構使用fork-exec模型與Docker客戶端 - 服務器模型的審計集成,該模型依賴於未設置的審計UID。
container-tools包模塊提供新的容器運行時工具集和引擎。
Describing the new Container Runtime Toolset
podman容器引擎是守護進程並支持容器的執行。
podman語法相似於docker命令,也支持Dockerfile使用。
Buildah從頭開始或從Dockerfile構建容器映像。
使用Skopeo複製和檢查註冊表中的容器映像。
Skopeo支持Docker和私有註冊表,Atomic註冊表和本地目錄,包括那些使用OCI的目錄。
2.Pacemaker Resource Bundles
Describing Pacemaker Resource Bundles
RHEL 8包括Pacemaker容器捆綁包和podman做爲技術預覽。
Pacemaker軟件包支持在全部與特定節點類型相關的主機上執行相同的容器,例如OpenStack控制器節點。
捆綁包還會映射容器目錄中的所需存儲,並自定義容器中的特定屬性。
紅帽OpenStack平臺目前支持Pacemaker捆綁包。
Chapter 7: Implementing Enhanced Networking Features
Section 7.1: Managing Server Firewalls in RHEL 8
1.Introducing Nftables
Firewalld是Red Hat Enterprise Linux中的防火牆管理工具,它使用nftables做爲其新的默認防火牆後端。 在RHEL8中,nftables替換了iptables,後者已棄用。
nft命令將iptables命令iptables,ip6tables,arptables和ebtables替換爲統一,一致且簡單的命令。 此外,nftables更高效,能夠在單個規則中執行多個操做。
介紹Nftables做爲Firewalld的新後端
Firewalld使用nftables做爲後端。
nft命令替換iptables,ip6tables,arptables和ebtables命令。
Firewalld是經過低級別nft命令管理防火牆的推薦方法。
iptables命令是指向xtables-nft-multi命令的連接,該命令接受iptables語法,但會建立nftables規則。
Red Hat建議在管理防火牆時使用firewalld。 儘管firewalld如今使用nftables後端,但它的行爲與以前的版本相同。 它的語法是相同的,即便對於直接和豐富的規則也是如此。 除了firewall-cmd和firewall-config命令以外,您還可使用Cockpit Web界面管理firewalld。
比較Nftables和Iptables
有關性能,代碼維護,易用性和可伸縮性的iptables問題由nftables解決。
雖然您應該使用firewalld檢查防火牆規則,但您可使用單個基礎工具查看全部防火牆信息:nft。
您只須要IPv4和IPv6的單一規則,而不是使用iptables和ip6tables複製規則。
您能夠爲每一個規則添加多個操做。 例如,您能夠在同一規則中記錄和拒絕。
2.Create nftables tables, Chains, and Rules using the nft Command Line Tool
Red Hat建議使用Firewalld來管理防火牆。 做爲替代方案,對於複雜的用例,您還能夠直接使用nft命令行工具來建立nftables表,鏈和規則。
Nftables Objects
在nftables中,表是邏輯上組織防火牆配置的頂級對象。
在內部表中,鏈將您的防火牆規則分組。
規則能夠有多個條件和多個操做。
使用nft命令建立和查看全部這些nftables對象。
對於持久性,請在/etc/sysconfig/nftables.conf中定義對象並啓用systemd nftables服務。
Introducing the Table Object
在nftables中,表是用於對防火牆規則進行分組的頂級對象。 要列出表,請使用nft list tables命令。
[root@demo ~]# nft list tables
table ip filter
table ip6 filter
...output omitted...
table inet firewalld
table ip firewalld
table ip6 firewalld
當firewalld服務啓動時,它會從先前的輸出建立表。 請注意,firewalld建立本身的表名爲firewalld,以對其規則進行分組。 它還會建立其餘表,例如filter,所以您可使用nft命令添加本身的表。
每一個表都有一個地址族,例如ip,ip6或inet,表示它正在處理的數據包類型。 inet是一個結合了IPv4和IPv6的特殊地址族。 這對適用於兩個系列的規則頗有用。 這樣,您沒必要爲IPv4編寫相同的規則,也沒必要爲IPV6編寫相同的規則。
使用nft add table family name命令建立新表,並使用nft delete table系列名稱刪除表。
[root@demo ~]# nft add table inet mytable
使用nftables,管理員能夠根據須要建立任意數量的表來組織防火牆配置。 另外一方面,iptables具備沒法更改的預約義表。
Introducing nftables Chains
在內部表中,鏈對防火牆規則進行分組。 使用nft list table family name列出表的內容。
[root@demo ~]# nft list table inet filter
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
}
chain forward {
type filter hook forward priority 0; policy accept;
}
chain output {
type filter hook output priority 0; policy accept;
}
}
此輸出顯示過濾器表中的三個鏈。 鏈具備特殊屬性:
name
建立鏈時,您能夠爲其指定一個名稱。 選擇上一個輸出,輸入,轉發和輸出中的名稱來幫助您從iptables過渡。 他們沒有其餘意義。
type
該類型表示鏈的目的。 這能夠過濾以過濾流量,nat能夠執行網絡地址轉換,或路由以標記數據包。
hook
鉤子將鏈鏈接到內核中的包處理階段。 鉤子值能夠是prerouting, input, output, forward, or postrouting.
priority
當兩個或多個鏈具備相同的掛鉤值時,優先級指示首先處理哪一個鏈。 首先處理具備最低優先級值的鏈。
在全部表中全局評估優先級。 在下面的示例中,系統評估來自myinput1鏈的規則,而後來自Input_ch鏈,最後來自myinput2鏈。
[root@demo ~]# nft list table inet mytable1
table inet mytable1 {
chain myinput1 {
type filter hook input priority -10; policy accept;
}
chain myinput2 {
type filter hook input priority 100; policy accept;
}
}
[root@demo ~]# nft list table inet mytable2
table inet mytable2 {
chain Input_ch {
type filter hook input priority 50; policy accept;
}
}
policy
當沒有規則匹配時,策略會創建鏈的默認行爲。 該策略是可選的,默認爲接受。
You create a new chain with the nft add chain familytable_namechain_name { attributes } command and you delete chains with nft delete chain familytable_name chain_name.
[root@demo ~]# nft add chain inet mytable go_in \> { type filter hook input priority 10 \; policy drop \;}
Remember to protect the ; character from Bash with \.
Writing nftables Rules
這些鏈將防火牆規則分組。 每一個規則都有兩部分:匹配部分給出數據包必須知足的條件,語句部分表示條件匹配時要執行的操做。 使用nft add rule family table_name chain_name match ... statement ...命令將規則添加到鏈中。
[root@demo ~]# nft add rule inet mytable go_in ct state established,related accept
[root@demo ~]# nft add rule inet mytable go_in iifname lo accept
[root@demo ~]# nft add rule inet mytable go_in icmp type echo-request accept
[root@demo ~]# nft add rule inet mytable go_in tcp dport {ssh, http, https} accept
[root@demo ~]# nft list table inet mytable
table inet mytable {
chain go_in {
type filter hook input priority 10; policy accept;
ct state established,related accept
iifname "lo" accept
icmp type echo-request accept
tcp dport { ssh, http, https } accept
}
}
3.Describing Nftables and Iptables Persistent Configuration
Red Hat建議使用Firewalld來管理系統防火牆。 做爲替代方案,使用複雜的規則,您能夠禁用firewalld並經過nft命令直接使用nftables。 此外,爲了與先前版本兼容,iptables命令和Systemd服務仍然可用,但已棄用。
Red Hat建議使用firewalld來管理系統防火牆。
對於複雜配置,您能夠禁用firewalld並直接使用nftables。
使用iptables-restore-translate命令將iptables規則遷移到nftables。
做爲替代方案,使用iptables兼容層來重用舊的iptables規則。
Translating Iptables Rules to Nftables
查看規則並將iptables-restore-translate -f命令輸出重定向到/etc/sysconfig/nftables.conf以獲取nftables服務。 不要忘記在文件頂部添加 #!/usr/sbin/nft -f 行。
Replacing Nftables by Iptables
nftables爲iptables提供兼容層。 iptables和ip6tables命令仍然可用,但它們是指向nftables xtables-nft-multi命令的連接。 該命令接受iptables語法,但改成建立nftables對象。
此外,iptables-services包提供了Systemd iptables服務以及相關的/etc/sysconfig/iptables和/etc/sysconfig/iptables-config配置文件。 所以,您能夠重用之前的Red Hat Enterprise Linux版本中的配置。
如下示例顯示如何將配置切換到現已棄用的iptables基礎結構。
Section 7.3: Configuring Server Networking with NetworkManager
1.Introducing NetworkManager
NetworkManager是RHEL8中首選的網絡配置工具。它能夠處理複雜的配置,OpenStack,OpenShift和Red Hat Virtualization等分層產品如今依賴它。
Configuring the Network with NetworkManager
Red Hat建議使用NetworkManager進行網絡配置。
NetworkManager如今能夠處理複雜的配置,例如Open vSwitch或SR-IOV。
分層產品,如OpenStack,正在使用NetworkManager。
提供多個前端:Cockpit,nmcli,nmtui和網絡RHEL系統角色。
Systemd網絡服務和網絡腳本再也不可用。
ifup和ifdown是NetworkManager腳本的連接。
Configuring System Networks with NetworkManager
NetworkManager提供了統一的方法來跨不一樣的Red Hat Enterprise Linux版本配置系統網絡。 因爲Network Red Hat Enterprise Linux系統角色依賴於NetworkManager,所以您一般能夠將單個Playbook用於多個RHEL版本。
在RHEL 8中,系統不安裝傳統的Systemd網絡服務。 可是,NetworkManager仍然依賴於 /etc/sysconfig/network-scripts/目錄中的配置文件。 您仍然能夠編輯這些文件,並使用ifup命令對NetworkManager從新讀取接口配置。
Chapter 8: Adapting to Virtualization Improvements
Section 8.1: 配置虛擬機
1.Updated QEMU Emulation
基於內核的虛擬機(KVM)內核模塊和QEMU仿真器是紅帽企業Linux 8中虛擬化的基礎。在此版本中,QEMU如今能夠模擬英特爾Q35主板芯片組,爲現代虛擬化提供更好的硬件平臺 操做系統。
New Q35 Virtual Machine Type
除了以前的英特爾440FX機器類型,QEMU如今還模擬了英特爾Q35芯片組和功能。
Q35芯片組仿真提供了比之前更多的當前硬件設備。
Q35提供PCI Express總線並支持安全啓動。
Q35支持PCI Express直通,簡化了物理到虛擬(p2v)遷移。
#備註:
QEMU如今模擬Intel Q35芯片組及其相關的Intel ICH9(I / O控制器集線器)芯片組。
以前的芯片組僅提供PCI端口(難以映射到物理PCI-E端口),但ICH9芯片組提供PCI Express(PCI-E)總線。 這經過直接將虛擬機內的PCI-E端口映射到主機系統上的PCI-E端口來支持PCI-E直通。
選擇要在建立虛擬機時模擬的芯片組。 若是使用Cockpit,virt-install或virt-manager,該工具會在選擇最近支持的操做系統時自動選擇Q35芯片組。
Cockpit取代了不推薦使用的virt-manager。 Red Hat推薦Cockpit用於虛擬機管理。 在隨後的版本中,將刪除virt-manager。
對於RHEL 7,RHEL 8,Microsoft Windows 2016和Microsoft Windows 10虛擬機,QEMU模擬Q35芯片組。 對於RHEL 6虛擬機,QEMU模擬Intel 440FX芯片組。 如下屏幕截圖顯示了Cockpit中操做系統的選擇。
從具備舊版QEMU的系統導入虛擬機時,可能必須強制執行先前的Intel 440FX芯片組仿真。 這是由於虛擬化操做系統已經使用該芯片組的驅動程序。 若是選擇Q35芯片組仿真(提供新的硬件型號),則虛擬化操做系統可能沒有安裝適當的驅動程序來使用仿真硬件。
您能夠在os部分中得到虛擬機在其XML文件定義中使用的芯片組仿真。 如下示例顯示了使用新Q35芯片組仿真的虛擬機。
[user@demo ~]$ virsh dumpxml webserver1<domain type='kvm' id='5'> <name>webserver1</name> <uuid>f6fbe32f-ef6c-4d8a-8db0-96551c82444b</uuid> <metadata> <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0"> <libosinfo:os id="http://redhat.com/rhel/8.0"/> </libosinfo:libosinfo> </metadata> <memory unit='KiB'>8388608</memory> <currentMemory unit='KiB'>8388608</currentMemory> <vcpu placement='static'>1</vcpu> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-q35-rhel7.6.0'>hvm</type> <boot dev='cdrom'/> <boot dev='hd'/> </os> ...output omitted...
如下示例顯示了使用舊的Intel 440FX芯片組仿真的虛擬機。
[user@demo ~]$ virsh dumpxml myrhel6<domain type='kvm' id='7'> <name>myrhel6</name> <uuid>51ffc808-d3d0-4220-adc9-32adea33d218</uuid> <metadata> <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0"> <libosinfo:os id="http://redhat.com/rhel/5.0"/> </libosinfo:libosinfo> </metadata> <memory unit='KiB'>1048576</memory> <currentMemory unit='KiB'>1048576</currentMemory> <vcpu placement='static'>1</vcpu> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-i440fx-rhel7.6.0'>hvm</type> <boot dev='cdrom'/> <boot dev='hd'/> </os> ...output omitted...
使用virsh capabilities命令列出支持的芯片組仿真
[user@demo ~]# virsh capabilities <guest> <os_type>hvm</os_type> <arch name='x86_64'> <wordsize>64</wordsize> <emulator>/usr/libexec/qemu-kvm</emulator> <machine maxCpus='240'>pc-i440fx-rhel7.6.0</machine> <machine canonical='pc-i440fx-rhel7.6.0' maxCpus='240'>pc</machine> <machine maxCpus='240'>pc-i440fx-rhel7.0.0</machine> <machine maxCpus='384'>pc-q35-rhel7.6.0</machine> <machine canonical='pc-q35-rhel7.6.0' maxCpus='384'>q35</machine> ...output omitted...
RHEL 8系統的先前輸出顯示QEMU支持Q35和Intel 440FX芯片組仿真。 pc機類型是i440FX仿真的別名,q35機器類型是Q35仿真的別名。
Virtual Machines Management in Cockpit
RHEL 8中的Cockpit提供了管理虛擬機的基本功能。 安裝cockpit-machines軟件包以啓用Cockpit組件來管理虛擬機。
對於更高級的配置,請使用libvirt工具,例如virsh或virt-install。
virt-manager圖形界面仍然可用但已棄用,將在後續版本中刪除。
RHEL Virtualization Available as a Module
爲方便起見,您可使用新的yum module命令安裝虛擬化軟件。
virt Yum模塊有一個名爲rhel的流和一個默認配置文件。
一個單獨的virt流將在另外一個存儲庫中提供,用於分層產品,例如Red Hat Virtualization(RHV),它們可以以不一樣於RHEL主要版本一般容許的節奏接收主要更新。
您還可使用傳統的yum命令單獨安裝虛擬化軟件包。
The virt Yum module has one stream called rhel and a single default profile.
[user@demo ~]$ yum module list
Name Stream Profiles Summary
virt rhel [d][e] common [d] Virtualization module
...output omitted..
2.SCSI-3 Persistent Reservations with Virtio-SCSI
使用Virtio-SCSI支持SCSI-3持久保留
在Red Hat Enterprise Linux 8上,QEMU和libvirt都支持經過直接鏈接LUN支持的Virtio-SCSI向VM提供的存儲設備上的SCSI-3持久保留。
虛擬機能夠共享Virtio-SCSI存儲設備,並使用SCSI-3 PR來控制訪問。
使用device-mapper-multipath管理的存儲設備能夠傳遞給VM以使用SCSI-3 PR,主機能夠管理全部路徑上的PR操做。