2.2 既知の問題

この項では、この更新の既知の問題について説明します。

kernel-uekパッケージを更新できない場合にOracle Linuxの更新が失敗する

デフォルトで、Oracle Linuxのインストールには、UEK R3のdtrace-modulesパッケージが含まれています。 このパッケージでは、特定のkernel-uekバージョンが必要です。 ただし、dtrace-modulesパッケージが既存のkernel-uekパッケージを削除できないため、3つの更新のinstallonly_limitに達したとき、kernel-uekパッケージを更新できない場合、yum updateは失敗します。yumは、次の例のようなエラー・メッセージを表示します。

--> Finished Dependency Resolution
Error: Package: kernel-uek-debug-3.8.13-55.1.1.el6uek.x86_64 (public_ol6_UEKR3_latest)
          Requires: kernel-firmware = 3.8.13-55.1.1.el6uek

回避策として、たとえば次のように、kernel-uekパッケージの更新前に、既存のdtrace-modulesパッケージを削除します。

# for package in `rpm -qa | grep dtrace-modules`; do yum remove -y $package; done

すべてのdtrace-modulesパッケージを削除すると、UEK R3カーネルを含むOracle Linuxを更新できます。 UEK R3でDTraceを使用する場合、現在のカーネルのdtrace-modulesパッケージを再インストールします。

# yum install dtrace-modules-`uname -r`

(バグID 21669543)

ACPI

次のメッセージは、acpi-cpufreqモジュールで必要とされる適切なインタフェース(_PSS_PPCなど)がBIOSで提供されていないことを示します。

kernel: powernow-k8: this CPU is not supported anymore, using acpi-cpufreq instead.
modprobe: FATAL: Error inserting acpi_cpufreq 

このエラーに有効な回避策はありません。 (バグID 17034535)

