Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

8.10. libvirt での仮想マシンタイマー管理

ゲスト仮想マシンでの正確な時間管理は、仮想プラットフォームにおける鍵となる課題です。さまざまなハイパーバイザーが、さまざまな方法で時間管理の問題を処理しようとします。libvirt は、ドメイン XML の <clock> 要素と <timer> 要素を使用して、時間管理のためのハイパーバイザーに依存しない設定設定を提供します。ドメイン XML は、virsh edit コマンドを使用して編集できます。詳しくは、「ゲスト仮想マシンの設定ファイルの編集」 を参照してください。
<clock> 要素は、ゲスト仮想マシンのクロックをホスト物理マシンのクロックと同期させる方法を決定するために使用されます。clock 要素には以下の属性があります。
  • offset は、ゲスト仮想マシンのクロックがホストの物理マシンのクロックからどのようにオフセットされるかを決定します。offset 属性には、以下の値を使用できます。

    表8.1 offset 属性値

    説明
    utcゲスト仮想マシンのクロックは、起動時に UTC に同期されます。
    localtimeゲスト仮想マシンのクロックは、起動時にホストの物理マシンの設定済みタイムゾーンに同期されます (存在する場合)。
    timezoneゲスト仮想マシンのクロックは、timezone 属性で指定された特定のタイムゾーンに同期されます。
    variableゲスト仮想マシンクロックは UTC の任意のオフセットに同期されます。UTC との相対的なデルタは、adjustment 属性を使用して秒単位で指定します。ゲスト仮想マシンは、時間の経過とともにリアルタイムクロック (RTC) を自由に調整でき、次の再起動後にそれが受け入れられることを期待しています。これは、utc モードとは対照的に、リブートごとに RTC の調整が失われます。
    注記
    utc は、デフォルトで仮想マシンのクロックオフセットとして設定されます。ただし、ゲスト仮想マシンのクロックを localtime の値で実行している場合は、ゲスト仮想マシンのクロックをホスト物理マシンのクロックと同期させるため、クロックオフセットを変更して別の値にする必要があります。
  • timezone 属性は、ゲスト仮想マシンクロックに使用されるタイムゾーンを決定します。
  • adjustment 属性は、ゲスト仮想マシンのクロック同期にデルタを提供します。秒単位で、UTC との相対パスになります。

例8.1 常に UTC に同期する

<clock offset="utc" />

例8.2 常にホストの物理マシンのタイムゾーンに同期する

<clock offset="localtime" />

例8.3 任意のタイムゾーンへの同期

<clock offset="timezone" timezone="Europe/Paris" />

例8.4 UTC + 任意のオフセットに同期する

<clock offset="variable" adjustment="123456" />

8.10.1. クロックのタイマー子要素

clock 要素には、ゼロ以上の timer 要素を子として指定できます。timer 要素は、ゲスト仮想マシンのクロック同期に使用されるタイムソースを指定します。timer 要素には以下の属性があります。name のみが必要で、他のすべての属性は任意です。
name 属性は使用する時間ソースの型を決定し、以下のいずれかになります。

表8.2 名前属性値

説明
pitProgrammable Interval Timer - 周期的な割り込みがあるタイマーです。
rtcReal Time Clock - 周期的な割り込みがある継続的に実行するタイマー。
tscTime Stamp Counter: リセットしてからのティック数をカウント、割り込みなし。
kvmclockKVM クロック: KVM ゲスト仮想マシンの推奨されるクロックソース。KVM pvclock または kvm-clock を使用すると、ゲスト仮想マシンがホストの物理マシンのウォールクロックタイムを読み取ることができます。