第17章 KVM ゲストのタイミング管理
- クロックは正確な時刻との同期から外れて、セッションを無効にしたり ネットワークに影響したりします。
- 遅くれるクロックを持つゲストは移行で問題を持つ可能性があります。
重要
ntpd
サービスを有効にして下さい:
# service ntpd start
# chkconfig ntpd on
ntpd
サービスを使用すると、全ての ケースでクロックのずれの効果を最低限に抑えることができるはずです。
constant_tsc
フラグが存在する場合は、 使用中の CPU が不変タイムスタンプカウンタを持っていることになります。 その CPU が constant_tsc
フラグを持つか どうかを判定するには、以下のコマンドを実行します:
$ cat /proc/cpuinfo | grep constant_tsc
constant_tsc
ビットを持つことになります。出力がない場合は以下の案内に 従ってください。
不変タイムスタンプカウンタを持たないシステムは追加の設定を必要とします。 パワーマネジメント機能は正確な時刻維持を邪魔するため、ゲスト用にはそれを 無効にして KVM での時刻維持を保護します。
重要
constant_tsc
ビットが無い場合、 全てのパワーマネジメント機能 (BZ#513138) を無効にして下さい。 各システムはいくつかのタイマーで時刻を維持しています。TSC はホスト上で不安定 であり、時には cpufreq
変更、deep C 状態、又は より速い TSC を持つホストへの移行により影響を受けます。 カーネルの deep 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
constant_tsc
の無いホスト上でのみ)cpufreq
を 無効にするには、/etc/sysconfig/cpuspeed
設定ファイルの編集により、MIN_SPEED
変数と MAX_SPEED
変数を利用できる最高の周波数に変更します。 その有効な限界は /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies
ファイル内で見ることができます。
特定の Red Hat Enterprise Linux ゲストには、追加のカーネルパラメータが 必要になります。これらのパラメータは、ゲストの /boot/grub/grub.conf ファイル内の /kernel 行の末尾にそれら自身を追記することによりセットできます。
Red Hat Enterprise Linux | その他のゲストカーネルパラメータ |
---|---|
para-virtualized クロックを持つ 5.4 AMD64/Intel 64 | 追加のパラメータは無用です |
para-virtualized クロックを持たない 5.4 AMD64/Intel 64 | divider=10 notsc lpj=n |
para-virtualized クロックを持つ 5.4 x86 | 追加のパラメータは無用です |
para-virtualized クロックを持たない 5.4 x86 | divider=10 clocksource=acpi_pm lpj=n |
5.3 AMD64/Intel 64 | divider=10 notsc |
5.3 x86 | divider=10 clocksource=acpi_pm |
4.8 AMD64/Intel 64 | notsc divider=10 |
4.8 x86 | clock=pmtmr divider=10 |
3.9 AMD64/Intel 64 | 追加のパラメータは無用です |
3.9 x86 | 追加のパラメータは無用です |
Windows は RTC (Real-Time Clock) と TSC (Time Stamp Counter) の両方を 使用します。Windows ゲストには、TSC の代わりに、全ての時刻ソースのために 時刻維持問題を解決する Real-Time Clock を使用します。
boot.ini
ファイルに以下の 行を追加して下さい:
/use pmtimer