第2章 既知の問題
この章では、Unbreakable Enterprise Kernelリリース3の既知の問題について説明します。
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)
ACFS
Oracle ASMクラスタ・ファイル・システム(ACFS)は現在、UEK R3での使用はサポートされていません。 (バグID 16318126)
ACPI
一部のシステムでは、
dmesg
で次のようなACPI関連のエラー・メッセージが表示される場合があります。ACPI Error: [CDW1] Namespace lookup failure, AE_NOT_FOUND ACPI Error: Method parse/execution failed [_SB_._OSC||\||] ACPI Error: Field [CDW3] at 96 exceeds Buffer [NULL] size 64 (bits)]]>
これらのメッセージは、致命的ではありませんが、BIOSでのバグが原因です。 システム・ベンダーにBIOS更新についてお問合せください。 (バグID 13100702)
次のメッセージは、
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)
ASM
oracleasm
init
スクリプト、/etc/init.d/oracleasm
をパラメータscandisks
を指定して呼び出すと、次のようなデバイス欠落についてのエラー・メッセージが表示される可能性があります。
oracleasm-read-label: Unable to open device "device
": No such file or directory
ただし、デバイスは実際には存在します。 このエラー・メッセージはタイミングの問題でトリガーされるもので、無視してもかまいません。 oracleasm
サービスの開始および停止には、init
スクリプトのみを使用してください。 その他のオプション(スキャンディスク、listdisk
およびcreatedisk
など)はすべて非推奨です。 これらやその他の管理タスクについては、かわりに/usr/sbin/oracleasm
を使用してください。 (バグID 13639337)
bnx2xドライバ
ブリッジでbnx2x
ドライバを使用しているときは、/etc/modprobe.conf
にoptions bnx2x disable_tpa=1
文を含めることで、透過的パケット・アグリゲーション(TPA)を無効にしてください。 (バグID 14626070)
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を参照してください。
Btrfsには、1つのディレクトリから1つのファイルへのハード・リンクの数が237以下であるという制限があります。 正確な制限はファイル名の文字数によって異なります。 ファイル名が最大8文字までのファイルに対する制限は237ですが、ファイル名が長くなると制限数はさらに小さくなります。 この数を超えるリンクを作成しようとすると、「
Too many links
」のエラーが発生します。 別のディレクトリからは、同じファイルへのハード・リンクをさらに作成できます。 1つのディレクトリ内のハード・リンク数の制限は65535に増加されましたが、btrfs-progs
パッケージで提供されるmkfs.btrfsのバージョンでは、この機能の互換性フラグがまだサポートされていません。 (バグID 16278563)圧縮後には常に割当て制限が強制適用されるため、btrfs qgroup limitコマンドの-cオプションは冗長です。 (バグID 16557528)
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)
Btrfsでは、btrfsファイル・システムを作成する対象デバイスをトラッキングします。 その後、これらのデバイスをbtrfs以外のファイル・システムで再利用すると、デバイス・スキャンの実行時またはRAID-1ファイル・システムの作成時に次のようなエラー・メッセージが表示される場合があります。
ERROR: device scan failed '/dev/cciss/c0d0p1' - Invalid argument
これらのエラーは無視しても問題ありません。 (バグID 17087097)
-sオプションを使用して、セクター・サイズをページ・サイズとは異なるmkfs.btrfsに指定した場合、作成されるファイル・システムはマウントできません。 デフォルトでは、セクター・サイズは、ページ・サイズと同じになるように設定されます。 (バグID 17087232)
PVMゲストまたはPVHVMゲストでのCPUマイクロコード更新の失敗
UEK R3でOracle Linux6を実行すると、dmesg
または/var/log/messages
で次のようなエラー・メッセージが表示される場合があります。
microcode: CPU0 update to revision 0x6b failed.
この警告は無視してかまいません。 仮想CPUのマイクロコードをゲストに提示されるとおりに更新する必要はありません。 (バグID 12576264、13782843)
DHCPリースがブート時に取得されない
ブート時のDHCPリース・ネゴシエーションが5秒よりも長くかかる場合は、次のメッセージが表示されます。
ethX
: failed. No link present. Check cable?
ethtool ethX
コマンドでインタフェースが存在することが確認されたら、/etc/sysconfig/network-scripts/ifcfg-eth
を編集して、X
LINKDELAY=
(N
N
は5秒より長い値(30秒など))を設定します。 別の方法として、NetworkManagerを使用してインタフェースを構成します。 (バグID 16620177)
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を終了すると、トレース中のプロセスでブレークポイントが未処理のままになり、そのうち強制終了される可能性があります。
プローブ定義の引数の宣言は、
enum
、struct
、union
などの派生型を使用して宣言できません。次のコンパイラの警告は、
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)
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)
IPoIBモードの切替え
Internet Protocol over InfiniBand (IPoIB)ドライバは、インタフェースでの接続モードまたはデータグラム・モードのいずれかの使用をサポートしますが、データグラム・モードがデフォルトのモードです。 connected
またはdatagram
のいずれかを/sys/class/net/ib
にエコーすることによるInfiniBandインタフェースのモードの変更はサポートされていません。 また、InfiniBandインタフェースが有効になっているときにInfiniBandインタフェースのモードを変更することもできません。
N
/mode
InfiniBandインタフェースのIPoIBモードを変更するには:
/etc/sysconfig/network-scripts/ifcfg-ib
構成ファイルを変更します(N
N
はインタフェースの数です)。接続モードを構成するには、ファイルで
CONNECTED_MODE=yes
を指定します。データグラム・モードを構成するには、ファイルで
CONNECTED_MODE=no
を指定するか、またはこの設定をまったく指定しません(データグラム・モードはデフォルトで有効になります)。
注意変更を保存する前に、ファイルの
CONNECTED_MODE
に2つ以上の設定を指定していないことを確認してください。インタフェースの指定したモードを有効にするには、次のコマンドを使用して、インタフェースを停止し、元に戻します。
#
ifdown ib
#N
ifup ib
N
(バグID 17479833)
libfprint
dmesg
または/var/log/messages
で次のメッセージが表示される場合があります。
WARNING! power/level is deprecated; use power/control instead.
UEK R3のUSBサブシステムでは、power/control
属性を優先し、power/level sysfs
属性は非推奨です。 libfprint
フィンガープリント・ライブラリでは、最初に古い属性の使用を試みるudev
ルールによりこの警告がトリガーされます。 この警告は無視しても問題ありません。 適切なパワー・レベルの設定はそのまま継承されます。 (バグID 13523418)
大規模メモリー・システムのブート失敗
大規模メモリー・システムのブートに失敗した場合は、UEK R3への代替カーネルを使用してこれをブートし、kdumpサービスを無効にしてから、UEK R3カーネルをブートしてください。
# chkconfig kdump off
(バグID 16765434)
Linuxコンテナ(LXC)
コンテナを適切に操作するために、ホスト・システム上のSELinuxを完全に無効にすることが必要になる場合があります。 たとえば、次の条件下では、SELinuxがコンテナ操作の妨げになる場合があります。
コンテナ内部からhaltコマンドまたはshutdownコマンドを実行すると、コンテナがハングするか、
permission denied
エラーが発生します。 (代替の回避策として、コンテナ内部からinit 0コマンドを使用してコンテナを停止します。)コンテナ内部でパスワードを設定すると、
root
として実行した場合でも、permission denied
エラーが発生します。コンテナへのsshログインを可能にする必要があります。
ホスト上でSELinuxを無効にするには:
SELinuxの構成ファイル
/etc/selinux/config
を編集し、SELINUX
ディレクティブの値をdisabled
に設定します。ホスト・システムを停止して再起動します。
コンテナ内の
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)
NUMA以外のシステム上のNUMA警告メッセージ
dmesg
および/var/log messages
に次の警告メッセージがNUMA以外のシステムで表示された場合は無視してかまいません。
kernel: NUMA: Warning: node ids are out of bound, from=-1 to=-1 distance=10 hcid[4293]: Register path:/org/bluez fallback:1 kernel: No NUMA configuration found
(バグID 13711370)
pcspkrドライバのエラー・メッセージ
次のエラー・メッセージは無視してかまいません。
Error: Driver 'pcspkr' is already registered, aborting...
このメッセージは、snd-pcsp
とpcspkr
の間の別名の競合により表示されます。 このメッセージが表示されないようにするには、次の行を/etc/modprobe.d/blacklist.conf
に追加します。
blacklist snd-pcsp
(バグID 10355937)
CFSのsched_yield()設定
Unbreakable Enterprise Kernelの場合、kernel.sched_compat_yield=1
がデフォルトで設定されています。 Red Hat互換カーネルの場合、デフォルトではkernel.sched_compat_yield=0
が使用されます。
起動時のソフト・ロックアップ・エラー
高速ハードウェア上で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ゲストを移行すると、dateとhwclockで表示される日時が一致しなくなります。 移行後の回避策としては、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)
モジュール検証用の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)