Worker Nodes
Set up Linux users and permissions
Make the expeca user password a sudoer. Add the following it to the end of the file:
$ sudo visudo
...
expeca ALL = (ALL) NOPASSWD: ALLAdd controller's public key to ssh authorized keys
Install Dependencies
Install Docker (Diginal Ocean Docker installation guide for Ubuntu 20.04)
We install version 20.10.22 of Docker. Use the following commands during the installation instead of
sudo apt install docker-ce:sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" sudo apt install docker-ce-cli=5:20.10.22~3-0~ubuntu-focal sudo apt install docker-ce-rootless-extras=5:20.10.22~3-0~ubuntu-focal sudo apt install docker-ce=5:20.10.22~3-0~ubuntu-focalCheck whether docker is installed properly or not
sudo docker versionInstall other dependencies:
sudo apt update && sudo apt install -f -y python3 python3-venv python3-pip jq gitInstall Docker-py:
First we have to downgrade the
requestsandurllib3python packages:sudo pip install requests==2.28.1 sudo pip install urllib3==1.26.13Then install docker-py:
sudo pip install dockerInstall GO
wget https://dl.google.com/go/go1.19.2.linux-amd64.tar.gz sudo tar -xvf go1.19.2.linux-amd64.tar.gz sudo mv go /usr/localif you get “directory not empty”, run the go directory with following commands
cd /usr/localand `rm -R go/”.Add the following lines to the
.bashrcfile usingvim ~/.bashrc:GOROOT=/usr/local/go GOPATH=$HOME/Projects/Proj1 PATH=$GOPATH/bin:$GOROOT/bin:$PATHTo apply the new env vars, log out of the server and back in, or type the following:
su - ${USER}Check whether go is installed properly or not
go version
Configure performance
Enable jumbo frames with mtu set to 9000 on capable interfaces
Disable hyperthreading on BIOS settings or only temporary:
Disable power management states of CPU
Set CPU Governor to
performanceCheck:
Stop Ubuntu iscsi services
iscsd process uses configfs which is normally mounted at /sys/kernel/config to store discovered targets information, on centos/rhel type of systems this special file system gets mounted automatically, which is not the case on debian/ubuntu. Since iscsid container runs on every nova compute node, the following steps must be completed on every Ubuntu server targeted for nova compute role.
Add configfs module to
/etc/modulesRebuild initramfs using:
update-initramfs -u commandStop
open-iscsisystem service due to its conflicts with iscsid container.Make sure configfs gets mounted during a server boot up process. There are multiple ways to accomplish it, one example:
Start PTP Daemons
Linux PTP is an implementation of Precision Time Protocol (PTP). On Ubuntu, LinuxPTP can be downloaded as installed as follows:
This will install two tools-- ptp4l and phc2sys.
To install ptp4l as a system service, edit '/usr/lib/systemd/system/ptp4l.service' as shown below:
$OPTIONS is located at the following path at '/etc/sysconfig/ptp4l' with the following:
The above method can be used to configure linuxptp as PTP slaves with multicast. In order to enable unicast for PTP slaves the following procedure should be followed.
The steps to install ptp4l as a system service are the same as above.
$OPTIONS is located at the following path at '/etc/sysconfig/ptp4l' with the following:
The content for /etc/ptp4l.cfg are
To start and stop the ptp4l service use:
To enable pt4l to run after every reboot enable it using systemctl:
Similarly, to install phc2sys as a system service, edit '/usr/lib/systemd/system/phc2sys.service' as shown below:
$OPTIONS is located at the following path at '/etc/sysconfig/phc2sys' with the following:
To start and stop the phc2sys service:
To enable phc2sys to run after every reboot enable it using systemctl:
Finally, make sure NTP is not active on the machine.
Last updated