機械翻訳について

第1章 新機能および変更点

Unbreakable Enterprise Kernelリリース3 (UEK R3)は、x86-64アーキテクチャ上のOracle Linux 6および7向けにテストを重ね、最適化されたオペレーティング・システム・カーネルのオラクル社が提供する3番目のメジャー・リリースです。 これはメインラインのLinuxカーネル・バージョン3.8.13に基づいています。

3.8.13-98リリースは、UEK R3向けの6番目の四半期更新リリースです。 このリリースには、セキュリティとバグの修正、ドライバの更新が含まれます。

オラクル社は、積極的に、アップストリーム・チェックインを監視し、クリティカルなバグおよびセキュリティの修正をUEK R3に適用しています。

UEK R3では、メインラインのLinuxカーネル・バージョンと同じバージョニング・モデルを使用します。 一部のアプリケーションでは、3.xバージョニング・スキームが認識されない可能性があります。 アプリケーションに2.6のコンテキストが必要な場合は、uname26ラッパー・コマンドを使用すると、アプリケーションを開始できます。 ただし、通常のLinuxアプリケーションでは、通常はLinuxカーネルのバージョン番号は認識されず、それによる影響もありません。

1.1 注目すべき変更点

  • UEFI Secure Bootが有効化されたシステムでのOracle Linuxのインストールおよび使用をサポートしています。 Secure Bootモードでのシステムは、オラクル社により署名されたブート・ローダーおよびカーネルのみをロードします。

  • Virtual eXtensible Local Area Network (VXLAN)およびGeneric Routing Encapsulation (GRE)のサポートが、UEK Open Vswitchカーネル・モジュール(kmod-openvswitch-uek)に追加されました。

  • Intel Sandy Bridgeメモリー・コントローラのサポートが有効化されています。

  • Cisco SCSI NICドライバ(snic)バージョン0.0.1.18が追加されています。

  • SGI UltraViolet 3プラットフォームのハードウェア・サポートが有効化されています。

  • カーネル・モジュールの署名に、SHA-512ハッシュ・アルゴリスムを使用します(以前は、SHA-256を使用)。

  • 8つを超えるPTPハードウェア・クロック(PHC)のサポートが有効化されています。

  • btrfs、ext4、xfsおよびOCFS2の各ファイル・システムのバグが修正されました。

  • Microsoft AzureまたはHyper-V上で動作するOracle Linuxゲストのサポートのバグが修正されました。

このカーネルの更新には、QLogicファームウェアに対する依存性の更新も含まれます。 新しいカーネルをインストールすると、依存性は解決します。

1.2 LXCの改良点

UEK R3 QU6で実行するバージョン1.0.7以降のLinux Containers (lxc)パッケージでは、--privilegedオプションをlxc-oracleテンプレート・スクリプトに指定すると、Oracle Linuxコンテナの/proc階層にある次のカーネル・パラメータの値を調整できます。

  • /proc/sys/kernel/msgmax

  • /proc/sys/kernel/msgmnb

  • /proc/sys/kernel/sem

  • /proc/sys/kernel/shmall

  • /proc/sys/kernel/shmmax

  • /proc/sys/kernelshmmni

  • /proc/sys/net/ipv4/conf/default/accept_source_route

  • /proc/sys/net/ipv4/conf/default/rp_filter

  • /proc/sys/net/ipv4/ip_forward

これらの各パラメータには、ホスト・システム用に構成した値やホスト・システム上で実行中の他のコンテナとは異なる値を設定できます。 デフォルト値は、コンテナ作成時にテンプレートから導出されます。 Oracleデータベースまたはその他のアプリケーションでデフォルト値以外の値がコンテナに必要になった場合にのみ、設定を変更することをお薦めします。

--privilegedオプションは、CAP_SYS_NICE機能も追加し、ネガティブなnice値(スケジューリングに適しています)を設定することで、コンテナ内から処理が可能になります。

UEK R3 QU6より以前では、次のホスト専用パラメータは、カーネル制限のためコンテナ内に表示されませんでした。

  • /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/ipv4ip_local_port_range

  • /proc/sys/net/ipv4/tcp_syncookies

UEK R3 QU6以降では、これらのパラメータはコンテナ内の読取り専用で、Oracle Databaseおよびその他のアプリケーションをインストールできます。 これらのパラメータの値は、ホスト側からのみ変更できます。 ホスト専用パラメータに対する変更は、ホスト上のすべてのコンテナに適用されます。

