이번 글은 리눅스의 새로운 버전이 출시됨에 따라 새로운 기능과 변경사항, 버그 수정, 테크프리뷰 등을 알아볼 수 있는 릴리즈 노트를 확인해볼 수 있는 시간을 갖고자 합니다.
리눅스 운영자나 기술지원 엔지니어라면 꼭 살펴보는 것을 권장합니다.
왜냐하면 레드햇리눅스 기준 메이저 버전과 마이너 버전이 업데이트 됨에 따라 새로운 기능, 변경사항, 더이상 사용되지 않는 기능등이 명시되어 있는데 만약 이것이 숙지되지 않는 상태에서 설정을(예를들어 deprecated된 기능) 감행할 경우 자칫 운영 시스템에 오류를 초래할 수 있기 때문입니다.
예시로 최근에 출시된 RHEL 9 (메이저 버전 기준)에 대한 release note를 확인해 보겠습니다.
https://docs.redhat.com/ko/documentation/red_hat_enterprise_linux/9/html/9.0_release_notes/index
왼쪽 카테고리에서 중점적으로 봐야할 항목은 4. 새로운 기능입니다. 그 외 여유가 되신다면 5. 버그수정, 6.테크프리뷰, 7.사용되지 않는 기능 등도 둘러보시면 좋습니다.
4. 새로운 기능 항목엔 메이저 버전이 업그레이드 되면서 새로 생기능 기능들을 나열합니다.
그 중 예시로 몇가지 항목들을 확인해 보겠습니다.
4. 새로운 기능 > 4.6 인프라 서비스 - 앞으로 mailx 패키지가 사라지는군요,
s-nail 은 mailx를 대체합니다. s-nail 메일 처리 시스템이 mailx 유틸리티를 대체했습니다. s-nail 유틸리티는 mailx 와 호환되며 다양한 새로운 기능을 추가합니다. mailx 패키지는 더 이상 업스트림에서 유지 관리되지 않습니다. |
4. 새로운 기능 > 4.7 보안 - 드디어 9.0부터 8.7p1 이상을 지원합니다.
OpenSSH는 8.7p1에서 배포됩니다. RHEL 9에는 버전 8.7p1에 OpenSSH 가 포함되어 있습니다. 이 버전은 RHEL 8.5에 배포된 OpenSSH 버전 8.0p1에 비해 많은 개선 사항 및 버그 수정을 제공합니다. |
4. 새로운 기능 > 4.7 보안 - rsyslog 패키지에 종속되었던 logrotate 기능이 분리되었습니다. 아래 설명처럼 logrotate가 필요하지 않는 환경에서는 해당 패키지가 불필요하므로 좀 더 최소한의 환경을 유지할 수 있겠네요.
별도의 rsyslog-logrotate 패키지에 포함된 logrotate logrotate 구성은 기본 rsyslog 패키지와 새로운 rsyslog-logrotate 패키지로 분리되었습니다. 불필요한 종속성을 설치하지 않도록 로그 회전이 필요하지 않은 경우와 같이 특정 최소한의 환경에서 유용합니다. |
위 내용을 모를 경우 rsyslog를 설치 하였는데 logrotate가 왜 안되는지 헤맬 수 도 있을거 같습니다.
4. 새로운 기능 > 4.7 보안 - 암호화 정책 중 TLS 1.0, 1.1 / DTLS 1.0, DSA 등의 아주 오래된 알고리즘과 프로토콜을 비활성화 하므로써 보안 강화 향상을 기대해볼 수 있습니다.
시스템 전체 암호화 정책은 더 안전합니다.
이번 업데이트를 통해 최신 보안 기본값을 제공하도록 시스템 전체 암호화 정책이 조정되었습니다.
|
rhel9부터는 TLS 1.2 프로토콜 이상, ECDHE등의 암호화 알고리즘을 사용하여 보안을 향상시킵니다.
4. 새로운 기능 > 4.7 보안 - OpenSSL 3.0.1 이상 제공
RHEL 9는 OpenSSL 3.0.1을 제공합니다. RHEL 9는 업스트림 버전 3.0.1의 openssl 패키지를 제공하며 여기에는 이전 버전에 비해 많은 개선 사항 및 버그 수정이 포함되어 있습니다. |
4. 새로운 기능 >4.9. 커널 - 이제 rhel9부터 cgroup-v2가 기본 사항으로 변경되었습니다. 그 전까지는 cgroup-v1이 기본이었고 선택적으로 cgroup-v2를 설정할 수 있었습니다.
RHEL 9에서 cgroup-v2 가 기본적으로 활성화되어 있습니다 제어 그룹 버전 2(cgroup-v2) 기능은 제어 그룹 관리를 간소화하는 단일 계층 구조 모델을 구현합니다 |
RHEL 9에서 cgroupsv1 이 더 이상 사용되지 않음
Jira:RHELDOCS-17545[1]cgroup 은 프로세스 추적, 시스템 리소스 할당 및 파티셔닝에 사용되는 커널 하위 시스템입니다. systemd 서비스 관리자는 cgroups v1 모드 및 cgroups v2 모드에서 부팅을 지원합니다. Red Hat Enterprise Linux 9에서 기본 모드는 v2 입니다. Red Hat Enterprise Linux 10에서 systemd는 cgroups v1 모드에서 부팅을 지원하지 않으며 cgroup v2 모드만 사용할 수 있습니다. |
4. 새로운 기능 > 4.8 네트워킹 본딩 인터페이스 slave의 queue_id 변경 가능
NetworkManager를 사용하여 본딩 포트의 queue_id 를 변경할 수 있습니다. 본딩의 NetworkManager 포트는 이제 queue_id 매개 변수를 지원합니다. eth1 이 본딩 인터페이스의 포트라고 가정하면 다음을 사용하여 본딩 포트에 대해 queue_id 를 활성화할 수 있습니다. |
queue_id는 NIC(Network Interface Card)가 **여러 개의 전송 및 수신 큐(TX/RX Queues)**를 지원할 때,
특정 패킷이나 인터럽트가 어느 큐에서 처리되는지 식별하기 위해 사용하는 ID 입니다.
각 슬레이브 인터페이스의 큐(queue)에 트래픽을 어떻게 분배할지가 중요해 집니다.
queue는 각 큐에 매핑된 CPU 또는 인터럽트를 구분하거나, 특정 흐름(Flow)이 특정 큐에 고정되었는지(RSS: Receive Side Scaling), 드라이버 또는 툴에서 디버깅/log 시에 패킷이 어느 큐를 통해 처리됐는지를 표시하기 위해 필요합니다.
# ethtool -l eth0
이 명령어로 큐 개수를 확인할 수 있고,
드라이버나 sysfs에서 queue_id와 매핑된 IRQ 번호를 확인할 수도 있습니다.
# cat /proc/interrupts | grep eth0
177: 100000 0 0 0 IR-PCI-MSI 524288-edge eth0-TxRx-0
178: 98000 0 0 0 IR-PCI-MSI 524289-edge eth0-TxRx-1
여기서 TxRx-0, TxRx-1 등이 각 큐이고, 이게 queue_id=0, queue_id=1 같은 식으로 매핑됩니다.
필요하면 queue_id를 튜닝해서 특정 CPU 코어와 큐를 고정시켜 성능 최적화를 할 수도 있습니다.
4.새로운 기능 > 4.11 파일 시스템 및 스토리지 - 드디어 rhel9부터 exFAT을 지원하는군요. rhel7,8에서는 별도 패키지를 설치해야 해서 번거로웠습니다.
exFAT 파일 시스템에 대한 지원이 추가되었습니다. RHEL 9.0에서는 확장 가능 파일 할당 테이블(exFAT) 파일 시스템을 지원합니다. 이제 마운트, 포맷 및 일반적으로 이 파일 시스템을 사용할 수 있습니다. 이 파일 시스템은 일반적으로 플래시 메모리에서 기본적으로 사용됩니다. |
7. 사용되지 않는 기능(deprecated) > 7.13 더 이상 사용되지 않는 패키지 - iptables가 기본적으로 사용되지 않기 때문에 아래 패키지들이 사용되지 않음으로 표시됩니다.
RHEL 9에서는 다음 패키지가 더 이상 사용되지 않습니다.
|
이보다 더 많은 내용이 있지만 예시로서 몇가지 사례를 골라보았는데 어떤가요?
아무래도 새로운 버전이 출시되고 나서 여러 가지 변경사항과 기능들을 파악하는데는 릴리즈 노트만한 것이 없는 거 같습니다.
이렇듯 신규 버전 리눅스의 여러가지 변경사항, 새로운 기능들을 설명하는 릴리즈 노트는 리눅스 서버를 다루는 운영자나 엔지니어가 필수적으로 확인해보아야 할 사항이며 새로운 리눅스 버전에 빠르게 다가갈 수 있는 효과적인 방법 중 하나입니다.