As many of you may already know, VMware just released the VMware Appliance for Folding @ Home Fling last week and you can check out this blog post A Force for Good: VMware Appliance for Folding @ Home by Amanda Blevins for all the details. For those new to F@H and wish to participate, the VMware F@H Appliance is highly recommended as it is optimized and makes it very easy to setup and all configurations are driven through OVF properties. We certainly would appreciate it if you supported Team VMware (52737) which is the default team configuration but you can technical specify any valid F@H team ID during the deployment wizard.
Early next week, I expect to release another update to the appliance which will include support for vHW11, VMware Fusion and Workstation and several other enhancements and fixes. Having said that, there are a handful of folks who may not be able to use the appliance as-is or prefer to run this on another Hypervisor platform which does not support OVF properties but still wish to support Team VMware's effort with F@H. For these reasons, here are the instructions for using VMware Photon OS, a free and tiny Linux distribution for running the F@H home software.
Step 1 - Download Photon OS 3.0 Revision 2 Minimal ISO and install that into a new 64-bit Linux VM with 1 or more vCPU, 1GB memory and 4GB storage. For those planning to use a GPU (details for setting up NVIDIA GRID with vGPU can be found in the download instructions here), you will need to configure the VM to have EFI Firmware.
Step 2 - Once Photon OS has been installed, enable root to login via SSH and then run the following commands to update the OS and install the following package dependencies:
tdnf -y update
tdnf -y install wget
Step 3 - Run the following commands to download and install the Folding @ Home packages:
ln -s /usr/lib/libssl.so.1.0.0 /usr/lib/libssl.so.10
ln -s /usr/lib/libcrypto.so.1.0.0 /usr/lib/libcrypto.so.10
rpm -i --nodeps fahclient-7.6.13-1.x86_64.rpm
rpm -i --nodeps fahcontrol-7.6.13-1.noarch.rpm
rpm -i --nodeps fahviewer-7.6.13-1.x86_64.rpm
rm -f fahclient-7.6.13-1.x86_64.rpm
rm -f fahcontrol-7.6.13-1.noarch.rpm
rm -f fahviewer-7.6.13-1.x86_64.rpm
Step 4 - Run the following commands to allow port 36330 (remote management of F@H Client using FAHControl) and port 7396 (local web management of F@H Client using FAH Web Control via http://[FAHCLIENT]:7396) and ensure the configurations are persisted:
iptables -A INPUT -p tcp --dport 36330 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 36330 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 7396 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 7396 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables-save > /etc/systemd/scripts/ip4save
systemctl restart iptables
Note: You will also need to ensure that either port 80 or 8080 is enabled on the network which is F@H Client is connected to and this must be bi-directional as this is how Work Units (WU) are assigned from the F@H Service. For those that wish to whitelist the specific source servers, you can refer to the F@H documentation found here.
Step 5 - Edit the F@H Configuration file at /etc/fahclient/config.xml with your respective configurations. Below is a working example (yes, I included my passkey in case you wish to fold as me ;)). If you have more than 16 vCPU configure, make sure to set client-type with value of "bigadv" (more details can be found here) for larger F@H Work Units.
<config> <!-- Folding Slot Configuration --> <gpu v="false"/> <!-- Slot Control --> <power v="light"/> <!-- User Information --> <passkey v="e6cf014f62ba0f60e6cf014f62ba0f60"/> <team v="52737"/> <user v="lamw"/> <!-- Network --> <proxy-enable v="false"/> <proxy v=""/> <proxy-user v=""/> <proxy-pass v=""/> <!-- Folding Slots --> <slot id='0' type='CPU'/> <client-type v=""/> <!-- Remote Command Server --> <command-allow v="127.0.0.1 0.0.0.0/0"/> <password v="VMware1!"/> <!-- Web Server --> <web-allow v="0.0.0.0/0"/> </config>
Step 6 - Start the F@H Client by running the following command:
Note: If you wish to automatically start the F@H Client upon startup, create the following file /etc/rc.d/rc.local with the following content and ensure it has executable permissions:
#!/bin/bash /etc/init.d/FAHClient start
If you plan to clone your configured F@H VM, make sure to run the following command below prior or you will have duplicate instances on your network.
echo -n > /etc/machine-id
This configuration is already handled for you within the VMware F@H Appliance and you simply run a quick PowerCLI script or clone using the vSphere UI (offline state) and you will not have this issue 🙂