詳細は、「Oracle Database 11.2クイック・インストレーション・ガイド」「Oracle Database 12.1クイック・インストレーション・ガイド」「カーネル・パラメータおよびリソース制限の構成」Oracle® Linux 6: 管理者ソリューション・ガイド「Linuxコンテナ」Oracle® Linux 7: 管理者ガイド「Linuxコンテナ」を参照してください。

(Bug ID 21267882)

1.3 Xenの改良点

  • ハイパーコールの長時間の実行によるソフト・ロックアップが発生しないように修正されました。

  • Physical to Machine (P2M)表を、低い階層のSWIOTLB使用方法に書き直しました。

  • Xenブロック・ドライバのメモリー・リークを修正しました。

  • xen-netfrontドライバでハンドルされない複合ページを修正しました。

1.4 DTraceの改良点

DTraceカーネル・モジュール(バージョン0.4.5)

新機能および変更点
  • USDT(ユーザー・レベルに静的に定義されたトレース)プローブを、64ビット・ホスト上の32ビット・アプリケーションで使用できます。

  • d_path() Dサブルーチンは、その引数を、現在のタスクで認識されたファイルに対応するパス構造に対するポインタにする必要があります。

修正されたバグ
  • DTraceヘルプ・トレース機能でのわずかなメモリーのリークが、修正されました。 dtrace.koモジュールがロードされると、バッファ(デフォルトで64K)が割当てられ、リリースされません。

  • 特定のプローブをスキップするフレーム数の調整が修正された結果、スタック・バックトレースがより正確になりました。

  • スタックの深さは、割当てられた一時バッファ(vmalloc)に書き込まれるバックトレースのリクエストにより決定されたため、メモリー割当てをサポートしていないコンテキストでプローブが実行される場合に重大な問題が発生しました。 現在、バッファは、プローブ処理のためにDTraceは提供するスクラッチ領域から取得されます。

  • 個別のポインタがd_path()に渡されると、システム・クラッシュが発生します。 実装により制限されるため、安全なメモリー・アクセスを使用してこれを回避することはできません。 d_path()をコールする前に、ポインタを有効化する必要があります。

DTraceユーザー・スペース・ツール(バージョン0.4.6)

新機能および変更点
  • dtrace-utils-develパッケージでは、dtrace-utilsパッケージに対応するバージョンが必要です。

  • dtrace-utilsパッケージの名前が変更されました。

  • 新しいdtrace -vVオプションを使用して、リリースされたバージョンの情報およびdtrace(1)およびlibdtrace(1)の内部IDを報告することができます。

  • <dtrace.h>ヘッダー・ファイルが含まれ、DTraceコンシューマ・アプリケーションの開発をサポートできます。

  • DTraceは、現在実行中のカーネルに対応する名前を持つディレクトリからのみ、Dライブラリをロードします。

修正されたバグ
  • 通常の操作中にSIGTRAPを受信するプロセスが、トレース中でも機能します。 以前は、SIGTRAPが無視されました。

  • DTraceでは、DTraceによる動的リンク・ステートの検証中に、exec()を実行するプロセスのトラックを失う問題が修正されました。

  • DTraceでは、分岐したプロセスにブレークポイントを残す問題が修正されました

  • DTraceが監視を停止したプロセスのシンボル・テーブルの状態を認識する問題が修正されました。

  • dlopen()またはdlclose()を使用するマルチスレッド・プロセスで、DTraceがクラッシュする問題が修正されました。

1.5 ドライバの更新

Unbreakable Enterprise Kernelでは、広範なハードウェアおよびデバイスをサポートします。 ハードウェアおよびストレージのベンダーとの密接な協力関係により、いくつかのデバイス・ドライバがオラクル社によって更新されました。

表 1.1 UEK R3 QU6で更新されたドライバ

製造元

ドライバ

バージョン

説明

Adaptec

aacraid

1.2-1[40709]-ms

SCSIドライバ

Broadcom

bnx2

2.2.5o

NetXtreme II 1 Gigabitネットワーク・アダプタ・ドライバ

Broadcom

bnx2fc

2.9.3

NetXtreme II FCoEドライバ

Broadcom

bnx2i

2.11.2.0

NetXtreme II iSCSIドライバ

Broadcom

bnx2x

1.712.33

NetXtreme II 10 Gigabitネットワーク・アダプタ・ドライバ

Broadcom

cnic

2.5.20h

NetXtreme IIコンバージドNICコア・ドライバ

Cisco

fnic

1.6.0.18

FCoE HBAドライバ

Cisco

snic

0.0.1.18

