본 문서는 RHEL8에서 새롭게 변경 된 정보를 위주로 간략히 정리한 문서입니다. 변경 된 모든 내용을 다루지는 않으며 기존에 사용하던 환경과 관련성이 높은 부분만을 요약하였습니다. 전체 내용 및 자세한 사항은 릴리스노트 문서를 참고하세요.

참고로, 릴리스노트 한국어판도 있지만 영문 버전보다 볼륨이 적습니다.

1. 저장소 구조

RHEL 8에서는 BaseOS, AppStream 두 가지 형태의 저장소를 제공합니다. BaseOS는 기존 RPM 포맷의 패키지를 제공하며 AppSteam은 RPM과 RPM module을 제공합니다. AppStream은 사용자가 다양한 버전의 어플리케이션을 선택적으로 설치하고 사용 할 수 있도록 하기 위해서 구성된 저장소 입니다.

예를들면, PostgreSQL의 경우 v10과 v9.6을 제공하고 사용자는 원하는 버전을 기준으로 설치하고 사용 할 수 있습니다. 즉, 과거에 단일 패키지로 구성되어 최신버전을 제공하던 형태에서 메이저 버전을 선택적으로 지정해서 사용 할 수 있습니다.

이와 별개로 직접적인 패키지 지원이 없는 소프트웨어에 대해서 CodeReady Linux Builder 저장소를 제공합니다.

2. 인스톨러

2-1. 인스톨러 부트 옵션

  • net.ifnames.prefix
    • 네트워크 인터페이스에 대한 prefix 스키마를 지정해서 사용 할 수 있습니다.
  • inst.stage2
    • stage2 이미지를 여러 위치(네트워크 위치)에 배치하여 사용 할 수 있습니다.
  • inst.addrepo
    • base 저장소 외에 추가 저장소를 지정해서 설치 할 수 있습니다.

2-2. Kickstart 변경 점

  • auth, authconfig 대신에 authselect를 사용합니다.
  • install 커맨드 대신에 직접적인 서브 명령어를 사용합니다.
  • 그 외 더 이상 사용되지 않는 명령/옵션
    • 부트 옵션에서 inst.ksstrict를 설정하면 아래 명령/옵션은 경고 대신에 에러로 처리됩니다.
    • device
    • deviceprobe
    • dmraid
    • lilo
    • lilocheck
    • mouse
    • multipath
    • bootloader –upgrade
    • ignoredisk –insteractive
    • partition –active
    • reboot –kexec
  • 삭제 된 명령/옵션
    • upgrade
    • btrfs
      • part/partition btrfs
      • part –fstype btrfs / partition –fstype btrfs
      • logvol –fstype btrfs
      • raid –fstype btrfs
    • unsupported_hardware
  • 새로운 명령/옵션
    • authselect
      • 인증관련 정보를 설정하며 auth, authconfig를 대체합니다.
    • module
      • AppStream에서 설치/활성화 할 모듈 패키지를 지정합니다.

3. 소프트웨어 관리

3-1. YUM4 제공

새로운 YUM은 DNF에 기반하여 동작하며 기존 YUM3와 호환성은 제공되고 있습니다. DNF 기반이기 때문에 module 설치를 제공하며 이는 기존보다 빠른 설치작업을 수행 할 수 있게 합니다.

3-2. yum.conf 에서 삭제된 옵션

