Fujitsu ServerView ESXi CIM Provider müllt ESXi Ramdisk zu
Mit der Installation der neuen Fujitsu ServerView ESXi CIM Provider in der Version 8.51.02 auf ESXi 6.7 GA erlebt man nach ein paar Tagen eine nette Überraschung.
Das SSH Service "verstirbt" plötzlich, ebenso hat der sfcbd-watchdog Probleme.
Nach einer kurzen Suche auf der ESXi Shell habe ich herausgefunden, die Ramdisk ist voll.
vdf -h
Ramdisk Size Used Available Use% Mounted on
root 32M 32M 0B 100% --
etc 28M 352K 27M 1% --
opt 32M 7M 24M 23% --
var 48M 480K 47M 0% --
tmp 256M 28K 255M 0% --
iofilters 32M 0B 32M 0% --
shm 1024M 0B 1024M 0% --
hostdstats 2053M 4M 2048M 0% --
snmptraps 1M 0B 1M 0% --
Mit cd / und ls -lah sieht man dann diese Datei
-rw-r--r-- 1 root root 28.5M Jan 10 02:34 PrimeCollect_Data.tgz
Nachdem unser VMware Mann gerade zufällig online war, habe ich mal kurz nachgefragt, ob er so etwas schon mal gesehen hat.
Wir haben uns dann das Problem gemeinsam angesehen und das Problem gefunden.
Scheinbar
wird bei der Installation der ServerView ESXi CIM Provider ein cronjob
angelegt, welcher täglich gegen 2:00 Uhr ein PrimeCollect in /tmp
erzeugt.
less /var/spool/cron/crontabs/root
#min hour day mon dow command
1 1 * * * /sbin/tmpwatch.py
1 * * * * /sbin/auto-backup.sh
0 * * * * /usr/lib/vmware/vmksummary/log-heartbeat.py
*/5 * * * * /bin/hostd-probe.sh ++group=host/vim/vmvisor/hostd-probe/stats/sh
00 1 * * * localcli storage core device purge
0 2 * * * /opt/fts/bin/prcoll-vm-support.sh
Der letzte Eintrag dürfte vom ServerView CIM Provider kommen, also gleich mal auskommentiert und die Datei gelöscht.
rm PrimeCollect_Data.tgz
Danach haben wir uns mal kurz das Script angesehen
#!/bin/sh
# $Copyright$ NB: This is an auto-generated comment with copyright note below. DO NOT MODIFY OR REMOVE!
# Copyright 2017-2018 FUJITSU LIMITED
# All rights reserved
#
#
# Copyright 2017 FUJITSU LIMITED
# All rights reserved
#
# prcoll-vm-support.sh:
# - create a vm-support file if requested
#
ACTIVE_FILE=/tmp/prcoll-vm-support-active
RESULT_FILE=/tmp/prcoll-vm-support-completed
if [ ! -e "$ACTIVE_FILE" ];then
>$ACTIVE_FILE
XX=$(ls -d /vmfs/volumes/datastore* | head -n 1)
YY=$(ls -la "$XX"|/bin/awk '{ print $12 }')
if [ -n "$YY" ];then
RESULT_FILE=/vmfs/volumes/$YY/PrimeCollect_Data.tgz
else
RESULT_FILE=$XX/PrimeCollect_Data.tgz
fi
/bin/vm-support -s >"$RESULT_FILE"
if [ -s "$RESULT_FILE" ];then
/bin/logger -t prcoll-vm-support "file $RESULT_FILE written"
/bin/rm -rf /tmp/PrimeCollect_Data.tgz
ln -s "$RESULT_FILE" /tmp/PrimeCollect_Data.tgz
else
echo "ERROR" >> "$RESULT_FILE"
fi
/bin/rm "$ACTIVE_FILE"
else
echo "*** The job is already running. ***"
fi
Unser VMware Mann hat den Fehler schnell gefunden
ls -d /vmfs/volumes/datastore* | head -n 1
Hier werden alle Datastores aufgelistet und nur der erste Wert zurück gegeben.
Leider beginnen die Namen unserer Datastores nicht mit "datastore" daher gibt es auch kein Ergebnis.
ls -d /vmfs/volumes/datastore* | head -n 1
ls: /vmfs/volumes/datastore*: No such file or directory
ls -d /vmfs/volumes/* | head -n 1
/vmfs/volumes/591da739-bc883768-05b7-001999ed17e9
Damit erzeugt dann das Script unter /tmp einen Symlink für die PrimeCollect.tgz Datei welcher auf / zeigt.
Dadurch wird dann irgendwann die Ramdisk voll und der ESXi findet das nicht so prickeln.
Ich habe dazu mal einen Support Request bei Fujitsu geöffnet, mal sehen was die Jungs (und Mädels) dazu sagen.