オプションのインストール後ステップとして、すべてのOracle VM Serverで診断ツールのインストールと構成を行うことをお薦めします。 これらのツールは、システム・クラッシュ、ハング、スケジュールされていない再起動、OCFS2クラスタ・エラーなど、問題のデバッグや診断に役立ちます。 これらのツールからの出力をOracle Supportで使用することで、解決時間およびレスポンス時間を著しく短縮できます。
システム・メモリー・ダンプ、vmcoreの取得は、問題の根本原因を診断して解決する際に非常に役立ちます。 有用なvmcoreダンプを取得するには、kdumpサービス構成が必要です。 この詳細は、次の 1.4.2項「Oracle VM Server用のkdumpの手動構成」を参照してください。
さらに、システム・コンソール・メッセージをネットワークを介して別のサーバーにリダイレクトできるユーティリティである、netconsoleをインストールできます。 netconsoleのインストール方法については、Oracle Supportドキュメント「How to Configure "netconsole" for Oracle VM Server 3.0」を参照してください。
診断ツールの使用の詳細は、Oracle Linuxのドキュメントに記載されています。 『Oracle Linux管理者ソリューション・ガイド』の「診断ツールのサポート」という章を参照してください。
http://docs.oracle.com/cd/E37670_01/E37355/html/ol_diag.html
OSWatcher (oswbb)は、Oracle VM Serverに関するパフォーマンスの問題を診断するためにオペレーティング・システムおよびネットワーク・メトリックを収集およびアーカイブするシェル・スクリプトの集まりです。 OSWatcherは、一連のバックグラウンド・プロセスとして動作し、vmstat、netstat、iostatなどの標準UNIXユーティリティを使用してデータを集めます。
デフォルトでは、OSWatcherはOracle VM Serverにインストールされ、起動時に実行できるようになっています。 次の表では、OSWatcherプログラムおよびメインの構成ファイルを説明します。
名前 | 説明 |
---|---|
| メインのOSWatcherプログラムです。 必要に応じて、統計収集のための特定のパラメータを構成できます。 ただし、Oracle Supportによってデフォルト構成を変更するように薦められた場合のみ行ってください。 |
| このファイルは、OSWatcherのログ・ファイルが保存されるディレクトリ、統計収集の間隔およびアーカイブされた統計を保持しておく最大期間を定義します。 重要 OSWatcherユーティリティが収集するデータに制限を指定することはできません。 このため、OSWatcherユーティリティがシステム・ディスク上で使用可能な空き容量をすべて使用してしまうことがないよう、デフォルト構成を変更する際には注意する必要があります。 |
OSWatcherの起動、停止およびステータスの確認を行うには、次のコマンドを使用します。
# service oswatcher {start|stop|status|restart|reload|condrestart}
OSWatcherが収集するデータの情報と出力を分析する方法およびOracle Supportへデータを送信する手順の詳細は、Oracle VM Serverのディレクトリ/usr/share/doc/oswatcher-
にある『OSWatcherユーザーズ・ガイド』を参照してください
x
.x
.x
/
Oracle VM Serverは、安定かつフォルト・トレラントで堅牢なUEK4カーネルを使用しており、システム全体をクラッシュさせるエラーはほとんど発生しませんが、それでもシステム全体のエラーによりカーネルがクラッシュすることはあります。 問題を的確にデバッグして解決するには、カーネル・クラッシュ時のシステムの実際の状態に関する情報が不可欠です。 dom0からメモリー・ダンプを取得してファイル・システムに格納するには、kdumpサービスが使用されます。 このサービスは、ゲスト仮想マシンで使用されるシステム・メモリーはダンプしないため、メモリー・ダンプはdom0およびXenハイパーバイザ自体に固有です。 kdumpによって生成されるメモリー・ダンプ・ファイルは、vmcore
ファイルと呼ばれます。
kdumpサービスが適切に有効になり実行されるようにOracle VM Serverを手動で構成するために必要な処理をここで説明します。これにより、インストール後にこのサービスを設定して有効にすることができます。 Oracle VM Serverインストーラでは、これらのステップの多くが自動的に実行されるインストール時にkdumpを有効にするオプションを提供します。 詳細は、「Oracle VM Managerコマンドライン・インタフェース・ユーザー・ガイド」の「Kdump設定」の項を参照してください。
デフォルトでは、kdumpサービスを有効にするために必要なパッケージはOracle VM Serverインストールに含まれていますが、構成作業を続ける前にインストールされていることを確認することをお薦めします。 これを行うには、次のコマンドを実行します。
# rpm -qa | grep kexec-tools
kexec-tools
パッケージがインストールされていない場合、手動でインストールする必要があります。
Oracle VM Serverは、GRUB2を使用してブート・プロセスを処理します。 このステップでは、起動時にcrashkernel
パラメータをXenカーネルに渡すようにGRUB2を構成する必要があります。 /etc/default/grub
ファイルを編集し、適切なcrashkernel
パラメータを追加してGRUB_CMDLINE_XEN
変数を変更することで、これを行うことができます。
crashkernel
パラメータは、ダンプ・ファイルの生成に使用されるクラッシュ・カーネルをロードするためにメモリー内で使用される領域の量を指定し、クラッシュ・カーネル・リージョンの始まりであるオフセットもメモリー内で指定します。 クラッシュ・カーネルに指定できるRAMの最小量は512MBで、これは64MBでオフセットされます。 これは次のような構成になります。
GRUB_CMDLINE_XEN="dom0_mem=max:6144M allowsuperpage dom0_vcpus_pin \ dom0_max_vcpus=20 crashkernel=512M@64M"
この設定は大多数のシステムで十分ですが、大きなドライバを相当数使用するシステムでは、クラッシュ・カーネルにさらに多くのメモリー領域を割り当てておく必要があります。 ダンプを強制してコア・ファイルの生成に失敗する場合、クラッシュ・カーネルに割り当てられるメモリーの量を増やす必要があります。
UEK4は、crashkernel=auto
オプションをサポートしますが、Xenハイパーバイザはサポートしません。 クラッシュ・カーネルに使用されるRAMの予約およびオフセットの値を指定する必要があります。指定しないと、kdumpサービスを実行できません。
/etc/default/grub
の変更が終了したら、起動時に使用されるシステムのGRUB2構成を再構築する必要があります。 次のコマンドを実行することで行われます。
# grub2-mkconfig -o /boot/grub2/grub.cfg
kdumpでは、ネットワークによってアクセス可能なファイル・システムを含む様々な場所にvmcoreファイルを格納できます。 デフォルトでは、vmcoreファイルは/var/crash/
に保存されますが、これはディスク・パーティショニングや使用可能な領域によっては適切でない場合があります。 vmcoreファイルが保存されるファイル・システムには、ダンプごとにOracle VM Serverで使用可能なメモリー量に合う十分な領域が必要です。
Oracle VM Serverのインストールでは、必要な分のディスク領域しか使用しないため、新規インストール時に「スペア」パーティションが空いていることがよくあります。 このパーティションは、ローカル・リポジトリのホスティングやkdumpによって生成されたvmcoreファイルをホストするなどの別の使用のために空いたままになります。 この目的で使用することを選択した場合、まずパーティションのUUIDを正しく識別してノートにとって、使用可能なファイル・システムでフォーマットする必要があります。
次のステップは、ローカル・スペア・パーティションを準備する方法の例を示します。
インストール後にインストーラが「スペア」として残したパーティションを特定します。 これは通常、
OVM_SYS_REPO_PART
で始まるファイル名で/dev/mapper
にリストされます。 このデバイスを特定できたら、次のようにext4ファイル・システムでフォーマットできます。# mkfs.ext4 /dev/mapper/OVM_SYS_REPO_PART_
VBd64a21cf-db4a5ad5
このようにマッピングされたパーティションがない場合、blkls、parted、fdiskまたはgdiskなどのユーティリティを使用して、使用可能なディスク・デバイス上の空きパーティションを特定する必要があります。
ファイル・システムのUUIDを取得します。 これを行うには、blkidコマンドを実行します。
# blkid /dev/mapper/OVM_SYS_REPO_PART_
VBd64a21cf-db4a5ad5
/dev/mapper/OVM_SYS_REPO_PART_VBd64a21cf-db4a5ad5
: UUID="51216552-2807-4f17-ab27-b8135f69896d
" TYPE="ext4"後でkdumpを構成する際に使用する必要があるため、UUIDをノートにとっておきます。
kdumpサービスの実行方法を示すシステム構成は/etc/sysconfig/kdump
に定義されていますが、特定のkdump構成変数は/etc/kdump.conf
に定義されています。 環境に応じて、これらのファイルのいずれかに変更を加える必要があります。 ただし、問題なくkdumpを実行するにはデフォルト構成で十分です。 次のリストは、構成を変更する可能性のあるものを示します。
たくさんのメモリーがあるシステムでは(たとえば、1TB以上)、パフォーマンスや安定性の理由から、クラッシュ・カーネル内のIOメモリー管理ユニットを無効にすることをお薦めします。 これは、
/etc/sysconfig/kdump
を編集し、iommu=off
カーネル・ブート・パラメータをKDUMP_COMMANDLINE_APPEND
変数に追加することで実現できます。KDUMP_COMMANDLINE_APPEND="irqpoll maxcpus=1 nr_cpus=1 reset_devices cgroup_disable=memory mce=off selinux=0 iommu=off"
vmcoreファイルが保存されているパーティションを変更する場合、たとえば、インストール後にサーバー上のスペア・パーティションを使用する場合、
/etc/kdump.conf
を編集してパーティションのファイル・システム・タイプやデバイスの場所を指定する必要があります。 前述の指示に従った場合、blkidコマンドを使用してパーティション用に取得したUUIDを指定することで行うことをお薦めします。 構成には、次のような行が示されます。ext4 UUID=
51216552-2807-4f17-ab27-b8135f69896d
vmcoreファイルが保存されているデフォルト・パスは編集できますが、このパスはkdumpがvmcoreを保存するために使用するよう構成しているパーティションと関連していることに注意してください。 kdumpがvmcoreを別のファイル・システムに保存するように構成している場合は、ファイル・システムをマウントすると、vmcoreファイルはマウントされたファイル・システムで、次の指示で指定されたパスに置かれます。
path /var/crash
vmcoreの取得で問題が発生している場合、またはmakedumpfileユーティリティを使用していてvmcoreファイルが著しく大きい場合、cpコマンドを使用するようにkdumpを再構成して、vmcoreをスパース・モードでコピーできます。 これを行うには、
/etc/kdump.conf
を編集して、makedumpfileユーティリティを使用するようにcore_collector
を設定している行をコメント・アウトし、cpコマンドを有効にする行を非コメント化します。# core_collector makedumpfile -EXd 1 --message-level 1 --non-cyclic core_collector cp --sparse=always extra_bins /bin/cp
この効果は場合によって異なるため、一般的にはかわりにmakedumpfileユーティリティをお薦めします。
次のコマンドを実行することで、起動するたびにkdumpサービスを実行することができます。
# chkconfig kdump on
この時点でkdumpサービスを再起動して、kdump構成に加えられた変更を検出し、kdumpクラッシュ・カーネルが生成済で最新であるかを判断する必要があります。 カーネル・イメージを更新する必要がある場合には、kdumpは自動的に更新します。更新が必要ない場合には、クラッシュ・カーネル・イメージを再構築しようとせずに再起動します。
# service kdump restart Stopping kdump: [ OK ] Detected change(s) the following file(s): /etc/kdump.conf Rebuilding /boot/initrd-4.1.12-25.el6uek.x86_64kdump.img Starting kdump: [ OK ]
次のコマンドを実行して、crashkernelパラメータが使用中であることを示す出力が返されることを確認することで、dom0用にロードされたカーネルが適切に構成されていることを確認できます。
# xl dmesg|grep -i crashkernel (XEN) Command line: placeholder dom0_mem=max:6144M allowsuperpage dom0_vcpus_pin dom0_max_vcpus=20 crashkernel=512M@64M
次のコマンドを実行することで、kdump用に適切なメモリー量が予約されていることも確認できます。
# xl dmesg|grep -i kdump (XEN) Kdump: 512MB (524288kB) at 0x4000000
または、
# kexec --print-ckr-size 536870912
次に示すようにサービス・ステータスを確認することで、kdumpサービスが実行されていることを確認できます。
# service kdump status Kdump is operational
/var/log/messages
またはコンソールにエラーがない場合には、kdumpが適切に実行されているとみなすことができます。
kdumpがvmcoreを生成して適切に格納できることをテストするには、次のコマンドを発行してカーネル・パニックをトリガーすることができます。
# echo 1 > /proc/sys/kernel/sysrq # echo c > /proc/sysrq-trigger
これらのコマンドによって、Oracle VM Server上のカーネルではパニックとクラッシュが発生します。 kdumpが適切に動作している場合、クラッシュ・カーネルは、サーバーが自動的にリブートされる前に構成された場所にコピーされたvmcoreファイルを引き継いで生成します。 kdumpがクラッシュ・カーネルのロードに失敗すると、サーバーはカーネル・パニックでハングし、再起動するためにハードのリセットが必要になります。
カーネル・パニックをトリガーしてシステムが正常に再起動した後、vmcoreファイルが適切に生成されたことを次の手順で確認します。
別のパーティションを使用するようにkdumpを構成していなければ、vmcoreファイルは
/var/crash/127.0.0.1-
に見つけることができます。ここで、date
-time
/vmcoredate
およびtime
はvmcoreが生成された日付と時間を示します。別のパーティションにvmcoreファイルを保存するようにkdumpを構成している場合には、まずそのパーティションをマウントする必要があります。 Oracle VM Serverの新規インストールによって生成されたスペア・パーティションを使用している場合、次の方法で実行できます。
# mount /dev/mapper/OVM_SYS_REPO_PART_
VBd64a21cf-db4a5ad5
/mntその場合、vmcoreファイルは
/mnt/var/crash/127.0.0.1-
に見つけることができます。ここで、date
-time
/vmcoredate
およびtime
はvmcoreが生成された日付と時間を示します。たとえば、次のようになります。# file /mnt/var/crash/127.0.0.1-2015-12-08-16\:12\:28/vmcore /mnt/var/crash/127.0.0.1-2015-12-08-16:12:28/vmcore: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style
vmcoreファイルを分析用に取得した後、kdumpによって自由に使用できるようパーティションをアンマウントすることを忘れないでください。
vmcoreファイルが作成されていない場合、またはシステムが自動的に再起動することなくハングした場合、構成を調整する必要があります。 最も多い問題は、クラッシュ・カーネルを実行して操作を完了するのに十分なメモリーが割り当てられていないことです。 kdumpに関する問題の解決の出発点は、常に、GRUB2構成で指定した予約済メモリーを増やすことです。