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 以外のユーザーが所有できるプロセスの最大数は https://access.redhat.com/solutions/218383 で説明されているようにプログラムを使用して決定されます。
1 つの PAM セッションあたり root 以外のユーザーが利用できるプロセスの現在の数は、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 は、init スクリプトに自動的に RSA と DSA サーバーのプライベートおよびパブリックキー生成を指示するために使用されました。
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 では、新ロギングデーモンである journaldsystemd への移行の一部として導入されています。journald は、全サービスで以下のタイプのメッセージを取り込みます。
  • syslog メッセージ
  • kernel メッセージ
  • initial RAM ディスクおよび初期ブートメッセージ
  • 標準出力および標準エラー出力に送信されるメッセージ
その後、これらのメッセージはネイティブのジャーナルファイルに保存されます。これは、構造化されインデックス化されたバイナリーファイルで、有用なメタデータを含み、容易かつスピーディーに検索ができるものです。
ジャーナルファイルは、デフォルトでは永続的に保存されません。ログ記録されるデータ量は、利用可能な空きメモリーの量によります。システムが、メモリーもしくは /run/log/journal ディレクトリーでスペース不足になると、一番古いジャーナルファイルが削除され、ロギングを継続します。
Red Hat Enterprise Linux 7 では、rsyslogjournald が共存しています。journald が収集したデータは rsyslog に転送され、これがさらなる処理を実行し、テキストベースのログファイルを保存することが可能です。デフォルトでは、rsyslogsyslog メッセージ用の標準的なジャーナルフィールドのみを保存しますが、journald で利用可能なすべてのフィールドを保存するように設定することもできます。つまり、Red Hat Enterprise Linux 7 は、依然としてrsyslog に依存するアプリケーションおよびシステム設定と互換性を保っています。
ロギングサブシステムについての詳細は、『Red Hat Enterprise Linux 7 System Administrator's Guide』 を参照してください。こちらから入手できます http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/

2.4.4. ローカリゼーション設定

新 init システムである systemd への移行の一部として、ローカリゼーション設定は /etc/sysconfig/i18n から /etc/locale.conf および /etc/vconsole.conf に移動しました。

2.4.5. ホスト名の定義

Red Hat Enterprise Linux 6 では、ホスト名変数は /etc/sysconfig/network 設定ファイルで定義されていました。Red Hat Enterprise Linux 7 では、新 init システム (systemd) への移行の一部として hostname 変数は /etc/hostname で定義されます。

2.4.6. Yum の更新

Red Hat Enterprise Linux 7 には更新バージョンの yum が含まれており、これには多くの変更および機能強化が含まれています。このセクションでは Red Hat Enterprise Linux 6 から Red Hat Enterprise Linux 7 に移行する yum ユーザーに影響する可能性のある変更を一覧表示しています。
  • 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 ステートメントを無効にするか、特定リポジトリー用に定義されている include ステートメントをそのリポジトリー ID を提供することで無効にすることが可能です。
  • 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 を使って、--nodocs が指定されている場合でも、スペックファイルの %files セクションにあるファイルをインストール必須のライセンスとしてマークすることができます。
  • バージョン比較は dpkg スタイルのチルダ (~) 演算子をサポートし、リリース前のソフトウェアを問題なく処理します。たとえば、foo-2.0~beta1foo-2.0 よりも古いとみなされ、これら共通のアップストリームバージョンのプラクティスを処理するためのリリースフィールドに関する裏技の必要性を除きます。
  • 自動依存関係ジェネレーターは、ビルトインフィルター付きで拡張可能かつカスタマイズ可能なルールベースのシステムに書き換えられました。
この更新には、以下の機能強化も含まれます。
  • パッケージからインストールされたファイル (INSTFILENAMES)、ファイルへのハードリンクの数 (FILENLINKS)、パッケージバージョンコントロールシステムの詳細 (VCS)、およびフォーマット済みの依存関係文字列のショートカット (PROVIDENEVRSREQUIRENEVRSCONFLICTNEVRSOBSOLETENEVRS) へのクエリーが可能になりました。
  • 以下のものを含む多くの新コマンドが提供されています。
    • rpmkeys
    • rpmdb
    • rpmspec
    • rpmsign
  • RPM Package Manager には、ランタイムマクロ拡張やランタイム queryformat 拡張を有効にするスクリプトレットへの新たなスイッチが含まれています。
  • トランザクション前および後のスクリプトレット依存関係は、Requires(pretrans) および Requires(posttrans) で正確に表記されるようになっています。
  • RPM Package Manager には OrderWithRequires タグが含まれており、ユーザーはこれで追加の順序付け情報を供給することができます。この新たなタグは Requires タグと同じ構文を使用しますが、依存関係は生成しません。同一トランザクション内に上記のパッケージが存在する場合は、トランザクションの順序付けを計算する際に順序付けのヒントは Requires のように扱われます。
  • スペックファイル内の行連結およびマクロ拡張は、指定された長さに制限されることはなくなりました。
  • RPM Package Manager では、ユーザーがアップストリームバージョンコントロールのリポジトリー情報を指定できるようになりました。
  • RPM Package Manager には、パッチ適用のプロセスの自動化を支援する %autosetup マクロが含まれています。

2.4.8. /etc/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 下にマウントされています。
  • ファイルシステムのなかには、デフォルトでマウントされているものもあります。
  • systemdlibcgroup から systemd への移行をまだ完全にはサポートしていません。このため、cgred サービスは、systemd が管理していないグループにプロセスを移動する場合にのみ使用してください。cgconfig.conf ファイルは、systemd が管理していないファイルシステムもしくはファイルコントローラーのコントロールグループ階層を設定する場合に使用してください。
これらの変更についての詳細情報は、『Red Hat Enterprise Linux 7 Resource Management Guide』 を参照してください。こちらから入手できますhttp://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/

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 に移動しました。ユーザーは rd.memdebug をキャプチャーカーネルの /etc/sysconfig/kump ファイルとして指定することで同じ機能が実行できます。
  • 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 についての詳細情報は、『Red Hat Enterprise Linux 7 Kernel Crash Dump Guide』 を参照してください。こちらから入手できます http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/