btrfs

  • --alloc-startオプションをmkfs.btrfsで使用して、ファイル・システムの開始のオフセットを指定すると、ファイル・システムのサイズが小さくなる必要がありますが、そのようにはなりません。 また、デバイス・サイズよりも大きなオフセットを指定することも可能です。 (バグID 16946255)

  • mkfs.btrfsの使用方法に、raid5およびraid6がデータとメタデータの両方に可能なプロファイルとして表示されます。 しかし、これらの機能はカーネルでサポートされておらず、それらを使用するファイル・システムはマウントできません。 (バグID 16946303)

  • btrfs filesystem balanceコマンドでは、特定の状況でRAIDレベルの変更が可能であることが警告されず、操作を取り消す選択肢が表示されません。 (バグID 16472824)

  • 既存のext2、ext3またはext4ルート・ファイル・システムをbtrfsに変換すると、ファイルの拡張属性の一部として格納されている関連のセキュリティ・コンテキストが引き継がれません。 SELinuxを有効にして強制モードに設定すると、再起動後に多数の権限拒否エラーが発生し、システムが起動できなくなる場合があります。 この問題を回避するには、自動ファイル・システムの名前変更が起動時に実行されるようにします。 自動名前変更をトリガーするには、最初の変換後のシステム再起動の前に、ファイル・システムのrootディレクトリに.autorelabelという名前の空のファイルを(たとえば、touchを使用して)作成します。 このファイルの存在が、SELinuxにファイル・システム上のすべてのファイルに対するセキュリティ属性の再作成を指示します。 これを実行せずに再起動に失敗した場合、カーネル起動パラメータにselinux=0を追加して一時的にSELinuxを完全に無効にするか、enforcing=0を追加してSELinuxポリシーの実行を無効にします。 (バグID 13806043)

  • duなどのコマンドで、遅延割当てでのバイト数が変化しているときに、btrfsファイル・システムのファイル・サイズに整合性のない結果が表示される場合があります。 (バグID 13096268)

  • btrfsがコピーオンライトであるということは、ファイル・システム上のすべての操作で、最初にディスク・スペースが必要になるということです。 スペースが残っていないディスクでは、すべての操作を実行できず、ファイルの削除もできない場合があります。 回避策として、操作を再試行する前にsyncを実行します。 これでもうまくいかない場合は、-o nodatacowオプションを指定してファイル・システムを再マウントし、ファイルを削除してスペースを解放してください。 https://btrfs.wiki.kernel.org/index.php/ENOSPCを参照してください。

  • Oracle Linux 6の場合、btrfsには、1つのディレクトリから1つのファイルへのハード・リンクの数が237以下であるという制限があります。 正確な制限はファイル名の文字数によって異なります。 ファイル名が最大8文字までのファイルに対する制限は237ですが、ファイル名が長くなると制限数はさらに小さくなります。 この数を超えるリンクを作成しようとすると、「Too many links」のエラーが発生します。 別のディレクトリからは、同じファイルへのハード・リンクをさらに作成できます。 1つのディレクトリ内のハード・リンク数の制限は65535に増加されましたが、btrfs-progsパッケージで提供されるmkfs.btrfsのバージョンでは、この機能の互換性フラグがまだサポートされていません。 Oracle Linux 7には、より新しいバージョンのbtrfs-progsパッケージが含まれているので、ハード・リンクの数をそれよりも増やすことができます。 (バグID 16285431)

  • btrfs quota enableコマンドを、空ではないファイル・システムで実行すると、既存のファイルがスペース使用に対してカウントされません。 これらのファイルを削除すると、使用レポートにマイナスの数字が表示される場合があり、ファイル・システムにアクセスできなくなります。 回避策として、ファイル・システムの作成直後にquotaを有効にします。 ファイル・システムにすでにデータを書き込んだ場合は、もうquotaを有効にできません。 (バグID 16569350)

  • btrfs quota rescanコマンドは現在実装されていません。 このコマンドは再スキャンを実行せず、メッセージも表示せずに戻ります。 (バグID 16569350)

  • ファイル内のデータを上書きするときに、ファイルの途中から始めると、btrfs qgroup showによって表示されるスペース使用回数では、この上書きされたスペースが2回カウントされます。 (バグID 16609467)

  • ファイル・システムでbtrfsck --init-csum-treeを実行した後、同じファイル・システムで単純なbtrfsckを実行すると、このコマンドによって、以前は表示されなかったBackref不一致エラーが表示されます。 (バグID 16972799)

  • -sオプションを使用して、セクター・サイズをページ・サイズとは異なるmkfs.btrfsに指定した場合、作成されるファイル・システムはマウントできません。 デフォルトでは、セクター・サイズは、ページ・サイズと同じになるように設定されます。 (バグID 17087232)

  • 断片化解消によりデータ・ブロックの共有が解除される場合があります。 btrfsのコピーオンライト設計により、スナップショットは最初に元のサブボリュームの同じデータ・ブロックを共有します。 ただし、スナップショットまたはサブボリュームの断片化が解消されると、この共有は解除され、ディスク領域使用量が増加する可能性があります。

dm-nfsモジュールの廃止

UEK R2では、dm-nfsモジュールにより、マウントされたNFSファイルまたはファイル・システムのループバック・デバイスを作成できました。 たとえば、この機能を使用すると、NFSファイル・システム上にOracle 3 VMクラスタ用の共有ストレージを作成できました。 dm-nfsモジュールは、サーバーへの直接I/Oを提供し、loopドライバを介さないことにより、追加レベルのページ・キャッシングを回避しました。 UEK R3では、dm-nfsモジュールが提供されません。 現在、loopドライバでは、直接I/Oを実行するようにAIOインタフェースを拡張することで、dm-nfsと同じI/O機能を利用できます。 ループバック・デバイスを作成するには、dmsetupではなくlosetupコマンドを使用してください。

DTrace

  • kill -9を使用してdtraceを終了すると、トレース中のプロセスでブレークポイントが未処理のままになり、そのうち強制終了される可能性があります。

  • プローブ定義の引数の宣言は、enumstructunionなどの派生型を使用して宣言できません。

  • 次のコンパイラの警告は、string型のプローブ定義の引数では無視できます(D型ですがC型ではありません)。

    provider_def.h:line#: warning: parameter names (without types) in function declaration

ERSTメッセージ

syslogまたはdmesgに表示される可能性がある次のメッセージは無視しても差し支えありません。

ERST: Failed to get Error Log Address Range.

