VMware Cloud Community
daniel_lee
Contributor
Contributor

stop loading vmfs2 driver on start-up

Hi,

I think that the following is one of perfomance tips.

p.106/SAN Configuration guide

--

Removing VMFS-2 Drivers

If you have a lot of LUNs/VMFS volumes, and all of them are VMFS‐3, you can

potentially improve performance by unloading the VMFS‐2 driver. At a command‐line

prompt, type:

vmkload_mod -u vmfs2

A significant increase in the speed of certain management operations like refreshing

datastores and rescanning storage adapters should result.

--

I don't want to load vmfs2 driver from the beginning on start-up.

Does anyone know which file I need to modify the setting in ?

PS.

Hopefully, I don't want to modify /etc/rc.d/init.d/vmware file...if possible.

Thanks,

Daniel

0 Kudos
16 Replies
meistermn
Expert
Expert

Have you got a solution?

Meistermn

0 Kudos
swamy
Enthusiast
Enthusiast

i think by doing some modifications to /etc/init.d/vmware only u can able to unload it permanently

all these dirvers will present in /usr/lib/vmware/vmkmod/ i dont know whether it wil help u or not but just check this path also

0 Kudos
swamy
Enthusiast
Enthusiast

u just delete the vmsf2.o under /usr/lib/vmware/vmkmod/

so that it will not be loaded at startup

good luck

Message was edited by:

swamy

0 Kudos
jasonboche
Immortal
Immortal

u just delete the vmsf2.o under

/usr/lib/vmware/vmkmod/

so that it will not be loaded at startup

Is this a safe method to disable the vmfs2 module? It's not the most graceful but I suppose it is effective. I would rather choose to rename it rather than delete it.

Jas

VCDX3 #34, VCDX4, VCDX5, VCAP4-DCA #14, VCAP4-DCD #35, VCAP5-DCD, VCPx4, vEXPERTx4, MCSEx3, MCSAx2, MCP, CCAx2, A+
0 Kudos
tlaurent
Contributor
Contributor

This does prevent loading the module but you get a PANIC message on start up because the kernel is still looking for the file. Anyone know how to prevent this?

0 Kudos
Galoki01
Contributor
Contributor

0 Kudos
Michelle_Laveri
Virtuoso
Virtuoso

I would put the:

vmkload_mod -u vmfs2

entry to the end of

/etc/rc.d/rc.local

Regards

Mike

Regards
Michelle Laverick
@m_laverick
http://www.michellelaverick.com
0 Kudos
jasonboche
Immortal
Immortal

u just delete the vmsf2.o under

/usr/lib/vmware/vmkmod/

so that it will not be loaded at startup

Is this a safe method to disable the vmfs2 module?

It's not the most graceful but I suppose it is

effective. I would rather choose to rename it

rather than delete it.

Jas

The method of simply renaming vmfs2 to prevent it from loading is no longer a viable solution. Reason being, at least one of the ESX patches will lay down a new version of vmfs2 and after the subsequent reboot, vmfs2 will once again load. Going forward, new patches may also inject a new version of vmfs2 at any given time.

The best method now is to find out which startup script loads vmfs2 and disable it, or, unload it in a subsequent startup script as Mike Laveric has suggested.

Jas

VCDX3 #34, VCDX4, VCDX5, VCAP4-DCA #14, VCAP4-DCD #35, VCAP5-DCD, VCPx4, vEXPERTx4, MCSEx3, MCSAx2, MCP, CCAx2, A+
0 Kudos
jasonboche
Immortal
Immortal

As I posted in the other thread, I've added the following to my automated ESX deployment scripts (btw, don't forget the chmod 744 line at the end or the /etc/init.d/vmware script won't execute upon reboot and your ESX box will be fubar):

#Modification to prevent vmfs2 module from loading to improve LUN and volume scan speed and improve overall performance:

#Paste the following into PuTTY:

mv /etc/init.d/vmware /etc/init.d/vmware.old

sed -e "s/echo \"vmfs2 vmfs2\"/\#echo \"vmfs2 vmfs2\"/g" /etc/init.d/vmware.old > /etc/init.d/vmware