SCSI NICドライバ

Emulex

be2net

10.6.0.2

OneConnect (Blade Engine 2) NICドライバ

Emulex

lpfc

0:10.6.61.1

LightPulse Fibre Channel SCSIドライバ

Intel

i40e

1.3.2-k

Ethernet Connection XL710ネットワーク・ドライバ

Intel

i40evf

1.2.25

XL710 X710仮想機能ネットワーク・ドライバ

Intel

ixgbe

4.0.3

10ギガビットPCI Expressネットワーク・ドライバ

Intel

ixgbevf

2.16.1

10ギガビットPCI Express仮想機能ネットワーク・ドライバ

Intel

nvme

0.10

NVM Expressデバイス・ドライバ

QLogic

qla2xxx

8.07.00.18.39.0-k

Fibre channel HBAドライバ

QLogic

qla4xxx

5.04.00.07.06.02-uek3

iSCSI HBAドライバ

VMware

vmw_pvscsi

1.0.3.0-k

PVSCSIドライバ

VMware

vmw_vmci

1.1.3.0-k

仮想マシン通信インタフェース

VMware

vsock

1.0.1.0-k

仮想ソケット・ファミリー


1.6 テクノロジ・プレビュー

Unbreakable Enterprise Kernelリリース3に含まれている次の機能は、まだ開発中ですが、テストと評価の目的で使用できます。 これらの機能は本番システムで使用しないでください。

  • 分散複製型ブロック・デバイス(DRBD)

    非共有型の同時複製ブロック・デバイス(ネットワーク経由のRAID1)で、高可用性(HA)クラスタのビルディング・ブロックの役割を果たすように設計されています。 自動フェイルオーバーのためにはクラスタ・マネージャ(ペースメーカーなど)が必要です。

  • カーネル・モジュール署名機能

    暗号署名チェックをモジュール・ロード時にモジュールに適用し、カーネルにコンパイルされた公開キー・リングに対して署名をチェックします。 GPGは暗号化の作業を行うために使用され、署名およびキーのデータの書式を決定します。

  • NFS over RDMAクライアント

    Oracle InfiniBandスタック上でRDMAトランスポート経由のNFSの使用を可能にします。 これはTCP/IPoIBトランスポートを使用するよりも効率的です。 テクノロジ・プレビューには、NFS over RDMAサーバーのサポートや仮想化環境でのNFS over RDMAのサポートは含まれていません。 NFSバージョン3および4がサポートされています。 現在、Mellanox ConnectX-2およびConnectX-3ホスト・チャネル・アダプタ(HCA)のみがサポートされています。 これらのHCAを使用したConnectathon NFSの完全なテスト・スイートにクライアントは合格しました。 初回リリース後、サポート対象のアダプタが追加されると、リリース・ノートが更新されます。

    この機能を使用する方法の詳細は、1.6.1項「NFS over RDMAクライアントの使用方法」を参照してください。

  • NFS共有上のスワップ・ファイル

    システムがNFS共有上に存在するスワップ・ファイルを使用する機能。 スワップ・ファイルの使用の詳細は、swapon(8)のマニュアル・ページおよび使用しているOracle Linuxリリースの管理者ガイドを参照してください。

  • 高性能メモリー

    高性能メモリー(tmem)は、システム内で十分に利用されていないメモリーを回収して、最も必要とされる場所で利用できるようにすることで、仮想化環境での物理メモリーの利用を改善するための新しい方法を提供します。 オペレーティング・システムの観点から見れば、tmemはサイズが不確定で可変の高速擬似RAMで、主として実際のRAMが不足しているときに役に立ちます。 このテクノロジとそのユースケースの詳細は、透過メモリー・プロジェクト・ページ(https://oss.oracle.com/projects/tmem/)を参照してください。

1.6.1 NFS over RDMAクライアントの使用方法

次の手順では、NFS over RDMAサーバーを有効にする方法の詳細も説明しています。 NFS over RDMAサーバーは現在UEK R3カーネルでサポートされていないので、これらは単なる例として提供されています。

  1. RDMAデバイスをインストールし、InfiniBandを設定してIPoIBを有効にします。

    Oracle Linux OFEDパッケージは次のチャネルから入手できます。

    • Oracle Linux 6: ol6_x86_64_ofed_UEK

    • Oracle Linux 7: ol7_x86_64_UEKR3_OFED20

  2. RDMAデバイスが機能していることを確認します。

    # cat /sys/class/infiniband/driver_name/ports/1/state
    4: ACTIVE

    driver_nameはRDMAデバイス・ドライバです(mlx4_0など)。

  3. 物理InfiniBandインタフェースとリンクを確認します。

    ibhostsibnetdiscoverなどのコマンドを使用して、InfiniBandスイッチ経由でホストに接続できることを確認します。

  4. NFSクライアントとNFSサーバー間の接続を確認します。

    InfiniBandインタフェースの設定は
    /etc/sysconfig/network-scripts/ifcfg-ibNファイルで構成できます。

    pingを使用して接続を確認できます。 次に例を示します。

    nfs-server$ ip addr add 10.196.0.101/24 dev ib0
    nfs-client$ ip addr add 10.196.0.102/24 dev ib0
    nfs-server$ ping 10.196.0.102 
    nfs-client$ ping 10.196.0.101
  5. NFSクライアントとサーバーにnfs-utilsパッケージをインストールします。

  6. NFS共有を構成します。

    /etc/exportsファイルを編集します。 クライアントのIPoIBアドレスを使用して、クライアントがマウントできるようにNFSサーバーが使用可能にするディレクトリを定義します。 次に例を示します。

    /export_dir 10.196.0.102(fsid=0,rw,async,insecure,no_root_squash) 
    /export_dir 10.196.0.0/255.255.255.0(fsid=0,rw,async,insecure,no_root_squash)
  7. NFSサーバー上で、svcrdmaカーネル・モジュールをロードし、NFSサービスを開始します。

    Oracle Linux 6:

    # modprobe svcrdma
    # service nfs start
    # echo rdma 20049 > /proc/fs/nfsd/portlist

    Oracle Linux 7:

    # modprobe svcrdma
    # systemctl start nfs-server
    # echo rdma 20049 > /proc/fs/nfsd/portlist
    注意

    rdma 20049設定は、NFSサービスを再起動すると失われます。 NFSサービスを起動するたびに、これを設定する必要があります。

  8. NFSクライアント上で、xprtrdmaカーネル・モジュールをロードし、NFSサービスを開始します。

    # modprobe xprtrdma
    # service nfs start
    # mount -o proto=rdma,port=20049 host:/export /mnt 
    

    hostは、IPoIBサーバーのホスト名またはIPアドレスで、exportはNFS共有の名前です。

    RDMA経由のマウントが正常に行われたことを確認するには、マウント・ポイントのprotoフィールドを確認します。

    # nfsstat -m
    /mnt from 10.196.0.102:/export
    Flags: rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=rdma,port=20049,
    ...

    別の方法の例を示します。

    # cat /proc/mounts

既知の問題

NFSサーバーを停止するには、事前にNFSクライアント上でマウント済のファイル・システムをすべてアンマウントする必要があります。 そうしないと、NFSサーバーは停止時にハングします。

1.7 互換性

Oracle LinuxではRed Hat Enterprise Linuxとのユーザー空間の互換性が維持され、これはオペレーティング・システムの下で実行されているカーネルのバージョンとは無関係です。 ユーザー空間の既存のアプリケーションは、Unbreakable Enterprise Kernelリリース3で変更なしに引き続き実行され、RHEL認定アプリケーションには証明書の更新は不要です。

Oracle Linuxチームはリリース時の互換性に関する影響を最小限に抑えるため、カーネル・モジュールに対する依存性があるハードウェアおよびソフトウェアを提供するサード・パーティ・ベンダーと緊密に協力しています。 UEK R3のカーネルABIは、最初のリリースの後のすべての更新において変更されていません。 このリリースでは、システム上でサード・パーティのカーネル・モジュールの再コンパイルを必要とするUEK R2と比較してカーネルABIに対する変更点があります。 UEK R3をインストールする前に、アプリケーション・ベンダーとそのサポート状況を確認してください。

1.8 開発用ヘッダー・パッケージ

kernel-headersパッケージには、ユーザー領域のバイナリまたはライブラリとUEKまたはRHCK間のインタフェースを指定するCヘッダー・ファイルが用意されています。 これらのヘッダー・ファイルでは、ほとんどの標準プログラムのビルドまたはglibcパッケージの再ビルドに必要な構造体および定数を定義します。

kernel-develおよびkernel-uek-develの各パッケージには、UEKおよびRHCKに対するモジュールのビルドに必要なカーネル・ヘッダーとmakefileが用意されています。

UEKおよびUEKとRHCK両方のCヘッダー・ファイルに対するモジュールのビルドに必要なパッケージをインストールするには:

# yum install kernel-uek-devel-`uname -r` kernel-headers