2.4. システム管理
このセクションでは、Red Hat Enterprise Linux 6 と Red Hat Enterprise Linux 7 との間でなされたシステム管理ツールおよびプロセスの変更の概要について説明しています。
2.4.1. デフォルトのプロセス最大数 (ulimit)
Red Hat Enterprise Linux 6 において、root 以外のユーザーでは、1 つの PAM セッションあたりのプロセスが 1024 個に制限されていました。Red Hat Enterprise Linux 7 では、デフォルトで、1 つの PAM セッションあたりのプロセスが 4096 個に増えました。
このデフォルト値は /etc/security/limits.d/*-nproc.conf
ファイル (通常は、Red Hat Enterprise Linux 7 上の /etc/security/limits.d/20-nproc.conf
) で指定します。このファイルが存在しない場合、root 以外のユーザーが所有できるプロセスの最大数は、Red Hat Enterprise Linux で nproc (ulimit -u) のデフォルト値を決定するものは何ですか? で説明されているように、プログラムで決定されます。
root 以外のユーザーが、現在の、1 つの PAM セッションあたりに利用できるプロセスの数は、ulimit -u
コマンドを実行して確認できます。
2.4.2. 設定ファイルの構文
Red Hat Enterprise Linux 6 では、設定ファイル内に定義した値のエクスポートに export
コマンドが使われていました。export
コマンドを使用しない変数はエクスポートされず、対応する init スクリプト用の設定値としてのみ使用されました。以下は、/etc/sysconfig/sshd
ファイルの例です。
AUTOCREATE_SERVER_KEYS=YES export SSH_USE_STRONG_RNG=1 export OPENSSL_DISABLE_AES_NI=1
Red Hat Enterprise Linux 6 では、SSH_USE_STRONG_RNG
および OPENSSL_DISABLE_AES_NI
の値のみが ssh デーモン環境にエクスポートされました。変数 AUTOCREATE_SERVER_KEYS
は、RSA と DSA サーバーのプライベートキーおよびパブリックキーを自動的に生成するのを init スクリプトに指示するために使用されました。
Red Hat Enterprise Linux 7 では、export
コマンドを使用して、設定対象のサービス環境にこれらの値をエクスポートする必要はなくなりました。このため、以下の例では /etc/sysconfig/sshd
ファイルが、これら 3 つの値をすべて ssh デーモンの環境にエクスポートします。
AUTOCREATE_SERVER_KEYS=YES SSH_USE_STRONG_RNG=1 OPENSSL_DISABLE_AES_NI=1
2.4.3. 新ロギングフレームワーク
Red Hat Enterprise Linux 7 では、systemd
への移行の一環として、新しいロギングデーモン (journald
) が導入されました。journald
は、全サービスに対して以下のタイプのメッセージをキャプチャーします。
-
syslog
メッセージ - kernel メッセージ
- initial RAM ディスクおよび初期ブートメッセージ
- 標準出力および標準エラー出力に送信されるメッセージ
その後、これらのメッセージはネイティブのジャーナルファイルに保存されます。ジャーナルファイルは、構造化されインデックス化されたバイナリーファイルで、有用なメタデータを含み、容易かつスピーディーに検索ができます。
ジャーナルファイルは、デフォルトでは永続的に保存されません。ログに記録されるデータ量は、利用可能な空きメモリーの量によります。メモリーもしくは /run/log/journal
ディレクトリーで容量が不足すると、一番古いジャーナルファイルが削除され、ロギングを継続します。
Red Hat Enterprise Linux 7 では、rsyslog
と journald
が共存しています。journald
が収集したデータは rsyslog
に転送され、ここでさらなる処理が行われ、テキストベースのログファイルが保存されます。デフォルトでは、rsyslog
は、syslog
メッセージ用の標準的なジャーナルフィールドのみを保存しますが、journald
で利用可能なすべてのフィールドを保存するように設定することもできます。つまり、Red Hat Enterprise Linux 7 は、依然として rsyslog
に依存するアプリケーションおよびシステム設定と互換性を保っています。
ロギングサブシステムの詳細については、システム管理者ガイドを参照してください。
2.4.4. ローカリゼーション設定
新 init システムである systemd
への移行の一環として、ローカリゼーション設定は、/etc/sysconfig/i18n
から /etc/locale.conf
および /etc/vconsole.conf
に移動しました。
2.4.5. ホスト名の定義
Red Hat Enterprise Linux 6 では、hostname
変数は /etc/sysconfig/network
設定ファイルで定義されていました。Red Hat Enterprise Linux 7 では、新 init システム (systemd
) への移行時に、hostname
変数が /etc/hostname
に定義されます。
2.4.6. Yum の更新
Red Hat Enterprise Linux 7 には更新バージョンの yum が含まれており、これには多くの変更および機能強化が含まれています。このセクションでは、yum を使用して Red Hat Enterprise Linux 6 から Red Hat Enterprise Linux 7 に移行する際に影響を受ける可能性のある変更を一覧表示しています。
-
yum group
およびyum groups
はトップレベルのコマンドとなり、コマンドラインの yum の使用における一貫性が改善されています。たとえば、yum groupinfo
コマンドは、yum group info
コマンドに変わりました。 -
yum group list
には、出力を変更するための新たなオプションのパラメーターが含まれています。この新たなオプションは、language
とids
です。 -
/etc/yum.conf
内のgroup_command
パラメーターのデフォルト値が、compat
からobjects
に変更になりました。これまで、yum group install
のデフォルト動作は、パッケージグループの全メンバーをインストールし、以前にインストールされたパッケージと、以前のアップグレード以降にグループに追加されたパッケージの両方をアップグレードするというものでした。新たなデフォルト動作では、yum が、以前にインストールされたグループの記録を取り、グループの一部としてインストールされたパッケージと、別途インストールされたパッケージを区別します。 -
yum-security
プラグインおよびyum-presto
プラグインは、yum に統合されました。 - yum は、複数のパッケージを同時にダウンロードできるようになっています。
- yum には環境グループのサポートが含まれています。これにより、環境グループ下にリストされている複数のパッケージグループを、単一エンティティーとしてインストール、削除することができます。
-
yum はリポジトリーをパッケージのセットとして扱うことができるようになっているため、リポジトリー内の全パッケージを単一エンティティーとして扱うことが可能です。たとえば、そのリポジトリー内の全パッケージをインストールしたり、削除したりできます。この機能は、
repository-packages
サブコマンドが提供しています。 -
yum に
--disableincludes
オプションが追加されました。これにより、設定ファイルで定義されているinclude
ステートメントを無効にできるようになりました。all
値ですべてのinclude
ステートメントを無効にするか、特定のリポジトリー ID を提供することで、そのリポジトリーに定義されているinclude
ステートメントを無効にすることが可能です。 -
yum に
--assumeno
オプションが追加されました。これは、yum による質問への回答が no であることを前提としています。このオプションは--assumeyes
オプションを上書きしますが、alwaysprompt
が規定する動作に依存します。
yum についての詳細情報は、man ページを参照してください。
$ man yum
2.4.7. RPM Package Manager (RPM) の更新
Red Hat Enterprise Linux 7 は、RPM Package Manager の更新バージョンを提供します。この更新には、移行に影響を与える可能性のある動作の変更が数多く含まれています。
- 競合検出はより厳密、正確になっています。競合の感度が高いため、Red Hat Enterprise Linux 6 にインストールされたパッケージがすべて Red Hat Enterprise Linux 7 にインストールされるとは限りません。
- 該当パッケージの他のバージョンと競合するパッケージを、代替方法を使ってシングルトンとして設定することができます。こうすることで、単一パッケージの複数のバージョンを同時にインストールすることが可能です。
- インストール済みのパッケージが別のパッケージを廃止予定としてリストしている場合、この 2 番目のパッケージはインストールされません。
- 廃止ルールには、アーキテクチャーなどの属性に関わらず、すべての適合パッケージが含まれます。
-
依存計算では、インストールされていないファイルや置き換えられたファイル (たとえば、
--nodocs
、--noconfig
、または--force
オプションなど) は考慮されません。 -
パニックとなった (
DB_RUNRECOVER
) RPM Package Manager データベースを再構築する際に、rm -f /var/lib/rpm/__db.
を手動で実行する必要がなくなりました。 - OpenPGP 3 で作成されたパブリックキーはサポートされません。
-
--info
オプションは、人間が読みやすくするために行ごとの個別のタグと値のペアを出力するようになりました。以前の--info
形式に依存するスクリプトは、書き換える必要があります。 - スペックパーサーはより厳密、正確になっており、これまでは受け入れられたスペックファイルでも、パーサーに失敗するか、警告が発せられる可能性があります。
-
%license
は、ライセンスとしてスペックファイルの%files
セクションのファイルをマークするのに使用できるようになりました。このラインセスは、--nodocs
が指定されたときでさえインストールする必要があります。 -
バージョン比較は dpkg スタイルのチルダ (
~
) 演算子をサポートし、リリース前のソフトウェアを問題なく処理します。たとえば、foo-2.0~beta1
はfoo-2.0
よりも古いとみなされるため、これら共通のアップストリームバージョンのプラクティスを処理するリリースフィールドに関する裏技の必要性がなくなります。 - 自動依存関係ジェネレーターは、ビルトインフィルター付きで、拡張可能かつカスタマイズ可能なルールベースのシステムに書き換えられました。
この更新には、以下の機能強化も含まれます。
-
パッケージからインストールされたファイル (
INSTFILENAMES
)、ファイルへのハードリンクの数 (FILENLINKS
)、パッケージバージョンコントロールシステムの詳細 (VCS
)、およびフォーマット済みの依存関係文字列のショートカット (PROVIDENEVRS
、REQUIRENEVRS
、CONFLICTNEVRS
、OBSOLETENEVRS
) へのクエリーが可能になりました。 以下のものを含む多くのコマンドが新たに提供されました。
-
rpmkeys
-
rpmdb
-
rpmspec
-
rpmsign
-
- RPM Package Manager には、ランタイムマクロ拡張やランタイムクエリー形式の拡張を有効にするスクリプトレットへの新たなスイッチが含まれています。
-
トランザクション前および後のスクリプトレット依存関係は、
Requires(pretrans)
およびRequires(posttrans)
で正確に表記されるようになっています。 -
RPM Package Manager には
OrderWithRequires
タグが含まれており、ユーザーはこれで追加の順序付け情報を供給することができます。この新たなタグは Requires タグと同じ構文を使用しますが、依存関係は生成しません。同一トランザクション内に上記のパッケージが存在する場合は、トランザクションの順序付けを計算する際に、順序付けのヒントがRequires
のように扱われます。 - スペックファイル内の行連結およびマクロ拡張が、指定された長さに制限されることはなくなりました。
- RPM Package Manager では、ユーザーがアップストリームバージョンコントロールのリポジトリー情報を指定できるようになりました。
-
RPM Package Manager には、パッチ適用のプロセスの自動化を支援する
%autosetup
マクロが含まれています。
2.4.8. ifconfig の新フォーマット
廃止予定の ifconfig ツールからの出力形式が、Red Hat Enterprise Linux 7 で変更されています。ifconfig 出力を解析するスクリプトはこれらの変更に影響を受ける可能性があり、書き換えが必要な場合があります。
Red Hat では、廃止予定の ifconfig ツールではなく、ip ユーティリティーとそのサブコマンド (ip addr
、ip link
) の使用を推奨しています。
2.4.9. コントロールグループの変更
カーネルは、システムリソースを管理する目的で、コントロールグループを使用してプロセスをグループ化します。Red Hat Enterprise Linux 7 では、コントロールグループに多くの変更が導入されています。
-
コントロールグループは、
/cgroup
ではなく、/sys/fs/cgroup
下にマウントされています。 - ファイルシステムのなかには、デフォルトでマウントされているものもあります。
-
systemd
は、libcgroup
からsystemd
への移行を完全にはサポートしていません。したがって、cgred
サービスは、systemd
が管理していないグループにプロセスを移動する場合にのみ使用してください。cgconfig.conf
ファイルは、systemd
が管理していないファイルシステムもしくはファイルコントローラーのコントロールグループ階層を設定する場合に使用してください。
これらの変更の詳細については、リソース管理ガイドを参照してください。
2.4.10. カーネルクラッシュ収集 (Kdump) の変更
これまで、カーネルクラッシュ収集ツールである kdump は、kdump キャプチャーカーネル用に、カスタム mkdumprd
スクリプトで初期 RAMDisk (initrd
) を生成していました。Red Hat Enterprise Linux 7 では、初期 RAMDisk が dracut で生成されるようになり、初期 RAMDisk 生成プロセスの維持が容易になっています。
この結果、kdump とその設定ファイルには以下の変更がなされました。
-
net
ディレクティブはサポート対象外となりました。ssh
もしくはnfs
を明示的に定義する必要があります。 -
blacklist
オプションに対応しなくなりました。代わりにrd.driver.blacklist
を、キャプチャーカーネルの/etc/sysconfig/kdump
ファイル内のパラメーターとして指定することができます。 -
デフォルトの
mount_root_run_init
アクションは、対象ターゲットへのダンプが失敗した場合に実行されていましたが、これはdump_to_rootfs
アクションに置き換えられました。実際の root ファイルシステムをマウントして init スクリプトを実行し、kdump
サービス開始時に vmcore の保存を試みる代わりに、root ファイルシステムをマウントして、即座に vmcore をそこに保存します。 -
新たなディレクティブである
dracut_args
は、kdump の設定時に追加の dracut 引数の指定を可能にします。 -
debug_mem_level
オプションが kdump に含まれなくなりました。この機能は dracut に移動しました。ユーザーは、キャプチャーカーネルの/etc/sysconfig/kump
ファイルのパラメーターとしてrd.memdebug
を指定することで、同じ機能が実行できます。 -
options
ディレクティブはこれまで、初期 ram ファイルシステム (initramfs
) 内のカーネルモジュール固有のパラメーターを含めるために使用されていました。この方法は、Red Hat Enterprise Linux 7 ではサポートされていません。代わりに、キャプチャーカーネルの/etc/sysconfig/kdump
ファイルで関連パラメーターを指定できます。 -
link_delay
およびdisk_timeout
パラメーターは不要となり、サポート対象外となりました。今まで、これらのパラメーターが必要とされていたユースケースに対処するudev
が、dracut に含まれているためです。 -
ファイルシステムのバックエンドダンプターゲットは、kdump サービスが開始し、初期 RAMDisk イメージが作成される前に、クラッシュしたカーネルにマウントする必要があります。そのターゲットを
/etc/fstab
に追加すると、システムの起動時に自動的にマウントされようになります。 - パスを指定してもターゲットを指定せず、指定したパス内のディレクトリーが別のデバイスのマウントポイントであった場合、vmcore は、そのパスのどこかにマウントされたデバイスではなく、パスそのものに保存されます。このため、システムが再起動してデバイスがマウントされると、vmcore にはアクセスできなくなります。これは、デバイスがその位置の上にマウントするためです。Red Hat Enterprise Linux 7 は、ターゲットを指定せずにパスを指定した場合、この問題について警告します。
kdumpの詳細については、カーネル管理ガイドを参照してください。
2.4.11. usermod の動作の変更
Red Hat Enterprise Linux 6 では、usermod
コマンドの -g
オプションではグループ所有権を操作しませんでした。Red Hat Enterprise Linux 7.0 から Red Hat Enterprise Linux 7.2 リリースの -g
オプションでは、/home
ディレクトリーツリー内のファイルのグループ所有権が変更されていました。Red Hat Enterprise Linux 7.3 以降、usermod
は、home ディレクトリーのユーザー ID が、修正したユーザー ID に一致した場合に限り、ユーザーのホームディレクトリーにあるファイルのグループ所有権を変更します。
2.4.12. システムアカウントへの変更
Red Hat Enterprise Linux 7 リリースでは、システムユーザー、および一般ユーザーおよびグループにおいて、デフォルトの ID 範囲が以下のように変更になりました。
範囲 | Red Hat Enterprise Linux 6 | Red Hat Enterprise Linux 7 |
---|---|---|
システムアカウント | 0-499 | 0-999 |
ユーザーアカウント | 500-60,000 | 1,000-60,000 |
この変更により、既存のユーザーの UID と GID に 500 ~ 999 を使用している場合に Red Hat Enterprise Linux 7 に移行すると、問題が発生する場合があります。UID および GID におけるデフォルトの範囲は、/etc/login.defs
ファイルで手動で変更できます。
2.4.13. hwclock の動作の変更
Red Hat Enterprise Linux 6 では、ハードウェアクロックにアクセスするための hwclock
コマンドが、システムのシャットダウンまたは再起動のたびに自動的に実行されていました。この動作は、Red Hat Enterprise Linux 7 の登場で変わります。システムクロックが Network Time Protocol
(NTP
) または Precision Time Protocol
(PTP
) で同期される場合は、カーネルが 11 分ごとに自動的にハードウェアクロックをシステムクロックに同期します。
NTP
、PTP
の設定、およびハードウェアクロックの設定の詳細については、システム管理者ガイドを参照してください。