このメッセージは、システムBIOSでError Record Serialization Table (ERST)がサポートされていないことを示します。 (バグID 17034576)

Ext4

小さいファイルのデータをそのinode内に格納できるようにするインライン・データ機能はまだ利用できません。 mkfs.ext4コマンドおよびtune2fsコマンドの-O inline_dataオプションはサポートされていません。 (バグID 17210654)

ファームウェアの警告メッセージ

一部のSunハードウェアで表示される可能性がある次のファームウェアの警告メッセージは無視してかまいません。

[Firmware Warn]: GHES: Poll interval is 0 for generic hardware error source:
1, disabled.

(バグID 13696512)

ヒュージ・ページ

現在、1GBのヒュージ・ページは次の構成でサポートされていません。

  • HVMゲスト

  • PVゲスト

  • Oracle Database

2MBのヒュージ・ページは、これらの構成で動作することが確認されています。

(バグID 17299364、17299871、17271305)

Hyper-V

次に示す既知の問題は、Hyper-V上で動作しているOracle Linux仮想マシンに影響します。

  • 仮想マシンのスナップショットを取得した後で、「保存」アクションを使用して仮想マシンの状態を保存すると、「元に戻す」アクションでは仮想マシンをスナップショットに戻せない可能性があります。 回避策として、仮想マシンの「スナップショット」領域に表示されている最新のスナップショットをクリックしてから、「適用」を選択します。 (バグID 20110077)

  • レガシー・ネットワーク・モードを使用しているOracle Linux 7仮想マシンでは、複数の仮想CPUが構成されるとネットワーク接続が失われます。 回避策として、Oracle Linux 7仮想マシンには仮想CPUを1つのみ構成するようにします。 (バグID 20110058)

  • Windows Server 2012R2上で動作しているOracle Linux 6仮想マシンでは、システムの停止または再起動時に不完全なメッセージが表示されます。 (バグID 20090500)

  • Windows Server 2008R2では、SCSIコントローラを使用してVHDディスクをホット・アッドで追加すると、仮想マシンの再起動後にディスクが複数回検出されます。 (バグID 19706977)

I/Oスケジューラ

Unbreakable Enterprise Kernelでは、デフォルトのI/Oスケジューラとしてdeadlineスケジューラを使用します。 Red Hat互換カーネルの場合、デフォルトのI/Oスケジューラはcfqスケジューラです。

ioapic障害メッセージ

ioapic: probe of 0000:00:05.4 failed with error -22などのメッセージは無視しても差し支えありません。 ブート時にすでに登録されたI/O APIC PCIデバイスをioapicドライバが再度登録しようとした結果、このようなメッセージが表示されます。 (バグID 17034993)

InfiniBand

  • ibportstate disableコマンドを使用してスイッチ・ポートを無効にすると、次の警告メッセージが表示される場合があります。

    ibwarn: [2696] _do_madrpc: recv failed: Connection timed out
    ibwarn: [2696] mad_rpc: _do_madrpc failed; dport (Lid 38)
    ibportstate: iberror: failed: smp set portinfo failed

    これらの警告は無視してもかまいません。 (バグID 16248314)

  • Internet Protocol over InfiniBand (IPoIB)ドライバは、接続モードまたはデータグラム・モードのインタフェースでの使用をサポートします。データグラム・モードがデフォルト・モードになります。 connectedまたはdatagram/sys/class/net/ibN/modeに反映させてInfiniBandインタフェースのモードを変更する方法はサポートされていません。 また、InfiniBandインタフェースが有効化されている場合は、InfiniBandインタフェースのモードを変更できません。

    InfiniBandインタフェースのIPoIBモードを変更するには、次の手順を実行します。

    1. /etc/sysconfig/network-scripts/ifcfg-ibN構成ファイルを編集します。Nはインタフェースの番号です。

      • 接続モードを有効にするには、このファイルにCONNECTED_MODE=yesを指定します。

      • データグラム・モードを指定するには、このファイルにCONNECTED_MODE=noを指定するか、この設定を指定しないようにします(データグラム・モードはデフォルトで有効になります)。

      注意

      変更を保存する前に、このファイルにCONNECTED_MODEの設定が複数指定されていないことを確認してください。

    2. インタフェースで指定モードを有効にするには、次のコマンドを使用して、インタフェースを無効にして再度有効にします。

      # ifdown ibN
      # ifup ibN

    (バグID 17479833)

  • rds_rdmaモジュールのrds_ib_srqパラメータが有効で、このモジュールが使用されている(たとえば、rds-stressツールを実行している)場合、(rds_rdmaモジュールをリロードする)rdmaサービスを再起動すると、dmesgまたは/var/log/messagesに表示されるエラー・メッセージが生成されます。 (バグID 18243427)