변경 된 커맨드가 많지만 자주 사용되는 옵션 중에서 삭제 된 옵션은 아래와 같습니다. - yum.conf - group_command - logfile - repos.d/*.repo - async - repositoryid

3-3. 그외

기존에 동일한 이름과 버전의 패키지가 여러 저장소에서 제공 되면 한 개의 저장소 패키지만 표시했지만 신규 YUM에서는 각 저장소별로 패키지명을 출력합니다. (yum list)

4. 시스템 서비스

4-1. 시간 동기화

기존에는 ntp 데몬을 활용하여 시간 동기화 작업을 수행했지만 RHEL 8에서는 RHEL/CentOS 7 처럼 권고사항을 넘어 기본으로 chrony가 적용되었습니다. 따라서, 기존 /etc/ntpd.conf 설정 파일은 /etc/chrony.conf 설정 파일로 대체 되어야 하며 chrony에 맞게 설정을 변경해야 합니다.

chrony는 기본적으로 leapsectz (윤초)를 지원합니다.

4-2. BIND

RHEL8는 bind 9.11을 제공합니다.

  • Domain Name System Cookie를 named와 dig에서 전송합니다.
  • DNSSEC 유효성을 체크하기 위한 delv (doamin entity lookup and validation)툴이 제공됩니다.
  • 여러 DNS Query를 전송 할 수 있는 mdig이 제공됩니다.
  • Recursive resolver 성능 개선을 위한 prefetch 옵션이 제공됩니다.
  • 동일한 Zone 설정 파일에 대하여 권한에 따라 다양한 뷰를 제공할 수 있는 in-view 옵션이 추가되었습니다.
  • Zone에 대한 최대 TTL를 지정할 수 있는 max-zone-ttl 옵션이 추가되었습니다.
  • 쿼리에 제약을 둘 수 있는 quota 기능이 추가되었습니다.
  • nslookup 명령이 IPv4(A)와 IPv6(AAAA)를 기본적으로 모두 조회합니다
  • named 데몬이 기본적으로 IPv4, IPv6 인터페이스를 모두 Listen 합니다.
  • named 데몬의 GeoIP 지원이 제거되었습니다.

4-3. Tuned

Tuned 프로파일 적용 방식이 변경되었습니다. tuned-adm recommend 명령은 아래 규칙에 따라서 프로파일이 적용됩니다.

  • syspurpose role에 atomic이 포함되어있을 경우에 아래 프로파일이 적용됩니다.
    • 물리서버(bare metal)는 atomic-host
    • 가상서버는 atomic-guest
  • 가상 서버는 기본 적으로 virtual-guest 프로파일이 적용됩니다.
  • syspurpose role에 desktop, workstation이 있고 섀시 타입이 노트북, 랩탑, 포터블인 경우에는 balanced 프로파일이 적용됩니다.
    • 섀시 타입은 dmideocde에서 제공되는 정보에 기반합니다
  • 위 사항 중에서 해당 되는 사항이 없다면 througput-performance 프로파일이 적용됩니다.

4-4. RSYSLOG

  • rsyslog 버전이 업그레이드 됨에 따라 설정파일은 기존 버전의 설정 파일과 호환되지 않습니다.
  • journald와 중복된 레코드를 최소화 하기 위한 imjournal 옵션이 추가 되었습니다. (참고: KB)
    • 위에 링크된 문서는 journald가 디스크를 사용하지 않도록 설정하는 내용을 담고 있습니다. 따라서, journald의 모든 내용은 휘발성인 메모리에만 저장됩니다.

4-5. 그 외

시스템 명령, 데몬 중에서 현재 환경과 관련성이 있는 항목에 대해서 소개합니다.

  • acpid
    • -d (debug) 옵션이 -f 옵션에 적용되지 않습니다.
  • GeoIP
    • 삭제 되었습니다.
  • grep
    • 현재 로케일로 인코딩 되지 않은 파일은 바이너리로 취급합니다
    • 유효하지 않은 UTF-8 데이터에 대해서 -P 옵션이 에러를 출력하지 않습니다.
    • grep -z\200 바이트를 더이상 바이너리 데이터로 취급하지 않습니다.
  • powertop
    • -d 옵션 삭제
    • -h 대신에 –html을 사용 (-h는 –help의 alias로 변경)
    • -u 옵션 삭제
  • wireshark
    • -H 옵션이 SHA256, RIPEMD160, SHA1 해시로 바뀌었습니다. (즉, MD5 삭제되고 SHA256 추가 됨)

5. 보안

5-1. 시스템 암호화 정책

  • 삭제 된 암호화 스위트

    • DES
    • MD5
    • SSLv2
    • SSLv3
    • 224bits 미만 모든 ECC curves
    • 모든 binary field ECC curves
  • 비활성화 된 암호화 스위트

    • DH with parameters < 1024 bits
    • RSA - 1024bits 미만 키 사이즈
    • Camellia
    • ARIA
    • SEED
    • IDEA
    • SHA-384 HMAC를 사용하는 TLS CBC
    • AES-CCM8
    • TLS 1.3과 호환되지 않는 모든 ECC curves
    • IKEv1
  • TLS v1.3을 지원합니다.

  • TLS v1.0과 v1.1은 기본적으로 비활성화 됩니다.

    • update-crypto-policies --set LEGACY로 시스템 보안 레벨을 조절하여 사용 가능합니다.
  • DSA 암호화는 비활성화 됩니다.

5-3. SSH

OpenSSH가 7.8p1 버전으로 제공됩니다. 아래와 같은 변경 사항이 있습니다.

  • SSH v1 프로토콜을 지원하지 않습니다
  • hmac-ripemd160 메시지 인증코드를 지원하지 않습니다.
  • 삭제 된 암호화
    • Blowfish
    • CAST
    • RC4(arcfour)
      • 기존에 rsync를 ssh에 연동하여 사용하셨던 분들 중에서 빠른 파일 전송을 위해서 arcfour를 사용하셨던 분은 다른 가벼운 암호화 방법을 선택해야합니다.
  • UseDNS 옵션의 기본값이 no 입니다.
  • DSA public key 알고리즘이 기본적으로 비활성화 됩니다.
  • UsePrivilegeSeparation=sandbox 옵션을 끌 수 없습니다.
  • 1024bits 이상 크기를 가진 RSA 키만 유효합니다.
  • 시스템 암호화 라이브러리와 별개인 libssh가 적용 됩니다.
  • libssh2 라이브러리는 없습니다.

5-4. Audit 3.0

audispd 패키지는 auditd로 통합되었으며 설정파일도 auditd.conf 설정파일로 합쳐졌습니다.

5-5. 그 외

  • useradd, groupadd는 숫자로 된 사용자명과 그룹명을 허용하지 않습니다.
    • shadow-utils 패키지에서 지원하지 않습니다.
  • /etc/securetty가 기본적으로 비활성화 처리 됩니다.
    • 사용하고자 하는 경우에는 pam_securetty.so를 활성화하고 개별 설정 해야합니다.
  • cryto-utils 패키지가 삭제 되고 openssl, gnutls-utils, nss-tools로 대체 되었습니다.

6. 네트워크

6-1. NetworkManager

기존 네트워크 설정파일을 관리하던 network-scripts가 기본적으로 삭제되고 NetworkManager로 대체 되었습니다. 또한 ifup, ifdown 명령도 NetworkManager의 nmcli를 호출하는 커맨드로 변경되었습니다.

$ alternatives --display ifup
ifup - status is auto.
 link currently points to /usr/libexec/nm-ifup
/usr/libexec/nm-ifup - priority 50
 slave ifdown: /usr/libexec/nm-ifdown
Current `best' version is /usr/libexec/nm-ifup.

NetworkManager에서 직접 ifup, ifdown 커맨드를 대체하기 때문에 NetworkManager를 사용하는 시스템임에도 network-scripts 안의 설정 파일을 보면 NM_CONTROLLED 옵션이 없는 걸 알 수 있습니다.

$ cat ifcfg-enp0s3
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s3"
UUID="68a55877-13f1-46ed-8e39-4ab51f141f35"
DEVICE="enp0s3"
ONBOOT="yes"

만약, 기존 방식의 스크립트 관리를 적용하기 위해서는 별도로 패키지를 설치하여 NetworkManager의 ifup, ifdown을 대체해야 합니다.

$ sudo yum -y install network-scripts

NetworkManager가 SR-IOV를 지원하기 시작했으며 와일드카드 매칭 방식의 인터페이스 지정이 가능해 졌습니다. ethtool에서 제공하던 offload 관련 설정 또한 제공 됩니다.

DHCP 환경에 대해서는 기존에 dhclient를 사용하던 것 대신 internal 플러그인으로 DHCP 지원을 합니다. dhclient를 사용하기 위해서는 별도로 설정을 해주어야 합니다.

;/etc/NetworkManager/NetworkManager.conf
[main]
dhcp=dhclient

6-2. 패킷 필터링

지금까지 사용되던 iptables 대신에 nftables 프레임워크가 적용되었습니다. nftables의 설정 형태는 iptables와 다르기 때문에 이를 변환해 주는 유틸리티도 제공합니다.

또한, iptables, ip6tables, ebtables, arptables 툴은 이름이 동일한 nftables 기반의 명령으로 대체 되었습니다.

$ iptables --version
iptables v1.8.0 (nf_tables)
$ nft list tables
nft list tables
table ip filter
table ip6 filter
table bridge filter
table ip security
table ip raw
table ip mangle
table ip nat
table ip6 security
table ip6 raw
table ip6 mangle
table ip6 nat
table bridge nat
table inet firewalld
table ip firewalld
table ip6 firewalld

6-3. TCP 개선

RHEL8의 기본 커널은 4.18에 기초하고 있기 때문에 새로운 TCP 혼잡제어 알고리즘인 TCP BBRTCP NV(New Vegas)를 제공합니다.

net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
net.ipv4.tcp_notsent_lowat = 16384

7. 커널

RHEL8은 Fedora 28의 4.18 커널을 기반으로 하고 있습니다.

7-1. Tech Preview

Redhat에서 Tech Preview 형태로 지원하는 기능에 대해서 나열합니다. 기존에 Tech Preview였던 기능들이 추후 마이너 릴리즈로 업데이트 되면서 정식으로 적용된 적이 있기 때문에 마이너 버전 업데이트에 대해서도 지속적인 확인이 필요합니다.

  • Control group v2
  • eBPF
  • BCC

7-2. Memory

5 레벨 페이지 테이블을 제공합니다. 4 레벨에서 5 레벨로 페이지 테이블의 관리 단계가 늘어났기 때문에 기존에 64TiB까지 지원하던 물리메모리는 4PiB까지 늘어났습니다. 가상 메모리 주소 기준으로는 128PiB까지 메모리 주소를 제공합니다. (57bit 가상주소, 52bit 물리 주소)

7-3. eBPF

bpftool을 제공하며 eBPF 관련된 기술이 Tech Preview로 제공됩니다. (BCC - BPF Compiler Connection - 포함)

7-4. 부팅 설정

RHEL8은 BLS(Boot Loader Specification)이 적용되었습니다. 따라서, 기존처럼 /boot/grub2/grub.cfg에 커널 관련 설정이 들어있지 않으며 BLS 파일 포맷에 따라서 /boot/loader/entries에 부팅을 위한 커널설정이 들어있습니다.

grubby가 BLS를 지원합니다.

참고로, BLS를 위해서 Boom 부트 매니저가 지원됩니다. Boom 부트매니저는 부트로더 설정 자체를 수정하는 것이 아닌 프로파일, 엔트리 정보에 대해서는 수정/추가를 제공합니다. cli 형태로 제공되며 Python API도 제공합니다.

7-5. 기타

  • NUMA 노드를 8개 까지 지원합니다. (기존 4개)
  • Spectre V2 관련
    • IBRS(Indirect Branch Restricted Speculation) 적용에서 retpoline 적용으로 기본 적용 값의 변경
    • 커널부트에서 spectre_v2=ibrs로 IBRS 적용 가능
    • /sys/devices/system/cpu/vulnerabilities/spectre_v2 키가 추가 됨
    • 개선된 IBRS 제공
    • IOMMU Passthrough가 기본으로 활성화 (AMD)

8. 하드웨어

하드웨어 지원이 종료 된 장치 중에서 현재 환경과 관련있는 항목만 나열합니다.

8-1. 드라이버 제거

  • arcmsr
  • sata_nv
  • e1000
    • e1000e를 사용해야 합니다
  • isci
  • mpt
    • mptbase
    • mptctl
    • mptsas
    • mptscsih
    • mptspi
  • qla3xxx

8-2. 드라이버 지원 대상 변경

아래 드라이버들이 일부 모델에 대해서 지원을 중단 하였습니다. 구형 장비에 설치 할 때 릴리즈 노트를 참고하여 사용가능 여부를 판단해야 합니다.

  • aacraid
  • mpt2sas
    • SAS2004, SAS2008, SAS2108_1~3, SAS2116_1~2, SSS6200 제거 됨
  • megaraid_sas
    • PERC5 제거
    • SAS1078R/DE, SAS1064R, SAS1078GEN2, SAS1079GEN2 제거
  • qla2xxx
    • QLE220, QLE81xx, QLE10000, QLE84xx, QLE8000, QLE82xx 제거
  • qla4xxx
    • QLOGIC_ISP8022/8324/8042 제거
  • lpfc

8-3. FCoE

fcoe.ko 모듈이 삭제 되었기 때문에 Fibre Channel over Ethernet은 사용할 수 없습니다.

9. 파일시스템

9-1. btrfs

  • RHEL8에서 btrfs 지원을 중단하였습니다. 따라서, btrfs 관련된 커널 모듈 및 패키지가 제공되지 않습니다.

9-2. XFS

XFS에서 Shared C.O.W 기능을 지원합니다. 이는 2개 이상의 파일에 대해서 데이터 블록을 공유하여 참조하고 변경 점이 있을 때에만 C.O.W 처럼 처리를 합니다.

이러한 기능이 갖는 장점은 아래와 같습니다.

- 공유 복사본 생성 시 디스크  I/O가 발생하지 않습니다.
- 공간이 절약됩니다. (공유 블럭이 추가 공간을 소비하지 않음)
- 내부적으로 공통 블럭을 공유하지만 일반 파일처럼 동작합니다.

사용자 영역에서 cp --reflink 명령이나 파일 스냅샷 처리 등으로 활용 할 수 있습니다. 이러한 기능은 OverlayFS, NFS에서 효율을 높여 줄 수 있습니다.

단, DAX(Direct Access) 장치는 현재 지원하지 않기 때문에 해당 기능을 비활성화 하고 포맷해야 합니다.

$ mkfs.xfs -m reflink=0 <block-device>

XFS의 최대 크기는 1024TiB로 확장되었습니다. (기존 500TiB)

9-3. ext4

ext4가 메타데이터에 대해서 체크섬(checksum)을 지원합니다.

9-4. NFS

기존에 NFS 환경 설정을 위해서 사용하던 /etc/sysconfig/nfs가 제거 되고 해당 내용은 /etc/nfs.conf 설정 파일로 변경 되었습니다. nfs.conf 설정파일은 고유의 설정 포맷이 있기 때문에 기존 설정을 옮길 때 유의해야 합니다.

NFS 관련 패키지의 서비스 구성이 변경 되었습니다.

  • nfs.service -> nfs-server.service
  • nfs-secure.service -> rpc-gssd.service
  • rpcgssd.service -> rpc-gssd.service
  • nfs-idmap.service -> nfs-idmapd.service
  • rpcidmapd.service -> nfs-idmapd.service
  • nfs-lock.service -> rpc-statd.service
  • nfslock.service -> rpc-statd.service

10. 스토리지

10-1. 신규 기능

  • Stratis Storage를 제공합니다.

    • Thin provisioning과 스냅샷을 관리할 수 있습니다.
    • 자동 증가되는 파일시스템을 구성할 수 있습니다.
    • Tech Preview 형태로 제공 됩니다.
  • 파일시스템 암호화

    • LUKS2를 볼륨 암호화의 기본 포맷으로 사용합니다.

10-2. Multiqueue 스케줄러

최근 메모리 기반 스토리지가 많이 사용 됨에 따라 RHEL/CentOS 7에서 부터 조금씩 지원되던 멀티큐 I/O 스케줄러에 대해서 기본 설정이 추가되었습니다.

SCSI Multiqueue (scsi-mq) 드라이버가 기본적으로 활성화 되어서 적용 됩니다. (즉, RHEL/CentOS7 에서 scsi_mod.use_blk_mq=y 옵션을 적용하던 부분이 기본 값이 되었습니다)

10-3. 기타

  • dmraid 패키지가 삭제되었습니다.
    • mdadm 패키지를 사용하세요
  • LVM
    • 공유 볼륨을 위한 clvmd가 삭제 되었고 lvmlockd를 대신 사용합니다.
    • 메타 데이터 캐싱을 위한 lvmetad 데몬이 제거 되었습니다.
      • 메타 데이터 캐싱은 LVM에서 무조건 활성화 된 상태로 적용 됩니다.
    • GFS Pool 볼륨 또는 LVM1 메타데이터에 대해서 지원이 중단 됩니다.
    • LVM의 Python 바인딩인 lvm2-python-libs가 삭제 되었습니다. 아래 방법이 권장됩니다.
      • lvm2-dbusd 서비스 API를 사용
      • LVM cli가 JSON 포매팅을 지원하기 때문에 cli를 사용
      • C/C++로 마이그레이션 해서 libblockdev 라이브러리를 사용

11. 그 외 OS 구성 요소 및 서비스

11-1. glibc

기존 glibc-common 패키지의 로케일/번역 관련된 부분이 glibc-langpack-<CODE> 형태로 분리되어서 제공 됩니다.

11-2. nobody

기존에 ID 99번을 사용하던 nobody 유저/그룹이 nfsnobody가 사용하던 65534로 변경되면서 두 ID가 합쳐졌습니다. 따라서, RHEL8에는 nfsnobody는 존재하지 않고 nobody 유저/그룹은 65534 ID를 갖게 됩니다.

11-3. 버전 컨트롤

cvs, rcs는 제거되며 git, mecurial, subversion 만 제공 됩니다.

11-4. Python 3

RHEL8을 구성하는 Python 구현이 모두 Python 3 기준으로 변경 되었습니다. 따라서, Python2와 Python3를 구분짓기 위해 일반적으로 Python 생태계에서 권고되는 것 처럼 버전을 붙인 명령을 사용해야 합니다.

# for Python 2.7
$ python2

# for Python 3.6
$ python3

이로인해 RHEL8은 기본적으로 python 명령이 없습니다.

$ python
-bash: python: command not found

버전이 명시되지 않은 python 명령을 사용하고자 한다면 alternatives로 별도 설정해 주어야 합니다.

$ alternatives --set python /usr/bin/python3

또한, python을 사용하는 어플리케이션에 대한 RPM 패키징 작업을 할 때에는 python 버전을 명시적으로 지정해서 패키지 해야 합니다.

아래와 같은 형태의 Hashbang은 에러를 일으킵니다.

#!/usr/bin/python
#!/usr/bin/env python

11-5. PHP, Ruby, Perl, Node.js

생략합니다. 릴리스노트 문서를 참고하세요.

  • Node.js 10이 RHEL8에서 새롭게 제공됩니다.
  • Ruby 2.5가 제공됩니다.
  • PHP 7.2가 제공됩니다.
  • Perl 5.26이 제공됩니다.

11-6. Apache HTTP Server

Apache HTTP Server 2.4.37 이 제공됩니다.

  • HTTP/2 사용을 위해서는 mod_http2 패키지 모듈을 설치해서 사용해야 합니다
  • mod_md 모듈이 추가 되었습니다. (ACME 프로토콜 SSL/TLS 인증서 서비스용)
  • ListenFree 옵션이 제공 됩니다. (네트워크 인터페이스 상태와 무관한 바인딩을 위해)
  • 아래 모듈이 삭제되었습니다.
    • mod_file_cache
    • mod_nss
    • mod_perl
  • mod_wsgi 가 Python3만 지원합니다.
  • 기존 prefork, worker 대신에 event MPM이 기본으로 적용됩니다.
  • /etc/sysconfig/httpd 설정 파일이 더 이상 유효하지 않습니다.
  • httpd 서비스 종료는 graceful stop을 기본으로 사용합니다.
  • mod_auth_kerbmod_auth_gssapi로 대체되었습니다.

11-7. Apache Tomcat

제거 되었습니다. JBoss Web Server를 권장 합니다.

11-8. Caching Server

  • Varnish Cache 6.0 이 제공됩니다.
  • Squid 4.4 가 제공 됩니다.

11-9. DB

아래와 같은 DB를 제공합니다.

  • MySQL 8.0
    • 권한모음과 같은 role을 지원합니다.
    • 기본 캐릭터셋이 latin1에서 utf8mb4로 변경 되었습니다.
    • InnoDB가 NOWAIT과 SKIP LOCKED 옵션을 지원합니다.
    • JSON 함수기능의 개선
    • mariadb-connector-c 패키지가 공통 클라이언트 라이브러리를 제공하여 이 라이브러리를 사용하면 MySQL, MariaDB에 모두 사용가능한 어플리케이션을 만들 수 있습니다.
    • RHEL8의 MySQL은 caching_sha2_paswd 대신에 mysql_native_passwd를 기본 인증 플러그인으로 사용합니다.
  • MariaDB 10.3
    • FOR 루프
    • 투명화 컬럼
    • InnoDB를 위한 인스턴트 ADD COLUMN
    • 병렬 리플리케이션
    • 멀티소스 리플리케이션
  • PostgreSQL 9.6
    • scan, join, aggregate에 대한 병렬 실행
    • 동기화 복제의 개선
    • join, sort, UPDATE, DELETE에 대한 postres_fdw 드라이버 지원
  • PostgreSQL 10
    • SCRAM-SHA-256 메커니즘 기반의 암호 인증 제공
    • 선언적인 테이블 분할
    • 쿼리 병렬처리 향상
    • 상세: RHEL8 Deploy Guides
  • Redis 5
  • MongoDB는 지원하지 않습니다. (라이센스 이슈)

11-10. 컴파일러

  • gcc 8.2 를 제공합니다.
  • AppStream에서 아래 개발 툴셋을 제공합니다.
    • Clang / LLVM Toolset 7.0.1
    • Rust Toolset 1.31
    • Go Toolset 1.11.5
    • java-11-openjdk
    • java-1.8.0-openjdk
    • icedtea-web
    • ant 1.10
    • maven
    • scala

11-11. 웹 콘솔

Cockpit이 RHEL8 기본 웹콘솔로 제공 됩니다.

11-12. 컨테이너

  • RHEL 8에는 docker가 포함되어있지 않습니다.
    • podman, buildah, skopeo, runc 를 사용하세요

11-13. 패키지 변경

현재 운영 환경과 관련있는 패키지에 대한 변경 목록입니다. 전체 목록은 공식 문서를 참고하세요.

  • abrt-python -> python3-abrt
  • dhclient -> dhcp-client
  • dracut -> dracut, dracut-live
  • git -> git, git-core, git-core-doc, git-subtree
  • glibc -> glibc, glibc-all-langpacks, glibc-locale-source, glibc-minimal-langpack, libnsl, libxcrypt, nss_db
  • glibc-common -> glibc-common, rpcgen
  • grub2-common -> efi-filesystem, grub2-common
  • grub2-tools -> grub2-tools, grub2-tools-efi
  • initscripts -> initscripts, netconsole-service, network-scripts, readonly-root
  • iproute -> iproute, iproute-tc
  • iptables -> iptables, iptables-libs
  • kernel -> kernel, kernel-core, kernel-modules, kernel-modules-extra
    • Ubuntu 처럼 분리되었으며 kernel 패키지는 메타패키지로 파일이 없는 패키지 입니다.
  • kernel-tools, qemu-kvm-tools -> kernel-tools
  • mod_nss -> mod_ssl
  • mod_wsgi -> python3-mod_wsgi
  • ncurses-libs -> ncurses-c++-libs, ncurses-compat-libs, ncurses-libs
  • ntp -> chrony
  • ntpdate -> chrony
  • numpy -> python2-numpy, python3-numpy
  • OpenIPMI -> OpenIPMI, OpenIPMI-lanserv
  • OpenIPMI-python -> python3-openipmi
  • oprofile -> perf
  • pkgconfig -> pkgconf-pkg-config
  • postfix -> postfix, postfix-mysql, postfix-pgsql
  • strace, strace32 -> strace
  • syslinux -> syslinux, syslinux-nonlinux
  • systemd -> systemd, systemd-container, systemd-udev
  • systemd-journal-gateway -> systemd-journal-remote
  • systemd-libs -> systmd-libs, systemd-pam
  • systemd-networkd, systemd-resolved -> systemd
    • Ubuntu 18.04 와 다르게 systemd-resolved 대신에 NetworkManager에서 resolv.conf를 관리합니다.
  • wireshark -> wireshark-cli
  • wireshark-gnome -> wireshark
  • yum-cron -> dnf-automatic
  • yum-plugin-aliases, yum-plugin-fastestmirror, yum-plugin-priorities, yum-plugin-remove-with-leaves, yum-plugin-tmprepo, yum-plugin-tsflags -> dnf
  • yum-plugin-auto-update-debug-info, yum-plugin-changelog, yum-plugin-copr -> dnf-plugins-core (기존 이름 사용 가능)
  • yum-plugin-versionlock -> python3-dnf-plugin-versionlock (기존 이름 사용가능)
  • yum-utils -> dnf-utils (기존 이름 사용 가능)

아래 패키지들은 삭제 되었습니다. 전체 목록은 공식 문서를 참고하세요.

  • acpid-sysvinit
  • btrfs-progs
  • btrfs-progs-devel
  • cvs
  • dmraid -> mdadm으로 대체 되었습니다.
  • finger -> who, pinky, last 명령으로 대체 가능
  • gcc-go
  • gcc-objc
  • GeoIP
    • RHEL8는 libmaxminddb, geoipupdate를 제공합니다.
  • grub2
  • ImageMagick
  • rcs
  • rsh
  • system-config-date
  • system-config-language
  • systemd-sysv
  • tcp_wrappers
  • tomcat
  • whois
  • yum-langpacks