chmod 744 /etc/init.d/vmware

VCDX3 #34, VCDX4, VCDX5, VCAP4-DCA #14, VCAP4-DCD #35, VCAP5-DCD, VCPx4, vEXPERTx4, MCSEx3, MCSAx2, MCP, CCAx2, A+
0 Kudos
Michelle_Laveri
Virtuoso
Virtuoso

Out of curiousity - what are the performance benefits like - really significant, or a minor one...?

Regards

Mike

Regards
Michelle Laverick
@m_laverick
http://www.michellelaverick.com
0 Kudos
tlaurent
Contributor
Contributor

Mostly in refresh on the data store. As far as the VMs themselves we weren't really experiencing any issues so I didn't see any changes.

0 Kudos
fordian
Hot Shot
Hot Shot

Edit the /etc/init.d/vmware file and find this part (at about 240):

\#

\# late vmkernel config.

\# Initialize things that must be done \_after_ networking

\# has been enabled.

\#

start_late_vmk_config() {

\# Depends on vmkernel id (which depends on networking)

\# vmfs2 walks again. fear me.

#echo "vmfs2 vmfs2" | do_module_file => !!!!! comment out this line

Thank you

Dominic

0 Kudos
jasonboche
Immortal
Immortal

Out of curiousity - what are the performance benefits

like - really significant, or a minor one...?

Regards

Mike


I'd like to think there is some noticable improvement. Mostly in the vmhba rescans. A lot of little things can add up to noticable performance improvements. It gives me extra peace of mind to help me sleep at night.


It can also impress your students and co-workers which is important for the ego and your reputation in the office. Anything to help them realize they are getting their moneys worth out of you.

Show the scripted version to your not-so-Linux-savvy associates and you will have them right where you wan them

VCDX3 #34, VCDX4, VCDX5, VCAP4-DCA #14, VCAP4-DCD #35, VCAP5-DCD, VCPx4, vEXPERTx4, MCSEx3, MCSAx2, MCP, CCAx2, A+
0 Kudos
alvserversuppor
Contributor
Contributor

I opened a ticket about this and vmware's canned answer is that there is no officially supported method to disable vmkernel modules on boot and they cannot guarantee that the removal of the VMFS2 vmkernel module from the boot process will not result in issues.

The reason being, the solution involving commenting out a line neglected to address this part of the script (line 315):

\# Check to see if we're doing the first boot after an upgrade,

\# and perform necessary post-boot upgrade tasks. At this time

\# that means upgrading multipathing config and cleaning up

\# old config files.

\#

\# Note that vmfs2 must be loaded in order to get the required

\# information, so this must be called after the late vmkernel config.

\#

check_for_upgrade() {

if \[ -f /etc/vmware/hwconfig ]; then

action " Upgrading SCSI Path config" esxcfg-upgrade -o

action " Loading upgraded SCSI Paths" /usr/sbin/esxcfg-mpath -r

fi

}

I don't know if this just applies to upgrades such as from 3.0.1 -> 3.0.2 or any patch installs as well. Although the solution works, seems to be too risky if further down the line (when you have forgotten about this change), you do an upgrade and don't get the additional actions above.

For this reason, I can only recommend the solution suggested by rubensluque and Mike_Laverick.

0 Kudos
depping
Leadership
Leadership

you could comment out echo "vmfs2 vmfs2" | do_module_file" in the file "/etc/init.d/vmware".

But i would not recommended, and i never implement it for customers. like alvserversupportteam said you just don't know what happens when you upgrade or patch the systems. the risks are higher than the benefits.

0 Kudos
vmwareadm
Contributor
Contributor

Hi,

I just discovered the same problem, and the solution I found was to use

esxcfg-module -d vmfs2

which adds the following line to /etc/vmware/esx.cfg:

/vmkernel/module/vmfs2/enabled = "false"

But it doesn't work, the module is still loaded at reboot time. Can anyone comment on this? I will try the solutions you discussed here, but I would like to know why esx.cfg is ignored, and I didn't find anything about this problem here.

regards

Tilman

0 Kudos