Linuxコンテナ(LXC)

  • コンテナ内のrootユーザーは、/procエントリをいくつか設定することで、ホスト・システムの構成に影響を与えることができます。 (バグID 17190287)

  • initスクリプトを使用するコンテナ内部のパッケージをyumを使用して更新すると、Oracleテンプレートによる変更を元に戻すことができます。

  • 稼働中のコンテナ(lxc-checkpoint)の移行はまだサポートされていません。

  • Oracle Databaseは、Linuxコンテナでの使用がまだサポートされていません。 次の情報は、このような構成を試してみる方を対象としています。

    次の/procパラメータ・ファイルは、個別のコンテナではなく、ホストでのみ設定できます。

    • /proc/sys/fs/aio-max-nr

    • /proc/sys/net/core/rmem_default

    • /proc/sys/net/core/rmem_max

    • /proc/sys/net/core/wmem_default

    • /proc/sys/net/core/wmem_max

    • /proc/sys/net/ipv4/ip_local_port_range

    ホストのパラメータをOracleの推奨値に設定すると、すべてのコンテナのパラメータが設定され、Oracle Databaseをコンテナで実行できるようになります。 詳細は、「カーネル・パラメータとリソース制限の構成」を参照してください。 (バグID 17217854)

  • コンテナの起動時にDevice or resource busy - failed to set memory.use_hierarchy to 1エラー・メッセージが表示される場合は、/etc/cgconfig.confファイルを編集して、次を追加します。

    group . {
    memory {
    memory.use_hierarchy = "1";
    }
    }

    (バグID 19237222)

PCIeカーネル・パラメータのマニュアルがない

kernel-uek-docパッケージのkernel-parameters.txtファイルには、一部のPCIeカーネル・パラメータに関する次のマニュアルが含まれていません。

pcie_bus_tune_off

PCIe MPS (最大ペイロード・サイズ)のチューニングを無効化して、BIOSで構成されたMPSのデフォルト値を使用します。

pcie_bus_safe

すべてのデバイスのMPSを、ルート・コンプレックスの下にあるすべてのデバイスでサポートされている最大値に設定します。

pcie_bus_perf

デバイスのMPSを、その親のバスを基準とする最大許容MPSに設定します。 また、最適なパフォーマンスを実現するには、MRRS (最大読取り要求サイズ)を、サポートされている最大値(デバイスまたはバスがサポート可能なMPS以内)に設定します。

pcie_bus_peer2peer

すべてのデバイスのMPSを128Bに設定し、すべてのデバイスのサポートを保証します。 この構成を使用すると、パフォーマンスが低下する可能性はありますが、どのデバイスのペア間でもピアツーピアDMAが可能です。 また、ホット・アッドにより追加されたデバイスが機能することも保証されます。

Mellanoxドライバ(mlx4_en)

Mellanox mlx4_enドライバはデータ・リンクを自動認識できないので、自動的にロードされません。 (バグID 20103438)

RDMAがmlx4_ibモジュールをロードしない

OFEDスタックおよびRDMAサービスを有効にした場合でRDMAパッケージのバージョンがrdma‑3.10‑3.0.2.el6より低い場合は、RDMAサービスはmlx4_ibモジュールを自動ロードしません。

起動時にmlx4_ibモジュールをロードするようにRDMAサービスを構成するには、次の手順を実行します。

  1. /etc/rdma/rdma.confを編集し、このファイルにMLX4_LOAD=yesエントリを設定します。

  2. 変更を有効にするため、RDMAサービスを再起動するか、システムを再起動します。

CFSのsched_yield()設定

