第3章 既知の問題
この章では、この更新の既知の問題について説明します。
3.1 btrfs、ext4およびxfs: 凍結および凍結解除操作が複数のスレッドで実行された場合にカーネル・パニックが発生する
サポートされているファイルシステム上の複数のスレッドにわたって実行される操作をフリーズおよびアン・フリーズすると、システムがハングアップし、カーネルがパニックに陥ります。 この問題は、フリーズ操作が実際にフリーズされる前にトリガーされたときに発生する競合状態の結果です。 生成されたロック解除操作は、存在しないロックに対して書き込み操作を試み、カーネルがパニックに陥ります。 (バグID 25321899)
3.2 btrfs
以下は、btrfs
の既知の問題です:
-
「送信操作により、大きな重複除外ファイルに対してソフト・ロック・アップが発生します。」
btrfs send
を大規模な重複除外ファイルで使用すると、ソフト・ロック・アップまたはメモリー不足の問題が発生します。 この問題は、btrfs send
操作が、1エクステントを指しているファイル・エクステントを含む大きな重複除外ファイルを処理できないために発生します。これらのタイプのファイル構造はbtrfs send
操作に大きな圧力をかけます。この問題が発生しないようにするには、4 GB未満のメモリーを搭載したシステムでは
btrfs send
を使用しないでください。 (Bug ID 25306023) -
割り当ての再スキャンをトリガーしたり、マウントされたファイルシステムの割り当て制限を無効にしたりする「クォータの再スキャン中またはアンインストール中にアンマウントすると、カーネルがうまく動作しません。」操作によって、ファイルシステムをアンマウントしようとしたときにカーネルoopsメッセージが表示されます。 これにより、システムがハングする場合があります。 (バグID 22377928)
-
「qgroupアカウンティングを使用して共有エクステントを削除すると、カーネルがうんざりします。」割当て制限グループ(qgroup)アカウンティングが使用されている共有エクステントを削除すると、カーネルoopsメッセージが表示される可能性があります。 これは、遅れ参照を追加するときにレコードが欠落しているため、バック・リファレンス・ウォーク中に不正確な結果が得られるという問題に関連しています。 (Bug ID 21554517)
-
「ファイルシステムとRAIDのバランスをとるときに警告は表示されません。」 btrfs filesystem balanceコマンドでは、特定の状況下でRAIDレベルを変更できることは警告されず、操作を取り消すこともできません。 (バグID 16472824)
-
「すべてのbtrfs操作を実行するためのディスク容量要件。」
btrfs
のコピー・オン・ライト特性は、ファイル・システム上のすべての操作に最初にディスク領域が必要であることを意味します。 スペースが残っていないディスクでは操作を実行できず、ファイルを削除することもできない可能性があります。 メタデータを格納するスペースがない場合、ENOSPC
エラーが返されます。 この状況では、操作を再試行する前にsyncを実行してください。これにより、メタデータ領域を予約している可能性のあるバックグラウンド・ライトバックがクリアされる可能性があります。 別の回避策は、btrfs device addコマンドを使用して、ディスクまたはファイル・バックエンド・ループ・デバイスを追加することです。 データおよびメタデータの格納に使用されるメカニズムにより、dfなどのツールによって返される情報が混乱する可能性があります。 場合によっては、データに使用可能なスペースがある場合でも、この目的のために割り当てられたすべてのディスク・スペースがメタデータによって満たされることがあります。 この場合は、ファイル・システムが不均衡になっているため、btrfs fi balance操作を実行することで問題を解決できます。 https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#I_get_.22No_space_left_on_device.22_errors.2C_but_df_says_I.27ve_got_lots_of_spaceを参照してください。 -
「qgroup showの上書きされたスペースの二重カウント。」ファイルの中央のどこかからファイル内のデータを上書きすると、上書きされた領域は、btrfs qgroup showに表示される領域使用量の数値で2回カウントされます。 btrfs quota rescanを使用しても、この問題の解決の役には立ちません。 (バグID 16609467)
-
「セクタ・サイズはページ・サイズと一致する必要があります。」 -sオプションを使用して、ページ・サイズとは異なるセクター・サイズをmkfs.btrfsに指定する場合、作成されたファイル・システムはマウントできません。 デフォルトでは、セクター・サイズは、ページ・サイズと同じになるように設定されます。 (バグID 17087232)
-
「
btrfs-progs
およびbtrfs-progs-devel
パッケージのロケーション。」 UEK R4で使用するbtrfs-progs
およびbtrfs-progs-devel
パッケージは、Oracle Linux Yumサーバー上のol6_x86_64_UEKR4
およびol7_x86_64_UEKR4
ULNチャネルとol6_UEKR4
およびol7_UEKR4
チャネルで使用可能になります。 UEK R3では、これらのパッケージは、ol6_x86_64_latest
およびol7_x86_64_latest
ULNチャネル、Oracle Linux Yum Server上のol6_latest
およびol7_latest
チャネルで入手可能でした。
3.3 ext4
以下は、ext4
の既知の問題です:
-
「孤立した孤立したinodeリストを処理すると、システムがハングします。」孤立iノード・リストが破損している場合、iノードが繰り返し処理され、システムがハングアップする可能性があります。 たとえば、孤立したiノード・リストにブート・ローダーのinode(
ext4_iget()
)への参照が含まれている場合、不正なiノードが返された場合、システムがハングアップする処理ループが発生する可能性があります。 (バグID 24433290) -
「負の
i_size
を持つファイルに追加した後、システムがアンマウントするとハングします。」ファイル・システムで負のi_size
を使用してiノードをロードすることは無効ですが、このようなファイルを作成して追加することもできます。 しかし、そのようにすると、ライトバックの基礎となるルーチンに整数オーバーフローが発生し、カーネルがロック・アップします。 (バグID 25565527)
3.4 xfs
以下は、xfs
の既知の問題です:
-
「ファイル・システムの破損は、直接I/O書込みの後に発生します。」直接I/O書込みにeof後ブロックが使用される競合状態により、ファイル・システムが破損します。 ダイレクトI/O writeを拡張しているファイル中にファイルの解放が発生した場合、post-eofブロックを間違った事前割り当てに間違えて、inodeから誤って切り捨てる可能性があります。 この問題は、実際の作業負荷では再現されない可能性があります。 (バグID 26128822)
-
「v5スーパー・ブロックのログ・リカバリに問題があるため、無効なファイルシステム・エラーが無効です。」 v5スーパー・ブロックでのログ・リカバリの問題により、メタデータLSNが書き出すバッファに対して更新されない場合、次のような破損エラーが発生する可能性があります:
[1044224.901444] XFS (sdc1): Metadata corruption detected at xfs_dir3_block_write_verify+0xfd/0x110 [xfs], block 0x1004e90 [1044224.901446] XFS (sdc1): Unmount and run xfs_repair ... [1044224.901460] XFS (sdc1): xfs_do_force_shutdown(0x8) called from line 1249 of file fs/xfs/xfs_buf.c. Return address = 0xffffffffa07a8910 [1044224.901462] XFS (sdc1): Corruption of in-memory data detected. Shutting down filesystem [1044224.901463] XFS (sdc1): Please umount the filesystem and rectify the problem(s) [1044224.904207] XFS (sdc1): log mount/recovery failed: error -117 [1044224.904456] XFS (sdc1): log mount failed"
この問題は、後で更新された更新によって有効ではなくなったバッファ更新をログが再生しようとするために発生します。 実際にファイルシステムが正常な場合、結果は破損エラーになります。 (バグID 25380003)
-
「負の
i_size
を持つファイルをバッファリングした後、システムはアンマウントしてハングします。」負のi_size
を使用してiノードをロードすることはファイルシステムでは無効ですが、このようなファイルを作成することもできます。バッファが追加された場合は、ライトバックの基礎となるルーチンで整数オーバーフローが発生するとカーネルがロックされます。 直接追加ではこの動作は発生しません。 (バグID 25565490) -
「投機的な事前割り振りを持つ2つのエクステント・ファイルに対して、
xfs_fsr
の実行中にシステムがハングします。」投機的事前割当てによって生成されるエクステントのxfs_fsr
プロセスでは、使用されるdi_nextents
コールでこれらのエクステントが考慮されないため、すべてのエクステントがインラインで適合するかどうかを判断するコードが正しく計算されません。 その結果、メモリー内のinodeが破損し、最終的に不正確に計算された範囲を使用してメモリー構造を移動しようとします。 このことによってカーネル・パニックが発生します。 (バグID 25333211) -
Oracle Linux 6で読取り専用権限でファイル・システムを再マウントすると、XFSで「Oracle Linux 6の読み取り専用再マウント後にXFSクォータが無効になります。」割当てが無効になります。 (バグID 22908906)
-
「オーバーレイ・ファイル・システムは、
d_type
がサポートされていないXFSにはマウントできません。」 Overlayファイルシステムは、d_type
サポートと呼ばれる機能に依存します。 この機能は、基本ファイルシステム内のディレクトリ・エントリ内のファイルに関するメタデータを提供するデータ構造内のフィールドです。 オーバーレイ・ファイル・システムは、このフィールドを使用して、ファイルの所有権の変更やホワイト・アウトなどの多くのファイル操作を追跡します。d_type
オプションを使用して、ファイルシステムの作成時にd_type
サポートをXFSで有効にすることができます。d_type
サポートが有効になっていないと、オーバーレイ・ファイル・システムが破損し、予期しない動作をする可能性があります。 このため、UEK R4のこの更新リリースでは、d_type
サポートが有効になっていないXFSベースにオーバーレイ・ファイル・システムをマウントすることができません。Oracle Linuxの
root
パーティションは、自動的に-n ftype=0
でフォーマットされます。ここでは、XFSがファイルシステムとして選択されています。 したがって、下位互換性の理由から、オーバーレイ・ファイル・システムが既に存在し、これらが代替記憶域にホストされていない場合は、d_type
サポートを有効にしてフォーマットされたファイルシステムに移行する必要があります。XFSファイルシステムが正しくフォーマットされていることを確認するには:
#
xfs_info
/dev/sdb1
|grep ftype/dev/sdb1
を正しい記憶域デバイスのパスに置き換えます。 このコマンドで返される情報にftype=0
が含まれている場合は、このディレクトリに保存されているオーバーレイ・データを、正しくフォーマットされた記憶域に移行する必要があります。オーバーレイ・ファイル・システムをサポートするXFSファイルシステムで新しいブロック・デバイスを正しくフォーマットするには、次のようにします:
#
mkfs -t xfs -n ftype=1
/dev/sdb1
/dev/sdb1
を正しい記憶域デバイスのパスに置き換えます。 ファイルシステムを作成するときは、-n ftype=1
オプションを使用することが不可欠です。追加のブロック記憶域を使用できない場合は、マウント可能なXFSファイルシステム・イメージとループバックを作成することができます。 たとえば、
root
ディレクトリに5 GBのイメージ・ファイルを作成するには、次のコマンドを使用します:#
mkfs.xfs -d file=1,name=
/OverlayStorage
,size=5g -n ftype=1このファイルを一時的にマウントするには、次のように入力します:
#
mount -o loop -t xfs
/OverlayStorage
/mnt/etc/fstab
にエントリを追加して、この記憶域の永続マウントを行うと、次のようになります:/OverlayStorage
/mnt xfs loop 0 0この構成は、アップグレードの問題を解決するための一時的な解決策として役立ちます。 ただし、ループバック・マウントされたファイルシステム・イメージを永続記憶域の形式として使用することは、本番環境では推奨されません。 (バグID 26165630)
3.5 DIF/DIXはextファイルシステムではサポートされていません
SCSI規格に追加されたDIF (Data Integrity Field)およびDIX (Data Integrity Extension)機能は、メモリー管理システムによるバッファ内のデータの変更試行を正しく処理できるファイルシステムに依存しています書き込みのためにキューに入れられます。
ext2、ext3、およびext4ファイルシステム・ドライバは、チェックサムの失敗や論理ブロック・ガードのチェックに失敗しましたというエラーを引き起こすI/Oの間にページが変更されるのを防ぎません。 XFSなどの他のファイルシステムもサポートされています。 (バグID 24361968)
3.6 起動時にコンソールがハングしているように見える
ASPEEDグラフィックス・コントローラを搭載したハードウェアでOracle Linux 6を起動すると、udev
を起動した後に起動プロセス中にコンソールがハングアップしているように見えることがあります。 ただし、システムは正常に起動しており、アクセス可能です。 回避策は、nomodeset
を/etc/grub.conf
のカーネル・ブート・パラメータとして追加します。 (バグID 22389972)
3.7 Docker
以下は、Dockerの既知の問題です:
-
yum installをoverlayfsファイル・システム上のコンテナ内で実行すると、次のエラーが発生して失敗します:
Rpmdb checksum is invalid: dCDPT(pkg checksums):
package_name
このエラーは、Dockerfileビルドを破壊する可能性がありますが、カーネルからの予期された動作であり、upstreamの既知の問題です(https://github.com/docker/docker/issues/10180を参照)
回避策は、パッケージのインストールの前に、touch /var/lib/rpm/*を実行します。
この問題は、Docker HubまたはOracle Container Registryで入手できるOracle Linuxイメージでは修正されていますが、サード・パーティのイメージに基づくコンテナを実行する場合にはまだ発生する可能性があります。 (バグID 21804564)
-
「Dockerは、XFS形式の記憶域で
overlay2
記憶域ドライバを使用する場所で失敗する可能性があります。」ftype
が1に設定されていない場合、XFSでのオーバーレイ・マウントを防ぐためにカーネル・パッチが適用されています。 この修正により、d_type
サポートが有効になっていないと、XFSがオーバーレイ・ファイル・システムのホワイト・アウト機能を正しくサポートしないという問題が解決されます。 Dockerエンジンがすでにoverlay2
記憶域ドライバでXFSフォーマットの記憶域を使用している場合、-n ftype=1
オプションを有効にして、基盤となるXFSファイルシステムが作成されていないと、カーネルをアップグレードするとDockerが失敗する可能性があります。 Oracle Linux 7のルート・パーティションは自動的に-n ftype=0
でフォーマットされ、XFSがファイルシステムとして選択されます。 したがって、この環境でoverlay2
記憶域ドライバを使用する場合は、この目的のために別のデバイスをフォーマットする必要があります。 (Bug ID 25995797) -
「Dockerは
overlay2
記憶域ドライバを使用し、SELinuxが有効な場所では失敗する可能性があります。」 Docker Engineがoverlay2
ストレージ・ドライバを使用するように構成されており、SELinuxが有効化されて強制モードに設定されている場合、Dockerコンテナは正しく機能せず、権限エラーが発生します。overlay2
記憶域ドライバでDockerを使用する場合は、SELinuxをPermissiveモードに設定する必要があります。 (Bug ID 25684456)
3.8 DTrace
以下はDTraceの既知の問題です:
-
USDTプローブ定義での引数の宣言は、
enum
、struct
、union
などの派生型を使用して宣言できません。 -
次のコンパイラの警告は、
string
型のUSDTプローブ定義引数(C型ではなくD型)の場合、無視できます。provider_def
.h:line#
: warning: parameter names (without types) in function declaration -
-
最初のスレッド以外のスレッドで
dlopen()
を実行するustack()
、usym()
、uaddr()
、umod()
のマルチスレッド・プロセスでは、dlopen()
によって導入されたシンボルの正確なシンボル解決が得られない可能性があります。 (バグID 20045149)
3.9 エラー、他のホストがすでにアドレス xxx.xxx.xxx.xxx
を使用しています
特定のインスタンスでは、次のエラー・メッセージが表示されることがあります:
Error, some other host already uses address xxx.xxx.xxx.xxx
このエラー・メッセージがトリガーされる可能性のある2つのインスタンスは、次のとおりです:
-
アクティブ・ボンディングが使用可能になり、
ifup
ib-interface
コマンドを実行すると、。 -
service rdma start
コマンドを実行するとき。
どちらの場合も、InfiniBandインタフェースが正常に起動されるため、このメッセージは無視できます。 (Bug IDs 21052903, 26639723)
3.10 ifup-ib: line 357: /sys/class/net/ib0/acl_enabled: 権限が拒否されましたエラー
ifup
ib-interface
またはservice network restart
を実行すると、次のエラーが報告されます:
/etc/sysconfig/network-scripts/ifup-ib: line 357: /sys/class/net/ib0/acl_enabled: Permission denied
このエラーは、InfiniBandインタフェースが正常に起動した場合でも報告されます。
この問題の回避策は、sysfs
ファイルを操作する古い構成メソッドを使用しないで、提供されている新しいibacl
ツールに変更することです。 (バグID 26197105)
3.11 Oracle VM Server上でのMellanox® HCA使用時のdom0メモリー要件の増加
Oracle VM Servers UEKR4u2を実行し、dom0
を上向きにすると、Mellanox®ドライバを使用するために少なくとも400MB以上のメモリーが必要です。 このメモリー要件は、SRQカウントのデフォルト・サイズがカーネルのそれ以降のバージョンで64Kから256Kに増加し、scale_profile
オプションがデフォルトでmlx_core
モジュールで有効になったためです。
dom0
にメモリー不足エラーが発生した場合、最大dom0
メモリー・サイズを増やす必要があります。 代わりの回避策には、mlx4_core
ドライバのモジュール・パラメータを手動で設定する必要があります。 これらのパラメータを設定するには、/etc/modprobe.d/mlx4_core.conf
を編集し、scale_profile
を0
に設定します。 または、log_num_srq
を16
に設定します。 この問題に対する優先解決策は、Oracle VM Server上のdom0
に割り当てられたメモリーを増やすことです。 (バグID 23581534)
3.12 LXC
LXCの既知の問題は次のとおりです:
-
lxc-net
サービスがOracle Linux 6でのインストール直後に起動しないことがあります。lxc-net
サービスは、Oracle Linux 6でのインストール直後に起動するというアクションがRPMインストール後スクリプトの一部として指定されている場合でも、起動しないことがあります。 これにより、lxcbr0
インタフェースが表示されなくなります。 インストール後、このインタフェースが動作しない場合は、service lxc-net startを実行して手動で起動することができます。 (バグID 23177405) -
LXCの読取り専用パラメータ
ip_local_port_range
。lxc-1.1
以降およびUEK R4では、ip_local_port_range
は、読取り専用ではなく、Oracle Linuxコンテナの/proc/sys/net/ipv4
下の読取り/書込み可能パラメータです。 (バグID 21880467)
3.13 ixgbe
/ixgbevf
仮想関数作成の最大数の間にMSI-X割り込み割り付けが失敗
Intel ixgbe
/ixgbevf
およびQlogic qla2xxx
ドライバは、MSI-Xリソースを競合します。 その結果、両方のドライバがシステムで使用され、ixgbe
/ixgbevf
ドライバに許可される仮想関数(VF)デバイスの最大数を作成しようとすると、割り込み割り当ての失敗が発生します。最後のVFデバイス。
この問題が発生することなく、ixgbe
/ixgbevf
に許可されているVFデバイスの最大数を作成して使用することができますが、これを含めることはできません。 (バグID 25952728)
3.14 PCI再スキャン後に/dev
ディレクトリにNVMeデバイスが見つかりません
NVM Express(NVMe)アダプタ・カード・デバイスのPCIバスを取り外し、PCIバスの再スキャンを実行すると、/dev
ディレクトリの下にNVMeアダプタ・カード・デバイスが見つかりません。
この問題の回避策は、PCIバスの再スキャンを実行する前に、NVMeアダプタ・カード・デバイスが接続されているPCIスロットも削除することです。 (バグID 26610285)
3.15 Oracle Linux 6でイニシエータからOFED iSERターゲット・ログインが失敗する
oracle-ofed-release
パッケージがインストールされ、iSER (RDMA用のiSCSI拡張機能)ターゲットが構成されているOracle Linux 6システムでは、イニシエータとしてのiSERターゲットへのログインが失敗します。 Oracle Linux 6イニシエータ・マシンでは、次の動作が一般的です。
# iscsiadm -m node -T iqn.iser-target.t1 -p 10.196.100.134 --login
Logging in to [iface: default, target: iqn.iser-target.t1, portal:
10.196.100.134,3260] (multiple)
iscsiadm: Could not login to [iface: default, target: iqn.iser-target.t1,
portal: 10.196.100.134,3260].
iscsiadm: initiator reported error (8 - connection timed out)
iscsiadm: Could not log into all portals
これは予期された動作であり、無効なコンテキストからの書込みに対して保護するためのCVE-2016-4564の更新情報修正によるものです。
(バグID 23615903)
3.16 オープン・ファイル記述(OFD)のロックがNFSv4マウントでサポートされていない
NFSは、OFDロックを処理するように設計されていません。 (バグID 22948696)。
3.17 SDPのパフォーマンスの低下
InfiniBandネットワーク上のTCPに代わるRDMAを提供するために設計されたSockets Direct Protocol(SDP)は、UEK R4u2以降のような最新のカーネルでパフォーマンスが低下することが知られています。 このプロトコルに関して実施している開発はありません。
このプロトコルのライブラリはまだこのカーネルに使用可能ですが、サポートは限定されています。 より安定した代替案として、InfiniBand上でIPに加えてTCPを使用することを検討する必要があります。 (バグID 22354885)
3.18 共有受信キュー(SRQ)はRDSの実験的な機能であり、既定では無効になっています
rds_rdma
モジュール内のリソース使用量を最適化するSRQ関数は、試験的なものであり、デフォルトでは無効になっています。 rds_ib_srq_enabled
フラグを設定することでこの機能を有効にすると、警告メッセージが表示されます。 (バグID 23523586)
3.19 rds_rdma
モジュールのアンロードまたは削除がサポートされていない
rds_rdma
モジュールをロードした後は、rmmodまたはmodprobe -rを使用してそのモジュールを削除できません。 rds_rdma
モジュールのアンロードはサポートされておらず、カーネル・パニックを引き起こす可能性があります。 このモジュールに対してmodule_unload_allowed
フラグを設定しないでください。 (バグID 23580850)