loopbackデバイスを使ってファイルシステムをマウント中にスナップショットをQuiesce the guest file systemオプションを有効に
して取得すると仮想マシンのvmtoolsdがハングアップ(PS等で見るとSTAT Dとなったまま)状態になりマウントしているディレクトリ
に対して何かの操作をするとカーネルが応答不能になります。
vmware-toolsのバグでしょうか?
ハイパーバイザのバージョン: vSphere ESXi 5.1
仮想マシンの環境(OS): CentOS6.4
# vmware-toolbox-cmd -v
9.0.5.21789 (build-1065307)
再現方法
1) dd でファイルを作ります。例として1GBのファイルをループバックマウントする。
# dd if=/dev/zero of=/mnt/disk.img bs=1M count=1000
# losetup /dev/loop0 /mnt/disk.img
2) パーティションを設定します。
# fdisk /dev/loop0
(省略)
3) ファイルシステムを作成します。
# mkfs.ext3 /dev/loop0
4) マウントポイントを作成してマウントします。
# mkdir /mnt/disk
# mount /dev/loop0 /mnt/disk
or
# mount -o /mnt/disk.img /mnt/disk
5) スナップショットを取得します。その際にQuiesce the guest file systemにチェックを入れます。
Status: (X) An error occurred while quiescing the virtual machine. See the virtual machine's event log for details.
となりスナップショットが失敗します。
6) vmtoolsdがハングアップした状態になります。
# ps ax | grep vmtoolsd
2374 ? D 0:00 /usr/sbin/vmtoolsd
PS の一部抜粋
4884 ? S< 0:00 [vmmemctl]
5157 ? D 0:00 /usr/sbin/vmtoolsd
5248 ? D< 0:00 [loop0]
よろしくお願いします。
こんばんは。
感覚的な話になってしまいますが、
loopbackデバイスをマウントしているときだけだとすると
VMware Tools というより ゲストOS側(Linux側)に何かありそうな気がします。
たとえば、
ファイルシステムの静止点を取得(Quiesce the guest file system)すると
下記のような処理の流れがあると思います。
※loopbackデバイスの有無で2行記載してみました。
Tools(静止点取得)→ ext3ファイルシステム→ loopbackデバイス
Tools(静止点取得)→ ext3ファイルシステム→ loopbackじゃないデバイス(/dev/sd~とか)
最初の「→」の部分よりも、次の「→」の部分が怪しそうな気がしています。
どうしても気になる場合は、仮想ディスク追加して
loopbackじゃないデバイスをマウントしなおして
試してみると切り分けができそうな気がします。
ついでですが・・・
スナップショットについては下記の情報もありました。
VMwareの情報:
VMware KB: Snapshot quiescing fails on Linux guests after upgrading to ESXi and VMware Tools 5.1
Red Hatの情報:
System Hangs during VMware Snapshot operation - Red Hat Customer Portal
RHEL6.4(CentOS6.4相当)で修正済みのようなので 今回は該当しなそうですが、
他にもこんな問題はあるかもしれないので、トラブルを避けて使用するために
できるならオンラインのスナップショットは避けたほうがよいと思います。
オンラインでのスナップショット取得にもごくわずかなVM停止があり
VMの負荷が高いときなどに実施するとトラブルになることがあるので、
個人的には、意図しないタイミングで停止すると困るVMの場合は
ゲストOSを停止(いわゆる計画停止)して取得するようにしています。
以上です。ご参考まで・・・
loopback(/dev/loop?)ではないデバイスではまったく問題はでません。
CentOS謹製ではないkernel(3.17.0-1.el6.elrepo.x86_64)でも試しましたが同様にハングアップします。
またvmware toolsのsyncドライバの有無についても調べましたが関連性はないようです。
オンラインスナップショットの運用についてはSMVI(NetApp VSC)で毎日取得しなければならず仮想マシン毎に
除外もできないのでゲスト側でloopbackマウントを行わないようにしてもらうしかなさそうです。
cPanelなどでSecureTempと呼ばれるloopbackマウントを使った運用や身近なところだとISOファイルシステム
の編集などに使うのでちょっと困りものです。
ゲストOSのLinuxの問題かどうかの切り分けは他のハイパーバイザで同様の操作を行ってみて
ハングアップするかを試すしかなさそうですね。