6.15.3. KVM 仮想マシンのタイミング管理
pvclock は、これに対応する KVM ゲストに対して安定したタイミングソースを提供します。
- クロックが実際の時刻と同期できなくなり、セッションが無効になり、ネットワークに影響が及ぶ可能性があります。
- クロックが遅い仮想マシンには移行の問題が発生する可能性があります。
ntpd サービスを有効にし、デフォルトの起動シーケンスに追加します。
- Red Hat Enterprise Linux 6 の場合
service ntpd start chkconfig ntpd on
# service ntpd start # chkconfig ntpd onCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Red Hat Enterprise Linux 7 の場合
systemctl start ntpd.service systemctl enable ntpd.service
# systemctl start ntpd.service # systemctl enable ntpd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
ntpd サービスを使用すると、すべてのケースでクロックスキューの影響を最小限に抑える必要があります。
CPU に一定のタイムスタンプカウンターがあるかどうかの判断
constant_tsc フラグが存在する場合、CPU には一定のタイムスタンプカウンターがあります。CPU に constant_tsc フラグがあるかどうかを確認するには、以下のコマンドを実行します。
cat /proc/cpuinfo | grep constant_tsc
$ cat /proc/cpuinfo | grep constant_tsc
constant_tsc ビットがあります。出力が表示されない場合は、以下の手順に従ってください。
Constant タイムスタンプカウンターを使用しないホストの設定
一定のタイムスタンプカウンターのないシステムには、追加の設定が必要です。電源管理機能は正確な時間管理を妨げるため、仮想マシンが KVM で時間を正確に保持するには、無効にする必要があります。
constant_tsc ビットがない場合は、すべての電源管理機能を無効にします(BZ#513138)。各システムには、時間を維持するために使用するいくつかのタイマーがあります。TSC はホストで安定していません。これは、cpufreqの変更、ディープ C ステート、またはより高速な TSC を使用したホストへの移行が原因である場合があります。ディープ C のスリープ状態は、TSC を停止する可能性があります。カーネルがディープ C 状態を使用するのを防ぐには、ホストの grub.conf ファイルのカーネル起動オプションにprocessor.max_cstate=1を追加します。
term Red Hat Enterprise Linux Server (2.6.18-159.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet processor.max_cstate=1
term Red Hat Enterprise Linux Server (2.6.18-159.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet processor.max_cstate=1
/etc/sysconfig/cpuspeed 設定ファイルを編集して cpufreq を無効にします( constant_tscのないホストでのみ必要)。MIN_SPEED 変数および MAX_SPEED 変数を利用可能な最大周波数に変更します。有効な制限は、/sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies ファイルにあります。
engine-config ツールを使用して、ホストが同期から外れたときにアラートを受信します。
engine-config ツールを使用して、ホストが同期から外れてドリフトした時にアラートを設定できます。
EnableHostTimeDrift と HostTimeDriftInSec の 2 つです。デフォルト値が false の EnableHostTimeDrift を有効にすると、ホストの時刻ドリフトに関するアラート通知を受け取ることができます。HostTimeDriftInSec パラメーターを使用して、アラートの送信が開始されるまでの最大許容ドリフトを設定します。
Red Hat Enterprise Linux 仮想マシンでの準仮想化クロックの使用
特定の Red Hat Enterprise Linux 仮想マシンでは、追加のカーネルパラメーターが必要です。このパラメーターは、仮想マシンの /boot/grub/grub.conf ファイルの /kernel 行の末尾に追加することで設定できます。
/boot/grub/ ディレクトリーに新しい grub.conf.kvm ファイルを作成します。このファイルには、追加のカーネルパラメーターを含むカーネルブート行が含まれます。これにより、カーネルは KVM 仮想マシンの大きなクロックドリフトに対応したり、ドリフトの発生を防いだりできます。fix_clock_drift.sh をスーパーユーザーで実行し、スクリプトが grub.conf.kvm ファイルを作成した後に、システム管理者が仮想マシンの現在の grub.conf ファイルを手動でバックアップする必要があります。新しい grub.conf.kvm ファイルは、追加のブート行パラメーターを除き、grub.conf に手動で検査する必要があります。 grub.conf.kvm ファイルの名前は最後に grub.conf に変更され、仮想マシンを再起動する必要があります。