Unbreakable Enterprise Kernelの場合、kernel.sched_compat_yield=1がデフォルトで設定されています。 Red Hat互換カーネルの場合、デフォルトではkernel.sched_compat_yield=0が使用されます。

複数のデバイス使用時のパフォーマンスの低下

UEK R2以降、デバイス・マッパーは、配下のストレージ・デバイスのキャッシュにあるデータを不揮発性ストレージにフラッシュする必要性がアドバタイズされているかをチェックできるようになりました。 fsyncsyncなどのデータ整合性操作では、デバイスのキャッシュをフラッシュする時間を含める必要があります(アドバタイズされた場合)。 これらの操作は、以前のカーネルと比べると低速に感じられますが、正しい動作です。 (バグID 17823743)

起動時のソフト・ロックアップ・エラー

高速ハードウェア上でUEK R3カーネルを(通常はSANストレージをアタッチして)アップグレードまたはインストールしている場合、カーネルが起動に失敗してBUG: soft lockupメッセージがコンソール・ログに表示されることがあります。 これを回避するには、ボー・レートの値をデフォルトの9600から増やすように/boot/grub/grub.confのカーネル起動行を修正して、適切なコンソール設定が含まれるようにします。例:

console=ttyS0,115200n8

115200の値は、19200など、一部のシステムでは不十分な値(たとえば、https://docs.oracle.com/cd/E19045-01/blade.x6220/820-0048-18/sp.html#0_pgfId-1002490)であることがわかっているため推奨されます。 ホストに統合システム管理インフラストラクチャ(SunおよびOracleシステム上のILOMや、HPシステム上のiLOなど)が実装されている場合は、統合コンソールのボー・レートをホスト・システムの設定に合うように構成してください。 そうしないと、統合コンソールの表示が文字化けする可能性があります。 (バグID 17064059、17252160)

透過的なヒュージ・ページ

透過的なヒュージ・ページ(THP)機能は無効です。 オラクル社では、広範なベンチマーキングとテストの後、THPが原因で一部のワークロードではパフォーマンスが5~10%低下することが判明しました。 このパフォーマンス低下は、アプリケーションでTHPを使用していないときでも、より低速のメモリー・アロケータのコード・パスが使用された結果です。 ヒュージ・ページがスワップ不可能であることを考慮した場合、THPがもたらすプラス効果よりもマイナス効果が上回ります。

このUEKリリースをインストールした後は、(たとえば、カーネルのブート・パラメータを指定して)THPを有効にすることはできません。 また、/sys/kernel/mm/transparent_hugepageでのTHP設定も削除されました。 今後の更新には、パフォーマンスの問題を解決する、更新版のTHP実装が含まれる可能性があります。

注意

この変更は、明示的なヒュージ・ページを使用するアプリケーション(Oracle Databaseなど)のサポートに影響しません。

(バグID 16823432)

ユーザー・ネームスペース

権限のないプロセスで、内部でroot権限を持つユーザーのネームスペースを作成できるようにするカーネル機能(CONFIG_USER_NS)は、XFS実装とのクラッシュが原因で、現在実装されていません。 この機能は、主にLinuxコンテナでの使用を目的としています。 その結果、lxc-checkconfigコマンドを使用すると、User namespace: missingが表示されます。 (バグID 16656850)

仮想化

  • PVHVMゲストとしてUEK R3を起動する際、次のカーネル・メッセージは無視しても問題ありません。

    register_vcpu_info failed:
              err=-38

    (バグID 13713774)

  • Oracle VM Server 3.1.1で、UEK R3カーネルを実行しているPVHVMゲストを移行すると、datehwclockで表示される日時が一致しなくなります。 これが発生しないようにするには、Oracle VM Server 3.2.1以上にアップグレードしてください。 移行後の回避策としては、hwclock --hctosysコマンドをゲスト上で実行するか、ゲストをリブートします。 (バグID 16861041)

  • Oracle VM 2のすべてのリリース(2.2.2および2.2.3を含む)など、Xenバージョン3上に構築される仮想化システムでは、ext3およびext4ファイル・システムに対するディスク同期の要求により、ジャーナルが破損し、次のようなカーネル・メッセージがログに記録されます。

    blkfront: barrier: empty write xvda op failed
    blkfront: xvda: barrier or flush: disabled

    さらに、次のようなジャーナルの機能停止も報告される場合があります。

    Aborting journal on device xvda1

    回避策として、UEK R3にアップグレードする前に、ゲストVM内のすべてのext3およびext4ファイル・システムにマウント・オプションbarrier=0を追加します。 たとえば、次のようにマウント・エントリを変更します。

    UUID=4e4287b1-87dc-47a8-b69a-075c7579eaf1  /  ext3  defaults  1 1

    変更後:

    UUID=4e4287b1-87dc-47a8-b69a-075c7579eaf1  /  ext3  defaults,barrier=0  1 1

    この問題は、Oracle VM 3などのXen 4ベースのシステムには当てはまりません。 (バグID 17310816)

  • Xenでは、Kdump構成用のcrashkernel=autoパラメータをサポートしていません。 (バグID 18174580)

  • PVHVMゲストにISOイメージをマウントしたり変更したりすると、Oracle VMコンソールに例外メッセージが表示されます。 ISOイメージ自体は正常にマウントされ、アクセスできます。 (バグID 19972081)

  • xm vcpu-setコマンドを使用して、実行中のOracle Linux 7ゲストの仮想CPU数を増やすこと(ホット・プラグ)はできません。 仮想CPU数を減らすことは可能です。 (バグID 18865156)

モジュール検証用のX.509証明書

ブート時にカーネル内X.509モジュール検証証明書の読込みで問題が発生した場合、システムで次のようなメッセージが報告されます。

Loading module verification certificates 
X.509: Cert 0c21da3d73dcdbaffc799e3d26f3c846a3afdc43 is not yet valid 
MODSIGN: Problem loading in-kernel X.509 certificate (-129)

このエラーは、たとえばhwclockによって示されるように、ハードウェア・クロックがシステム時間より遅れていることが原因で発生します。

# hwclock
Tue 20 Aug 2013 01:41:40 PM EDT -0.767004 seconds

解決策としては、次のコマンドを実行して、システム時間からハードウェア・クロックを設定します。

# hwclock --systohc

ハードウェア・クロックの修正後は、たとえば次のように、ブート時にエラーが表示されなくなります。

Loading module verification certificates 
MODSIGN: Loaded cert 'Slarti: Josteldalsbreen signing key: 
0c21da3d73dcdbaffc799e3d26f3c846a3afdc43'

(バグID 17346862)

XFS

  • 状況によっては、バックアップ対象のファイル・システムがマウント・ポイントとして指定されている場合、次のようにxfsdumpが失敗することがあります。

    xfsdump: ERROR: /mnt/myxfs/ does not identify a file system

    回避するには、ファイル・システムをデバイス名(/dev/sdbなど)で指定します。 (バグID 18483275)

  • 仮想マシンでは、fallocateおよびpunch_holeによって並列に断片化されているファイルに対して集中型の直接I/Oを実行すると、状況によってはデータが破損してInvalid or incomplete multibyte or wide characterエラーが表示されることがあります。 (バグID 18711409)

  • xfs_growfsコマンドの使用時に、次のメッセージが表示される場合があります。

     xfs_growfs: cannot find mount point for path `mount_point': Success 

    このメッセージは、XFSのプロジェクト割当ての初期化ファイル(/etc/projects)にマウント済プロジェクトの不正なパスがリストされていると表示されます。 プロジェクト割当てを使用している場合は、/etc/projectsファイルを削除してください。 (バグID 18886520)

  • Oracle Linux 6の場合、XFSファイル・システムは、そのすべてのinodeが使用されると、破損する可能性があります。 (バグID 19217280)

  • Oracle Linux 7の場合、XFSファイル・システムのすべてのノードが使用されると、カーネル・パニックが発生する可能性があります。 (バグID 19695297)

  • Oracle Linux 7の場合、デバイス・セクターのサイズが512バイトを超えると、xfs_copyではファイル・システムをコピーできません。 (バグID 19267663)

  • 短いレポート間隔(-t)を使用してファイル・システムを修復しようとすると、xsf_repairによってセグメンテーション・エラーが発生します。