Menu Close
Settings Close

Language and Page Formatting Options

Red Hat Training

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

23.15. 時間管理

ゲスト仮想マシンのクロックは、通常、ホストの物理マシンのクロックから初期化されます。ほとんどのオペレーティングシステムでは、ハードウェアクロックは UTC (デフォルト設定) に保持されることが想定されています。
ゲスト仮想マシンでの正確な時間管理は、仮想プラットフォームにおける鍵となる課題です。異なるハイパーバイザーは、さまざまな方法で時間管理の問題に対処しようとします。libvirt は、ドメイン XML の <clock> 要素および <timer> 要素を使用して、時間管理のハイパーバイザーに依存しない設定を提供します。ドメイン XML は、virsh edit コマンドを使用して編集できます。詳細は、「ゲスト仮想マシンの XML 設定の編集」 を参照してください。

図23.25 時間管理


  ...
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup' track='guest'>
      <catchup threshold='123' slew='120' limit='10000'/>
    </timer>
    <timer name='pit' tickpolicy='delay'/>
  </clock>
  ...


ドメイン XML のこのセクションのコンポーネントは以下のとおりです。

表23.11 時間管理要素

状態 説明
<clock> <clock> 要素は、ゲスト仮想マシンのクロックをホスト物理マシンのクロックと同期させる方法を決定するために使用されます。offset 属性には 4 つの値を指定できます。これにより、ゲスト仮想マシンのクロックをホスト物理マシンに同期させる方法を詳細に制御できます。ハイパーバイザーは、常にすべてのポリシーをサポートする必要はないことに注意してください。
  • utc - 起動時にクロックを UTC に同期します。utc モードは、adjustment 属性を使用して制御できる variable モードに変換できます。値が reset の場合、変換は行われません。数値を入力すると、その値を初期調整として使用し、強制的に variable モードに変換されます。デフォルトの調整は、ハイパーバイザー固有です。
  • localtime - ゲスト仮想マシンのクロックを、起動時にホスト物理マシンに設定されたタイムゾーンと同期します。調整属性の動作は、utc モードと同じです。
  • timezone - ゲスト仮想マシンのクロックを、要求されたタイムゾーンに同期します。
  • variable - ゲスト仮想マシンクロックに、basis 属性に応じて UTC または localtime を基準にした任意のオフセットを適用します。UTC (または localtime) に対する差分は、adjustment 属性を使用して秒単位で指定します。ゲスト仮想マシンは、時間の経過とともに RTC を調整する自由があり、次回のシステムの再起動時に有効になると予想されます。これは、utc モードおよび localtime モード (オプション属性の adjustment='reset' を使用) とは対照的です。ここでは、システムの再起動ごとに RTC 調整が失われます。また、basis 属性は utc (デフォルト) または localtime のいずれかになります。clock 要素には、0 個以上の<timer> 要素を指定できます。
<timer> 下記を参照してください。
<あり> ゲスト仮想マシンで特定のタイマーが使用可能であるかどうかを指定します。yes または no に設定できます。
注記
<clock> 要素には、子としての<timer> 要素を 0 個以上指定できます。<timer> 要素は、ゲスト仮想マシンのクロック同期に使用されるタイムソースを指定します。
<timer> 要素では、name のみが必要で、その他の属性は任意になります。
  • name - 変更するtimerを選択します。指定できる値は、kvmclockpit、または rtc です。
  • track - タイマートラックを指定します。次の値を使用できます: bootguest、または walltrackname="rtc" でのみ有効です。
  • tickpolicy - ゲスト仮想マシンにティックを挿入する期限が過ぎた場合の動作を指定します。設定可能な値は、以下のとおりです。
    • delay - 通常の速度でティックを配信し続けます。ゲスト仮想マシンの時間は、ティックの遅延により遅れます。
    • catchup - ティックの遅れを取り戻すために、高いレートでティックを配信しますキャッチアップが完了すると、ゲスト仮想マシンの時間は表示されません。さらに、3 つのオプション属性 (それぞれ正の整数) (threshold、slew、および limit) があります。
    • merge - 遅れたティックを単一のティックにマージし、それらを挿入します。マージの実行方法によっては、ゲスト仮想マシンの時間が遅れる可能性があります。
    • discard - 遅れたティックを破棄し、デフォルトの間隔設定で今後の挿入を続行します。失われたティックを処理する明示的なステートメントがない限り、ゲスト仮想マシンの時間が遅延する場合があります。
注記
utc は、デフォルトで仮想マシンのクロックオフセットとして設定されます。ただし、ゲスト仮想マシンのクロックを localtime の値で実行している場合は、ゲスト仮想マシンのクロックをホスト物理マシンのクロックと同期させるため、クロックオフセットを変更して別の値にする必要があります。

例23.1 常に UTC に同期する

<clock offset="utc" />

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

<clock offset="localtime" />

例23.3 任意のタイムゾーンに同期する

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

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

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