えんでぃの技術ブログ

えんでぃの技術ブログ

ネットワークエンジニアの視点で、IT系のお役立ち情報を提供する技術ブログです。

Fedora34の変更点

fedora_logo

前の記事

Fedora33のアップデート情報はこちらをどうぞ。

endy-tech.hatenablog.jp

お伝えしたいこと

Fedora34のリリースノートを読んで、個人的に気になった項目をまとめます。

docs.fedoraproject.org

公式情報の見方

Fedora 34の変更点は、以下のリンクに載っています。
概要はリリースノートに、詳細情報はChange Setsのページに書いてあります。

Change Setの各サブタイトルのリンクから詳細情報に飛べるようになっています (下図赤枠部)。
詳細を知りたい時に便利なので、こちらも活用ください。

fedora_change_sets

Fedora34の既知の問題は、以下にまとめられています。

他バージョンのFedoraについて知りたい場合は、以下のリンクを参照してください。

Release Notes & Changes

System Administrators

zramに全メモリ容量を割り当てるように

Fedora33からzramをswap領域に割り当てるようになりました。
/usr/lib/systemd/zram-generator.confにzram設定のデフォルト値が記述されていましたが、Fedora34でこのデフォルト値が微調整されました。

調整の内容は以下のとおりです。

Fedora33 Fedora34
[zram0]
zram-fraction = 0.5
max-zram-size = 4096
[zram0]
zram-fraction = 1.0
max-zram-size = 8192

Fedora33では、zramのサイズが全メモリ容量の半分 (最大4GiBまで) でした。
Fedora34では、zramのサイズが全メモリ容量の100% (最大8GiBまで) となりました。

これにより、Fedora34においてメモリ容量が8GiBの場合、メモリの空き容量が足りなくなってくると最大8GiB分のデータがswappingされます。
実際にはデータ圧縮されるので、最大の8GiB分のデータがswappingされたとしてもzramによるメモリ消費量は4GiB前後になると思います。
残りの4GiBはswapされていないメモリ消費のままです。

中々衝撃的な内容ではありますが、実は性能上ほぼ問題ありません。
それどころか、zramをフル活用することでメモリ使用率が約半分になり、実質倍以上のデータをメモリ上に保存できるようになります。

もちろん、圧縮率はメモリ上に保存されるデータ次第ではあります。
圧縮処理のためにCPU使用率は上がります。
しかし、メモリ容量が少ない環境においては夢のような実装ではないでしょうか。
RHEL9にも同様に実装されるのか、気になるところです。

zramによるswappingについては、別記事にて詳しく説明しています。
興味のある方は、こちらの記事もご覧ください。

endy-tech.hatenablog.jp

/etc/selinux/configからのSELinux無効化ができなくなった

元々、SELinuxを無効化する方法は2つありました。

  1. Bootloader (GRUB2) のkernel command lineに、selinux=0を追記してから起動する
  2. /etc/selinux/configSELINUX=disabledを追記してから起動する

これらのうち、2の方法でSELinuxを無効化できなくなります。
今後SELinuxを恒久的に無効化する際は、以下のようなコマンドでBootloaderの設定を書き換えた上でOS再起動することになります1

sudo grubby --update-kernel ALL --args selinux=0

ちなみに変更の背景ですが、Linux Kernelのセキュリティ向上のためのようです。
詳細は2つ目のChangesのリンクをご覧ください。

Desktop Users

Pipewireがデフォルトの音声サーバに

音声周りの理解は浅いですが、ざっくりご説明します。
細かい文言に違和感を感じる部分もあるかもしれませんが、ご容赦ください。

実装の変化を図解します。

sound_server_architecture

Fedora33ではALSA、PulseAudio、JACKの3つが製品が独立して動作していました。
基本的には、デスクトップの音量調整アプリなどのクライアントソフトはPulseAudioにアクセスし、PulseAudioが裏でALSAと連携しながら音声サービスを提供しているという構成でした。

Fedora34では、上記の3製品がPipewireという単一のソフトウェアに集約されます。
ただし、プロセスとしては別々に動作します。
PipewireはALSA、PulseAudio、JACKのAPIに対応するので、クライアントは今までどおりPulseAudioとの互換性を保ったまま動作できます。

何が嬉しいかというと、Fedora Wikiには以下のように書かれていました。
ほとんどの方には関係ないと思いますが、開発が活発な製品を使っておいて損はないという印象です。

  • JACKと他製品の連携をしやすくなる
  • PulseAudioと比較して、設定の柔軟性が向上する
  • 性能・セキュリティ・メンテナンス性向上

Fedora33とFedora34のパッケージ構成を比較したところ、下表のように変わっていました。
pipewire-alsa, pipewire-pulseaudio, pipewire-jack-audio-connection-kit は、pipewireがALSA、PulseAudio、JACKの3製品を置き換えるための互換プログラムを含むパッケージです。

減ったもの 増えたもの
alsa-plugins-pulseaudio pipewire-alsa
pulseaudio
pulseaudio-module-bluetooth
pulseaudio-module-x11
pipewire-pulseaudio
pipewire-utils
pipewire-gstreamer
jack-audio-connection-kit.x86_64 pipewire-jack-audio-connection-kit

Pipewireの詳しい仕様については調べていませんが、私の環境ではバージョンアップ後も問題なく音は出たのでヨシとします。

最後に補足ですが、Fedora35にてSession ManagerがPipeWireからWirePlumberに変更されます (参考)。

ibus-anthyがデフォルトの日本語IME

Fedora19〜Fedora33は、ibus-kkcがデフォルトの日本語IMEでした。
Fedora34以降は、ibus-anthyがデフォルトの日本語IMEになります。

変更の理由は、kkcが暫くの間メンテされていないためとのことです。

Bugs

Bugsの中から気になる情報を拾います。

新規インストール時、btrfsのサブボリュームが圧縮されない

この事象はFedora34だけでなく、Fedora35にも該当します (Bugzilla #1952764より)。

該当する条件は、以下のとおりです。

  • Fedora34の新規インストール画面において、"custom partitioning"を選択する
  • btrfsのsubvolume名を変更し、インストールを続行する

影響は以下のとおりです。

  • /にマウントされたsubvolume名を変更した場合は、全データが影響を受ける
  • /以外にマウントされたsubvolume名を変更した場合は、/etc/fstabの表記でcompress=zstd:1が漏れてしまう

回避方法として、上記リンクにWorkaround A, Workaround Bが紹介されています。
Workaround B (インストール後にsubvolume名を変更する) が明らかに楽だと思います。
詳細はリンク先をご確認ください。

まとめ

Fedora34の更新点をまとめました。

zramのチューニングは、ほぼ全員にとって関心のある内容だと思います。

デスクトップをお使いの方は、Pipewireの採用も影響があるかもしれません。
スピーカーとマイクがちゃんと動作するかご確認ください。

次の記事

Fedora35の更新内容から気になる部分のみ抽出しました。

endy-tech.hatenablog.jp