概要
DSVAを構成する際のNSX側のライセンス形態が「NSX for vShield Endpoint」の場合、以下の問題が発生します。
事象②:DSVA仮想マシンのCPU使用率が高負荷となる場合があります。
原因
※有償版であるNSX for vSphereの場合は事象は発生しません。
DSVAではNSX for vSphereを使用している場合、DSVA自身のds_filterプロセスと、ESXi側のdvfilter fastpathを使用し、ファイアウォール機能や侵入防御機能、Webレピュテーション機能を提供しております。
NSX for vShield Endpointを使用している場合はライセンス制限とESXi側のdvfilter fastpathが使用できない為、ファイアウォール機能や侵入防御機能、Webレピュテーション機能は提供されません。
DSVAではNSX for vSphereでの機能提供に基づいた動作を実施する為、常に「ds_filter」プロセスを起動し、ESXi側のdvfilter fastpathに接続を試みますが、NSX for vShield Endpointライセンスの場合、ESXi側のdvfilter fastpathを使用することができない為、DSVAがESXi側のdvfilter fastpathに接続しようとした場合、ESXi側はDSVAからのdvfilter fastpathへの接続を拒否します。
その後、DSVA側はds_filterプロセスを再起動し、再度ESXi側のdvfilter fastpathへ接続を試行します。
DSVA側でds_filterプロセスの再起動が繰り返された結果、DSVA側のinitプロセスが ds_filterプロセスの為のメモリ割り当てを実施することができなくなる可能性があります。また、メモリ割り当てが出来ない状態でもds_filterプロセスが再起動要求を出し続けた為、DSVA側のCPU使用率が上昇する可能性があります。
更に、ds_filterプロセスの再起動に伴い、通常およそ24時間に1回NICが再起動され、一時的にDSVAへの通信ができない状態が発生します。NICの再起動にかかる時間は環境により異なりますが、目安としては数秒から十数秒程度です。
解決方法
以下手順にてds_filterプロセスのrespawn期間を制限することにより、ds_filterの再起動が抑制され、およそ24時間に1度DSVAのNICが再起動される事象は発生しなくなります。
また、ds_filterの再起動が抑制されることで不要なメモリやCPUの消費も抑えられます。
CentOS6の場合
1. 事象発生DSVAのCLIコンソールにログイン(※)し、viコマンドで "/opt/ds_agent/dvfilter/ds_filter.conf"を開きます。
※ログインは以下の通りとなります。
1. vSphere Clientにて、対象DSVAの [コンソール] タブを開きます。
2. [Alt] + [F2] キーを押下いただき、DSVAのCLI (Linuxシェル) にログインします。
(初期ユーザ名:dsva、初期パスワード:dsva)
*DSVAのコンソールは英語版101キーボードを認識します。
2. "respawn"が記載されている行の下に"normal exit 0"の記載行を追加します。
※記載例
normal exit 0
3. DSVAサービスを再起動します。
$ sudo /etc/init.d/ds_agent restart
CentOS7の場合
1.事象発生DSVAのCLIコンソールにログイン(※)し、viコマンドで "/usr/lib/systemd/system/ds_dvfilter.service"を開きます。
2.Restart=on-failureをコメントアウトし、Restart=noを記載します。
[Service]
#Restart=on-failure
Restart=no
3.DSVAサービスを再起動します。
$ sudo systemctl restart ds_agent
※設定に際して、既に提供されております不正プログラム対策機能等への影響はございません。
※本設定後、DSVA側よりESXi側のfastpath への接続を確立できなかった場合は、ESXi側とdvfilter接続/通信を行うds_filterに関連する内部モジュールであるdsa_slowpath_nxが停止され、respawn(再起動)されなくなります。その為、設定後もds_filterプロセス自体は起動し続けます。