想定環境は:
一部始終はこちらの方のブログにわかりやすく解説されています。
http://sashiz.seesaa.net/article/253087250.html
ただし、これに加えて陥った問題ありました。ヘビーなファイル転送などで高負荷になった時にディスクドライバがエラーをはきアクセス不能になったり、カーネルパニックを起こしてしまったりが頻発しました。いろいろ対処法を探し回りましたが結局、やってみて効果が認められたのは kernel のオプション設定です。
情報はVMWareのKnowledge Baseで解説されています。
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006427
/boot/grub/brub.conf ファイルの kernel 行に1こと追加します。
今回の環境では clocksource=acpi_pm divider=10 (64bit 32bit 共)
kernel /vmlinuz-2.6.32-220.13.1.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto quiet d_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM clocksource=acpi_pm divider=10
注意)試行錯誤が続いていますが 私の利用している CentOS 6.2 x86_64 のカーネルは notsc をサポートしていない様子で、notscオプションを付けると別のデフォルトクロックを使用して動作するようでした。その結果再び悪夢のカーネルパニックに陥ってしまいました。したがって notsc オプションは意図的に除外することにしました。
注意更新)それでも高負荷時に kernel panic に陥るため再調整を行いました。clocksource オプションを指定しないとデフォルトで hyper-v の指定する hv_timesource が選択されていたところ、明示的に acpi_pm を指定しました。結果、SAMBAのファイル転送が敵的に早くなったのを確認。安定性についてはしばらく様子を見ます。
さらに、システムクロックが少しずつ早くなるという問題があります。少しずつなのですが、Linux上にSAMBAを立ち上げてADS認証などを設定しているとドメインコントローラと自国のずれが大きくなるとKerberos認証にエラーが変えるようになってしまい致命的です。
CentOS6のデフォルトでは ntp はインストールされてないようなので追加の必要あり。
yum install ntp
chkconfig ntpd on
service ntpd start
原因と対策はまとめると次の通り
- 最近のLinux Kernel ではシステムの割り込みタイマーが早すぎる
→ カーネルに divider=10 オプション
- clocksource にhyper-vの hv_timesource が選択されていると不安定
→ カーネルに clocksource=acpi_pm オプション
- Hyper-V ホストとの時刻同期はGuest OSが5秒以上遅れた時だけ発動する
→期待しすぎて陥るトラップですが、GuestOSの時計が進みすぎると誰も補正してくれないという仕様
つまり正確を期すにはLinux OS上にNTPDを設定して、定期的に自分で時刻を合わせなさい。
いまのところ落ちたりせずに動作しています。意外に、Hyper-VとLinuxの組み合わせの情報が多くないので、参考までに。