9.12 記憶域ライブ・マイグレーション時の一時停止エラー

ローカル記憶域を使用する実行中の仮想マシンを移行すると、まず、ソース・サーバーのローカル・リポジトリから宛先サーバーのローカル・リポジトリに仮想ディスクが移行されます。 記憶域ライブ・マイグレーション時、追加のディスク・アクティビティがある場合にソースOracle VM Serverゲスト仮想マシンについて一時停止エラーが発生することがあります。 たとえば、宛先サーバーのローカル・リポジトリに移行されている間にソース・サーバーのローカル・リポジトリの仮想ディスクに書き込んでいるゲスト仮想マシンで実行されるプロセスが、追加のディスク・アクティビティに含まれることがあります。

一時停止操作では、追加のディスク・アクティビティのために完了するのにより多くの時間が必要となり、記憶域ライブ・マイグレーションが失敗する一時停止エラーが発生します。 次のような一時停止エラーがソースOracle VM Serverインスタンスの/var/log/xen/xend.logに表示されます。

[timestamp 2792] DEBUG (XendDomainInfo:3509) waitForSuspend: domain 1 state:
[timestamp 2792] INFO (XendCheckpoint:430) [9836] xc: error:
Suspend request failed: Internal error
[timestamp 2792] DEBUG (XendDomainInfo:1943) XendDomainInfo.handleShutdownWatch
[timestamp 2792] INFO (XendCheckpoint:430) [9836] xc: error: Domain appears not
to have suspended: Internal error 

また、タイムアウト・エラーがソースOracle VM Serverゲスト仮想マシンのカーネル・ログに表示されます。

timestamp server kernel: [ 1601.227167] Freezing of tasks failed
after xx seconds (0 tasks refusing to freeze, wq_busy=1):

回避策: ソースOracle VM Serverゲスト仮想マシンでミリ秒単位で指定する/sys/power/pm_freeze_timeoutパラメータを更新し、記憶域ライブ・マイグレーション時に追加のディスク・アクティビティが発生した場合に十分な時間が使用できるようにします。

  1. ゲスト仮想マシンにログインします。

  2. pm_freeze_timeoutパラメータを、割くことができる最大停止時間、最大5分(300000ミリ秒)に更新することをお薦めします。 たとえば、/sys/power/pm_freeze_timeoutパラメータを5分に更新するには、次のコマンドをゲスト仮想マシンで実行します。

    # echo "300000" > /sys/power/pm_freeze_timeout

    注意

    pm_freeze_timeoutパラメータに対して設定した値は、記憶域ライブ・マイグレーション時にソースOracle VM Serverゲスト仮想マシンがオフラインのままでいる時間に影響します。

  3. 記憶域を使用してライブ・マイグレーションを再度実行すると、一時停止エラーは発生しません。

pm_freeze_timeoutパラメータの更新後に、ソースOracle VM Serverゲスト仮想マシンについて一時停止エラーが引き続き発生する場合は、追加のディスク・アクティビティが完了するまで記憶域ライブ・マイグレーションを避けるか、ゲスト仮想マシンが記憶域ライブ・マイグレーション時にオフラインのままでいるのに割ける最大時間を再考する必要があります。

バグ26289880